Rtabmap: Cannot compute pose

asked 2022-10-25 01:45:56 -0500

green bell pepper gravatar image

updated 2022-10-26 20:05:59 -0500

Hi, I am trying to create a small AMR using Jetbot, D435i and 2DLidar. And move_base is used for navigation.

I managed to confirm the scan topics from rplidarNode into icp_odometry and rtabmap and display them with rtabmapviz.

However, when mapping, I get the following Warn message and the mapping data is messed up (scan data does not display correctly on rviz. (scan data is not displayed correctly on rviz, it is displayed more out of alignment than it actually is). Once this Warn message begins to appear, Jetbot begins to move left and right and will no longer move relative to its destination.

I would like to know the cause and solution of this phenomenon.

[WARN] (yyyy-MM-dd HH:mm:ss) OptimizerG2O.cpp: 1157: : optimize() Computing marginals: vertex ### has negative hessian index (-1). Cannot compute last pose covariance.

In particular, this WARN message is sent out when the robot curves.

I refer to this literature. (Kinect + 2D laser)

Rtabmap Paramter

RTAB-Map parameter "Grid/RangeMax"="0"
RTAB-Map parameter "Icp/CorrespondenceRatio"="0.2"
RTAB-Map parameter "Icp/RangeMax"="0"
RTAB-Map parameter "Icp/VoxelSize"="0.05"
RTAB-Map parameter "RGBD/OptimizeMaxError"="4"
RTAB-Map parameter "RGBD/ProximityBySpace"="true"
RTAB-Map parameter "RGBD/ProximityPathMaxNeighbors"="10"
RTAB-Map parameter "Reg/Force3DoF"="true"
RTAB-Map parameter "Reg/Strategy"="1"
RTAB-Map parameter "Vis/CorType"="1"
RTAB-Map parameter "Vis/MaxFeatures"="600"
RTAB-Map detection rate = 1.000000 Hz
/rtabmap: subscribe_depth = false
/rtabmap: subscribe_rgb = false
/rtabmap: subscribe_stereo = false
/rtabmap: subscribe_rgbd = true (rgbd_cameras=1)
/rtabmap: subscribe_odom_info = true
/rtabmap: subscribe_user_data = false
/rtabmap: subscribe_scan = true
/rtabmap: subscribe_scan_cloud = false
/rtabmap: subscribe_scan_descriptor = false
/rtabmap: queue_size    = 10
/rtabmap: approx_sync   = true
edit retag flag offensive close merge delete

Comments

Sharing a database or a small rosbag would help to debug that kind of problem. If G2O is failing like this, it is often related to odometry covariance.

matlabbe gravatar image matlabbe  ( 2022-11-26 16:47:23 -0500 )edit