Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/acdslab/mppi-generic
Templated C++/CUDA implementation of Model Predictive Path Integral Control (MPPI)
https://github.com/acdslab/mppi-generic
cpp cuda model-predictive-control model-predictive-path-integral robotics stochastic-optimization
Last synced: 1 day ago
JSON representation
Templated C++/CUDA implementation of Model Predictive Path Integral Control (MPPI)
- Host: GitHub
- URL: https://github.com/acdslab/mppi-generic
- Owner: ACDSLab
- License: bsd-2-clause
- Created: 2024-07-24T15:13:00.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-09-25T18:49:06.000Z (4 months ago)
- Last Synced: 2025-01-08T09:06:12.800Z (1 day ago)
- Topics: cpp, cuda, model-predictive-control, model-predictive-path-integral, robotics, stochastic-optimization
- Language: Cuda
- Homepage: https://acdslab.github.io/mppi-generic-website/
- Size: 9.76 MB
- Stars: 100
- Watchers: 8
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MPPI-Generic
MPPI-Generic is a C++/CUDA header-only library implementation of Model Predictive Path Integral Control (MPPI) by [Williams et al.](https://ieeexplore.ieee.org/document/8558663)## Citation
If you use this library for research purposes, please cite the following paper:
```
@misc{vlahov2024mppigenericcudalibrarystochastic,
title={MPPI-Generic: A CUDA Library for Stochastic Optimization},
author={Bogdan Vlahov and Jason Gibson and Manan Gandhi and Evangelos A. Theodorou},
year={2024},
eprint={2409.07563},
archivePrefix={arXiv},
primaryClass={cs.MS},
url={https://arxiv.org/abs/2409.07563},
}
```## Requirements
MPPI-Generic relies on the following:
* An NVIDIA GPU
* GCC/G++
* CUDA 10 or newer (CUDA 11.7+ is recommended but our library is compatible back to CUDA 10)
* [Eigen](https://eigen.tuxfamily.org/index.php?title=Main_Page)
* [CMake](https://cmake.org/) 3.10 or newer
* git and git-lfs
### Unit tests requirements
* [yaml-cpp](https://github.com/jbeder/yaml-cpp)
* python-pil## Prerequisite Setup (Ubuntu)
1. Follow the instructions to install CUDA provided [here](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html).2. Install all the other prerequisites through `apt-get`:
```bash
sudo apt-get install libeigen3-dev git git-lfs cmake gcc
# Setup git lfs if it is the first you have installed it
git lfs install
# extra installs if you are wanting to build unit tests
sudo apt-get install libyaml-cpp-dev python3-pil
```Note: If using Pop!\_OS you can `sudo apt install system76-cuda` instead of installing CUDA manually.
## Download the repo
```bash
cd /path/to/repos
git clone https://github.gatech.edu/ACDS/MPPI-Generic.git
cd MPPI-Generic
git submodule update --init --recursive
```
## Building MPPI-Generic with testsThe default is to build the library with tests OFF.
If you would like to turn on the tests when building, pass the flag `-DBUILD_TESTS=ON` when configuring cmake.```bash
mkdir build
cd build
cmake -DBUILD_TESTS=ON ..
make
make test
```## Acknowledgements
Approved for Public Release, Distribution Unlimited.