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

Revision history [back]

There's plenty of research on the topic. Just a quick Google search yields a lot:

https://www.researchgate.net/publication/37441222_Estimating_the_Odometry_Error_of_a_Mobile_Robot_during_Navigation https://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/kalman/chong_accurate_odometry_error.pdf

But as a naive (and possibly not completely mathematically valid) method, you can use some ground truth. Drive your robot a known distance (measured with tape on the floor). Look at the difference in what your wheel encoders estimate as the distance traveled and what it actually travelled. Count the number of velocity measurements that were generated in between, and then you know the error per measurement. Square that value and make it your linear velocity covariance. You may want to repeat this for each axis, as your robot is holonomic.

The good news is that, if you don't have the time to do it properly, Bayes filters tend to behave well even when the error is over-estimated.

There's plenty of research on the topic. Just a quick Google search yields a lot:

https://www.researchgate.net/publication/37441222_Estimating_the_Odometry_Error_of_a_Mobile_Robot_during_Navigation

  • https://www.researchgate.net/publication/37441222_Estimating_the_Odometry_Error_of_a_Mobile_Robot_during_Navigation
  • https://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/kalman/chong_accurate_odometry_error.pdf

But as a naive (and possibly not completely mathematically valid) method, you can use some ground truth. Drive your robot a known distance (measured with tape on the floor). Look at the difference in what your wheel encoders estimate as the distance traveled and what it actually travelled. Count the number of velocity measurements that were generated in between, and then you know the error per measurement. Square that value and make it your linear velocity covariance. You may want to repeat this for each axis, as your robot is holonomic.

The good news is that, if you don't have the time to do it properly, Bayes filters tend to behave well even when the error is over-estimated.

There's plenty of research on the topic. Just a quick Google search yields a lot:

  • https://www.researchgate.net/publication/37441222_Estimating_the_Odometry_Error_of_a_Mobile_Robot_during_Navigation
  • https://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/kalman/chong_accurate_odometry_error.pdf

But as a naive (and possibly not completely mathematically valid) method, you can use some ground truth. Drive your robot a known distance (measured with tape on the floor). Look at the difference in what your wheel encoders estimate as the distance traveled and what it actually travelled. Count the number of velocity measurements that were generated in between, and then you know have a rough estimate for the error per measurement. Square that value and make it your linear velocity covariance. You may want to repeat this for each axis, as your robot is holonomic.

The good news is that, if you don't have the time to do it properly, Bayes filters tend to behave well even when the error is over-estimated.