I implemented a sampling-based motion planning system for autonomous drone racing using the Crazyflie quadrotor. The system used RRT* to generate time-optimal, collision-free trajectories through four fixed-position gates, with the sequence of traversal revealed only at runtime. The planner evaluated all possible gate entry/exit combinations to minimize total distance and generated smooth 3D flight paths using high-order polynomial fitting. Developed in Python with a PyBullet simulator, the solution accounted for positional noise in obstacles by inflating their boundaries, ensuring robust performance in uncertain environments.
The planned trajectories were deployed directly onto the physical Crazyflie platform, using a mix of high and low-level firmware commands to execute smooth transitions, gate traversal, and final landing. The algorithm’s flexibility allowed it to adapt to any gate sequence with minimal reconfiguration, maintaining path optimality and stability during real-world operation. The system successfully completed the 23m track of tight turns in 18.4 seconds, earning 2nd place in the class competition and demonstrating effective sim-to-real transfer of an autonomous flight planner.