GATO documentation#

GATO is a GPU batched trajectory optimizer and MPC controller for robot arms and floating-base robots: a batched SQP with PCG or block-Cholesky linear solves, rigid-body dynamics generated per robot by GRiD, numpy, torch, JAX and C++/CUDA interfaces, and a constraint layer that keeps plans inside the URDF limits. The project page presents the paper and the latest results; this site is the reference: how to install and use the library, what it guarantees, and what it does not.

Quick start and usage

pip install gato-mpc, the first solve, the controller, the constraint layer, adding a robot, the C++/CUDA interface.

GATO
Examples

Fourteen numbered scripts from one solve to MuJoCo in the loop; the paper figures and the benchmark harnesses.

GATO examples
Consumer contract

The conventions an integration depends on: frames, limits, cost semantics, the solve interface, array kinds, API stability.

GATO consumer contract — conventions external integrations depend on
Feature status and limits

What is attested, what is experimental, the operating limits, and what the receipt proves.

Feature status and limitations
Constraint layer

Mechanisms, measured defaults and provenance for every row-group method: boxes, cones, collision, contact rows, the ADMM inner loop.

GATO constraint layer — mechanisms, measured defaults, provenance
Signed receipt

The current GPU test receipt: commit, outcome, module set, signer, and how to verify it yourself.

Signed receipt
API reference

BSQP, MPCController, MPCPolicy, the hypothesis batch, tasks, worlds, the builder and the fingerprint, from the docstrings.

API reference
Development and validation

Build, tests, the receipt procedure, timing windows, releasing.

Development and validation