Open EvanZhang0710 opened 5 months ago
The "append" mode is implicitly handled with the loop closure detector and by setting Rtabmap/StartNewMapOnLoopClosure
parameter to true
(set here for mobile apps) to avoid adding new data to database before a loop closure is accepted with a previous map inside it. For each new image, we update the Bayes filter for loop closure detection, and in case of Append mode, we aggressively try to close the loop on the highest hypothesis (on the mobile app _aggressiveLoopThr
is zero):
https://github.com/introlab/rtabmap/blob/1ab0133f140a7de6c9e4b077bb9d5bdf82bf5942/corelib/src/Rtabmap.cpp#L2123-L2125
Computation of the loop closure constraint happens here: https://github.com/introlab/rtabmap/blob/1ab0133f140a7de6c9e4b077bb9d5bdf82bf5942/corelib/src/Rtabmap.cpp#L3007-L3025
If a constraint is found, rtabmap will start to appends new data to the database, otherwise the new image is discarded: https://github.com/introlab/rtabmap/blob/1ab0133f140a7de6c9e4b077bb9d5bdf82bf5942/corelib/src/Rtabmap.cpp#L4243-L4253
I understand that the IOS rtabmap uses loop detection to realize the "append" function. I want to play around with the "append" function and integrate new features into it. However, I am kind of confused about which file and which code chunk specifically implements this. Any suggestions?
Thanks!