StanfordASL/frax

Fast Robot Kinematics and Dynamics in JAX

解決的問題

frax 旨在提供高性能的機器人運動學與動力學計算。它滿足了對結合了 Pinocchio 等 C++ 庫的速度、Python 的易用性以及 JAX 提供的自動微分與並行化原生支援的庫的需求。

工作原理

該庫使用 JAX 純 Python 編寫,支援 JIT 編譯與自動微分。它可以計算透過 URDF 檔案定義的機器人的動力學項(例如質量矩陣、Jacobian 與重力向量)。它支援包括旋轉、移動、固定與自由浮動在內的多種關節類型。

為了實現最高性能,建議使用者使用 @jax.jit 裝飾器封裝其控制器邏輯,並在必要時使用雙精度。在 CPU 上,它可以實現微秒級的計算時間,而在 GPU/TPU 上,它可以處理每秒超過 1 億次的計算。

適用對象

需要設計與原型化靈活、高性能控制器(如逆運動學或操作空間控制),而無需手動推導 Jacobian 的機器人研究人員與工程師。

亮點

  • JAX 驅動:原生支援自動微分與並行化。
  • 極速性能:CPU 上的高頻控制迴路 (25-100 kHz) 與 GPU/TPU 上的海量吞吐量。
  • 機器人專用助手:包含專門的 ManipulatorHumanoid 類別。
  • 碰撞規避:支援用於強制執行安全約束的球形碰撞模型。
  • 預載入模型:內建對 Franka Panda 與 Unitree G1 機器人的支援。

相關

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