ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

There are a few things to clear up here. Firstly the size of the covariance matrix is not determined by the number of Cartesian dimensions but by the number of degrees of freedom. So in the case of a robot driving over a flat surface those degrees of freedom are the x & y position and the rotation angle. Hence why there is a 3x3 covariance matrix.

If the robot were an aerial drone for example there would be 6 degrees of freedom: x, y, z, roll, pitch and yaw. In this case the pose error would be represented by a 6x6 covariance matrix.

Covariance matrices describe not only the error in each variable (represented by the diagonal values) but also the coupling of these errors. This page has a good 2D example assuming the errors are Gaussian showing the meaning of the two off diagonal values.

Coming back to your 3x3 covariance matrix, the three diagonal values represent the variance of the error in x, y, and angle respectively. The two off diagonal values in the top left corner representing the coupling of the x and y errors, in this case they are negatively correlated. The remaining off diagonal values are all zero because there is no correlation between the error in the angle and the error in the position.

I hope this makes more sense now.