,

Dead Reckoning: The GPS Failsafe You Already Own

Dead reckoning is what every drone does the instant GPS drops — and it is the only GPS-denied “solution” that comes free with hardware you already own. It is also the only one whose error grows without bound. Its real job is buying seconds: hold attitude, hold altitude, land, or hand over to a real sensor. Not flying missions.

This is part of the GPS-denied navigation series: six solutions compared. See also the GPS-denied overview.

How it works

When GNSS drops, the autopilot’s estimator (PX4 EKF2 / ArduPilot EKF3) keeps integrating the IMU: gyroscopes track rotation, accelerometers track acceleration, and double-integrating acceleration from the last known position gives a position estimate — dead reckoning. The compass/magnetometer holds heading. The barometer holds the vertical channel: air pressure converts to altitude, so the aircraft can at least keep height while horizontal position degrades.

In PX4, the height reference is selectable (EKF2_HGT_REF: 0 = baro, 1 = GPS, 2 = range sensor, 3 = vision); baro is the default anchor. The autopilot’s behavior on loss depends on mode: PX4’s default Automatic mode resets the EKF when GNSS is lost with no other position source, which can trigger a position-loss failsafe and drop the aircraft out of position-controlled modes (mission stops; typical outcomes are hover-then-land, altitude-hold, or “blind land”). PX4 v1.17 adds an experimental Dead-Reckoning mode (EKF2_GPS_MODE = 1) that stops fusing unreliable GNSS and suppresses EKF resets while other velocity/position sources are fused, so missions can continue through intermittent outages.

ArduPilot EKF3 fuses GPS, baro, airspeed, compass, and (if fitted) optical flow/rangefinder; on GPS loss with no alternative aiding it triggers the GPS failsafe (Land or AltHold). ArduPilot also has a DCM fallback if EKF3 stops trusting GPS while the receiver still reports 3D lock.

DIY space: test it in simulation, free

Zero extra hardware to start: every Pixhawk-class board already has an IMU and barometer. The experiment is free in simulation: PX4 SITL/Gazebo or ArduPilot SITL — arm with GPS, fly, then kill/deny GPS and watch the EKF.

Concrete template: Edan Raymond’s ArduPilot SITL project (GPS-denied waypoint recovery) built EKF3 dual-lane failover with EW-event detection; on denial, EKF3 switched to optical flow, and a rangefinder held 20 m AGL to 4.5 cm precision. On-course flight post-denial on dead reckoning + optical flow lasted ~28 seconds before drift ended it — a realistic, citable expectation for this approach.

PX4 knobs (verified in docs): set EKF2_GPS_MODE = 1 for dead-reckoning mode; keep COM_ARM_WO_GPS = 0 and GNSS_CHECK default (a reliable GNSS fix is still required before arming — this mode is for dropout mid-flight, not pure-indoor takeoff). v1.17 is experimental with limited real-world testing. EKF2_NOAID_TOUT (default 5 s) sets how long EKF2 tolerates no aiding before failsafe; v1.17 added SENS_BAR_AUTOCAL, baro auto-calibration against GNSS height, enabled by default.

ArduPilot knobs (verified in docs): EK3_GPS_TYPE = 3 means no GPS (optical flow only); EK3_ALT_M_NSE weights baro vs. accelerometer for altitude; GPS/Non-GPS transitions switch EKF source sets in flight; EKF3 accepts external position/velocity over MAVLink and a one-off landmark correction (MAV_CMD_EXTERNAL_POSITION_ESTIMATE).

Cheap hardware that extends it: optical-flow + rangefinder modules — MicoAir MTF-01, HereFlow / PX4Flow. See the optical flow post for modules and prices.

Known stock-ArduPilot limitation (verified): stock EKF3 cannot initialize position without GPS at all — with no aiding it sits in AID_NONE and runs zero-velocity fusion that actively fights real aircraft movement. A custom EKF3 modification exists in the community but is not stock. That is why an ArduPilot copter won’t arm and fly a mission with no GPS, even in theory.

Commercial and industrial reality

This is the default failsafe in every open-source autopilot — PX4 and ArduPilot both fall back to it. Its commercial role is safety net, not mission capability: hover, hold altitude on baro, land, or return on last-known position.

The defense/industrial INS heritage is real — inertial navigation is the backbone of military navigation (missiles, aircraft, submarines use ring-laser / fiber-optic-gyro INS). Be clear about the gap: those are navigation-grade units costing orders of magnitude more than consumer MEMS IMUs. A Pixhawk’s cellphone-grade MEMS IMU is a different class of sensor with far faster drift. Don’t imply parity.

Operational reality check: a January 2026 survey of drone security challenges notes most off-the-shelf drones fall back to rigid fail-safes — hover or return-to-home — rather than switching to an alternative navigation mode when GPS drops. That is dead reckoning’s real-world job today: buy seconds, not fly missions.

Strengths and limits

Strengths: instant — works the moment GNSS drops, no prior map, no extra hardware, no emissions, no external infrastructure; attitude control stays solid (gyros/accels are high-rate and reliable short-term); baro keeps altitude usable; buys time to land, regain signal, or hand over to another sensor.

Limits: error grows without bound. Double-integrating accelerometer noise and bias means position error grows roughly with time², and heading error from gyro bias compounds it. There is no fix, only decay. PX4’s 5-second no-aid timeout is short: default EKF2_NOAID_TOUT is 5 s; a real PX4 forum case (v1.15) showed 5–6 s windows of dropped GPS fusion putting EKF2 into inertial dead reckoning, xy_valid false, and a “Failsafe: blind land” — with toilet-bowling hover when the timeout was stretched to 10 s. Barometer is relative and corruptible: pressure changes with weather, doors opening, moving indoors to outdoors, prop wash, and wind. It holds altitude relative to takeoff, not absolute height. Heading depends on the compass, which is vulnerable to magnetic interference from power wiring and motors — and a heading error rotates the whole dead-reckoned track. No position fix, ever. Unlike map matching, nothing bounds the error. Re-acquiring GNSS after drift can cause jerky jumps in position-controlled modes.

How it compares

  • Optical flow is the cheapest thing that keeps dead reckoning honest: velocity measurements stretch ~28 seconds of useful flight into minutes of hover.
  • VIO is dead reckoning with a camera correcting it — the same IMU integration, but feature tracking bounds the short-term error.
  • Terrain matching is the opposite: an absolute fix whose error stays flat with distance. Dead reckoning is the baseline it corrects.
  • Lidar SLAM replaces dead reckoning’s drift with scan matching against a map the drone builds itself.
  • UWB positioning replaces it outright: with anchors up, there is no integration drift at all.

Sources

MTSUAV

Plugins built by store owners, for store owners.

© 2026 MTSUAV — Independent Drone Research

Hands-on. Never theoretical.