mink
Biblioteca de cinemática inversa Python construída sobre MuJoCo suportando mais de 20 plataformas de robô
Licença
Apache-2.0
Visão geral
mink (MuJoCo Inverse Kinematics) é uma biblioteca Python para cinemática inversa diferencial construída sobre o MuJoCo. Resolve o problema central de robótica de calcular velocidades de junta que satisfazem objetivos no espaço de tarefa enquanto respeita restrições físicas, formulando o problema como um programa quadrático (QP).
A biblioteca fornece uma abstração de tarefa composável onde múltiplos objetivos — rastreamento de pose do efetor final, rastreamento de quadro relativo, regulação de postura, controle do centro de massa, amortecimento de junta e congelamento de graus de liberdade — podem ser combinados em uma única etapa de resolução. Restrições físicas incluindo limites de posição de junta, limites de velocidade e evitação de colisão entre qualquer par de geometria são aplicadas automaticamente.
mink suporta uma extensa gama de plataformas de robô: braços únicos e duplos (Franka Panda, UR5e, KUKA iiwa14, ALOHA 2), combinações de braço-mão (iiwa14+Allegro, xArm+LEAP), mãos dextras (Shadow Hand), humanoides (Unitree G1, H1, Apptronik Apollo), quadrúpedes (Unitree Go1, Boston Dynamics Spot), bípedes (Agility Cassie) e manipuladores móveis (Stanford TidyBot, Hello Robot Stretch).
Criado por Kevin Zakka (estudante de doutorado na UC Berkeley, Google PhD Fellow) como uma portagem da biblioteca Pink (baseada em Pinocchio) para MuJoCo. A versão 1.0.0 alcançou lançamento estável em dezembro de 2025.
O mink (MuJoCo Inverse Kinematics) é uma biblioteca Python que traz cinemática inversa diferencial com qualidade de produção para o ecossistema MuJoCo. Criada por Kevin Zakka, doutorando da UC Berkeley e Google PhD Fellow, ela preenche uma lacuna crítica — embora o MuJoCo tenha se tornado o simulador padrão de fato para a pesquisa em robótica, faltava a ele um solver de IK nativo com tratamento de restrições e prevenção de colisões.
A biblioteca formula a cinemática inversa como um programa quadrático (QP), uma abordagem matematicamente limpa e computacionalmente eficiente. Vários objetivos no espaço de tarefas — incluindo rastreamento do efetor final, controle de frame relativo, regulação de postura, posicionamento do centro de massa e amortecimento das juntas — podem ser compostos e resolvidos simultaneamente. Restrições físicas como limites de posição das juntas, limites de velocidade e prevenção de colisões entre qualquer par de geometrias são aplicadas automaticamente.
O mink suporta mais de 20 plataformas robóticas prontas para uso, abrangendo braços simples e duplos (Franka Panda, UR5e, KUKA iiwa14, ALOHA 2), combinações de braço e mão (iiwa14+Allegro, xArm+LEAP), mãos hábeis (Shadow Hand), humanoides (Unitree G1, H1, Apptronik Apollo), quadrúpedes (Unitree Go1, Boston Dynamics Spot), bípedes (Agility Cassie) e manipuladores móveis (Stanford TidyBot, Hello Robot Stretch).
O mink é uma portabilização da biblioteca Pink (originalmente construída sobre o Pinocchio) para o MuJoCo, aproveitando a detecção rápida de colisões do MuJoCo e o solver QP daqp. A versão 1.0.0 atingiu a versão estável em dezembro de 2025, marcando sua prontidão para aplicações de robótica em produção.
Por que importa
mink preenche uma lacuna crítica no ecossistema MuJoCo ao fornecer uma biblioteca de cinemática inversa limpa e bem projetada com evitação de colisão e tratamento de restrições. Como MuJoCo tornou-se o simulador padrão de facto para pesquisa em robótica, ter uma biblioteca IK de qualidade de produção construída nativamente no MuJoCo simplifica significativamente as pilhas de software de robótica.
Problema que resolve
A falta de uma biblioteca de cinemática inversa nativa e de qualidade de produção para MuJoCo que lida com evitação de colisão, limites de junta e múltiplos objetivos no espaço de tarefa simultaneamente
Pontos principais
- IK diferencial formulada como programação quadrática com desempenho em tempo real
- Suporta mais de 20 plataformas de robô, de braços únicos a humanoides e quadrúpedes
- Evitação de colisão integrada entre qualquer par de geometria
- Abstração de tarefa composável para combinar múltiplos objetivos em uma única etapa de resolução
Para quem é
- Pesquisadores de robótica usando MuJoCo
- Desenvolvedores de manipulação robótica
- Pesquisadores de controle humanoide
- Engenheiros de planejamento de movimento
Limitações
- Específico para MuJoCo — não pode ser usado com outros motores de física
- IK diferencial é um solver local — pode ficar preso em mínimos locais para movimentos grandes
- Dependência do solver QP (daqp) pode ter limitações para sistemas de muito alto-DOF
- Apenas Python — sem bindings C++ para aplicações embarcadas em tempo real