introlab / rtabmap

RTAB-Map library and standalone application
https://introlab.github.io/rtabmap
Other
2.74k stars 780 forks source link

Multisession #1164

Open TakahikoHasegawa03 opened 10 months ago

TakahikoHasegawa03 commented 10 months ago

Hi,

i am currently trying to use rtabmap (visual localisation) in outdoor environment but as expected the illumination changes affect a lot of the visual localisation. We have a system and environment where it doesn’t allow us to create and update the map frequently so we need to use the map that is a week or 2 weeks old. But because of the frequent changes in illumination, I struggle to localise. I have two questions: 1- I am now trying to use multisession to merge multiple maps to mitigate the matching problems. But when I try to merge three different maps (same location and map trajectory but different times) the message from rtabmap comes out to say the high variance detected new map starting. And cannot merge those maps. I tried using a few parameters including reducegraphs and different registeration algorithm but cannot still merge. What does this mean and how can I merge those maps together? Just so you know that I’m using rtabmap reprocess command line to merge the map.

2- for outdoor environment, I’m trying to change some parameter or modify some code to robustify the visual matching. What would be you advise? Which parameter to look, techniques to add, modify or what post processing needed. Thanks!

matlabbe commented 10 months ago

Based on Figure 4 of this paper, SuperPoint feature works best against illumination variation if you cannot remap often enough.

When rtabmap-reprocess says "high variance detected new map starting...", it means it detected a transition between two sessions (whihc is fine if you process multiple databases at once). The old data is still there. If after processing all sessions only the last one "appears" in the resulting database, it means rtabmap could not find any loop closures between the sessions. You could try manually add loop closures between locations of two sessions using rtabmap-databaseViewer to merge them or help tune Vis/ parameter to find the loop closures (so that new parameters could be used next time you try rtabmap-reprocess).