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

Online C++ RTAB-Map using ZED on TX1 Mobile Robot

asked 2016-12-12 14:12:02 -0500

brude gravatar image

I have a setup of a mobile robot with an NVIDIA Jetson TX1 platform running Ubuntu 14.04 host with ROS Indigo and the ZED SDK 1.0.0. I want to be able to run an online/live RTAB-Map in my already existing c++ project.

In more detail, I would like to initiate my program, have a class that deals with the ZED camera to take in, process, and filter images before sending to the RTAB-Map. I would have a separate odometry source to send position and transform information to broadcast to match up with the images from the ZED. I would like to incrementally build a map with this data while also performing loop closing and allow for the data (map, occupancy grid, etc.) to be used by the robot and viewed by an external laptop.

I've looked at some example tutorials, including the C++ RGBD Mapping and the C++ Loop Closure Detection, but haven't really been able to figure out how to do this properly. I thought I would be able to run this all through ROS so that I would be able to publish data to topics, RTAB-Map would be able to run on its own and use this data to perform the incremental map build and detect for loop closures while also publishing map data back out. (Exactly like the ROS octomap_server).

Is this a possibility? Do I have to run RTAB-Map in my own thread and perform all the individual functions (init, process, etc.)? Will RTAB-Map work like an octomap_server? What steps do I have to go through to get RTAB-Map working in the already existing C++ project without the use of a launch file?

Thanks in advance!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-12-12 19:11:17 -0500

matlabbe gravatar image


Use the rtabmap_ros interface instead of the C++ library. In particular, your setup would look like the Kinect+Odometry setup on this page but with the ZED instead of the kinect (just remap the topics). Then look at the published topics (/grid_map, /proj_map, /octomap_full, /octomap_binary). The advantage of using the octomap output of rtabmap instead of connecting /cloud_map to an octomap_server is that on loop closure, the map will be corrected (make sure you have the latest version).


edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-12-12 14:12:02 -0500

Seen: 858 times

Last updated: Dec 12 '16