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.