ACDSLab / MPPI-Generic

Templated C++/CUDA implementation of Model Predictive Path Integral Control (MPPI)
https://acdslab.github.io/mppi-generic-website/
BSD 2-Clause "Simplified" License
84 stars 8 forks source link
cpp cuda model-predictive-control model-predictive-path-integral robotics stochastic-optimization

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:

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.