RTミドルウエア


RTミドルウエア (RTM)

RTミドルウエア (RT-Middleware: RTM) とは、ロボット機能要素 (RT機能要素) のソフトウエアモジュールを複数組み合わせてロボットシステム (RTシステム) を構築する為のソフトウエアプラットフォーム一般を指す名称です。 OpenRTM-aist はRTミドルウエア実装の一つであり、Open-source and open architecture Robot Technology Middleware implemented by AIST (産業技術総合研究所) の略称です。

RTシステムを構成するRT機能要素とは、あるまとまった機能を提供するロボッ ト構成要素で、例えばサーボモータやセンサ、カメラといったデバイス単位で あったり、あるいはこうしたデバイスの組み合わせにより実現される移動台車、 アームなどもRT機能要素として捉える事ができるでしょう。

また、ハードウエアに結びついているものだけでなく、制御アルゴリズム、画 像処理アルゴリズムといった、ソフトウエアのみで構成されるものもRT機能要 素と考えることができます。下図に示すように、モジュール化されたRT機能要 素を階層的に組み合わせることで、ロボットシステム構築を容易にするための プラットフォームがRTミドルウエアです。

rtsystem_integration_ja.png
RTミドルウエアによるRTシステムインテグレーション

RTコンポーネント (RTC)

RTミドルウエアでは、RT機能要素をソフトウエアモジュール化したものをRTコ ンポーネント(RT-Component: RTC)と呼びます。RTコンポーネントには、他の RTコンポーネントとデータをやり取りしたり、通信したりする為のポートと呼 ばれるインターフェースがあります。

図にRTCとRTMの関係を示します。上述したように、RTCは、ある一まとまりの機 能をモジュール化したソフトウエアの断片であり、その実体はRTM上で実行され る共有オブジェクト (shared object)、DLL (dynamic link library) です。 RTC開発者は、自分が持っている制御アルゴリズムのコードや、既存のライブラ リコード等 (コアロジックと呼ぶ) を、RTCBuilder等のツールによって自動生 成されるRTCの雛型コードに埋め込み、コンパイル (スクリプト言語では不要) することで、RTCを作成します。

rtm_and_rtc_ja.png
RTC(RTコンポーネント)とRTM(RTミドルウエア)

モジュールの分割と統合

RTシステムは、複数のコンポーネントのポートをつなぎ合わせ、それぞれのRT コンポーネント機能の集合体として構築されます。対話・認識コンポーネント を例にとって考えてみます。対話・認識コンポーネントは、ユーザの声や表情 を認識・観測して、音声や身振り手振りなどでユーザと対話する機能を持つコ ンポーネントで、以下のサブコンポーネントから構成されているとします。

  • カメラコンポーネント
  • ステレオビジョンコンポーネント
  • 顔認識コンポーネント
  • マイクコンポーネント
  • 音声認識コンポーネント
  • 対話コンポーネント
  • 頭・腕コンポーネント
  • 音声合成コンポーネント
    rtcbased_hri_system_ja.png
    RTCより構成される対話・認識システムの例

上図のように、分割コンポーネントはそれぞれポートと呼ばれる他のコンポー ネントと通信するインターフェースを持ち、データやコマンドのやり取りを行 い、全体として一つのまとまった機能を実現します。モジュール化することで、 モジュール単位での並行開発、再利用、交換や更新、分離等が可能になるため、 複雑さの軽減、開発効率の向上やシステムの柔軟性・拡張性・安定性の向上が 期待できます。

開発の経緯

RT-Middleware は、(独)新エネルギー・産業技術総合開発機構(NEDO)の21世紀 ロボットチャレンジプログラム(2002年度~2004年度) のプロジェクトにおいて、 そのコンセプトが提唱され、(独)産業技術総合研究所(産総研), 松下電工(現パ ナソニック電工株式会社), (社)日本ロボット工業会により研究・開発・標準化 が行われました。

プロジェクトの成果として, RTミドルウエアの参照実装として OpenRTM-aist-0.2 およびそのインターフェース仕様が公開されました。その後, 国際標準化団体 OMG (Object Manegement Group: http://www.omg.org ) にお いてRTCインターフェース仕様の標準化が進められ, 2008年4月にOMG公式標準仕 様となりました。この標準に準拠したRTミドルウエア実装の一つが2010年1月に 公開された OpenRTM-aist-1.0 です。

RTC OMG標準

OpenRTM-aist の大きな特徴として、コンポーネントモデルとそのインターフェー スが OMG という国際標準化団体で標準化されていることが挙げられます。

OMG (Object Management Group) は1989年に設立されたソフトウエア標準化団 体であり、分散オブジェクトミドルウエア: CORBA (Common Object Request Broker Architecture)、ソフトウェアモデリング言語: UML (Unified Modeling Language) を始めとして、様々な分野のソフトウエア標準を策定・管 理している組織として知られています。

RTCのインターフェース仕様も、CORBA 同様 OMG において, 産総研と米国ミド ルウエアベンダ RTI (Real Time Innovations) により標準化され、RTC (Robotic Technology Component) Specification ( http://www.omg.org/spec/RTC/1.0/ ) として2008年4月に公式リリースされま した。

標準化のメリットとして、標準に基づき多くのベンダ、開発者が自由にミドル ウエアを実装することができる点が挙げられます。現在、OMG RTC仕様に準拠、 または一部準拠するミドルウエアとして、表に示す7種類(OpenRTM-aist の3種 類の言語を含む) が存在します。

OMG RTC準拠のミドルウエア一覧

名称 ベンダー名 概要
OpenRTM-aist 産総研 C++, Python, Java の三種類.
OpenRTM.NET (株)セック .NET による実装, OpenRTM-aistと互換性あり.
OPRoS Project 韓国 ETRI 独自ミドルウエア上の実装.
PALRO(パルロ) 富士ソフト株式会社 小型人型ロボットPARLO(パルロ)の制御ソフトウエアがC++言語レベルで互換
GostaiRTC GOSTAI/Thales OMG RTC Local PSMに準拠.


このうち、通信を介して互換性がある物は、OpenRTM-aist と OpenRTM.NET の みですが、他の実装とは内部モデルが同一であるため、ブリッジ等を作り連携 させた際にも、全体としての整合性に矛盾が生じることは少なくなります。ま た、複数の組織による多様な実装が存在することで、用途に応じて適切な言語 やライセンスを選択することも可能であり、ミドルウエアそのものの永続性も 高くなります。

最新バージョン

初めての方へ

Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)

C++,Python,Java,
Toolsを含む
1.1.2-RELEASE

RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページ

統計

Webサイト統計
ユーザ数:1618
プロジェクト統計
RTコンポーネント286
RTミドルウエア21
ツール20
文書・仕様書1

Join our slack

Enter email address for slack invite.

旧Webサイト

OpenRTM.org旧Webサイト

OpenHRP3

動力学シミュレータ

Choreonoid

モーションエディタ/シミュレータ

OpenHRI

対話制御コンポーネント群

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

VirCA

遠隔空間同士を接続し、実験を行うことが可能な仮想空間プラットホーム