· Yogesh Khedar· Engineering· 3 min read
Flying Without GPS — Anchor Once, Navigate Relatively
Indoors, under structures, or under interference, GPS is gone. The pattern that works — set an initial pose, navigate relatively, project back onto the map.
GPS fails in exactly the places inspection work is most valuable: indoors, in urban canyons, under bridges and inside structures, and anywhere interference or jamming takes it away. Operating there is entirely possible, but it follows a different pattern, and it pays to understand the pattern before buying the sensor.
The pattern
Anchor once, navigate relatively, project back onto the world.
- Anchor. Set a known initial position and heading for the aircraft: a surveyed point, a marker on the floor, the last good GNSS fix before the aircraft goes under the roof, or an operator placing the start pose on the map.
- Navigate relatively. From that anchor, the aircraft tracks its own motion with onboard sensing: how far it moved and how it turned, metre by metre, with no satellites involved.
- Project. The relative trajectory is transformed back into world coordinates and overlaid on the shared operational map, so the flight looks and behaves like any other: on the map, in the log, in the project its photos go to.
The anchor is the whole trick. Relative navigation is exact about how the aircraft moved and ignorant about where it started; the anchor supplies the second half.
The sensor options
Visual-inertial odometry fuses one or two cameras with the IMU. Light enough for small aircraft, cheap, and good wherever there is texture and light. It struggles on blank walls, in the dark and over water.
Lidar odometry trades weight and cost for robustness in low light and texture-poor environments: tunnels, warehouses, the underside of a deck. A lidar also gives the obstacle picture for free.
Optical flow handles low-altitude position hold with a tiny sensor, and no more than that.
Fixed markers, ArUco tags or surveyed targets, re-anchor the aircraft whenever it sees one, which turns an unbounded drift into a bounded one.
These are added alongside the existing navigation stack, not instead of it. The autopilot keeps its estimator; the odometry feeds it as one more source, and the GNSS comes back as a source when the aircraft leaves the roof.
Honest expectations
Relative navigation drifts. The rate depends on the sensors, the environment and the flight: fast turns, poor light and repetitive texture all make it worse. The management tools are loop closure, fixed markers and re-anchoring, and a mission that respects the drift budget rather than pretending it is zero.
Measure it. Fly a known loop, land on the start marker, read the error. The flight log carries the estimator’s own confidence figures, and a drift that is growing from one flight to the next is a sensor that needs attention.

A flight log replayed on the map with its position chart; the estimator’s own figures are in the same viewer.
On the platform
Our work on this runs on the OAK-D camera as the reference device, with a visual-inertial stack on a Raspberry Pi 5 or a Jetson beside the autopilot, and ArUco markers as anchors. The companion publishes the pose to the autopilot and to the console; the console draws the flight on the same map as a GPS flight, anchored and projected, so GPS-denied work stops being a special case. It ships as a package for the companion computer and is documented with the rest of the onboard stack.
Flying somewhere the satellites do not reach? Talk to us about what your environment needs, and read how the same pattern lands a spacecraft in Drones Are Not Rocket Science.