Skip to content

A2R-Lab/GATO

Repository files navigation

GPU-Accelerated Trajectory Optimization for Robotics

This is a batched version of the trajectory optimization solver from the paper "MPCGPU: Real-Time Nonlinear Model Predictive Control through Preconditioned Conjugate Gradient on the GPU".

Installation

git clone https://github.com/A2R-Lab/GATO.git
cd GATO

Docker is used for containerization and uv is used as a Python package/project manager.

Setup

# setup dependencies, build container, and make
./tools/install.sh

Docker

# build + run + enter container
./tools/docker.sh

# manually
docker compose up -d # build and run
docker compose exec dev bash # enter container
docker compose exec -w /workspace dev bash #enter container in the workspace directory

docker down # stop and remove

GATO

# examples, benchmark, and bindings
make build

# bindings only
make build-bindings

# clean
make clean

Requirements

GATO works with:

  • Ubuntu 22.04
  • CUDA v12.2
  • C++17
  • Python 3.10.12
  • Docker 28.1.0

Usage

See batch_sqp.cu for an example of a batch solve in C++/CUDA, and batch_sqp.py for an example using Python bindings. Examples of MPC with GATO are in indy7-mpc/

Nomenclature

TODO

Related

  • The open-source MPCGPU solver
  • GRiD, a GPU-accelerated library for computing rigid body dynamics with analytical gradients

About

GPU-Accelerated Trajectory Optimization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages