rtabmap
rtabmap copied to clipboard
Issue while running robot in slam mode
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

Trying to prevent this tilt from occurring.
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:

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.