  Nonlinear dynamical effects are crucial to the operation of many agile
robotic systems. Koopman-based model learning methods can capture these
nonlinear dynamical system effects in higher dimensional lifted bilinear models
that are amenable to optimal control. However, standard methods that lift the
system state using a fixed function dictionary before model learning result in
high dimensional models that are intractable for real time control. This paper
presents a novel method that jointly learns a function dictionary and lifted
bilinear model purely from data by incorporating the Koopman model in a neural
network architecture. Nonlinear MPC design utilizing the learned model can be
performed readily. We experimentally realized this method on a multirotor drone
for agile trajectory tracking at low altitudes where the aerodynamic ground
effect influences the system's behavior. Experimental results demonstrate that
the learning-based controller achieves similar performance as a nonlinear MPC
based on a nominal dynamics model in medium altitude. However, our
learning-based system can reliably track trajectories in near-ground flight
regimes while the nominal controller crashes due to unmodeled dynamical effects
that are captured by our method.
