mink
建構在 MuJoCo 上的 Python 逆向運動學函式庫,支援 20 多種機器人平台
授權條款
Apache-2.0
概述
mink(MuJoCo Inverse Kinematics)是建構在 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(UC Berkeley 博士生、Google PhD Fellow)打造,是將 Pink 函式庫(以 Pinocchio 為基礎)移植到 MuJoCo 的版本。1.0.0 版於 2025 年 12 月達到穩定版。
mink(MuJoCo Inverse Kinematics)是一個 Python 函式庫,為 MuJoCo 生態系帶來達到正式產品品質的微分逆向運動學。它由 UC Berkeley 博士生暨 Google 博士獎學金得主 Kevin Zakka 打造,填補了一個關鍵缺口: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 QP 求解器。1.0.0 版於 2025 年 12 月發布穩定版,代表它已可用於正式的機器人應用。
為何重要
mink 提供一個簡潔、設計良好、具備碰撞避免與約束處理的逆向運動學函式庫,填補了 MuJoCo 生態系的關鍵缺口。隨著 MuJoCo 成為機器人研究的事實標準模擬器,擁有一個原生建構在 MuJoCo 上、生產品質的逆向運動學(IK)函式庫,能大幅簡化機器人軟體堆疊。
解決的問題
MuJoCo 缺乏一個原生、生產品質、能同時處理碰撞避免、關節限位與多個任務空間目標的逆向運動學函式庫
重點
- 以二次規劃表述的微分逆向運動學(IK),具備即時效能
- 支援 20 多種機器人平台,從單臂到人形機器人與四足機器人
- 內建任意幾何體對之間的碰撞避免
- 可組合的任務抽象,能在單一求解步驟中結合多個目標
適用對象
- 使用 MuJoCo 的機器人研究人員
- 機器人操作開發者
- 人形機器人控制研究人員
- 運動規劃工程師
限制
- 專屬於 MuJoCo,無法搭配其他物理引擎使用
- 微分逆向運動學(IK)是局部求解器,大幅度動作時可能陷入局部極小值
- 依賴的 QP 求解器(daqp)在自由度非常高的系統上可能有所限制
- 僅支援 Python,沒有供即時嵌入式應用使用的 C++ 綁定