A drone that reacts on its own

I programmed Crazyflie drones to hover after being thrown, fly figure eights, dodge obstacles, and react to nearby objects. Using onboard sensors like Flow deck v2 and the Multiranger deck, the drone can sense its surroundings and decide how to respond in real time.

I throw it. It catches itself.

Once released, the drone detects the throw, stabilizes itself, and settles into a hover entirely on its own.

The challenge was making sure it only triggered after a real release. I tuned the detection using actual throws so it would not mistake normal handling for flight.

Ping pong

Flies until the Multiranger detects an obstacle, reverses direction, and keeps going until it finds the next one.

The challenge was timing the reversal: too early and it barely commits; too late and it reaches the wall before turning.

Dodge

Hovers in place and moves away when something gets too close. The closer the obstacle gets, the harder it retreats.

Same idea as Ping pong, but a completely different behavior, this one tries to hold its ground.

Figure eight

Flies a smooth figure eight using the Flow Deck for position estimation, then returns to the center and lands.

The path is generated continuously rather than as a list of waypoints, which keeps the motion smooth through both loops and the center crossover.

Barrel roll

Commands a full roll around the drone's body axis, then tries to recover upright.

The roll worked. Recovery was harder with the limited ceiling height, so I stopped before turning a successful demo into a broken drone.

A motor mount printed in the lab

When a motor mount broke, I found a printable replacement, made it in the lab, and had the drone flying again the same day.

Above is the rendered STL model of the replacement motor mount.