AVIAN: Autonomous Visual Indoor Aerial Navigation

Matei Gardea, Armaan Goklani, Ethan Bensimon

University of California, Berkeley

Autonomous position hold using onboard vision only, with the marker fixed to the wall.

Overview

Indoor flight without GPS is usually solved by adding sensors and compute. We ask the opposite question: how far can autonomous indoor position hold be pushed on deliberately minimal, off-the-shelf hardware? AVIAN is a 250 g quadrotor that runs its entire perception and control loop onboard a Raspberry Pi Zero 2 W, with a single camera and a printed chessboard as the only sensing — no LiDAR, no motion capture, no GPU, and no external compute.

A printed chessboard fixes the world frame. The camera recovers metric pose from it with a planar PnP solver, a Kalman filter smooths the estimate and coasts through dropouts, and a PD law writes small roll and pitch corrections to an unmodified Betaflight flight controller over MSP. Throttle and yaw stay with the pilot, who can disengage autonomy at any time.

Approach

We tried three localization designs in order; only the last one flew.

1. Offboard streaming — abandoned

Stream 720p video to a laptop and process there. Glass-to-glass latency exceeded 250 ms, far too slow for an inner control loop.

2. Markerless visual odometry — abandoned

FAST features, optical flow, and frame-to-frame essential-matrix pose. Propeller vibration, motion blur, weak indoor texture, and unobservable monocular scale left the pose unusable.

3. Marker-based planar PnP — adopted

A single printed chessboard as a fiducial. Sub-pixel corner detection and the IPPE planar solver give drift-free metric pose at 10–30 Hz, fully onboard. This is the version that flew.

Results

Over an 80 second autonomous hold the vehicle stays bounded at 36 cm XY RMS error. The residual is not noise: it is a single oscillation at 0.26 Hz in both horizontal axes — a limit cycle. The gains needed to hold position are about as high as the loop's latency allows, so the loop sits near its stability margin and oscillates rather than settling. Recovering accurate pose is cheap on this hardware; the loop's latency, and the gain it permits, are what bound precision.

Position-hold error over time and its frequency spectrum

Closed-loop hold: (left) horizontal error over the 80 s flight; (right) the error spectrum, a single peak at 0.26 Hz.

Flights

Four autonomous flights recorded while tuning the controller, each at a different set of PID gains. All localize from the marker alone; the oscillation in some runs comes from gains set too high or too sensitive during tuning, made worse by the loop's latency.

Stable hold
Oscillating hold
Circling
Waypoint