Quadruped-PyMPC
Framework MPC in Python per la locomozione dei quadrupedi, con controllo a gradiente e a campionamento
Licenza
BSD-3-Clause
Panoramica
Quadruped-PyMPC è un framework di controllo predittivo basato su modello (MPC) in Python per la locomozione di robot quadrupedi, del Dynamic Legged Systems Lab dell'IIT. Implementa il modello a singolo corpo rigido con due approcci complementari: ottimizzazione basata sul gradiente tramite acados (meno di 5 ms su CPU) e controllo basato sul campionamento massicciamente parallelo tramite JAX (10.000 rollout in meno di 2 ms su GPU). Pubblicato a IROS 2024 e su IEEE RAL 2025, validato su robot Unitree reali.
Quadruped-PyMPC è un framework di controllo predittivo basato su modello (MPC) in Python per la locomozione dei quadrupedi, che offre ottimizzazione basata sul gradiente tramite acados (meno di 5 ms su CPU) e controllo basato sul campionamento massicciamente parallelo tramite JAX (10.000 rollout in meno di 2 ms su GPU). Supporta più andature, l'ottimizzazione dei punti d'appoggio e il deployment su hardware reale con i robot Unitree.
Perché è importante
Questo progetto rende accessibile in Python un controllo della locomozione dei quadrupedi allo stato dell'arte, con risultati pubblicati a IROS 2024 e su IEEE RAL 2025. Il doppio approccio a gradiente e a campionamento e la validazione su hardware reale del Dynamic Legged Systems Lab dell'IIT ne fanno una preziosa piattaforma di ricerca.
Il problema che risolve
Implementare il controllo predittivo basato su modello (MPC) per la locomozione dei quadrupedi comporta ottimizzazione complessa, pianificazione dei contatti e vincoli di tempo reale. Questo framework offre un'implementazione Python pulita con entrambi gli approcci, a gradiente e a campionamento, che raggiungono prestazioni in tempo reale.
Punti chiave
- Doppio controllo predittivo basato su modello (MPC): a gradiente (acados, <5 ms) e a campionamento (JAX, 10K rollout <2 ms)
- Supporta le andature trotto, ambio e balzo, con ottimizzazione dei punti d'appoggio
- Validato nel mondo reale su robot quadrupedi Unitree
- Integrazione con ROS2 per il deployment su hardware
A chi si rivolge
- Ricercatori di robotica con gambe che lavorano sul controllo dei quadrupedi
- Ingegneri che vogliono un MPC basato su Python senza scrivere codice di ottimizzazione in C++
- Team che impiegano controller MPC su robot quadrupedi Unitree
Limiti
- Basato sul modello a singolo corpo rigido: una semplificazione della dinamica completa
- Il deployment nel mondo reale richiede robot Unitree e il relativo SDK
- Il campionamento su GPU richiede hardware NVIDIA con supporto JAX CUDA