Skip to content

Proposed UpperTriangularCovariance message #138

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

tfoote
Copy link
Member

@tfoote tfoote commented Nov 29, 2018

In most of our messages right now we transport covariance matrices as 36 64bit numbers.
This reduces it to only 21 as well as reducing the floating point representation to 32bits.
This makes it take up only 29% as much space on the wire and in memory.
The precision of the floating point values is unlikely to be important as the value is designed to capture the magnitude of the uncertainty so the 32bit representation should be fine.
And the covariance matrices are symmetric so the other half of the matrix is redundant.

With some helper methods to convert to and from full matricies in common linear math libraries it should not effect workflows.
And by standardizing this common checks can also be performed in a standardized way instead of the current ad-hoc method in each implementation.

This has been inspired by the URT covariance matrix implementation used in the vehicle_odometry.msg recently adopted by PX4: https://github.com/PX4/Firmware/pull/9895/files#diff-0f57b02da78e5e981838d756f46d7462R56

This is intended to be used mostly as a submessage for an evolution of #87

In most of our messages right now we transport covariance matrices as 36 64bit numbers.
This reduces it to only 21 as well as reducing the floating point representation to 32bits.
This makes it take up only 29% as much space on the wire and in memory.
The precision of the floating point values is unlikely to be important as the value is designed to capture the magnitude of the uncertainty so the 32bit representation should be fine.
And the covariance matrices are symmetric so the other half of the matrix is redundant.

With some helper methods to convert to and from full matricies in common linear math libraries it should not effect workflows.
And by standardizing this common checks can also be performed in a standardized way instead of the current ad-hoc method in each implementation.
@sloretz
Copy link
Contributor

sloretz commented Apr 25, 2025

Thank you for the PR!

Unfortunately I don't think we should merge this one.

ROS Noetic will reach end-of-life on May 31st, 2025. Every change comes with a risk of introducing regressions, and there isn't much time left to fix them. I'm closing pull requests that add features so that the remaining time is allocated towards bug fixes and compatibility with newer Ubuntu distros.

@sloretz sloretz closed this Apr 25, 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.

2 participants