(57)【特許請求の範囲】
【請求項１】
自装置の直進方向に対して左側の角度範囲と右側の角度範囲とを含む所定の角度範囲において、所定の角度間隔で複数方向へビームを照射することで、障害物の位置を特定するセンサ部と、
自装置の位置を示す自己位置から上記障害物の位置まで延びる複数の第１のベクトルを作成する第１のベクトル作成部と、
上記複数の第１のベクトルのうち所定の基準距離より短い各第１のベクトルそれぞれについて、当該第１のベクトルの延伸方向であって、当該第１のベクトルと上記基準距離との差分だけ上記自己位置から離れる向きに延びる第２のベクトルを作成する第２のベクトル作成部と、
上記各第２のベクトルのうち、自装置の直進方向に対し直交する左右方向の成分ベクトルの向きが同じ第２のベクトル同士を合成し、互いに向きが異なる第１及び第２の合成ベクトルを作成する合成ベクトル作成部と、
上記第１及び第２の合成ベクトルそれぞれの上記左右方向の成分ベクトルの絶対値の和が、所定の第１の閾値を超えるか否かを判定する判定部とを備えることを特徴とする自律走行体。
【請求項２】
第１の地点において上記センサ部が特定した障害物の位置を示す第１の環境地図と、上記第１の地点から所定の距離移動した第２の地点において上記センサ部が特定した周囲の障害物の位置とを示す第２の環境地図とを作成する地図作成部と、
上記第１の地点における上記周囲の障害物の位置によって表された形状と、上記第２の地点における上記周囲の障害物の位置によって表された形状とを重ね合せることで、上記第１の環境地図と、上記第２の環境地図とが合成された合成地図を作成する合成地図作成部とを備え、
上記第１のベクトル作成部は、上記第２の地点における上記自己位置から上記合成地図に示された上記障害物の位置まで延びる複数の第１のベクトルを作成することを特徴とする請求項１に記載の自律走行体。
【請求項３】
上記合成ベクトル作成部は、上記複数の第２のベクトルのうち、特定方向へ延びる第２のベクトルを除外した残りの複数の第２のベクトルを合成することで、上記第１及び第２の合成ベクトルを作成することを特徴とする請求項１又は２に記載の自律走行体。
【請求項４】
上記判定部は、上記第１及び第２の合成ベクトルそれぞれの上記左右方向の成分ベクトルの絶対値の和が、上記所定の第１の閾値を超えると判定すると、
上記第１及び第２の合成ベクトルそれぞれの上記自装置の直進方向の成分ベクトル絶対値の和が、所定の第２の閾値を超えるか否かを判定することを特徴とする請求項１〜３の何れか１項に記載の自律走行体。
【請求項５】
自装置の走行を制御する走行制御部をさらに備え、
上記判定部は、自装置が所定距離移動するたびに、上記第１及び第２の合成ベクトルそれぞれの上記左右方向の成分ベクトルの絶対値の和が、上記所定の第１の閾値を超えるか否かを判定し、さらに、上記左右方向の成分ベクトルの絶対値の和が、所定回数、連続して上記第１の閾値を超えるか否かを判定し、
上記走行制御部は、絶対値の和が、所定回数、連続して上記第１の閾値を超えると上記判定部が判定すると、自装置の進行を停止することを特徴とする請求項１〜４の何れか１項に記載の自律走行体。
【請求項６】
自装置の直進方向に対して左側の角度範囲と右側の角度範囲とを含む所定の角度範囲において、所定の角度間隔で複数方向へビームを照射することで、障害物の位置を特定する位置特定ステップと、
自装置の位置を示す自己位置から上記障害物の位置まで延びる複数の第１のベクトルを作成する第１のベクトル作成ステップと、
上記複数の第１のベクトルのうち所定の基準距離より短い各第１のベクトルそれぞれについて、当該第１のベクトルの延伸方向であって、当該第１のベクトルと上記基準距離との差分だけ上記自己位置から離れる向きに延びる第２のベクトルを作成する第２のベクトル作成ステップと、
上記各第２のベクトルのうち、自装置の直進方向に対し直交する左右方向の成分ベクトルの向きが同じ第２のベクトル同士を合成し、互いの向きが異なる第１及び第２の合成ベクトルを作成する合成ベクトルステップと、
上記第１及び第２の合成ベクトルそれぞれの上記左右方向の成分ベクトルの絶対値の和が、所定の第１の閾値を超えるか否かを判定する判定ステップとを有することを特徴とする自律走行体の狭路判定方法。
【請求項７】
請求項１に記載の自律走行体としてコンピュータを機能させるための狭路判定プログラムであって、上記第１のベクトル作成部、上記第２のベクトル作成部、上記合成ベクトル作成部および上記判定部としてコンピュータを機能させるための狭路判定プログラム。
【請求項８】
請求項７に記載の狭路判定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は自律走行体、自律走行体の狭路判定方法、狭路判定プログラム及びコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
近年、建物内部や屋外の限定された領域内を、周囲の環境情報に基づいて自律的に移動可能な自律移動型ロボット等の自律走行ロボットが開発されている。図２３を用いて、特許文献１に記載された自律走行ロボットについて説明する。図２３は、従来の自律走行ロボットの構成を表す図である。
【０００３】
図２３に示すように、複数の自律走行ロボット１００が列をなして、壁１０５と、壁１０６からなる通路を進行している。図２３における紙面左から右へ向かう方向が、自律走行ロボット１００の進行方向である。自律走行ロボット１００は、それぞれ、自律走行ロボット１００が通路に進入したことを検出する前方エッジ検出手段１０１と、走行中のロボットと両側の壁１０５・１０６との距離を検出する距離検出手段１０２・１０３と、自律走行ロボット１００が通路を通過したことを検出する後方エッジ検出手段１０４とを有している。また、図示しないが、自律走行ロボット１００は、各手段からの検出結果を基に、自律走行ロボット１００の走行をコントロールする制御手段をさらに備えている。
【０００４】
前方エッジ検出手段１０１、距離検出手段１０２、距離検出手段１０３、及び後方エッジ検出手段１０４は、自律走行ロボット１００の進行前方側から後方側へかけてこの順に並んで配されており、また、自律走行ロボット１００の両側面（壁１０５と対向する側の側面及び壁１０６と対向する側の側面）にそれぞれ配されている。
【０００５】
自律走行ロボット１００によると、自律走行ロボット１００が、壁１０５と、壁１０６とからなる狭路に差しかかると、壁１０５及び壁１０６との間隔を保ちつつ、壁に当たらないように方向修正しながら、自律的に、壁１０５と、壁１０６とからなる通路を通過できるとされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００‐２４２３３１号公報（２０００年９月８日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、自律走行ロボットが通過する通路には、種々の通路が存在する。例えば、図２４に示すように、一方が連続して繋がっている壁１０５であり、壁１０５と対向する壁１０６Ａが、スリット状に間隔をあけて並んで存在している場合もある。
【０００８】
自律走行ロボット１００は、前方エッジ検出手段１０１により自律走行ロボット１００が通路に進入したことを検出し、後方エッジ検出手段１０４により通路を通過したことを検出しているため、スリット間に存在する壁１０６Ａの長さが、前方エッジ検出手段１０１と、後方エッジ検出手段１０４との距離より短い場合、自律走行ロボット１００は、適切に、壁１０５及び壁１０６からなる通路への進入及び通過を検出することができず、壁１０５及び壁１０６空の距離を適切に把握することができない。
【０００９】
また、図２５の（ａ）に示す自律走行ロボット２００のように、床など走行する平面に対する投影形状が円形の場合、通路１１５へ進入可能であれば、図２５の（ｂ）に示すように、その通路１１５内で旋回することも可能である。
【００１０】
しかし、図２６に示す自律走行ロボット２０１のように、床など走行する平面に対する投影形状が円形でない場合、図２６の（ａ）に示すように狭路１１５へ進入可能であっても、図２５の（ｂ）に示すように、旋回時に、自律走行ロボット２０１のエッジが通路１１５の壁と接触し、その狭路１１５内で旋回不可の可能性がある。
【００１１】
自律走行ロボットを自律走行させる確実性の観点からは、自律走行ロボットの車体形状は円形が理想であるが、デザイン等のハードウェアの制約により車体形状を円形にできない場合がある。円形でない車体形状の場合、図２６に示したように、狭路１１５に進入したものの、その通路１１５内で旋回できないことにより、目的の走行を達成できなくなる。
【００１２】
この課題に対し、自装置の位置と、周囲の障害物の位置とを示す環境地図を用いた事前知識により解決する方法が考えられる。走行前に、予め狭い場所を環境地図に記録しておくことで、自装置が旋回不能である狭路に侵入しないよう走行経路の計画を立てることができる。
【００１３】
しかし、自律走行ロボットが走行中に環境地図に記録がない障害物が存在した場合、当該環境地図に記録がない障害物によって通路が狭くなり、旋回不可能な狭路が発生する可能性がある。そのため、自律走行ロボットは、走行中に、周囲の障害物の位置を計測することで狭路判定を行いながら通路を走行する必要がある。
【００１４】
図２７は、従来の自律走行ロボットが走行している通路内に、距離が短いボトルネックが存在している様子を表す図である。図２７に示す壁１１５により挟まれた通路幅Ｈ１は、自律走行ロボット２０１が旋回可能な幅であるとする。この通路内に、自律走行ロボット２０１の直進方向と平行な長さが短い障害物１１６が配されているとする。この障害物１１６間の幅Ｈ２は、自律走行ロボット２０１が通過することはできるものの、旋回することはできない幅であるとする。この通路において、障害物１１６が配されている領域は、幅が最も狭くなるボトルネック部分である。
【００１５】
自律走行ロボット２０１は、左右それぞれ一方向のみにレーザ光等を照射することで、左右の壁１１５との距離を計測している。そして、自律走行ロボット２０１が、障害物１１６間に差し掛かると、通路の大部分は自律走行ロボット２０１が旋回可能な幅Ｈ１であるにも関わらず、一時的に通路幅が狭くなっているに過ぎないボトルネック部分の幅Ｈ２を計測することにより、自装置が通過している通路は、旋回不可能な狭路であると判定してしまう。この結果、自律走行ロボット２０１は走行を停止したりするなど、初期の目的が達成されない。
【００１６】
図２８は、従来の自律走行ロボットが、動的障害物と壁との間を通過する様子を表す図である。また、壁１１５の近くに、人等の動的障害物１１７がたまたま存在している場合がある。動的障害物１１７における自律走行ロボット２０１の進行方向と平行な方向の長さＺＹは、自律走行ロボット２０１における進行方向の長さと比べて小さい。
【００１７】
自律走行ロボット２０１が、動的障害物１１７と壁１１５間に差し掛かると、自律走行ロボット２０１進行している通路の大部分は自律走行ロボット２０１が旋回可能な幅であるにも関わらず、たまたま壁１１５の近くに存在した動的障害物１１７により、通路幅が狭くなっているに過ぎない動的障害物１１７が存在する部分の幅Ｈ２を計測することにより、自装置が通過している通路は、旋回不可能な狭路であると判定してしまう。このため、自律走行ロボット２０１は、必要以上に走行可能範囲が限定されてしまうことになる。
【００１８】
本発明は、上記従来の問題点に鑑みなされたものであって、その目的は、安全に通路を進行すると共に、正確に狭路判定を行うことである。
【課題を解決するための手段】
【００１９】
上記の課題を解決するために、本発明の一態様に係る自律走行体は、複数方向へビームを照射することで、障害物の位置を特定するセンサ部と、自装置の位置を示す自己位置から上記障害物の位置まで延びる複数の第１のベクトルを作成する第１のベクトル作成部と、上記複数の第１のベクトルのうち所定の基準距離より短い各第１のベクトルそれぞれについて、当該第１のベクトルの延伸方向であって、当該第１のベクトルと上記基準距離との差分だけ上記自己位置から離れる向きに延びる第２のベクトルを作成する第２のベクトル作成部と、上記各第２のベクトルのうち、自装置の直進方向に対し直交する左右方向の成分ベクトルの向きが同じ第２のベクトル同士を合成し、互いに向きが異なる第１及び第２の合成ベクトルを作成する合成ベクトル作成部と、上記第１及び第２の合成ベクトルそれぞれの上記左右方向の成分ベクトルの絶対値の和が、所定の第１の閾値を超えるか否かを判定する判定部とを備える。
【００２０】
上記の課題を解決するために、本発明の一態様に係る自律走行体は、複数方向へビームを照射することで、障害物の位置を特定するセンサ部と、自装置が複数の障害物間を通過する場合、当該複数の障害物における自装置の進行方向に平行な距離が、所定の長さを超えるか否かを判定する判定部と、上記複数の障害物における自装置の進行方向に平行な長さが、上記所定の長さを超えると上記判定部が判定すると、自装置の進行を停止する走行制御部とを備える。
【００２１】
上記の課題を解決するために、本発明の一態様に係る自律走行体の狭路判定方法は、複数方向へビームを照射することで、障害物の位置を特定する位置特定ステップと、自装置の位置を示す自己位置から上記障害物の位置まで延びる複数の第１のベクトルを作成する第１のベクトル作成ステップと、上記複数の第１のベクトルのうち所定の基準距離より短い各第１のベクトルそれぞれについて、当該第１のベクトルの延伸方向であって、当該第１のベクトルと上記基準距離との差分だけ上記自己位置から離れる向きに延びる第２のベクトルを作成する第２のベクトル作成ステップと、上記各第２のベクトルのうち、自装置の直進方向に対し直交する左右方向の成分ベクトルの向きが同じ第２のベクトル同士を合成し、互いの向きが異なる第１及び第２の合成ベクトルを作成する合成ベクトルステップと、上記第１及び第２の合成ベクトルそれぞれの上記左右方向の成分ベクトルの絶対値の和が、所定の第１の閾値を超えるか否かを判定する判定ステップとを有する。
【発明の効果】
【００２２】
本発明の一態様によれば、安全に通路を進行すると共に、正確に狭路判定を行うという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態１に係るロボットの構成を表すブロック図である。
【図２】本発明の実施形態１に係るロボットの構成を概略的に表す平面図である。
【図３】本発明の実施形態１に係るロボットと、周囲の壁との関係を概略的に示した図である。
【図４】本発明の実施形態１に係るロボットのＬＲＦがレーザ光を照射している様子を表す図である。
【図５】本発明の実施形態１に係るロボットのＬＲＦが周囲の壁の位置を特定している様子を表す図である。
【図６】本発明の実施形態１に係るロボットのＬＲＦが検出した距離データを表す図である。
【図７】本発明の実施形態１に係るロボットが環境地図ベクトルを作成している様子を表す図である。
【図８】本発明の実施形態１に係るロボットが壁距離ベクトルを作成している様子を表す図である。
【図９】環境地図ベクトルから壁距離ベクトルを作成するための基準距離を表す図である。
【図１０】本発明の実施形態１に係るロボットが右合成壁距離ベクトルを作成している様子を表す図である。
【図１１】本発明の実施形態１に係るロボットが左合成壁距離ベクトルを作成している様子を表す図である。
【図１２】本発明の実施形態１に係るロボットが狭路判定を行っている様子を表す図である。
【図１３】一定の長さを有する障害物間をロボットが走行している様子を表す図である。
【図１４】本発明の実施形態２に係るロボットの構成を表すブロック図である。
【図１５】本発明の実施形態２に係るロボットが移動している様子を表す図である。
【図１６】本発明の実施形態２に係るロボットが作成する合成環境地図を表す図である。
【図１７】本発明の実施形態２に係るロボットが各基準位置毎に合成壁距離ベクトルを作成している様子を表す図である。
【図１８】本発明の実施形態３に係るロボットの構成を表すブロック図である。
【図１９】本発明の実施形態３に係るロボットが右合成壁距離ベクトルを作成している様子を表す図である。
【図２０】本発明の実施形態３に係るロボットが左合成壁距離ベクトルを作成している様子を表す図である。
【図２１】本発明の実施形態４に係るロボットの構成を表すブロック図である。
【図２２】本発明の実施形態４に係るロボットが狭路判定を行っている様子を表す図である。
【図２３】従来の自律走行ロボットの構成を表す図である。
【図２４】従来の自律走行ロボットの課題を説明する図である。
【図２５】（ａ）は、車体形状が円形である自律走行ロボットが狭路に進入した様子を表す図であり、（ｂ）は、自律走行ロボットが進入した狭路内で旋回している様子を表す図である。
【図２６】（ａ）は、車体形状が非円形である自律走行ロボットが狭路に進入した様子を表す図であり、（ｂ）は、自律走行ロボットが進入した狭路内で旋回しようとしている様子を表す図である。
【図２７】壁までの距離を測定しながら狭路内を走行している自律走行ロボットの様子を表す図である。
【図２８】壁と動的障害物との間を走行している自律走行ロボットの様子を表す図である。
【発明を実施するための形態】
【００２４】
〔実施形態１〕
以下、本発明の実施の形態について、詳細に説明する。
【００２５】
（ロボット１の構成）
まず、図２を用いて、ロボット（自律走行体）１の構成について説明する。図２は、本発明の実施形態１に係るロボット１の構成を概略的に表す平面図である。ロボット１は、車両型の自律走行が可能な装置であり、床上の予め設定された限られた移動領域内を任意に移動する。ロボット１の一例としては清掃用のロボットであるが、これに限定されるものではなく、例えば、空気清浄機器、撮影機器、各種ロボット機器（例えば、警備ロボット、家事支援ロボット、動物型ロボット等）に対しても本発明を適用することができる。
【００２６】
ロボット１は、箱型の本体１１と、１対の対向する駆動輪１２ａ・１２ｂと、キャスタ１３とを備える対向２輪型の移動装置である。これらの駆動輪１２a・１２ｂとキャスタ１３とが本体１１を水平に支持する。さらに、本体１１の内部には、駆動輪１２ａ・１２ｂをそれぞれ駆動するモータ１４ａ・１４ｂと、駆動輪１２ａ・１２ｂの回転数をそれぞれ検出するためのエンコーダ１５ａ・１５ｂと、駆動輪１２ａ・１２ｂを駆動するための制御信号を作成し、モータ１４ａ・１４ｂにその制御信号を送信する演算部２０と、これらの構成要素に電力を供給するためのバッテリー１７とが備えられている。なお、図示しないが、演算部２０内部に備えられた記憶部であるメモリなどの記憶領域には、制御信号に基づいてロボット１の移動速度や移動方向、移動距離などを制御するためのプログラムとともに、移動領域の形状及び大きさがマップ情報として記憶されている。
【００２７】
さらに、本体１１の前面には、ロボット１の進行方向の前方及び側方の環境情報を認識するためのＬＲＦ（laser range finder:レーザレンジファインダ）２が設けられている。ＬＲＦ（センサ部）２は、詳細な構造については省略するが、本体１１の前方に対して所定の広がり角度でレーザ光（ビーム）を照射するための光源と、光源より照射されたレーザ光の反射光を受光するための受光部とを備えている。そして、レーザ光を照射した角度と、反射するまでに要した時間とに基づいて、レーザ光を反射した障害物の位置を検出するという、いわゆるＴＯＦ（Time of flight）の原理による物体検知（センシング）が行われる。
【００２８】
一例として、ＬＲＦ１２の左右方向の視野は、ロボット１の進行方向前方（Ｙ軸上のプラス方向）を０度とすると左右１００度であって、ＬＲＦ２は１度ごとに距離を計測し、各角度毎に距離データの出力が可能である。つまり、ＬＲＦ２が計測する距離データ１式は−１００度（Ｘマイナス方向）〜０度〜＋１００度（Ｘプラス方向）の合計２０１件の距離データから構成される。ＬＲＦ１２は、計測周期のたびに、距離データ１式を演算部２０へ出力する。ＬＲＦ１２の計測周期は、一例として、５０ｍｓである。なお、上述した、ＬＥＦ１２が距離データを計測する角度や計測周期は一例であり、上述した数値に限定されるものではない。このＬＲＦ２が計測する距離データは後述する。
【００２９】
また、ロボット１は、自己の位置を取得するための自己位置取得部を備えている。この自己位置取得部は、前述したエンコーダ１５ａ・１５ｂ及び演算部２０とから構成されている。すなわち、エンコーダ１５ａ・１５ｂで検知された駆動輪１２ａ・１２ｂの回転数を演算部２０において積算することで、ロボット１の移動した速度や距離などの情報を求め、これらの情報から、移動領域内におけるロボット１の自己位置（オドメトリ位置）を算出する。
【００３０】
そして、これらの自己位置取得部より得られた自己位置候補としての自己位置候補情報は、ＬＲＦ２により得られる距離データに基づいて適宜修正され、演算部２０により、距離データに自己位置を反映させた環境地図が作成される。なお、この環境地図の作成方法については後述する。
【００３１】
このように構成されたロボット１は、１対の駆動輪１２ａ・１２ｂの駆動量をそれぞれ独立に制御することで、直進や曲線移動（旋回）、後退、同じ位置での回転（両車輪の中点を中心とした旋回）などの移動動作を行うことができる。そして、ロボット１は、移動場所を指定する外部に設けられたＰＣ（Personal Computer）等（図示せず）からの指令にしたがって、移動領域内の指定された目的地までの移動経路を自律的に作成し、その移動経路に追従するように移動することで、目的地に到達する。なお、移動経路の自律的な作成は演算部２０において実行されるが、ここでは説明を省略する。
【００３２】
（ロボット１の動作）
図１は、本発明の実施形態１に係るロボット１の構成を表すブロック図である。なお、図１では、図２に示した一対の、駆動輪１２ａ・１２ｂ、モータ１４ａ・１４ｂ及びエンコーダ１５ａ・１５ｂを、それぞれ、駆動輪１２、モータ１４、及びエンコーダ１５と表している。
【００３３】
演算部２０は、自己位置検出部２１と、環境地図作成部（地図作成部）２２と、環境地図ベクトル距離計算部（第１のベクトル作成部）２３と、壁距離ベクトル距離計算部（第２のベクトル作成部）２４と、合成壁距離ベクトル距離計算部（合成ベクトル作成部）２５と、狭路判定部（判定部）２６と、走行制御部２７とを、機能ブロックとして備えている。当該各機能ブロックの詳細な説明は後述する。
【００３４】
図３は、本発明の実施形態１に係るロボット１と、周囲の壁５との関係を概略的に示した図である。ロボット１の動作を説明する前に、図３を用いて、以降の図面おいて用いる座標、ＬＲＦ２の位置及び基準位置Ｅについて説明する。
【００３５】
ロボット１の自己位置を表す基準位置Ｅ（後述する）と、周囲の壁５の位置とを表す環境地図Ｍ（後述する）上において、図３に示すようにＸＹ座標をとる。
【００３６】
ロボット１の直進方向への延伸軸をＹ軸とし、直進方向のうちロボット１の前進方向をＹ軸プラス方向、ロボット１の後進方向をＹ軸マイナス方向とする。平面視したとき、ロボット１の進行方向と垂直な方向をＸ軸方向とし、ロボット１から右側へ延びる方向をＸ軸プラス方向、ロボット１から左側へ延びる方向をＸ軸マイナス方向とする。
【００３７】
また、以降の説明では、ロボット１に、ＬＲＦ２の位置と、基準位置Ｅとの両方又は何れか一方を表す場合がある。
【００３８】
ＬＲＦ２の位置は、ロボット１が周囲の壁５との距離を計測する基準となる位置である。ロボット１は、ＬＲＦ２から周囲の壁１０５までの距離を計測し、自己と壁１０５との距離を距離データとして演算部２０へ出力する。
【００３９】
基準位置Ｅは、ロボット１が環境地図を作成するための基準位置である。ロボット１は、ＬＲＦ２が計測したＬＲＦ２から周囲の壁１０５までの距離を表す距離データと、ＬＲＦ２及び基準位置Ｅの距離とから、基準位置Ｅから周囲の壁１０５までの距離を地図状に表す環境地図を作成する。基準位置Ｅは、一例として、駆動輪１２ａと、駆動輪１２ｂとの中間点である。Ｘ軸とＹ軸の交点の位置は、この基準位置Ｅと一致するものとする。
【００４０】
なお、本実施形態では、ロボット１におけるＬＲＦ２が設けられている位置と、基準位置Ｅとは異なる位置であるが、ロボット１は、平面視したときに、ＬＲＦ２の位置と、基準位置Ｅとが同じ位置となるようにＬＲＦ２が配されていてもよい。
【００４１】
次に、図１に示したロボット１の各構成が行う処理について、ロボット１の動作と共に順に説明する。
【００４２】
＜距離データ測定＞
図４は、ロボット１のＬＲＦ２がレーザ光を照射している様子を表す図である。図５はＬＲＦ２が周囲の壁５の位置を特定している様子を表す図である。図６は、ＬＲＦ２が検出した距離データを表す図である。
【００４３】
図１に示すＬＲＦ２は、複数方向へレーザ光を照射することで、ロボット１と、ロボット１の周囲の壁５の位置との距離を計測するものである。これによって、ＬＲＦ２は、ロボット１の周囲の壁５の位置を特定する。
【００４４】
図４に矢印Ａとして示すように、ロボット１のＬＲＦ２は、レーザ光を放射状に照射する。そして、図５に示すように、ＬＲＦ２は、各角度毎に、レーザ光の反射光を受光するまでに要した時間を算出し、点Ｐに示すように、各角度毎に壁５の位置を検出する。図６に示すように、ＬＲＦ２は、ＬＲＦ２の位置から、各点Ｐに示される各角度毎の壁５の位置までの距離によって、壁５などの障害物の形状が表された距離データを環境地図作成部２２へ出力する。
【００４５】
＜自己位置候補の算出＞
図１に示す自己位置検出部２１は、エンコーダ１５から、駆動輪１２の回転数を示す回転数情報を取得すると、当該回転数情報が示すエンコーダ１５の回転数から、オドメトリにより、移動領域内における自己位置を表す候補である自己位置候補を算出する。自己位置検出部２１は、算出した自己位置候補を示す自己位置候補情報を環境地図作成部２２へ出力する。
【００４６】
＜環境地図作成及び環境地図ベクトル距離計算＞
図７は、ロボット１が環境地図ベクトルを作成している様子を表す図である。
【００４７】
図１に示す環境地図作成部２２は、ＬＲＦ２から距離データを取得し、自己位置検出部２１から自己位置候補情報を取得すると、ロボット１の周囲の壁５の位置と、自己位置である基準位置Ｅとを示す環境地図Ｍを作成するものである。
【００４８】
図７に示すように、環境地図作成部２２は、ＬＲＦ２から取得した距離データと、自身が把握しているＬＲＦ２の地図（座標）上の位置、及び、自己位置検出部２１から取得した自己位置候補情報が示す自己位置から、地図上の基準位置Ｅを特定する。次に、環境地図作成部２２は、ＬＲＦ２の位置から各点Ｐ（各角度毎の壁５の位置）までの距離を示していた距離データから、基準位置Ｅから、各点Ｐ（各角度毎の壁５の位置）までの距離により壁５の形状が表された環境地図Ｍを作成する。この環境地図Ｍは、ロボット１の周囲の壁５の形状と、ロボット１の自己位置を表す基準位置Ｅとが表された地図である。
【００４９】
なお、環境地図Ｍは、ロボット１の移動を伴って得られる、ＬＲＦ２の複数の距離データを合成して作成されてもよい。この複数の距離データを合成して環境地図を得る方法は、後述する実施形態２にて説明する。
【００５０】
環境地図作成部２２は、作成した環境地図Ｍを表す環境地図情報を環境地図ベクトル距離計算部２３へ出力する。
【００５１】
図１に示す環境地図ベクトル距離計算部２３は、環境地図作成部２２から取得した環境地図情報が示す環境地図Ｍに基づき、基準位置Ｅから壁５の位置である各点Ｐまで延びる複数の環境地図ベクトル（第１のベクトル）Ｃを作成するものである。
【００５２】
図７に示すように、環境地図ベクトル距離計算部２３は、環境地図情報が示す環境地図Ｍに基づき、基準位置Ｅから、各点Ｐへの方向に向く環境地図ベクトルＣを、各方位毎に作成する。当該環境地図ベクトルＣの作成によって、各方位毎における基準位置Ｅから各点Ｐまでの距離である環境地図ベクトル距離が計算される。環境地図ベクトル距離計算部２３は、各点Ｐ毎に作成した環境地図ベクトルＣを示す環境地図ベクトル情報を壁距離ベクトル距離計算部２４へ出力する。
【００５３】
なお、環境地図ベクトル距離計算部２３は、全ての点Ｐにおける環境地図ベクトルＣを作成するのではなく、データ量を少なくするために、適宜、間引いて環境地図ベクトルＣを作成してもよい。
【００５４】
また、環境地図ベクトル距離計算部２３は、ロボット１の前方及び左右方向の全方向における環境地図ベクトルＣを作成するのではなく、目的に応じて、環境地図ベクトルＣを作成する方向を限定してもよい。例えば、ロボット１の前方の環境地図ベクトルＣは、狭路判定に不要である場合、除外することもできる。このロボット１の前方の環境地図ベクトルＣの作成を除外した場合を、後述する実施形態３にて説明する。
【００５５】
＜壁距離ベクトル距離計算＞
図８は、ロボット１が壁距離ベクトルを作成している様子を表す図である。図９は、環境地図ベクトルから壁距離ベクトルを作成するための基準距離を表す図である。図１０は、ロボット１が右合成壁距離ベクトルを作成している様子を表す図である。図１１は、ロボット１が左合成壁距離ベクトルを作成している様子を表す図である。
【００５６】
図１に示す壁距離ベクトル距離計算部２４は、環境地図ベクトル距離計算部２３から取得した環境地図ベクトル情報が示す環境地図ベクトルＣのうち、所定の基準距離Ｂより短い環境地図ベクトルＣＲ１〜ＣＲ４（図１０参照）及び環境地図ベクトルＣＬ１・ＣＬ２（図１１参照）それぞれについて、環境地図ベクトルＣＲ１〜ＣＲ４・ＣＬ１・ＣＬ２それぞれの延伸方向であって、環境地図ベクトルＣＲ１〜ＣＲ４・ＣＬ１・ＣＬ２と基準距離Ｂとの差分だけ基準位置Ｅから離れる向きに延びる壁距離ベクトル（第２のベクトル）Ｄを作成するものである。
【００５７】
図８及び図９に示すように、壁距離ベクトル距離計算部２４は、環境地図ベクトル距離計算部２３から環境地図ベクトル情報を取得すると、各点Ｐ毎の環境地図ベクトルＣに、予め設定された所定の基準距離Ｂを反映させた壁距離ベクトルＤを作成することで、当該壁距離ベクトルＤが示す距離である壁距離ベクトル距離を計算する。
【００５８】
基準距離Ｂは、ロボット１が、周囲の壁５などの障害物と接触せず、確実に、走行したり、旋回したりするために必要な幅を示す安全距離である。基準距離Ｂは、ロボット１の形状や駆動輪１２の位置などを考慮して、予め情報として壁距離ベクトル距離計算部２４に記憶しておけばよい。なお、基準距離Ｂは、ベクトルではなく、方向を持たない長さである。
【００５９】
壁距離ベクトルＤが示す距離は、ロボット１から壁５などの周囲の障害物までの距離（環境地図ベクトル距離）に、ロボット１の安全距離（基準距離Ｂ）を反映させた距離である。このように、環境地図ベクトルＣではなく壁距離ベクトルＤを用いて、ロボット１と、周囲の壁５等の障害物との距離を把握することで、ロボット１が通過しようとする通路が、単にロボット１が進入可能な幅を有するか否かの判定だけではなく、進入した通路内で旋回が可能な安全距離の幅を有するか否かも判定することができる。
【００６０】
図９に示すように、壁距離ベクトル距離計算部２４は、環境地図ベクトルＣから基準距離Ｂを減算することで、壁距離ベクトルＤを作成する。
【００６１】
図８に示すように、ロボット１の基準位置Ｅと、点Ｐを考慮すると、壁距離ベクトル距離計算部２４は、基準位置Ｅから、環境地図ベクトルＣとは逆向きに、（基準距離Ｂ）  −  （環境地図ベクトル距離）の大きさのベクトルである壁距離ベクトルＤを作成する。基準位置Ｅから点Ｐまでの距離が遠ければ、環境地図ベクトルＣは長くなり、壁距離ベクトルＤは短くなる。逆に、基準位置Ｅから点Ｐまでの距離が近ければ、環境地図ベクトルＣは短くなり、壁距離ベクトルＤは長くなる。
【００６２】
ただし、（基準距離Ｂ）  −  （環境地図ベクトル距離）  ＜  ０の場合、壁距離ベクトル距離計算部２４は、壁距離ベクトルＤの大きさを０とする。これについて、図１０及び図１１を用いて説明する。
【００６３】
図１０に、環境地図Ｍを用いて作成された右側の環境地図ベクトルを示す。図１０には、各点Ｐの例として、基準位置Ｅを中心に反時計回りに、点Ｐ１〜点Ｐ１３を示している。点Ｐ７は、ロボット１の進行方向前方に位置し、Ｙ軸上にある点であるとする。点Ｐ１〜点Ｐ６はロボット１の右側方及び右前方の壁５の位置（基準位置ＥよりＸプラス方向に位置する点Ｐ）を表している。このうち点Ｐ５〜点７は、基準位置Ｅとの距離が、基準距離Ｂより遠いものとする。
【００６４】
環境地図ベクトル距離計算部２３は、基準位置Ｅから、点Ｐ１〜点Ｐ６それぞれまでの環境地図ベクトルＣである環境地図ベクトルＣＲ１〜ＣＲ６を作成する。
【００６５】
壁距離ベクトル距離計算部２４は、環境地図ベクトル距離計算部２３が作成した環境地図ベクトルＣＲ１〜ＣＲ６のうち、長さが基準距離Ｂより短い環境地図ベクトルＣＲ１〜ＣＲ４それぞれについて、基準距離Ｂを減算した差を演算し、基準位置Ｅから、当該差分の長さであって、環境地図ベクトルＣＲ１〜ＣＲ４とは逆向きの壁距離ベクトルＤそれぞれである壁距離ベクトルＤＲ１〜ＤＲ４を作成する。
【００６６】
壁距離ベクトルＤＲ１は、環境地図ベクトルＣＲ１とは逆向きに、基準距離Ｂと環境地図ベクトルＣＲ１との差分だけ、基準位置Ｅから延びるベクトルである。壁距離ベクトルＤＲ２は、環境地図ベクトルＣＲ２とは逆向きに、基準距離Ｂと環境地図ベクトルＣＲ２との差分だけ、基準位置Ｅから延びるベクトルである。壁距離ベクトルＤＲ３は、環境地図ベクトルＣＲ３とは逆向きに、基準距離Ｂと環境地図ベクトルＣＲ３との差分だけ、基準位置Ｅから延びるベクトルである。壁距離ベクトルＤＲ４は、環境地図ベクトルＣＲ４とは逆向きに、基準距離Ｂと環境地図ベクトルＣＲ４との差分だけ、基準位置Ｅから延びるベクトルである。
【００６７】
壁距離ベクトル距離計算部２４は、環境地図ベクトル距離計算部２３が作成した環境地図ベクトルＣＲ１〜ＣＲ６のうち、基準距離Ｂより長い環境地図ベクトルＣＲ５・ＣＲ６については、壁距離ベクトルＤの大きさを０とし、それぞれに対応する壁距離ベクトルＤを作成しない。
【００６８】
図１１に示すように、環境地図Ｍを用いて作成された左側の環境地図ベクトルについても同様である。図１１に示すように、点Ｐ８〜点Ｐ１３はロボット１の左前方及び左側方の壁５の位置（基準位置ＥよりＸマイナス方向に位置する点Ｐ）を表している。このうち点Ｐ８〜点１１は、基準位置Ｅとの距離が、基準距離Ｂより遠いものとする。
【００６９】
環境地図ベクトル距離計算部２３は、点Ｐ１３〜点Ｐ８それぞれについての環境地図ベクトルＣである環境地図ベクトルＣＬ１〜ＣＬ６を作成する。
【００７０】
壁距離ベクトル距離計算部２４は、環境地図ベクトル距離計算部２３が作成した環境地図ベクトルＣＬ１〜ＣＬ６のうち、長さが基準距離Ｂより短い環境地図ベクトルＣＬ１〜ＣＬ２それぞれについて、基準距離Ｂを減算した差を演算し、基準位置Ｅから、当該差分の長さであって、環境地図ベクトルＣＬ１〜ＣＬ２とは逆向きの壁距離ベクトルＤそれぞれである壁距離ベクトルＤＬ１・ＤＬ２を作成する。
【００７１】
壁距離ベクトルＤＬ１は、環境地図ベクトルＣＬ１とは逆向きに、基準距離Ｂと環境地図ベクトルＣＬ１との差分だけ、基準位置Ｅから延びるベクトルである。壁距離ベクトルＤＬ２は、環境地図ベクトルＣＬ２とは逆向きに、基準距離Ｂと環境地図ベクトルＣＬ２との差分だけ、基準位置Ｅから延びるベクトルである。
【００７２】
壁距離ベクトル距離計算部２４は、環境地図ベクトル距離計算部２３が作成した環境地図ベクトルＣＬ１〜ＣＬ６のうち、基準距離Ｂより長い環境地図ベクトルＣＬ３〜ＣＬ６については、壁距離ベクトルＤの大きさを０とし、それぞれに対応する壁距離ベクトルＤを作成しない。
【００７３】
このように、壁距離ベクトル距離計算部２４は、壁距離ベクトルＤ（ここでは壁距離ベクトルＤＲ１〜ＤＲ４・ＤＬ１・ＤＬ２）を作成することによって、壁距離ベクトルＤ（ここでは壁距離ベクトルＤＲ１〜ＤＲ４・ＤＬ１・ＤＬ２）の長さである壁距離ベクトル距離をそれぞれ計算する。
【００７４】
壁距離ベクトル距離計算部２４は、このように作成した壁距離ベクトルＤ（ここでは壁距離ベクトルＤＲ１〜ＤＲ４・ＤＬ１・ＤＬ２）を示す情報である壁距離ベクトル情報を合成壁距離ベクトル距離計算部２５へ出力する。
【００７５】
なお、本実施形態では、図９に示したように、壁距離ベクトルＤの長さを示す壁距離ベクトル距離を、長さが一定である基準距離Ｂを用いて、（基準距離Ｂ）  −  （環境地図ベクトルＣの長さ）により演算したが、壁距離ベクトル距離の演算方法はこれに限定されず、例えば、基準距離Ｂを方向によって変化させてもよいし、さらに、ロボット１の走行状態に応じて、基準距離Ｂを動的に変化させてもよい。
【００７６】
＜合成壁距離ベクトル距離計算＞
図１に示す合成壁距離ベクトル距離計算部２５は、壁距離ベクトル情報を壁距離ベクトル距離計算部２４から取得すると、壁距離ベクトル情報が示す壁距離ベクトルＤのうち、Ｘ軸方向（左右方向）の成分ベクトルの向きが同じベクトル同士（図１０に示す壁距離ベクトルＤＲ１〜ＤＲ４同士と、図１１に示す壁距離ベクトルＤＬ１・ＤＬ２同士）を合成し、互いの向きが異なる右合成壁距離ベクトル（第１の合成ベクトル）ＦＲと、左合成壁距離ベクトル（第２の合成ベクトル）ＦＬとを作成するものである。
【００７７】
図１０及び図１１に示すように、合成壁距離ベクトル距離計算部２５は、壁距離ベクトル距離計算部２４から、壁距離ベクトル情報を取得すると、左右の合成壁距離ベクトルを作成する。
【００７８】
図１０に示すように、合成壁距離ベクトル距離計算部２５は、壁距離ベクトル距離計算部２４から取得した壁距離ベクトル情報のうち、ロボット１の右側の壁距離ベクトルＤＲ１〜ＤＲ４を合成することで、右合成壁距離ベクトルＦＲを作成する。
【００７９】
図１１に示すように、合成壁距離ベクトル距離計算部２５は、壁距離ベクトル距離計算部２４から取得した壁距離ベクトル情報のうち、ロボット１の左側の壁距離ベクトルＤＬ１・ＤＬ２を合成することで、左合成壁距離ベクトルＦＬを作成する。
【００８０】
ここで、合成壁距離ベクトル距離計算部２５が行う合成は、壁距離ベクトルＤＲ１〜ＤＲ４の代表ベクトル及び壁距離ベクトルＤＬ１・ＤＬ２の代表ベクトルを作成することである。合成壁距離ベクトル距離計算部２５は、壁距離ベクトルＤＲ１〜ＤＲ４及び壁距離ベクトルＤＬ１・ＤＬ２それぞれを足し合わせることで、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬを作成する。
【００８１】
右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬは、ロボット１から左右及び前方の壁までの距離が近いほど長くなる。
【００８２】
そして、合成壁距離ベクトル距離計算部２５は、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬを示す情報である左右合成壁距離ベクトル情報を狭路判定部２６へ出力する。
【００８３】
＜狭路判定＞
図１に示す狭路判定部２６は、合成壁距離ベクトル距離計算部２５から左右合成壁距離ベクトル情報を取得すると、左右合成壁距離ベクトル情報が示す右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬそれぞれのＸ軸方向（左右方向）の成分ベクトルである左右方向成分ベクトルＦＲａ及び左右方向成分ベクトルＦＬａを抽出し、左右方向成分ベクトルＦＲａ及び左右方向成分ベクトルＦＬａの絶対値の和が、予め設定された所定の第１の閾値を超えるか否かを判定するものである。このようにして、狭路判定部２６は、ロボット１が通過しようとする通路が、狭路であるか否かの狭路判定を行う。
【００８４】
図１２は、ロボット１が狭路判定を行っている様子を表す図である。図１２に示すように、狭路判定部２６は、合成壁距離ベクトル距離計算部２５から左右合成壁距離ベクトル情報を取得すると、右合成壁距離ベクトルＦＲを、左右方向成分ベクトルＦＲａと、前後方向成分ベクトルＦＲｂとに分解する。また、狭路判定部２６は、左合成壁距離ベクトルＦＬを、左右方向成分ベクトルＦＬａと、前後方向成分ベクトルＦＬｂとに分解する。
【００８５】
そして、狭路判定部２６は、左右方向成分ベクトルＦＲａと、左右方向成分ベクトルＦＬａとの絶対値の和を演算し、当該絶対値の和が、予め設定された所定の第１の閾値を超えるか否かを判定する。
【００８６】
狭路判定部２６は、上記絶対値の和が、上記所定の第１の閾値を超えた場合、ロボット１が走行する通路は狭路であると判定する。一方、狭路判定部２６は、上記絶対値の和が、上記所定の第１の閾値以下である場合、ロボット１が走行する通路は狭路ではないと判定する。
【００８７】
狭路判定部２６は、狭路であるか否かを判定した判定結果を、走行制御部２７へ出力する。これにより、走行制御部２７は、ロボット１が適切に走行するように、モータ１４の回転速度を制御する。
【００８８】
なお、狭路判定部２６は、狭路判定をする際、左右方向成分ベクトルＦＲａと、左右方向成分ベクトルＦＬａとのそれぞれの絶対値の和が、上記所定の第１の閾値を超える場合、狭路と判定していたが、これに限定されず、さらに、前後方向成分ベクトルＦＲｂ・ＦＬｂを狭路判定に含めてもよい。この前後方向成分ベクトルＬＲｂ・ＦＬｂを狭路判定に含める場合を後述する実施形態４として説明する。
【００８９】
（ロボット１による利点）
ロボット１によると、図２７及び図２８を用いて説明した、左右それぞれ一方向にのみ障害物との距離を計測した結果から狭路判定をする自律走行ロボット２０１とは異なり、狭路判定部２６は、合成壁距離ベクトル距離計算部２５が複数の壁距離ベクトルＤを合成することで作成した右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬのＸ軸方向成分である左右方向成分ベクトルＦＲａ及び左右方向成分ベクトルＦＬａの絶対値の和が、所定の第１の閾値を超えるか否かを判定している。これによって、狭路判定部２６は狭路判定をしている。このため、ＬＲＦ２が特定した左右方向の壁５の位置（点Ｐの位置）が平均化される。
【００９０】
これにより、ロボット１が通過する通路幅を計測するに際し、通路中において、ロボット１の直進方向に平行な方向の距離が短く、一時的に通路幅が狭くなっているに過ぎない箇所であるボトルネック部分や、たまたま、通路中に存在することで通路幅が狭くなっているに過ぎない動的障害物などが存在する部分の通路幅を計測したとしても、これら、ボトルネック部分や、動的障害物などが存在する部分によって、通路全体が、自装置が確実に通過や旋回ができない狭路であると判定してしまうことを防止することができる。このため、ロボット１は、正確に狭路判定を行うことができる。
【００９１】
加えて、ロボット１において狭路判定部２６は、複数の環境地図ベクトルＣを合成した合成ベクトルによって狭路判定をするのではない。
【００９２】
すなわち、壁距離ベクトル距離計算部２４が、複数の環境地図ベクトルＣのうち所定の基準距離Ｂより短い環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２それぞれについて、環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２の延伸方向であって、環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２と基準距離Ｂとの差分だけ基準位置Ｅから離れる向きに延びる壁距離ベクトルＤを作成する。そして、合成壁距離ベクトル距離計算部２５は、壁距離ベクトルＤのうち、Ｘ軸方向の成分ベクトルの向きが同じである、壁距離ベクトルＤＲ１〜ＤＲ４同士を合成することで右合成壁距離ベクトルＦＲを作成し、壁距離ベクトルＤＬ１・ＤＬ２同士を合成することで、左合成壁距離ベクトルＦＬを作成する。
【００９３】
そして、狭路判定部２６は、この右合成壁距離ベクトルＦＲの左右方向成分ベクトルＦＲａを抽出し、左合成壁距離ベクトルＦＬの左右方向成分ベクトルＦＬａを抽出し、左右方向成分ベクトルＦＲａの絶対値と、左右方向成分ベクトルＦＬａの絶対値の和が、所定の第１の閾値を超えるか否かを判定する。このようにして、狭路判定部２６は、狭路判定を行っている。
【００９４】
基準距離Ｂを、ロボット１が確実に通過や旋回できる安全距離とすることで、狭路判定部２６は、安全距離を確保して狭路判定をすることができる。この結果、ロボット１は、通路を確実に通過したり、通路内で旋回したりすることができるため、より安全に、通路を進行することができる。
【００９５】
図１３は、一定の長さＬＹを有する複数の障害物５Ａ・５Ｂ間をロボット１が走行している様子を表す図である。
【００９６】
上述のように、ロボット１は、通路中において、ボトルネック部分や動的障害物が存在する部分など、ロボット１の進行方向に平行な距離が短い障害物によって旋回できない部分が構成されていても狭路と判定しない。
【００９７】
換言すると、狭路判定部２６は、ロボット１が障害物５Ａ・５Ｂ間を通過する場合、障害物５Ａ・５Ｂにおけるロボット１の進行方向に平行な長さである長さＬＹが、所定の長さを超えるか否かを判定する。そして、障害物５Ａ・５Ｂの長さＬＹが、所定の長さを超えると狭路判定部２６が判定した場合、障害物５Ａ・５Ｂ間の通路は、狭路であるため、走行制御部２７は、モータ１４を停止させることでロボット１の進行を停止させる。
【００９８】
この具体的な処理の一例を説明する。上述した狭路判定部２６は、ロボット１が所定距離移動するたびに、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬそれぞれの左右方向成分ベクトルＦＲａ・ＦＬａの絶対値の和が、上記第１の閾値を超えるか否かを判定する。
【００９９】
このため、狭路判定部２６は、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬそれぞれの左右方向成分ベクトルＦＲａ・ＦＬａの絶対値の和が、所定回数、連続して上記第１の閾値を超えると判定した場合、その旨を走行制御部２７へ出力し、走行制御部２７がモータ１４を停止させることで、ロボット１の走行を停止させる。
【０１００】
これにより、ロボット１が通過する通路幅が狭くなっている部分である障害物５Ａ・５Ｂの長さＬＹが、一定の距離以上続いているか否かを正確に判定することができるため、障害物５Ａ・５Ｂの長さＬＹが、所定の長さを超えるほど続いている場合にだけ、障害物５Ａ・５Ｂ間が狭路であると判定し、ロボット１を安全に停止させることができる。
【０１０１】
狭路判定部２６は、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬそれぞれの左右方向成分ベクトルＦＲａ・ＦＬａの絶対値の和が、所定回数、連続して上記第１の閾値を超えないと判定すると、長さＬＹは一定の距離未満であるとみなし、ロボット１の走行を停止させず、そのまま障害物５Ａ・５Ｂ間を通過させる。
【０１０２】
〔実施形態２〕
本発明の実施形態２について、図１４〜図１７に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施形態１にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０１０３】
図１４は、本発明の実施形態２に係るロボット１Ａの構成を表すブロック図である。ロボット１Ａは、ロボット１（図１）が備えていた演算部２０に換えて演算部２０Ａを備える点で、ロボット１と相違する。ロボット１Ａの他の構成はロボット１と同様である。
【０１０４】
演算部２０Ａは、演算部２０が備えていた環境地図ベクトル距離計算部２３、壁距離ベクトル距離計算部２４、合成壁距離ベクトル距離計算部２５及び狭路判定部２６に換えて、環境地図ベクトル距離計算部２３Ａ、壁距離ベクトル距離計算部２４Ａ、合成壁距離ベクトル距離計算部２５Ａ及び狭路判定部２６Ａを備え、さらに、合成環境地図作成部（合成地図作成部）２８Ａを備えている。演算部２０Ａの他の構成は演算部２０と同様である。
【０１０５】
図１５は、ロボット１Ａが移動している様子を表す図である。図１５に示すように、ある時刻ｔ１の位置におけるロボット１ＡのＬＲＦ２及び基準位置Ｅを、ＬＲＦ２ｔ１及び基準位置Ｅｔ１とする。そして、時刻ｔ１から所定時間が経過した時刻ｔ２において、時刻ｔ１の位置から矢印Ｇ１だけ移動した位置におけるロボット１ＡのＬＲＦ２及び基準位置Ｅを、ＬＲＦ２ｔ２及び基準位置Ｅｔ２とする。さらに、時刻ｔ２から所定時間が経過した時刻ｔ３において、時刻ｔ２の位置から矢印Ｇ２だけ移動した位置におけるロボット１ＡのＬＲＦ２及び基準位置Ｅを、ＬＲＦ２ｔ３及び基準位置Ｅｔ３とする。
【０１０６】
図１６は、本発明の実施形態２に係るロボット１Ａが作成する合成環境地図Ｍ０を表す図である。
【０１０７】
環境地図作成部２２は、逐次、ＬＲＦ２から距離データを取得すると共に、自己位置検出部２１から自己位置候補情報を取得する。環境地図作成部２２は、ロボット１が所定の距離を移動する度に、ＬＲＦ２から取得した距離データと、自己位置検出部２１から取得した自己位置候補情報とから、環境地図を作成していく。環境地図作成部２２は、ロボット１Ａの移動量を、エンコーダ１５から取得する回転数から演算する。
【０１０８】
図１６に示すように、時刻ｔ１のとき、環境地図作成部２２は、そのときの基準位置Ｅｔ１と、ＬＲＦ２が計測した距離データが示す各角度毎の壁５の位置である点Ｐ１１〜Ｐ１８とから、環境地図Ｍ１を作成し、作成した環境地図Ｍ１を表す環境地図情報を合成環境地図作成部２８Ａへ出力する。
【０１０９】
そして、ロボット１が所定の距離を移動し、時刻ｔ２のとき、環境地図作成部２２は、そのときの基準位置Ｅｔ２と、ＬＲＦ２が計測した距離データが示す各角度毎の壁５の位置である点Ｐ２１〜Ｐ２６とから、環境地図Ｍ２を作成し、作成した環境地図Ｍ２を表す環境地図情報を合成環境地図作成部２８Ａへ出力する。
【０１１０】
さらに、ロボット１が所定の距離を移動し、時刻ｔ３のとき、環境地図作成部２２は、そのときの基準位置Ｅｔ３と、ＬＲＦ２が計測した距離データが示す各角度毎の壁５の位置である点Ｐ３１〜Ｐ３５とから、環境地図Ｍ３を作成し、作成した環境地図Ｍ２を表す環境地図情報を合成環境地図作成部２８Ａへ出力する。
【０１１１】
なお、各時刻におけるＬＲＦ２が計測する各点の個数は任意で設定すればよい。また、各時刻において環境地図作成部２２が環境地図を作成する方法は、実施形態１で説明したものと同様である。
【０１１２】
図１６に示すように、合成環境地図作成部２８Ａは、環境地図作成部２２から環境地図Ｍ１〜Ｍ３を取得すると、環境地図Ｍ１に示された点Ｐ１１〜点Ｐ１８によって表された形状と、環境地図Ｍ２に示された点Ｐ２１〜点Ｐ２６によって表された形状と、環境地図Ｍ３に示された点Ｐ３１〜点Ｐ３５によって表された形状とを重ね合せることで、環境地図Ｍ１〜Ｍ３が合成された合成環境地図Ｍ０を作成する。合成環境地図作成部２８Ａは、作成した合成環境地図Ｍ０を表す合成環境地図情報を環境地図ベクトル距離計算部２３Ａへ出力する。
【０１１３】
合成環境地図作成部２８Ａは、環境地図作成部２２から所定の個数の環境地図を取得する度に、合成環境地図を作成する。換言すると、合成環境地図作成部２８Ａは、ロボット１が所定の距離を移動する度に、複数の環境地図を合成し、合成環境地図（合成地図）Ｍ０を作成する。なお、図１６の例では、合成環境地図作成部２８Ａは、３個の環境地図Ｍ１〜Ｍ３から１つの合成環境地図Ｍ０を作成しているが、１つの合成環境地図Ｍ０を構成する環境地図の個数は、３個に限定されるものではなく２個であってもよいし、４個以上であってもよい。
【０１１４】
環境地図ベクトル距離計算部２３Ａは、合成環境地図情報が示す合成環境地図Ｍ０に基づき、各基準位置Ｅｔ１・Ｅｔ２・Ｅｔ３毎に、所定の個数分の各点への方向に向く環境地図ベクトルを作成する。図１６の例では、環境地図ベクトル距離計算部２３Ａは、基準位置Ｅｔ１から点Ｐ１１〜点Ｐ１８それぞれへ向く環境地図ベクトルを作成し、基準位置Ｅｔ２から点Ｐ２１〜点Ｐ２６それぞれへ向く環境地図ベクトルを作成し、基準位置Ｅｔ３から点Ｐ３１〜点Ｐ３５それぞれの方へ向く環境地図ベクトルを作成している。
【０１１５】
環境地図ベクトル距離計算部２３Ａが、各基準位置Ｅｔ１〜Ｅｔ３毎に環境地図ベクトルを作成することによって、基準位置Ｅｔ１から各点Ｐ１１〜点Ｐ１８までの距離である環境地図ベクトル距離、基準位置Ｅｔ２から各点Ｐ２１〜点Ｐ２６までの距離である環境地図ベクトル距離、基準位置Ｅｔ３から各点Ｐ３１〜点Ｐ３５までの距離である環境地図ベクトル距離が計算される。環境地図ベクトル距離計算部２３Ａは、各基準位置Ｅｔ１〜Ｅｔ３毎に作成した環境地図ベクトルを示す環境地図ベクトル情報を壁距離ベクトル距離計算部２４Ａへ出力する。
【０１１６】
壁距離ベクトル距離計算部２４Ａは、環境地図ベクトル距離計算部２３Ａから環境地図ベクトル情報を取得すると、各基準位置Ｅｔ１〜Ｅｔ３毎に、図８〜図１１を用いて説明した方法により、（基準距離Ｂ）  −  （環境地図ベクトル距離）の大きさのベクトルを壁距離ベクトルとして作成する。壁距離ベクトルの向きは、環境地図ベクトルの向きとは逆向きになる。基準位置Ｅｔ１〜Ｅｔ３における環境地図ベクトルが長ければ、壁距離ベクトルは短くなる。逆に、基準位置Ｅｔ１〜Ｅｔ３における環境地図ベクトルが短ければ、壁距離ベクトルは長くなる。
【０１１７】
壁距離ベクトル距離計算部２４Ａは、各基準位置Ｅｔ１〜Ｅｔ３毎に作成した壁距離ベクトルを示す情報である壁距離ベクトル情報を合成壁距離ベクトル距離計算部２５Ａへ出力する。
【０１１８】
図１７は、ロボット１Ａが各基準位置Ｅｔ１〜Ｅｔ３毎に合成壁距離ベクトルを作成している様子を表す図である。なお、図１７では、図１６で表した点Ｐ１１〜Ｐ１８、点Ｐ２１〜点Ｐ２６及び点Ｐ３１〜点Ｐ３５を、単に点Ｐとして表している。
【０１１９】
合成壁距離ベクトル距離計算部２５Ａは、壁距離ベクトル距離計算部２４Ａから、壁距離ベクトル情報を取得すると、各基準位置Ｅｔ１〜Ｅｔ３毎に、図１０及び図１１を用いて説明した方法により、左右の合成壁距離ベクトルを作成する。
【０１２０】
基準位置Ｅｔ１において、合成壁距離ベクトル距離計算部２５Ａは、図１０を用いて説明した方法により、ロボット１Ａの右側の壁距離ベクトルを合成することで、右合成壁距離ベクトルＦＲｔ１を作成する。また、合成壁距離ベクトル距離計算部２５Ａは、図１１を用いて説明した方法により、ロボット１Ａの左側の壁距離ベクトルを合成することで、左合成壁距離ベクトルＦＬｔ１を作成する。
【０１２１】
さらに、基準位置Ｅｔ２において、合成壁距離ベクトル距離計算部２５Ａは、図１０を用いて説明した方法により、ロボット１Ａの右側の壁距離ベクトルを合成することで、右合成壁距離ベクトルＦＲｔ２を作成する。また、合成壁距離ベクトル距離計算部２５Ａは、図１１を用いて説明した方法により、ロボット１Ａの左側の壁距離ベクトルを合成することで、左合成壁距離ベクトルＦＬｔ２を作成する。
【０１２２】
そして、基準位置Ｅｔ３において、合成壁距離ベクトル距離計算部２５Ａは、図１０を用いて説明した方法により、ロボット１Ａの右側の壁距離ベクトルを合成することで、右合成壁距離ベクトルＦＲｔ３を作成する。また、合成壁距離ベクトル距離計算部２５Ａは、図１１を用いて説明した方法により、ロボット１Ａの左側の壁距離ベクトルを合成することで、左合成壁距離ベクトルＦＬｔ３を作成する。
【０１２３】
次に、合成壁距離ベクトル距離計算部２５Ａは、各基準位置Ｅｔ１〜Ｅｔ３における右合成壁距離ベクトルＦＲｔ１〜ＦＲｔ３及び左合成壁距離ベクトルＦＬｔ１〜ＦＬｔ３を示す情報である左右合成壁距離ベクトル情報を狭路判定部２６Ａへ出力する。
【０１２４】
狭路判定部２６Ａは、合成壁距離ベクトル距離計算部２５Ａから左右合成壁距離ベクトル情報を取得すると、各基準位置Ｅｔ１〜Ｅｔ３毎に、右合成壁距離ベクトル及び左合成壁距離ベクトルをそれぞれ、左右方向ベクトルと、前後方向ベクトルとに分解し、各基準位置Ｅｔ１〜Ｅｔ３毎に左右方向ベクトルの絶対値の和を演算し、当該絶対値の和が、予め設定された所定の閾値を超えるか否かを判定する。これにより、狭路判定部２６Ａは、各基準位置Ｅｔ１〜Ｅｔ３毎に、ロボット１Ａが走行している通路は狭路であるか否かを判定する。
【０１２５】
具体的には、狭路判定部２６Ａは、基準位置Ｅｔ１において、右合成壁距離ベクトルＦＲｔ１を、左右方向成分ベクトルＦＲｔ１ａと、前後方向成分ベクトルＦＲｔ１ｂとに分解する。また、狭路判定部２６Ａは、左合成壁距離ベクトルＦＬｔ１を、左右方向成分ベクトルＦＬｔ１ａと、前後方向成分ベクトルＦＬｔ１ｂとに分解する。
【０１２６】
そして、狭路判定部２６Ａは、左右方向成分ベクトルＦＲｔ１ａと、左右方向成分ベクトルＦＬｔ１ａとの絶対値の和を演算し、当該絶対値の和が、予め設定された所定の閾値を超えるか否かを判定する。
【０１２７】
狭路判定部２６Ａは、上記絶対値の和が、上記所定の第１の閾値を超えた場合、ロボット１Ａが走行している通路は狭路であると判定する。一方、狭路判定部２６Ａは、上記絶対値の和が、上記所定の第１の閾値以下である場合、ロボット１Ａが走行している通路は狭路ではないと判定する。
【０１２８】
また、狭路判定部２６Ａは、基準位置Ｅｔ２において、右合成壁距離ベクトルＦＲｔ２を、左右方向成分ベクトルＦＲｔ２ａと、前後方向成分ベクトルＦＲｔ２ｂとに分解する。また、狭路判定部２６Ａは、左合成壁距離ベクトルＦＬｔ２を、左右方向成分ベクトルＦＬｔ２ａと、前後方向成分ベクトルＦＬｔ２ｂとに分解する。
【０１２９】
そして、狭路判定部２６Ａは、左右方向成分ベクトルＦＲｔ２ａと、左右方向成分ベクトルＦＬｔ２ａとの絶対値の和を演算し、当該絶対値の和が、予め設定された所定の第１の閾値を超えるか否かを判定する。
【０１３０】
狭路判定部２６Ａは、上記絶対値の和が、上記所定の第１の閾値を超えた場合、ロボット１Ａが走行している通路は狭路であると判定する。一方、狭路判定部２６Ａは、上記絶対値の和が、上記所定の第１の閾値以下である場合、ロボット１Ａが走行している通路は狭路ではないと判定する。
【０１３１】
さらに、狭路判定部２６Ａは、基準位置Ｅｔ３において、右合成壁距離ベクトルＦＲｔ３を、左右方向成分ベクトルＦＲｔ３ａと、前後方向成分ベクトルＦＲｔ３ｂとに分解する。また、狭路判定部２６Ａは、左合成壁距離ベクトルＦＬｔ３を、左右方向成分ベクトルＦＬｔ３ａと、前後方向成分ベクトルＦＬｔ３ｂとに分解する。
【０１３２】
そして、狭路判定部２６Ａは、左右方向成分ベクトルＦＲｔ３ａと、左右方向成分ベクトルＦＬｔ３ａとの絶対値の和を演算し、当該絶対値の和が、予め設定された所定の第１の閾値を超えるか否かを判定する。
【０１３３】
狭路判定部２６Ａは、上記絶対値の和が、上記所定の第１の閾値を超えた場合、ロボット１Ａが走行している通路は狭路であると判定する。一方、狭路判定部２６Ａは、上記絶対値の和が、上記所定の第１の閾値以下である場合、ロボット１Ａが走行している通路は狭路ではないと判定する。
【０１３４】
狭路判定部２６Ａは、狭路であるか否かを判定した判定結果を、走行制御部２７へ出力する。これにより、走行制御部２７は、ロボット１Ａが適切に走行するように、モータ１４の回転速度を制御する。
【０１３５】
このように、ロボット１Ａによると、時刻ｔ１〜ｔ３の各基準位置Ｅｔ１〜Ｅｔ３（第１の地点〜第３の地点）において、ＬＲＦ２が周囲の壁５の位置を特定できない死角が存在したとしても、環境地図ベクトル距離計算部２３は、環境地図Ｍ１が示す壁５の位置である点Ｐ１１〜Ｐ１８と、環境地図Ｍ２が示す壁５の位置である点Ｐ２１〜Ｐ２６と、環境地図Ｍ３が示す壁５の位置である点Ｐ３１〜Ｐ３５とに基づいて、複数の環境地図ベクトルＣをそれぞれ作成するため、より正確に、基準位置Ｅと、周囲の壁５の位置（各点Ｐ）との位置関係を把握することができる。このため、ロボット１Ａは、さらに正確に、狭路判定を行うことができる。
【０１３６】
ここで、上述のように、基準位置Ｅの移動量は、駆動輪１２の回転数をエンコーダ１５が計測した情報が加味されて得られている。駆動輪１２の滑り量は計測できないため、ロボット１Ａの移動距離が長くなると、ロボット１Ａが実際に移動した量と、エンコーダ１５が計測した回転数から環境地図作成部２２が演算したロボット１Ａの移動量との間に誤差が生じる。しかし、滑りが大きい床環境を除いて、単距離であれば累積誤差は小さいため、これを利用して、環境地図を一定距離移動した区間毎にＬＲＦ２が計測した距離データに基づいて合成環境地図Ｍ０を作成することができる。この合成環境地図Ｍ０を利用することによって、各地点においてＬＲＦ２に死角があっても、過去のＬＲＦ２が計測した距離データによって補うことができる。
【０１３７】
〔実施形態３〕
本発明の実施形態３について、図１８〜図２０に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施形態１、２にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０１３８】
図１８は、本発明の実施形態３に係るロボット１Ｂの構成を表すブロック図である。ロボット１Ｂは、ロボット１（図１）が備えていた演算部２０に換えて演算部２０Ｂを備える点で、ロボット１と相違する。ロボット１Ｂの他の構成はロボット１と同様である。
【０１３９】
演算部２０Ｂは、演算部２０が備えていた合成壁距離ベクトル距離計算部２５に換えて、合成壁距離ベクトル距離計算部２５Ｂを備えている点で、演算部２０と相違する。演算部２０Ｂの他の構成は演算部２０と同様である。
【０１４０】
図１９は、ロボット１Ｂが右合成壁距離ベクトルを作成している様子を表す図である。図２０は、ロボット１Ｂが左合成壁距離ベクトルを作成している様子を表す図である。
【０１４１】
図１９及び図２０に示すように、合成壁距離ベクトル距離計算部２５Ｂは、壁距離ベクトル距離計算部２４から、壁距離ベクトル情報を取得すると、左右の合成壁距離ベクトルを作成する。合成壁距離ベクトル距離計算部２５Ｂは、図１０及び図１１で説明した方法とは異なり、合成壁距離ベクトルを合成する目的に応じて、合成に利用する壁距離ベクトルを選択する。
【０１４２】
図１９に示すように、合成壁距離ベクトル距離計算部２５Ｂは、ロボット１Ｂの右側方及右前方に伸びる環境地図ベクトルＣＲ１〜ＣＲ５それぞれに基準距離Ｂ（図９参照）が考慮されることで作成された壁距離ベクトルＤＲ１〜ＤＲ５を合成することで、右合成壁距離ベクトルＦＲＢを作成する。すなわち、合成壁距離ベクトル距離計算部２５Ｂは、ロボット１Ｂの前方領域Ｊに含まれる環境地図ベクトルＣＲ６・ＣＲ７に対応する壁距離ベクトルは、右合成壁距離ベクトルＦＲＢの合成に利用しない。
【０１４３】
また、図２０に示すように、合成壁距離ベクトル距離計算部２５Ｂは、ロボット１Ｂの左側方及左前方に伸びる環境地図ベクトルＣＬ１・ＣＬ２それぞれに基準距離Ｂ（図９参照）が考慮されることで作成された壁距離ベクトルＤＬ１・ＤＬ２を合成することで、左合成壁距離ベクトルＦＬＢを作成する。すなわち、合成壁距離ベクトル距離計算部２５Ｂは、ロボット１Ｂの前方領域Ｊに含まれる環境地図ベクトルＣＬ５〜ＣＬ７に対応する壁距離ベクトルは、左合成壁距離ベクトルＦＬＢの合成に利用しない。なお、環境地図ベクトルＣＬ３・ＣＬ４は、長さが基準距離Ｂ以上であるため、それぞれに対応する壁距離ベクトルも左合成壁距離ベクトルＦＬＢの合成に利用しない。
【０１４４】
合成壁距離ベクトル距離計算部２５Ｂは、右合成壁距離ベクトルＦＲＢ及び左合成壁距離ベクトルＦＬＢを示す情報である左右合成壁距離ベクトル情報を狭路判定部２６へ出力する。
【０１４５】
狭路判定部２６は、合成壁距離ベクトル距離計算部２５Ｂから左右合成壁距離ベクトル情報を取得すると、図１９に示すように、右合成壁距離ベクトルＦＲＢを、左右方向成分ベクトルＦＲＢａと、前後方向成分ベクトルＦＲＢｂとに分解する。また、狭路判定部２６は、図２０に示すように、左合成壁距離ベクトルＦＬＢを、左右方向成分ベクトルＦＬＢａと、前後方向成分ベクトルＦＬＢｂとに分解する。
【０１４６】
そして、狭路判定部２６は、左右方向成分ベクトルＦＲＢａと、左右方向成分ベクトルＦＬＢａとの絶対値の和を演算し、当該絶対値の和が、予め設定された所定の閾値を超えるか否かを判定する。
【０１４７】
狭路判定部２６は、上記絶対値の和が、上記所定の閾値を超えた場合、ロボット１Ｂが走行している通路は狭路であると判定する。一方、狭路判定部２６は、上記絶対値の和が、上記所定の閾値以下である場合、ロボット１Ｂが走行している通路は狭路ではないと判定する。
【０１４８】
狭路判定部２６は、狭路であるか否かを判定した判定結果を、走行制御部２７へ出力する。これにより、走行制御部２７は、ロボット１Ｂが適切に走行するように、モータ１４の回転速度を制御する。
【０１４９】
このようにロボット１Ｂにおいて、合成壁距離ベクトル距離計算部２５Ｂは、壁距離ベクトルＤＲのうち、前方領域Ｊに含まれる環境地図ベクトルＣＲ６・ＣＲ７に対応する壁距離ベクトルは合成せず、残りの壁距離ベクトルＤＲ１〜ＤＲ５を合成することで右合成壁距離ベクトルＦＲＢを作成する。また、合成壁距離ベクトル距離計算部２５Ｂは、壁距離ベクトルＤＬのうち、前方領域Ｊに含まれる環境地図ベクトルＣＬ７〜ＣＬ９に対応する壁距離ベクトルは合成せず、残りの壁距離ベクトルＤＬ１〜ＤＬ２を合成することで左合成壁距離ベクトルＦＬＢＲを作成する。
【０１５０】
このようにロボット１Ｂによると、特定の方向に存在する障害物の位置を排除して、狭路判定部２６は、右合成壁距離ベクトルＦＲＢ及び左合成壁距離ベクトルＦＬＢそれぞれの左右方向成分ベクトルＦＲＢａ・ＦＬＢａの絶対値の和が、所定の第１の閾値を超えるか否かを判定することができる。
【０１５１】
具体的には、ロボット１Ｂが進行しているとき、進行方向前方（Ｙ軸プラス方向）に壁５などの障害物が表れた場合、狭路ではなく行き止まりであるため、ロボット１Ｂは進行方向の向きを変化させる必要がある。そこで、上記構成によると、進行方向前方に表れた壁５などの障害物の位置（点Ｐ）の影響を除去して狭路判定することができるため、さらに正確に狭路判定することができる。
【０１５２】
〔実施形態４〕
本発明の実施形態４について、図２１及び図２２に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、上記実施形態１〜３にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０１５３】
図２１は、本発明の実施形態４に係るロボット１Ｃの構成を表すブロック図である。ロボット１Ｃは、ロボット１（図１）が備えていた演算部２０に換えて演算部２０Ｃを備える点で、ロボット１と相違する。ロボット１Ｃの他の構成はロボット１と同様である。
【０１５４】
演算部２０Ｃは、演算部２０が備えていた合成壁距離ベクトル距離計算部２５及び狭路判定部２６に換えて、合成壁距離ベクトル距離計算部２５Ｃ及び狭路判定部２６Ｃを備えている点で、演算部２０と相違する。演算部２０Ｃの他の構成は演算部２０と同様である。
【０１５５】
図２２は、ロボット１Ｃが狭路判定を行っている様子を表す図である。
【０１５６】
図１０を用いて説明した方法と同様に、合成壁距離ベクトル距離計算部２５は、壁距離ベクトル距離計算部２４から取得した壁距離ベクトル情報のうち、ロボット１Ｃの右側の壁距離ベクトルＤＲ１〜ＤＲ４（図１０参照）を合成することで、右合成壁距離ベクトルＦＲを作成する。
【０１５７】
また、図１１を用いて説明した方法と同様に、合成壁距離ベクトル距離計算部２５は、壁距離ベクトル距離計算部２４から取得した壁距離ベクトル情報のうち、ロボット１Ｃの左側の壁距離ベクトルＤＬ１・ＤＬ２（図１１参照）を合成することで、左合成壁距離ベクトルＦＬを作成する。右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬは、ロボット１Ｃから左右及び前方の壁までの距離が近いほど長くなる。
【０１５８】
そして、合成壁距離ベクトル距離計算部２５は、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬを示す情報である左右合成壁距離ベクトル情報を狭路判定部２６Ｃへ出力する。
【０１５９】
狭路判定部２６Ｃは、合成壁距離ベクトル距離計算部２５から左右合成壁距離ベクトル情報を取得すると、右合成壁距離ベクトルＦＲを、左右方向成分ベクトルＦＲａと、前後方向成分ベクトルＦＲｂとに分解する。また、狭路判定部２６Ｃは、左合成壁距離ベクトルＦＬを、左右方向成分ベクトルＦＬａと、前後方向成分ベクトルＦＬｂとに分解する。
【０１６０】
そして、狭路判定部２６Ｃは、左右方向成分ベクトルＦＲａと、左右方向成分ベクトルＦＬａとの絶対値の和を演算し、予め設定された第１の所定の閾値を超えるか否かを判定する。狭路判定部２６は、左右方向成分ベクトルＦＲａと左右方向成分ベクトルＦＬａとの絶対値の和が、上記第１の所定の閾値以下である場合、ロボット１Ｃが走行している通路は狭路ではないと判定する。
【０１６１】
狭路判定部２６Ｃは、左右方向成分ベクトルＦＲａと左右方向成分ベクトルＦＬａとの絶対値の和が上記第１の所定の閾値を超えた場合、さらに、前後方向成分ベクトルＦＲｂと、前後方向成分ベクトルＦＬｂとの絶対値の和を演算し、予め設定された第２の所定の閾値を超えるか否かを判定する。狭路判定部２６は、前後方向成分ベクトルＦＲｂと前後方向成分ベクトルＦＬｂとの絶対値の和が、上記第２の所定の閾値以下である場合、ロボット１Ｃが走行している通路は狭路ではないと判定する。
【０１６２】
そして、狭路判定部２６Ｃは、前後方向成分ベクトルＦＲｂと前後方向成分ベクトルＦＬｂとの絶対値の和が、上記第２の所定の閾値を超えた場合、ロボット１Ｃが走行している通路は狭路であると判定する。
【０１６３】
狭路判定部２６Ｃは、狭路であるか否かを判定した判定結果を、走行制御部２７へ出力する。これにより、走行制御部２７は、ロボット１が適切に走行するように、モータ１４の回転速度を制御する。
【０１６４】
このようにロボット１Ｃでは、狭路判定部２６Ｃは、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬそれぞれの左右方向成分ベクトルＦＲａ・ＦＬａの絶対値の和が、上記所定の第１の閾値を超えると判定すると、右合成壁距離ベクトルＦＲ及び左合成壁距離ベクトルＦＬそれぞれの前後方向成分ベクトルＦＲｂ・ＦＬｂの絶対値の和が、所定の第２の閾値を超えるか否かを判定する。この前後方向成分ベクトルＦＲｂ・ＦＬｂの絶対値の和が第２の閾値を超える程大きい場合は、前進するロボット１Ｂの前方（Ｙ軸プラス方向）又は後方（Ｙ軸マイナス方向）正面に壁２が存在する場合である。ロボット１Ｂの前方（Ｙ軸プラス方向）又は後方（Ｙ軸マイナス方向）正面に壁２が存在する場合は、狭路ではないため、狭路判定部２６Ｃは、ロボット１Ｂが進行している通路は狭路ではないと判定することができる。
【０１６５】
このように、上記構成によると、狭路判定部２６Ｃは、ロボット１Ｃの進行方向前後方向に存在する壁５などの障害物の影響を除去して狭路判定することができるため、さらに正確に狭路判定することができる。
【０１６６】
〔ソフトウェアによる実現例〕
ロボット１の制御ブロック（特に自己位置検出部２１、環境地図作成部２２、環境地図ベクトル距離計算部２３、壁距離ベクトル距離計算部２４、合成壁距離ベクトル距離計算部２５及び狭路判定部２６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０１６７】
後者の場合、ロボット１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１６８】
〔まとめ〕
本発明の態様１に係る自律走行体（ロボット１）は、複数方向へビームを照射することで、周囲の障害物（壁５）の位置（点Ｐ）を特定するセンサ部（ＬＲＦ２）と、自装置の位置を示す自己位置（基準位置Ｅ）から上記障害物（壁５）の位置（点Ｐ）まで延びる複数の第１のベクトル（環境地図ベクトルＣ）を作成する第１のベクトル作成部（環境地図ベクトル距離計算部２３）と、上記複数の第１のベクトル（環境地図ベクトルＣ）のうち所定の基準距離Ｂより短い各第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）それぞれについて、当該第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）の延伸方向であって、当該第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）と上記基準距離Ｂとの差分だけ上記自己位置（基準位置Ｅ）から離れる向きに延びる第２のベクトル（壁距離ベクトルＤ）を作成する第２のベクトル作成部（壁距離ベクトル距離計算部２４）と、上記各第２のベクトル（壁距離ベクトルＤ）のうち、自装置の直進方向（Ｙ軸方向）に対し直交する左右方向（Ｘ軸方向）の成分ベクトルの向きが同じ第２のベクトル同士（壁距離ベクトルＤＲ１〜ＤＲ４同士と、壁距離ベクトルＤＬ１・ＤＬ２同士）を合成し、互いに向きが異なる第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）を作成する合成ベクトル作成部（合成壁距離ベクトル距離計算部２５）と、上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）それぞれの上記左右方向の成分ベクトル（左右方向成分ベクトルＦＲａ・ＦＬａ）の絶対値の和が、所定の第１の閾値を超えるか否かを判定する判定部（狭路判定部２６）とを備える。
【０１６９】
上記構成によると、左右方向それぞれ一方向のみ障害物との距離を計測した結果から狭路判定をする場合とは異なり、上記判定部（狭路判定部２６）は、上記合成ベクトル作成部（合成壁距離ベクトル距離計算部２５）が複数の第２のベクトル（壁距離ベクトルＤ）を合成することで作成された上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）の上記左右方向の成分ベクトル（左右方向成分ベクトルＦＲａ・ＦＬａ）の絶対値の和が、所定の閾値を超えるか否かを判定している。このため、センサ部（ＬＲＦ２）が特定した左右方向の障害物（壁５）の位置が平均化される。
【０１７０】
これにより、上記自律走行体（ロボット１）が通過する通路幅を計測するに際し、通路中において、上記自律走行体（ロボット１）の直進方向に平行な距離が短く、一時的に通路幅が狭くなっているに過ぎない箇所であるボトルネック部分や、たまたま、通路中に存在することで通路幅が狭くなっているに過ぎない動的障害物などが存在する部分の通路幅を計測したとしても、これら、ボトルネック部分や、動的障害物などが存在する部分によって、通路全体が、自装置が確実に通過や旋回ができない狭路であると判定してしまうことを防止することができる。このため、上記自律走行体（ロボット１）は、正確に狭路判定を行うことができる。
【０１７１】
加えて、上記構成によると、上記判定部（狭路判定部２６）は、上記複数の第１のベクトル（環境地図ベクトルＣ）を合成した合成ベクトルによって狭路判定をするのではなく、上記複数の第１のベクトル（環境地図ベクトルＣ）のうち所定の基準距離Ｂより短い複数の第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）それぞれについて、当該第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）の延伸方向であって、当該第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）と上記基準距離Ｂとの差分だけ上記自己位置（基準位置Ｅ）から離れる向きに延びる第２のベクトル（壁距離ベクトルＤ）を作成し、当該複数の第２のベクトル（壁距離ベクトルＤ）を合成することで作成された上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）に基づいて、それぞれの上記左右方向の成分ベクトル（左右方向成分ベクトルＦＲａ・ＦＬａ）の絶対値の和が、所定の閾値を超えるか否かを判定する。この所定の基準距離Ｂを、自装置が確実に通過や旋回できる安全距離とすることで、上記判定部（狭路判定部２６）は、安全距離を確保して狭路判定をすることができる。この結果、上記自律走行体（ロボット１）は、通路を確実に通過したり、通路内で旋回したりすることができるため、より安全に、通路を進行することができる。
【０１７２】
本発明の態様２に係る自律走行体（ロボット１Ａ）は、上記態様１において、第１の地点において上記センサ部（ＬＲＦ２）が特定した障害物（壁５）の位置（点Ｐ１１〜Ｐ１８）を示す第１の環境地図（環境地図Ｍ１）と、上記第１の地点から所定の距離移動した第２の地点において上記センサ部（ＬＲＦ２）が特定した周囲の障害物（壁５）の位置（壁５）（点Ｐ２１〜Ｐ２６）とを示す第２の環境地図（環境地図Ｍ２）とを作成する地図作成部（環境地図作成部２２）と、上記第１の地点における上記周囲の障害物（壁５）の位置（点Ｐ１１〜Ｐ１８）によって表された形状と、上記第２の地点における上記周囲の障害物（壁５）の位置（壁５）によって表された形状とを重ね合せることで、上記第１の環境地図（環境地図Ｍ１）と、上記第２の環境地図（環境地図Ｍ２）とが合成された合成地図（合成環境地図Ｍ０）を作成する合成地図作成部（合成環境地図作成部２８Ａ）とを備え、上記第１のベクトル作成部（環境地図ベクトル距離計算部２３）は、上記第２の地点における上記自己位置（基準位置Ｅｔ２）から上記合成地図（合成環境地図Ｍ０）に示された上記周囲の障害物（壁５）の位置（点Ｐ）まで延びる複数の第１のベクトル（環境地図ベクトルＣ）を作成してもよい。
【０１７３】
上記構成によると、上記第１の地点又は上記第２の地点において、センサ部（ＬＲＦ２）が周囲の障害物（壁５）の位置を特定できない死角が存在したとしても、上記第１のベクトル作成部（環境地図ベクトル距離計算部２３）は、第１の環境地図が示す障害物（壁５）の位置と、第２の環境地図が示す障害物（壁５）の位置とが合成された障害物（壁５）の位置に基づいて、上記複数の第１のベクトル（環境地図ベクトルＣ）を作成するため、より正確に、自己位置（基準位置Ｅ）と、周囲の障害物（壁５）の位置（点Ｐ）との位置関係を把握することができる。このため、自律走行体（ロボット１Ａ）は、さらに正確に、狭路判定を行うことができる。
【０１７４】
本発明の態様３に係る自律走行体（ロボット１Ｂ）は、上記態様１又は２において、
上記合成ベクトル作成部（合成壁距離ベクトル距離計算部２５Ｂ）は、上記複数の第２のベクトル（壁距離ベクトルＤＲ・ＤＬ）のうち、特定方向へ延びる第２のベクトルを除外した残りの複数の第２のベクトル（壁距離ベクトルＤＲ１〜ＤＲ５、ＤＬ１・ＤＬ２）を合成することで、上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲＢ・左合成壁距離ベクトルＦＬＢ）を作成してもよい。
【０１７５】
上記構成によると、特定の方向に存在する障害物の位置を排除して、上記判定部は、上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲＢ・左合成壁距離ベクトルＦＬＢ）それぞれの上記左右方向の成分ベクトル（左右方向成分ベクトルＦＲＢａ・ＦＬＢａ）の絶対値の和が、所定の第１の閾値を超えるか否かを判定することができる。例えば、進行方向前方に壁５などの障害物が表れた場合、狭路ではなく行き止まりであるため、自律走行体（ロボット１Ｂ）は進行方向の向きを変化させる必要がある。そこで上記構成によると、進行方向前方に表れた壁５などの障害物の影響を除去して狭路判定することができるため、さらに正確に狭路判定することができる。
【０１７６】
本発明の態様４に係る自律走行体（ロボット１Ｃ）は、上記態様１〜３において、上記判定部（狭路判定部２６Ｃ）は、上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）それぞれの上記左右方向の成分ベクトル（左右方向成分ベクトルＦＲａ・ＦＬａ）の絶対値の和が、上記所定の第１の閾値を超えると判定すると、上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）それぞれの上記自装置の直進方向の成分ベクトル（前後方向成分ベクトルＦＲｂ・ＦＬｂ）の絶対値の和が、所定の第２の閾値を超えるか否かを判定することが好ましい。
【０１７７】
上記構成によると、上記判定部（狭路判定部２６Ｃ）は、自律走行体（ロボット１Ｃ）の進行方向前方に表れた壁５などの障害物の影響を除去して狭路判定することができるため、さらに正確に狭路判定することができる。
【０１７８】
本発明の態様５に係る自律走行体（ロボット１）は、複数方向へビームを照射することで、障害物の位置を特定するセンサ部と、自装置が複数の障害物間を通過する場合、当該複数の障害物における自装置の進行方向に平行な長さが、所定の長さを超えるか否かを判定する判定部と、上記複数の障害物における自装置の進行方向に平行な長さが、上記所定の長さを超えると上記判定部が判定すると、自装置の進行を停止する走行制御部とを備えることを特徴とする。
【０１７９】
上記構成によると、自律走行体（ロボット１）が通過する通路幅が狭くなっている部分が、所定の長さを超えるほど続いている場合にだけ、自律走行体（ロボット１）が通過する通路が狭路であると判定することができるため、自律走行体（ロボット１）を安全に停止させることができる。
【０１８０】
本発明の態様６に係る自律走行体（ロボット１）の狭路判定方法は、複数方向へビームを照射することで、障害物（壁５）の位置（点Ｐ）を特定する位置特定ステップと、自装置の位置を示す自己位置（基準位置Ｅ）から上記障害物（壁５）の位置（点Ｐ）まで延びる複数の第１のベクトル（環境地図ベクトルＣ）を作成する第１のベクトル作成ステップと、上記複数の第１のベクトル（環境地図ベクトルＣ）のうち所定の基準距離Ｂより短い各第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）それぞれについて、当該第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）の延伸方向であって、当該第１のベクトル（環境地図ベクトルＣＲ１〜ＣＲ４・ＤＬ１・ＤＬ２）と上記基準距離Ｂとの差分だけ上記自己位置（基準位置Ｅ）から離れる向きに延びる第２のベクトル（壁距離ベクトルＤ）を作成する第２のベクトル作成ステップと、上記各第２のベクトル（壁距離ベクトルＤ）のうち、自装置の直進方向（Ｙ軸方向）に対し直交する左右方向（Ｘ軸方向）の成分ベクトルの向きが同じ第２のベクトル同士（壁距離ベクトルＤＲ１〜ＤＲ４同士と、壁距離ベクトルＤＬ１・ＤＬ２同士）を合成し、互いに向きが異なる第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）を作成する合成ベクトルステップと、上記第１及び第２の合成ベクトル（右合成壁距離ベクトルＦＲ・左合成壁距離ベクトルＦＬ）それぞれの上記左右方向の成分ベクトル（左右方向成分ベクトルＦＲａ・ＦＬａ）の絶対値の和が、所定の第１の閾値を超えるか否かを判定する判定ステップとを有することを特徴とする。
【０１８１】
上記構成により、上記自律走行体（ロボット１）を安全に、通路を進行させることができ、また、正確に狭路判定を行うことができる。
【０１８２】
本発明の各態様に係る自律走行体は、コンピュータによって実現してもよく、この場合には、コンピュータを上記自律走行体が備える各部（ソフトウェア要素）として動作させることにより上記自律走行体をコンピュータにて実現させる自律走行体の狭路判定プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０１８３】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【産業上の利用可能性】
【０１８４】
本発明は、自律走行体、自律走行体の狭路判定方法、狭路判定プログラム及びコンピュータ読み取り可能な記録媒体に利用することができる。
【符号の説明】
【０１８５】
１・１Ａ〜１Ｃ  ロボット（自律走行体）
５Ａ・５Ｂ  障害物
１２・１２ａ・１２ｂ  駆動輪
１３  キャスタ
１４・１４ａ・１４ｂ  モータ
１５・１５ａ・１５ｂ  エンコーダ
１７  バッテリー
２０・２０Ａ〜２０Ｃ  演算部
２１  自己位置検出部
２２  環境地図作成部（地図作成部）
２３・２３Ａ  環境地図ベクトル距離計算部（第１のベクトル作成部）
２４・２４Ａ  壁距離ベクトル距離計算部（第２のベクトル作成部）
２５・２５Ａ〜２５Ｃ  合成壁距離ベクトル距離計算部（合成ベクトル作成部）
２６・２６Ａ・２６Ｃ  狭路判定部（判定部）
２７  走行制御部
２８Ａ  合成環境地図作成部（合成地図作成部）
Ｃ  環境地図ベクトル（第１のベクトル）
ＣＬ１〜ＣＬ６  環境地図ベクトル（第１のベクトル）
ＣＲ１〜ＣＲ６  環境地図ベクトル（第１のベクトル）
Ｄ  壁距離ベクトル（第２のベクトル）
ＤＬ１・ＤＬ２  壁距離ベクトル（第２のベクトル）
ＤＲ１〜ＤＲ４  壁距離ベクトル（第２のベクトル）
Ｅ・Ｅｔ１〜Ｅｔ３  基準位置（自己位置）
ＦＬ  左合成壁距離ベクトル（第２の合成ベクトル）
ＦＬａ・ＦＬＢａ  左右方向成分ベクトル（成分ベクトル）
ＦＬｂ・ＦＬＢｂ  前後方向成分ベクトル（成分ベクトル）
ＦＬｔ１  左合成壁距離ベクトル（第２の合成ベクトル）
ＦＬｔ１ａ〜ＦＬｔ３ａ  左右方向成分ベクトル（成分ベクトル）
ＦＬｔ１ｂ〜ＦＬｔ３ｂ  前後方向成分ベクトル（成分ベクトル）
ＦＲ  右合成壁距離ベクトル（第１の合成ベクトル）
ＦＲａ・ＦＲｂａ  左右方向成分ベクトル（成分ベクトル）
ＦＲｂ・ＦＲＢｂ  前後方向成分ベクトル（成分ベクトル）
ＦＲｔ１〜ＦＲｔ３  右合成壁距離ベクトル（第１の合成ベクトル）
ＦＲｔ１ａ〜ＦＲｔ３ａ  左右方向成分ベクトル（成分ベクトル）
ＦＲｔ１ｂ〜ＦＲｔ３ｂ  前後方向成分ベクトル（成分ベクトル）
Ｇ１・Ｇ２  矢印
Ｍ・Ｍ１〜Ｍ３  環境地図
Ｍ０  合成環境地図（合成地図）
ｔ１〜ｔ３  時刻
【図１】
0006649704.tif 000002
【図２】
0006649704.tif 000003
【図３】
0006649704.tif 000004
【図４】
0006649704.tif 000005
【図５】
0006649704.tif 000006
【図６】
0006649704.tif 000007
【図７】
0006649704.tif 000008
【図８】
0006649704.tif 000009
【図９】
0006649704.tif 000010
【図１０】
0006649704.tif 000011
【図１１】
0006649704.tif 000012
【図１２】
0006649704.tif 000013
【図１３】
0006649704.tif 000014
【図１４】
0006649704.tif 000015
【図１５】
0006649704.tif 000016
【図１６】
0006649704.tif 000017
【図１７】
0006649704.tif 000018
【図１８】
0006649704.tif 000019
【図１９】
0006649704.tif 000020
【図２０】
0006649704.tif 000021
【図２１】
0006649704.tif 000022
【図２２】
0006649704.tif 000023
【図２３】
0006649704.tif 000024
【図２４】
0006649704.tif 000025
【図２５】
0006649704.tif 000026
【図２６】
0006649704.tif 000027
【図２７】
0006649704.tif 000028
【図２８】
0006649704.tif 000029