Skip to content

Repository files navigation

GATO

GPU-Accelerated Trajectory Optimization

Numerical experiments and the open-source solver from "GATO: GPU-Accelerated and Batched Trajectory Optimization for Scalable Edge Model Predictive Control"

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

./tools/install.sh

Docker

./tools/docker.sh
'''

Manual Installation
'''sh
git submodule update --init --recursive
uv sync
source .venv/bin/activate
docker build -t gato . # build image
docker run -d -it --gpus all --network host -e DISPLAY=:0 -v $(pwd):/workspace -v /tmp/.X11-unix:/tmp/.X11-unix --name gato-container gato # run container
docker exec -it gato-container bash # enter container
docker exec -it --workdir /workspace gato-container bash # enter container in the workspace directory

docker stop gato-container && docker rm gato-container # stop and remove

GATO

./tools/build.sh

Build Options

You can control which Python extension modules are built by selecting plant models and horizon lengths at CMake configure time:

mkdir -p build && cd build
cmake -DPLANT="indy7;iiwa14" -DKNOTS="8;32;128" ..
cmake --build . --parallel
  • PLANT: semicolon-separated list of plant targets (indy7, iiwa14).
  • KNOTS: semicolon-separated list of horizon lengths.

Built Python modules are written to python/bsqp/ as bsqpN{N}_{plant}.so.

Requirements

  • Ubuntu 22.04
  • CUDA 12.6
  • C++17
  • gcc 11.4.0
  • Python 3.10.12
  • Docker 28.1.0

Usage

See batch_sqp.cu for a minimal example of a batched trajectory optimization solve in C++/CUDA. Example Jupyter notebooks using GATO for MPC are in examples/

Related

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

Cite

@inproceedings{du2026gato,
    title={GATO: GPU-Accelerated and Batched Trajectory Optimization for Scalable Edge Model Predictive Control}, 
    author={Alexander Du and Emre Adabag and Gabriel Bravo and Brian Plancher},
    booktitle={IEEE International Conference on Robotics and Automation (ICRA)}, 
    year={2026},
    month={June}
}

Funding Acknowledgement

This material is based upon work supported by the National Science Foundation (under Awards 2411369 and 2246022). Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect those of the funding organizations.

About

GPU-Accelerated Trajectory Optimization

Resources

Stars

45 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages