ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
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.
2 | No.2 Revision |
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
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.
3 | No.3 Revision |
There's plenty of research on the topic. Just a quick Google search yields a lot:
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.