Choreonoid(コレオノイド)とは産業技術総合研究所が開発・公開したオープンソースのロボット用統合GUIソフトウェア[1]。
概要
動力学シミュレータ・動作振り付けツール等の機能を持つC++用GUIソフトウェア(主な開発言語はC++だが、Python用のAPIが準備されているためPythonから呼び出すことが可能)。プラットフォームとしてUbuntu、Windowsをサポートしている。近年では「ジャパンバーチャルロボティクスチャレンジ(Japan Virtual Robotics Challenge)」(略称JVRC)のシミュレータに採用されたり[2]、講習会等(講習会情報)が行われたりしておりロボット界で広く用いられつつある。
機能
本体の機能
- ロボットのための統合GUIアプリケーション開発フレームワーク[3]
- Choreonoidは汎用的な基本機能の上に任意の機能をプラグインとして追加可能な設計としており、動力学シミュレーションや振り付け機能もプラグインとして実装されている。プラグインは他のプラグインと連携可能なため、既存の機能を活用しながらさらに多くの機能を拡張していくことができ、フレームワーク全体として非常に拡張性の高い構成となっている。
本体に付属する標準拡張機能
汎用的かつ利便性の高い機能は標準プラグインとして本体に付属している。
- 動力学シミュレーション機能[4]
- 標準では産総研で開発されたAISTエンジンを備えている。他の物理エンジンも容易に組み込むことができ、Open Dynamics Engine (ODE) や Bullet Physics Library, nVidia PhysXといったエンジンもサンプルとして利用可能。カメラやレーザーレンジセンサなどの視覚センサのシミュレーション機能も備えている。
- 動作振り付け機能[5]
- 3DCGによるロボットモデルのアニメーション表示を行いながら、キーフレームを設定することで動作軌道を生成する。そのため、ロボットの多種多様な動作を自由に作成することが可能。また、この機能は2足歩行型ロボットにも対応しており、ロボットが転倒しないようにゼロモーメントポイントに基づいて自動で身体バランスを補正する(Balancerプラグイン)。
- インタープリタ機能
- 主要開発言語はC++であるが、PythonプラグインによりPythonから対話的に操作することが可能。
- プロセス間通信機能
- 共有ライブラリを用いる独自形式の制御プログラムや、RTミドルウェアのRTコンポーネント(OpenRTMプラグインを利用)、およびOpenHRP3のインタフェース(OpenHRPプラグインを利用)に基づく制御プログラムと接続することが可能。プラグインを記述することでこれら以外の制御プログラムとの接続形態にも対応可能。ROSでの通信にも対応予定。
- ロボットモデルライブラリとしての機能
- 多自由度のロボットの制御に必須である順運動学・逆運動学や順運動学・逆運動学、自己干渉や環境との干渉検知などの機能がある。ロボットモデルは主にVRML形式に対応している。
外部拡張機能
- graspPlugin
- ハンド付きアームのロボットに対して、把持計画、軌道計画、作業計画等の問題を解くプラグイン
- MobileHIRO操作用統合環境
- 3Dモデルにより移動・把持動作計画を作成し計画の確認を行いながら、移動・把持計画をMobileHIROに送信しロボットの動作検証を行うプラグイン
- 実機ロボットとの接続
採用ロボット
実機
シミュレーション
関連項目
外部リンク
参照