Skip to content

ACDSLab/MPPI-Generic

Repository files navigation

MPPI-Generic

MPPI-Generic is a C++/CUDA header-only library implementation of Model Predictive Path Integral Control (MPPI) by Williams et al.

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
  • CMake 3.10 or newer
  • git and git-lfs

Unit tests requirements

Prerequisite Setup (Ubuntu)

  1. Follow the instructions to install CUDA provided here.

  2. 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.

Download the repo

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 tests

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

Acknowledgements

Approved for Public Release, Distribution Unlimited.