mink
Biblioteca de cinemática inversa Python construida sobre MuJoCo que soporta más de 20 plataformas de robots
Licencia
Apache-2.0
Resumen
mink (MuJoCo Inverse Kinematics) es una biblioteca Python para cinemática inversa diferencial construida sobre MuJoCo. Resuelve el problema central de la robótica de calcular velocidades de articulaciones que satisfagan objetivos en el espacio de tarea mientras respetan restricciones físicas, formulando el problema como un programa cuadrático (QP).
La biblioteca proporciona una abstracción de tarea composable donde múltiples objetivos -- seguimiento de pose del efector final, seguimiento de marco relativo, regulación de postura, control del centro de masa, amortiguación de articulaciones y congelación de grados de libertad -- pueden combinarse en un único paso de resolución. Las restricciones físicas incluyendo límites de posición de articulaciones, límites de velocidad y evitación de colisiones entre cualquier par de geometría se aplican automáticamente.
mink soporta una amplia gama de plataformas de robots: brazos simples y duales (Franka Panda, UR5e, KUKA iiwa14, ALOHA 2), combinaciones brazo-mano (iiwa14+Allegro, xArm+LEAP), manos con destreza (Shadow Hand), humanoides (Unitree G1, H1, Apptronik Apollo), cuadrúpedos (Unitree Go1, Boston Dynamics Spot), bípedos (Agility Cassie) y manipuladores móviles (Stanford TidyBot, Hello Robot Stretch).
Creado por Kevin Zakka (estudiante de doctorado de UC Berkeley, Google PhD Fellow) como un puerto de la biblioteca Pink (basada en Pinocchio) a MuJoCo. La versión 1.0.0 alcanzó su lanzamiento estable en diciembre de 2025.
mink (MuJoCo Inverse Kinematics) es una biblioteca de Python que aporta cinemática inversa diferencial de calidad de producción al ecosistema MuJoCo. Creada por Kevin Zakka, estudiante de doctorado en UC Berkeley y Google PhD Fellow, cubre un vacío crítico: aunque MuJoCo se ha convertido en el simulador estándar de facto para la investigación en robótica, carecía de un solver de IK nativo con manejo de restricciones y evitación de colisiones.
La biblioteca formula la cinemática inversa como un programa cuadrático (QP), un enfoque matemáticamente limpio y computacionalmente eficiente. Varios objetivos en el espacio de tarea —seguimiento del efector final, control de marcos relativos, regulación de la postura, posicionamiento del centro de masas y amortiguamiento articular— pueden componerse y resolverse a la vez. Las restricciones físicas, como los límites de posición y de velocidad de las articulaciones y la evitación de colisiones entre cualquier par de geometrías, se aplican automáticamente.
mink admite más de 20 plataformas robóticas de serie: brazos simples y dobles (Franka Panda, UR5e, KUKA iiwa14, ALOHA 2), combinaciones brazo-mano (iiwa14+Allegro, xArm+LEAP), manos diestras (Shadow Hand), humanoides (Unitree G1, H1, Apptronik Apollo), cuadrúpedos (Unitree Go1, Boston Dynamics Spot), bípedos (Agility Cassie) y manipuladores móviles (Stanford TidyBot, Hello Robot Stretch).
mink es un port a MuJoCo de la biblioteca Pink (construida originalmente sobre Pinocchio), y aprovecha la rápida detección de colisiones de MuJoCo y el solver QP daqp. La versión 1.0.0 alcanzó la versión estable en diciembre de 2025, lo que marca su madurez para aplicaciones robóticas en producción.
Por qué importa
mink llena un vacío crítico en el ecosistema MuJoCo al proporcionar una biblioteca de cinemática inversa limpia y bien diseñada con evitación de colisiones y manejo de restricciones. Como MuJoCo se ha convertido en el simulador estándar de facto para la investigación en robótica, tener una biblioteca IK de calidad de producción construida nativamente sobre MuJoCo simplifica significativamente los stacks de software robótico.
Qué problema resuelve
La falta de una biblioteca de cinemática inversa nativa y de calidad de producción para MuJoCo que maneje evitación de colisiones, límites de articulaciones y múltiples objetivos en el espacio de tarea simultáneamente
Puntos clave
- IK diferencial formulada como programación cuadrática con rendimiento en tiempo real
- Soporta más de 20 plataformas de robots desde brazos simples hasta humanoides y cuadrúpedos
- Evitación de colisiones integrada entre cualquier par de geometría
- Abstracción de tarea composable para combinar múltiples objetivos en un paso de resolución
Para quién es
- Investigadores de robótica que usan MuJoCo
- Desarrolladores de manipulación robótica
- Investigadores de control humanoide
- Ingenieros de planificación de movimiento
Limitaciones
- Específico para MuJoCo -- no puede usarse con otros motores de física
- La IK diferencial es un solucionador local -- puede quedar atrapado en mínimos locales para movimientos grandes
- La dependencia del solucionador QP (daqp) puede tener limitaciones para sistemas de muy alto DOF
- Solo Python -- sin enlaces C++ para aplicaciones embebidas en tiempo real