  Autonomous unmanned aerial vehicles (UAVs) that can execute aggressive (i.e.,
high-speed and high-acceleration) maneuvers have attracted significant
attention in the past few years. This paper focuses on accurate tracking of
aggressive quadcopter trajectories. We propose a novel control law for tracking
of position and yaw angle and their derivatives of up to fourth order,
specifically, velocity, acceleration, jerk, and snap along with yaw rate and
yaw acceleration. Jerk and snap are tracked using feedforward inputs for
angular rate and angular acceleration based on the differential flatness of the
quadcopter dynamics. Snap tracking requires direct control of body torque,
which we achieve using closed-loop motor speed control based on measurements
from optical encoders attached to the motors. The controller utilizes
incremental nonlinear dynamic inversion (INDI) for robust tracking of linear
and angular accelerations despite external disturbances, such as aerodynamic
drag forces. Hence, prior modeling of aerodynamic effects is not required. We
rigorously analyze the proposed control law through response analysis, and we
demonstrate it in experiments. The controller enables a quadcopter UAV to track
complex 3D trajectories, reaching speeds up to 12.9 m/s and accelerations up to
2.1g, while keeping the root-mean-square tracking error down to 6.6 cm, in a
flight volume that is roughly 18 m by 7 m and 3 m tall. We also demonstrate the
robustness of the controller by attaching a drag plate to the UAV in flight
tests and by pulling on the UAV with a rope during hover.
