Usage
CLI reference
Invoke as aether ... or python -m aether ....
Modes
| Flag | Description |
--mode sim | Simulation with fault injection (default) |
--mode agent | Interactive LLM-planned objectives on live hardware |
--mode realworld | Continuous live-hardware FDIR loop — no planner |
--mode server | HTTP API on --port; POST /objective, GET /health |
General flags
| Flag | Default | Use |
--task "..." | navigate to target | Task description for sim |
--robot | rover_v1 | rover_v1 / drone_v1 for sim |
--faults | disabled | disabled/enabled/heavy injection |
--scenario | simple | obstacles, imu_fault, battery, compound, fault_heavy |
--max-steps | 300 | Max steps per sim episode |
--seed | 42 | Reproducible sim runs |
--render | off | ASCII state render each step |
--plots | off | SFRI / metrics plots after a run |
--no-learning | off | Freeze PPO weights for benchmarking |
--continuous | off | Run realworld until Ctrl-C |
--schedule "..." | — | "every 30s: scan", "until 22:00: obj" |
--port | 8080 | Port for server |
--verbose | off | Debug logging |
Calibration & genome
| Flag | Use |
--calibrate | First-time setup — walk pins, label actuators, load adapters |
--recalibrate | Re-run the full pin walk (preserves robot_id) |
--auto-calibrate | Headless calibration, no prompts |
--genome show | Print the loaded genome and exit |
Adapters, install & MAVLink
| Flag | Effect |
--generate-adapter-from PATH | Offline: read vendor lib, generate + validate an adapter |
--save-to PATH | Save the generated adapter to PATH |
--no-auto-adapter | Disable Tier 2/3 generation (Tier 1 still loads) |
--auto-install / --no-install | Install missing packages without prompting / skip |
--auto-update / --no-update | Pull latest without prompting / skip check |
--arm-permitted | Enable arming + flight for MAVLink — required before any motor spins |