UM-ARM-Lab/pytorch_kinematics
Robot kinematics implemented in pytorch
解決する課題
PyTorch Robot Kinematicsは、ロボットの運動学を計算するための高性能かつ微分可能なフレームワークを提供します。順運動学(FK)、ヤコビ行列の計算、および逆運動学(IK)を、並列化可能でPyTorchのautogradシステムと互換性のある方法で実行する問題を解決し、これらの操作を機械学習パイプラインに直接統合できるようにします。
仕組み
このライブラリは、URDF、SDF、MJCFなどの標準的な形式からロボットの記述を読み込みます。PyTorchテンソルを使用して運動学演算を実装しており、CPUまたはGPU上で複数のロボット構成を同時にバッチ処理することが可能です。
主な技術的実装は以下の通りです:
- 解析幾何学的ヤコビ行列 (Analytical Geometric Jacobian): FKのバックワードパスに使用され、標準的なautogradと比較して勾配計算を約9倍高速化します。
- 減衰最小二乗法 (Damped Least Squares): 特異点付近での振動を避けるために逆運動学に使用される反復手法です。
- torch.compile サポート: ライブラリはPyTorch 2.0+向けに最適化されており、FKおよびヤコビ行列のカーネルを最適化されたグラフにコンパイルして大幅な高速化を実現します。
対象者
軌道最適化、ロボット学習、または衝突判定(pytorch-volumetricとの統合経由)のために、高速で微分可能な運動学計算を行う必要があるロボット研究者やエンジニア向けに設計されています。
ハイライト
- マルチフォーマット対応: URDF、SDF、MJCFファイルからロボットの記述を読み込みます。
- 並列実行: 関節値をバッチ処理して変換とヤコビ行列を計算し、逐次ループよりも数桁速く処理します。
- 微分可能: 勾配ベースの最適化のためにPyTorch autogradと完全に互換性があります。
- 最適化されたパフォーマンス:
torch.compileを活用し、FKおよびIKループの両方で大幅な高速化を実現します。 - スタンドアロンIK: ROSに依存しないIKソルバーを提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト