Hi,
It seems the exact same texture can be seen on the wall at the different locations:
It is indeed the same problem than in this post:
https://github.com/introlab/rtabmap/wiki/Robust-Graph-OptimizationThose graph checks are done by default in mapping mode, but for localization mode it was not handled before this year (actually I did an update on December 2021 to fix that problem). You can increase parameter "RGBD/MaxOdomCacheSize" (default 10). Here how it works:
On localization, rtabmap will use the past X odometry poses to check if the localization makes sense based on the previous localizations and the actual odometry computed. If no localizations happened since the last X updates, rtabmap will likely accept the teleportation (re-localization). However, if there was a previous localization inside the last X updates, the odometry path (up to X last poses) will be optimized using the past re-localization constraints. Based on "RGBD/OptimizeMaxError", if the odometry path is too much deformed (bad re-localization), localization will be rejected (which would be your case).
With RGBD/MaxOdomCacheSize set to 10 and Rtabmap/DetectionRate set to 1, it means it will only check the past 10 seconds. You could increase RGBD/MaxOdomCacheSize to 100/200 to reject a new re-localization if it doesn't deform too much the odometry constraints of the past 100/200 seconds.
cheers,
Mathieu