Skip to content

Model-predictive control for microcontrollers (fork mapping tinyMPC to gemmini or other HW accelerators)

License

Notifications You must be signed in to change notification settings

ucb-bar/Accelerated-TinyMPC

 
 

Repository files navigation

Accelerated TinyMPC

This repository contains the implementation of Accelerated TinyMPC, a project focused on design space exploration of embedded architectures for real-time optimal control. It aims to profile, optimize, and accelerate TinyMPC workloads using scalar CPUs, vector architectures, and domain-specific accelerators. The project provides profiling and acceleration results; and demonstrates quantitative performance and area trade-offs across various architectures, aiming to find the most effective hardware optimizations for robotic model-based control algorithms.

Report

For detailed insights into the design space exploration and performance evaluations, please refer to the attached report:
Design-Space-Exploration-of-Embedded-SoC-Architectures-for-Real-Time-Optimal-Control.pdf


Usage

Building

  1. On terminal, clone this repo

    git clone https://github.com/ucb-bar/Accelerated-TinyMPC.git
    cd Accelerated-TinyMPC
    
    
  2. Navigate to root directory and run

mkdir build && cd build
  1. Run CMake configure step
cmake ../
  1. Build TinyMPC
make 

Examples

  • Run the quadrotor_hovering example
./examples/quadrotor_hovering
  • Run the codegen_cartpole example then follow the same building steps inside that directory
./examples/codegen_cartpole

About

Model-predictive control for microcontrollers (fork mapping tinyMPC to gemmini or other HW accelerators)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.8%
  • Other 1.2%