Re: rtabmap process error

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/rtabmap-process-error-tp1031p1062.html

Hi Daniel,

Too bad that it doesn't crash with robot mapping demo! It would have been easier to test here. Maybe it could be a problem with the compiler optimization (in Release mode) on your platform.

The [ERROR] messages are not a crash, it means that the received odometry is null, or the odometry is lost.

1- OpenCV should be built with CUDA support, then in RTAB-Map the option should become available. Note that it will only work with OpenCV2 at this time. To activate it, you should set this parameter (for rgbd_odometry and rtabmap nodes if ORB is used in both):
<param name="ORB/Gpu" type="string" value="true"/>

2- The odometry parameters are here. Note that it is a combination of speed and features count/quality/distribution that would decrease the chance of odometry lost. You could extract 1 million features but if it takes 5 seconds to compute, maybe no correspondences could be found with the previous frame. Here some parameters I use sometimes (along other default values of 0.10.12):
Odom/EstimationType=1  (Optical flow may find more correspondences from frame to frame)
Odom/Strategy=1        (PnP transformation estimation generates more inliers)
Odom/PnPReprojError=2  (used for PnP, the default 5 is high, it is reduced to 2 in recent versions)
GFTT/MinDistance=10    (you are using HD images, increase this distance to have features more equally distributed in the image)
Odom/MaxFeatures=1500  (you can also increase the maximum tracked features)

EDIT
Like other odometry approaches, the odometry can be automatically reset to latest valid pose when lost:
Odom/ResetCountdown=1
This will make the odometry continuously sends poses, but if it becomes lost, the map may be inconsistent at that specific time.

cheers,
Mathieu