Model Predictive Control on Resource Constrained Microcontrollers - Robotics Institute Carnegie Mellon University

Model Predictive Control on Resource Constrained Microcontrollers

Master's Thesis, Tech. Report, CMU-RI-TR-24-44, August, 2024

Abstract

Model predictive control is a powerful tool for controlling complex systems subject to complex constraints. However, it is computationally expensive and often requires large amounts of memory. Large, slow systems are capable of storing the necessary computational power onboard and thus do not require efficient, specialized algorithms to reduce time and space complexity. On the other hand, smaller systems typically have faster dynamics that require higher frequency controllers. In addition, these smaller systems are generally restricted to carrying smaller computers with less memory, and so they can not fit large problems that allow for intelligent control of the system. Existing methods for tackling model predictive control at small scales are generally inefficient and inaccessible. This thesis aims to tackle both problems by introducing a lightweight conically constrained convex model predictive control solver, TinyMPC, and its associated software packages which facilitate easy adoption through the use of high-level interfaces and code generation. We benchmark TinyMPC against state-of-the-art quadratic and conic programming solvers on different microcontrollers, showing almost an order of magnitude speedup and memory reduction. Finally, we demonstrate TinyMPC’s real world efficacy by deploying it on the Crazyflie 2.1, a nano-quadrotor with fast dynamics, and performing tasks with various convex constraints.

BibTeX

@mastersthesis{Schoedel-2024-142579,
author = {Samuel Schoedel},
title = {Model Predictive Control on Resource Constrained Microcontrollers},
year = {2024},
month = {August},
school = {Carnegie Mellon University},
address = {Pittsburgh, PA},
number = {CMU-RI-TR-24-44},
keywords = {Model Predictive Control, Numerical Optimization, Quadratic Program, Embedded System},
}