Skip to content

Add EKF covariance MAVLink support #32701

@lindicke

Description

@lindicke

Feature Request

Feature request

Is your feature request related to a problem? Please describe.
I am developing a multicopter control framework that explicitly accounts for state uncertainty (e.g., covariance-aware or stochastic control) running on a companion computer connected via MAVLink.

For this, I require access to the EKF state covariance, at least for position and velocity states in the local frame. Currently, ArduPilot exposes only aggregated or qualitative uncertainty metrics, which are insufficient for algorithmic use.

Describe the solution you'd like
Expose EKF covariance data (from EKF3) via MAVLink using existing standard messages such as:

  • LOCAL_POSITION_NED_COV (64#)
  • potentially other covariance messages depending on frame (e.g., global position, attitude)

Ideally:

  • Allow configurable streaming of covariance data
  • Allow selection of subsets (e.g., only position/velocity blocks) to reduce bandwidth

Describe alternatives you've considered
The MAVLink message EKF_STATUS_REPORT (193#) seems to be implemented but only provides very general information on velocity and position variance. It is therefore insufficient for:

  • constructing covariance matrices
  • performing uncertainty propagation
  • implementing stochastic or robust controllers

Estimating covariance externally is not viable, as it would require duplicating the onboard EKF or making strong assumptions about its internal behavior.

Platform
[ ] All
[ ] AntennaTracker
[ x ] Copter
[ ] Plane
[ ] Rover
[ ] Submarine

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions