|
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!
|