Skip to content

Repository Layout

racing-drone/
├── apps/ # harness sources (flight_stack, replay, sitl, sitl_batch, precision_sweep) built per baseline and per graph build, and the score / log_dump tools
├── baselines/ # one YAML per baseline: slot composition, the graph's class and bodies, parameters
├── cmake/ # deps, warnings, slot and operator registries, baseline target generation
├── courses/ # course files (gates, sequence, laps, geofence)
├── docs/ # requirements, assessments, architecture, plans, ADRs: the source of this site
├── docs-site/ # the Starlight site generated from docs/, published to GitHub Pages
├── scenarios/ # SITL scenarios (course + vehicle + duration + seed)
├── sdk/ # branes::racing: data contracts, slots, Stack, the graph (flow/), config loaders, log, harness pieces
├── sim/ # SITL: the simulator on the reflex dynamics, the simulated FC and sensors, the scoreboard
├── tests/ # Catch2 unit tests, baseline tests, phase gates, graph gates
└── vehicles/ # vehicle files (mass, inertia, rotors, drag, IMU, camera)

The mission-neutral framework (the data contracts, slots and composition, configs, the log, the harness, the reflex glue, and the closed-loop simulator) is not in this repo: it is anatomy, fetched at a pinned release (cmake/deps.cmake). sdk/include/branes/racing/anatomy*.hpp bring its names into branes::racing (plan).

Each baseline with a graph: also builds as a graph: sdk/include/branes/racing/flow/ describes racing’s stack as a graph of seven composites, which anatomy checks and runs on its CPU stack. Its builds are replay_<name>_graph, sitl_<name>_graph and sitl_batch_<name>_graph, and the gate.<name>.graph tests hold them equal to the slot builds (plan).

Two baselines exist to test the graph beyond that equality (anatomy’s plan, T5). b0-shaped-pid is a scoreboard baseline whose controller is a body of two operators, a setpoint shaper and CascadedPid (flow/shaped_pid.hpp). b0-shaped-research places the same operators in a research graph, ShapedPidResearch, outside the mission’s composites, so it isn’t on the scoreboard. The slot build of each, ShapedPid (slots/shaped_pid.hpp), wires the two operators by hand, and its logs are the oracle for both graphs. gate.trace checks that b0-gt-pid’s and b0-shaped-pid’s traces first differ on an edge inside the controller, and that the two shaped baselines’ logs are equal but for their names and hashes.

FolderContents
requirements/The mission profile, the reference vehicle, the requirements, and the derived budgets
assessments/The history of the field, the state of the art, and the mixed-precision study
arch/The framework architecture
plan/The implementation and test plans, and one plan per issue
guides/Walkthroughs
adr/Architecture decision records

The documentation map lists every document.