You’re reading an older version of the Slamcore SDK documenation. The latest one is 23.04.
Point Cloud Configuration
The default point cloud configuration file is installed under the
/usr/share/slamcore/presets/point_cloud.json path. When following the
ROS1 Navigation Stack Integration or Nav2 Integration Overview tutorial, you may add
some additional parameters to your SLAM Configuration file, which will allow you
to trim the local point cloud (used for obstacle avoidance) for greater
flexibility with your setup.
Parameters |
Default Value |
Type |
|---|---|---|
|
|
Float |
|
|
Float |
|
|
Float |
|
|
Float |
Point Cloud Trimming
Point cloud trimming increases the usability of the point cloud for obstacle avoidance on ground robots, as for example, we can remove the ground points and avoid them being marked as an obstacle.
Vertical Height Trimming
The point cloud may be trimmed by specifying the height below and above the
camera position that you want to include, using the LowerBound and
UpperBound parameters respectively.
Fig. 24 Example upper and lower bounds to trim the point cloud vertically
LowerBoundType: Float
Default:
-1e30(-∞)Description: Vertical distance which specifies the lower bounds of the point cloud volume to trim relative to the camera height.
UpperBoundType: Float
Default:
1e30(∞)Description: Vertical distance which specifies the upper bounds of the point cloud volume to trim relative to the camera height.
The bounds are anchored to the camera position and world-axis aligned (Z axis is
vertical even when camera is tilted). For example, if the camera on the robot
was 23cm above the floor and we wanted to trim the ground points of the point
cloud, we could set LowerBound to -0.22 (slightly less than the distance
from the camera to the floor) to filter out the ground points from the point cloud.
Example Configuration for Point Cloud Trimming in Vertical Distance
Fig. 25 Example of trimming the ground points from the pointcloud
{ "Version": "1.0.0", "Base": { "ProfileName": "local_point_cloud" }, "LocalPointCloud": { "LowerBound": -0.22, } }
The resulting point cloud that is published excludes any points outside the bounds defined above.
Fig. 26 Left, original point cloud. Right, vertically-trimmed point cloud.
Note
If you would prefer to keep the original point cloud as is, you can reproduce
a similar behaviour without modifying the point cloud by using the
min_obstacle_height ROS parameter, as explained in our ROS1 Navigation
Stack Tutorial Obstacle Avoidance section and our Nav2 Integration
Tutorial Nav2 Configuration section.
Depth Trimming
The point cloud may also be trimmed in depth by specifying the range of depth
values you want to include, using the DepthNearThreshold and
DepthFarThreshold parameters of the DepthSource respectively.
DepthSource.DepthNearThresholdType: Float
Default:
0.25Description: Specifies the minimum depth from the camera position (in metres).
DepthSource.DepthFarThresholdType: Float
Default:
4.0Description: Specifies the maximum depth from the camera position (in metres).
The resulting point cloud that is published excludes any points outside the defined depth range.
Fig. 27 Left, original point cloud. Right, depth-trimmed point cloud.