Localization accuracy and some questions...

Posted by g.bartoli on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Localization-accuracy-and-some-questions-tp793.html

Hi Mathieu,
we are currently making some tests with the Wheel Odometry + Asus Xtion setup.
I prepared the mapping and localization launch files for both phases and everything seems to work fine. All the processes run on the robot except the teleoperation that is running from another desktop computer.

Now we would like to measure the real localization accuracy within our environment, so I have some questions... I'll try be as concise as possible! ;)

1) Is the visual odometry fused with wheel odometry during SLAM or is it ignored? I noticed that point clouds are aligned only using wheel odometry and then corrected only when loop closures are detected, is this true? In this configuration the "Odometry lost" error is impossible, right?

2) Is the "base_link" tf frame the actual (corrected) robot pose? It seems that the tf coordinates do not change after graph optimizations, only the map is changed (I think it's correct, because it avoids rapid changes in estimated robot position during navigation). Does "RGBD/OptimizeFromGraphEnd" change this behaviour?

3) What is the difference between "proj_map" and "cloud_map" published topics? It seems that the former is not optimized and not correctly aligned with the current robot pose. I noticed this in RViz by using the MapCloud plugin and the "Download map" action versus just adding the visualization of PointCloud2 topic.

4) Does the "reset" service actually resets odometry and try to relocalize or it just deletes the cached maps and starts from scratch?

5) During the localization mode, I noticed that when the robot is stationary and the map has been already optimized (the main closures has been successfully found), the graph still "oscillates" a bit, like the TORO optimization is continually finding local minima and never stabilizes going back and forth between two or three almost stable configurations. You talked about this change you made, but how can this problem be mitigated? I tried to increment TORO iterations and error threshold, but it still very unstable, maybe disable Robust Graph Optimization?

6) When a navigation goal will be set up while the map will be optimized, will the goal position accordingly be corrected?

Furthermore, I'm thinking about this setup for measuring metric accuracy:

1) Do a full teleoperated mapping session and save the database
2) Bring the robot in a new location and put some markers on the ground for reference
3) Restart in localization mode and wait for the robot to be relocalized within the map
4) Take note (measure in RViz?) of the distance of the robot base from some known physical landmarks
5) Teleoperate the robot to explore the environment and then come back to the initial (referenced) position
6) Measure again the distance from the known physical landmarks and evaluate difference against point (4)

What do you think about this? Is this a correct workflow or do you have some suggestions?

Many thanks,
Guido
~Guido