Welcome to TinyMPC's documentation!
TinyMPC is an open-source solver tailored for convex model-predictive control that delivers high speed computation with a small memory footprint. Implemented in C++ with minimal dependencies, TinyMPC is particularly suited for embedded control and robotics applications on resource-constrained platforms. TinyMPC can handle state and input bounds and second-order cone constraints. A Python interface is available to aid in generating code for embedded systems.
🏆 TinyMPC won the Best Paper Award in Automation and was a finalist for Best Conference Paper Award and Best Student Paper Award at IEEE ICRA 2024! Thank you to everyone who has used TinyMPC and provided feedback!
ICRA Paper Conic Code Gen Overview Video
Robot demonstrations
TinyMPC contributes to bridging the gap between computationally intensive convex model-predictive control and resource-constrained processing platforms. Integrating TinyMPC into computationally underpowered robots enables them to execute agile maneuvers and exhibit safe behavior.
Dynamic obstacle avoidance
TinyMPC runs fast enough to enable re-linearizing constraints at each time step, allowing it to reason about moving obstacles. On the left, a virtual sphere centered at the end of the stick is linearized into a new set of hyperplane constraints at each time step. The algorithm can additionally handle any number of arbitrary linear constraints. On the right, for example, it is avoiding the end of the stick while staying in the yz plane.
Extreme pose recovery
TinyMPC can enable recovering from extreme initial conditions. In this example, it is compared against three of the Crazyflie 2.1's stock controllers. Only TinyMPC was able to reason about the control limits, thereby exibiting a clean-cut recovering maneuver.
Figure-8 tracking
We compared against the same stock controllers for an infeasible fast figure-8 tracking task (the time given to complete a single figure-8 could only be met if the drone was much more powerful). TinyMPC and PID were able to stay upright, but TinyMPC's trajectory more closely resembled a figure-8.
Microcontroller benchmarks
TinyMPC outperforms state-of-the-art solvers in terms of speed and memory footprint on microcontroller benchmarks.
Made by
Citing
@inproceedings{tinympc,
title={TinyMPC: Model-Predictive Control on Resource-Constrained Microcontrollers},
author={Khai Nguyen and Sam Schoedel and Anoushka Alavilli and Brian Plancher and Zachary Manchester},
year={2024},
booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
}