MemoryThr parameter messes up the global costmap

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

MemoryThr parameter messes up the global costmap

seanxu112
When we set the MemoryThr parameter to 500, the global costmap is resized when the robot moves causing the cost to warp and no longer match the 2D map. The robot is then unable to navigate further with moveBase. Is there something you can think of that can be causing this issue and how can we go about fixing it?
I can post a picture/video of this happening if need be.
Thank you!
Reply | Threaded
Open this post in threaded view
|

Re: MemoryThr parameter messes up the global costmap

matlabbe
Administrator
screenshots coudl help indeed to see the problem. Setting Rtabmap/MemoryThr will limit the working memory of rtabmap (this enabled memory management of rtabmap like Rtabmap/TimeThr parameter). When 500 nodes in working memory is reached, some nodes will be transferred to long-term memory. This will cause an update of the global costmap. Some areas that were in the global map before may not be there anymore, disabling move_base to plan in those areas. It is why we implemented a topological planning approach in rtabmap on top of move_base mettric planning approach. To go back to an area "forgotten", we should send a goal to a node in the graph. For example, the node "12" is not anymore in the map, planning to 12 will make rtabmap remembers nodes to reach node "12" while sending intermediate goals to move_base to reach it. For more details about this planning approach, see this paper (Long-Term Online Multi-Session Graph-Based SPLAM with Memory Management)

cheers,
Mathieu