mink
基于 MuJoCo 的 Python 逆运动学库,支持 20 多种机器人平台
许可证
Apache-2.0
概述
mink(MuJoCo 逆运动学)是一个基于 MuJoCo 构建的差分逆运动学 Python 库。它通过将问题表述为二次规划(QP)来求解满足任务空间目标同时遵守物理约束的关节速度。
该库提供可组合的任务抽象,可在单次求解步骤中组合多个目标——末端执行器位姿追踪、相对帧追踪、姿态调节、质心控制、关节阻尼和自由度冻结。包括关节位置限制、速度限制和任意几何体对之间碰撞避免在内的物理约束会自动执行。
mink 支持广泛的机器人平台:单臂和双臂(Franka Panda、UR5e、KUKA iiwa14、ALOHA 2)、臂手组合(iiwa14+Allegro、xArm+LEAP)、灵巧手(Shadow Hand)、人形机器人(Unitree G1、H1、Apptronik Apollo)、四足机器人(Unitree Go1、Boston Dynamics Spot)、双足机器人(Agility Cassie)和移动操作臂(Stanford TidyBot、Hello Robot Stretch)。
由 Kevin Zakka(加州大学伯克利分校博士生、谷歌博士研究员)作为 Pink 库(基于 Pinocchio)到 MuJoCo 的移植版本创建。1.0.0 版本于 2025 年 12 月达到稳定发布。
mink(MuJoCo Inverse Kinematics)是一个Python库,为MuJoCo生态系统带来了生产级的微分逆运动学求解能力。该库由Kevin Zakka创建,他是UC Berkeley的博士生和Google PhD Fellow。它填补了一个关键空白——虽然MuJoCo已成为机器人研究事实上的标准仿真器,但它缺少一个具有约束处理和碰撞避免功能的原生逆运动学求解器。
该库将逆运动学问题表述为二次规划(QP)问题,提供了数学上简洁且计算高效的方法。多个任务空间目标——包括末端执行器跟踪、相对坐标系控制、姿态调节、质心定位和关节阻尼——可以同时组合求解。物理约束如关节位置限制、速度限制以及任意几何体对之间的碰撞避免都会被自动执行。
mink开箱即用地支持超过20个机器人平台,涵盖单臂和双臂(Franka Panda、UR5e、KUKA iiwa14、ALOHA 2)、臂手组合(iiwa14+Allegro、xArm+LEAP)、灵巧手(Shadow Hand)、人形机器人(Unitree G1、H1、Apptronik Apollo)、四足机器人(Unitree Go1、Boston Dynamics Spot)、双足机器人(Agility Cassie)以及移动操作平台(Stanford TidyBot、Hello Robot Stretch)。
mink是Pink库(原基于Pinocchio构建)到MuJoCo的移植版本,利用了MuJoCo快速的碰撞检测和daqp二次规划求解器。1.0.0版本于2025年12月发布稳定版,标志着其已准备好用于生产级机器人应用。
为何重要
mink 通过提供具有碰撞避免和约束处理的简洁、设计良好的逆运动学库来填补 MuJoCo 生态系统的关键空白。随着 MuJoCo 成为机器人研究的事实标准仿真器,拥有一个原生构建在 MuJoCo 上的生产质量逆运动学库大幅简化了机器人软件栈。
解决的问题
MuJoCo 缺乏原生的、生产质量的逆运动学库,该库需要同时处理碰撞避免、关节限制和多个任务空间目标
要点
- 以二次规划形式表述的差分逆运动学,具有实时性能
- 支持从单臂到人形机器人和四足机器人的 20 多种机器人平台
- 内置任意几何体对之间的碰撞避免
- 可组合的任务抽象,用于在一次求解步骤中组合多个目标
适用人群
- 使用 MuJoCo 的机器人研究人员
- 机器人操作开发者
- 人形控制研究人员
- 运动规划工程师
局限
- 特定于 MuJoCo——无法与其他物理引擎一起使用
- 差分逆运动学是局部求解器——对于大幅度运动可能陷入局部极小值
- QP 求解器依赖(daqp)对于非常高自由度的系统可能有限制
- 仅 Python——无用于实时嵌入式应用的 C++ 绑定