ロボット制御、コデザイン、ロボット学習向けにJAXで構築された、微分可能な剛体物理エンジン。
stack-of-tasks/pinocchio
ロボティクス向けに、剛体の力学・運動学とその解析微分を扱う、高速なヘッダーオンリーC++ライブラリ。Pythonバインディングも提供します。
- スター
- 3,850
- フォーク
- 592
- 未解決の Issue
- 104
- 最終コミット
- 15 時間前
これは何?
Pinocchioは、ロボットアームやヒューマノイドなどの多関節システムを対象とする、剛体力学のためのC++ライブラリです。順運動学・逆運動学と順動力学・逆動力学、重心動力学、およびこれらのアルゴリズムの解析微分を実装しています。解析微分は、勾配ベースの最適化や制御、学習に役立ちます。線形代数にはEigen、衝突検出にはcoalを使用し、URDF、SDF、MJCF、SRDF形式のロボット記述を読み込みます。
ライブラリはヘッダーオンリーのC++テンプレートライブラリとして実装されており、CondaまたはpipでインストールできるPythonインターフェースも提供します。閉ループ機構、摩擦接触ソルバー、拘束付き力学、MPFRによる多倍長演算にも対応しています。CppADとCasADiを介した自動微分も利用できます。
PinocchioはInriaのWillowチームが開発しており、Crocoddyl、Aligator、Humanoid Path Plannerなどのプロジェクトで基盤として使われています。ロボティクス向けに設計されていますが、生体力学、コンピューターグラフィックス、コンピュータービジョンにも応用できます。
主な機能
- 01解析微分に対応した順動力学・逆動力学
- 02重心動力学と運動学・動力学リグレッサ
- 03閉ループ機構と摩擦接触のソルバー
- 04URDF、SDF、MJCF、SRDF形式のロボット記述を読み込み
- 05CondaまたはpipでインストールできるPythonバインディング
- 06Eigenとcoalを使用したヘッダーオンリーのC++テンプレートライブラリ
ユースケース
- ロボット制御や軌道最適化に必要な動力学と勾配の計算
- C++に移行する前にPythonでロボットアルゴリズムを試作
- 運動学・動力学リグレッサを用いたシステム同定
- 剛体力学の基盤上にモーションプランニングや全身制御のツールを構築
クイックスタート
- 1
conda-forgeからConda経由でPinocchioをインストールする
conda install pinocchio -c conda-forge - 2
またはpip経由でPythonバインディングをインストールする(Linuxのみ)
pip install pin - 3
またはDockerイメージを実行する
docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
使う前に知っておきたいこと
- pipパッケージは現在Linuxでのみ利用できます。
- develブランチには最新リリースのみが含まれ、新しいプルリクエストも追加されるため、頻繁に変更される可能性があります。
収録されている特集
トピック
よくある質問
- pinocchio とは?
- ロボティクス向けに、剛体の力学・運動学とその解析微分を扱う、高速なヘッダーオンリーC++ライブラリ。Pythonバインディングも提供します。 Pinocchioは、ロボットアームやヒューマノイドなどの多関節システムを対象とする、剛体力学のためのC++ライブラリです。順運動学・逆運動学と順動力学・逆動力学、重心動力学、およびこれらのアルゴリズムの解析微分を実装しています。解析微分は、勾配ベースの最適化や制御、学習に役立ちます。線形代数にはEigen、衝突検出にはcoalを使用し、URDF、SDF、MJCF、SRDF形式のロボット記述を読み込みます。
- pinocchio は無料で使えますか?ライセンスは?
- pinocchio は BSD-2-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- pinocchio は今もメンテナンスされていますか?
- 活発にメンテナンス中。pinocchio の最終コミットは 2026年11月6日 です。
- pinocchio は何に使えますか?
- ロボット制御や軌道最適化に必要な動力学と勾配の計算 C++に移行する前にPythonでロボットアルゴリズムを試作 運動学・動力学リグレッサを用いたシステム同定 剛体力学の基盤上にモーションプランニングや全身制御のツールを構築
- pinocchio のインストール方法は?
- conda-forgeからConda経由でPinocchioをインストールする: conda install pinocchio -c conda-forge またはpip経由でPythonバインディングをインストールする(Linuxのみ): pip install pin またはDockerイメージを実行する: docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
- pinocchio はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/stack-of-tasks/pinocchio
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
AIコーディングエージェントが自然文からCADモデルを生成・検査し、製造まで行えるプラグインとスキル集。
JAXをベースにした、JITコンパイルと自動微分でコントローラー設計を高速化する、純粋なPython製のロボット運動学・動力学ライブラリです。
Bullet Physics SDKは、ゲーム、VR、ロボティクス、機械学習で使われる、リアルタイム衝突検出とマルチフィジックスシミュレーション向けのC++ライブラリです。
MindSporeは、Huawei Ascend AIプロセッサをネイティブサポートする、モバイル、エッジ、クラウド向けのオープンソース深層学習トレーニング・推論フレームワークです。
CPU、CUDA、OpenCLバックエンドを備え、数値計算や深層学習向けに設計された、Nim製の高速で使いやすいN次元テンソルライブラリ。