A modular multi-drone autonomy simulator built with modern C++20. The project models a simplified autonomy stack for swarm mission execution:
- world model + obstacles
- global planning (A*)
- local collision avoidance (predictive safety check)
- mission manager + dynamic replanning
- simulation engine using
std::jthreadandstd::stop_token - event telemetry using
std::variant
/include/aerostack
types.hpp
world.hpp
planning.hpp
control.hpp
mission_manager.hpp
simulation_engine.hpp
telemetry.hpp
/src
world/
planning/
control/
sim/
telemetry/
app/main.cpp
/tests
test_core.cpp
- World: continuous 2D space with circular obstacles and drone/mission state.
- AStarPlanner: global path planner on a discretized grid.
- PredictiveAvoidance: local collision avoidance by simulating near-term future trajectories.
- MissionManager: assigns random goals and replans if goals become unreachable.
- SimulationEngine: runs the control loop in a dedicated
std::jthreadwith cooperative shutdown. - TelemetryRecorder: records simulation events and can export JSONL logs.
cmake -S . -B build
cmake --build build -j./build/aerostack_simctest --test-dir build --output-on-failure- missions completed
- collision count
- telemetry event count
- noisy GPS/IMU and Kalman filtering
- occupancy grid mapping
- battery-aware task allocation
- no-fly zones and wind disturbance model
- GUI frontend (raylib/SDL2/ImGui)