StanfordASL/frax
Fast Robot Kinematics and Dynamics in JAX
解決する課題
frax は、高性能なロボットの運動学および動力学計算を提供するために設計されています。Pinocchio のような C++ ライブラリの速度、Python の使いやすさ、そして JAX が提供する自動微分と並列化のネイティブサポートを組み合わせたライブラリのニーズに応えます。
仕組み
JAX を使用した純粋な Python で記述されており、JIT コンパイルと自動微分が可能です。URDF ファイルを通じて定義されたロボットの動力学項(質量行列、ヤコビ行列、重力ベクトルなど)を計算できます。回転、直動、固定、フリーフローティングを含むさまざまな関節タイプをサポートしています。
最大限のパフォーマンスを得るために、ユーザーはコントローラーのロジックを @jax.jit デコレータでラップし、必要に応じて倍精度を使用することが推奨されます。CPU では数マイクロ秒単位の計算時間を達成でき、GPU/TPU では毎秒 1 億回以上の計算を処理できます。
対象者
ヤコビ行列を手動で導出することなく、柔軟で高性能なコントローラー(逆運動学や作業空間制御など)を設計・プロトタイプ化する必要があるロボット研究者やエンジニア。
ハイライト
- JAX 駆動: 自動微分と並列化をネイティブにサポート。
- 極限のスピード: CPU での高周波制御ループ(25-100 kHz)と GPU/TPU での大量のスループット。
- ロボット特化型ヘルパー: 特化した
ManipulatorおよびHumanoidクラスを含む。 - 衝突回避: 安全制約を強制するための球状衝突モデルをサポート。
- プリロード済みモデル: Franka Panda および Unitree G1 ロボットの組み込みサポートを提供。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト