Autonomous Drone Racing Using Minimum Snap Trajectory Generation and Differential-Flatness Based MPC
Tom Scherlis and Alvin Shek
Problem Background
Quadcopters:
Problem Background
Drone Racing:
Solution Overview
Low Level Controller
t0
t1
t2
t3
Minimum Snap Trajectories:
For quadcopters:
Gate Constraints for spline generation:
Type 1: Position Constraints
Type 2: Direction Constraints
Hard constraint on 0th order waypoints:
At * x = b
At: precomputed vector of ts�X: vector of coefficients:
b: desired position at time t
Constraint on 1st order waypoints:
(Bt*x: first derivative at t)
t0
t1
t2
t3
Type 3: Continuity Constraints
Continuity constraints up to 2nd order: (acceleration)
For A,B corresponding to each order in {0,1,2}:
At=end x1 = Bt=0x2
t
t=0
t=end
Minimum snap trajectories: Results
Feedback Linearization and Flat System
Linear and very simple
“Flat outputs”
MPC Controller
Control of flat system is simple, 2nd order dynamics are linear.
Green: Reference Trajectory
Red: Reference Trajectory (Horizon=N)
Blue: MPC Predicted trajectory
Analysis: LQR with feedforward v.s MPC:
LQR with feedforward: MPC: (position error less than half of LQR)
Cascaded PD attitude Controller
Desired Orientation -> angular velocities -> motor powers
Tuning for max response, minimal overshoot and noise
FlightGoggles Simulator provides ~1kHz inner control loop
20Hz: Orientation Controller
20Hz:
MPC Controller
1kHz:
Angular rate controller
Single-Shot: Trajectory Planner
Gates
Motor torque
Results:
What we learned:
Future Work: