Re: Map Optimized before Loop Closure detected

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Map-Optimized-before-Loop-Closure-detected-tp1409p1414.html

Hi,

1. For graph optimization, there is no difference between neighbor or loop closure links. Neighbor links are added when a new node is created and added to graph (Memory::addSignatureToStm()), so to link with the previous node. Loop closure links are added in Rtabmap::process().

2. Loop closures are detected in the Bayes filter update.

3. The logic of map optimization is here. If the graph has changed (new loop closure links, new proximity links, nodes transferred to or retrieved from LTM), the map is re-optimized. This step is done at the end of the loop. Other graph optimizations may happen locally for proximity detections when laser scans are used (see here). map_optimizer node is not used by default (only for advanced usage), see  its description on ROS wiki.

4. Yes, if parameter "RGBD/OptimizeFromGraphEnd" is false (default is false), the robot has drifted and a loop closure is detected.

cheers