Ask Your Question
0

How to get octomap to store data sent by rgbdslam

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

Scott gravatar image

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

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 <filename.bt> 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

Comments

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

ZiyangLI gravatar imageZiyangLI ( 2014-01-14 13:25:48 -0600 )edit

2 Answers

Sort by ยป oldest newest most voted
0

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

Hi Scott,

I just tried it today and it almost worked right away. The only thing that the tutorial at http://www.ros.org/wiki/rgbdslam 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.

Juergen

edit flag offensive delete link more

Comments

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 me...no errors, can save a map, but no data in map.
Scott gravatar imageScott ( 2011-05-31 01:40:24 -0600 )edit
3

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

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

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

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

Seen: 1,731 times

Last updated: May 31 '11