SLAM Odometry drift
Hello,
I work on one of my studies project with the robotino. My next task is to build a map with the gmapping package. For this, I am using a Microsoft Xbox 360 Kinect V1, which transforms pointcloud data to a laserscan data with the pointcloud_to_laserscan package. I am working on a gazebo simulation which I am made a simple environment for my robotino. I know that odometry drift is one of the most problems to build a map. But when the robotino drives without gmapping than the odometry is still there, where the robot started(see the picture).
I read also on this forum, that when the odometry has some drift you can it easy testing. You increase the decay time on the laserscan in Rviz and drive slowly to the object. When you get more laserscan lines, than the odometry has some drift.
So then I tried the SLAM Algorithm and I get the following result:
You see that the odometry has some little drift, but the error gets bigger and bigger when the robot drives more and more. I can't explain, why the odometry drift increases it with the gmapping algorithm. Please I need an explanation for the Increase of the drift. That is my current parameters on the gmapping package.
map_update_interval: 5.0
maxUrange: 6.0
maxRange: 8.0
sigma: 0.05
kernelSize: 1
lstep: 0.05
astep: 0.05
iterations: 5
lsigma: 0.075
ogain: 3.0
lskip: 0
minimumScore: 450
srr: 0.1
srt: 0.2
str: 0.1
stt: 0.2
linearUpdate: 0.01
angularUpdate: 0.01
temporalUpdate: -1.0
resampleThreshold: 0.5
particles: 80
xmin: -10.0
ymin: -10.0
xmax: 10.0
ymax: 10.0
delta: 0.01
llsamplerange: 0.01
llsamplestep: 0.01
lasamplerange: 0.005
lasamplestep: 0.005
My idea was to recalculate the covariance matrix, but I think it isn't the correct way to improve the SLAM algorithm. What can I do to improve the map?
regards, Markus
The reason for the odometry drift are the parameters: srr, srt, str and stt. They simulated the error for the angle and translation movement.