ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I think the problem lies in your tf frames. octomap_server will transform your point clouds to the global map frame using TF, relying on the frame_id set in your sensor data. If you transformed them yourself but left the frame_id unchanged then it will transform it again. If you change the frame_id in the point cloud accordingly to the global map frame, octomap_server should not transform again.

However, the main problem I see is that octomap_server assumes single sensor readings per cloud, each with its own origin, for its ray casting operation. It will cast a ray from the sensor origin to each end point. If you only have one origin, this will not result in a correct map since information behind intermediate obstacles may be missed, or existing obstacles cleared out.

I think the problem lies in your tf frames. octomap_server will transform your point clouds to the global map frame using TF, relying on the frame_id frame_id set in your sensor data. If you transformed them yourself but left the frame_id frame_id unchanged then it will transform it again. If you change the frame_id frame_id in the point cloud accordingly to the global map frame, octomap_server should not transform again.

However, the main problem I see is that octomap_server assumes single sensor readings per cloud, each with its own origin, for its ray casting operation. It will cast a ray from the sensor origin to each end point. If you only have one origin, this will not result in a correct map since information behind intermediate obstacles may be missed, or existing obstacles cleared out.