CCNYRoboticsLab / imu_tools

ROS tools for IMU devices
Other
927 stars 431 forks source link

Confusion in filtered quaternion results #182

Open jinglun531 opened 1 year ago

jinglun531 commented 1 year ago

Hello @mintar,

I'm working with a ZED-M camera and using the zed_ros_wrapper to acquire raw_imu data and filtered_imu data. I wanted to use imu_tools to confirm whether I could merge the raw IMU data from the ZED camera (gyro and accel) to achieve the correct quaternion data shown in the filtered_imu topic provided by the ZED camera.

But I've stumbled upon an intriguing yet puzzling finding. When I set my ZED camera facing upwards, the Madgwick filter seems to match the fusion results with the ZED's own topic. However, using the complementary filter produces fused IMU results with the same quaternion value but in a different order as compared to the filtered_imu topic.

This scenario switches when I position the ZED camera to face forward. In this case, the Madgwick filter yields the correct quaternion value but in the wrong order. Interestingly, the complementary filter now gives the exact quaternion value and order as shown in the filtered_imu topic.

This incorrect quaternion order appears as follows: [x_est = y_gt, y_est = z_gt, z_est = -w_gt, w_est = x_gt]. As [x_est, y_est, z_est, w_est] is the quaternion fused via imu_tools, and [x_gt, y_gt, z_gt, w_gt] is the quaternion provided by ZED camera's filtered_imu topic.

And in both case, my reference coordinate is ENU.

I would appreciate if you could provide some insight into why this issue is occurring and perhaps suggest a possible solution.

Looking forward to your response. Many thanks in advance!

Fatyhich commented 1 year ago

I have a similar question, cause when I send my imu/data_raw to the madgwick_filter and try to fugure out what's hapenning, I'll got this: image

Maybe I have wrong launch file: `

` But I guess the result doesn't have to look like this.