# Calculating IMU Variance-Covariance Matrix [closed]

Setup:

- Differential wheel robot.
- IMU: Two IMU on chasis (Adafruit 9DOF and Adafruit BNO055). Data: orientation, angular velocity, linear accel.
- Odometry: wheel encoders Robot_localization package (UKF)

Ideally, I would like to use real variance-covariance data for the imu sensors rather than generic default values.

If I recorded data from the imu whilst stationary, I could compute full covariance matrix (three 3x3 matrix) for each imu. With the imu stationary, none of the values are zero.

Question: would the stationary-based variance-covariance matrix potentially improve the robot_localization output or would I be better off just using default diagonal variances of say 0.01 and zero off-diaognal covariances throughout all matrix?

Although this is a robotics question, it isn't a ROS-related question. Perhaps you should ask this question on https://robotics.stackexchange.com instead. With so many questions on the site we try to keep them ROS-related.

OK, but since I can't get the ROS package robot_localization to give useful output, ie, pose and orientation that isn't worse and less erratic than odom alone, I thought this was quite a relevant question relating to package configuration.

You can edit your question to make it ROS-related and I'll re-open it. But, as-is, it isn't ROS-related.

A simple method for calculating streaming variances. Can be adapted to calculate real sensor data streaming covariances for ROS sensor message covariance matrix.