Re: Tilted 3D map with floam

Posted by nugu_ on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Tilted-3D-map-with-floam-tp10380p10624.html

Hi
thank you for your response. I’m using the current rtabmap version for ros noetic, so I think we are using the same version. I was able to fix the problem with the odometry getting lost. So now I use the exact same setup as you do and tested with the rosbag I sent you.
I still encounter the following problem: the odometry drifts over time. The start and endpoints of the trajectory driven in the rosbag are roughly the same, so the z coordinate of the odometry should be roughly 0 at the end of the trajectory. However, when using your setup, the z coordinate is at around -0.6 meters at this point.
As you mentioned the computational power of my system is limited. I played around with the "Icp/VoxelSize", "OdomF2M/ScanSubtractRadius", “Icp/Iterations” and “OdomF2M/ScanMaxSize” parameters. Although I was able to reduce the cpu usage, the accuracy of the odometry has not improved as a result.
In general, the result I get is the same as yours. At the end of the trajectory the slam algorithm is able to correct the drift with loop closure and the maps looks very good. However, until the loop closure is detected the map is off especially in z direction like the odometry. Here you can see a picture of the map before and after loop closure.

Before loop closure
Before loop closure.

Adter loop closure
After loop closure.

So at the end of the trajectory the map is correct and the robot is roughly at the same spot as in the beginning, while the odometry is still off and says the z coordinate is around -0.6 meters.
For my application it is important that the localization is as accurate as possible. I think with more accurate odometry, the error in the map before the loop closure would be less, too. So is there anything else I can do to improve the accuracy of the odometry?

I have another question regarding the setup of rtabmap, just for my understanding. Why do I have to set ICP parameters for the configuration of the rtabmap_slam node separately? Doesn’t the rtabmap_slam node just use the odometry provided by the rtabmap_odom node?

Thank you.