stack-of-tasks/pinocchio

A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives

解決する問題

Pinocchioは、多関節システム(ロボットなど)における剛体多体力学に必要な複雑な数学計算を処理するために設計された高性能C++ライブラリです。ロボットの動き(運動学)とその動きを引き起こす力(動力学)を計算するために必要なツールを提供し、リアルタイム制御とシミュレーションに十分な効率を維持します。

仕組み

線形代数用のEigenと衝突検出用のcoalに基づいて構築されたこのライブラリは、最先端のアルゴリズム(再帰的ニュートン・オイラーアルゴリズムや関節体アルゴリズムなど)を実装しています。C++テンプレートとキャッシュフレンドリーな設計を活用して、CPUパフォーマンスを最大化します。Pinocchioはまた、これらのアルゴリズムの解析的導関数を提供し、開発者が勾配ベースの最適化や学習技術を使用できるようにします。URDF、SDF、MJCF、SRDFを含む複数のロボット記述形式をサポートしています。

対象読者

このライブラリは、動作計画、制御、物理ベースのシミュレーションに取り組むロボット研究者やエンジニアを対象としています。また、剛体力学が必要なバイオメカニクス、コンピュータグラフィックス、コンピュータビジョンなどの分野にも適用できます。

主な特徴

  • 高性能:速度とキャッシュ効率に最適化されたC++テンプレートライブラリ。
  • 解析的導関数:動力学アルゴリズムの勾配を提供し、高度な最適化と学習を可能にします。
  • 多様な動力学:順動力学/逆動力学、重心動力学、閉ループ機構をサポート。
  • 高度な接触解決:最先端の摩擦接触ソルバーと拘束関節体アルゴリズムを含みます。
  • 広範な互換性:プロトタイピング用のPythonインターフェースを提供し、ROS、Conda、MeshcatやRVizなどのさまざまなビジュアライザと統合します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト