近年のロボット技術の向上により,産業用ロボットなど特殊な環境での活動を想定されたものだけでなく,家庭用ロボットや人間の身近な環境で活動するロボットに対する研究が進んでいる.ロボットが人間と同じ環境で活動するためには,周囲の環境を自動的に正確に認識し,適切に行動可能であることが必要不可欠である.
そのなかで,実環境下でロボットを自律走行させる技術チャレンジである「つくばチャレンジ」が毎年茨城県つくば市で開催されている.この技術チャレンジに参加するために,移動ロボットのための自律走行システムを開発する.
つくばチャレンジは,2007年からつくば市で毎年開催されている,遊歩道等がある市街地や,公園や駅等の人々が普段生活する空間そのままの実環境で,移動ロボットを自律走行させる技術チャレンジである.実環境下であるため,時刻や季節によって周辺環境の変化が起こることや,実際に人々が歩行し,車が走行しているなかでそれを検知し,停止や回避行動を取りながら安全に走行する技術が求められる.これらの技術を,参加者それぞれが開発・実験を行い,結果や経験,知識を互いに共有することで,全体のロボット技術の向上を目指し,現在のロボット技術について一般の人々に理解してもらうことを目標にしている.
このつくばチャレンジは,5年毎に大きく課題が変更され,2007年から2011年までを第1ステージ,2013年から2017年までを第2ステージとし,2018年から第3ステージとし場所をつくば市役所と研究学園駅前公園を中心としたコースに設定された.第3ステージの必須課題として約2.5kmのコースを自律走行すること,選択課題として信号機の認識や特定物体の探索等があり,2019年度の課題については以下のように設定されている.
2018年度から変更があり,つくば市役所を出発し,信号のある交差点で横断歩道を渡り,研究学園駅を経由後,公園内に入り折り返し地点を通過し,再度交差点の横断歩道を横断後,つくば市役所正面に位置するゴールまでが課題コースとなる.
次に選択課題について説明する.課題Aについては本走行当日のみロボットの侵入が許可された市役所庁舎内を自律走行する必要がある.課題Bでは,駅へ向かう時と,公園からゴールへ向かう時に横断歩道を渡る際に信号認識を行い,状況に応じて横断する.この課題を実施しないチームについては安全を確認して走行再開を行う.課題Cでは,公園内に予め図2のようにチェックポイントが指定されており,指定されたチェックポイントを全て通過する必要がある.2018年度では通過するだけであったが,2019年度からはランダムなチェックポイント間に経路封鎖看板が設置されており,看板を認識し封鎖されている経路を迂回しながら全てのチェックポイントを通過しなければならない.課題Dでは特定の服装をしたマネキンを探索する.マネキンは複数の服装と2つのサイズが用意されており,実験走行及び本走行の前日に通知される.
つくばチャレンジ2019にて実際に走行したロボットの外観を図3,ロボットの仕様を表1として示す.このロボットは株式会社リバストが開発・販売を行っている,移動ロボットプラットフォーム Mercury Robots シリーズのスキッドステアモデルをベースとしている.
外形寸法 | W0.65 x L0.75 x H1.0m |
ホイール径 | 300mm |
総重量 | 89.0kg |
動力源 | DCブラシ付きモータ x 4 |
最大速度 | 0.9m/s |
センサ | 40Layer 3D-LiDAR x 1 |
4Layer 3D-LiDAR x 1 | |
2D-LiDAR x 1 | |
産業用カメラ x 3 | |
ソナーセンサー x 7 | |
エンコーダ x 4 | |
9軸ジャイロセンサ x 1 | |
制御PC | Intel i7 5650U |
(2.2GHz 2Core 4Thread) | |
メモリ8GB |
ロボットには様々なセンサーが搭載されており,ロボット上部と中部に3D-LiDAR二つ,下部に2D-LiDARが一つ,カメラが前方と左右斜め方向の三つが取り付けられている.加えて四つのモーターによりロボットは四輪駆動で動作し,各モーター毎にエンコーダが用意されている.
開発したシステムの構成を図4として示す.センサーとして三つのLiDARがある.Mercury ClientはMercury Robotsシリーズに搭載されているロボットのモータ制御等の制御モジュールであり,エンコーダからモータの回転数を取得しロボットのオドメトリを求めることや,モータに指令値を与えて回転させることができる.
Locatorモジュールは,上部のLiDARのみから点群を取得しロボットの自己位置推定を行う.3D-LiDARを使用しているため,取得される点群は三次元情報で表されるが,このモジュールでは画像(二次元平面)に変換して処理を行うため,出力される自己位置(Pose)は二次元情報(x,y)とロボットの向いている水平方向で表される.
ObstacleDetectorモジュールは,三つ全てのLiDARを使用して障害物検知を行う.このモジュールでも同じく点群を画像に変換して障害物の検知を行い,検知した障害物を直線と矩形で表し,最後にその直線上と矩形の点群に変換することで障害物を表す.
PathPlannerモジュールは,推定された自己位置の結果と障害物の情報から経路計画を行う.このシステムでは,ウェイポイント方式を採用しており,あらかじめ設定したウェイポイントに沿って走行する.自己位置の結果からウェイポイントの到達判定を行いつつ,次に向かうべきウェイポイントの方向から経路を求める.この時,障害物が存在すればその障害物を回避しながら次のウェイポイントに向かう経路を求める.
MovementControllerモジュールは,自律走行モードの切り替えを行う.ロボットに繋いだジョイスティックコントローラの入力から自律走行のオンオフを切り替え,自律走行モードがオンの時は経路計画の結果からモータ制御を行い,自律走行モードがオフの場合にはジョイスティックコントローラからロボットを操作することができる.そのため,自律走行をせずに自己位置推定や障害物の検知を行うことができる.