-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
EKF2: constant position aiding #23571
Conversation
This is similar to fake pos but is only used when the ekf has an external information telling it that the vehicle is not changing position. This information can then be used to keep a valid local position even when the vehicle isn't exactly at rest.
ce6c849
to
9053388
Compare
Do we need constant_pos and vehicle_at_rest? |
Because when the vehicle is armed and throttling up on a catapult it's not exactly at rest; it shakes and fusing the zero gyro updates or zero velocity updates could be harmful
"At rest" means that the vehicle is not moving at all, not rotating, nothing. "constant pos" is a bit more relaxed, it just means that the vehicle stays in the same location; it's not an issue if moved by a couple of cm or rotated. |
Overall looks good, but why do we need both |
|
I'll merge it as it works nicely in practice but we can still discuss about the name and I'll be happy to change it. |
Yes renaming to "constant position" (and "constant height") sounds much clearer. |
Solved Problem
When on a catapult, the vehicle might need to throttle up before triggering the catapult. This makes the "at rest" flag false (and this is correct) and the ekf goes into inertial dead-reckoning if no other aiding source is active.
Solution
Since we know that the vehicle doesn't move while on a catapult, tell the ekf that that the vehicle stays at a constant position. The EKF can then start a "valid" fake position fusion. Then, if a valid fake position is fused and that we expect to have airspeed fusion in air, the local position can remain valid too.
Changelog Entry
For release notes:
Test coverage
unit test