Robotics StackExchange | Archived questions

IMU covariance matrix for imu_filter_madgwick

Hi all,

I am using phidgets 3/3/3 IMU and is feeding it to the kalman filter (robotposeekf or robot_localization) along with the odometry data from the wheel encoders. I am using phidgets_imu and imufiltermadgwick to get the sensor_msgs/Imu message on imu/data topic. Currently, I am specifying the covariance matrix for the odometry message and I want to specify the covariance matrix for the sensor_msgs/Imu also. What is the best way to do it? When I do rostopic echo imu/data, the orientation covariance is a 0 matrix, therefore i want to specify a non-zero values for the covariance matrix for the IMU orientation.

Update:

I tried changing the ~orientation_stddev parameter but it did not have any effect and when I do rostopic echo imu/data, the orientation covariance is still a 0 matrix. When I looked at the source code, imu_filter.cpp, orientation_stddev is not being used anywhere. All other parameters are there and are being used except orientation_stddev. Also, I am using phidgets_imu to get the raw data from the IMU and in it, I can specify ~angular_velocity_stdev and ~linear_acceleration_stdev and it provides proper covariance matrix for angular velocity and linear acceleration but when I change orientation_stddev in imufiltermadgwick, nothing happens. Am I missing something? Can someone tell me how can I specify the orientation covariance for the IMU?

Thanks in advance.
Naman Kumar

Asked by Naman on 2015-09-24 21:35:21 UTC

Comments

Looking at this line and this line, it looks like you may need to use dynamic_reconfigure.

Asked by Tom Moore on 2015-11-10 12:28:29 UTC

what value did you end up using for orientation_stddev

Asked by JadTawil on 2017-10-07 12:33:22 UTC

Answers

Looking at the wiki and source code, it looks like you can use the ~orientation_stddev parameter.

Asked by Tom Moore on 2015-09-25 07:56:59 UTC

Comments