近年, 自動運転がますます注目を集めており国内のみならず様々な企業や学術機関で盛んに研究が行われている. また, 高速道路での自動運転が可能な自動車や家庭用ロボットなど, より身近な環境で活動するものも増えており一般ユーザーからの関心も集めている. 人間の身近な環境で自動運転を行うには周辺環境や物体を認識し適切な行動を自動的に行う必要が ある.
そこで, 実環境下でロボットの自律走行の実験を行う技術チャレンジである「つくばチャレンジ」 が毎年茨城県つくば市で開催されており, この技術チャレンジに参加しロボットが自動的に 経路計画を行うためのシステムを開発する. つくばチャレンジとは, 2007年から毎年つくば市で開催されている実環境下での技術チャレンジ であり, 人々が実際に生活している環境で歩道や公園内, 市街地, 駅などで自律走行をさせて 指定された課題を達成するというものである.
群馬大学太田研究室は株式会社リバストとの共同チームとして毎年つくばチャレンジに参加 しており, 2台のロボットのうち1台は学生が研究, 開発に使用している. そこで, 学生用 ロボットを用いてつくばチャレンジ2021でのコースの完走を目的としたシステム開発を行った.
つくばチャレンジに参加している他のチームはROSやROS2で提供されている既存パッケージ を利用してシステム構築を行っていることも多いが, 既存パッケージではつくばチャレンジ に向かない機能となっていることがある. そこで独自でつくばチャレンジに適した機能を 持ったシステムの開発が必要となってくる. チームで自律走行に必要なシステムをすべて 独自パッケージで開発を行っているが, 本研究ではロボットが障害物や侵入禁止領域を 避けながら最適な方向に進行することを目的とした経路計画の手法の開発を行う.
つくばチャレンジ2021で実際に使用したロボットの外観を図1, ハードウェア構成を表1, 自律走行システムの構成を図2に示す.
外形寸法 | W0.65 x L0.75 x H1.0m |
ホイール径 | 300mm |
総重量 | 89.0kg |
最大速度 | 0.9m/s |
動力源 | DCブラシ付きモータ x 4 |
センサ | 3D-LiDAR x 2 |
2D-LiDAR x 1 | |
WEBカメラ x 3 | |
ソナーセンサー x 7 | |
エンコーダ x 4 | |
9軸ジャイロセンサ x 1 | |
制御PC | Intel i7-8700T |
(2.4GHz 6Core 12Thread) | |
メモリ16GB |
経路計画を行う上での周辺環境把握には主に3つの位置に取り付けられた, 3D-LiDAR2つと2D-LiDAR1つを使用した.
これらのモジュールの中から, 自律走行の経路計画に当たるObstacleDetectorモジュールとPathPlannerモジュール の開発を行った. ObstacleDetectorモジュールは点群情報を受け取り障害 物を検出し, 矩形と直線で障害物の表現をする独自メッセージ型のObstacle型で 障害物情報を配信する. PathPlannerモジュールは自己位置, 障害物情報, ウェイポイントの情報から 最適な進行方向を計算しROS2のPose型(2次元座標)で目標座標を配信する.
LiDARから得られた点群情報は一度の通信で最大約4万点にもなり, そのままでは扱いにくく処理も重くなってしまうため, 障害物検出モジュールによって3つのLiDARからの点群情報から障害物と認識したものを少ないデータ量で格納する 処理を行う. 障害物は画像化した点群に対してラベリングと直線検出を行い矩形と直線の2種類のシンボルで表現する. 実際に検出を行った環境と検出結果を図3に示す. 画像の緑の円はロボットの自己位置を表している.
ObstacleDetectorモジュールから配信された障害物情報とWayPointManagerモジュールから配信された ウェイポイント情報をPathPlannerモジュールで受け取りポテンシャル場を作り進行方向を決定する. 経路計画を行うためにロボットの近くの環境でどのあたりに近寄りたくないの か, どの方向に進みたいのかを数値化し進むべき方向の高さが低くなるようなポテ ンシャル場を生成する. 障害物を表す辺と直線上のロボットとの最近点を障害物位置とし(xo, yo), 目的地を(xd, yd), 障害物の重みと目的地 の重みを(wo, wd), ロボットの位置を(x, y) としたときの障害物のポテンシャル関 数をPo(x, y), 目的地のポテンシャル関数をPd(x, y), ポテンシャル場の値をP (x, y) で表した式を以下に示す. また, 障害物と目的地の関数においての分散をそれぞれσ2o, σ2dとする.
実際に生成されたポテンシャル場の一例を図4に示す.
こうして生成されたポテンシャル場に対して±90度を5度刻みでポテンシャル スコアの合計値をそれぞれ計算し, スコアの合計値が小さい順に方向とスコアを紐 づけて格納する. 以降述べる走行可能領域によっては格納された方向が除外さ れることがあるが, 基本的にはスコアの一番低い方向に進行する.
つくばチャレンジでは決められたエリア内であれば好きなように走行すること ができるが基本的にロボットの芝生への侵入は禁止しており, 本研究ではつくば チャレンジに適したシステムの開発を行っていることから芝生への侵入を回避す るシステムの開発が必要となる. そこで, LiDARから得られる反射強度情報を 利用して走行可能領域マップを作成する. LiDARから取得した反射強度情報を可視化した際に反射強度によって色付けさ れた点がどの場所に対応するのかわかりやすくするために, 事前に作成してある環境マップ に色情報を付加していく. 環境マップとは, LiDAR によって取得した高さ 1m以上の物体の点群に対して, より正確に作成するためにマッチングを行いなが ら作成される環境情報であり, 太田研究室では本来ロボットの自己位置を計算する 際にこの環境マップを使用する. 環境マップから反射強度情報を付加するエリアのみを切り取った画像を図5に 示す. また, HSV表色系
図6を見ると人が見る限りでは道と芝生の違いがわかる程度の色付けができて いることが確認できたので自律走行での芝生領域回避を試みる. この画像のままで は通路上でも多少の色の違いがあるので多少の反射強度の違いは無視できるよう な手法である必要がある. そのため, ポテンシャル法で芝生領域の 回避を試みた時, 反射強度の違いをポテンシャル場に大きく反映させた場合, ルー ト上をきれいに進行することは難しくなり通路上であっても侵入不可能と判断し てしまうことがある. 反対に, 反射強度の違いによるポテンシャル場への影響を小 さくした場合は障害物を回避した際に芝生への侵入が容易になってしまう問題が ある. したがって, 走行不可能な領域(芝生領域) を表す2値画像を作成し, 自律走行中 は走行不可能な領域内の進行方向の候補を完全に削除する手法をとる. 路面の反射強度を2値化した画像を図7に示す.
ノイズ除去を行った最終的な走行可能領域マップを図7に示す.
ポテンシャル法によってポテンシャル値の合計スコアの低い順に格納さ れた進行候補を, 走行不可能領域(白い領域) と被っていないか確認する. もし進行 候補の一定距離先の座標が走行不可能領域内であった場合はその進行方向を削除 し, 次にポテンシャルスコアの低い進行方向の候補というように確認していき, 進 行方向の一定距離先の座標が走行不可能領域と被らなかったときにその方向に進 行に進行する.