Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Quadruped-PyMPC

Python MPC framework for quadruped locomotion with gradient and sampling control

License

BSD-3-Clause

Overview

Quadruped-PyMPC is a Python-based model predictive control framework for quadruped robot locomotion from IIT's Dynamic Legged Systems Lab. It implements the single rigid body model with two complementary approaches: gradient-based optimization via acados (under 5ms on CPU) and massively parallel sampling-based control via JAX (10,000 rollouts in under 2ms on GPU). Published at IROS 2024 and IEEE RAL 2025, validated on real Unitree robots.

Quadruped-PyMPC is a Python MPC framework for quadruped locomotion that offers gradient-based optimization via acados (under 5ms on CPU) and massively parallel sampling-based control via JAX (10,000 rollouts in under 2ms on GPU). It supports multiple gaits, foothold optimization, and real-hardware deployment on Unitree robots.

Why it matters

This project makes state-of-the-art quadruped locomotion control accessible in Python, with published results at IROS 2024 and IEEE RAL 2025. The dual gradient/sampling approach and real-hardware validation from IIT's Dynamic Legged Systems Lab make it a valuable research platform.

Problem it solves

Implementing model predictive control for quadruped locomotion involves complex optimization, contact scheduling, and real-time constraints. This framework provides a clean Python implementation with both gradient and sampling approaches achieving real-time performance.

Key takeaways

  • Dual MPC: gradient-based (acados, <5ms) and sampling-based (JAX, 10K rollouts <2ms)
  • Supports trot, pace, bound gaits with foothold optimization
  • Real-world validated on Unitree quadruped robots
  • ROS2 integration for hardware deployment

Who it is for

  • Legged robotics researchers working on quadruped control
  • Engineers wanting Python-based MPC without writing C++ optimization code
  • Teams deploying MPC controllers on Unitree quadruped robots

Limitations

  • Based on single rigid body model — a simplification of full dynamics
  • Real-world deployment requires Unitree robots and their SDK
  • GPU-based sampling requires NVIDIA hardware with JAX CUDA support

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.