Pose accuracy and scale

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

Pose accuracy and scale

Steve Lee
Hello, I'm a beginner at rtabmap. Currently, robots are not used, but lids on the body Mapping in progress with L515 camera attached. I have a few questions about using the tool.

First, I wonder if there is a standard for judging the accuracy of poses. When coordinate values are generated, is there a criterion for determining whether the coordinates are correct?
Currently, I'm judging that the coordinates are accurate if the map is not distorted.

Secondly, I wonder how the coordinate values extracted by poses were scaled in preparation for reality.

Third, loop closure rejected phenomenon occurs frequently due to longer processing time. Even if the detection rate is reduced to 1 Hz, it often occurs, but I understand that it is caused by poor function of the PC. But if I can't change the PC right now, is there any way to improve it? If I need to improve my PC, which part should I improve?

If you have any information or documents related to this, I would appreciate it if you could let me know.
Reply | Threaded
Open this post in threaded view
|

Re: Pose accuracy and scale

matlabbe
Administrator
Hi,

Steve Lee wrote
Currently, I'm judging that the coordinates are accurate if the map is not distorted.
If you don't have a ground truth, this is often what we do. Another way is to make a loop during mapping, then check how much the robot drifted before the loop closure is detected.

Poses are scaled based on the data you feed it. If input poses are in meters, then the resulting poses will be in meters. If rtabmap is computed visual odometry, the scale will be based on the calibration of the camera and the depth values, which normally would be in meters.

Loop closure rejection happens more often because too underestimated odometry covariance or underestimated loop closure covariance. For other reasons, refer to warning message when it happens. For the graph optimization rejection, you may set RGBD/OptimizeMaxError higher than 3, or even 0 to disable it.

cheers,
Mathieu