Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

IKPy

直接從 URDF 建立運動鏈的純 Python 逆向運動學函式庫

授權條款

Apache-2.0

概述

IKPy 是由 Pierre Manceron 開發的輕量、純 Python 逆向運動學函式庫。它直接從 URDF 檔案解析運動鏈,以建構在 SciPy 上的數值最佳化器求解正向與逆向運動學,並內含以 Matplotlib 為基礎的簡易 3D 視覺化。由於沒有需要編譯的相依套件,任何能執行 Python 的地方都能安裝它,因此在教育、業餘手臂,以及它最初所源自的 Poppy 人形機器人生態系中廣受喜愛。

IKPy 將機器人建模為從 URDF 解析而來、由連桿組成的 Chain(另有協助以 DH 風格手動定義的工具)。正向運動學是一串矩陣連乘;逆向運動學則以對關節值進行的有界最小平方最佳化執行,支援位置與姿態目標、主動連桿遮罩與關節極限。函式庫附有在 Matplotlib 3D 中繪出運動鏈與目標的繪圖工具,以及從雙連桿手臂一路到 Baxter 等完整機器人的教學。它刻意以原始速度換取可攜性與可修改性:一切都是 NumPy/SciPy,沒有需要建置的 C 擴充,而運動鏈只是一個可以繼承的普通 Python 物件。這樣的設計讓 IKPy 成為 Poppy 開源人形機器人生態系的運動學層,也是教授 IK、快速原型開發,以及驅動用完整 MoveIt 堆疊太過大材小用之業餘手臂時的常見選擇。

為何重要

IKPy 是 Python 機器人世界中標準的「五行程式搞定 IK」函式庫:十年來,它一直是從 URDF 檔案到可運作之逆向運動學阻力最小的途徑,被廣泛用於教育、Poppy 人形機器人社群,以及無數業餘手臂專案。

解決的問題

當你只是需要某個目標位姿的關節角度時,完整的運動規劃堆疊是過於笨重的機器。IKPy 只需 pip install,就能讓任何 Python 程式取得與 URDF 一致的正向與逆向運動學,不需要 ROS、不需要編譯過的求解器,也不需要繁瑣的設定。

重點

  • 直接從 URDF 檔案建立運動鏈(也可以 DH 風格手動定義)
  • 數值 IK,支援關節極限、主動連桿遮罩、位置與姿態目標
  • 建構在 NumPy/SciPy 上的純 Python:隨處可安裝,沒有需要編譯的相依套件
  • 內建以 Matplotlib 3D 視覺化運動鏈與目標
  • Poppy 人形機器人生態系的運動學層;廣泛用於教學

適用對象

  • 學習運動學的機器人學生
  • 業餘機器手臂自造者
  • 以腳本撰寫機器人動作的 Python 開發者
  • 建立機器人課程的教育者

限制

  • 數值最佳化比解析式或編譯過的 IK 求解器慢,不適合高頻率的控制迴圈
  • 沒有碰撞檢查或運動規劃,只提供關節解
  • 有姿態約束的 IK 可能需要調整(初始位置、主動連桿)才能良好收斂

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。