以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明などの関係にある。また、以下の実施の形態において、要素の数など(個数、数値、量、範囲などを含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップなども含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素などの形状、位置関係などに言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合などを除き、実質的にその形状などに近似または類似するものなどを含むものとする。このことは、上記数値および範囲についても同様である。
[実施の形態の概要]
まず、本発明の実施の形態の概要について説明する。本実施の形態の概要では、一例として、括弧内に実施の形態の対応する構成要素、符号を付して説明する。
実施の形態の移動体は、自装置と前記自装置の周囲にある障害物との距離を検知する距離センサ部(距離センサ部12)と、前記距離センサ部の検知結果に基づいて前記自装置の位置姿勢を推定して走行を制御するコントローラ部(コントローラ部11)と、前記コントローラ部の制御に基づいて前記自装置を自律的に走行させる移動機構部(移動機構部21)と、を備える。そして、前記コントローラ部は、走行環境の地図と前記距離センサ部の検知結果である距離データとを用いて前記自装置の位置姿勢を推定して、前記自装置の位置姿勢が一意に定まる状態(一般環境)と、前記自装置の位置姿勢が一意に定まらない状態(一様パターン環境)とで走行モードを切り替える、ことを特徴とする。
より好ましくは、前記コントローラ部は、前記自装置の位置姿勢が一意に定まらない状態の場合に、終端データが設定されていないセグメントでは走行を停止し、終端データが設定されているセグメントでは壁ならい走行モードで走行を行うように制御する、ことを特徴とする。
さらに、より好ましくは、前記コントローラ部は、前記終端データが設定されていないセグメントで走行を停止中の前記移動体が、前記自装置の位置姿勢が一意に定まる状態に復帰した場合に走行を再開するように制御する、ことを特徴とする。
以下、上述した実施の形態の概要に基づいた実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
[一実施の形態]
以下、本発明の一実施の形態を自律移動体(具体的には自律移動ロボットに適用)に限定して、図1〜図10を参照して説明する。以下、前述の「一般環境」及び「一様パターン環境」の分類定義のもと、一般環境と一様パターン環境とを自動走行する移動体について、本実施の形態で想定する移動体の機能の構成・主な処理内容について始めに述べ、続いて、より具体的なハードウェア・ソフトウェアの構成とこれらの動作について述べる。
<移動体の機能構成>
図1は、本実施の形態の線路パターン環境を自律移動可能な移動体(自律移動体とも称する)10の機能の構成を示す。自律移動体10は、この自律移動体10の位置・姿勢を推定して走行を制御するコントローラ部11、自律移動体10と周囲にある障害物等の外壁面との距離を検知する距離センサ部12、及び自律的に走行させる移動機構部21,21を備えている。また、コントローラ部11は、距離センサ部12を制御する距離センサ制御部13を備えており、距離センサ部12からの検知結果を受けて自律移動体10の位置・姿勢を推定する位置姿勢推定部14を備えている。
位置姿勢推定部14は、2つの推定部を備えることが望ましい。この点に関しては、本願発明の課題ではなく、同一出願人の先願(特開2013−25351)として既に出願している。簡単に説明しておくが、この2つの位置・姿勢推定部は通常位置・姿勢推定部と初期位置・姿勢推定部である。障害物は自律移動体の動作領域内に複数配置されており、先願発明においては、地図データ上におけるそれら障害物を配置させた際の障害物の外周輪郭形状を障害物の配置形状と称して説明する。通常位置・姿勢推定部は、従前技術による位置・姿勢の推定を行うものであり、先願発明における主要な課題ではない。先願発明においては、初期位置・姿勢推定部を設けたことを特徴としており、この初期位置・姿勢推定部は、位置姿勢候補表示・設定部を備えている。先願発明の実施の形態の自律移動体は、通常位置・姿勢推定部又は初期位置・姿勢推定部により推定された位置・姿勢に基づいて自らが走行する領域の経路を設定する経路計画部を設け、この経路計画部で計画された経路に沿うように車輪を駆動して自律移動体を自律移動させる移動機構制御部を設けている。
それに対して、本発明の自律移動体10のコントローラ部11は、さらに、移動体10の現在位置が一様パターン環境の終端であるか否かを判定する一様パターン環境終端判定部15を備えている。さらに、移動体10の現在の位置・姿勢から追従すべき経路上の目標位置・姿勢の算出を行う動作計画部16、算出された目標位置・姿勢と移動体10の現在の位置・姿勢とのずれを小さくするように制御する移動機構制御部17、及び前部キャスタと後部駆動輪を有した移動機構部21を備えている。また、各種データの記憶部は、地図データ記憶部18、経路データ記憶部19、一様パターン環境終端データ記憶部20から構成される。また、ここでは図示していないが、各部を支持する筐体、電源・配線など、各部が連携し、動作するために必要なものは備わっているものとする。
本実施の形態の自律移動体10は、距離センサ制御部13により、距離センサ部12を制御し、周囲の環境中の設備等の物体外周縁までの距離と方向の計測からなる距離データを得る。ここでは距離センサ部12として、レーザ距離センサを用いるものとする。このレーザ距離センサは、レーザを照射してから、照射したレーザが環境中の物体により反射してセンサに返ってくるまでの時間を計測することで、センサから物体外周縁までの距離を計測するレーザ照射部を備えている。そして、このレーザ照射部を一定の回転角毎に回転させながら計測することで、回転角度の範囲内にある物体外縁までの距離の計測(以下、「スキャン」との用語を用いる)が可能であるとする。このような機能を備えたレーザ距離センサは、従来公知であるので、具体的測距方法はこれ以上の説明はしない。今、このスキャンが平面内で行われるとすると、スキャンによりレーザがなす平面(以下、「スキャン面」との用語を用いる)上におけるセンサから物体外縁までの距離と方向が得られることとなる。このときに得られる各方向におけるセンサと物体外縁間の距離のデータとレーザを照射した方向データを組としたデータをここでは単に距離データと呼ぶものとする。この距離データの1つ1つは距離と方向のデータを組として記録されているため、センサを基準とした位置のデータに変換することができる。このようにして距離データを位置のデータに変換したものをここでは幾何形状データと呼ぶものとする。今、レーザ距離センサのスキャン面が床面に平行となるように移動体10に取り付けられており、レーザ距離センサのスキャン面の高さでの幾何形状データが得られるものとする。
以上で得られた幾何形状データは位置姿勢推定部14に送られる。位置姿勢推定部14には、スキャン面の高さでの環境の幾何形状を画像として記録した地図データ記憶部18が予め読み込まれている。そして、この地図データ記憶部18の物体が存在することを示す画素(以下、「物体存在画素」との用語を用いる)に対して画像と見なした幾何形状データの物体存在画素が最も重なり合うときの地図データ上での幾何形状データの位置・姿勢を探索する処理(以下、当該処理に「マッチング(マッチング処理)」との用語を用いる)が行われる。これにより、幾何形状データと地図データ記憶部18が最も重なり合うときの地図データ記憶部18の座標系での幾何形状データの位置・姿勢が求まる。これは、直接的には距離センサ部12のレーザ照射部の位置・姿勢に相当するが、移動体10の位置・姿勢を表す際には移動体10の筐体のどこの位置を基準としてもよいため、ここで得られた距離センサ部12の位置・姿勢をもって移動体10の位置・姿勢とする。
本実施の形態の自律移動体10が一般環境を走行中の場合は、動作計画部16での処理に進む。動作計画部16は、一般走行モードで動作し、予め読み込んでおいた移動体10の経路データ記憶部19と位置姿勢推定部14で得られた移動体10の現在の位置・姿勢から追従すべき経路上の目標位置・姿勢の算出が行われる。
そして、移動機構制御部17では、算出された目標位置・姿勢と移動体10の現在の位置・姿勢とのずれを小さくするように移動機構部21の制御をする。すなわち、車輪(一般的には後部駆動輪)の回転速度やステアリング(一般的には前部キャスタ)の切れ角などを求めてモータなどへの指示が行われる。これらにより、移動体10の予め設定された経路に沿った追従、ひいては目的地までの自動走行が実現される。
本実施の形態の自律移動体10は、一般環境での走行の際には、距離センサ部12からの検知結果を受けて移動体10の位置・姿勢を推定する位置姿勢推定部14により自律的に予め設定された経路に沿って走行する。位置姿勢推定部14の推定処理により、一般環境から一様パターン環境に入ったと推定された時点で、移動体10は、距離センサ部12によって検出した障害物に接触しないように進行方向に前進を行う壁ならい走行モードの運転に入る。このように、移動体10が壁ならい走行モードで一様パターン環境を走行中の場合は、位置姿勢推定部14に続いて一様パターン環境終端判定部15にて判定処理が行われる。一様パターン環境終端判定部15には、予め地図データ記憶部18と、一様パターン環境の終端位置におけるデータである一様パターン環境終端データ記憶部20からのデータが読み込まれている。この一様パターン環境終端データ記憶部20には、幾何形状データと地図データ記憶部18とのマッチングを行った場合に、一様パターン環境の行程中でのマッチングのように複数の解の候補が現れることなしに、一意に位置・姿勢が求められるマッチングの探索範囲の位置・姿勢、探索範囲の形状(一様パターン環境終端での位置・姿勢、探索範囲の形状)が記録されている。マッチングの探索範囲とは、マッチングにおいて解の候補を探索する範囲(解の取り得る値の範囲)を示す。ここでは位置・姿勢の3つのパラメータに関する範囲となる。
一様パターン環境終端判定部15では、この一様パターン環境終端データ記憶部20に記録されたマッチングの探索範囲の位置・姿勢等をもとに、位置姿勢推定部14と同様に地図データ記憶部18と幾何形状データとのマッチングを行う。移動体10が一様パターン環境を自動走行している間は、位置姿勢推定部14でのマッチングと一様パターン環境終端判定部15でのマッチングを行いながら移動する。より具体的には、長い廊下等の線路パターン環境では、両方の壁から所定距離だけ離れて直線的に走行する。このとき、動作計画部16は、一様パターン環境における壁ならい走行モードで動作し、予め読み込んでおいた移動体10の経路データ記憶部19と位置姿勢推定部14で部分的に得られた移動体10の現在の位置・姿勢、そして周囲にある壁面までの距離・姿勢といった環境との相対的位置・姿勢より、壁面などの環境に沿って移動するための移動体10の姿勢と速度が算出される。
そして、移動機構制御部17では、算出された姿勢・速度と移動体10の現在の姿勢・速度とのずれを小さくするように移動機構部21の制御、すなわち、車輪の回転速度やステアリングの切れ角などを求めてモータなどへの指示が行われる。これらにより、移動体10の経路への追従、ひいては目的地までの自動走行が実現される。
一様パターン環境での走行から、やがて一様パターン環境の終端付近に移動体10が到達したとき、そのときの幾何形状データと地図データ記憶部18とのマッチングが一様パターン環境終端判定部15により行われ、マッチすると一様パターン環境の終端に到達したと判定される。これに伴い、一様パターン環境終端判定部15で求められた位置・姿勢を次の位置姿勢推定部14でのマッチングの初期位置・姿勢とし、位置姿勢推定を行う。これにより、一様パターン環境の走行中に位置・姿勢の3つのパラメータのいずれか、もしくはすべてが推定できない状態に陥っている位置姿勢推定部14が再びすべてのパラメータを推定できる状態に復帰する。
一様パターン環境の終端へ到達したと判定されると同時に、移動体10は、一様パターン環境用の壁ならい走行モードから一般環境用の一般走行モードに切り替え、目的地への自動走行を続ける。以上が、移動体10で行われる処理の流れの概要となる。
<移動体のソフトウェア構成>
続いて、移動体10のハードウェアとソフトウェアの構成について述べ、移動体が一般環境と一様パターン環境の両方の環境で自動走行する例を通して、ハードウェアとソフトウェア全体の処理の流れについて述べる。なお、以下では移動体が平面内を動作することを想定し、移動体10が取り得る位置についての2つのパラメータ、姿勢についての1つのパラメータを推定する場合を想定して述べる。
図2は、本実施の形態の自律移動体10のハードウェアとこれに格納されるソフトウェアの構成を示す。移動体10は、コントローラ(図1のコントローラ部に相当)11、距離センサ部12のセンサたるレーザ距離センサ(同じく符号12とする)、移動機構(図1の移動機構部に相当)21、ディスプレイ25、入力機器26、これらの機器同士が通信するための通信線27より構成される。なお、図2では処理の流れに直接関わる要素のみを表記しており、各要素の動作に必要な電源等は当然備わっているものとする。
距離センサ部12の距離センサには、ここでは前述の距離センサ部12で挙げたレーザ距離センサと同じ方式のセンサを用いるものとする。ここでは、例として、レーザ距離センサ12がスキャンする角度範囲を180度とし、この角度範囲において0.5度毎にレーザを照射し、物体までの距離を計測することを想定するが、スキャンする角度範囲やレーザを照射する角度の刻み幅、距離の最大計測範囲などは異なっていてもよい。
図3は、距離センサ部12による現在位置の推定処理を示すもので、移動体10に取り付けられたレーザ距離センサ12により、一般環境中での設備等の物体外縁を計測する様子を示す。図3は図示の環境において物体が存在することを示す領域(以下、物体存在領域)32(幅広のハッチング部分)と、移動体10(図2の移動体10に相当)を上から見下ろした様子を表す平面図である。ここで、例として図中の位置・姿勢にある移動体10がレーザ距離センサ12(図2のレーザ距離センサ12に相当)により180度の角度範囲をスキャンしたとする。このとき、レーザ距離センサ12では幾何形状データ34(破線部が幾何形状データ、破線部同士をつなぐ細線はスキャンした範囲を示すための補助線、幅狭のハッチング部分がスキャン範囲)が得られることとなる。本実施の形態では、以上のようなレーザ距離センサ12の使用を想定しているが、同様に物体の幾何形状の計測が可能なセンサであればセンサの方式は異なっていてもよい。例えばステレオカメラや、赤外線を面状に物体に照射することで画素毎の物体までの距離計測が可能なデプスカメラなどであってもよい。
移動体10は、前部のキャスタ及び後部の駆動輪が備えられており、移動機構部21は、この後部の駆動輪及び前部のキャスタであり、回転角速度の差を制御することで直進・旋回を行えるようになっているものとする。本実施の形態ではこのような移動機構の使用を想定しているが、同様に環境内を移動する効果が得られるのであれば移動機構の方式は異なっていてもよい。例えば、無限軌道を備える車両、脚を備える移動体、船舶、航空機、飛行船などの他の移動機構であってもよい。また、本実施の形態においては、移動体10が自動走行するようになっているが、本発明を実施した上で人が搭乗して移動体を操縦するようになっていてもよいし、また、搭乗せずに遠隔からの通信によって人が操縦するようになっていてもよい。
また、コントローラ11は、図2に示すように、プロセッサ22、メモリ23、記憶装置24を備えている。記憶装置24は、オペレーティングシステム(OS)24a、BIOS読み込みやOSの起動を行うコントローラ初期化プログラム24b、レーザ距離センサ制御プログラム24c、位置姿勢推定プログラム24d、動作計画プログラム24e、移動機構制御プログラム24f、一様パターン環境終端判定プログラム24g、一様パターン環境終端データ記憶部20、地図データ記憶部18及び経路データ記憶部19から構成されている。
レーザ距離センサ制御プログラム24cは、レーザ距離センサ12から距離データを取得する。位置姿勢推定プログラム24dは、幾何形状データと地図データ記憶部18に記憶される地図データとのマッチングによって位置・姿勢を算出する。動作計画プログラム24eは、経路データ記憶部19に記憶された経路データをもとに目的地に辿り着くための経路を算出する。移動機構制御プログラム24fは、経路に沿って移動体10が移動するように車輪の回転速度などを算出する。一様パターン環境終端判定プログラム24gは、移動体10が一様パターン環境を走行中に、一様パターン環境の終端付近に到達したことを検出する。一様パターン環境終端データ記憶部20には、一様パターン環境終端判定プログラム24gが一様パターン環境の終端付近への到達を判定する際に用いる一様パターン環境終端データが記憶されている。
なお、図2に図示した実施の形態のプログラムやデータは、メモリ23にロードされた上で、プロセッサ22により処理されることを想定しているが、これと同様の効果が得られるのであれば、実装は異なっていてもよい。例えば、FPGA(Field Programmable Grid Array)やCPLD(Complex Programmable Logic Device)などのプログラマブルなハードウェアで以上の処理を実現してもよい。なお、プログラムやデータは、CD−ROM等の記憶媒体から移してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。
また、プロセッサ22や記憶装置24、移動機構21など、移動体10を構成する各デバイスは、ここでは有線の通信線27により互いに通信することを想定しているが無線であってもよく、また、通信が可能であれば、コントローラ11、ディスプレイ25、入力機器26の各デバイスが物理的に遠隔にあってもよい。また、以上のハードウェアやソフトウェアは、実施の形態に応じて、取捨選択してもよい。
<移動体の自律移動処理>
続いて、移動体10で行われる自律移動処理の流れについて、図4および図8に従って、図5〜図7および図9〜図10を参照しながら述べる。図4は、移動体10に搭載されるコントローラ11での処理の流れのうち、主に自動走行前の準備に関する処理(移動体の自律移動処理の概要)を示し、図8は、主に自動走行そのものに関する処理(一般走行モード及び壁ならい走行モードの処理)を示す。
コントローラ11が起動されると(401)、コントローラ初期化プログラム24bにより、OS24aの読み込み、各プログラム24c〜24gの起動が行われる(402)。次に、位置姿勢推定プログラム24dにより、地図データが地図データ記憶部18(以降、単に地図データ18と称呼する)より読み込まれる(403)。なお、ここでの地図データ18は画像データとなっており、画素毎に環境中の物体の有無が画素値として記録されているものとする。次に、レーザ距離センサ制御プログラム24cがレーザ距離センサ12を制御し、環境をスキャンすることによって、環境の幾何形状データが得られる(404)。次に、初期位置姿勢推定が行われる(405)。初期位置姿勢推定は、位置姿勢推定プログラム24dを用いて行われる処理で、特に移動体10の動作開始時に行われる位置姿勢推定の処理を指す。この意味で、位置姿勢推定と初期位置姿勢推定の基本原理は同じであるため、ここでは、まず位置姿勢推定について述べる。
位置姿勢推定プログラム24dには、幾何形状データと地図データ18のマッチングにもとづく位置・姿勢の算出機能が備えられている。この機能について図6を用いて説明する。今、地図データ18が、図6の60で表される物体存在画素(物体の外縁を示すデータ)による画像データとして記録されており、これに対して図3の移動体10が同図中の位置・姿勢でスキャンすることで得た幾何形状データ34のマッチングを行い、移動体10の位置・姿勢を推定する場合を考える。また、このとき、移動体10の前回の位置姿勢推定による推定位置が図6の62で、推定姿勢は62から伸びた矢印の方向とするとき、マッチングの探索範囲が推定位置62を中心としてXのように設けられたとする。
なお、簡単のため、探索範囲Xでは、その範囲のうち、位置の探索範囲のみを記しているが、実際はさらに姿勢の探索範囲が設定されているものとする。ここでは、前回の推定位置62から伸びた矢印を中心として±30度の角度範囲の幾何形状データが、姿勢に関する探索範囲として設定されているものとするが、探索範囲はより広くても狭くてもよい。
この探索範囲において、幾何形状データが取り得る位置・姿勢で幾何形状データと地図データ18である物体存在画素60との重なり具合を評価し、重なり具合が最も大きくなるときの位置・姿勢を求める。具体的には、例えば、移動体10の推定位置63にて、推定位置63から伸びる矢印の姿勢において、幾何形状データを地図データ18の物体存在画素60に重ね合わせたとすると、幾何形状データ34のような重なり方となる。図6は、物体存在画素60と幾何形状データ34に食い違いがある状態を示している。
このとき、例えば図6に示すCの範囲に着目する。図6のCに示す範囲の拡大図が図7である。地図データ18は、物体存在画素67(黒色の画素)と物体が存在しないことを示す画素69(白抜きの画素)からなる画像で表されており、また、この画像に対して幾何形状データ34をなす物体存在画素68(ハッチングされた画素)で表される。このとき、幾何形状データ34をなす物体存在画素68は、画素66の位置にて地図データ18の物体存在画素67と重なり合っており、この場合、この画素はマッチしたものとみなされる。ただし、移動体10のレーザ距離センサ12が、図7の右側にあるとすると、物体存在画素67(黒色の画素)で構成された線より左側の白抜きの画素は直ちに物体が存在しないことを示すものではない。図6に示す実施の形態の通りに、物体存在画素67(黒色の画素)で構成された線は物体の外縁であり、左側の白抜きの画素部分は物体の内面の位置を意味しているものかもしれない。
以上のような画素単位のマッチング方法によって、幾何形状データ34と地図データ18の物体存在画素60とがマッチする物体存在画素の数をあらゆるパターンにおいて総当たりで求める。
この図6においては、幾何形状データ34が位置63において、この位置63から伸びる矢印の姿勢をとるときに幾何形状データ34と地図データ18の物体存在画素60との重なり具合が最大となり、マッチングの解、つまりは移動体10の位置・姿勢が位置63で求められることとなる。以上が位置姿勢推定の処理となるが、初期位置姿勢推定では基本的にはこの位置姿勢推定と同じ処理を行うが、位置姿勢推定では前回の推定位置姿勢をもとに探索範囲を設定していたのに対し、初期位置姿勢推定では、前回の推定位置姿勢を用いず、地図データ全体を探索範囲と設定し、姿勢の探索範囲も360度としてマッチングを行い、移動体10が起動された場所での詳細な位置・姿勢を求める。なお、位置姿勢推定プログラム24dにて位置・姿勢を算出する処理としては前述のようなマッチングの処理をここでは想定しているが、同様の効果が得られるならば他の方法であってもよい。例えばICP(Iterative Closest Point)等を用いてもよい。
また、前述のとおり、本実施の形態では、地図データ18全体を探索範囲としたときに、幾何形状データが地図データ18に対して最もマッチするときの位置・姿勢を初期位置姿勢として求めることを想定しているが、この場合、探索に時間を要する。このため、例えば、ディスプレイ25に表示された地図データ18上で操作者が指定した位置・姿勢周辺でマッチングを行ったり、あるいは予め決まっている移動体10の駐車場があれば、その周辺でマッチングを行うなどして初期位置姿勢を求めてもよい。
続いて、目的地の設定を終了するかどうかの確認画面がディスプレイ25に表示される。移動体10に自動走行を行わせる場合、操作者は目的地の設定を行うことを入力機器26により選択する(406)。もし、移動体10の自動走行を行わないのであれば終了を選択する。この場合、直ちにプログラムは終了となる(407)。今、移動体10に自動走行を行わせるため、操作者が目的地の設定を行う方を選択した場合、処理はAに進み、つまりは図8の処理801に進む。
続いて、操作者は、ディスプレイ25に表示される搬送先の候補のリスト上で目的地を確認し、入力機器26により目的地を設定する(801)。次に、初期位置姿勢推定の処理405で得られた位置・姿勢をもとに、動作計画プログラム24eにより、経路データ19が読み込まれる(802)。次に、一様パターン環境終端判定プログラム24gにより、一様パターン環境終端データ記憶部20から一様パターン環境終端データ(以降、一様パターン環境終端データ20と称呼する)が読み込まれる(803)。このデータは先に述べたように、一様パターン環境の走行中に位置・姿勢の3つのパラメータのいずれか、もしくはすべてが推定できない状態に陥っている移動体10が、位置・姿勢の3つのパラメータのすべてが推定可能な状態に復帰するために、幾何形状データと地図データとのマッチングを行う際に必要なマッチングの探索範囲の位置・姿勢、探索範囲の形状が記録されたデータである。
図5に一様パターン環境終端データ20と経路データ19の構造を示す。一様パターン環境終端データは経路セグメントデータと組になって記録されている。経路セグメントデータは、経路始点から経路終点を構成する線分(以下、セグメント)の情報として、セグメント始点とセグメント終点についての地図データの座標系における座標、終点に到達したときの判定基準(以下、単に到達判定基準と称する)、及びセグメントの種類(以下、セグメント種別)が記録されている。セグメント種別とは、そのセグメントが一般環境でのセグメントなのか、或いは一様パターン環境でのセグメントなのかのいずれかが記録されている。また、到達判定基準とは、移動体10が経路始点から経路終点に向かって走行し、経路終点の座標に到着したと判定するための基準である。ここでは単純に経路終点の座標から半径rの範囲内に移動体10の位置の座標が入っていれば到着と見なすとしているが、移動体10の運用状況に応じて変更してもよい。この経路セグメントデータが集まることで図2での経路データ19が構成されている。
また、経路セグメントデータと共に記録される一様パターン環境終端データとしては、復帰時探索範囲位置姿勢と復帰時探索範囲形状がある。復帰時探索範囲位置姿勢とは、一様パターン環境の走行中に位置・姿勢の3つのパラメータのいずれか、もしくはすべてが推定できない状態からすべてのパラメータを推定できる状態に復帰するために幾何形状データと地図データとのマッチングを行う際のマッチングの探索範囲の位置と姿勢を指す。また、復帰時探索範囲形状は、このマッチングの探索範囲の形状を指す。ここでは単純に横方向の長さがh、高さ方向の長さがvの長方形としているが、移動体10の運用状況に応じて変更してもよい。
次に、経路データ19の中から最初に追従するセグメントが選択される(804)。次に、処理404と同様にレーザ距離センサ制御プログラム24cがレーザ距離センサ12を制御し、環境をスキャンすることで幾何形状データが得られる(805)。次に、処理405のところで述べた処理の流れに従い、位置姿勢推定が行われる(806)。次に、読み込んだ経路データ19をなすセグメントのうち、最後のセグメントの終点に到達したかどうかの判定が行われる(807)。この判定で終点に到達したと判定された場合、処理はBに進み、つまりは図4の処理406に進む。また、この判定で終点に到達したと判定されなかった場合、処理808に進む。次に、移動体10が追従しようとしているセグメントの種別の判定が行われ、セグメントが一般環境セグメントの場合は処理816に、セグメントが一様パターン環境セグメントの場合は処理817に進む(808)。
このセグメントの種別の判定にもとづき、一般環境と一様パターン環境が混在する環境を移動体10が自動走行する様子について、図9を用いて述べる。ここでは、物体存在領域60で表される環境において、移動体10が点91と点92とを結ぶセグメント95a、点92と点93とを結ぶセグメント95b、そして点93と点94とを結ぶセグメント95cからなる経路データを用いて、スタート地点91から目的地94まで走行するものとする。また、セグメント95aと95cは一般環境セグメント、セグメント95bは一様パターン環境セグメントであることが経路データ19に記録されているものとする。なお、物体存在領域60の表面部分の形状と同じ形の地図データ18が既に得られているものとする。
この状況のもと、移動体10が最初のセグメント95aを走行中で、例えば移動体10が10aの位置・姿勢にあるとき、レーザ距離センサ12の計測範囲12a内のスキャンによって得られる幾何形状データ34aには、通路両側の壁以外に正面の壁や角などの幾何的特徴が含まれることから、地図データ18と幾何形状データ34aのマッチングにおいては互いが最も重なり合うときの位置・姿勢の解が一意に求められる。移動体10がこのセグメント95aを選択中のとき、経路データ19のセグメント種別より、一般環境セグメントであることから、一般走行モード816で走行する。このとき、処理806で得られた位置・姿勢と経路データ19をもとに、選択中のセグメント(このケースではセグメント95a)のセグメント終点に到達したかが判定される(809)。セグメント終点に到達していない場合は、求められた位置・姿勢とセグメント終点とのずれが小さくなるように移動機構の一般走行制御を行う(810)。セグメント終点に到達した場合は、選択中のセグメントを走行済みとして記録し、次のセグメントを選択する(811)。図9の場合、移動体10が点92の位置に到達したと判定された場合には、次にセグメント95bが選択される。
移動体10がセグメント95bを走行中で、例えば移動体10が10bの位置・姿勢にあるとき、レーザ距離センサ12の計測範囲12b内のスキャンによって得られる幾何形状データ34bには、通路両側の壁のデータのみであり、それ以外に正面の壁や角などの幾何的特徴が含まれていないことから、地図データ18と幾何形状データ34bのマッチングにおいては互いが最も重なり合う位置が複数箇所あるため、解が一意に求められない。より具体的には、幾何形状データ34bの位置・姿勢の3つのパラメータのうち、通路に対して長手方向(即ち進行方向或いは線路方向)の位置は一意に求められず、通路長手方向に解の候補が複数得られてしまう。よって、移動体10が一様パターン環境でのセグメントを選択して走行するときは、位置・姿勢の3つのパラメータが一意に求まっている状態での運転モードである一般走行モード816を行うことはできない。このことから、通路の長手方向の位置以外のパラメータとして、壁に対する位置、壁に対する姿勢の2つは求めることができることから、これを用いて一様パターン環境における壁ならい走行モード817による壁ならい走行を行う。壁ならい走行とは壁との距離、姿勢を一定に保つようにして一様パターン環境の終端に向かって移動する運転モードである。この一様パターン環境における壁ならい走行モード817においては、走行中に一様パターン環境セグメントの終端の検出処理が行われる(812)。ここでは、位置姿勢推定の処理806と同様の処理が行われる。
今、一様パターン環境終端データ20による復帰時探索範囲が96に示す破線のように設定されていたとする。なお、復帰時探索範囲96の向きは図面上向きに設定されているものとする。ここで、10bの位置・姿勢にあった移動体10が、一様パターン環境における壁ならい走行モード817で走行していくうちに、やがて10cの位置・姿勢になったものとする。この時点では、まだ一様パターン環境セグメント95bが選択されているため、一様パターン環境終端判定プログラム24gにより、幾何形状データ34cと物体存在領域60に対応する地図データ18との位置姿勢推定と同様のマッチングが行われる。ただし、このマッチングに際しては通常の位置姿勢推定時の探索範囲ではなく、復帰時探索範囲96をもとにマッチングが行われる。
今、復帰時探索範囲96が図10に示すDの位置を中心にEに示すような正方形の形状・範囲で設けられ、セグメントF(図9におけるセグメント95b)の矢印の姿勢に設定されており、復帰時探索範囲での一様パターン環境の姿勢の探索範囲についてはGに示す角度の範囲として設定されていたとする。このとき、マッチングの解の探索時に幾何形状データが取り得る位置・姿勢は、復帰時探索範囲Eの各々の頂点から半円状のセグメントFが示す方向から左右G/2の角度で回転させた範囲、即ちおよそ図10に描かれている各半円を重ね合わせた範囲となる。つまりは、この範囲内に含まれる物体存在画素60と実際の環境をスキャンすることで得られる幾何形状データ34とのマッチングが行われることとなる。移動体10が10cの位置・姿勢でスキャンして得た幾何形状データ34c(図9)は、図10に示した各半円を重ね合わせた範囲内に入っており、加えて、正面の壁や角などの幾何的特徴があることから位置・姿勢の3つのパラメータが一意に求められる。
このように、一様パターン環境の終端部分の地図データ18と幾何形状データ34cとのマッチングを行い、マッチングが成立した場合、より具体的には、幾何形状データ34cを一様パターン環境の終端部分の地図データ18に重ね合わせたときに、解が一意に定まった場合は、移動体10が一様パターン環境の終端に到達したものと判定する(813)。このとき、マッチングに用いる地図データ18としては終端データで設定された領域から観測可能な部分の地図のみを用いる。この判定において一様パターン環境の終端に到達していないと判定された場合は、前述の壁ならい走行を行うための移動機構の制御を継続して行う(814)。また、一様パターン環境の終端に到達した場合は、選択中のセグメントを走行済みとして記録し、経路データ19より次のセグメントを選択する(815)。図9の場合、移動体10が点93に到達したと判定された場合、次にセグメント95cが選択される。
上記の実施の形態においては、セグメントに終端データが設定されているもとでの説明を行ったが、セグメントによっては終端データが設定できない場合がある。終端データが設定されていない一般環境セグメントにおいて、地図に記載されていない人や物体の影響により、解が一意に定まらない場合には、移動体10は移動を停止する。移動体10は停止している間も位置姿勢推定を実施し、人などの外乱要素がなくなり、解が一意に求まると判定されると、動作を再開する。
以上の処理によって移動体10が走行し、目的地に到着したと判定されたならば(807)、前述の通り、目的地の設定確認の処理406に戻る。以上が、移動体10が通常動作を行っている際の処理の流れとなる。
<一実施の形態の効果>
以上説明した本実施の形態の移動体10によれば、自装置と周囲にある障害物との距離を検知する距離センサ部12と、距離センサ部12の検知結果に基づいて自装置の位置姿勢を推定して走行を制御するコントローラ部11と、コントローラ部11の制御に基づいて自装置を自律的に走行させる移動機構部21とを備えることで、以下のような効果を得ることができる。
(1)コントローラ部11は、走行環境の地図(地図データ)と距離センサ部12の検知結果である距離データ(幾何形状データ)とを用いて自装置の位置姿勢を推定して、自装置の位置姿勢が一意に定まる状態と、自装置の位置姿勢が一意に定まらない状態とで走行モードを切り替えることができる。具体的には、凹凸等の幾何的特徴が多数存在することで、幾何形状データと地図データとのマッチングにより、位置・姿勢のすべてのパラメータが高い確度で求められる一般環境においては、すべてのパラメータを用いる一般走行モードでの自動走行を行うことができる。かつ、幾何的特徴が乏しく、幾何形状データと地図データとのマッチングを行っても位置・姿勢のすべてのパラメータが高い確度で求められない一様パターン環境においては、確度が高いパラメータのみを用いる壁ならい走行モードでの自動走行を行うことができる。これにより、設備などにより幾何的特徴が多数存在する工場などの環境と、幾何的特徴に乏しい廊下などの環境とが混在する環境での移動体10の自律移動が可能となる。
(2)コントローラ部11は、自装置の位置姿勢が一意に定まらない状態の場合に、終端データが設定されていないセグメントでは、走行を停止するように制御することができる。また、終端データが設定されているセグメントでは、壁ならい走行モードで走行を行うように制御することができる。具体的には、幾何的特徴が乏しく、幾何形状データと地図データとのマッチングを行っても位置・姿勢のすべてのパラメータが高い確度で求められない一様パターン環境において、終端データが設定されていないセグメントでは、壁ならい走行モードでの走行を停止することができる。
(3)コントローラ部11は、終端データが設定されていないセグメントで走行を停止中の移動体10が、自装置の位置姿勢が一意に定まる状態に復帰した場合に走行を再開するように制御することができる。具体的には、壁ならい走行モードから一般走行モードに切り替えるためには、位置・姿勢のすべてのパラメータが求められる環境に到達したことを判定する必要がある。このため、幾何的特徴が乏しい環境から幾何的特徴が多数存在する環境への切り替わる場所の地図データと幾何形状データとのマッチングにより、マッチングの確度が高い場合は、切り替え可能な場所に到達したものと判定し、運転モードを切り替えることができる。
(4)コントローラ部11は、壁ならい走行モードでの走行時に、自装置が走行する通路の壁面と距離センサ部12のセンサとの方向を一定に保つように制御することができる。これにより、一様パターン環境において、通路の長手方向の位置以外のパラメータとして、壁に対する位置、壁に対する姿勢の2つは求めることができることから、これを用いて一様パターン環境における壁ならい走行モードによる走行を行うことができる。
(5)コントローラ部11は、自装置の位置姿勢が一意に定まらない状態の一様パターン環境の終端データと、距離センサ部12の検知結果である幾何形状データとを比較することで、終端判定を行うことができる。この場合に、コントローラ部11は、終端データとして、一様パターン環境の終端から観測できる形状データのみを用いて、終端判定を行うことができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、本発明は、自律移動を行わない移動体にも適用可能である。この場合には、自装置と周囲にある障害物との距離を検知する距離センサ部と、距離センサ部の検知結果に基づいて自装置の位置姿勢を判定して走行を制御するコントローラ部とを備えた構成(例えば前述した図1や図2などと同様)とする。このような構成においても、コントローラ部は、自装置の位置姿勢が一意に定まらない状態の一様パターン環境の終端データと、距離センサ部の検知結果である距離データとを比較することで、終端判定を行うことができる。この場合に、コントローラ部は、終端データとして、一様パターン環境の終端から観測できる形状データのみを用いて、終端判定を行うことができる。