mink
Libreria Python di cinematica inversa costruita su MuJoCo, con supporto a oltre 20 piattaforme robotiche
Licenza
Apache-2.0
Panoramica
mink (MuJoCo Inverse Kinematics) è una libreria Python per la cinematica inversa differenziale costruita su MuJoCo. Risolve il problema centrale della robotica di calcolare velocità dei giunti che soddisfino obiettivi nello spazio dei compiti rispettando i vincoli fisici, formulando il problema come programma quadratico (QP).
La libreria offre un'astrazione componibile dei compiti, in cui più obiettivi (inseguimento della posa dell'end effector, inseguimento di frame relativi, regolazione della postura, controllo del centro di massa, smorzamento dei giunti e blocco di gradi di libertà) possono essere combinati in un unico passo di risoluzione. I vincoli fisici, tra cui i limiti di posizione dei giunti, i limiti di velocità e l'evitamento delle collisioni tra qualsiasi coppia di geometrie, vengono applicati automaticamente.
mink supporta un'ampia gamma di piattaforme robotiche: bracci singoli e doppi (Franka Panda, UR5e, KUKA iiwa14, ALOHA 2), combinazioni braccio-mano (iiwa14+Allegro, xArm+LEAP), mani per la manipolazione fine (Shadow Hand), umanoidi (Unitree G1, H1, Apptronik Apollo), quadrupedi (Unitree Go1, Boston Dynamics Spot), bipedi (Agility Cassie) e manipolatori mobili (Stanford TidyBot, Hello Robot Stretch).
Creata da Kevin Zakka (dottorando alla UC Berkeley, Google PhD Fellow) come port su MuJoCo della libreria Pink (basata su Pinocchio). La versione 1.0.0 ha raggiunto la release stabile a dicembre 2025.
mink (MuJoCo Inverse Kinematics) è una libreria Python che porta nell'ecosistema MuJoCo una cinematica inversa differenziale di qualità da produzione. Creata da Kevin Zakka, dottorando alla UC Berkeley e Google PhD Fellow, colma una lacuna fondamentale: mentre MuJoCo è diventato di fatto il simulatore standard per la ricerca in robotica, mancava di un solver IK nativo con gestione dei vincoli ed evitamento delle collisioni.
La libreria formula la cinematica inversa come un programma quadratico (QP), offrendo un approccio matematicamente pulito ed efficiente dal punto di vista computazionale. Più obiettivi nello spazio dei compiti, tra cui inseguimento dell'end effector, controllo di frame relativi, regolazione della postura, posizionamento del baricentro e smorzamento dei giunti, si possono comporre e risolvere simultaneamente. I vincoli fisici, come i limiti di posizione e velocità dei giunti e l'evitamento delle collisioni tra qualsiasi coppia di geometrie, vengono applicati automaticamente.
mink supporta oltre 20 piattaforme robotiche già pronte, che comprendono bracci singoli e doppi (Franka Panda, UR5e, KUKA iiwa14, ALOHA 2), combinazioni braccio-mano (iiwa14+Allegro, xArm+LEAP), mani robotiche (Shadow Hand), umanoidi (Unitree G1, H1, Apptronik Apollo), quadrupedi (Unitree Go1, Boston Dynamics Spot), bipedi (Agility Cassie) e bracci robotici mobili (Stanford TidyBot, Hello Robot Stretch).
mink è un port su MuJoCo della libreria Pink (costruita in origine su Pinocchio), che sfrutta il rilevamento rapido delle collisioni di MuJoCo e il solver QP daqp. La versione 1.0.0 è diventata una release stabile nel dicembre 2025, segnando la sua maturità per applicazioni robotiche in produzione.
Perché è importante
mink colma una lacuna importante nell'ecosistema MuJoCo offrendo una libreria di cinematica inversa pulita e ben progettata, con evitamento delle collisioni e gestione dei vincoli. Poiché MuJoCo è diventato di fatto il simulatore standard per la ricerca robotica, disporre di una libreria IK di qualità produttiva costruita nativamente su MuJoCo semplifica notevolmente gli stack software robotici.
Il problema che risolve
La mancanza di una libreria di cinematica inversa nativa e di qualità produttiva per MuJoCo che gestisca contemporaneamente l'evitamento delle collisioni, i limiti dei giunti e più obiettivi nello spazio dei compiti
Punti chiave
- IK differenziale formulata come programmazione quadratica, con prestazioni in tempo reale
- Supporta oltre 20 piattaforme robotiche, dai bracci singoli agli umanoidi e ai quadrupedi
- Evitamento delle collisioni integrato tra qualsiasi coppia di geometrie
- Astrazione componibile dei compiti per combinare più obiettivi in un unico passo di risoluzione
A chi si rivolge
- Ricercatori di robotica che usano MuJoCo
- Sviluppatori di manipolazione robotica
- Ricercatori sul controllo degli umanoidi
- Ingegneri della pianificazione del movimento
Limiti
- Specifica per MuJoCo: non può essere usata con altri motori fisici
- L'IK differenziale è un risolutore locale: può bloccarsi in minimi locali per movimenti ampi
- La dipendenza dal risolutore QP (daqp) può avere limiti per sistemi con moltissimi gradi di libertà
- Solo Python: nessun binding C++ per applicazioni embedded in tempo reale