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