At that time, RTAB-Map's related papers use wheel odometry instead of visual odometry. Unfortunately, there is no paper about RTAB-Map's visual odometry approaches.
The default one is Frame-to-Map with
OpenCV's GFTT/BRIEF features,
correspondences by descriptors
matching, 3D->3D PCL's RANSAC
registration with known
Another combination I use sometime
(with car-like motions):
Frame-to-KeyFrame with OpenCV's GFTT
features, correspondences by optical
flow, 2D->3D OpenCV's
It is also possible to add ICP refining if you have 2D laser scans or 3D point clouds. The choice of features are SIFT, SURF, ORB, BRIEF, FREAK, FAST or BRISK. ORB and FAST are also good fast choices. GFTT is nice because it can detect uniformly distributed features across the image. SIFT/SURF are slow for odometry, but really good for loop closure detection.
Another post related to Frame-to-Frame vs Frame-to-Map approaches used.
- No, it is not possible.
- You may want to look at Visual Inertial Odometry (VIO) approaches, though you would need hardware synchronized IMU/camera. In RTAB-Map, you cannot use a 2D laser scan to refine 6DoF odometry, only 3DoF (in case of a ground vehicle on flat surface).
Originally posted by matlabbe with karma: 6409 on 2016-08-22
This answer was ACCEPTED on the original site
Post score: 4
Comment by quentin on 2016-08-23:
Thanks a lot for these answers! I edited my initial post with two additional questions @matlabbe might be able to answer!
Comment by h66 on 2018-04-05:
Hi @matlabbe, is there any paper now (2 years after the original post), explaining how the rgbd_odometry works?. Looking at the source code of 'OdometryROS.cpp' It seems that the map is generated and then the transformations between frames are estimated and converted to odometry?. Thanks!
Comment by matlabbe on 2018-04-06:
OdometryROS is a wrapper of Odometry from rtabmap library. The two standard ones are F2M (frame-to-map) and F2F (frame-to-frame). For F2M, the map is a temporary feature map used only for odometry, it is independent from the map of rtabmap.