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.
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
-
On terminal, clone this repo
git clone https://github.com/ucb-bar/Accelerated-TinyMPC.git cd Accelerated-TinyMPC
-
Navigate to root directory and run
mkdir build && cd build
- Run CMake configure step
cmake ../
- Build TinyMPC
make
- 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