  Model Predictive Control (MPC) has become a popular framework in embedded
control for high-performance autonomous systems. However, to achieve good
control performance using MPC, an accurate dynamics model is key. To maintain
real-time operation, the dynamics models used on embedded systems have been
limited to simple first-principle models, which substantially limits their
representative power. In contrast to such simple models, machine learning
approaches, specifically neural networks, have been shown to accurately model
even complex dynamic effects, but their large computational complexity hindered
combination with fast real-time iteration loops. With this work, we present
Real-time Neural MPC, a framework to efficiently integrate large, complex
neural network architectures as dynamics models within a model-predictive
control pipeline. Our experiments, performed in simulation and the real world
onboard a highly agile quadrotor platform, demonstrate the capabilities of the
described system to run learned models with, previously infeasible, large
modeling capacity using gradient-based online optimization MPC. Compared to
prior implementations of neural networks in online optimization MPC we can
leverage models of over 4000 times larger parametric capacity in a 50Hz
real-time window on an embedded platform. Further, we show the feasibility of
our framework on real-world problems by reducing the positional tracking error
by up to 82% when compared to state-of-the-art MPC approaches without neural
network dynamics.
