Lets the drone hold position when GPS is unreliable — indoors, under bridges, in urban canyons. A camera and the IMU feed the flight controller a 30 Hz position estimate over MAVLink, so position-hold, loiter, and missions keep working unchanged.
Six modes: optical flow with a rangefinder (fastest, low altitude on textured ground), without one (barometer height, drifts above 5 m), OpenVINS VIO (short flights), VINS-Fusion VIO (long loops with revisits), Hybrid (both, ~1.5× CPU), or Off.
Every 250 ms it checks itself. If features drop or drift grows it steps down — VIO → optical flow → barometer hover → land — and warns the GCS at each step.
Auto-detects ArduPilot 4.5+, PX4 1.14+, and iNav 7.0+. Global-shutter USB camera preferred for VIO; rolling-shutter or CSI fine for optical flow. VIO needs a one-time ~10 min camera-IMU calibration. Watch feature count and drift on the Vision Nav panel — drops = lost scene, growth = re-init.