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

How to get octomap to store data sent by rgbdslam

asked 2011-05-16 00:34:41 -0500

Scott gravatar image

updated 2014-01-28 17:09:41 -0500

ngrennan gravatar image

Hi everyone. Felix Endres has a grest post on ROS Answers for how to get rgbdslam to send data to octomap and save it out as a map that can then potentially be used for navigation and path planning. However, even though the rgbsdlam package sends the data (which can be seen by listening to the /rgbdslam/batch_clouds output ros topic when you send the model), nothing seems to get "stored" in the octomap server, which should acccumulate the point clouds sent by rgbdslam in some variable. I worked with Felix for about a week trying to debug this, all of the basics are fine. ie topics are good, launch files are correct, nodes wired correctly, etc. Octomap will even save out a <> output fill that you can attempt to open in octoviz, but it has no actual point cloud data. It's just empty.

Has ANYONE gotten this to work besides Felix and if so, can you share you notes so we can find the missing step and share this with the community? Thanks.

edit retag flag offensive close merge delete


Could you tell me the link to the "great post"?

ZiyangLI gravatar image ZiyangLI  ( 2014-01-14 13:25:48 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2011-05-17 00:29:02 -0500

Hi Scott,

I just tried it today and it almost worked right away. The only thing that the tutorial at did not mention was that you have to use the experimental version of the octomap stack. I changed the tutorial accordingly. Other than that, it worked as expected.


edit flag offensive delete link more


Hi Juergen, so are you saying you actually got a usable map to show up when you save it off? I can get everything to work, but there ends up being no cloud data in the map when you look at it with octoviz. Others are having same issue as errors, can save a map, but no data in map.
Scott gravatar image Scott  ( 2011-05-31 01:40:24 -0500 )edit

answered 2011-05-31 03:36:02 -0500

AHornung gravatar image

In the development ("experimental") branch of octomap_server, the pointcloud subscription runs through a tf message filter to ensure that a suitable transform is available. For that to work, you need to set the parameter "frame_id" of octomap_server to the correct one from rgbdslam and have a clock running (if you playback from log files). Be sure to check for errors using rxconsole and roswtf.

At the end of the pointcloud insertion in the octomap there is a debug output ("Pointcloud insertion in OctomapServer done ..."). If you set the log level to debug on octomap_server in rxconsole, you should see that message each time a pointcloud is integrated. Otherwise the callback is not called through the tf message filter.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2011-05-16 00:34:41 -0500

Seen: 1,815 times

Last updated: May 31 '11