Quadrotor research · simulation · Holybro X500 V2 target

Drone Autonomy

A quadrotor that sees with a depth camera, maps a room it has never been in, plans a route with A*, and flies it under payload, wind and motor wear. The study compares seven meta-learning algorithms combined with classical control and planning.

Simulated 500 Hz rigid-body physics Camera RealSense D435i model Map 0.2 m voxels Benchmarked 14 methods, 3 problems
Recorded flights

Watch the classical stack cross unknown rooms

Every frame below is replayed from the simulator, not drawn by hand. The drone starts with an empty map. The dark cells are what it has mapped from its own depth camera so far. Turn on ground truth to see the obstacles it hasn't found yet.

0.0 s
mapped obstacle true obstacle A* plan + carrot flown track
Architecture

One stack, three places to learn

Perception

Depth camera

Ray-cast D435i model with range-squared noise and dropouts

→
Mapping

Occupancy grid

Log-odds voxels, free space carved along each ray

→
Planning

A* + carrot

26-connected A* on the inflated map, replanned at 2 Hz

→
Combo 3 · learned

Local planner

Meta-RL policy turns depth and carrot into velocity

→
Combos 1 + 2 · learned

Controller

Geometric controller with meta-tuned gains or a meta-learned residual

→
Vehicle

X500 V2 dynamics

Thrust + body rates, as PX4 offboard accepts

Why adaptation matters

The same figure-eight with 25% extra payload, wind and a worn motor

Recorded in the simulator.

Fixed gains tuned for the nominal drone sag and lag once the drone carries extra mass, flies into wind and loses 20% of one motor. The classical L1 adaptive controller estimates that lumped disturbance and cancels it.

The meta-learning study asks whether a policy trained to adapt can beat L1 from a few seconds of flight data, and whether it holds up outside the training range.

Results

What seven meta-learning algorithms bought, and where they broke

Every method adapts to new dynamics: payload ×0.85–1.3, one motor down to 75%, drag ×0.5–2, wind up to 2.5 m/s with gusts, and 0–30 ms latency. Scores are on 32 held-out tasks (navigation: 24, in rooms never seen in training) and on out-of-distribution tasks beyond every range. Adaptation data is flight episodes on the new task: gradient methods take up to 3 updates of 10 episodes each; PEARL and RL² use up to 3 episodes of experience. Tracking uses 2 training seeds, navigation 1.

Combo 1 · residual on controller

Combo 2 · controller gains

Combo 3 · local planner

Out of distribution

Adaptation curves for every method on held-out and out-of-distribution tasks
Real-world platform

Holybro X500 V2 with a Jetson Orin Nano and a RealSense D435i

About $1,600–2,000 in parts. PX4 takes collective thrust and body rates from the companion computer in offboard mode, which is the policy's own action space. The D435i is the camera the simulator models. The X500 is PX4's reference airframe, so the simulator's mass, arm and inertia come from a published model.

mass
≈ 2.0 kg with Jetson and camera
compute
Jetson Orin Nano Super, up to 67 TOPS
depth
D435i active stereo, 0.3–3 m best range
interface
PX4 VehicleRatesSetpoint over uXRCE-DDS at 50 Hz
trade-off
10" props: fly only inside a netted cage

Runner-up: Crazyflie 2.1 Brushless, the safest choice for checking that control transfers, but it can't carry a depth camera. The ModalAI Starling 2 would fit best, but it appears to be unavailable new.

  1. Stage 0

    System ID

    Weigh it, measure inertia on a pendulum, test thrust and motor lag on a thrust stand, then update the simulator.

  2. Stage 1

    Hover

    Motion-capture state, policy in the loop, ±10 cm for 60 s.

  3. Stage 2

    Tracking

    Figure-eights with known added payloads, compared against the simulator.

  4. Stage 3

    Known obstacles

    Foam pillars, live depth mapping, A* and the local planner.

  5. Stage 4

    Unknown room

    Onboard VIO only. Success rate, clearance, time to goal.