(57)【要約】  【課題】  車輪半径の変動などによる位置計測の誤差を低減して、現在位置を高精度に算出できる移動ロボットを安価に実現する。  【解決手段】  移動ロボット１は、車輪を駆動して複数区間からなる走行経路を移動する。記憶部１５には、区間毎に設定した車輪径および車輪間隔等の車輪特徴量が記憶されている。位置算出部５５は、現在走行している区間に対して設定された車輪特徴量と、計測された車輪の回転量とに基づき、現在位置を算出する。経路が左右に傾斜している場合に、谷側の車輪径を小さく設定しておけば、特別な処理を行わずに現在位置を正確に求められる。車輪情報算出部５７は、区間の始点終点間で計測された車輪回転量と、同区間の距離および区間両端の角度差といった経路情報とに基づき、車輪特徴量を算出して、この車輪特徴量が位置算出部５５で使用される。【選択図】  図１
2006252350.tif 000002
【特許請求の範囲】
【請求項１】
車輪を駆動して複数区間からなる走行経路を移動するロボットであって、
前記車輪の回転量を計測する回転量検出部と、
前記走行経路に配設された指示手段を検出する指示手段検出部と、
前記指示手段検出部の出力に基づき前記各区間の始点と終点を検出する区間判別部と、
前記区間毎に設定した車輪特徴量を記憶する記憶部と、
現在走行している区間の車輪特徴量と前記車輪の回転量とに基づき現在位置を算出する位置算出部と、
を具備したことを特徴とする移動ロボット。
【請求項２】
前記記憶部は、前記各区間の始点終点間の距離と角度差とを経路情報として記憶し、
更に、前記区間判別部が区間の終点を判別すると、該区間の始点終点間で計測された車輪回転量と前記経路情報とに基づき該区間の車輪特徴量を算出する車輪情報算出部を具備し、算出された車輪特徴量を前記区間と対応させて前記記憶部に記憶することを特徴とする請求項１記載の移動ロボット。
【請求項３】
前記区間判別部は、前記指示手段検出部の出力に基づき第一及び第二の区間の始点と終点を判別し、
前記車輪情報算出部は、
前記区間判別部が第一の区間の終点を判別すると、該第一の区間の始点終点間で計測された車輪回転量と前記経路情報に記録された該第一の区間の始点終点間の距離とに基づき車輪特徴量としての車輪径の補正値を算出して記憶部に記憶し、
前記区間判別部が第二の区間の終点を判別すると、該第二の区間の始点終点間で計測された車輪回転量と前記経路情報に記録された該第二の区間の始点終点間の角度差と車輪特徴量としての車輪径とに基づき車輪特徴量としての駆動輪間距離の補正値を算出して記憶部に記憶することを特徴とする請求項２に記載の移動ロボット。
【請求項４】
前記走行経路の方向に対する前記移動ロボットの進行方向の傾きを検出する傾き検出部と、
前記第一の区間の始点および終点の少なくとも一方において前記傾き検出部により検出される傾きに基づき、前記経路情報上の前記第一の区間の始点終点間の距離を調整する区間距離調整部と、を備え、
前記車輪情報算出部は、前記区間距離調整部により調整された距離に基づいて前記車輪径の補正値を算出することを特徴とする請求項３に記載の移動ロボット。
【請求項５】
前記走行経路の方向に対する前記移動ロボットの進行方向の傾きを検出する傾き検出部と、
前記第二の区間の始点および終点の少なくとも一方において前記傾き検出部により検出される傾きに基づき、前記経路情報上の前記第二の区間の始点終点間の角度差を調整する角度差調整部と、を備え、
前記車輪情報算出部は、前記角度差調整部により調整された角度差に基づいて前記駆動輪間距離の補正値を算出することを特徴とする請求項３に記載の移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボットに関し、特に、移動ロボットにおける位置算出精度の向上に関する。
【背景技術】
【０００２】
近年、所定の経路を移動して物品の搬送や異常の監視を行う移動ロボットが供されてきている。このような移動ロボットにおいては、車輪の回転量を計測して、予め入力された車輪半径と左右輪間隔（トレッド）とに基づき、移動距離と移動経路を算出して移動体の現在位置を計測することが知られるところである。
【０００３】
特許文献１には、特に、ガイド手段となる磁気テープに沿って走行するとともに、路面に設けられた番地指定発振器を読み取って右折左折などの旋回制御等を行い、車輪の回転量をエンコーダで計測して走行距離から現在位置を算出する無人搬送車が記載されている。この無人搬送車は、現在位置に応じて予め記憶した既設物データを演算して既設物以外の障害物を検出するよう動作する。
【特許文献１】特開平９−６４３３号公報（図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した従来の無人搬送車は、エンコーダで計測した車輪の回転量から移動距離を算出しており、このような移動距離算出のためには、予め記憶されている車輪半径が一般に用いられる。また、同無人搬送車は、左右輪の走行用モータを制御して旋回制御しており、このような旋回制御のためには、予め入力された左右車輪間隔が一般に用いられる。
【０００５】
しかし、車輪半径や車輪間距離を使って現在位置を検出すると、下記のように、路面形状の影響で現在位置の算出に誤差が生じてしまう場合がある。
【０００６】
ここでは、進行方向に対して右または左に傾斜した経路をガイド手段に沿って走行する場合を考える。この場合、車体が重力により谷側に引っ張られるが、この状況でガイド手段に追従するように走行制御が行われると、谷側の車輪は山側の車輪より多く回転して走行することとなる。このため、山側と谷側とで左右の車輪の回転量に差が生じる。そして、この車輪回転量に基づいて現在位置の値が計算されると、位置と姿勢の計算値が異常なものとなってしまう。
【０００７】
従来の無人搬送車は、このような問題を解決することができず、現在位置を誤って算出するおそれがある。
【０００８】
また、車輪半径は空気圧や路面状況、車体の重量によって変動するため、一定ではなく、固定値を利用すると走行距離に誤差が生じてしまう可能性がある。また、これに伴い、車輪の接地面積が変化するために、左右輪間隔が変動し、カーブ走行時の旋回角度が変化するという問題がある。このように、従来の無人搬送車は、車輪半径の変動により、現在位置を誤って算出するおそれがあり、また、ガイド手段となる磁気テープに沿った正確な旋回制御が困難となるおそれがある。
【０００９】
そこで、本発明は、路面形状の変動などによる位置計測の誤差を低減して、現在位置を高精度に算出できる移動ロボットを安価に実現することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、車輪を駆動して複数区間からなる走行経路を移動するロボットに関し、この移動ロボットは、前記車輪の回転量を計測する回転量検出部と、前記走行経路に配設された指示手段を検出する指示手段検出部と、前記指示手段検出部の出力に基づき前記各区間の始点と終点を検出する区間判別部と、前記区間毎に設定した車輪特徴量を記憶する記憶部と、現在走行している区間の車輪特徴量と前記車輪の回転量とに基づき現在位置を算出する位置算出部と、を具備している。
【００１１】
上記構成により、車輪特徴量を区間毎に記憶し、区間毎の車輪特徴量に基づいて車輪回転量から現在位置が算出される。例えば右または左に傾斜した区間については、谷側の駆動輪の車輪径を小さく設定することにより、傾斜を特に考慮しないで現在位置を算出しても現在位置が正確に求められる。このようにして、区間による路面形状の変化の影響を低減して、現在位置の算出精度を向上できる。しかも、車輪特徴量を区間毎に記憶するという簡単な構成で、位置算出自体を大きく変えないでも路面形状の変化に適応でき、したがって、高価な構成を付加することなく移動ロボットの機能を利用して安価な構成で現在位置の検出精度を向上できる。
【００１２】
また、本発明において、前記記憶部は、前記各区間の始点終点間の距離と角度差とを経路情報として記憶し、更に、前記区間判別部が区間の終点を判別すると、該区間の始点終点間で計測された車輪回転量と前記経路情報とに基づき該区間の車輪特徴量を算出する車輪情報算出部を具備し、算出された車輪特徴量を前記区間と対応させて前記記憶部に記憶する。
【００１３】
上記構成により、各区間で計測された車輪回転量と予め記憶された各区間の経路情報から区間毎の車輪特徴量が算出され、計算された車輪特徴量を用いて現在位置が算出される。ここでも車輪径を例にとると、路面が左右に傾斜していれば、谷側の車輪回転量の計測値が大きくなり、自然と谷側の車輪径が小さく計算され、この小さな車輪径を用いる自然と傾斜が加味され現在位置が正確に計算される。このようにして、区間による路面形状の変化を考慮しないで車輪特徴量を求めても、路面形状の影響を低減する現在位置計算を可能とする車輪特徴量を得ることができ、現在位置の算出精度を容易に向上できる。
【００１４】
また、上記構成により、移動ロボットが予め決められた複数区間からなる走行経路を走行することを利用して、経路上に所定区間を設定して、この所定区間に関して記憶された経路情報と同所定区間の走行で計測された車輪回転量とから車輪特徴量を計算しており、したがって、この点でも、高価な構成を付加することなく移動ロボットの機能を利用して安価な構成で現在位置の検出精度を向上できる。さらにまた、上記構成により、各区間で算出された車輪特徴量を用いて現在位置を算出するので、車輪径等の車輪特徴量が変化した場合でも現在位置を高精度に検出できる。
【００１５】
また、本発明において、前記区間判別部は、前記指示手段検出部の出力に基づき第一及び第二の区間の始点と終点を判別し、前記車輪情報算出部は、前記区間判別部が第一の区間の終点を判別すると、該第一の区間の始点終点間で計測された車輪回転量と前記経路情報に記録された該第一の区間の始点終点間の距離とに基づき車輪特徴量としての車輪径の補正値を算出して記憶部に記憶してよい。さらに、前記車輪情報算出部は、前記区間判別部が第二の区間の終点を判別すると、該第二の区間の始点終点間で計測された車輪回転量と前記経路情報に記録された該第二の区間の始点終点間の角度差と車輪特徴量としての車輪径とに基づき車輪特徴量としての駆動輪間距離（左右の車輪間隔）の補正値を算出して記憶部に記憶してよい。
【００１６】
これにより、車輪特徴量として車輪径と駆動輪間距離の補正値を好適に算出することができる。車輪径は半径でよく（直径でもよい）、走行距離の算出に利用され、駆動輪間距離は車輪径と共に車両姿勢（向き）の算出に利用され、これら情報を用いて車両の現在位置を計算できる。
【００１７】
また、本発明において、前記位置算出部は、各区間の前回の走行にて前記車輪情報算出部により算出されて各区間と対応して前記記憶部に記憶された前記車輪特徴量を前記記憶部から読み出して現在位置を算出し、前記車輪情報算出部は、各区間にて前記位置算出部による位置算出と並行して計測された車輪回転量に基づき次回の同区間の走行のために車輪特徴量を算出して前記記憶部に記憶してよい。
【００１８】
これにより、各区間で前回の走行で算出され記憶された車両特徴量を使って現在位置を算出しつつ、並行して同区間の次の走行のために車両特徴量を算出して記憶するので、各区間の毎回の走行で直前の走行で得た車輪特徴量を使用でき、直近の車輪特徴量を使うことで現在位置を正確に検出できる。
【００１９】
また、本発明では、移動ロボットが、前記走行経路の方向に対する前記移動ロボットの進行方向の傾きを検出する傾き検出部と、前記第一の区間の始点および終点の少なくとも一方において前記傾き検出部により検出される傾きに基づき、前記経路情報上の前記第一の区間の始点終点間の距離を調整する区間距離調整部と、を備え、前記車輪情報算出部は、前記区間距離調整部により調整された距離に基づいて前記車輪径の補正値を算出してよい。
【００２０】
この態様では、経路情報上の区間距離と移動ロボットが実際に走行する距離にはロボット進行方向の傾きに起因するずれが生じることに基づき、このずれを補正する調整を経路情報上の距離に施している。これにより、実際の区間走行での走行距離の増減分を補正して車輪特徴量としての車輪径の補正値をより正確に求めることができ、現在位置の算出精度を向上できる。
【００２１】
また、本発明では、移動ロボットが、前記走行経路の方向に対する前記移動ロボットの進行方向の傾きを検出する傾き検出部と、前記第二の区間の始点および終点の少なくとも一方において前記傾き検出部により検出される傾きに基づき、前記経路情報上の前記第二の区間の始点終点間の角度差を調整する角度差調整部と、を備え、前記車輪情報算出部は、前記角度差調整部により調整された角度差に基づいて前記駆動輪間距離の補正値を算出してよい。
【００２２】
この態様では、経路情報上の区間両端の角度差と移動ロボットで実際に生じる角度差にはロボット進行方向の傾きに起因するずれが生じることに基づき、このずれを補正する調整を経路情報上の角度差に施している。これにより、実際の区間走行での角度差の増減分を補正して車両特徴量としての駆動輪間距離の補正値をより正確に求めることができ、現在位置の算出精度を向上できる。
【００２３】
その他、本発明は上述の移動ロボットに限定されない。本発明は、別の装置、方法、プログラムまたはシステムの態様で表現および特定されてもよい。例えば、本発明の別の態様は、上記の移動ロボットまたは他の移動体に備えられる現在位置検出装置または車輪特徴量算出装置である。また、本発明の別の態様は、上記の構成の動作を行う現在位置検出方法または車輪特徴量検出方法である。また、本発明の別の態様は移動ロボットの制御方法である。また、本発明の別の態様は、そのような方法をコンピュータに実行させるプログラムである。また、本発明の別の態様は、移動ロボットと監視センタとが通信で接続されたシステムである。
【発明の効果】
【００２４】
上述のように、本発明によれば、路面形状の変動などによる位置計測の誤差を低減して、現在位置を高精度に算出できる移動ロボットを安価に実現することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を図面を参照して説明する。本実施の形態の移動ロボットは、監視区域となる所定の環境内の所定経路を巡回して、監視区域内に出現した物体や消失した物体を検知して異常を検出するものである。移動ロボットは、異常を検知すると遠隔の監視センタに異常信号を送出する。監視センタでは、異常信号を受信すると、移動ロボットに搭載された撮像手段による画像の確認や、移動ロボットを遠隔操作して異常対処を行う。
【００２６】
移動ロボットの構成を図１に示す。移動ロボット１は、移動手段３、移動制御部５、ガイド検出部７、自己位置検出部９、障害物検知部１１、障害物判定部１３、記憶部１５、通信部１７、撮像ユニット１９、これら各部を制御する制御部２１、および、各部に電力を供給する電源部２３より構成されている。以下に各部を説明する。
【００２７】
移動手段３は、右輪３１、左輪３３と左右輪を独立に駆動するモータ３５、３７で構成されている。移動ロボット１は図２（ｂ）に示されるように４つの車輪を有しており、それらのうちの２つの車輪が駆動輪であり、図１の右輪３１、左輪３３に相当する。これら駆動輪が回転して、移動ロボット１が走行する。そして、左右輪の回転速度により直進走行速度および旋回走行速度が制御され、旋回方向も制御される。左右輪の回転速度は、移動制御部５により独立して制御される。なお、車輪駆動でなく、左右のクローラを独立に制御する方式が採用されてもよい。
【００２８】
ガイド検出部７は、移動経路上のガイド手段を検出する。ガイド手段は図２（ａ）に示されている。図示のように、予め設定された移動ロボットが巡回する移動経路には、経路の全長にわたってガイド手段としての白線テープ１０１が固定的に設けられている。また、経路中の所定の地点には、白線テープ１０１とともに、地点指示手段としての指示マーカ１０３が固定的に設けられている。指示マーカ１０３は１組の白色で四角形のマークであり、移動経路上に設定された区間の境界に設けられている。本実施の形態では例えば直線からカーブに移る地点およびその逆の地点が区間の境界に設定され、指示マーカ１０３が設けられている。また、本発明の範囲内で直線とカーブとの変化点以外にも区間の境界が設定され、指示マーカ１０３が設けられてよい。例えば、一つの直線上で左右の傾斜が変化する地点に区間の境界を設定し、指示マーカ１０３を設けることができる。
【００２９】
ガイド検出部７は、白線検出カメラ４１と画像処理部４３とから成る。白線検出カメラ４１は、路面を撮影可能に移動ロボット１の底面に設置されている。画像処理部４３は、移動ロボット１のコンピュータにより実現され、エッジ抽出やハフ変換などの処理により、白線検出カメラ４１の撮影画像から、移動ロボット１の経路を誘導すべき白線テープ１０１、及び指示マーカ１０３を検出して制御部２１に出力する。制御部２１は、画像処理部４３から入力された指示マーカ１０３の検出情報に基づき、走行経路の各区間の始点と終点を検出する。即ち、指示マーカ１０３の検出回数を計数し、この検知回数と経路情報に基づいて現在の区間を判別する。本実施の形態では、指示マーカ１０３が区間の境界を示す指示手段に相当し、ガイド検出部７が指示手段検出部に相当し、制御部２１が区間判別部として機能する。
【００３０】
なお、ガイド検出部７は、上記の構成に限定されない。ガイド検出部７は、磁気センサ、電磁誘導センサなどで構成されてもよい。この場合、ガイド検出部７は、移動経路に設置されたガイド手段としての磁気ガイドまたは電磁誘導ガイドを検出するように構成されてよい。ガイド手段及びガイド検出部は、設置する環境により選択できるようすることが好ましい。
【００３１】
移動制御部５は、駆動モータ３５、３７を制御するための手段である。移動制御部５は、ガイド検出部７による白線テープ１０１の検知出力に応じて、例えば周知のＰＩＤ制御などにより、白線テープ１０１に沿って移動するよう駆動モータ３５、３７を制御する。また、移動制御部５は、自己位置検出部９による走行区間の検出に応じて、予め設定された経路情報に基づき移動速度を制御する。移動速度は予め区間毎に設定され、経路情報の一部として記憶されている。
【００３２】
自己位置検出部９は、レゾルバ５１、５３、位置算出部５５とからなり、位置認識部として機能する。自己位置検出部９は、さらに車輪情報算出部５７を備えている。
【００３３】
レゾルバ５１、５３はそれぞれモータ３５、３７に設置されており、モータ３５、３７のモータ回転軸の絶対位置をそれぞれ検出する。レゾルバ５１、５３は回転量検出部の一形態である。
【００３４】
位置算出部５５は、移動ロボット１のコンピュータにより実現され、レゾルバ出力から得られるモータ回転軸の回転量から左右輪３１、３３それぞれの回転量を算出し、後述の環境地図上の現在のロボットの位置（X，Y）と姿勢（θ）を算出する。この処理では、車輪回転量から走行距離と角度変化が求められ、これらの情報から各時点の位置と姿勢が捕捉される。また、角度変化は、車輪回転量の差と車輪間隔（左右車輪間隔、駆動輪間距離またはトレッドの意味、以下同じ）から算出される。このような位置検出は、デッドレコニング（自律航法）として一般に知られる手法である。
【００３５】
また、位置算出部５５は、ガイド検出部７による指示マーカ１０３の検知出力と制御部２１による区間の判別に応じて、移動経路の始点や終点の認識、自己位置の補正などを行う。
【００３６】
また、車輪情報算出部５７は、左右輪それぞれの回転量と記憶部１５の経路情報とから、車輪特徴量を算出する。本実施の形態では、車輪特徴量として、車輪半径の補正値および車輪間隔の補正値が計算される。本実施の形態では両補正値が補正係数であり、基準車輪半径に補正値が掛けられて車輪半径が算出され、また、基準車輪間隔に補正値が掛けられ、これらの補正された車輪半径及び補正された車輪間隔が位置算出部５５で走行制御の現在位置と姿勢の算出に使用される。
【００３７】
車輪情報算出部５７は、区間判別部である制御部２１による区間の判別に応答して、区間の始点終点間で計測された車輪回転量から上記の計算処理を行う。走行経路の複数の区間は車輪径更新区間Ｔｎと車輪間隔更新区間Ｔｗに分かれており（図２（ａ））、車輪径更新区間Ｔｎでは車輪半径の補正値が算出され、また、車輪間隔更新区間Ｔｗでは、車輪間隔の補正値が算出される。
【００３８】
障害物検知部１１は、移動ロボット１の前方の物体を検出する手段である。障害物検知部１１は、移動ロボット１の前方に向けて設置されたレーザセンサ６１から成り、レーザ発振器より照射されるレーザ光が光路上にある物体にて反射した際の反射光を受光する。障害物検知部１１は、走査鏡とこの走査鏡を回転駆動する手段とによりレーザ発振器より発射されるレーザ光の照射方向を制御して、移動ロボット１の前方を含む所定の範囲を、例えば３０ｍｓｅｃの周期で空間走査している。
【００３９】
そして、障害物検知部１１は、レーザ光の照射から反射光検出までの時間より算出される障害物検知部１１とレーザ光を反射した物体（測定点）との距離と、回転駆動される走査鏡の角度とにより、レーザ光を反射した物体、即ちレーザ光を反射した測定点の相対位置を算出する。相対位置は、移動ロボット１を基準とした測定点の位置である。
【００４０】
なお、障害物検知部１１は、レーザセンサ以外のセンサで構成されてもよい。例えば、障害物検知部１１は赤外線タイプのセンサで構成されてもよく、ミリ波レーダタイプのセンサで構成されてもよい。
【００４１】
記憶部１５は、移動ロボット１での各種の処理に使用される情報を記憶している。記憶部１５が記憶する情報には、移動経路の情報を示した経路情報７１と、監視区域を二次元座標系で示した環境地図７３と、位置算出部５５により算出された移動ロボット１の位置と姿勢とを含む位置情報７５と、車輪特徴量の情報を示す車輪情報７７とが含まれる。
【００４２】
経路情報７１としては、移動経路中の各区間（ある指示マーカから次の指示マーカまでの区間）番号に対応して、各区間の走行速度、予め測量した区間距離、区間の始点終点間の方位角の差（角度差）が記憶されている。経路情報では、区間番号が、該当区間までに検出されるべきマーカの数（検出回数）と対応付けられている。走行制御では、マーカ検出回数から区間番号が特定され、そして、区間番号から各区間の走行速度等が特定されることになる。
【００４３】
なお、指示マーカは、区間の境界に加えて、それ以外の場所にも設定されてもよく（例えば、移動ロボット１が所定の場所の映像を撮像して送信するチェックポイントの目印として指示マーカが設けられ、撮像および通信の制御に利用されてよい）、この場合にも、上記のように区間番号とマーカ検出回数を対応づけておくことで区間が特定される。
【００４４】
また、経路情報７１には、各区間が車輪径更新区間Ｔｎ（第一の区間）であるか車輪間隔更新区間Ｔｗ（第二の区間）であるかを示す情報が含まれている（図２（ａ））。前者は、車輪半径を更新する区間であり、後者は、車輪間隔を更新する区間である。より詳細には、区間番号と対応して、更新識別データが付与されており、更新識別データが、各区間が車輪径更新区間Ｔｎか車輪間隔更新区間Ｔｗかを特定するデータである。
【００４５】
なお、本実施の形態では、移動経路上の直線区間が車輪径更新区間Ｔｎであり、カーブ区間が車輪間隔更新区間Ｔｗである。そこで、区間番号と対応して、各区間が直線かカーブかのデータが記憶され、このデータから各区間が車輪径更新区間Ｔｎか車輪間隔更新区間Ｔｗかが特定されてもよい。さらに、直線区間では、区間の始点終点間の角度差が０である。そこで、角度差の情報によって、更新の種類が特定されてもよい。
【００４６】
環境地図７３は、監視区域の地図情報であり、所定距離ごとにグリッドで仕切られており、各グリッドに識別番号が与えられている。本実施の形態では５ｃｍ×５ｃｍのグリッドで環境地図を仕切る例を説明する。例えば５ｃｍ×５ｃｍ毎に仕切る場合は、５００ｍ四方の監視区域の環境地図は、１億個のグリッドに仕切られることとなる。環境地図７３と共に、環境地図上での既設物体の位置情報である既設物情報が記憶されている。既設物情報は、環境地図７３の各グリッドの属性情報からなっており、各グリッドの属性情報として既設物の有無が登録されており、これにより既設物体の位置が特定される。既設物情報は、実際に移動ロボット１を走行させることで取得されてもよい。例えば、巡回以外の時に既設物情報を生成するモードを設定し、移動ロボット１を走行経路に沿って走らせて、このときに障害物検出部１１で検出される物体を既設物体として求め、求められた既設物体の位置を記憶部１５に登録してもよい。
【００４７】
図３は、環境地図７３を示す模式図である。図３では、移動ロボット１の周辺部のみが示されている。図においてハッチングして示すグリッドは、既設物情報にて物体の位置が示されているグリッド、すなわち、既設物グリッドである。
【００４８】
位置情報７５は、位置算出部５５により算出された移動ロボットの位置と姿勢である。位置および姿勢は、下記の車輪情報７７を使って、車輪回転量から算出される。
【００４９】
車輪情報７７としては、予め設定された左右車輪の半径基準値および車輪間隔基準値と、車輪情報算出部５７にて算出された、各区間ごとの左右車輪の半径補正値および車輪間隔補正値が記憶されている。半径基準値および車輪間隔基準値は固定の値である。これに対して、車輪情報算出部５７で算出される車輪半径および車輪間隔の補正値は、車輪の空気圧や摩耗等による変化や各区間の路面形状などを反映した車輪半径および車輪間隔を提供するものである。
【００５０】
通信部１７は、遠隔の監視センタと信号を送受信する無線通信手段である。通信部１７は、障害物判定部１３が異常を検知した場合、遠隔の監視センタに無線等で異常信号を出力する。また、通信部１７は、撮像ユニット１９が撮像した画像を遠隔の監視センタに送信し、監視センタから受信した制御コマンドを制御部２１に入力する。
【００５１】
撮像ユニット１９は、移動ロボット１に搭載されてロボットの周囲を撮像する撮像手段である。撮像ユニット１９は、例えば、図２（ｂ）に示されるように、ロボット上部の六角柱型のハウジングに収納されている。ハウジングの中には、６つの撮像部が６方向に向けて収納されており、これにより、水平方向の全視野がカバーされる。撮像ユニット１９にて撮像された画像は、記憶部１５にバッファされて、通信部１７から監視センタに送信される。
【００５２】
障害物判定部１３は異常判定部８１を備えており、障害物検知部１１の出力に基づき異常の有無を判定する。異常が判定されると、通信部１７より異常信号が出力され、また、移動制御部５が、移動の停止や減速、障害物の回避や追跡などの予め定められた処理を行う。
【００５３】
異常判定部８１は、環境地図と既設物情報を用いて異常を判定する。既設物体が存在しない位置の物体が障害物検知部１１により検出されたとき、異常判定部８１は、侵入物が存在しており異常が発生したと判定する。また、既設物体が障害物検知部１１によって検出されなかったとき、異常判定部８１は、既設物体が消失する異常が発生したと判定する。
【００５４】
障害物判定部１３は、下記の投票処理によって物体の有無を判定してもよい。この場合、障害物判定部１３には投票部が設けられ、投票部は、障害物検知部１１が測定点の相対位置を計測すると、移動ロボット１の位置と姿勢に基づき、計測された測定点に対応するグリッドを環境地図７３より判定して、該当グリッドに投票値を加算する。この処理のために、記憶部１５には、各グリッドの投票値を記録する投票テーブルが記憶されており、この投票テーブルに投票値が書き込まれる。そして、物体判定部が設けられ、この物体判定部は、投票テーブルにおけるグリッド毎の投票値に基づいて、各グリッドの物体の有無を判定する。物体判定部は、投票値が所定のしきい値以上になったグリッドに物体が存在すると判定する。上記のような投票処理を行うことにより、瞬間的に移動ロボット１の向きがブレたような場合に誤った測定点が計測されても、そのような測定点の投票値が大きくならないので、物体の誤検出を防止できる。
【００５５】
なお、上記の投票値には重み付け処理が施されてもよい。好適には、測定点までの距離に反比例した重みが付けられる。さらに、隣の測定点間の距離に反比例する重みが付けられる。重みを付けた投票値が計算され、この投票値が投票テーブルの該当グリッドに加算される。
【００５６】
制御部２１は、上述した移動ロボット１の各部構成を制御する手段であり、ＣＰＵ等を備えたコンピュータで構成されている。図１の各部構成でコンピュータ処理可能なものも、同コンピュータで実現されてよい。例えば、ガイド検出部７の画像処理部４３や、自己位置検出部９の位置算出部５５および車輪情報算出部５７が上記のコンピュータで実現され、障害物検知部１１の一部および障害物判定部１３の機能も同コンピュータで実現されてよい。また、移動制御部５についても同様であり、例えば、モータ制御に関する上位指令値が算出されて、モータ駆動回路に伝えられてよい。さらに、記憶部１５は、上記コンピュータのメモリおよび外部記憶装置等で実現されてよい。
【００５７】
次に、本実施の形態に係る移動ロボット１の動作を説明する。ここでは、まず、移動ロボット１の全体的な動作の概要を説明し、それから、車輪特徴量を求める動作を説明する。
【００５８】
移動ロボット１は、図示しない計時手段によって予め設定された巡回開始時刻の到来を検知したときや、操作部からの入力、又は監視センタからのコマンドを受信することにより巡回モードに設定され、ガイド検出部７からの信号を入力とし、移動制御部５により移動手段３を制御し、ガイド手段である白線テープ１０１（図２（ａ））に沿って移動を開始する。白線テープ１０１が画像から検出され、そして、白線テープ１０１が常に画像の所定位置で所定角度を向くように、移動制御部５が両モータ３５、３７の回転を独立して制御する。本実施の形態では、白線テープ１０１が画像の中央で上下方向を向くように移動制御部５が動作する。また、指示マーカ１０３に基づき、記憶部１５の経路情報７１を参照して現在の移動区間と走行速度が求められ、走行速度に応じてモータ回転が制御される。
【００５９】
移動ロボット１は、移動を開始すると障害物検知部１１を作動させて前方を空間走査する。障害物検知部１１は、反射光を検出すると、測定点の距離計測データS(Φm)を出力する。ここで、Φmは、レーザ光の照射方向を示す角度であり、例えば、−９０°＜ Φm ＜ ９０°の範囲を障害検知部１１が走査するものとし、移動ロボットの正面を０°とする。障害物検知部１１は所定の短い時間間隔で計測データを出力する。
【００６０】
障害物判定部１３は、障害物検知部１１からの入力を受けると、異常の有無を異常判定部８１により判定する。このとき、障害物判定部１３は、自己位置検出部９より環境地図上の移動ロボット１の位置(X，Y)、姿勢θを取得する。自己位置検出部９では、一般にデッドレコニングと呼ばれる手法によりレゾルバ５１、５３の検出値、車輪半径、車輪間隔などから移動ロボット１の位置、姿勢が計算されている。障害物判定部１３は、以下の式に基づき障害物検知部１１による測定点の出力結果を環境地図上の座標に投影する。即ち、移動ロボット１との相対位置として得られた測定点の位置を、環境地図上の座標（Ｘｓ，Ｙｓ）に変換する。
Xs=X+S(Φm)cos(Φm+θ)
Ys=Y+S(Φm)sin(Φm+θ)
【００６１】
障害物判定部１３の異常判定部８１は、上記の測定結果に基づいて異常が有るか否かを判定する。このとき、前述したような投票処理が行われ、測定点のグリッドに投票値が加算され、投票値が所定のしきい値以上になったグリッドを対象として異常の有無が判定されてもよい。
【００６２】
異常判定では、環境地図と共に記憶部１５に記憶された既設物情報が参照される。そして、測定点と対応する既設物体の位置が記憶部１５に登録されていなければ、既設物体以外の物体が存在しており、異常が有る（侵入物が有る）と判定する。また、異常判定部８１は、測定点と自己位置の間に位置すべき他の既設物体の情報が登録されているか否かを判定する。他の既設物体が登録されていれば、その既設物体が消失しているので、異常判定部８１は異常が有ると判定する。異常判定部８１が異常が有ると判定すると、制御部２１が移動ロボット１の走行を停止させ、さらに通信部１７より異常信号を監視センタへ出力する。
【００６３】
上記のような障害物検出と異常判定を行いながら、移動ロボット１は移動経路の終点まで走行する。
【００６４】
次に、車輪特徴量を求めるための移動ロボット１の動作の概要を説明する。移動ロボット１は、移動経路に沿って走行しながら、指示マーカ１０３を検出し、走行中の区間を判別し、特に、各区間が車輪径更新区間Ｔｎおよび車輪間隔更新区間Ｔｗのいずれであるかを判別する。
【００６５】
移動ロボット１は、車輪径更新区間Ｔｎでは車輪半径の補正値を算出して、記憶部１５の情報を更新する。このとき、車輪情報算出部５７が、レゾルバ５１、５３の出力より、同区間Ｔｎの始点のマーカを通過してから終点のマーカを通過するまでの左右輪の回転量を取得する。そして、経路情報中の区間距離を用いて、左右の各輪の車輪半径の補正値を回転量から算出する。
【００６６】
また、移動ロボット１は、車輪間隔更新区間Ｔｗでは車輪間隔の補正値を算出して、記憶部１５の情報を更新する。このとき、車輪情報算出部５７が、レゾルバ５１、５３の出力より、同区間Ｔｗの始点のマーカを通過してから終点のマーカを通過するまでの左右輪の回転量を取得する。そして、経路情報中の角度差（始点と終点の角度差であり、経路接線角度の差で表される）を用いて、車輪間隔の補正値を算出する。
【００６７】
上記の車輪半径および車輪間隔の補正値は、区間ごとに算出されて、記憶される。位置算出は、この区間ごとの車輪半径および車輪間隔の補正値を用いて行われる。つまり、今回の巡回時に算出された車輪半径および車輪間隔の補正値が、次回または次回以降の巡回時の位置算出に利用される。
【００６８】
また、本実施の形態では、補正値としては、補正係数が算出される。車輪半径の補正係数が基準値に掛けられて車輪半径が算出され、同様に、車輪間隔の補正係数が基準値に掛けられて車輪間隔が算出される。こうして得られる車輪半径および車輪間隔を用いて現在位置が算出されることになる。
【００６９】
ただし、本発明の範囲内で補正値は、計測結果を反映した車輪情報を得られるものであれば、上記のような係数ではなくてもよい。車輪半径の補正値は、車輪半径基準値と計測結果から得られる車輪半径との差分でもよい。また、車輪半径の補正値は、車輪半径そのものの値でもよい。車輪間隔についても同様である。
【００７０】
次に、図４、図５のフローチャートを参照して、車輪特徴量の算出処理の詳細を説明する。この算出処理は主として自己位置検出部９の車両情報算出部５７により行われる。
【００７１】
図４に示すように、走行が開始すると、レゾルバ５１、５３による車輪回転数の計測が開始し（Ｓ１）、続いて、区間境界の指示マーカが検出されたか否かが判定される（Ｓ３）。指示マーカはガイド検出部７で検出され、制御部２１からマーカの検出が自己位置検出部９に伝えられる。指示マーカが検出されていなければ、ステップＳ３の判定が繰り返される。指示マーカが検出されると、指示マーカ検出時の車輪回転数が下記のように記憶される（Ｓ５）。以下では、例えば、車輪Ａが右の駆動輪であり、車輪Ｂが左の駆動輪である。
車輪Ａ回転数：Ma1
車輪Ｂ回転数：Mb1
【００７２】
次に、区間番号の判別が行われる（Ｓ７）。ここでは、経路情報７１が参照されて、現在の区間の番号ｎが特定される。そして、再び指示マーカが検出されたか否かが判定される（Ｓ９）。指示マーカが検出されなければステップＳ９の判定が繰り返される。指示マーカが検出されると、指示マーカ検出時の車輪回転数が下記のように記憶される（Ｓ１１）。これにより、区間ｎの始点および終点の車輪回転数がそれぞれ記憶されたことになる。
車輪Ａ回転数：Ma2
車輪Ｂ回転数：Mb2
【００７３】
続いて、区間ｎ走行時の車輪回転量と基準車輪情報とに基づき、下記のようにして、区間ｎ内における各車輪の走行距離が算出される（Ｓ１３）。基準車輪情報（車輪半径基準値Ra、Rb、車輪間隔基準値W）は記憶部１５の車輪情報７７から取得される。
車輪Ａ半径基準値：Ra
車輪Ｂ半径基準値：Rb
車輪間隔基準値：W
車輪Ａ回転量：θa  （＝Ma2−Ma1）
車輪Ｂ回転量：θb  （＝Mb2−Mb1）
車輪Ａ走行距離：Da  （＝Ra×θa）
車輪Ｂ走行距離：Db  （＝Rb×θb）
台車旋回角：θ  （＝(Da−Db)／W）
【００７４】
次に、記憶部１５に記憶された区間ｎの経路情報が参照される（Ｓ１５）。そして、経路情報から、区間ｎが、車輪径更新区間Ｔｎから車輪間隔更新区間Ｔｗかが求められる。また、区間ｎの区間距離Ｄが求められる。さらに、区間ｎの始点終点間の角度差φが読み出される。これらは、区間ｎの番号と関連づけて記憶されている。
【００７５】
なお、前述したように、直線区間が車輪径更新区間Ｔｎに設定され、カーブ区間が車輪間隔更新区間Ｔｗに設定されてよい。この場合、区間の種別は、直線か否かの情報でもよい。以上は、各区間が単純な直線、円弧のみで構成されている場合であり、移動経路中にクランク状の区間が設定されている場合であれば、角度差にて車輪径更新区間Ｔｎか車輪間隔更新区間Ｔｗかを判定することが好ましい。即ち、円弧の複合で構成されたクランクであっても、角度差のない区間では車輪径更新区間Ｔｎに設定され、直線の複合で構成されたクランクであっても角度差がある区間では車輪間隔更新区間Ｔｗに設定されるべきでる。
【００７６】
次に、図５に移り、上記で得られた情報を基に、区間ｎが車輪径更新区間Ｔｎであるか否かが判定され（Ｓ１７）、Ｙｅｓであれば、区間ｎ内の走行距離と経路情報とから、区間ｎにおける車輪半径の補正値が下記のようにして算出される（Ｓ１９）。
車輪Ａ半径補正値：Ca  ＝D／Da
車輪Ｂ半径補正値：Cb  ＝D／Db
車輪間隔補正値：Cw  ＝1.0
【００７７】
この補正値は、補正係数である。車輪半径の補正係数を車輪半径基準値に掛けると、区間ｎにおいて現在位置の検出に使用すべき車輪半径が得られる。上記のステップでは、車輪間隔についても補正値が計算され、この値が以降のステップでも処理されるが、補正値は１．０に固定されており、したがって車輪径更新区間Ｔｎでは実質的には車輪間隔は補正されない。
【００７８】
一方、ステップＳ１７がＮｏであれば、区間ｎが車輪間隔更新区間Ｔｗであり、ステップＳ２１に進み、区間ｎ内の旋回角と経路情報とから、区間ｎにおける車輪間隔の補正値が下記のようにして算出される。
車輪Ａ半径補正値：Ca  ＝1.0
車輪Ｂ半径補正値：Cb  ＝1.0
車輪間隔補正値：Cw  ＝θ／φ
【００７９】
ステップＳ２１の補正値も補正係数である。車輪間隔の補正係数を車輪間隔基準値に掛けると、区間ｎにおいて現在位置検出に使用すべき車輪間隔が得られる。上記のステップでは、車輪半径についても補正値が計算され、この値が以降のステップでも処理されるが、補正値は１．０に固定されており、したがって車輪間隔更新区間Ｔｗでは実質的には車輪半径は補正されない。
【００８０】
ステップＳ１９またはステップＳ２１で補正値が算出されると、算出した補正値が区間ｎと関連付けて記憶部１５に記憶される（Ｓ２３）。ここでは、記憶部１５に過去に記憶された車輪情報中の補正値が、上記の算出した計算値でもって置き換えられる。
【００８１】
続いて、区間番号が一つ加えられ、ｎ＝ｎ＋１とされる（Ｓ２５）。指示マーカの検出によって次の区間に進むからである。そして、車輪情報の算出のための車輪回転数が下記のように置き換えられる（Ｓ２７）。
車輪Ａ回転数：Ma1＝Ma2
車輪Ｂ回転数：Mb1＝Mb2
【００８２】
さらに、経路が終了したか否かが判定される（Ｓ２９）。経路が終了したか否かは、区間ｎに基づき経路情報を参照することで分かる。区間番号が最終区間の番号以下であれば経路が終了しておらず、経路が終了していなければステップＳ９に戻り、経路が終了していれば、車輪回転数の計測を終了し（Ｓ３１）、移動ロボット１の走行が終了する。
【００８３】
以上に、車輪情報７７の補正値を計算する処理を説明した。次に、図６および図７を参照して、計算された補正値を用いて現在位置を算出する処理を説明する。この処理は、主として自己位置検出部９の位置算出部５５によって行われる。現在位置の計算は、各区間にて過去の巡回、例えば前回の巡回で得られた補正値を用いて行われることになる。
【００８４】
図６に示すように、走行が開始すると、下記のような台車（移動ロボット）の初期状態が設定される（Ｓ４１）。
現在の位置：(X0,Y0)
現在の姿勢：θ0
現在の区間n：n0
【００８５】
そして、レゾルバ５１、５３による車輪回転数の計測が開始し（Ｓ４３）、下記のように車輪回転数が記憶される（Ｓ４５）。前出のMa1、Mb1が車輪特徴量の算出に用いられるのに対して、La1、Lb1は、現在位置の算出に利用するために記憶されるパラメータである。
車輪Ａ回転数：La1
車輪Ｂ回転数：Lb1
【００８６】
次に、現在の区間ｎにおける車輪半径、車輪間隔の補正値が下記の通り記憶部１５から読み出され、また、車輪半径基準値および車輪間隔基準値が記憶部１５から読み出される（Ｓ４７）。
車輪Ａ半径補正値：Ca
車輪Ｂ半径補正値：Cb
車輪間隔補正値：Cw
車輪Ａ半径基準値：Ra
車輪Ｂ半径基準値：Rb
車輪間隔基準値：W 
【００８７】
そして、補正値に基づいて、車輪半径、車輪間隔が下式により算出される（Ｓ４９）。  なお、直線区間では、Cw＝1.0なので、車輪間隔は基準値と同じになり、車輪半径が補正されることになる。また、カーブ区間では、Ca＝Cb＝1.0なので、車輪半径が基準値と同じになり、車輪間隔が補正されることになる。
補正値適用後の車輪Ａ半径：Ra’  ＝Ra×Ca
補正値適用後の車輪Ｂ半径：Rb’  ＝Rb×Cb
補正値適用後の車輪間隔：W’  ＝W×Cw
【００８８】
続いて、前回の計測の次の周期で計測された車輪回転数が下記のように記憶される（Ｓ５１）。
車輪Ａ回転数：La2
車輪Ｂ回転数：Lb2
【００８９】
そして、算出された車輪半径Ra'、Rb'、車輪間隔W'と車輪回転量とに基づき、現在の位置と姿勢が、下記式に従って算出される（Ｓ５３）。ここでは、下式により、添え字１、２で表される前後２回（２周期）の測定点間の左右輪回転量が求められ、そして、位置、姿勢の変化量が求められる。
車輪Ａ回転量：θa  (＝La2−La1)
車輪Ｂ回転量：θb  (＝Lb2−Lb1)
車輪Ａ走行距離：Da  （＝Ra'×θa）
車輪Ｂ走行距離：Db  （＝Rb'×θb）
台車旋回角：θ  （＝(Da−Db)／W'）
並進距離：Ds  （＝（Da＋Db）／２）
さらに、記憶されている１周期前の現在位置（Xt,Yt）、姿勢（θt）から現在の位置(Xt+1,Yt+1）および現在の姿勢(θt+1）が下式で得られる。なお、走行開始後１回目となる計測では、１周期前の値として初期状態の値（X0,Y0）（θ0）が用いられる。
θt+1＝θt＋θ
Xt+1＝Xt＋Ds×cosθt+1
Yt+1＝Yt＋Ds×sinθt+1
【００９０】
ステップＳ５３に続いて、車輪回転数が下記のように入れ替えられる（Ｓ５５）。
車輪Ａ回転数：La1＝La2
車輪Ｂ回転数：Lb1＝Lb2
【００９１】
続いて、指示マーカが検出されたか否かが判定される（Ｓ５７）。指示マーカはガイド検出部７で検出され、制御部２１からマーカの検出が自己位置検出部９に伝えられる。指示マーカが検出されていなければ、ステップＳ５１に戻る。これにより、上述した現在位置および姿勢の計算が位置算出部５５により繰り返される。
【００９２】
ステップＳ５７で指示マーカが検出されると、区間番号が一つ加えられ、ｎ＝ｎ＋１とされる（Ｓ５９）。指示マーカの検出によって次の区間に進むからである。そして、移動経路が終了したか否かが判定され（Ｓ６１）、経路が終了していなければステップＳ４７に戻り、次の区間で同様の現在位置計算処理を行う。すなわち、次の区間の車輪半径および車輪間隔の補正値を使用して現在位置が検出されることになる。ステップＳ６１の判定で経路が終了していれば、車輪回転数の計測を終了し（Ｓ６３）、移動ロボット１の走行が終了する。
【００９３】
以上に車輪特徴量の計算に関する移動ロボット１の動作を説明した。次に、車輪特徴量の算出精度（車輪半径及び車輪間隔の補正値算出精度）をさらに向上するための処理について説明する。ここでは、走行経路の方向に対する移動ロボット１の進行方向の傾きを考慮して、車輪特徴量の計算基準になる経路側の情報である区間始点終点間の角度差や区間距離の方を調整する。
【００９４】
図８は、直線区間からカーブ区間を通って次の直線区間を走行する移動ロボット１を模式的に示している。移動ロボット１には、白線検出カメラの画像が重ねて示されている。図８（ａ）は理想状態であり、移動ロボット１の進行方向が、走行経路の方向（ガイド手段である白線テープ１０１の方向）と常に一致しており、両者の傾きが０である。
【００９５】
一方、図８（ｂ）は実際の移動ロボット１の姿勢を示しており、図示のように、実際の走行では、移動ロボット１の進行方向が経路方向に対して傾くことがあり、この傾きを両駆動輪の制御で修正しながら走行している。特に、カーブの出口では姿勢が不安定になりがちで、進行方向が経路方向に対して傾き易い（両者が平行にならない）。このような進行方向の傾きは、車両特徴量の計算では誤差の要因になってしまう。すなわち、本実施の形態では、経路情報の区間距離および区間両端の角度差を基準にして車輪回転量から車輪半径および車輪間隔の補正値を計算しているが、区間の始点および終点で車両の進行方向が傾くと、実際の走行距離や走行で生じた角度差が経路情報の値とずれてしまい、そのために、経路情報をそのまま使うと、車輪特徴量の計算値に誤差が生じる。
【００９６】
そこで、本実施の形態では、下記に説明するようにして、移動ロボット１の進行方向の傾きを検出して、傾きに応じた経路情報の調整を行い、それから車輪特徴量を計算することとする。
【００９７】
図９は、車輪間隔更新区間Ｔｗであるカーブ区間を示している。本実施の形態では、区間Ｔｗの始点（地点１）と終点（地点２）のマーカが検出されたときに、それぞれ、角度ズレ量Δφ1、Δφ2が検出される。これらは、上述した進行方向と経路方向の傾き角である。
【００９８】
角度ズレ量Δφ1、Δφ2は、ガイド検出部７によって検出される。ガイド検出部７では、画像処理部４３が、白線検出カメラ４３の画像から白線テープ１０１を検出し、白線テープ１０１の方向を求める。この白線テープ１０１の方向は経路方向である。したがって、白線テープ１０１の画像中での傾きから、移動ロボット１の角度ズレ量が求められる。この角度ズレ量は、走行制御における位置算出でも常時利用されてよい。
【００９９】
このように、ガイド検出部７は傾き検出部として機能しており、そして、指示マーカ１０３が検出されたときには、角度ズレ量が自己位置検出部９に渡され、記憶部１５に記憶される。区間の始点での角度ズレ量Δφ1が、同地点での車輪Ａ、Ｂ回転数Ma1、Mb1と共に記憶され、区間の終点での角度ズレ量Δφ2が、同地点での車輪Ａ、Ｂ回転数Ma2、Mb２と共に記憶されることになる。
【０１００】
そして、自己位置検出部９の車輪情報算出部５７は区間角度差調整部として機能し、上記の角度ズレ量Δφ1、Δφ2を読み出して、車輪間隔更新区間Ｔｗの始点終点間の角度差φを、下式に従って調整（補正）する。
φ＝  φ−（Δφ1−Δφ2）
【０１０１】
これにより、車輪間隔更新区間Ｔｗの始点終点間で実際に移動ロボット１に生じた角度差が得られる。この調整後の角度差φを用いて車輪間隔の補正値Cwが算出される。したがって、結局、車輪間隔の補正値Cwは下式によって計算されることになる。
Cw＝  θ／（φ−（Δφ1−Δφ2））
【０１０２】
ここで、θは、車輪半径および車輪間隔の基準値と、計測された車輪回転量とから算出された車輪旋回角である。
【０１０３】
次に、図１０は、車輪径更新区間Ｔｎである直線区間を示している。ここでも、上記と同様にして、区間Ｔｎの始点（地点１）のマーカが検出されたときに、角度ズレ量Δφ1がガイド検出部７により検出され、同地点での車輪Ａ、Ｂ回転数Ma1、Mb1と共に記憶される。同様に、区間Tｎの終点（地点２）のマーカが検出されたときに、角度ズレ量Δφ2がガイド検出部７によって検出され、同地点での車輪Ａ、Ｂ回転数Ma2、Mb２と共に記憶される。
【０１０４】
そして、自己位置検出部９の車輪情報算出部５７が区間距離調整部として機能し、上記の角度ズレ量を用いて区間距離を調整する。以下のように、角度ズレ量から距離ズレ量が求められ、距離ズレ量を用いて区間距離が調整される。ここで、角度ズレ量は、上述した進行方向と経路方向の傾き角であり、距離ズレ量は、経路情報上の区間距離と実際の走行距離とのずれ量である。
【０１０５】
図１１は、区間始点の角度ズレ量Δφ1から、同地点での車輪毎の距離ズレ量ΔDa1、ΔDb1を求める処理を示している。図中で、dは、左右輪の中点から、指示マーカの中心位置までの、経路方向（白線テープ１０１の方向）の距離であり、ガイド検出部７はこの距離がｄとなったときに指示マーカ１０３の検出信号を出力する。距離ズレ量ΔDa1、ΔDb1は、角度ズレ量Δφ1から下式によって求められる。
ΔDa1  ＝ d−（W×sinΔφ1）／２
ΔDb1  ＝ d＋（W×sinΔφ1）／２
【０１０６】
同様に、区間終点での距離ズレ量ΔDa2、ΔDb2も、角度ズレ量Δφ2から下記の式で求められる。
ΔDa2  ＝ d−（W×sinΔφ2）／２
ΔDb2  ＝ d＋（W×sinΔφ2）／２
【０１０７】
そして、自己位置検出部９の車輪情報算出部５７は、上記の距離ズレ量ΔDa1、ΔDb1、ΔDa2、ΔDb2を用いて、車輪径更新区間Ｔｎの始点終点間の距離Ｄを、下式に従って調整（補正）する。区間距離Ｄは、車輪Ａ、Ｂで個別に調整され、車輪Ａ、Ｂに関する区間距離DA、DBが得られる。
DA＝ D−（ΔDa1−ΔDa2）
DB＝ D−（ΔDb1−ΔDb2）
【０１０８】
これにより、車輪径更新区間Ｔｎでの車輪Ａ、Ｂそれぞれの実際に走行した距離が得られる。そして、これらDA、DＢを用いて、下式に従い車輪Ａ、Ｂの車輪半径の補正値Ca、Cbが計算される。
Ca  ＝DA／Da
Cb  ＝DB／Db
【０１０９】
ここで、Da、Dbは、車輪半径基準値と車輪回転量とから算出された車輪Ａ、Ｂの走行距離であり、Ca、Cbは補正値である。
【０１１０】
上記の処理を、図４、図５に示した本実施の形態の動作フローに当てはめると、下記のようになる。すなわち、ステップＳ５で車輪Ａ、Ｂ回転数Ma1、Mb1を記憶するときに、角度ズレ量Δφ1が一緒に記憶され、ステップＳ１１で車輪Ａ、Ｂ回転数Ma2、Mb2を記憶するときに、角度ズレ量Δφ2が一緒に記憶される。また、ステップＳ２７で車輪Ａ、Ｂ回転数を入れ替えるとき（Ma1＝Ma2、Mb1＝Mb2）、角度ズレ量も入れ替えられる（Δφ1＝Δφ2）。そして、ステップＳ１９で車輪半径の補正値を算出する前に、区間距離Ｄが上記のように車輪Ａ、車輪Ｂのための区間距離DA、DBに調整され、この調整値がステップＳ１９で使われる。また、ステップＳ２１で車輪間隔の補正値を算出する前に、区間両端の角度差φが上記のように調整され、この調整値がステップＳ２１で使われる。区間距離Ｄと角度差φの調整は、これらがステップＳ１５にて読み出される時に行われてもよい。
【０１１１】
以上のような処理により、車輪特徴量の算出精度を向上できる。なお、本実施の形態では、算出精度を向上させるために区間の始点と終点の両方で検出された傾きが使用されている。しかし、本発明の範囲内で、始点または終点での傾きのみが使われてもよい。カーブの終点での傾きが大きくなる傾向があるので、車輪間隔の補正値算出では区間終点の傾きを使用することが好適であり、また、車輪半径の補正値算出では区間始点の傾きを使用することが好適である。
【０１１２】
以上に本発明の好適な実施の形態について説明した。本実施の形態によれば、車輪特徴量を区間毎に記憶し、区間毎の車輪特徴量に基づいて車輪回転量から現在位置が算出される。右または左に傾斜した区間については、谷側の駆動輪の車輪径が小さく設定され、この設定により、傾斜を特に考慮しないで通常通りに現在位置を算出しても現在位置を正確に求められる。このようにして、区間による路面形状の変化の影響を低減して、現在位置の算出精度を向上できる。しかも、車輪特徴量を区間毎に記憶するという簡単な構成で、位置算出処理自体を大きく変えないでも路面形状の変化に適応でき、したがって、高価な構成を付加することなく移動ロボットの機能を利用して安価な構成で現在位置の検出精度を向上できる。
【０１１３】
また、本実施の形態によれば、各区間で計測された車輪回転量と予め記憶された各区間の経路情報から区間毎の車輪特徴量が算出され、計算された車輪特徴量を用いて現在位置が算出される。ここでも車輪径を例にとると、路面が左右に傾斜していれば、谷側の車輪回転量の計測値が大きくなり、自然と谷側の車輪径が小さく計算され、この小さな車輪径を用いる自然と傾斜が加味され現在位置が正確に計算される。このようにして、区間による路面形状の変化を考慮しないで車輪特徴量を求めても、路面形状の影響を低減する現在位置計算を可能とする車輪特徴量を得ることができ、現在位置の算出精度を容易に向上できる。
【０１１４】
また、上記の車輪特徴量の計算に関して、移動ロボットが予め決められた複数区間からなる走行経路を走行することを利用して、経路上に所定区間を設定して、この所定区間に関して記憶された経路情報と同所定区間の走行で計測された車輪回転量とから車輪特徴量を計算しており、したがって、この点でも、高価な構成を付加することなく移動ロボットの機能を利用して安価な構成で現在位置の検出精度を向上できる。さらにまた、各区間で算出された車輪特徴量を用いて現在位置を算出するので、車輪径等の車輪特徴量が変化した場合でも現在位置を高精度に検出でき、この点でも有利である。
【０１１５】
また、本実施の形態によれば、車輪径更新区間と車輪間隔更新区間を適切に設定して、左右輪独立駆動における自律航法に使われる車輪径と駆動輪間距離を算出することができる。
【０１１６】
また、本実施の形態によれば、各区間で前回の走行で算出され記憶された車両特徴量を使って現在位置を算出しつつ、並行して同区間の次の走行のために車両特徴量を算出して記憶するので、各区間の毎回の走行で直前の走行で得た車輪特徴量を使用でき、直近の車輪特徴量を使うことで現在位置を正確に検出できる。
【０１１７】
また、本実施の形態によれば、区間端部での経路方向と進行方向の傾きを検出して、経路情報上の区間距離を実際に走行した距離へと車輪毎に調整し、調整した区間距離を用いて車輪径の補正値を計算している。このようにして実際の区間走行での走行距離の増減分を車輪毎に補正して車輪径の補正値をより正確に求めることができ、現在位置の算出精度を向上できる。
【０１１８】
また、本実施の形態によれば、区間端部での経路方向と進行方向の傾きを検出して、経路情報上の区間両端の角度差を実際に移動ロボットで発生した角度差へと調整し、調整した角度差を用いて車輪間隔の補正値を計算している。このようにして実際の区間走行での角度差の増減分を補正して車輪間隔の補正値をより正確に求めることができ、現在位置の算出精度を向上できる。
【０１１９】
以上に本発明の好適な実施の形態を説明した。しかし、本発明は上述の実施の形態に限定されず、当業者が本発明の範囲内で上述の実施の形態を変形可能なことはもちろんである。
【産業上の利用可能性】
【０１２０】
本発明は、移動しながら周囲の物体を検出する移動ロボットとして有用である。
【図面の簡単な説明】
【０１２１】
【図１】本発明の実施の形態に係る移動ロボットの機能ブロック図である。
【図２】移動ロボットが使用される環境および移動ロボットの外観を示す図である。
【図３】記憶部に記憶されている環境地図および既設物情報を示す図である。
【図４】車輪特徴量算出の処理を示すフローチャートである。
【図５】車輪特徴量算出の処理を示すフローチャートである。
【図６】現在位置算出の処理を示すフローチャートである。
【図７】現在位置算出の処理を示すフローチャートである。
【図８】移動ロボットの進行方向が傾くことによる影響を説明する図である。
【図９】進行方向の傾きに基づく車輪間隔更新処理を説明する図である。
【図１０】進行方向の傾きに基づく車輪径更新処理を説明する図である。
【図１１】進行方向の傾きに基づく車輪径更新処理を説明する図である。
【符号の説明】
【０１２２】
１  移動ロボット
３  移動手段
５  移動制御部
７  ガイド検出部
９  自己位置検出部
１１  障害物検知部
１３  障害物判定部
１５  記憶部
１７  通信部
１９  撮像ユニット
２１  制御部
３１  右輪
３３  左輪
３５，３７  モータ
４１  白線検出カメラ
４３  画像処理部
５１，５３  レゾルバ
５５  位置算出部
５７  車輪情報算出部
６１  レーザセンサ
７１  経路情報
７３  環境地図
７５  位置情報
７７  車輪情報
８１  異常判定部
【図１】
2006252350.tif 000003
【図２】
2006252350.tif 000004
【図３】
2006252350.tif 000005
【図４】
2006252350.tif 000006
【図５】
2006252350.tif 000007
【図６】
2006252350.tif 000008
【図７】
2006252350.tif 000009
【図８】
2006252350.tif 000010
【図９】
2006252350.tif 000011
【図１０】
2006252350.tif 000012
【図１１】
2006252350.tif 000013