IKPy
URDFから直接チェーンを構築する純Python逆運動学ライブラリ
ライセンス
Apache-2.0
概要
IKPyは、Pierre Manceronによる軽量な純Python逆運動学ライブラリ。URDFファイルから運動学チェーンを直接パースし、SciPyベースの数値最適化で順運動学・逆運動学を解き、Matplotlibによるシンプルな3D可視化も備える。コンパイル済みの依存関係を持たないためPythonが動く環境ならどこにでもインストールでき、教育、ホビー用アーム、そしてその出自であるPoppyヒューマノイドエコシステムで愛用されてきた。
IKPyはロボットを、URDFからパースされるリンクのChainとしてモデル化する(DH方式の手動定義用ヘルパーもある)。順運動学は行列の連鎖で計算され、逆運動学は関節値に対する有界最小二乗最適化として実行され、位置・姿勢ターゲット、アクティブリンクマスク、関節リミットをサポートする。チェーンとターゲットをMatplotlibの3Dで描画するプロットユーティリティと、2リンクアームからBaxterのようなフルサイズのロボットまでを扱うチュートリアルを同梱。速度よりも移植性とハック可能性を意図的に優先しており、すべてNumPy/SciPyで書かれ、ビルドすべきC拡張はなく、チェーンはサブクラス化できる普通のPythonオブジェクトだ。この設計によりIKPyは、オープンソースヒューマノイドPoppyエコシステムの運動学レイヤーとなり、IKの教育、素早いプロトタイピング、そしてフルのMoveItスタックでは大げさすぎるホビーアームの駆動における定番の選択肢になった。
重要な理由
IKPyはPythonロボティクス界における「5行で書けるIK」の定番ライブラリだ。この10年間、URDFファイルから動く逆運動学への最も摩擦の少ない道であり続け、教育、Poppyヒューマノイドコミュニティ、無数のホビーアームプロジェクトで使われている。
解決する課題
ターゲット姿勢に対する関節角度が欲しいだけの場面では、フルの運動計画スタックは重装備すぎる。IKPyなら、pip installだけで任意のPythonプログラムにURDF準拠の順・逆運動学を組み込める — ROSも、コンパイル済みソルバーも、面倒な設定も不要。
主なポイント
- URDFファイルから運動学チェーンを直接構築(DH方式の手動定義にも対応)
- 関節リミット、アクティブリンクマスク、位置・姿勢ターゲットに対応した数値IK
- NumPy/SciPy上の純Python — どこでもインストール可能、コンパイル済み依存なし
- チェーンとターゲットのMatplotlib 3D可視化を内蔵
- Poppyヒューマノイドエコシステムの運動学レイヤー。教育現場で広く利用
対象
- 運動学を学ぶロボティクスの学生
- ホビーロボットアームのビルダー
- ロボットの動作をスクリプトで書くPython開発者
- ロボティクスの教材を作る教育者
制限事項
- 数値最適化は解析的またはコンパイル済みのIKソルバーより遅い — 高レートの制御ループには不向き
- 衝突チェックや運動計画はなし — 関節解のみ
- 姿勢拘束付きのIKは、うまく収束させるための調整(初期位置、アクティブリンク)が必要な場合がある