stack-of-tasks/pinocchio
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
何を解決するか
Pinocchio は、剛体マルチボディダイナミクスに必要な複雑な数学的計算を処理するための高性能 C++ ライブラリです。ロボットアームやヒューマノイドロボットなどの多関節システムのシミュレーションと制御に必要なツールを提供し、前向き・逆運動学、ダイナミクス、摩擦接触問題に関する課題を解決します。
動作方法
Eigen を線形代数の基盤とし、collision detection には coal を使用して、Pinocchio は最先端の剛体アルゴリズム(例:再帰的ニュートン・オイラー法、アーティキュレーテッド・ボディ法)を実装しています。C++ テンプレートとキャッシュに優しい設計を活用して CPU のパフォーマンスを最大化しています。また、これらのアルゴリズムの解析的微分を提供しており、勾配ベースの最適化や学習手法の利用を可能にしています。URDF、SDF、MJCF、SRDF などの複数のロボット記述形式をサポートしています。
対象ユーザー
主にシミュレーション、制御、運動計画に取り組むロボット工学の研究者やエンジニアを対象としています。バイオメカニクス、コンピュータグラフィックス、コンピュータビジョンなど、マルチボディ物理が必要な分野にも応用可能です。
特徴
- 高性能: 速度とキャッシュ効率に最適化された C++ テンプレートライブラリ。
- 解析的微分: 主要なアルゴリズムの微分を提供し、勾配ベースの制御や学習が可能。
- 多様なダイナミクス: クローズドループ機構、重心ダイナミクス、最先端の摩擦接触ソルバーをサポート。
- 広範な互換性: Python バインディングを備えプロトタイピングに適しており、ROS、Conda、Meshcat、RViz などの各種ビジュアライザーと統合可能。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト