About 30% of public PX4 drone logs have a GPS delay setting more than 50 ms off, and EKF2's own residuals agree
Description and use
About 30 % of public PX4 logs have a GPS delay setting that differs by more than 50 ms from the true delay. EKF2 residuals confirm the direction of the mismatch, enabling data‑driven adjustment of the delay setting.
Problem
PX4 flight logs show that many vehicles use a GPS delay setting that is more than 50 ms different from the actual delay of the GPS samples, potentially degrading state estimation.
Outcome
Approximately 30 % of public PX4 logs had a GPS delay setting that differed by more than 50 ms from the true delay. EKF2 residuals reliably indicated the direction of the mismatch, allowing users to adjust the delay setting based on measured data rather than the default.
Workflow
- 1. Download public flight logs from PX4 Flight Review.
- 2. Run gps_lag.py to compare GPS velocity changes with IMU acceleration to estimate true GPS delay.
- 3. Check EKF2 GPS velocity innovations to confirm the sign of the delay mismatch.
- 4. If the measured delay differs by >50 ms from the log’s EKF2_GPS_DELAY, adjust the parameter to the measured value.
- 5. Re‑run the check to verify consistency.
- 6. For PX4 v1.18+, use per‑receiver delay parameters SENS_GPS0_DELAY/SENS_GPS1_DELAY instead of EKF2_GPS_DELAY.
Evidence
96-98% of vehicles ran the default.
29.6% of logs were more than 50 ms off their own setting.
In 25 of 27 logs more than 50 ms off their setting, EKF2's residuals lean the same way.
The PR's motivation is multi‑receiver setups. Our numbers suggest the receiver model alone matters too.
- Record date: 2026-11-02T10:13:50.626Z