Re: Using obstacles detection nodelet from camera node point cloud

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Using-obstacles-detection-nodelet-from-camera-node-point-cloud-tp1191p1194.html

Hi Ben,

There are three issues with the setup.

1) The frame_id in the point cloud header is /zed_optical_frame, though when shown in RVIZ under fixed frame /base_link, the point cloud top is not on z+ axis and it doesn't look like in front of the robot (maybe the header in the point cloud topic should be /zed_frame instead). If you connect the cloud like that to obstacles_detection nodelet, the left wall would be the ground!


2) The floor is very reflective!!! The ZED disparity algorithm doesn't give the right depth for the floor (note that most disparity algorithms would give similar results, the best is to not have any reflections). See the following images (in the second the points are colored according to down/top axis). The rtabmap_ros/obstacles_detection nodelet cannot work if the ground doesn't look like a plane.


3) For performance issue, the point cloud should be downsampled before connecting it to obstacles_detection nodelet. You can use pcl/VoxelGrid nodelet for convenience (using a leaf of 2.5 or 5 cm could be okay depending on your local costmap resolution).

Note: If the robot is always moving on an even ground (e.g., indoor floor), you may not need obstacles_detection nodelet, see voxel costmap plugin for obstacle layer. EDIT: The voxel plugin is automatically used when PointCloud type is used in "observation_sources" of the obstacle layer (see "Costmap Configuration" example here).

cheers