ミドルウェア

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ライセンスです。




シミュレータ

Choreonoid

Choreonoid(コレオノイド)は、産総研の中岡慎一郎氏が中心となって開発している、オープンソースのロボット用統合GUIソフトウェアです。

標準で動作振り付け機能や動力学シミュレーション機能を備えています。機能を追加していくことも可能で、「ロボット用GUIアプリケーション開発フレームワーク」という側面も持っています。

また、ChoreonoidはWorld Robot Summit (WRS) の一環として2018年10月に開催が予定されているロボット競技会 World Robot Challenge (WRC) 2018 インフラ・災害対応カテゴリー トンネル事故災害対応・復旧チャレンジの競技に使用されます。

Choreonoidはオープンソースソフトウェアです。ライセンスはMITライセンスとなっています。



Gazebo

GazeboとはROSのロボットソフトウェア開発で主に用いられる3Dロボットシミュレータです。ROSを作っているOSRF(Open Source Robotics Foundation)が開発を続けており、ROSとの連携が充実しているのが特徴です。

オープンソースソフトウェアであり、ライセンスはApacheライセンスです。