# Paper related to RTABMAP odometry

Hi!

Is there any paper related to the rtabmap_odometry node, especially presenting the various algorithms used (SURF features and RANSAC matching function according to this paper

I only found papers about the back end solutions... As well as info in the official forum

Thanks a lot! Quentin

edit:

1) In the case of the ICP refining, is it possible to use a "known" 3D point cloud and then to use it as a "skeleton" in which the odometry is computed? ICP should align the local point cloud and this known global point cloud.

2) As I am not an expert in image processing, could you advice me the most efficient solution for odometry tracking? My system should run on a UAV - computing power limited - with airborn 2D laser scanner and kinect.

edit retag close merge delete

@quentin: please don't post answers, unless you are actually answering your own question. For everything else, use comments or edit your original question. You can use the edit button/link for that (below your question). Thanks.

( 2016-08-23 02:50:52 -0500 )edit

Sort by » oldest newest most voted

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 correspondences.

• 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 Perspective-n-Points (cv::solvePnPRansac).

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.

EDIT

1. No, it is not possible.
2. 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).

cheers

more

Thanks a lot for these answers! I edited my initial post with two additional questions @matlabbe might be able to answer!

( 2016-08-23 03:09:57 -0500 )edit

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!

( 2018-04-05 11:55:38 -0500 )edit

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.

( 2018-04-06 10:59:17 -0500 )edit