»Choreonoidとは¶Choreonoid(コレオノイド)はオープンソースのロボット用統合GUIソフトウェアです。標準で動作振り付け機能や動力学シミュレーション機能を備えています。機能を追加していくことも可能で、「ロボット用GUIアプリケーション開発フレームワーク」という側面も持っています。(産総研)におけるヒューマノイドロボット研究の一環として、産総研のロボット研究者である中岡慎一郎によって2006年より開発が開始されました。行われ、その後2011年11月よりオープンソースソフトウェアとして一般にも公開されており、改良が続けられています。2019年4月からは、株式会社コレオノイドによるChoreonoidの事業化活動が開始となりました。Choreonoidの開発も今後は株式会社コレオノイドが主体となって進められます。(引き続きオープンソースソフトウェアとして開発・公開が継続されます。)このページでは、Choreonoidの概要を説明します。動力学シミュレータとしてのChoreonoid動作振り付けツールとしてのChoreonoidChoreonoidフレームワーク対応プラットフォームライセンス動力学シミュレータとしてのChoreonoid¶Choreonoidはロボット用の動力学シミュレータとして使用するための機能を備えています。物理エンジンは産総研では開発されたAISTエンジンを標準で備えています。これは拘束条件法に基づくもので、二足歩行ヒューマノイドロボットHRPシリーズの研究開発でも用いられてきたものです。いったエンジンも利用可能です。シミュレータ全体の実行効率についても十分考慮した設計としており、各エンジンの性能を最大限に引き出すことが可能です。仮想ロボットと制御プログラムとの接続は、多様な形態で行うことが可能です。現在のところ、共有ライブラリを用いる独自形式の制御プログラムや、RTミドルウェアのRTコンポーネント、およびOpenHRP3のインタフェースに基づく制御プログラムと接続することが可能となっています。これら以外の制御プログラムとの接続形態にも、プラグインを記述することでも対応可能となっています。カメラやレーザーレンジセンサといった視覚系センサのシミュレーション機能も備えており、それらのセンサの情報を利用して動作するロボットのシミュレーションも可能となっています。これはシミュレータのオプション機能として実装されており、他にも多様なオプション機能を追加することが可能な設計となっています。動作振り付けツールとしてのChoreonoid¶Choreonoidは動作振り付け機能も有しており、3DCGによるロボットモデルのアニメーション表示を行いながら、キーフレーム設定を中心とした動作生成のための各種機能を用いて、ロボットの多様な動作を自由に作成することが可能です。この機能は2足歩行型ロボットにも対応しており、脚を用いたステップ等を含む動作についてもロボットが転倒せずに実行可能な動作となるよう、システムが自動で身体バランスを補正します。これにより、ヒューマノイドロボットの脚を含む全身動作についても、CGキャラクタアニメーションと同様の感覚で作成することが可能となります。ページをご覧ください。Choreonoidを用いて作成したヒューマノイドロボットHRP-4Cの動作例Choreonoid開発の原点はこの機能にあります。名前もこの機能に由来しており、"Choreograph"(振り付けをする)と"Humanoid"(ヒューマノイド)を組み合わて、「ヒューマノイドロボットを振り付けする」というイメージで命名されたものとなっています。Choreonoidフレームワーク¶Choreonoidは、「ロボットのための統合GUIアプリケーション開発フレームワーク」という側面も持っており、これによって上記の機能にとどまらない活用も可能です。Choreonoidのこの側面を表現する際には、「Choreonoidフレームワーク」という用語を使います。実機ロボットとの接続といった、内部処理からGUIにわたる多様な機能が必要となります。これらの機能の多くは、他の種類のロボットアプリケーション、例えば動作計画や遠隔操作といったアプリケーションにおいても必要となるものです。いった各アプリケーションの間で密な連携を行うことで、より高度な応用も可能となってきます。従来ロボットアプリケーションの多くは、それぞれ独自に同様の機能を実装していました。それらの機能を充実させるためには多大な労力が必要となりますが、これはロボットのハードウェアやロボットを動かすための各種アルゴリズムの研究開発においては必ずしも本質的ではない部分であり、場合によってはそれらハードウェアやアルゴリズムの研究開発の負担にもなりかねないものです。逆にそのような背景から、特にアカデミックなロボットの研究開発においては、上で挙げたような機能はプロトタイプ的な簡易な実装で間に合わせることも一般的です。このような状況は、研究開発の本質に出来る限り集中しつつも、その成果を広く活用していくにあたって、望ましいものではありません。Choreonoidの開発は、シミュレーションや振付といった個々の機能を実現するだけでなく、そのGUIを含む基盤部分がロボットアプリケーションフレームワークとして汎用的に活用可能となることを意識して行いました。その結果、Choreonoidは汎用的な基本機能の上に任意の機能をプラグインとして追加可能な設計としており、シミュレーションや振り付けの機能もプラグインとして実装されています。プラグインは他のプラグインとも連携可能となっており、既存の機能を活用しながらさらに多くの機能を拡張していくことが可能です。ロボット用ソフトウェアの共有化や連携を促進するフレームワークという意味では、OpenRTMやROSでみられるように、各種機能のコンポーネント化が活発に取り組まれてきています。それらは基本的に、GUIを中心とするアプリケーション上位層に焦点をあてたものでありません。そのような領域を扱うフレームワークとして、Choreonoidの存在意義があるのではないかと考えています。対応プラットフォーム¶Choreonoidは最新版のバージョン1.6において以下のオペレーティングシステム(OS)に対応しています。Ubuntu、Windowsともに64bit版で動作を確認しています。Choreonoidのソースコードはポータビリティを考慮して記述されていますので、上記以外のOSに関しても動作する可能性があります。関しては、Choreonoidのバージョン1.4までは動作確認をしていたのですが、現在はしていません。動作させるためには多少の修正が必要だと思われます。ハードウェアに関しては、昨今の一般的なPCであれば概ね問題なく動作します。必要なスペックについては、やりたいことにもよりますが、以下を参考にしてください。シリーズ程度のマルチコアCPUを備えていれば、多くの機能を問題なく利用可能です。シミュレーション等を高速に行うためには、より高速なCPUであるに越したことはありません。コア数に関しても多いほうが高速に処理できる可能性は高まりますが、それを十分に活かせない機能もありますので、一概には言えません。メモリ扱うモデルやシミュレーション、動作データにもよりますが、それらの規模が特別大きいのでなければ、OSが快適に動作する程度のメモリがあれば十分かと思われます。規模が大きい場合はそれに見合ったメモリを用意してください。GPUハードウェアアクセラレーションによるOpenGLが利用可能であることを前提としています。ビデオチップやOpenGLのドライバによってはロボットモデルの3DCG表示やアニメーションがスムーズでない場合があります。iシリーズに内蔵のGPUも十分な性能を備えており、そちらでも概ね問題ありません。ライセンス¶Choreonoidはオープンソースソフトウェアとして開発されており、そのライセンスはMITライセンスとしています。基本的には、利用や配布、改変等は無償で自由に行うことが可能です。改変したものの配布や販売についても、ライセンスの条件に従って著作権表示を行えばOKとなっており、その際必ずしもソースを公開する必要はありません。