ロボット知能ソフトウェアプラットフォーム検証用知能モジュール群/車輪型

ロボット知能ソフトウェアプラットフォーム検証用知能モジュール群/車輪型移動
ロボットを制御する知能モジュール群
― OpenRTP の評価検証を主目的としたシミュレーションと実機実験ー
○喜多伸之,中島裕介,武川直史,KWAK Nosan,横井一仁(産総研)
Intelligent RT Software Components for Vehicle Navigation
*Nobuyuki KITA, Yusuke NAKAJIMA, Naohito TAKEKAWA, Nosan KWAK, Kazuhito YOKOI (AIST)
Abstract - Software components for vehicle navigation are implemented by using OpenRTP as RT
componets. By using them, simulation and real experiments are conducted.
Key Words: OpenRTP, Vehicle, Navigation, RT Component, Simulation
1.
はじめに
ロボットプログラミングのツールとして開発を進
めている OpenRTP[1]の核となる OpenRTM(ロボッ
ト プ ロ グ ラ ム 用 の ミ ド ル ウ ェ ア ) [2] お よ び
OpenHRP3(ロボット用シミュレータ)[3]により,移
動ロボットのシミュレーションおよび実機制御を行
えることを早期に示すことを主目的として,差動駆
動型の車輪型移動ロボットを自律走行させるための
知能モジュール群を RTC(OpenRTM の基本要素)群
として実装し,OpenHRP3 によるシミュレーション
実験と,実機による実験を行い,それらの結果を比
較検証した.
車輪型移動ロボットが自律的に目的地まで移動で
きるためには,目的地までの経路を計画し,その経
路にそって走行するために車輪の回転を制御し,セ
ンサを使って周囲の状況を観測し,自身がどこにい
るのかを推定するなどの機能が必要である.
OpenRTM によるコンポーネントネットワーク型の
プログラム開発の有効性を評価する観点から,これ
らの機能をモジュール化し,ネットワーク設計を行
った.その後,個々のコンポーネントを RTC として
実装したが,各コアロジックに関しては,これまで
に膨大な研究成果が出されているので,まずはその
中からシンプルでかつ汎用性の高い手法を選定した
上で,それをベースとして実装した.
開発したRTC群を用いて実際に移動ロボットの制
御が行えるかを検証するために,2 種の差動駆動型
車輪移動ロボットについて,OpenHRP3 によるシミ
ュレーションと実機による実験を行った.シミュレ
ーションと実機実験はできる限り同じ条件で行う
ことをこころがけた.
以下,2 章で移動知能RTC群の構成と個々のRTC
の概要を述べ,3 章で自律走行制御時のRTC群の動
作を説明した後,4 章でシミュレーションおよび実
機による実験を紹介し,5 章でまとめを述べる.
2.
移動知能 RTC 群の構成と概要
コンポーネントネットワーク型のプログラム開
発を行う場合,どれくらいの粒度でコンポーネント
化するかが重要な問題となるが,ここでは開発のて
はじめとして図 1 に示す構成をとることにした.各
RTCの機能の概要は以下のとおりである.
MapBuilderRTC:3 次元環境のVRMLモデルを入力
として 2Dグリッド地図を生成する.
GlobalPathPlanningRTC:2Dグリッド地図とスタ
ート,ゴールを入力としてポテンシャルベースで 8
連結計画経路を生成する.
LocalPathPlanningRTC:計画経路,現在位置,障
害物情報を入力として,逸脱からの復帰,障害物
回避のための局所経路を生成する.
DriveControlRTC:局所経路をBスプライン補間し
て差動駆動型の移動ロボットを滑らかに走行させ
るための左右車輪角速度を生成する.
MotorControlRTC:左右車輪角速度から左右車輪
トルクを生成する.
ObstacleDetectionRTC:距離情報を入力として 2D
地図にない障害物を検出する.
InventGUIRTC:計画した経路や障害物情報などを
2Dグリッド地図上に表示する移動知能RTC群のた
めのGUI.
図 1 はこれらのRTC群によりOpenHRP3 がシミュ
レーションする仮想の移動ロボットを制御すると
きの構成を示しており,緑のControlBridgeはRTCと
シミュレータを接続するためにOpenHRP3 が用意し
たRTCであり,URG RTC はOpenHRP3 のビューシ
ミュレーション機能を利用して距離センサをシミ
ュレーションするために(株)セックが作成したRTC
である[4].
OpenRTM は 2 種類のデータ転送メカニズムを提供
しており,赤い矢印がデータポートによる情報の入
出力を示し,黒い矢印がサービスポートによる情報
の 入 出 力 を 示 し て い る . DriveControlRTC か ら
MotorControlRTC に常時,一定の周期で左右車輪角速
度を渡すようなときにデータポートを,
ObstacleDetectionRTC が障害物を検出したときに他
の RTC に伝えるときのようにイベント的な情報の受
け渡しにサービスポートを使用する構成にした.
図 1
3.
移動知能 RTC 群の構成
移動知能 RTC 群の動作
OpenHRP3 を使ったシミュレーション時を例に,
移動知能RTC群の動作を説明する.シミュレーショ
ン時にはすべてのRTCが同時に活動するが,わかり
やすさのために情報の流れを追って説明する.ま
ず,MapBuilderRTCが環境モデルから移動ロボット
の移動できるか否かを示すグリッド状の 2D地図を
生成し,他のRTCに供給する.Globalおよび
LocalPathPlanningRTCは受け取った 2D地図をもとに
現在地から目的地にいたる 8 連結経路をポテンシャ
ルベースの手法[5]で生成する.それを受け取った
DriveControlRTCは,スプラインにより滑らかな経
路を生成し,それに沿って安全な速度で走行する
ための左右車輪の目標角速度を計算する[6].左右
車輪の目標角速度は逐次,MotorControlRTCに渡さ
れ,MotorControlRTCは現在の車輪角速度と比較し
てPD制御に基づいて左右車輪に与えるトルクを計
算し,ControlBridgeを介して,OpenHRP3 に与える.
OpenHRP3 は車輪と床面の摩擦などを考慮した動力
学計算により,車輪が何度回転し,そのときロボ
ットがどこに移動するかシミュレーションし,その
結果をOpenHRP3 のGUIであるGrxUIに表示すると
同時に,車輪が何度回転したかをControlBridgeを介
してMotorControlRTCに返す.MotorControlRTCはそ
のままDriveControlRTCに車輪回転角度を渡し,それ
を受け取ったDriveControlRTCはそれに基づいて自
身がどのように動いたかを推定する.その結果は
InventGUIRTCの画面に表示される.推定している
現在位置が計画した経路から一定以上それたとき
は,LocalPathPlanningRTCがもとの経路にもどるた
めの経路を再生成する.一方,ObstacleDetectionRTC
はURG RTCから受け取る距離情報を
DriveControlRTCから受け取った自己位置推定情報
にしたがい 2D地図に投影し,既存の物体がなければ,
新たな障害物として検出し他のRTCに供給する.
LocalPathPlanningRTCはObstacleDetectionRTCから未
知物体検出の情報を受け取ると計画経路を再生成
する.このように経路の再生性を繰り返しながら,
目的地を目指し,ある近さまで来たときに自身で
目的地に到達したと判断し,目標角速度を0に設
定し,シミュレーションが終了となる.制御対象
が実機の場合もほぼ同様である.
4.
移動知能モジュール群による実験
車輪型移動ロボットのシミュレータとしての
OpenHRP3 を検証するための基本動作の実験と,
RTC 群による車輪型移動ロボットの自律制御の検
証のための実験を行った.いずれの実験においても,
シミュレーションと実機による実験をできる限り
条件が同じになるようにして行うよう勤めた.
4.1 基本動作実験
直進走行や真地旋回など単純な走行を,移動ロボ
図2
重心位置の違いによる真地旋回からの逸脱
ットの重心位置などを変更して実験を行った.また,
シミュレーションのみであるが,車輪を多角形近似
するときの分割数を変えた実験も行った.
4.1.1 重心位置の影響の評価実験
左右車輪のモーターに同一のトルク指令を順方
向,逆方向に与えることで直進走行と真地旋回の実
験を行った.まず左右駆動輪の車軸の中心上方に重
心を置いて実験を行ったが,シミュレーションにお
いても実機においても,直線走行の場合には直線か
ら逸脱する現象,真地旋回の場合には旋回中心が移
動する現象が見られた.実機においては左右車輪
(タイヤ)の半径の微小な違い,重心位置の左右中
心からのずれなどが影響していると思われる.しか
しシミュレーション用の移動ロボットモデルでは,
左右車輪径は全く同じであり,重心位置も完全に左
右の中心軸上に置いている.にもかかわらず,逸脱
した原因については次節で言及する.次に重心位置
を左右駆動輪の車軸より前方,および,後方,さら
に左右に置いて実験を行った.シミュレーションで
は図 2 に示すように,真地旋回において重心位置に
よって逸脱の大きさや方向に差が見られたが,実機
では車軸上に重心を置いた場合と有意な差は見ら
れなかった.
4.1.2 車輪の近似多角形数の影響の評価実験
車輪(変形する曲面物体)を OpenHRP3 では多角
形の剛体で近似している.ここでは,20 角形,90
角形,360 角形による近似車輪で実験を行った.直
(a) 20 角形
図3
進走行するためのトルクを与えたときの実際の走
行軌跡を図 3 に示した(オレンジ色の 5 角形から青
の 5 角形にいたる軌跡).いずれも直線から大きく
逸脱しているが,近似多角形の分割数と逸脱の大き
さに相関は見られなかった.真地旋回についても同
様であった.
図 3 において,オレンジ色の 5 角形から赤の 5 角
形にいたる軌跡は左右車輪の回転角度から推定し
た軌跡である.実際の走行軌跡との差がオドメトリ
誤差に相当するが,シミュレーションにおいてオド
メトリ誤差が生じる原因を調査したところ,図 4 に
示すように,車輪の多角形のコーナーが床と接触し
た状態から,次のコーナーで接触する間に,両者が
接触しない状態があり,その瞬間にスリップ(空転)
が発生していることがわかった.さらに,方輪が空
転する瞬間,他の方輪に過度の重量が加わるためか,
回転が停止する傾向も見られた.これらが複合して,
直進や真地旋回からの逸脱が発生しているものと
思われる.
4.2 RTC 群による実験
RTC 群により目的地までの経路を生成し走行さ
せる実験を,トルク制御あるいは速度制御を使い,
最大速度や PD 制御のゲインを変えたり,オドメト
リによるフィードバックをかけたり,障害物回避を
させたりして行った.
4.2.1 トルク制御モードでの走行比較
実機は MobileRobotics 社製 PowerBot[7]とプロジェ
(b) 90 角形
(c) 360 角形
車輪の近似多角形数の違いによる直進走行軌跡
図4
車輪がスリップする瞬間
クト内部で開発している移動台車(RH0)を用いて
いる.ただしトルク制御は RH0 のみで行った.
RTC 群はコマンド周期 2msec を想定して実装した
が,PowerBot は 100msec,RH0 は 28 から 35msec 程
度である.速度制御では上記周期で与えた速度指令
に対して,実機内部のコントローラでより早い周期
(RH0 では 0.25msec)の PD 制御を行っているが単
純な PD 制御ではなく,未知の部分を含むため,同
じ条件での制御をシミュレーションすることは不
可能であった.そこで RH0 のトルク制御でコマンド
周期を同じにしてシミュレーションと実機の比較
を行ったところ,小刻みに前後に振動しながらも計
画経路に沿って走行する現象を両者で観測できた.
さらに,実機ではゴール到達後も振動を続けたが,
左右駆動輪のモーターがカスケード接続であるこ
とからくる,左右モーターでの時間遅れをシミュレ
ーションすることで,OpenHRP3 にも同様の振動が
現れることも確認した.
4.2.2 距離センサによる障害物検知と回避走行の実験
RTC 群すべてを使った実験である.図 5 が実機に
よる実験結果,図 6 がシミュレーション結果である.
ObstacleDetectionRTC は距離センサからの情報を
DriveControlRTC から受け取った自己位置推定と融
合させて障害部検知を行うので,オドメトリエラー
が大きいところで,既知の物体(図 5 では上方の柱)
も未知の障害物として検出している.シミュレーシ
ョンではさらに,距離情報と自己位置推定情報の時
間差の影響で,旋回時に虚の障害物が壁のように形
成されていることがわかる.
5.
まとめ
ロボットプログラミングのツールである
OpenRTP の核となる OpenRTM および OpenHRP3 に
より,移動ロボットのシミュレーションおよび実機
制御を行えることを示すために,移動知能モジュー
ルを 7 個の RTC として実装し,実験を行った.その
ために既存の手法をコアロジックとして各コンポ
ーネントの実装を行ったが,OpenRTM を用いたこ
とで,ネットワーク全体の設計,各コンポーネント
図5
実機による障害物回避実験
図6
障害物回避のシミュレーション実験
間の通信を規定すれば,コンポーネント間通信やロ
ボット制御に適した実装のフレームワークを自動
生成してくれるので,プログラマは用意された関数
の中身としてコアロジックを実装すればよく,習得
に要する時間も短く,プログラム開発効率も向上す
る傾向が明らかに観察できた.ここで紹介した RTC
群はプロジェクトのホームページにて公開予定で
ある.
今後は,各 RTC の改良,RTC 間の通信の改良などを
通じて,移動知能としての質の向上を図るとともに,
OpenRTP の検証用知能モジュールとして開発してい
る他のモジュール群と連携をとり[8],実質的な作業
を実現できることを示していく予定である.
[1] 原功,比留川,平井,高野,中本,齋藤: “ロ
ボット知能ソフトウェアプラットフォーム”,
第 26 回日本ロボット学会学術講演会予稿集,
2008.
[2] 安藤, 坂本, 中本:“OpenRT Platform/RT ミドル
ウエア・ツールチェーンのためのモジュールお
よびシステム仕様記述方式”,第 26 回日本ロボ
ット学会学術講演会予稿集, 2008.
[3] 中岡, 金広, 比留川:“OpenRT Platform/ロボッ
トシミュレータ OpenHRP3”,第 26 回日本ロボ
ット学会学術講演会予稿集, 2008.
[4] 中本,池添,建部,坂口,永瀬:“レーザレン
ジセンサを例にしたデバイスの RTC 仕様の規格
化の提案”, 第 8 回 計測自動制御学会 システ
ムインテグレーション部門講演会, 2007.
[5] 河合, 中澤, 清川, 竹村:“移動ロボットによる
災害地の三次元再構築のためのポテンシャル場
を用いた経路計画”,電子情報通信学会 技術研
究報告,2006.
[6] 小森谷, 谷江:“スプライン曲線による車輪型
移動ロボットの軌道制御”,日本ロボット学会誌,
Vol.8, No.2, pp. 1-10, 1989.
[7] http://www.activrobots.com/ROBOTS/power.html.
[8] 横井他:“ロボット知能ソフトウェアプラット
フォーム検証用知能モジュール群”,第 26 回日
本ロボット学会学術講演会予稿集, 2008.