Hi,
I’m currently seeing behaviour that looks very similar to what was described in #27729, and wanted to check if this is expected or if there is a recommended way to handle it.
In our setup we have both GPS and Visual Odometry available:
- GPS is coming from the autopilot as usual
- Visual odometry is generated on a companion computer and sent via MAVLink
What we observe is:
- During a GPS denial event, the system runs well using visual odometry (stable position, low variance)
- When GPS comes back online, the GPS position can be significantly wrong (we’ve seen jumps on the order of ~300 m)
- Despite this being clearly inconsistent with the current EKF state (which is stable from visodom + IMU), the EKF appears to accept or reset toward the GPS position
- This results in a large position jump and loss of stability / failsafe
Our expectation was that the EKF would reject this first GPS inputs after it comes back (based on innovation / consistency checks) and continue using the visual odometry until the GPS becomes healthy again.
At the moment we are sending visual odometry as a GPS-like input (fused with GPS), but we are considering switching to MAVLink ODOMETRY (ExternalNav). However, that change is non-trivial on our side, so before doing that we wanted to check:
- Is this behaviour expected when mixing GPS and ExternalNav sources?
- Is there a recommended configuration to prevent EKF resets to bad GPS when it comes back online?
- Are there parameters (e.g. innovation gates, source selection, lane switching behaviour) that can be tuned so that EKF continues to trust visodom over GPS in these cases?
I noticed #27729 mentions resets to GPS even when it is not part of the active source set, so I’m wondering if what we’re seeing could be related to similar reset / lane-switch logic.
Any guidance on best practice for handling GPS recovery after denial (especially when external nav is available and reliable) would be really helpful.
Thanks!