ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Two things to note:

1- Your robot is a skid-steer system (as you described). Any turning or zero radius turn will show wheel slippage (already your pure wheel odometry wont be 100% perfect). Its hard to get wheel odometry to naturally not have error, but a differential diff system would get you the closer to that point.

2- It also depends on what type of encoders your have; how much resolution does it have? Do they have hardware noise filters?

Bottom line is, having one feedback source (like wheel encoder data) for the location of your robot is not ideal; I would recommend that you use a kalman filter like for example the ROS package robot_localization and let it fuse your wheel odometry data, imu data, gps data, etc..

One thing more thing to keep in mind, I posted a question similar to this topic a while back (you can view it here) about assigning covariance values to your wheel odometry. In the post you will see in one of the answers on how you model how much error you are expecting with every increment of data. Your raw wheel odometry will need to be sending the covariances values in your setup for robot_localization.

If you set that up, you'll have a filtered odometry estimate ALOT closer then you would have with just pure wheel odometry, which you can then use as a input into SLAM (but from my own experience, i dropped slam after seeing how well of a odometry estimate robot_localization gave me)

Hope this helps a bit