Case study 03
GPS-Denied Autonomous UAV
Active capstone—systems design in progress
Indoor autonomy capstone combining non-GPS positioning, local planning, obstacle detection, and staged test gates before any flight claims.

Problem
What needed solving
Demonstrate credible indoor UAV autonomy without relying on GPS, while keeping safety, sensing limits, and verification visible.
Approach
How the work is framed
Document requirements, architecture, estimator choices, obstacle detection, local planning, and staged test gates before flight claims.
Result
Current public outcome
Propulsion analysis puts the as-shipped 2212 (~920 KV) motors at roughly 1.9–2.2:1 thrust-to-weight carrying the full ~1.27 kg autonomy payload, hovering near 55 % throttle — under the ≥2.3:1 full-payload gate this project set for integrated flight. A 2216-class motor upgrade is budgeted, and the final part stays unordered until as-delivered thrust is measured on the bench. Flight results follow the same rule: I publish measured data, logs, and sanitised design decisions only.
Evidence status
What still needs proof
Planning material exists; flight and verification results are pending.
Verification design
The test gates, defined before the data
This is the acceptance criteria for the capstone, not a results table. Each gate names its method and its pass metric before the test is run, and a lower gate has to pass before the layer above it is touched. Publishing the standard ahead of the evidence is the point: it is what stops a demo video from standing in for a measurement. No gate below is claimed as passed.
Gates and pass metrics
Gate 0
Simulation
- Method
- Scripted Gazebo worlds with obstacles at known poses.
- Pass metric
- Success rate over repeated runs (target ≥ 8 in 10), path length against optimal, and replan latency.
Gate 1
Airframe and failsafe
- Method
- Bench prop-balance and vibration check, tethered first hover, override-switch failover with props off.
- Pass metric
- Logged vibration stays inside the safe band, and manual override takes control on demand.
Gate 2
Position hold without GPS
- Method
- GPS disabled in parameters. Drift measured against a marked floor target over 60 s from logged local position, run VIO-only, flow-only, and across controlled transitions in both directions.
- Pass metric
- Measured drift, pose jump at each source transition, recovery time, and whether the transition stays inside the safety envelope.
Gate 3
Closed-loop tracking
- Method
- Commanded 1 m square, logged trajectory compared against the commanded path.
- Pass metric
- Overshoot and settling time.
Gate 4
Replan around an unmarked obstacle
- Method
- An unmarked box placed in the planned straight-line path, after a full-payload thrust-margin precondition is met.
- Pass metric
- Detection range honoured, occupancy map updated, a new path generated, and the obstacle cleared with the costmap inflation margin intact.
Why the estimator gates carry the weight
Gates 2 and 3 are the control and estimation evidence. Removing GPS does not simply degrade position accuracy; it moves the aircraft onto an estimator that fuses visual-inertial odometry with an optical-flow and rangefinder fallback, and the interesting failure is not steady-state drift but the transition between those sources. That is why gate 2 measures pose jump and recovery time across a source change in both directions, rather than only logging drift over 60 s. Gate 3 then closes the loop: a commanded 1 m square exposes overshoot and settling that a stationary hold test cannot.
Gate 4 carries a precondition that is a measurement, not a schedule item. The as-shipped motors sit under the thrust-to-weight margin set for integrated flight at full payload, so the upgrade decision is gated on measured thrust-stand data rather than a catalogue figure.
Declared limits
The gate definitions and methods are current; the results are not published because they do not exist yet. Where a gate has been partially exercised, the partial state is not reported here as a pass. Flight and verification data will be published as logs and measured values, or not at all.