Skip to content

michaelkrasa/aerostack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AeroStack: C++20 Drone Swarm Simulator

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::jthread and std::stop_token
  • event telemetry using std::variant

Architecture

/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

Core robotics-style components

  • 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::jthread with cooperative shutdown.
  • TelemetryRecorder: records simulation events and can export JSONL logs.

Build

cmake -S . -B build
cmake --build build -j

Run simulator

./build/aerostack_sim

Run tests

ctest --test-dir build --output-on-failure

Current metrics emitted in final summary

  • missions completed
  • collision count
  • telemetry event count

Next upgrades

  • 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)

About

Modern C++20 simulator for drone swarm missions, path planning, collision avoidance, and telemetry.

Resources

License

Stars

Watchers

Forks

Contributors