ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
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.
2 | No.2 Revision |
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.