iit-DLSLab/Quadruped-PyMPC
A model predictive controller for quadruped robots based on the single rigid body model and written in python. Gradient-based (acados) or Sampling-based (jax)
What it solves
It provides a high-performance model predictive controller (MPC) for quadruped robots, enabling them to perform complex movements like trotting, pacing, and bounding while maintaining stability and robustness.
How it works
The project implements a controller based on a single rigid body model using Python. It offers two distinct computational approaches:
- Gradient-based MPC: Uses
acadosfor fast computation (under 5ms on CPU), featuring optional foothold optimization, ground reaction force smoothing, and stability criteria. - Sampling-based MPC: Uses
jaxto run thousands of parallel rollouts on a GPU (under 2ms), supporting strategies like MPPI and CEMPPI with various control parametrizations (zero-order, linear, or cubic splines).
Who it’s for
It is designed for robotics researchers and engineers working on legged locomotion who need a flexible, Python-based MPC framework compatible with Mujoco and real-world hardware.
Highlights
- Dual implementation supporting both gradient-based (CPU) and sampling-based (GPU) optimization.
- Extremely low latency: <5ms for gradient-based and <2ms for sampling-based rollouts.
- Supports advanced control strategies including MPPI, CEMPPI, and Feedback-MPPI.
- Compatible with Mujoco simulation and real-world deployment via Unitree robot communication tools.
Related
- Project
- Project
- Project
- Dispatch
- Project