太田研 公開用Wiki

はじめに

研究背景

近年自動走行技術が我々の生活に身近になり,その技術への需要はより一層高まりつつある. しかし,自動走行技術への需要は自動車だけでなくロボットにおいても高まりつつあり, 最近では飲食店にて自動で動く配膳ロボットを見ることもめずらしくない. 当研究室では,そのような自動で動くロボット"自律走行ロボット-mercury"を 株式会社revastより提供されており,このmercuryを使い, 自立走行ロボットの実験走行会である,"つくばチャレンジ"に参加している.

つくばチャレンジとは,ロボットを自立走行させ,指定コースを完走させる走行チャレンジである. ロボット開発の中で得た,技術や知見を共有することで,自立走行技術の向上を目指している. 当研究室では,自立走行に必要な技術をソフトウェア(モジュール)ごとに分け, プロジェクトメンバーで分担し,つくばチャレンジに参加している. ロボットが自律的に走行するためには多くのモジュールが必要となるが, 中でも必ず必要となるモジュールに"自己位置推定"がある.

当研究室ではロボットの自己位置推定に"ピラミッドマッチング"という手法を採用してる. この手法は,予め作成した全体の点群地図に対し,現在のロボット位置から観測される点群を 二次元に落とし込み作成した,局所点群地図を重ね合わせることで, 全体の点群地図上での位置座標を算出するものである. 本手法では事前にデータを取得し,そのデータから全体点群地図を生成しておかなければ, 自己位置の推定を行うことができない. したがって自己位置推定には全体の点群地図を事前に作成する必要がある. また,自己位置推定の精度は全体の点群地図の生成精度にも起因するため, 良い精度で自己位置推定を行う為には,高精度の点群地図を生成する必要がある.

本研究は,自己位置推定で使用する全体の点群地図を生成するものである. 点群地図生成の際に,二種類のマッチング手法"ピラミッドマッチング","ICPマッチング"の両方を 使用することで,生成される点群地図の精度を向上させることを目的とし, それぞれのマッチング手法を単体で使用し生成した点群地図と, 両方の手法を用いて生成した点群地図を比較検討する.

ロボット構成

ハードウェア構成

当研究室では株式会社revastから提供されているロボット"mercury"を使用し研究を行っている. ロボットにはいくつかのセンサーとパソコン,モニターが搭載されており, 当研究室のプロジェクトメンバーがハードウェアのパーツを作成することなく, 搭載するソフトウェアの作成のみで,自律走行ロボットの走行実験会である, "つくばチャレンジ"へ参加している.

mercury_brue.jpg
図1: mercury

mercuryには外界を観測するために,LiDARセンサー,単眼カメラ,ソナーセンサー の三つのセンサーが搭載されている.

LiDARは,ロボットの現在位置を推定する目的や,障害物の検知に使用し, 単眼カメラは,色情報で物体を識別する処理に使用している. また,ソナーセンサーは至近距離障害物の認識に使用する. 上記のセンサーの内,本研究で使用するLiDARについての説明を以下で述べる.

LiDAR

ロボットが人と同様に周囲環境を認識するためには,その為のセンサーが必要となる. 例えば,ソナーセンサーでは至近距離物体の有無を認識し, おおよその距離を測ることができる. 単眼カメラでは,正面の物体の色情報を用いた認識ができることから, 信号機の状態を識別することができるなど, それぞれのセンサーで異なる情報を得ることができる.

lidar.jpg
図2: LiDAR

LiDARセンサーとは,「light detection and ranging」の頭文字をとった言葉で, レーザー光を照射しその反射によって認識を行うセンサーである. LiDARには2D-LiDAR,3D-LiDARが存在し,mercuryにはその両方が搭載されいる. 本研究ではロボット上部に搭載された3D-LiDARのみを使用する. 3D-LiDARはレーザー光が反射した部分を点として取得することができ, これを上下約32°,左右360°取得することで, 周囲環境を3次元の点の集まり"点群"として取得することができる. この時,距離情報や点ごとの反射強度も同時に取得することができる.

point_cloud.png
図3: 点群

上の図3は実際にロボットに搭載された3D-LiDARで取得した点群の様子である. ロボットに搭載されているLiDARの位置が,地上から約1mであり, LiDARの取得できる点群の範囲が上下約16°づつであることから, ロボットを中心に半径数mの地面の点群は取得出来ず, 円の形に点が抜けているが,それ以外の部分では正確に物理的特徴をとらえることが出来ている. 取得した点群はロボットを中心に三次元座標で(x,y,z)で表され,単位はmで表される.

ソフトウェア構成

自律走行モジュール

当研究室で使用しているロボットのソフトウェア構成を以下の図に示す

composition.png
図4: ソフトウェア構成
表1 送受信データ
点群Point_Cloud
目標地点Check_Point,Way_Point
カメラ画像Image
速度命令Twist
推定ロボット現在位置Pose
走行距離計ロボット現在位置Odometry

自律走行の基本の流れとしては,"認識","演算","走行"であり,センサーを用いた認識から始まる. 認識には主にLiDARとカメラ画像を用いる.次に認識の結果を用いて演算を行う. LiDARによって認識された点群は,ロボットの現在位置を推定するモジュールや看板を検出するモジュール, 障害物を認識するモジュールに使用され,カメラ画像は色を用いて信号機の状態を検出するために使用される. この時,自己位置推定モジュールによって算出された推定現在位置と,あらかじめ設定していた通行予定地点(ウェイポイント) から次に向かうべき方向を決定し,向かうための速度を算出. 最終的に算出した速度をロボットへ送ることで走行を実現している.

図4中で,緑色の枠線で囲われている以下のモジュールは 自律走行に必ず必要となるモジュールである.

ロボットの自律走行において,はじめに必要となるモジュールとしては"ロボット制御"があげられる. このモジュールはロボットへ速度を送信するもので,この速度命令をロボットが受け取ることで, タイヤが回転し移動を実現している. また,速度を計算する際にロボットの進行方向を決定する必要があるが, 進路決定は"経路計画"で行う.

"経路計画"ではロボットが進むウェイポイント群から,次に進むべき方向を算出する. しかし,ロボットが次に進むべき方向を正確に決定するためには, ロボット自身が現在位置を正確に認識しておく必要がある. ここで,現在位置を認識するために"自己位置推定"モジュールが必要となる.
"自己位置推定"では,自律走行を行う予定の場所で地図を作成しておき, 現在位置の周囲環境の地図を照合することで行う. また,進行経路上に障害物がある場合,その障害物の有無も進行経路選択の考慮に入れる必要がある. したがって,上記の処理と同時に"障害物検出"を常に行うことで,自律走行を実現する.
本研究は"自己位置推定"で使用する地図を生成するものである. それぞれについて以下で述べる.

自己位置推定

ロボットの自律走行には図4の通り,多くのモジュールが必要となる. 当研究室では, それぞれのモジュールをプロジェクトメンバーで分担し作成することとした. 点群地図は,図4上の自己位置推定モジュールに 大きく関係している.本節では自己位置推定と点群地図それぞれについて, またそれらの関係について詳しく述べる.

点群地図

前に示した通り,当研究室のロボットに搭載されたLiDARを使用することで, 三次元の点群を取得することができる.この時取得された点の位置情報は (x,y,z)で表されている.これら点群を鳥瞰で見たものをここでは点群地図と呼ぶ.

point_cloud_trm.png mini_map_cp.png
図5 点群と点群地図

三次元の点群を二次元に落とし込む際に,zの成分が高さ1.0m以上の点のみを採用 しているため図5の点群には存在した地面の点が点群地図では消えている. またこの時,三次元の点群の座標系はロボット座標系であるのに対し,点群地図はOpenCV座標系となっている. 点群を画像へ変換する際に座標系を変換する必要があるが,座標系の変換は以下の式で行っている.

robot_cord.png opencv_cord.png
図6:ロボット座標系, OpenCV座標系

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS