Skip to content

Conversation

4lon
Copy link

@4lon 4lon commented May 7, 2025

The driver was using 3 out of 4 quaternion standard deviation values and populating the ROS2 IMU message orientation covariance matrix with them.

This covariance matrix is intended to be row major about the x, y, and z axes as detailed here:
https://docs.ros2.org/foxy/api/sensor_msgs/msg/Imu.html

As such, I'm not sure it is valid to populate this matrix with standard deviation values from a quaternion. I think a more representative value can be obtained by using ANPP 26, euler standard deviation, and converting it to covariance.

I have replaced the ANPP 27 decoder instead of adding the ANPP 26 decoder because ANPP 27 doesn't seem as usable for the message types included in this driver.

Alon Nusem added 2 commits May 7, 2025 13:41
Original decoder used quaternion standard deviation elements Q0, Q1, and
Q2 directly as covariances around the x, y, and z axes in the IMU
message. This doesn't seem like a valid way to interpret these values.

Euler standard deviation converted into covariance has replaced this to
give better values in the IMU message covariance matrix.
@4lon 4lon closed this May 26, 2025
@4lon 4lon deleted the imu-covariance branch May 26, 2025 23:15
@4lon 4lon restored the imu-covariance branch June 2, 2025 06:11
@4lon 4lon reopened this Jun 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant