Crazyflie Drone Swarm

The simulation test bench for a Yale drone swarm: one or several Crazyflies fly through obstacle worlds while avoidance methods from published papers are measured against each other.

Undergraduate Researcher, O'Hern Lab · sim-to-real · Sep 2026 to now

Scale: O'Hern Lab · Yale

Results

The problem

A drone swarm has to work on real hardware, where every crash costs parts and days. Before anything flies, the project needs one place to run any controller or planner in simulation, see exactly what happened, and compare methods on the same tests.

What I built

The hard part

The simulated drone hovered 8.1 cm off its target height, and tuning gains would have hidden the cause instead of fixing it. I traced it to a thrust constant in the firmware controller that over-drives the Brushless motors by 1.61x, then predicted the offset from that constant before measuring it: 8.1 cm predicted and 8.1 cm measured, and 1.45 cm against 1.5 cm on a second drone model. Fixing the cause matters because the same firmware runs on the real drones.

How it fits together

Invariant: every planner and controller goes through the same slots and the same tests, so results compare like for like.

Decisions

What's next

Training swarm policies with reinforcement learning in JAX, then the first flights on real Crazyflies: one drone, then a squad of four.

Tech: Python, JAX, MuJoCo, Crazyflie, Path planning.

By David Antwi (david.antwi@yale.edu). Markdown version: /work/drone-swarm.md. Full profile: /llms.txt.