Posted by
dschnabel on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Best-Practices-for-Quick-Automatic-Localization-tp6881p6908.html
Thanks matlabbe! I think I got Apriltag detection working inside rtabmap as I'm seeing this log message when running in SLAM mode (usually it's a debug message but I changed it to be a warning):
[ WARN] (2020-09-13 15:06:39.272) MarkerDetector.cpp:202::detect() Marker 16 detected at xyz=0.511764,0.234447,0.014855 rpy=1.511407,-0.029899,-1.682522 (xyz=-0.214911,-0.011936,0.514296 rpy=3.075250,0.121314,-0.035816)
However when I run in Localization mode, a detected marker doesn't seem to do anything. I expect a loop closure upon marker detection but that's not the case:
[ INFO] [1600034878.456732073]: rtabmap (139): Rate=0.50s, Limit=0.000s, RTAB-Map=0.4311s, Maps update=0.0026s pub=0.0000s (local map=106, WM=106)
[ WARN] (2020-09-13 15:07:59.255) MarkerDetector.cpp:202::detect() Marker 16 detected at xyz=0.481575,-0.176148,0.018942 rpy=1.523897,-0.067092,-2.394404 (xyz=0.195343,-0.018307,0.480121 rpy=3.016185,0.830545,-0.108470)
[ WARN] (2020-09-13 15:07:59.433) Rtabmap.cpp:2562::process() Rejected loop closure 42 -> 140: Not enough inliers 0/70 (matches=10) between 42 and 140
[ INFO] [1600034879.496385973]: rtabmap (140): Rate=0.50s, Limit=0.000s, RTAB-Map=0.4409s, Maps update=0.0038s pub=0.0000s (local map=106, WM=106)
[ WARN] (2020-09-13 15:08:00.195) MarkerDetector.cpp:202::detect() Marker 16 detected at xyz=0.482238,-0.176602,0.018946 rpy=1.543665,-0.066101,-2.407760 (xyz=0.195803,-0.018312,0.480780 rpy=3.034993,0.843908,-0.108564)
[ WARN] (2020-09-13 15:08:00.356) Rtabmap.cpp:2562::process() Rejected loop closure 42 -> 141: Not enough inliers 0/70 (matches=8) between 42 and 141
[ INFO] [1600034880.413426270]: rtabmap (141): Rate=0.50s, Limit=0.000s, RTAB-Map=0.3899s, Maps update=0.0035s pub=0.0000s (local map=106, WM=106)
What am I missing?
Here is the database that was built with Apriltags. Is there a way to visualize the Apriltags in rtabmap-databaseViewer? This would be helpful for checking if the tags were properly saved to the database.