You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The problem is that odometry covariance in Tango version < 0.16.3 is set to 0.000001, most loop closures are rejected because RGBD/OptimizeMaxError is now a ratio, not absolute value. Since 0.16.3, the linear covariance is 0.0001 instead to work with new behavior of RGBD/OptimizeMaxError.
To fix this, we should update the covariance saved in odometry links of the database.
Get the version of the database: $ sqlite3 rtabmap.db "select version from Admin"
Edit linear covariance from 0.000001 to 0.0001:
If version >= 0.13.0:
$ sqlite3 rtabmap.db "update Link Set information_matrix=x'000000000088C340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088C340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000088C3400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080842E410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080842E410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080842E41' where type=0"
Note: 0x000000000088C340 is 10000, which means linear variance is 1/10000 = 0.0001
0x0000000080842E41 is 1000000, which means angular variance is 1/1000000 = 0.000001
// To query information matrix already in a database in hex format:
$ sqlite3 rtabmap.db "select hex(information_matrix) from Link where type=0"
If version < 0.13.0:
$ sqlite3 rtabmap.db "update Link Set rot_variance=0.000001, trans_variance=0.0001 where type=0"
When reprocessing the database, if the parameters from the database are used, make sure to modify RGBD/OptimizeMaxError from 0.1 to 3. In the GUI, go the Preferences->Graph Optimization->"Reject loop closures if optimization error ratio...".
$ sqlite3 chalet1.db "select version from Admin"
0.12.3
$ sqlite3 chalet1.db "update Link Set rot_variance=0.000001, trans_variance=0.0001 where type=0"
$ sqlite3 chalet2.db "update Link Set rot_variance=0.000001, trans_variance=0.0001 where type=0"
$ sqlite3 chalet3.db "update Link Set rot_variance=0.000001, trans_variance=0.0001 where type=0"
$ sqlite3 chalet4.db "update Link Set rot_variance=0.000001, trans_variance=0.0001 where type=0"
To overwrite RGBD/OptimizeMaxError in the database, it is also possible by command line:
Get the parameters string:
$ sqlite3 chalet1.db "select parameters from Info"
Copy/paste the whole string in notepad, then modify RGBD/OptimizeMaxError value from 0.1 to 3.0:
The problem is that odometry covariance in Tango version < 0.16.3 is set to 0.000001, most loop closures are rejected because
RGBD/OptimizeMaxError
is now a ratio, not absolute value. Since 0.16.3, the linear covariance is 0.0001 instead to work with new behavior ofRGBD/OptimizeMaxError
.To fix this, we should update the covariance saved in odometry links of the database.
$ sqlite3 rtabmap.db "select version from Admin"
RGBD/OptimizeMaxError
from0.1
to3
. In the GUI, go the Preferences->Graph Optimization->"Reject loop closures if optimization error ratio...".Example
Example with databases from Multi Session Mapping with RTAB Map Tango tutorial:
To overwrite
RGBD/OptimizeMaxError
in the database, it is also possible by command line:RGBD/OptimizeMaxError
value from0.1
to3.0
:EDIT (October 16 2018): updated to set linear variance to 0.0001 and angular variance to 0.000001
The text was updated successfully, but these errors were encountered: