Appearance
Getting Started
Prerequisites
- Python 3.12+
- uv (recommended) or pip
Installation
bash
git clone https://github.com/guilyx/autonomous-quadrotor-guide.git
cd autonomous-quadrotor-guide
uv syncRunning a Simulation
Every simulation lives under src/uav_sim/simulations/<category>/<name>/ and can be run as a Python module:
bash
python -m uav_sim.simulations.estimation.ekfThis produces a GIF animation and a JSON log file in the simulation directory.
Building a Simulation Programmatically
For open-source users integrating their own algorithms, use the composition API:
python
from pathlib import Path
from uav_sim.simulations import (
StaticPathPlanner,
create_environment,
create_mission,
create_sim,
run_sim,
spawn_quad_platform,
)
from uav_sim.simulations.common import figure_8_path
from uav_sim.simulations.standards import SimulationStandard
standard = SimulationStandard.flight_coupled()
planner = StaticPathPlanner(
figure_8_path(duration=standard.duration, dt=0.15, alt=12.0, alt_amp=0.0, rx=8.0, ry=6.0)
)
env = create_environment(n_buildings=0, world_size=30.0)
platform = spawn_quad_platform()
mission = create_mission(
path=planner.plan(world=env.world, standard=standard),
standard=standard,
fallback_policy="none",
)
sim = create_sim(name="my_first_sim", out_dir=Path("."), mission=mission)
result = run_sim(sim=sim, env=env, platform=platform)
print(result.mission.completion.timeout_reason)Running Tests
bash
uv run pytest tests/Project Structure
src/uav_sim/
├── vehicles/ # 6DOF dynamics (Quadrotor, Fixed-Wing, VTOL)
├── control/ # Cascaded PID, State Machine
├── sensors/ # GPS, IMU, Lidar, Camera, Gimbal
├── estimation/ # EKF, UKF, Complementary, Particle Filter
├── perception/ # Occupancy mapping, SLAM, visual servoing
├── path_planning/ # A*, RRT*, PRM, Coverage
├── path_tracking/ # PID, LQR, Pure Pursuit
├── trajectory_planning/ # Min-Snap, Polynomial, Frenet
├── trajectory_tracking/ # Feedback Lin., MPPI, NMPC
├── swarm/ # Reynolds, Consensus, Virtual Structure
├── costmap/ # Occupancy grid, inflation layers
├── environment/ # World, obstacles, buildings
├── visualization/ # 3-panel viz, vehicle artists
└── simulations/ # 40+ runnable demos