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

common: ODOMETRY add optional quality field #316

Merged
merged 1 commit into from May 15, 2023

Conversation

rmackay9
Copy link

@rmackay9 rmackay9 commented May 15, 2023

This adds the ODOMETRY quality field which is sent by the ModalAI VOXL cameras.

Simply having this field visible in the GCS's mavlink inspectors will allow users to more easily see the quality without using ModalAI's built-in web application (which requires using a separate Wifi connection). This also allows us to add better AP support for the camera's loss of position estimate. As a minimum we will be able to:

  1. Log the quality which will aid with support
  2. refuse to fuse the position and velocity unless the quality value is above some threshold (perhaps 10%)

This has been lightly tested to confirm that AP can extract the quality field from the ODOMETRY message and that it compiles OK.

This commit is pulled directly from upstream (see mavlink#1861)

Co-authored-by: james-modalai <60234918+james-modalai@users.noreply.github.com>
@tridge tridge merged commit 24e31ed into ArduPilot:master May 15, 2023
8 checks passed
@rmackay9 rmackay9 deleted the odometry-quality branch May 16, 2023 01:35
@Ryanf55
Copy link

Ryanf55 commented May 19, 2023

Can you explain what 100% quality actually means? Is it vendor dependent?

@rmackay9
Copy link
Author

Hi @Ryanf55,

As far as I know, only the VOXL cameras provide the quality field. 100% just means that the provided position, velocity etc are very accurate. In practical terms if the quality from a VOXL camera drops below about 10% the vehicle will start drifting and/or the EKF variances will start climbing 'cuz the values can't be fused well with IMU values.

In a similar case for the T265 which sends VISION_POSITION_ESTIMATE messages we consume some of the covariance numbers and then adjust the noise value passed into the EKF. A higher noise value lets the EKF know that the values coming in shouldn't be trusted as much and it results in the values having less impact on the resulting estimate (i.e. the estimate is not pulled very hard towards these latest sensor values).

@Ryanf55
Copy link

Ryanf55 commented May 20, 2023

VISION_POSITION_ESTIMATE

Thanks for the explanation!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants