mppi_playground
mppi_playground copied to clipboard
Model Predictive Path Integral Control (MPPI) with PyTorch
trafficstars
MPPI Playground
This repository contains an implementation of Model Predictive Path Integral Control (MPPI) with PyTorch to accelerate computations on the GPU.
Tested Native Environment
- Ubuntu Focal 20.04 (LTS)
- NVIDIA Driver 510 or later due to PyTorch 2.x
Dependencies
- cuda 11.8
- Python 3.10
- PyTorch 2.0
Docker Setup
Install Docker
# Install from get.docker.com
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo groupadd docker
sudo usermod -aG docker $USER
Setup GPU for Docker
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit nvidia-container-runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
Installation
with Docker (Recommend)
# build container
make build
# Open remote container via Vscode (Recommend)
# 1. Open the folder using vscode
# 2. Ctrl+P and select 'devcontainer rebuild and reopen in container'
# Then, you can skip the following commands
# Or Run container via terminal
make bash
with venv
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .[dev]
Examples
Navigation 2D
python3 app/navigation2d.py
Pendulum
python3 app/pendulum.py
Cartpole
python3 app/cartpole.py
Mountain car
python3 app/mountaincar.py