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 (robot_pose_ekf or robot_localization) along with the odometry data from the wheel encoders. I am using phidgets_imu and imu_filter_madgwick 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 imu_filter_madgwick, 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
Looking at this line and this line, it looks like you may need to use dynamic_reconfigure.
what value did you end up using for orientation_stddev