UM-ARM-Lab/pytorch_kinematics
Robot kinematics implemented in pytorch
解決的問題
PyTorch Robot Kinematics 為機器人運動學計算提供了一個高性能、可微的框架。它解決了以可並行化且與 PyTorch 的 autograd 系統相容的方式執行正向運動學 (FK)、Jacobian 計算和逆運動學 (IK) 的問題,從而允許將這些操作直接整合到機器學習流水線中。
工作原理
該庫從 URDF、SDF 和 MJCF 等標準格式載入機器人描述。它使用 PyTorch 張量實現運動學運算,從而能夠在 CPU 或 GPU 上同時對多個機器人配置進行批處理。
關鍵技術實現包括:
- 解析幾何 Jacobian (Analytical Geometric Jacobian):用於 FK 的反向傳播,與標準 autograd 相比,可將梯度計算速度提高約 9 倍。
- 阻尼最小二乘法 (Damped Least Squares):用於逆運動學的一種迭代方法,用於避免在奇異點附近發生振盪。
- torch.compile 支援:該庫針對 PyTorch 2.0+ 進行了優化,允許將 FK 和 Jacobian 核心編譯為優化後的圖,從而實現顯著加速。
適用對象
專為機器人研究人員和工程師設計,他們需要為軌跡優化、機器人學習或碰撞檢測(透過與 pytorch-volumetric 整合)執行快速、可微的運動學計算。
亮點
- 多格式支援:從 URDF、SDF 和 MJCF 檔案載入機器人描述。
- 並行執行:批次處理關節值以計算轉換和 Jacobian,速度比串行迴圈快幾個數量級。
- 可微性:與 PyTorch autograd 完全相容,用於基於梯度的優化。
- 優化的性能:利用
torch.compile在 FK 和 IK 迴圈中實現顯著加速。 - 獨立 IK:提供一個不依賴於 ROS 的 IK 求解器。
相關
- 專案
- 專案
- 專案
- 專案
- 專案