RTM(Robot Technology Middleware)って何?

ロボットテクノロジーをもっと使いやすく

RTミドルウェア

rtsystem_integration_ja.pngOpenRTM-aist official websiteより引用OpenRTM-aist official websiteより私たちが開発している家庭用ロボットには、ロボットのハードウェア製作のほか,地図作成や経路探索,ビジョン,音声対話などの様々なソフトウェアの実装すが要求されます。これらのような機能を満たすロボットシステムを開発するには,開発環境,ロボットに関する知識,制御技術などの面で大変な労力が必要となります。
RT ミドルウェアは、ロボット機能のソフトウェア要素をモジュール化された部品(RT コンポーネント:RTC)とし,これらの部品を組み合わせることによって多様なロボットシステムを構築することができます。RTC 化することで,RTC 単位での並行開発,再利用,交換や更新,分離等が可能になるため,開発効率の向上や,システムの柔軟性,拡張性,安定性の向上が期待できます。RTC 間の通信は,RT ミドルウェアにより隠蔽されているため,開発者はコアとなるロジック部分に注力して開発を行い、タスク毎に必要な RTC を再利用して組み合わせることで,タスクに対応したロボットシステムを容易に構築できます。

RTコンポーネント

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

.


Tech-On!より引用。
パソコンやスマートフォンは機種が違っても同じソフトウエアが使える。だが、現状の多くのロボットではそうはいかない。ロボットごとに、あるいはメーカーごとに、OSやミドルウエア、プログラム言語が異なっており、しかも通常はそれらの仕様が非公開となっているためだ。
 だが、ロボットをもっと幅広く活用したいのであれば、パソコンのアプリケーション・ソフトやスマホのアプリのように、他者が開発したソフトを利用したり、ロボットの専門家でなくてもソフトを開発できたりといった環境がほしくなる。他者のソフトを流用できれば、本当に開発が必要な部分だけに集中できるし、ロボットの専門家以外がロボットのソフト開発に関われるようになれば、もっといろんなアイデアをロボットに取り込めるようになる。

入門編

インストールしてサンプルを動かしてみよう

このホームページでは以下の環境で動作確認をしています。
OS:Microsoft Winodws 7 SP1(64bit)
開発環境:Visual Studio 2010(64bit版) ※一部のコンポーネントは32bit版でコンパイル
言語:C++, C#, Python
ミドルウェア:OpenRTM-aist-1.1.0-RELEASE、OpenRTM.NET-1.3.1

install.png
OpenRTM-aistをインストール

  • C++版
  • Python版
  • ツール群

インストールのページ(32ビット)LinkIcon
インストールのページ(64ビット)LinkIcon

install(sec).png
OpenRTM.NETをインストール

RTコンポーネントを.NET環境で作成すためのミドルウェアをインストールします。開発元である、(株式会社)SECのホームページを参考にしてください。

インストールのページLinkIcon

pixture_reloaded_logo.png
OpenRTM付属のサンプル
ConsoleInComp、ConsoleOutComp
USBカメラを利用する
次は。。。

こちらを参考にLinkIcon

183.png
OpenHRIによる音声対話

リンクを設定します。LinkIcon

コンポーネント編

いろいろ作りました、使ってみてください。

randd_camandsensor.png
カメラ
Kinect
Leap Motion
Intel PerCSDK
他…

一覧はこちらLinkIcon

randd_camandsensor.png
センサ
バーコード認識
USBサーモグラフィ
3Dセンサモジュール(TDS01V)
他…

一覧はこちらLinkIcon

randd_mobilerobot.png
移動ロボット
Roomba
Robovie R3
AR.Drone
他…

一覧はこちらLinkIcon

randd_manipulator.png
マニピュレーション
RtcOpenRave
Katana
他…

一覧はこちらLinkIcon

tools.png
ユーティリティ
タスクマネージャー

一覧はこちらLinkIcon

一覧はこちらLinkIcon

speaker-volume.jpg
音声入力・音声合成
Google音声合成
ボイスロイドによる音声合成
VoiceTextによる音声合成
他…

一覧はこちらLinkIcon

Cloud Computing5.jpg
Webアプリケーション
Google系、楽天系
Yahoo!系、Docomo系
Microsoft系
他…

一覧はこちらLinkIcon

チュートリアル編

対話ベースタスク管理コンポーネント(RtcMyTask)を使ってみよう

詳細はこちらへ

webシステムを利用したRTC群

計測自動制御学会システムインテグレーション部門講演会
RTコンテスト 奨励賞(ウィン電子工業賞)受賞

特に近年WEBのサービスとして音声認識や画像検索をはじめとした技術の利用が可能となってきています。これによりWEB上の膨大な知識を利用することが可能となりつつあります。googleで提供するサービスのうち、音声認識や音声合成、そのほかの検索サイトによる検索サービスを利用するRTC群を開発しました。
使用するためには、WEBサービスを利用するためインターネット接続環境が必要です。

kartoライブラリを利用したロボットの移動システムRTC群

ロボットが目的地まで移動するには経路計画や自己位置推定が必要です。KARTO SDKはロボットのナビゲーション、SLAM、探査などの地図に関わるC++ライブラリであり、これを用いた地図処理に関するRTCと経路計画に関するRTCを開発しました。また、RTCを組み合わせた自動地図生成システムを提供します。

詳細はこちらへ

実践編

ロボカップ@ホーム(実機ロボット編)

人追従システムのためのRTコンポーネント群

詳細はこちらへ

ロボカップ@ホーム(シミュレーション編)

詳細はこちらへ

双腕ロボットHIROの遠隔操作


詳細はこちらへ

双腕ロボットHIROのよるオブジェクト発見・把持


詳細はこちらへ

オンラインSLAMによる地図作成と経路探索


詳細はこちらへ