I’ve created a Vio pipeline for GPS denied zones. Is this feasible, and how much accuracy will I get?
This project builds a GPS-denied navigation system for a drone using a Raspberry Pi 5. A known GPS coordinate is captured once at the start as the origin. From there, a downward-facing camera tracks ground features frame by frame to measure how far and in which direction the drone has moved. A laser rangefinder provides real-time altitude to correctly scale those pixel measurements into real-world distances. The drone's compass continuously provides heading so the camera's displacement measurements are correctly oriented to North and East. The flight controller's gyroscope runs at high frequency between camera frames to detect and cancel out any false motion caused by the drone rotating in place, preventing yaw from accumulating as position error. All of this camera displacement, compass heading, gyroscope data, and altitude is fused into a continuously updated position estimate. That position is added to the origin coordinate every cycle to produce a current latitude and longitude, which is sent as standard GPS data at 5Hz directly into the Pixhawk's GPS port. ArduPilot accepts it as a real GPS signal, shows a full GPS fix in Mission Planner, and correctly plots the drone's live trajectory on the map with no real GPS involved.