Skip to content
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

Proposed UpperTriangularCovariance message #138

Open
wants to merge 1 commit into
base: jade-devel
Choose a base branch
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.
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