MPPI-Generic is a C++/CUDA header-only library implementation of Model Predictive Path Integral Control (MPPI) by Williams et al.
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},
}
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
- CMake 3.10 or newer
- git and git-lfs
- yaml-cpp
- python-pil
-
Follow the instructions to install CUDA provided here.
-
Install all the other prerequisites through
apt-get
:
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.
cd /path/to/repos
git clone https://github.gatech.edu/ACDS/MPPI-Generic.git
cd MPPI-Generic
git submodule update --init --recursive
The 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.
mkdir build
cd build
cmake -DBUILD_TESTS=ON ..
make
make test
Approved for Public Release, Distribution Unlimited.