ArduPilot / ArduPilot/apm_planner

Add support for EKF_STATUS_REPORT for AC3.3

Open
#693 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
550
Forks
483
PR merge metrics
No merged PRs in 30d

Description

AC3.3 provides support for an EKF_STATUS_REPORT message.

The report has a "flags" field and a list of variances which provide details on how good the EKF thinks it's estimates are for various things like horizontal-position and compass.

From a previous discussion with Paul, we think the GCS should have an EKF details page or maybe just a little EKF icon which is red, amber or green. The GCS could look at all variances, and decide on the EKF icon's colour by taking the worst variance of the list and:
Below 0.5 = good (i.e. green)
0.5 ~ <0.8 = warning (i.e. amber)
0.8 or higher = bad (maybe trigger failsafe) (i.e. red)

```

EKF Status message including flags and variances
Flags
Velocity
Horizontal Position
Vertical Position
Compass
Terrain Altitude
Unused1
Unused2
Unused3

The flags message mirror’s our getFilterStatus() output. I’m wondering if we could remove the *PRED* enums?

Flags in EKF_STATUS message
set if EKF's attitude estimate is good
set if EKF's horizontal velocity estimate is good
set if EKF's vertical velocity estimate is good
set if EKF's horizontal position (relative) estimate is good
set if EKF's horizontal position (absolute) estimate is good
set if EKF's vertical position (absolute) estimate is good
set if EKF's vertical position (above ground) estimate is good
EKF is in constant position mode and does not know it's absolute or relative position
set if EKF's predicted horizontal position (relative) estimate is good
set if EKF's predicted horizontal position (absolute) estimate is good

```

Contributor guide

Open the contributing guide

Research direction

Start by locating the MAVLink message-handling code and the existing getFilterStatus() output in APM Planner. Trace how status data reaches the Qt interface, then determine whether the finished work should provide an EKF details page or a red, amber, or green indicator based on the reported variances and flags.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.