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

Update EKF2 overview #3533

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Update EKF2 overview #3533

wants to merge 3 commits into from

Conversation

bresch
Copy link
Member

@bresch bresch commented Jan 6, 2025

  • add terrain state
  • mention error-state formulation
  • mention Joseph covariance update
  • change position state to global position
  • update derivation link

- add terrain state
- mention error-state formulation
- mention Joseph covariance update
- change position state to global position
@bresch bresch requested a review from hamishwillee January 6, 2025 16:02
@bresch bresch self-assigned this Jan 6, 2025
Reducing the 'fusion time horizon' delay reduces errors in the complementary filter used to propagate states forward to current time.
:::

The EKF uses the IMU data for state prediction only. IMU data is not used as an observation in the EKF derivation.
The algebraic equations for the covariance prediction and measurement jacobians are derived using [SymForce](https://symforce.org/) and can be found here: [Symbolic Derivation](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/ekf2/EKF/python/ekf_derivation/derivation.py).
Covariance update is done using the Joseph Stabilized form to improve numerical stability and allow conditional update of independent states.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would a link be helpful or will all readers know what this is or be able to search? https://en.wikipedia.org/wiki/Kalman_filter#Deriving_the_posteriori_estimate_covariance_matrix

Copy link

No flaws found

Comment on lines +1 to +3
# Using PX4's Navigation Filter (EKF2)

This tutorial answers common questions about use of the ECL EKF algorithm.
This tutorial answers common questions about use of the EKF algorithm used for navigation.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bresch This is good. Did some minor fixes for style, such as running prettier. Also fixed up all the cross links where sensible to refer to the new name.

It is excellent to provide a descriptive name for this topic such as "Using PX4's Navigation Filter (EKF2)" because it helps you understand what this is for even if you don't know what EKF is, or if you know you want the navigation filter, but you don't know what filter PX4 uses.

But what is a navigation filter? I mean, this is not a term we've had before, so is this a term that drone developers will usually expect? Is that what they would search for? I am used to seeing "state estimator".

It might be worth adding a few words. I am not sure what they should be ... but to give you and idea of what I mean...

Suggested change
# Using PX4's Navigation Filter (EKF2)
This tutorial answers common questions about use of the ECL EKF algorithm.
This tutorial answers common questions about use of the EKF algorithm used for navigation.
# Using PX4's Navigation Filter (EKF2)
A navigation filter is an Xxxxx.
PX4's navigation filter is the EKF2 algorithm, as implemented in the ECL module.
This tutorial answers common questions about use of the EKF and the module.

Note, suggestion for your thought. If you think this is a great name and the text is sufficient we can merge this.

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.

None yet

2 participants