loop-closures though robot is static

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

loop-closures though robot is static

akunin
Hi,
We noticed that rtabmap running local loop-closures and update pose even when robot is static and smallDisplacement is true.
Odometry indeed has changed a bit (0.0000x values).
What's the reason for it?
Log is below:

[rtabmap-5] [REPORT] (2024-01-29 11:30:03.739) Rtabmap.cpp:1749::process() Last localization pose = xyz=1.976299,0.899696,0.000000 rpy=0.000000,0.000000,-0.480990, closest node=136 (1.714005 m)
[rtabmap-5] [REPORT] (2024-01-29 11:30:03.741) Rtabmap.cpp:2149::process() Highest hypothesis=16, value=0.162588, timeHypothesesCreation=0.000020s
[rtabmap-5] [REPORT] (2024-01-29 11:30:03.820) Rtabmap.cpp:3086::process() loopClosureVisualInliers: 75, loopClosureVisualInliersRatio: 0.039767, loopClosureVisualMatches: 201
[rtabmap-5] [REPORT] (2024-01-29 11:30:03.821) Rtabmap.cpp:3341::process() maxLinearErrorRatio: 0.195929
[rtabmap-5] [REPORT] (2024-01-29 11:30:03.821) Rtabmap.cpp:4043::process() Loop closure detected! Node id 8534 with node id 16
[rtabmap-5] [REPORT] (2024-01-29 11:30:03.826) CoreWrapper.cpp:1564::commonMultiCameraCallbackImpl() Process frame 8306 <<< finished (607.00 ms)
[rtabmap-5] [REPORT] (2024-01-29 11:30:03.827) CoreWrapper.cpp:1282::commonMultiCameraCallbackImpl() Process frame 8307 >>> starting
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.304) Memory.cpp:5483::createSignature() Markers detected = 0
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.328) Rtabmap.cpp:1749::process() Last localization pose = xyz=1.971227,0.898475,0.000000 rpy=0.000000,0.000000,-0.484928, closest node=136 (1.717869 m)
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.329) Rtabmap.cpp:2149::process() Highest hypothesis=16, value=0.159489, timeHypothesesCreation=0.000018s
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.399) Rtabmap.cpp:3086::process() loopClosureVisualInliers: 74, loopClosureVisualInliersRatio: 0.039764, loopClosureVisualMatches: 190
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.400) Rtabmap.cpp:3341::process() maxLinearErrorRatio: 0.209175
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.401) Rtabmap.cpp:4043::process() Loop closure detected! Node id 8535 with node id 16
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.406) CoreWrapper.cpp:1564::commonMultiCameraCallbackImpl() Process frame 8307 <<< finished (579.00 ms)
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.407) CoreWrapper.cpp:1282::commonMultiCameraCallbackImpl() Process frame 8308 >>> starting
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.873) Memory.cpp:5483::createSignature() Markers detected = 0
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.902) Rtabmap.cpp:1749::process() Last localization pose = xyz=1.978642,0.893781,0.000000 rpy=0.000000,0.000000,-0.470291, closest node=136 (1.717591 m)
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.904) Rtabmap.cpp:2149::process() Highest hypothesis=16, value=0.159171, timeHypothesesCreation=0.000021s
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.984) Rtabmap.cpp:3086::process() loopClosureVisualInliers: 65, loopClosureVisualInliersRatio: 0.034704, loopClosureVisualMatches: 211
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.985) Rtabmap.cpp:3341::process() maxLinearErrorRatio: 0.154534
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.986) Rtabmap.cpp:4043::process() Loop closure detected! Node id 8536 with node id 16
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.990) CoreWrapper.cpp:1564::commonMultiCameraCallbackImpl() Process frame 8308 <<< finished (583.00 ms)
[rtabmap-5] [REPORT] (2024-01-29 11:30:04.993) CoreWrapper.cpp:1282::commonMultiCameraCallbackImpl() Process frame 8309 >>> starting
Reply | Threaded
Open this post in threaded view
|

Re: loop-closures though robot is static

matlabbe
Administrator
Is it in localization mode?

The small displacement may be ignored in localization mode. In mapping mode, loop closures can be detected with small displacement only if the previous node doesn't have a loop closure. This check as implemented right now would not work in localization mode as new nodes are always disconnected from previous nodes in the graph. I created an issue about that.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: loop-closures though robot is static

akunin
In reply to this post by akunin
yes, it's localization mode. result pose is changing though robot is static
Reply | Threaded
Open this post in threaded view
|

Re: loop-closures though robot is static

matlabbe
Administrator