Matthew: Greetings from the middle of the USA! We are admiring your work with Rtabmap and all its supporting features! This is great software.
We are developing an outdoor agricultural robot using the Zed camera and Nvidia TX1 board. Since features for mapping may be sparse at times in the outdoor environment, it looks like Rtabmap with 3d point cloud is our only hope of making this project work, without buying a very expensive 3d laser sensor.
We want this robot to precisely cover the yard in a grid pattern, back and forth in rows. If we could get it to follow a pattern already driven, that would be a good start. The line of odometry from the camera looks good in the 3d map. How to get the robot to learn and repeat that?
Could you please develop a launch file for the Zed as you have for “Stereo outdoor mapping” and “Az3 Kinect mapping”? The Zed frame rate is easy to control through Zed_ros_wrapper, so it may not need throttling. Also, it already publishes a rectified image and depth image, so some of the extra launch items in your stereo mapping launch are not needed. The Zed point cloud is not fast enough through the zed_ros_wrapper to do serious mapping. The Zed odometry is quite good.
Shall I post the launch files I have developed so far?
Thank you for the help!
There is one example using rtabmap odometry and other one using ZED odometry. You can try creating a map with a teleoperated trajectory, then switch rtabmap in localization mode for autonomous path following.
I don't have examples of teach and repeat scenarios like you want to do, but it should be possible to do by sending coordinate of the next node in the graph to reach while navigating (the graph is published under /rtabmap/mapGraph topic). In localization mode, rtabmap would localize on the path to limit the odometry drift. Beware that large lighting variations may make it very difficult for rtabmap to localize on the path, thus not correcting the drift or correctly follow the path.