rtabmap icon indicating copy to clipboard operation
rtabmap copied to clipboard

Issue while running robot in slam mode

Open mayek09 opened this issue 4 years ago • 1 comments

I am running robot with wheel odometry and 3d lidar in slam mode, after running robot on same path for number of times in loops i observed there was a tilt(yaw) in the map with respect to the map origin. In both the screenshot the lower axis is map_link and upper one is base_link. Also 'Memory thr' has been set to 200 nodes and no 'Time thr' in Memory Management
befor_tilt after_map_tilt

Trying to prevent this tilt from occurring.

mayek09 avatar Jun 17 '21 10:06 mayek09

When memory management is enabled, if old nodes are transferred to LTM (Long-Term memory), it can lose the original node where the robot started as the coordinate frame. The coordinate frame will then change to a newer node base on odometry pose at that time. When odometry is drifting, changing coordinate frame to newer node will include this drift. We can see the same effect in this paper, Figure 11:

Screenshot from 2021-07-15 08-56-50

It is not an error of taking screenshot in different rotation that caused the map to rotate, it is because the origin of the map is changing. In that case, we used RGBD/OptimizeFromGraphEnd=true, so this effect is happening continuously (latest node added is the origin of the map, instead of the oldest one). With RGBD/OptimizeFromGraphEnd=false, the map would rotate (or change origin) when the oldest node used as coordinate frame is transferred to LTM. As explained in the paper, for navigation, it is not a problem if goal interface of rtabmap is used, as when the graph is optimized or change origin, the goal is republished accordingly to new origin.

matlabbe avatar Jul 15 '21 13:07 matlabbe