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

How to use RGBD-6D-SLAM for path planning and navigation with Kinect

asked 2011-04-12 05:33:03 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I am able run and record data using the RGBD-6D-SLAM code and the Kinect and would like to now use the recorded 3D "map" of the room(s) for navigation and path planning. What would be the best way to go about this? Ultimately I'd like to have some identified locations in the 3D map "space" that I can have the robot plan a path to and then try to navigate there.

Note: RVIZ and RGBD-6D-SLAM packages are too resource intensive for me to run very well simultaneously (seems to be a common issue based on other comments on this site) and that limits my options for trying to use the navigation and path planning components of rviz in conjunction with the RGBD-6D-SLAM code.

Thanks in advance for your recommendations.

-Scott

edit retag flag offensive close merge delete

Comments

While researching other teams that might be making progress on this front. I came across some work by a team at the University of California, Santa Barbara, that has made some good first steps. They have a ros package as well under ucsb-ros-pkg.
Scott gravatar image Scott  ( 2011-04-15 03:55:21 -0600 )edit
Check out their floor collision map video at http://code.google.com/p/ucsb-ros-pkg/
Scott gravatar image Scott  ( 2011-04-15 03:55:53 -0600 )edit
As Felix pointed out below, The UCSB work is an example of projecting the 3D map onto 2D and then doing 2D navigation and planning from there. Very excited for the updates to the RGBD-6D-SLAM package Felix has said they are working on as well . If anyone tries UCSB package, post your tips here!
Scott gravatar image Scott  ( 2011-04-15 04:00:20 -0600 )edit

4 Answers

Sort by ยป oldest newest most voted
3

answered 2011-04-12 06:09:29 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Edit1: The new version of rgbdslam is out and available at here at ros.org and on openslam.org

For ground-bound robots, I think most people project 3d-maps to 2d and do navigation and planning in 2d.

Edit2: An octomap of the registered point cloud can be created using experimental octomapping code from the alufr-repository and the following procedure:

  • Edit (a copy of) octomap_server/launch/octomap_mapping.launch such that the mapping from cloud_in goes to /rgbdslam/batch_clouds and the value of frame_id is "openni_camera"
  • Start rgbdslam, capture a scene
  • Roslaunch the adapted file from the first step
  • In rgbdslam select Graph->Send Model
  • rosrun octomap_server octomap_saver <filename.bt>

The parameters in octomap_mapping.launch allow for some fine-tuning of voxel resolution and sensor range. You can use rosrun octovis octovis <filename.bt> to view the octomap.

edit flag offensive delete link more

Comments

Hi Felix, I see you released a new version of rgbdslam on the 18th. Were you able to add in the functionality for the 3D mapping and navigation with this release? -Scott
Scott gravatar image Scott  ( 2011-04-27 09:09:40 -0600 )edit
1
Saving registered point clouds is included. Octomaps are not yet. I will include that somewhen. It's easy but I'm quite busy. If you'd like to use it offline, save the clouds "node-wise", then read each pcd file, using octomap::OctomapROS::insertScan for each cloud.
Felix Endres gravatar image Felix Endres  ( 2011-04-27 21:05:29 -0600 )edit
...but it had some dependencies I was not able to resolve. If anyone else had tried this and gotten it to work, please share your notes.
Scott gravatar image Scott  ( 2011-05-03 16:51:26 -0600 )edit
OK this package can be built and run without error along with Octomap, but has anyone (besides Felix) successfully generated an octomap following the instructions? If so, please add a comment with steps you took. If you have tried and have not gotten an octomap to show up, please post that as well.
Scott gravatar image Scott  ( 2011-05-05 00:03:52 -0600 )edit
Update from threads below...to get the mapping to work correctly you need to edit the frame_id line in the octomap_mapping.launch to this: <param name="frame_id" type="string" value="openni_camera" /> (Thanks to Armin, Gavin and Felix for working with us to debug this.)
Scott gravatar image Scott  ( 2011-06-04 03:26:36 -0600 )edit

Since, the openni_camera package has been deprecated, what should 'frame_id' be nowadays?

magnate gravatar image magnate  ( 2013-02-16 15:19:05 -0600 )edit

I'd guess /camera_link. But as of the latest version (only a couple of days old), you can save the octomaps from the GUI: Graph->Save octomap

Felix Endres gravatar image Felix Endres  ( 2013-02-16 23:20:48 -0600 )edit

Is there an RGBDSLAM headless rosservice command for that -- "rosservice call /rgbdslam/ros_ui save_octomap," perhaps?

magnate gravatar image magnate  ( 2013-02-18 11:14:48 -0600 )edit
2

answered 2011-05-17 07:10:40 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

You may also want to check out http://www.ros.org/wiki/3d_navigation .

edit flag offensive delete link more
1

answered 2011-05-20 01:56:33 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I have not been able to generate an octomap by following the instructions. I get stuck when attempting to run:

rosrun octomap_server octomap_saver map.bt

getting the error:

[ WARN] [1305895466.866409176]: Request to /octomap_binary failed; trying again...

Thanks in advance,

Gavin

edit flag offensive delete link more

Comments

Are you sure the octomap_server is running ("rosnode list") and it is the right one (i.e. from the experimental repository)?
Felix Endres gravatar image Felix Endres  ( 2011-05-20 02:08:43 -0600 )edit
Thanks, you were correct, the octomap_server wasn't running. Ran rosrun octomap_server octomap_server_node in another terminal and then rosrun octomap_server octomap_saver map.bt which seems to work, however, it only outputs a single node.
Gavin gravatar image Gavin  ( 2011-05-20 02:26:28 -0600 )edit
What do you mean by "it only outputs a single node"?
Felix Endres gravatar image Felix Endres  ( 2011-05-22 20:34:59 -0600 )edit
After running rosrun octovis octovis map.bt I get "Reading 1 nodes from bonsai tree file... done." The visualisation then only has one cube. Any thoughts? Thanks.
Gavin gravatar image Gavin  ( 2011-05-23 22:42:32 -0600 )edit
That happens for an empty map. Make sure 1) octomap_server listens to /rgbdslam/batch_clouds, i.e. verify that with "rxgraph" 2) you have sent the model, e.g., press Ctrl+M in rgbdslam
Felix Endres gravatar image Felix Endres  ( 2011-05-24 00:19:01 -0600 )edit
My rxgraph has \rgbdslam connected to \octomap_server. In octomap_mapping.launch I've altered the line with cloud_in to: <remap from="cloud_in" to ="/rgbdslam/batch_clouds" />. I've also made sure I've sent the model. However, roswtf reports the \cloud_in subscription is unconnected. Is this ok?
Gavin gravatar image Gavin  ( 2011-05-24 02:28:55 -0600 )edit
That is weird, but I don't know much about roswtf. Are the nodes in rxgraph connected on batch_clouds and tf or only with tf? Can you record /batch_clouds and /tf with "rosbag record /tf /rgbdslam/batch_clouds and inspect the bagfile with "rosbag info <bagfile>" or "rxbag <bagfile>"?
Felix Endres gravatar image Felix Endres  ( 2011-05-24 03:21:10 -0600 )edit
The nodes were only connected with tf, but now are also connected with batch_clouds (my error). The bagfile is filled with what looks correct to me (112.5 MB for only /rgbdslam/batch_clouds, 70.6 KB for /tf). However, I still get only get one node in the resulting bt file...
Gavin gravatar image Gavin  ( 2011-05-24 04:08:58 -0600 )edit
0

answered 2014-06-18 23:32:21 -0600

updated 2014-09-06 00:52:23 -0600

CMU also used the 3D projected 2D maps for localization and navigation :)

The paper is "Depth Camera Based Indoor Mobile Robot Localization and Navigation"

Here is the link for its ROS code: http://www.cs.cmu.edu/~coral/projects...

It works on Groovy but not hydro

edit flag offensive delete link more

Question Tools

9 followers

Stats

Asked: 2011-04-12 05:33:03 -0600

Seen: 11,548 times

Last updated: Sep 06 '14