Re: Issue with multi camera mapping

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Issue-with-multi-camera-mapping-tp7015p7019.html

For rgbd_sync nodelets, the approximate parameter is "approx_sync" not "approx".

You don't need to reduce the depth range before rtabmap. The 3D point cloud can be regenerated afterwards with different ranges. It is better to keep the whole range for feature matching.

For the single camera setup, is it the same launch file but with rgbd_cameras set to 1?

There is a wrong loop closure between node 1431 and 1202. This could have been avoided with RGBD/OptimizeMaxError=3. For better optimizations, I recommend to use Optimizer/Strategy=1 or 2. Gravity constraints are also ignored with Optimizer/Strategy=0, though here they won't be useful anyway as Reg/Force3DoF is true.

Also, the odometry covariance is way too small (sigma linear=0.000999868, sigma angular=3.16228e-5). If we set RGBD/OptimizeMaxError=3, good loop closures are rejected. You can set
<param name="odom_tf_linear_variance" value="0.0001"/>
<param name="odom_tf_angular_variance" value="0.0003"/>

As you are using a lidar, I would also enable RGBD/NeighborLinkRefining. Icp/CorrespondenceRatio can be set to default 0.1.

So after editing the database you shared to set all odometry covariances as above (rtabmap-databaseViewer->Edit->Update all neighbor covariances...), here some results.

rtabmap-reprocess --Optimizer/Strategy 1 --RGBD/OptimizeMaxError 3 --RGBD/NeighborLinkRefining true --Icp/CorrespondenceRatio 0.1 minimap_ProximityMaxGraphDepth_0_rerun_failed_covariance_corrected.db output.db

Your odometry:


With RGBD/NeighborLinkRefining=true (optimized without loop closures to see refinement effect):


Then with loop closures:


cheers,
Mathieu