Ask Your Question

Covariance Matrix for IMU data and wheel odometry for ROBOT_POSE_EKF

asked 2012-09-18 16:49:59 -0500

sai gravatar image

updated 2012-09-19 14:34:06 -0500

Kevin gravatar image

Ubuntu 12.04 and Fuerte.

I am planning to use Xsens IMU+GPS and wheel odometry of Pioneer 3 base for the ROBOT_POSE_EKF to estimate the pose of the robot.

I am wondering if any one can give the optimal covariance values for the IMU data and Wheel odom topic.


edit retag flag offensive close merge delete


How to change the value? Where can I find the file ?

sai gravatar image sai  ( 2012-09-18 18:24:51 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-09-19 02:24:16 -0500

cagatay gravatar image

updated 2012-09-19 02:41:43 -0500

Hello turtlebot uses 1e-3 covairance for wheel odometry x,y and Ch robotic's UM6 driver for ros uses 1e-6 covairance for yaw. If you don't give covairances for imu to robot_pose_ekf it will manually set covariance until imu sends covariance

// manually set covariance untile imu sends covariance
if (imu_covariance_(1,1) == 0.0){
  SymmetricMatrix measNoiseImu_Cov(3);  measNoiseImu_Cov = 0;
  measNoiseImu_Cov(1,1) = pow(0.00017,2);  // = 0.01 degrees / sec
  measNoiseImu_Cov(2,2) = pow(0.00017,2);  // = 0.01 degrees / sec
  measNoiseImu_Cov(3,3) = pow(0.00017,2);  // = 0.01 degrees / sec
  imu_covariance_ = measNoiseImu_Cov;

as you can see above. I think it will be easier for you starting with turtlebot's odom covariances increase them if you get poor odometry. Because picking covairances heavily depends on system configuration(encoders,encoders resolution,motors,wheels,slippage,speed controller,drive system type etc..)

For optimal values, I recommend you to perform an odometry calibration alogirthm such as UMBMark. Calibrate it as possible as it can be. Then set your covairances. Covairances show how much you depend on your odometry data. If covairances are high, this shows that you don't depend very much on your odometry data.

How to set covairances ? your wheel odometry data is being published by you generally from base_link frame to odom frame. Check here. Odometry message type and IMU message type have parts where you can set covairances. Check out here for odometry and Check out here for imu

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2012-09-18 16:49:59 -0500

Seen: 4,780 times

Last updated: Sep 19 '12