ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# 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]

edit retag close merge delete

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.

( 2015-01-15 11:55:53 -0600 )edit

Sort by » oldest newest most voted

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

more

Anas, its very old question, and the person is not looking here from last june.

( 2015-01-15 11:58:26 -0600 )edit

It is better late than never :)

( 2015-01-16 03:40:03 -0600 )edit

Hmm.. Impressive.

( 2015-01-16 04:12:20 -0600 )edit