[[FrontPage]]

* 自律走行ロボットの行動制御プログラムの作成 [#c38c95a2]
#contents

* 自律走行ロボットとは [#b83315fe]

自律走行ロボットとは、人間の操縦によらず、自ら経路を設定して走行するロボットである。
太田研究室では、人間が生活する場で働く自律走行ロボットを目標に、研究を行っている。

* つくばチャレンジ2009 [#va1aa41a]

我々は、前述の目標の実現のために、つくばチャレンジ2009という技術チャレンジに参加した。

- つくばチャレンジ2009の詳細については [[こちら:http://www.ntf.or.jp/challenge/challenge09/index.html]]

つくばチャレンジには、本研究室と共同研究を行っている [[株式会社ミツバ:http://www.mitsuba.co.jp/]] との混成チームで参加した。

* 自律走行ロボットMG09 [#pf121329]

我々のチームのロボット、MG09の外観を以下に示す。
ロボットの開発はハードウェアをミツバが、ソフトウェアを本研究室が担当した。

#ref(MG09.jpg,center)

** MG09のハードウェア [#na71454c]

MG09は2台のパソコンを搭載する。
1台は制御のために、もう1台は画像処理のために使用する。
これらのパソコンはEthernetで接続されている。

MG09は周囲の状況を把握するために、以下のようなセンサを使用する。
- 車輪回転センサ、操舵角センサ
-- オドメトリ(走行距離、車体角度)を検知
- レーザレンジファインダ
-- レーザを照射し、障害物との距離を計測
- GPS
-- 人工衛星による測位システム
- ステレオカメラ
-- レンズと撮像素子が2対あるカメラ。用途は後述

** MG09のソフトウェア [#a0b76b7a]
ここでは、本研究で作成する行動制御プログラム以外のソフトウェアについて述べる。

MG09の特徴の一つとして、自律走行に必要な機能を画像処理によって実現しているということが挙げられる。
ステレオカメラによって取得したロボット前方の画像から、以下のような処理を行う。

- 風景マッチングによる自己位置推定
-- 
- ステレオカメラによる障害物検出
-- 

これらの処理を実装するプログラム(以下、画像処理プログラム)は研究室の他のメンバが開発した。

* 行動制御プログラム [#ha8469c1]

本研究で作成する行動制御プログラムは、以下の3つの機能を持つ。

+ センサ情報の収集・統合
+ 走行指令の計算
+ ロボットへの走行指令の付与


** 機能1: センサ情報の収集・統合 [#o3c551ed]

MG09が搭載するセンサは、そのはたらきによって2つに分類できる。

- 自己位置認識
-- オドメトリ(車輪回転センサ、操舵角センサ)
-- 画像処理による自己位置認識プログラム
-- (GPS)
- 障害物検知
-- レーザレンジファインダ
-- 画像処理による障害物検知プログラム

同じはたらきをするセンサを複数搭載するのは、各センサの特長を生かし、システム全体の精度を向上させるためである。
行動制御プログラムは、センサからの情報を収集・統合し、ロボットとその周辺の状況を推定する。

** 機能2: 走行指令の計算 [#od868ec9]

ロボットを自律走行させるために、指定したコースを走行するような指令(以下、走行指令と呼ぶ)を計算する。
この計算には、我々が地図と呼ぶデータを使用する。
地図は、およそ10cmごとの走行距離と、そのときの車体角度からなる。
ロボットの現在位置をキーとして地図を探索し、進行方向を決定する。

この方法では、地図に従って走行するため、地図作成時にはなかったコース上の障害物を回避できない。
障害物を考慮した走行経路の設定は、行動制御プログラムが決定した経路をもとに、画像処理による障害物検知プログラムが行う。

** 機能3: ロボットへの走行指令の付与 [#xef7b285]

走行指令をロボットに転送する。
ロボットに走行指令として速度と操舵角を与えると、ドライバがそれに応じた左右の車輪の回転量を計算して走行する。


** 画像処理プログラムとの連携 [#a89786cb]

画像処理プログラムは行動制御プログラムと異なるパソコンで動作しているため、ネットワークを介して情報交換を行う。


** モジュール構成 [#x40288be]
以上をふまえて、行動制御プログラムは下図のようなモジュール構成で実装した。
モジュール間の灰色の矢印は情報の流れを表す。

#ref(Module.jpg,center);

前述の3つの機能はロボットとの通信を伴うため、1つのモジュールにまとめて実装した。
ハードウェアの都合で、レーザレンジファインダを制御する必要があったため、この機能を内包する。

* まとめ [#e40305a8]

** つくばチャレンジ2009 結果 [#k16a8a87]

つくばチャレンジ2009において、我々は以下の成績を収めた。

||結果|時間|
|トライアル1回目|57m リタイア|04分03秒|
|トライアル2回目|完走|09分33秒|
|本走行|50m リタイア|03分33秒|

初日のトライアルでは1回目にコースアウトによりリタイアしたものの、2回目で140mの自律走行に成功した。
これによって2日目の本走行に出場することができた。
しかし、本走行では再びコースアウトによりリタイアとなった。
原因としては、スタート直後から大きな誤差がオドメトリに生じ、画像処理によってもそれを修正できなかったためと考えられる。

** 今後の課題 [#b482fec2]

本研究で作成した行動制御プログラムは、MG09に特化したものである。
このプログラムをモジュール化し、他の自律走行ロボットで再利用可能なものにすることが今後の課題である。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS