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

Revision history [back]

Shorter answer: I had to dig through the robot_pose_ekf code, and the default covariance for the 3x3 IMU is just (0.01)^2 degrees converted into radians along the diagonal [so ~0.00017)^2]. You should probably set this to roll pitch yaw covariance in rads^2.


Long answer: the units in here don't look so great. What ROS will fill in as a default is listed as 0.01 degrees/sec. This should be because the robot_pose_ekf only filters on the differences between the last message and the current message. So this might mean that you'll actually need to send in the covariance of your angular velocities to get the best results, as this value does get multiplied by dt^2 later. However, the code does clearly read orientation_covariance and NOT angular_velocity_covariance.


Original question answer: This thesis seems to have laid the math out okay for getting the necessary covariance into RPW from quaternions. It's on page physical page 69 for reference, but I doubt you have your covariance in quaternion space. To get the quaternion covariances, you should be able to just inverse the math there.