Project Structure
ADOS lives in two repositories. Both are open-source under GPLv3.ADOS Mission Control (GCS)
Repository: github.com/altnautica/ADOSMissionControl Stack: Next.js 16, React 19, TypeScript, Zustand, Tailwind CSS, Leaflet, CesiumJSKey files to know
| File | What it does |
|---|---|
src/lib/protocol/drone-protocol.ts | The interface every protocol adapter implements |
src/lib/protocol/mavlink-adapter.ts | MAVLink v2 adapter with 83 decoders and 33 command handlers |
src/lib/protocol/msp-adapter.ts | MSP adapter for Betaflight with 34 decoders and 105 virtual params |
src/stores/drone-manager.ts | Central coordinator between protocol and stores |
src/stores/telemetry-store.ts | Ring-buffered telemetry with attitude, GPS, battery history |
src/lib/video/webrtc-client.ts | WHEP and P2P MQTT WebRTC client |
src/hooks/use-panel-params.ts | Universal parameter hook used by all 38 configure panels |
src/stores/settings-store.ts | Persisted user settings (version 31) |
convex/schema.ts | Convex database schema for the OSS standalone backend |
ADOS Drone Agent
Repository: github.com/altnautica/ADOSDroneAgent Stack: Python 3.11+, FastAPI, pymavlink, structlog, Textual, systemdKey files to know
| File | What it does |
|---|---|
src/ados/__init__.py | Version string (single source of truth for pip and ados version) |
src/ados/core/supervisor.py | Starts, stops, and monitors child systemd services |
src/ados/core/circuit_breaker.py | 5-in-60s breaker pattern for service restarts |
src/ados/services/mavlink/proxy.py | Reads FC serial, writes to /run/ados/mavlink.sock |
src/ados/services/video/pipeline.py | Camera detection, ffmpeg launch, watchdog |
src/ados/services/video/mediamtx.py | MediaMTX config generation (STUN, ICE, ports) |
src/ados/bootstrap/profile_detect.py | Score-based hardware fingerprint for air vs ground |
src/ados/hal/boards/*.yaml | Board-specific GPIO, UART, video, and USB config |
scripts/install.sh | The one-line installer that does everything |
Config files on a deployed system
| Path | Purpose |
|---|---|
/etc/ados/config.yaml | Main agent configuration (profile, cloud, network, video) |
/etc/ados/profile.conf | Detected profile with fingerprint snapshot |
/opt/ados/ | Installed agent code and virtual environment |
/run/ados/mavlink.sock | Runtime MAVLink IPC socket |
/run/ados/state.sock | Runtime JSON telemetry socket |
/var/log/ados/ | Agent logs (rotated daily) |
What is next
- Contributing Guide for how to add features to both repos
- Agent Services for the systemd architecture
- MAVLink Protocol for the protocol layer