The position estimator does not trust the GPS right now
What ArduPilot says:
- PreArm: GPS glitching
The EKF, ArduPilot's position estimator, is using the GPS and finds it unreliable at this moment. Either the speed accuracy the receiver itself reports is worse than 1.5 m/s (it must come back under 1.0), or for more than 1 s the GPS position and speed have disagreed with what the inertial sensors predict; 10 s of agreement are needed to clear that. The check runs when the flight mode, a circular or polygon fence, or ARMING_NEED_LOC needs a position.
What to do, most likely first
The GPS has only just got its fix, or has a poor view of the sky: its position still jumps.
FixWait in the open with the copter still; the message clears about 10 s after the data settles.
The copter was being carried while the estimator was settling.
FixPut it down where it will take off and leave it still.
The copter's own electronics disturb the receiver.
CheckThe satellite count drops and the reported accuracy worsens when the video transmitter or camera is powered.
FixMove the GPS away from them.
The GPS is right and the inertial side is wrong: a bad accelerometer calibration or a compass error makes the prediction drift.
CheckOther pre-arm messages about EKF variance, the compass or the accelerometers come with it.
FixDeal with those first: calibrate the accelerometers and the compass, then reboot.
Where to do it:Failsafe ExplainerSetup & Tuning Guide
The code that sends it
PreArm: GPS glitching
ArduCopter/AP_Arming.cpp AP_Arming_Copter::mandatory_gps_checks() · Open in ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::mandatory_position_checks() · Open in ArduPilot Copter-4.7.1