Choreonoidとは

Choreonoid(コレオノイド)はオープンソースのロボット用統合GUIソフトウェアです。標準で動作振り付け機能や動力学シミュレーション機能を備えています。機能を追加していくことも可能で、「ロボット用GUIアプリケーション開発フレームワーク」という側面も持っています。

Choreonoidは国立研究開発法人・産業技術総合研究所(産総研)におけるヒューマノイドロボット研究の一環として、産総研のロボット研究者である中岡慎一郎によって2006年より開発が開始されました。2010年10月に プレスリリース が行われ、その後2011年11月よりオープンソースソフトウェアとして一般にも公開されており、改良が続けられています。

2019年4月からは、株式会社コレオノイドによるChoreonoidの事業化活動が開始となりました。Choreonoidの開発も今後は株式会社コレオノイドが主体となって進められます。(引き続きオープンソースソフトウェアとして開発・公開が継続されます。)

このページでは、Choreonoidの概要を説明します。

動力学シミュレータとしてのChoreonoid

Choreonoidはロボット用の動力学シミュレータとして使用するための機能を備えています。

物理エンジンは産総研では開発されたAISTエンジンを標準で備えています。これは拘束条件法に基づくもので、二足歩行ヒューマノイドロボットHRPシリーズの研究開発でも用いられてきたものです。また、Choreonoidは他の物理エンジンを組み込むことも容易な設計としており、そのサンプルとして Open Dynamics Engine (ODE) や Bullet Physics Library, nVidia PhysX といったエンジンも利用可能です。シミュレータ全体の実行効率についても十分考慮した設計としており、各エンジンの性能を最大限に引き出すことが可能です。

仮想ロボットと制御プログラムとの接続は、多様な形態で行うことが可能です。現在のところ、共有ライブラリを用いる独自形式の制御プログラムや、RTミドルウェアのRTコンポーネント、およびOpenHRP3のインタフェースに基づく制御プログラムと接続することが可能となっています。これら以外の制御プログラムとの接続形態にも、プラグインを記述することでも対応可能となっています。

カメラやレーザーレンジセンサといった視覚系センサのシミュレーション機能も備えており、それらのセンサの情報を利用して動作するロボットのシミュレーションも可能となっています。これはシミュレータのオプション機能として実装されており、他にも多様なオプション機能を追加することが可能な設計となっています。

../_images/hrp2-plant-simulation.png

ヒューマノイドロボットHRP-2改がプラント内でバルブを回すシミュレーションの例

動作振り付けツールとしてのChoreonoid

Choreonoidは動作振り付け機能も有しており、3DCGによるロボットモデルのアニメーション表示を行いながら、キーフレーム設定を中心とした動作生成のための各種機能を用いて、ロボットの多様な動作を自由に作成することが可能です。この機能は2足歩行型ロボットにも対応しており、脚を用いたステップ等を含む動作についてもロボットが転倒せずに実行可能な動作となるよう、システムが自動で身体バランスを補正します。これにより、ヒューマノイドロボットの脚を含む全身動作についても、CGキャラクタアニメーションと同様の感覚で作成することが可能となります。この機能を用いて作成した動作の例については、 振り付け機能の応用例 のページをご覧ください。

../_images/kickmotionsample.jpg

Choreonoidを用いて作成したヒューマノイドロボットHRP-4Cの動作例

Choreonoid開発の原点はこの機能にあります。名前もこの機能に由来しており、"Choreograph"(振り付けをする)と"Humanoid"(ヒューマノイド)を組み合わて、「ヒューマノイドロボットを振り付けする」というイメージで命名されたものとなっています。

Choreonoidフレームワーク

Choreonoidは、「ロボットのための統合GUIアプリケーション開発フレームワーク」という側面も持っており、これによって上記の機能にとどまらない活用も可能です。Choreonoidのこの側面を表現する際には、「Choreonoidフレームワーク」という用語を使います。

そもそも、シミュレーションや振り付けを行うにあたっては、

  • ロボットの幾何学・運動学・動力学や動作データに関する各種モデル計算

  • ロボットの状態や動作データを可視化・入力・編集する各種GUI

  • 3DCGによるロボットモデルのレンダリング

  • 各種データの統合的な管理とファイル処理

  • 実機ロボットとの接続

といった、内部処理からGUIにわたる多様な機能が必要となります。そして、これらの機能の多くは、他の種類のロボットアプリケーション、例えば動作計画や遠隔操作といったアプリケーションにおいても必要となるものです。さらに、シミュレーション、振り付け、動作計画、遠隔操作といった各アプリケーションの間で密な連携を行うことで、より高度な応用も可能となってきます。

しかしながら、従来ロボットアプリケーションの多くは、それぞれ独自に同様の機能を実装していました。それらの機能を充実させるためには多大な労力が必要となりますが、これはロボットのハードウェアやロボットを動かすための各種アルゴリズムの研究開発においては必ずしも本質的ではない部分であり、場合によってはそれらハードウェアやアルゴリズムの研究開発の負担にもなりかねないものです。逆にそのような背景から、特にアカデミックなロボットの研究開発においては、上で挙げたような機能はプロトタイプ的な簡易な実装で間に合わせることも一般的です。このような状況は、研究開発の本質に出来る限り集中しつつも、その成果を広く活用していくにあたって、望ましいものではありません。

Choreonoidの開発は、シミュレーションや振付といった個々の機能を実現するだけでなく、そのGUIを含む基盤部分がロボットアプリケーションフレームワークとして汎用的に活用可能となることを意識して行いました。その結果、Choreonoidは汎用的な基本機能の上に任意の機能をプラグインとして追加可能な設計としており、シミュレーションや振り付けの機能もプラグインとして実装されています。そしてプラグインは他のプラグインとも連携可能となっており、既存の機能を活用しながらさらに多くの機能を拡張していくことが可能です。

なお、ロボット用ソフトウェアの共有化や連携を促進するフレームワークという意味では、OpenRTMやROSでみられるように、各種機能のコンポーネント化が活発に取り組まれてきています。ただし、それらは基本的に、GUIを中心とするアプリケーション上位層に焦点をあてたものでありません。そして、そのような領域を扱うフレームワークとして、Choreonoidの存在意義があるのではないかと考えています。

対応プラットフォーム

Choreonoidの最新版は以下のオペレーティングシステム(OS)に対応しています。

  • Ubuntu Linux

  • Windows

Choreonoidのソースコードはポータビリティを考慮して記述されていますので、上記以外のOSに関しても動作する可能性があります。Mac OS に関しては、Choreonoidのバージョン1.4までは動作確認をしていたのですが、現在はしていません。動作させるためにはソースコードの修正が必要と思われます。

対応プラットフォームやインストール方法の詳細についてはChoreonoidのマニュアルをご参照ください。

ライセンス

Choreonoidはオープンソースソフトウェアとして開発されており、そのライセンスはMITライセンスとしています。

基本的には、利用や配布、改変等は無償で自由に行うことが可能です。改変したものの配布や販売についても、ライセンスの条件に従って著作権表示を行えばOKとなっており、その際必ずしもソースを公開する必要はありません。このように、非常に自由度の高いライセンスとなっています。