StanfordASL/frax
Fast Robot Kinematics and Dynamics in JAX
解決する課題
frax は、純Pythonで高性能なロボットの運動学および動力学計算を提供するために設計されました。PinocchioのようなC++ベースのツールの速度と、Pythonの使いやすさを兼ね備え、さらにJAXを通じて自動微分と並列化を実現するライブラリへのニーズに応えます。
仕組み
このライブラリはJAXを使用して構築されており、JITコンパイルと自動微分を活用できます。URDFファイルで定義されたロボットの動力学項(質量行列、ヤコビ行列、重力ベクトルなど)を計算可能です。Manipulator、Humanoid、Quadruped といった専用クラスを通じて様々なロボットのフォームファクタをサポートし、MuJoCoのクォータニオン規則を使用して自由浮動ベースを処理します。
対象ユーザー
高速で微分可能なロボットコントローラー(逆運動学、操作空間制御など)を設計する必要があるロボット工学の研究者やエンジニア、および自動微分を使用してヤコビ行列の手動導出を避けたい方。
主な特徴
- 高性能: CPU上でマイクロ秒単位の計算時間を実現し、GPU/TPU上では毎秒1億回以上の計算が可能です。
- JAXベース: JAXのJITコンパイルおよび自動微分と完全な互換性があります。
- 組み込みロボットモデル: Franka Panda、Kuka iiwa、Unitree G1、Unitree A2のモデルがプリロードされています。
- 球体化衝突モデル: 球体化衝突モデルが定義されている場合、衝突回避のためのメソッドが含まれています。
- 柔軟なコントローラー設計: 運動学と動力学の単純な関数を使用して、制約(特異点や自己衝突の回避など)のプロトタイプを簡単に作成できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト