rtabmap ubuntu - difference between standalone and ROS version?

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

rtabmap ubuntu - difference between standalone and ROS version?

Evan
I looks as if this forum isn't active, but I figured I will try it anyway.

I am looking at this page here: https://code.google.com/p/rtabmap/wiki/Installation#ROS_version

I have ubuntu 13.04 Raring Ringtail, and I have gotten the rtabmap standalone version to work. I have installed the ROS version, but haven't gotten it to work yet. I am new to ROS, and I am confused about what makes the two versions so different. When is it useful to use the ROS version of rtabmap, instead of the standalone?
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap ubuntu - difference between standalone and ROS version?

matlabbe
Administrator

The standalone is independent of ROS, it works on Ubuntu, Mac OS X and Windows. If you want to do only Kinect hand-held scanning to export the point cloud to a PLY, PCD point cloud formats, you can use only the standalone. You can start/stop a scanning from the interface.

The ROS rtabmap package is a wrapper of the RTAB-Map library (installed with the standalone) for inputs/outputs compatible with standard ROS messages. If you plan to integrate RTAB-Map to a larger system (navigation/robot), I recommend to install the ROS package too. The examples on how RTAB-Map works in ROS can be found in the launch files on the ROS wiki page.


Reply | Threaded
Open this post in threaded view
|

Re: rtabmap ubuntu - difference between standalone and ROS version?

Evan
This post was updated on .
Cool, and thank you for the response. Yes - I am working with a group that hopes to integrate this with a larger system; I did manage to get both the standalone as well as the ROS version of rtabmap working on my machine.

The first thing that we are concerned with is to automatically update a map as the robot is running. The wiki suggests using the map_assembler node (I think) to do this. I currently am using a kinect with the libfreenect stack - what nodes should I launch to get the map_assembler node to run properly (and generate a map)?

EDIT: added more detail
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap ubuntu - difference between standalone and ROS version?

matlabbe
Administrator
There are some solutions depending of what you want to do.

1) You want an occupancy 2d map:
- The grid_map_assembler node is what you want. This node subscribes to rtabmap/mapData and create a 2d map. Laser scans should be provided to rtabmap to work. If you don't have a laser, you can simulate one using the depthimage_to_laserscan node. You can take a look at the Kinect + Odometry + Fake 2D laser from Kinect configuration. If you have a laser, look at the Kinect + Odometry + 2D laser configuration.

2) You want a 3D map for vizualization only
- There is the RVIZ MapCloud plugin that can be used. It will subscribe to rtabmap/MapData topic and incrementally generate the point cloud in RVIZ, also correct the point clouds when loop closures are detected (when poses/constraints in MapData has changed).

3) You want to subscribe to a generated 3D map.
- The map_assembler node is what you want. This node subscribes to rtabmap/mapData and creates a 3d map. It works like the RVIZ MapCloud plugin but publishes the 3D map as a sensor_msgs/PointCloud2.
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap ubuntu - difference between standalone and ROS version?

Evan
This post was updated on .
Thanks for linking that page. Are there any .launch files that launch the map_assembler or grid_map_assembler nodes that I could use as a reference? Right now I am trying to launch both by trail-and-error, although it's super helpful to have the example code provided.

At the present I have been trying to use rviz to view that /rtabmap/MapData topic like you have described. However, it doesn't seem like rtabmap is subscribed to 'MapData', but is instead subscribed to 'mapData' (lowercase). Is there a way that I can get rviz to view the /rtabmap/mapData topic instead?
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap ubuntu - difference between standalone and ROS version?

matlabbe
Administrator

I recommend to try the demo_robot_mapping_rviz.launch to see what is going on. Launch the demo and you can start "rqt_graph" to see how the nodes are connected. When RVIZ is opened, you should check the Map display (which not shown by default) to see the OccupancyGrid generated.

$ roslaunch rtabmap demo_robot_mapping_rviz.launch
$ rosbag play --clock demo_mapping.bag
$ rqt_graph

You should see something like in this video.

"MapData" is the name of the message type, "mapData" is the topic name (which can be renamed to anything with the <remap> tag in the launch files). In RVIZ, you should select the topic under the MapData display.