# Calculate covariance matrix from x,y,z data of /odom

I've recorded a bag file from a custom robot (in real world) that does not provide covariane matrix and I want to use /odom to feed an ekf, but covariance matrix is 0. How can I calculate it?

It's a sample of /odom:

pose:
pose:
position:
x: 0.082
y: 0.507
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -0.789272088731
w: 0.614043622188
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
twist:
twist:
linear:
x: 0.104
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0663225115758
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]


Originally posted by maysamsh on ROS Answers with karma: 139 on 2013-11-06

Post score: 0

Comment by KDROS on 2015-01-15:
which package you are using? Your question may help me in some points. I am also facing same problem. I want to use robot_localization package.

you can use diagonal matrix for the covariance. each element in the diagonal entries is your best expectation about the odom variance.

Originally posted by Anas Alhashimi with karma: 179 on 2015-01-15

This answer was ACCEPTED on the original site

Post score: 1