ADR-0000 — Vision¶
- Status: Accepted
- Date: 2026-06-03
- Deciders: Project lead
Context¶
Many drone autonomy projects exist. Most fall into one of three buckets:
- Academic demos that die at the first simulator change or first contact with real hardware.
- Closed commercial systems (DJI, Skydio) impractical for open research.
- GPS-dependent stacks (PX4 + GPS + camera) that collapse in GPS-denied settings.
We need to fix what Project Ghost is and is not, because without this decision every other choice gets contaminated: simulator selection, estimator architecture, allowed dependencies, even the contents of the HAL.
The declared mission is autonomous navigation without GPS in unknown environments, based on vision + IMU, starting in simulation and evolving to real hardware, all open source and at near-zero cost. The project also commits to treating uncertainty as a first-class engineering object (see ADR-0009).
Decision¶
Project Ghost commits to the following binding axioms:
- Vision-inertial first. The navigation estimator is built on camera + IMU. Any other sensor (GPS, magnetometer, LiDAR) may exist in the API but does not feed the main estimator. Its use is restricted to evaluation, monitoring, or optional redundancy.
- Sim-first, hardware-eventual. The system is developed and validated in simulation. Real hardware is a medium-term goal (Phase 8+), not a Phase 1 requirement.
- Open source with a permissive license. Apache 2.0. No closed components or private weight models.
- Explicit math. Filters, optimization, control, and planning are implemented in legible form. ML acts as an optional complement, never as a substitute for classical reasoning.
- Near-zero cost. The stack must run on a modest laptop. Hardware target ~150 USD.
- Five-year shelf life. Every decision is evaluated by its maintenance cost over five years.
- Uncertainty as a first-class object. No subsystem produces a value without an associated uncertainty representation (see ADR-0009).
Consequences¶
Positive:
- Clear focus: any feature that does not contribute to GPS-denied vision-inertial autonomy is out of scope.
- Differentiation: few open-source projects pursue GPS-denied rigorously, and fewer treat uncertainty as a research object.
- Reuse: the HAL and canonical state are useful for other projects.
Negative:
- Higher initial engineering effort: VIO/SLAM is harder than a PID + GPS loop.
- Recurring temptation to "just use GPS for now" during debugging. Must be actively resisted.
- Small initial community: few contributors with expertise in visual estimation.
Alternatives considered¶
A. Conventional GPS-aided autopilot. Rejected: contradicts the core mission. If that were the goal, PX4 and ArduPilot already solve it.
B. LiDAR-first SLAM. Rejected on cost (cheap LiDAR ~300 USD minimum) and because it closes the door on micro platforms. Vision-only preserves form factor and price.
C. End-to-end reinforcement learning system. Rejected: black boxes, not interpretable, require massive training, hostile to verification, do not transfer to hardware without an enormous gap.
D. ROS 2 stack from day one. Rejected: barrier of entry on Windows, complicates deterministic replay, and adds a heavy dependency before it is needed. ROS 2 will enter as an optional adapter from Phase 4.
E. Accept GPS as estimator input "because it is available in sim". Rejected explicitly: breaks the mission. GPS exists in the API only for groundtruth evaluation, never as a navigation input.