Driving blind: how we keep a car on the map without GPS

27 Oct 2026 · 7 min read

Detecting a fake GPS signal is half the job. The other half is answering the driver's real question: where am I, then?

What a car knows about itself

  • Speed — from the car's own sensors through a cheap Bluetooth OBD-II adapter. Far better than anything a phone can guess.
  • Turns — from the phone's gyroscope, if the phone sits firmly in a holder.
  • Roads — a car drives on roads. The offline road graph of Ukraine says where it can and cannot go.
  • The route — if you are navigating, you are most likely following it.
  • The network — cell towers and Wi-Fi give a rough position (±100 m, every 20–40 s) that keeps everything honest.

Hundreds of guesses

KeepNav keeps a few hundred hypotheses — “particles” — of where the car is and where it faces. With every speed reading each one moves by the OBD speed and turns by the gyroscope, with a little noise. Particles that leave the road, turn where there is no street, or drift away from the route and the network fixes lose weight; the strong ones multiply. The cloud that remains is the position, and its spread is the accuracy you see in the status.

Calibrated on the real thing

An OBD speedometer is typically a few percent off, and every gyroscope drifts. So while GPS is genuine, KeepNav quietly measures both: the speed correction takes about a minute, the gyro drift two to four minutes of city driving. The OBD correction is remembered for each car. Every five minutes the app also pretends to lose GPS for 1.5 km and compares its blind estimate with the truth — on real trips that self-check ends 2–29 m off per kilometre.

The numbers

SituationTypicalWorst 10 %
GPS lost mid-trip, 10–12 min, OBD10–40 m~100 m
Start inside a spoofed area, OBD50–100 m300–500 m at times
On foot, steps + compass14–19 m~100 m
Car without OBD (network only)~150 mmore

From recorded drives in Kyiv, replayed 5–10 times with GPS removed and compared to the genuine track. One car, one phone: a beta, not a lab.

The hard parts

  • The first minute after parking. The car has not moved yet, so nothing says which way it faces. We tried the compass — inside a car it did not help. The estimate settles after the first turns.
  • Interchanges and bridges. A flat map does not know which road is on top; the estimate can jump to a bridge or miss a loop.
  • Rebuilding the route too eagerly. A check designed for GPS rebuilt the route whenever the position was 40 m off it — normal for an odometer. Each new route then misled the estimate. Without GPS KeepNav now rebuilds only after a clear departure of 250 m for half a minute, and the marker stays on the route meanwhile.

And when you know better

Sometimes the simplest sensor is the driver. Long-press the map and choose “I'm here”, or just say “I'm at the corner of Sumska and Pushkinska”: the estimate restarts from your word, placed on your route if you are navigating.