Skip to content
@TinyMPC

TinyMPC

Model-predictive control for your microcontrollers

TinyMPC - Accelerated and Compressed Model-Predictive Control

TinyMPC is an optimization solver designed for convex model-predictive control, offering high speed and a minimal memory footprint. Implemented in pure C/C++, it carries the MIT license and can be compiled into an embedded solver, making it particularly well-suited for control and robotics applications. Additionally, TinyMPC provides interactive interfaces for seamless integration with high-level languages such as Python, Julia, and Matlab.

Visit the documentation to learn how to use TinyMPC.

Visit our GitHub Discussions page for any questions related to the solver!

If you use TinyMPC in an academic work, please cite the relevant papers:

@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},
      booktitle={IEEE International Conference on Robotics and Automation (ICRA)},
      year = {2024}
}
@misc{tinympc2,
      title={Code Generation for Conic Model-Predictive Control on Microcontrollers with TinyMPC}, 
      author={Sam Schoedel and Khai Nguyen and Elakhya Nedumaran and Brian Plancher and Zachary Manchester},
      year={2024},
      eprint={2403.18149},
      archivePrefix={arXiv},
}

For more information, please see the TinyMPC website.

This project was conducted within the Robotic Exploration Lab, at Carnegie Mellon University.

Installing

C/C++

The TinyMPC C/C++ code can be found in the main TinyMPC repository, and build instructions can be found in the documentation.

Python

The Python interactive interface with examples is available at tinympc-python.

MATLAB

The MATLAB interactive interface with examples is available at tinympc-matlab.

Julia

The Julia interactive interface with examples is available at tinympc-julia.

Pinned Loading

  1. TinyMPC TinyMPC Public

    Model-predictive control for microcontrollers

    C++ 626 77

  2. tinympc-python tinympc-python Public

    Python interactive interface for TinyMPC

    Python 17 4

  3. tinympc-matlab tinympc-matlab Public

    MATLAB interactive interface for TinyMPC

    MATLAB 10 5

  4. tinympc-julia tinympc-julia Public

    Julia interactive interface for TinyMPC

    Julia 9 2

Repositories

Showing 6 of 6 repositories
  • tinympc-python Public

    Python interactive interface for TinyMPC

    TinyMPC/tinympc-python’s past year of commit activity
    Python 17 MIT 4 1 0 Updated Aug 28, 2024
  • TinyMPC Public

    Model-predictive control for microcontrollers

    TinyMPC/TinyMPC’s past year of commit activity
    C++ 626 MIT 77 8 0 Updated Aug 21, 2024
  • TinyMPC/TinyMPC.github.io’s past year of commit activity
    HTML 0 1 0 1 Updated Jul 10, 2024
  • tinympc-matlab Public

    MATLAB interactive interface for TinyMPC

    TinyMPC/tinympc-matlab’s past year of commit activity
    MATLAB 10 5 1 0 Updated Jun 4, 2024
  • .github Public
    TinyMPC/.github’s past year of commit activity
    0 0 0 0 Updated Apr 7, 2024
  • tinympc-julia Public

    Julia interactive interface for TinyMPC

    TinyMPC/tinympc-julia’s past year of commit activity
    Julia 9 2 0 0 Updated Apr 5, 2024