OpenRTM-aist
OpenRTM-aistはロボットシステムをコンポーネント指向開発するためのソフトウエアプラットフォームです。
OpenRTM-aist では、ロボットシステムを作る際に、機能要素 (これをRTコンポー ネント: RTCと呼ぶ) ごとにプログラムを作成し、RTコンポーネントをつなぎ合 わせることでシステムを構築します。RTコンポーネントは、C++, Python, Java 言語で開発することができ、主要なOS (Linux/Unix, Windows, Mac OS X) をサポートしています。コンポーネント開発や、コンポー ネントを利用したシステム開発には、Eclipse ツールおよび、コマンドラ インのツールを利用することができます。
RTコンポーネントは、他のコンポーネントとデータやコマンドのやり取りをす るためのポートと呼ばれる機能や、振る舞いを統一するためのアクティビティ と呼ばれる基本的な状態遷移および、パラメータを外部から操作可能なコンフィ ギュレーションといった機能が備わっています。これらの機能を利用すること で、独立性や再利用性の高いモジュールを容易に作成することができます。す でに誰かが作ったコンポーネントを利用することで、最低限のプログラミング をするだけでシステムを構築することもできます。
OpenRTM-aist は、ネットワーク透過性、OS非依存性、言語非依存性を重視して 分散オブジェクトミドルウエアであるCORBAを用いて実装されています。現在の ところ、OpenRTM-aistはC++言語およびPython言語用の実装を提供しています。
ROS (Robot Operating System)
ROS (Robot Operating System)は世界的に利用されているロボットシステム開発用ソフトウエアプラットフォームです。
ROSはOpenRTM-aistと同様に機能要素ごとにプログラム(ノードと呼ばれる)を開発できるため、再利用性の高いプログラムを作成することができます。開発言語もC++, Python, LISP等が使用でき、それぞれ異なる言語で作成されたプログラム同士の通信も対応しています。サポートしているOSはLinux/Unix, MacOS等、Unix系OSでの運用を前提としており、Windowsでの利用は公式でサポートされていません。ROSはノードの作成や各ノードの通信等の基本的な操作をコマンドラインツールで行います。
ノード同士のデータ送受信は、トピックと呼ばれるものを経由して一方的にデータの送受信を行う方法と、ノード同士で同期通信を行い、データを相互に送受信する「サービス」の2種類の通信方式が提供されています。
ROSの特徴は、サポートツールとライブラリが豊富なことです。デバッグツール、3Dロボットシミュレータ、システムの可視化等、開発をサポートする各種ツールや、世界中の開発者から提供された2,000件を超えるオープンソースソフトウェアを利用することで、比較的容易にロボットシステムの開発を行う事が出来ます。また、Pepper等ROSに対応したロボットは数多く存在しています。
ROSはオープンソースのプロジェクトです。ライセンスはBSDライセンスです。