rtabmap icon indicating copy to clipboard operation
rtabmap copied to clipboard

IOS "append" function

Open EvanZhang0710 opened this issue 1 year ago • 1 comments

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!

EvanZhang0710 avatar Jun 17 '24 17:06 EvanZhang0710

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

matlabbe avatar Jun 23 '24 21:06 matlabbe