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 求解器。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案