ロボカップ@ホームのオープンプラットフォーム化 2P1-K16

䢴䣒䢳䢯䣍䢳䢸
ロボカップ@ホームのオープンプラットフォーム化
Open Platform Activity of RoboCup@Home
○村永 和哉((株)セック)岡田 浩之(玉川大学)
村山 純一((株)セック)小田桐 康暁((株)セック)中本 啓之((株)セック)
Kazuya MURANAGA(SEC CO., LTD.), Hiroyuki OKADA(Tamagawa Univ.),
Junichi MURAYAMA, Yasuaki ODAGIRI, Hiroyuki NAKAMOTO(SEC CO., LTD.)
The RoboCup@Home league is the global domestic robot competition for autonomous service and assistive
robots. It is part of the RoboCup competition. Several benchmark tasks are used to evaluate the robots' abilities in a
realistic home environment setting. In the RoboCup@Home, the focus is applied to the following things
Human-Robot-Interaction, navigation and mapping in dynamic environments, computer vision and object
manipulation. We are developing on the globalization of the software platform of RoboCup@Home.
Key Words: RT-Middleware, Inteligent Robot, RoboCup@Home, Home Robot
1
はじめに
2
ロボカップはロボット工学と人工知能の融合,発展のため
に,自律移動ロボットによるサッカーを題材として日本の研
究者らによって 1992 年に提唱された競技会である.現在では,
サッカーだけでなく,大規模災害へのロボットの応用として
レスキューリーグ,次世代の技術の担い手を育てるジュニア
リーグなどで組織されている.
ロボカップ@ホーム(以降,@ホーム)も,これらのリー
グの一つとして組織されている.人と共に作業を行う自律移
動ロボットが,キッチンやリビングルームなどの家庭環境で
様々な課題に取り組み,その達成度により勝敗を競う競技会
である(図 1).家庭で人間を支援する競技を通じ,人とコミュ
ニケーションを取りながら働く実用的なロボットの実現を目
指している[1][2].
ロボカップ@
ロボカップ@ホームとは
ホームとは
@ホームはいくつかの共通タスクと,それぞれのチームが
独自に課題を設定するオープンチャレンジ,デモチャレンジ,
ファイナル競技から構成される.共通タスクは,競技委員会
であるテクニカルコミッティー主導で協議を重ねた上で,毎
年様々な視点で難度の高いタスクに変更される.これは,技
術の進歩とタスクの難易度を適切に制御するためである.
競技での勝敗は単純に課題の成功・失敗だけで決まるので
はなく,以下に挙げるような様々な視点から採点される.
・ ロボットと人の自然なコミュニケーション
・ アプリケーション志向であるか
・ 技術的に新しい事に挑戦しているか
・ セットアップに時間をかけていないか
・ 観客が見ていて楽しいか
・ 実用的な時間で動作するか
このように,純粋にロボット技術だけを競うのではなく,
現実の家庭で使うという実用性を重視した競技である.また,
動作の信頼性・安全性も評価の対象となるため,競技は新規
環境でも基本的に一発勝負であり,再試行は減点の対象とな
る.
3
ロボットプラットフォーム
@ホームでは,家庭と同じ程度の広さのリビングやキッチ
ンを走行する.横幅 80cm のドアや通路を走行するため,小
型で小回りが利く躯体が要求される(図 2).
Fig. 1
RoboCup@Home Task
ロボカップ世界大会における@ホームへの参加チームは
2007 年のアトランタ大会の 15 チームから 2010 年のシンガポ
ール大会は 24 チームと,年々増加している.一方で,ジャパ
ンオープンは 2010 年大会で 2 チームの参加に留まっている.
日本国内における参加チーム増加への取り組みが必要であり,
市販のロボットにオープンソースソフトウェアを組み合わせ
た標準ロボットプラットフォームを用意し,新規参入者の参
入障壁を低くする必要性が指摘されている[1][2].
本稿では,@ホームのオープンプラットフォーム化に向け
て開発した@ホームのタスクに対応するロボットシステムに
ついて紹介する.
Fig. 2
Left : eR@ser,
Right : DiGORO
䣐䣱䢰䢢䢳䢳䢯䢷䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢳䢳䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣑䣭䣣䣻䣣䣯䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢸䢯䢴䢺䢮䢢䢴䢲䢳䢳
䢴䣒䢳䢯䣍䢳䢸䢪䢳䢫
一方で,ロボットにはアームやステレオカメラ,LRF など
かなりの重量を積載することになる.小型かつ可搬重量の大
きいロボットが必要となるが,市販ロボットはどれも一長一
短であり,新規参入者にとってハードウェアの選定は最初の
問題となる.
また,@ホームで競技するロボットには,ロボット製作の
ほか,地図作成や経路探索,ビジョン,音声対話などのソフ
トウェアを実装する必要がある.@ホームのロボットに必要
なソフトウェアモジュール一覧を表 1 に示す.
Table 1 Module List for RoboCup@Home
分類
モジュール名
自律移動
大域的経路計画,局所的経路計画,障
害物検知,自己位置推定,地図更新,
人検知・追跡,モータ出力,距離情報
入力
コミュニケーション
音声認識,対話スクリプト,音声合成,
音声出力,顔認識・認証,ジェスチャ
認識
マニピュレーション
順・逆運動学計算,軌道生成,ハンド
アイマニピュレーション,物体探索・
移動・認識・把持,パンチルト制御,
オブジェクトの発見・識別,力センサ
入力,コントローラ
システム管理
移動台車
MobileRobots PIONEER 3-DX
レーザ距離センサ
HOKUYO UTM-30LX
Web カメラ
Logicool Qcam Cool
マイク
ヘッドセットマイク
コミュニ
ケーション
タスク管理,システム監視
上記のような機能を満たすロボットシステムを開発するに
は,開発環境,ロボットに関する知識,制御技術などの面で
大変な労力が必要となる.
そこで,我々は,ロボットシステム開発の共通化,効率化
を実現する手段として,RT ミドルウェアに注目した.RT ミ
ドルウェアは国際標準化団体 OMG
(Object Management Group)
において標準化されたロボット向けのソフトウェアである.
ロボット機能のソフトウェア要素をモジュール化された部品
(RT コンポーネント(以降,RTC[3])
)とし,これらの部品
を組み合わせることによって多様なロボットシステムを構築
することができる.RTC 化することで,RTC 単位での並行開
発,再利用,交換や更新,分離等が可能になるため,開発効
率の向上や,システムの柔軟性,拡張性,安定性の向上が期
待できる.RTC 間の通信は,RT ミドルウェアにより隠蔽さ
れているため,開発者はコアとなるロジック部分に注力して
開発を行うことができる.@ホームでは多様なタスクが課題
として与えられているが,タスク毎に必要な RTC を再利用し
て組み合わせることで,タスクに対応したロボットシステム
を容易に構築できる.
4
ら Follow Me タスクについて RT ミドルウェア対応を行った.
Follow Me では,ロボットが動的環境の中,知らない人の後を
安全についていくことを競う.このタスクは競技場の外,例
えばスーパーマーケットのような場所で実施される.ロボッ
トはオペレータと呼ばれる追跡される未知の人物の特徴を記
憶した後,オペレータの音声やジェスチャの開始指示により,
オペレータの後を追い始め,予め定められたコースに沿って
オペレータについていく.ジェスチャ認識による一時停止や
他の人物との区別などのチェックポイントをクリアしながら,
ゴールラインを目指す.人物追跡の基本的な機能に加え,障
害物や一般の観客など,外乱の多い実環境での確実な動作が
要求されるタスクである.
使用したハードウェア一覧を表 2 に,RTC の構成を図 3 に
示す.ミドルウェアには OpenRTM-aist-1.0.0(C++, Python)を
用いた.また,音声モジュールとして,音声認識・音声合成・
対話制御など,ロボットのコミュニケーション機能の実現に
必要な各要素を実現するコンポーネント群である,OpenHRI
[6]を利用している.
Table 2 Hardware for Follow Me
オープンプラットフォーム化
オープンプラットフォーム化に向けて
4.1 @ホームタスクの
ホームタスクの RT ミドルウェア対応
ミドルウェア対応
我々は,独立行政法人新エネルギー・産業技術総合研究機
構の委託業務である「次世代ロボット知能化技術開発プロジ
ェクト[4]」(以降,知能化プロジェクト)において,ロボットシ
ステムを効率的に構築するためのソフトウェアプラットフォ
ーム OpenRTP(Open Robot Technology Platform)[5],ならびに
移動知能モジュールを開発している.
我々は,知能化プロジェクトで開発された知能モジュール
を一部再利用し,@ホームのタスクのオープンプラットフォ
ーム化を検討している.まず,@ホームの共通タスクの中か
システム管理
システム管理
自律移動
Fig. 3
RTC Configuration
主要な RTC には知能化プロジェクトで開発した RTC を利用
し,不足する機能については新規に RTC を開発した.一部の
チェックポイントの課題を除き,RTC の選定も含めておよそ
60 時間で Follow Me のタスクを実現できることを確認した.
これは通常のロボットシステム開発と比べて,高い生産性で
あるといえる.
これらの RTC を再利用することで,容易に他のタスクにも
対応できる.新規参入者はこれらの構成を元にして,ロボッ
トのハードウェア,人認識や音声認識,人物追跡などの RTC
を任意に作成,組み換え,独自のロボットシステムを構築す
る こ とが 可能 であ る .例 えば , 我々 は次 のタ ス クと して
Enhanced Who Is Who の開発を進めている.このタスクでは,
ロボットはまず見知らぬ人を記憶する.その後,記憶した人
の中から声で呼ばれたり,手を振られたりした人を検出し,
その人に飲み物を届ける.Follow Me のタスクで利用した RTC
のうち,音声認識,移動関連の RTC については再利用し,新
たに顔認識やマニピュレーションを行う RTC を追加してシス
テムを再構成すればよい.
䣐䣱䢰䢢䢳䢳䢯䢷䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢳䢳䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣑䣭䣣䣻䣣䣯䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢸䢯䢴䢺䢮䢢䢴䢲䢳䢳
䢴䣒䢳䢯䣍䢳䢸䢪䢴䢫
4.2 RTC-OpenRAVE
ロボットアームなどのマニピュレーションに関しては,オ
ープンソースソフトウェアとして,OpenRAVE がある[7].
OpenRAVE は知的マニピュレーションを扱う環境モデルを備
えており,様々なマニピュレーションの完全自動化を目指し
た開発環境である(図 4)
.ハードウェア抽象化,通信,認識
などを ROS[8]などの他のライブラリに任せ,運動学的・動力
学的な経路プランニングに必要なインタフェースだけを定義
した簡潔な構造になっている.
RTC-OpenRAVE において,OpenRAVE の python 向けコマンド
の拡張機能を追加するプラグインである.本プラグインを
OpenRAVE の環境にロードすることにより,python 向けコマ
ンドのサービスポートが,RTC-OpenRAVE に追加される.
RTC-Controller Plugin (OpenRAVE プラグイン)
プラグイン)
RTC-OpenRAVE において,データポートを利用したロボット
制御の拡張機能を追加するプラグインである.本プラグイン
を OpenRAVE の環境にロードすることにより,マニピュレー
タに各関節に対する角度指令を出力するデータポート,およ
び,マニピュレータからのフィードバック角度を入力するデ
ータポートが,RTC-OpenRAVE に追加される.
RTC-Camera Plugin (OpenRAVE プラグイン)
プラグイン)
RTC-OpenRAVE において,データポートを利用したカメラ映
像取得の拡張機能を追加するプラグインである.本プラグイ
ンを OpenRAVE の環境にロードすることにより,RGB フォー
マットの画像データを入力するデータポートが,
RTC-OpenRAVE に追加される.
OpenRAVE には,Neuronics 社製のロボットアームである
KATANA の ロ ボ ッ ト モ デ ル な ど も 含 ま れ て お り ,
RTC-OpenRAVE を用いることで,容易にロボットアームのマ
ニピュレーションをシミュレーション環境や実機環境で行う
ことができるようになる.
Fig. 4
Simulation on OpenRAVE
我々は,RTC の機能を OpenRAVE のプラグインとして内包
し,RTC のポートを介して OpenRAVE の機能を外部に提供す
る仕組みを備えた,RTC-OpenRAVE を開発した(図 5).
RTC-OpenRAVE を用いることで,ロボットシステムに応じて
RTC から OpenRAVE の全機能をシームレスに扱うことができ
るようになる.
RTC-OpenRAVE
OpenRAVE(C++)
OpenRAVE
OpenRAVE
Core
Core
OpenRAVE
基本機能
RTCManipulation
Plugin
OpenRAVE用
Pythonスクリプト
RTCController
Plugin
RTC-Camera
Plugin
OpenRAVE(python)
RTCManipulation
Python Plugin
関節角度
フィードバック
ロボット
コントローラ
RTC
カメラ画像
各軸制御
5
おわりに
本稿では,ロボカップ@ホームの新規参入に関する問題点
について述べ,オープンプラットフォーム化の取り組みとし
て,RT ミドルウェアを使ったタスクの実行例やモジュール化
について述べた.また,ロボットアームのマニピュレーショ
ンを容易に行うために,OpenRAVE を RT ミドルウェアから利
用するためのライブラリである RTC-OpenRAVE について述べ
た.
今後は,Follow Me 以外のタスクに対応した RTC 群を開発
し,2011 年 5 月の RoboCup ジャパンオープンにおいてデモ公
開,2011 年秋頃に一部の RTC を一般向けにオープンソース公
開する予定である.
カメラ入力
謝 辞
カメラRTC
本研究の成果の一部は,独立行政法人新エネルギー・産業
技術総合研究機構(NEDO)の委託業務の結果得られたもので
ある.ここに関係者の皆様に対して感謝の意を表する.
【凡例】
制御
データ
利用
文 献
Fig. 5
RTC-OpenRAVE
[1]
RTC-OpenRAVE は,
以下に示す 1 つの RTC と 4 つの OpenRAVE
プラグインから構成される.
RTC-OpenRAVE (RT コンポーネント)
コンポーネント)
OpenRAVE の機能を他の RTC から利用するための RTC である.
サービスポートを通じて,OpenRAVE の持つ基本機能(環境
モデルやロボットモデルのロード/設定,マニピュレーショ
ンの関節角度の指定など)を利用できる.また,下記に示す
プラグインを OpenRAVE の環境にロードすることで,それぞ
れのプラグインが持つ拡張機能を利用できるようになる.
RTC-Manipulation Plugin (OpenRAVE プラグイン)
プラグイン)
本プラグインを OpenRAVE の環境にロードすることにより,
RTC-OpenRAVE が起動する.
RTC-Manipulation Python Plugin (OpenRAVE プラグイン)
プラグイン)
[2]
[3]
[4]
[5]
[6]
[7]
[8]
大森, 岡田, 中村, 長井, 杉浦, 岩橋, RoboCup@home : 生活支援
ベンチマークとしてのロボット競技, RSJ2010, 3B3-1, 2010
岡田, 大森, 中村, 長井, 杉浦, 岩橋, “ロボカップ@ホーム - 人
間とロボットの共存を目指すためのロボット競技 -“, SI2010,
2E1-1, 2010
安藤, 坂本, 中本, “OpenRT Platform/RT ミドルウエア・ツールチ
ェ ー ン の た め の モ ジ ュ ー ル お よ び シ ス テ ム 仕 様 記 述 方 式 ”,
RSJ2008, 1F1-03, 2008
佐藤,比留川,”次世代ロボット知能化技術開発プロジェクト”,
RSJ2008,1F1-01,2008
原,比留川,平井,高野,中本,齋藤,”ロボット知能ソフトウ
ェアプラットフォーム”,RSJ2008,1F1-02,2008
Opensource software components for Human Robot Interaction
(OpenHRI):http://openhri.net/
出杏光, “海外の動向:ROS・OpenRAVE の新オープンソース開発
環境が活かす知的マニピュレーション”, 日本ロボット学会誌,
Vol28, No.5, 2010
Robot Operating System(ROS):
http://www.willowgarage.com/pages/software/ros-platform
䣐䣱䢰䢢䢳䢳䢯䢷䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢳䢳䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣑䣭䣣䣻䣣䣯䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢸䢯䢴䢺䢮䢢䢴䢲䢳䢳
䢴䣒䢳䢯䣍䢳䢸䢪䢵䢫