Table of Contents
Fetching ...

MPPI-Generic: A CUDA Library for Stochastic Trajectory Optimization

Bogdan Vlahov, Jason Gibson, Manan Gandhi, Evangelos A. Theodorou

Abstract

This paper introduces a new C++/CUDA library for GPU-accelerated stochastic optimization called MPPI-Generic. It provides implementations of Model Predictive Path Integral control, Tube-Model Predictive Path Integral Control, and Robust Model Predictive Path Integral Control, and allows for these algorithms to be used across many pre-existing dynamics models and cost functions. Furthermore, researchers can create their own dynamics models or cost functions following our API definitions without needing to change the actual Model Predictive Path Integral Control code. Finally, we compare computational performance to other popular implementations of Model Predictive Path Integral Control over a variety of GPUs to show the real-time capabilities our library can allow for. Library code can be found at: https://acdslab.github.io/mppi-generic-website/ .

MPPI-Generic: A CUDA Library for Stochastic Trajectory Optimization

Abstract

This paper introduces a new C++/CUDA library for GPU-accelerated stochastic optimization called MPPI-Generic. It provides implementations of Model Predictive Path Integral control, Tube-Model Predictive Path Integral Control, and Robust Model Predictive Path Integral Control, and allows for these algorithms to be used across many pre-existing dynamics models and cost functions. Furthermore, researchers can create their own dynamics models or cost functions following our API definitions without needing to change the actual Model Predictive Path Integral Control code. Finally, we compare computational performance to other popular implementations of Model Predictive Path Integral Control over a variety of GPUs to show the real-time capabilities our library can allow for. Library code can be found at: https://acdslab.github.io/mppi-generic-website/ .
Paper Structure (31 sections, 15 equations, 22 figures, 3 tables, 1 algorithm)

This paper contains 31 sections, 15 equations, 22 figures, 3 tables, 1 algorithm.

Figures (22)

  • Figure 1: Diagram of the execution flow of . The blue ellipses indicate variables, the green rectangles are GPU methods, and the orange rectangles are CPU methods. The selection in purple is a single GPU kernel when using the combined kernel and separated out when using split kernels. Most of the code is run on the GPU but we found that some operations such as finding the baseline and calculating the normalizer, $\eta$, run faster on the CPU.
  • Figure 2: GPU code for the Unicycle Dynamics. This code parallelizes using the thread $y$ dimension to do each state derivative calculation in a different thread
  • Figure 3: Minimal Example to print out optimal control sequence for a cartpole system.
  • Figure 4: Basic Plant implementation that interacts with a virtual Cartpole dynamics system stored within the Plant.
  • Figure 5: Simple parameter structure implementation for a unicycle model
  • ...and 17 more figures