2
$\begingroup$

Weirdly enough, my robot platform which has an official ROS package supported by a manufacturer doesn't provide any covariance matrices of its sensors. So, I'm basically trying to estimate these values for odometery and IMU using collected raw sensor readings to use the Kalman filter. For odometer, I feel like putting the robot into a static position (i.e., initial position) and collecting sensor readings will be enough to estimate its covariance.

What I'm a bit confused about is the way to calculate the covariance for IMU. So far, sensor readings collected in a static position show some random oscillation only in angular velocity and linear acceleration. Orientation never shows any noise in this situation. Would it be enough to follow the exactly same way I did for the odometer or should I do something else?

$\endgroup$

1 Answer 1

2
$\begingroup$

Usually, IMU manufacturers implement some kind of filter to remove the noise these days, therefore the probability is your IMU is not throwing raw values. Nevertheless, you can initiate the sensor covariance matrix by giving some small values on the diagonal let's say 0.1 or 0.05. Also, if you really would like to go one step further, you can do some specific rotation a few times (5 times) and collect the data. Then calculate the standard deviation of this data. Now initiate the covariance matrix with the variance (square of the standard deviation) of the data on the diagonal. It's always trial and error, and in my personal experience, you don't have to worry about the covariance matrix that much, initiate with some small values and the Kalman filter will converge anyway.

$\endgroup$
3
  • $\begingroup$ Thank you for your valuable comment! By the way, does the accuracy of these noise covariances affect to the converging speed by any chance? $\endgroup$
    – HOJUN LEE
    Commented Oct 12, 2021 at 17:05
  • $\begingroup$ Understand that covariance matrix is simply your way to tell the Kalman filter how much you trust that particular sensor, smaller value in the covariance matrix's diagonal means more trust and vice versa. Kalman filter will converge to some value regardless but it may not be the ground truth. With some trial and error, you will find some sweet spot for the Kalman filter that how much it should weigh its prediction against the measurement. $\endgroup$
    – Franky
    Commented Oct 13, 2021 at 2:47
  • $\begingroup$ I got it. Thank you! $\endgroup$
    – HOJUN LEE
    Commented Oct 13, 2021 at 22:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.