Repolode
stack-of-tasks

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. 1

    conda-forgeからConda経由でPinocchioをインストールする

    conda install pinocchio -c conda-forge
  2. 2

    またはpip経由でPythonバインディングをインストールする(Linuxのみ)

    pip install pin
  3. 3

    またはDockerイメージを実行する

    docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel

使う前に知っておきたいこと

  • pipパッケージは現在Linuxでのみ利用できます。
  • develブランチには最新リリースのみが含まれ、新しいプルリクエストも追加されるため、頻繁に変更される可能性があります。

収録されている特集

トピック

#robotics#rigid-body-dynamics#kinematics#c-plus-plus#python#automatic-differentiation#urdf#optimization#analytical-derivatives#casadi

よくある質問

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 の数値は毎日更新されます。

関連プロジェクト

JAXをベースにした、JITコンパイルと自動微分でコントローラー設計を高速化する、純粋なPython製のロボット運動学・動力学ライブラリです。

AI・機械学習#robotics#kinematics#dynamics
688+74 今週47PythonMIT活発にメンテナンス更新 3 日前