(57)【要約】【課題】歩行者に対して確実に障害物を回避可能な進路を提示することのできるロボットを提供する。【解決手段】ロボット１は、後方の範囲Ａに向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット１から反射点（ｈ１〜ｈ１７）までの距離データを獲得する。そして距離データに基づき、ロボット１の後方に存在する物体の各々の表面に生じた反射点のクラスタ１〜４を抽出し、この中から歩行者の両足を示す可能性のある２つのクラスタの組（１，２の組、２，３の組）を特定する。そして、特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標Ｔ１，Ｔ２を獲得し、この中から、過去のデータから推定される胴体中心位置Ｓ１と、最も近い位置にある座標Ｔ２を、現在の胴体中心位置の座標として特定して、座標Ｔ２に基づき、ロボット１の速度を制御する。【選択図】図６
2011059905.tif 000002
【特許請求の範囲】
【請求項１】
歩行者等を先導するロボットであって、
ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、
前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手段と、
前記胴体中心特定手段が特定した座標に基づき、ロボットの速度を制御する速度制御手段とを備えることを特徴とするロボット。
【請求項２】
前記距離データ獲得手段が獲得した距離データに基づき、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出するクラスタ抽出手段と、
前記クラスタ抽出手段が抽出したクラスタのうち、歩行者の両足を示す可能性のある２つのクラスタの組を特定する両足候補特定手段と、
前記両足候補特定手段が特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標を獲得する胴体中心座標獲得手段とをさらに備え、
前記胴体中心特定手段は、前記胴体中心座標獲得手段が獲得した座標の中から、歩行者の胴体中心位置の座標を特定することを特徴とする請求項１に記載のロボット。
【請求項３】
前記クラスタ抽出手段が抽出したクラスタのうち、反射点の数が所定の範囲に含まれるクラスタを、歩行者の足を示す可能性のあるクラスタとして特定する足候補特定手段と、
前記足候補特定手段が特定したクラスタに含まれる反射点の座標を、均等重みで平均化した重心座標を算出する重心座標算出手段とをさらに備え、
前記両足候補特定手段は、前記足候補特定手段が特定したクラスタの中から、歩行者の両足を示す可能性のある２つのクラスタの組を、前記重心座標に基づき特定することを特徴とする請求項２に記載のロボット。
【請求項４】
前記両足候補特定手段は、前記重心座標算出手段が算出した重心座標に基づき、前記足候補特定手段が特定したクラスタの中から、隣り合う一対の物体を示す２つのクラスタの組を特定するとともに、これらクラスタの組のうち、一方のクラスタから得られる重心座標と、他方のクラスタから得られる重心座標との間の離隔距離が、所定の閾値を超えていないと判断されたクラスタの組を、歩行者の両足を示す可能性のある２つのクラスタの組として特定することを特徴とする請求項３に記載のロボット。
【請求項５】
前記両足候補特定手段が特定した組毎に、これらに含まれる２つのクラスタのうち、一方から得られた重心座標と、他方から得られた重心座標との中点の座標を算出する中点座標算出手段と、
過去の処理で歩行者の胴体中心位置を示す座標として特定された前記中点の座標に、線形推定法により推定された歩行者の移動距離を加算することで、現在の胴体中心位置の座標を推定する胴体中心推定手段とをさらに備え、
前記胴体中心特定手段は、前記中点座標算出手段が算出した中点の座標のうち、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を、現在の胴体中心位置の座標として特定することを特徴とする請求項３又は４に記載のロボット。
【請求項６】
前記胴体中心特定手段は、横方向における位置の差が、前後方向における位置の差よりも大きな変動を与えるユークリッド距離による評価で、前記中点座標算出手段が算出した中点の座標の中から、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を特定することを特徴とする請求項５に記載のロボット。
【請求項７】
前記クラスタ抽出手段は、ロボットの周囲に向けて照射されたレーザ光のうち、隣り合う位置を進行した２つのレーザ光の組における距離データの差を順次算出し、
前記距離データの差が閾値を超えていないと判断された組については、この組における２つのレーザ光の反射点を同一のクラスタに登録し、前記距離データの差が閾値を超えたと判断された組については、この組における２つのレーザ光の反射点を異なるクラスタに登録していくことで、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出することを特徴とする請求項２乃至６のいずれか１項に記載のロボット。
【請求項８】
前記速度制御手段は、前記胴体中心特定手段が特定した座標と、ロボットが位置する座標との間の離隔距離を算出し、当該離隔距離が、予め設定された最近先導距離よりも小さい場合、ロボットの速度を予め設定された最高速度に制御し、前記離隔距離が、予め設定された停止判断距離よりも大きい場合、ロボットを停止させ、前記離隔距離が、前記最近先導距離よりも大きく、前記停止判断距離よりも小さい場合には、ロボットの速度を前記停止判断距離と前記離隔距離との差に比例した速度に制御することを特徴とする請求項１乃至７のいずれか１項に記載のロボット。
【請求項９】
歩行者等を先導するロボットであって、
ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、
前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手段と、
前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手段と、
前記左側座標特定手段が特定した反射点の座標と、前記右側座標特定手段が特定した反射点の座標との中点の座標を算出する中点座標算出手段と、
前記中点座標算出手段が算出した中点の座標近傍に、ロボットの位置を制御する進路制御手段とを備えることを特徴とするロボット。
【請求項１０】
前記左側座標特定手段又は右側座標特定手段は、ロボットの真横から前記左側又は右側の範囲の前端に至る領域に照射されたレーザ光のうち、隣り合う位置を進行した２つのレーザ光の組における距離データの差を順次算出して、所定の閾値を超えるか否かを判断し、
前記距離データの差が閾値を超える組を検出しなかった場合には、前記左側又は右側の範囲の前端にある反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、
前記距離データの差が閾値を超える組を検出した場合には、前記左側又は右側の範囲の前端までの領域で、前記閾値を超えた組における２つのレーザ光のうち、後寄りのレーザ光の反射点に比して、ロボットに近い反射点が存在するか探索し、
ロボットに近い反射点が探索された場合には、当該反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、
ロボットに近い反射点が探索されなかった場合には、前記後寄りのレーザ光の反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定することを特徴とする請求項９に記載のロボット。
【請求項１１】
前記左側又は右側の範囲に照射されたレーザ光の距離データに基づき、前記左側又は右側の範囲に、壁が存在するか否かを判断する壁有無判定手段と、
前記壁有無判定手段によって前記左側又は右側の範囲のいずれか一方に壁が存在しないことが確認された場合、壁の存在が確認された範囲において、ロボットの真横から前側に生じた２つの反射点の座標を特定する座標特定手段と、
前記座標特定手段が特定した２つの反射点の座標と、ロボットの座標とを３つの頂点とする平行四辺形における残りの１つの頂点の座標を算出する頂点算出手段と、
前記頂点算出手段が算出した座標近傍に、ロボットの位置を制御する進路制御手段とをさらに備えることを特徴とする請求項９又は１０に記載のロボット。
【請求項１２】
前記ロボットの左側又は右側の範囲において、ロボットよりも前側に歩行の妨げとなる障害物が存在する場合には、前記左側座標特定手段及び右側座標特定手段のうち一方は、前記距離データ獲得手段によって獲得された距離データに基づき、前記障害物の表面に生じた反射点の座標を特定し、
前記中点座標算出手段は、前記障害物の表面に生じた反射点の座標と、前記左側座標特定手段及び右側座標特定手段のうち他方が特定した反射点の座標との中点の座標を算出することを特徴とする請求項９乃至１１のいずれか１項に記載のロボット。
【請求項１３】
歩行者等を先導するロボットの制御プログラムであって、
ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、
前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手順と、
前記胴体中心特定手順で特定された座標に基づき、ロボットの速度を制御する速度制御手順とをロボットに実行させることを特徴とする制御プログラム。
【請求項１４】
歩行者等を先導するロボットの制御プログラムであって、
ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、
前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手順と、
前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手順と、
前記左側座標特定手順で特定された反射点の座標と、前記右側座標特定手順で特定された反射点の座標との中点の座標を算出する中点座標算出手順と、
前記中点座標算出手順で算出された中点の座標近傍に、ロボットの位置を制御する進路制御手順とをロボットに実行させることを特徴とする制御プログラム。
【請求項１５】
請求項１３又は１４に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、歩行者等を先導するロボット及びロボットの制御プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
現在、盲導犬による歩行支援を希望する視覚障害者は７８００人にのぼっているが、これら視覚障害者のうち盲導犬が提供されている人の割合は、約１２％と非常に低い。そして今後においても、盲導犬の訓練期間が長いことや、盲導犬の育成費用が高額であること等を理由として、盲導犬が提供される割合を向上させることは困難であると考えられている。このため近年では、盲導犬に代わる歩行支援手段として、歩行者の前を走向することで、歩行者の先導を行うロボットの開発が進められている。
【０００３】
この種のロボットが、盲導犬と同等の役割を果たすためには、歩行者に対して障害物を回避可能な進路を提示することや、歩行者の歩行ペースに合わせて走向することが求められる。非特許文献１には、この課題を解決する方策が提案されている。
【０００４】
非特許文献１には、屋内の廊下を歩く歩行者を先導するためのロボット１００（図３５参照）が開示されている。このロボット１００には、廊下の壁や歩行者の位置を検出するための手段としてＬＲＦ（Laser range Finder）が設けられており、ＬＲＦは、ロボット１００の後方と、ロボット１００の左右側方とに向けて、所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット１００から反射点ｈまでの距離データを獲得するようになっている。
【０００５】
そして、ロボット１００の左右側方に照射されたレーザ光によって得られた距離データを用いて、以下に示す進路制御処理が行われる。
【０００６】
＜進路制御処理＞
まず、ロボット１００は、ロボット１００の左右側方に照射されたレーザ光のうち、ロボットに最も近い反射点ｈ２００（以下、最近の反射点と記す）を生じさせたレーザ光を特定して、その反射点の座標を獲得する。さらに、最近の反射点ｈ２００を生じさせたレーザ光に対して１８０度反対側に進行したレーザ光を特定して、その反射点ｈ２０１（以下、対向反射点と記す）の座標を獲得する。
【０００７】
次に、上記最近の反射点ｈ２００の座標と、上記対向反射点ｈ２０１の座標との中点Ｃ１の座標を算出する。
【０００８】
次に、中点Ｃ１の座標にロボット１００の位置が制御される。
【０００９】
以上の処理により、ロボット１００は廊下の中央位置を走向するようになるため、歩行者に対して障害物を回避可能な進路を提示することが実現されることになっている。
【００１０】
また非特許文献１によれば、ロボット後方へ照射されたレーザ光により得られた距離データが用いられて、以下に説明する速度制御処理が行われる。
【００１１】
＜速度制御処理＞
ロボット１００には、図３６に示すように、ロボット１００の後方で歩行者が存在すると想定される領域（以下、想定領域と記す）を示す画像が生成されている。この画像では、格子状に並ぶ複数のピクセルＰによって想定領域が表現されており、ピクセルＰの各々は、想定領域における数ｃｍ四方の空間に対応している。
【００１２】
そして、上記後方の距離データに基づき、レーザ光の反射が生じた物体の表面位置を示すピクセル（例えばＰ１〜Ｐ４）が特定されることで、想定領域に存在する物体の形状が画像中に表現される。
【００１３】
そして、上記画像に表現された物体のうち、歩行者の足の形状を示すテンプレートと類似する物体が特定されて、その物体の位置が、歩行者の足の位置として検出される。
【００１４】
そして、上記検出された足位置の経時的な変化量に基づいてロボット１００の速度が制御される。
【００１５】
以上の処理により、ロボット１００が歩行者の歩行ペースに合わせて走向することが実現されることになっている。
【先行技術文献】
【非特許文献】
【００１６】
【非特許文献１】安田  裕也、三枝  省三、兼田  健太郎、浦谷  佳孝、田中  英一郎、牧野  俊昭，  盲導犬ロボットにおける視覚障害者の歩行認識と先導，  第９回ＳＩＣＥシステムインテグレーション部門講演会講演論文集（ＳＩ２００８），  ３Ｋ２−１  （２００８）
【発明の概要】
【発明が解決しようとする課題】
【００１７】
ところで非特許文献１の進路制御処理では、ロボット１００が、開いたドアの横や廊下の分岐地点に到達することで、ロボット１００の側方に壁が存在しなくなった際に（図３７（Ａ）参照）、廊下の中央位置が特定できなくなることが生じ得る。
【００１８】
つまり、最近の反射点ｈ２００を生じさせるレーザ光が特定された後では、これと１８０度反対側に向かうレーザ光が、対向反射点ｈ２０１の座標を得るために特定されるが、この特定は、レーザ光の進路の先に反射を生じさせる壁が存在するか否かに関わらず、自動的に行われてしまう。このため、図３７（Ａ）に示すように、一方の側に壁が存在しない状況では、対向反射点ｈ２０１の位置を計測できず、廊下の中央位置の特定が困難になることが生じ得る。
【００１９】
また非特許文献１の進路制御処理では、図３７（Ｂ）に示すようにロボット１００の前方に障害物が存在していたり、ロボット１００の前で両側の壁が接近して廊下が狭くなっている状況下では、最近の反射点ｈ２００は、ロボット１００の前方に検出され、対向反射点ｈ２０１は、ロボット１００の後方に検出される。この状況下で、図３７（Ｂ）に示すように、対向反射点ｈ２０１が、最近の反射点ｈ２００よりも、ロボット１００から遠く離れている場合には、反射点ｈ２００，ｈ２０１の中点Ｃ１の座標は、ロボット１００の後方に算出される。この中点Ｃ１の座標に、ロボット１００の位置が制御されると、ロボット１００は、既に通過した場所へ戻るような動きを示す。この場合、ロボット１００は、歩行者が進む先の廊下の中央を走行するものにはならないため、歩行者に障害物の回避が可能な針路を提示することができない。
【００２０】
また速度制御処理では、足が歩行時に大きな加速度が生じる部位であるため、テンプレートによる物体の検出（以下、テンプレートによるマッチング）が足の動きに追いつかなくなることが生じ得る。この場合、ロボット１００は、歩行者の現位置を特定できないことで、歩行者の歩行ペースに合わせて走向しなくなるものと考えられる。この問題は、画像中の全てのピクセルＰを走査することで、テンプレートによるマッチングに多大な計算負荷を要する場合に顕著に現れる。
【００２１】
本発明は、こうした状況に鑑みてなされたものであり、本発明の目的は、歩行者等を先導するロボットであって、歩行者に対して確実に障害物を回避可能な進路を提示することのできるロボットを提供することである。
【００２２】
また本発明のさらなる目的は、歩行者等を先導するロボットであって、歩行者の位置を高いロバスト性で追跡できることで、確実に歩行者の歩行ペースに合わせて走向することのできるロボットを提供することである。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明の第１の観点にかかるロボットは、歩行者等を先導するロボットであって、ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手段と、前記胴体中心特定手段が特定した座標に基づき、ロボットの速度を制御する速度制御手段とを備えることを特徴とする。
【００２４】
好ましくは、前記距離データ獲得手段が獲得した距離データに基づき、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出するクラスタ抽出手段と、前記クラスタ抽出手段が抽出したクラスタのうち、歩行者の両足を示す可能性のある２つのクラスタの組を特定する両足候補特定手段と、前記両足候補特定手段が特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標を獲得する胴体中心座標獲得手段とをさらに備え、前記胴体中心特定手段は、前記胴体中心座標獲得手段が獲得した座標の中から、歩行者の胴体中心位置の座標を特定することを特徴とする。
【００２５】
好ましくは、前記クラスタ抽出手段が抽出したクラスタのうち、反射点の数が所定の範囲に含まれるクラスタを、歩行者の足を示す可能性のあるクラスタとして特定する足候補特定手段と、前記足候補特定手段が特定したクラスタに含まれる反射点の座標を、均等重みで平均化した重心座標を算出する重心座標算出手段とをさらに備え、前記両足候補特定手段は、前記足候補特定手段が特定したクラスタの中から、歩行者の両足を示す可能性のある２つのクラスタの組を、前記重心座標に基づき特定することを特徴とする。
【００２６】
好ましくは、前記両足候補特定手段は、前記重心座標算出手段が算出した重心座標に基づき、前記足候補特定手段が特定したクラスタの中から、隣り合う一対の物体を示す２つのクラスタの組を特定するとともに、これらクラスタの組のうち、一方のクラスタから得られる重心座標と、他方のクラスタから得られる重心座標との間の離隔距離が、所定の閾値を超えていないと判断されたクラスタの組を、歩行者の両足を示す可能性のある２つのクラスタの組として特定することを特徴とする。
【００２７】
好ましくは、前記両足候補特定手段が特定した組毎に、これらに含まれる２つのクラスタのうち、一方から得られた重心座標と、他方から得られた重心座標との中点の座標を算出する中点座標算出手段と、過去の処理で歩行者の胴体中心位置を示す座標として特定された前記中点の座標に、線形推定法により推定された歩行者の移動距離を加算することで、現在の胴体中心位置の座標を推定する胴体中心推定手段とをさらに備え、前記胴体中心特定手段は、前記中点座標算出手段が算出した中点の座標のうち、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を、現在の胴体中心位置の座標として特定することを特徴とする。
【００２８】
好ましくは、前記胴体中心特定手段は、横方向における位置の差が、前後方向における位置の差よりも大きな変動を与えるユークリッド距離による評価で、前記中点座標算出手段が算出した中点の座標の中から、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を特定することを特徴とする。
【００２９】
好ましくは、前記クラスタ抽出手段は、ロボットの周囲に向けて照射されたレーザ光のうち、隣り合う位置を進行した２つのレーザ光の組における距離データの差を順次算出し、前記距離データの差が閾値を超えていないと判断された組については、この組における２つのレーザ光の反射点を同一のクラスタに登録し、前記距離データの差が閾値を超えたと判断された組については、この組における２つのレーザ光の反射点を異なるクラスタに登録していくことで、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出することを特徴とする。
【００３０】
好ましくは、前記速度制御手段は、前記胴体中心特定手段が特定した座標と、ロボットが位置する座標との間の離隔距離を算出し、当該離隔距離が、予め設定された最近先導距離よりも小さい場合、ロボットの速度を予め設定された最高速度に制御し、前記離隔距離が、予め設定された停止判断距離よりも大きい場合、ロボットを停止させ、前記離隔距離が、前記最近先導距離よりも大きく、前記停止判断距離よりも小さい場合には、ロボットの速度を前記停止判断距離と前記離隔距離との差に比例した速度に制御することを特徴とする。
【００３１】
また、本発明の第２の観点にかかるロボットは、歩行者等を先導するロボットであって、ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手段と、前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手段と、前記左側座標特定手段が特定した反射点の座標と、前記右側座標特定手段が特定した反射点の座標との中点の座標を算出する中点座標算出手段と、前記中点座標算出手段が算出した中点の座標近傍に、ロボットの位置を制御する進路制御手段とを備えることを特徴とする。
【００３２】
好ましくは、前記左側座標特定手段又は右側座標特定手段は、ロボットの真横から前記左側又は右側の範囲の前端に至る領域に照射されたレーザ光のうち、隣り合う位置を進行した２つのレーザ光の組における距離データの差を順次算出して、所定の閾値を超えるか否かを判断し、前記距離データの差が閾値を超える組を検出しなかった場合には、前記左側又は右側の範囲の前端にある反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、前記距離データの差が閾値を超える組を検出した場合には、前記左側又は右側の範囲の前端までの領域で、前記閾値を超えた組における２つのレーザ光のうち、後寄りのレーザ光の反射点に比して、ロボットに近い反射点が存在するか探索し、ロボットに近い反射点が探索された場合には、当該反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、ロボットに近い反射点が探索されなかった場合には、前記後寄りのレーザ光の反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定することを特徴とする。
【００３３】
好ましくは、前記左側又は右側の範囲に照射されたレーザ光の距離データに基づき、前記左側又は右側の範囲に、壁が存在するか否かを判断する壁有無判定手段と、前記壁有無判定手段によって前記左側又は右側の範囲のいずれか一方に壁が存在しないことが確認された場合、壁の存在が確認された範囲において、ロボットの真横から前側に生じた２つの反射点の座標を特定する座標特定手段と、前記座標特定手段が特定した２つの反射点の座標と、ロボットの座標とを３つの頂点とする平行四辺形における残りの１つの頂点の座標を算出する頂点算出手段と、前記頂点算出手段が算出した座標近傍に、ロボットの位置を制御する進路制御手段とをさらに備えることを特徴とする。
【００３４】
好ましくは、前記ロボットの左側又は右側の範囲において、ロボットよりも前側に歩行の妨げとなる障害物が存在する場合には、前記左側座標特定手段及び右側座標特定手段のうち一方は、前記距離データ獲得手段によって獲得された距離データに基づき、前記障害物の表面に生じた反射点の座標を特定し、前記中点座標算出手段は、前記障害物の表面に生じた反射点の座標と、前記左側座標特定手段及び右側座標特定手段のうち他方が特定した反射点の座標との中点の座標を算出することを特徴とする。
【００３５】
また、本発明の第３の観点にかかる制御プログラムは、歩行者等を先導するロボットの制御プログラムであって、ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手順と、前記胴体中心特定手順で特定された座標に基づき、ロボットの速度を制御する速度制御手順とをロボットに実行させることを特徴とする。
【００３６】
また、本発明の第４の観点にかかる制御プログラムは、歩行者等を先導するロボットの制御プログラムであって、ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手順と、前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手順と、前記左側座標特定手順で特定された反射点の座標と、前記右側座標特定手順で特定された反射点の座標との中点の座標を算出する中点座標算出手順と、前記中点座標算出手順で算出された中点の座標近傍に、ロボットの位置を制御する進路制御手順とをロボットに実行させることを特徴とする。
【００３７】
本発明の第５の観点にかかる記録媒体は、前記制御プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００３８】
本発明によれば、歩行者の両足を示す可能性のある２つのクラスタの組が特定され、さらに、このクラスタの組に基づき、現在の胴体中心位置の座標が特定されて、この位置に基づき、ロボットの速度が制御される。ここで、歩行者の胴体中心は、両足が前後往復運動をしているときでも、大きな変位を伴わず、滑らかに移動する。このことから、歩行者の位置をブレなく追跡できる。また、歩行者の追跡のために負荷の大きな処理を必要としないことから、歩行者の追跡に要する計算時間が短い。このため、歩行者の現位置を追跡することができる。以上のことから、本発明によれば、高いロバスト性で歩行者の位置を追跡できるため、ロボットは確実に歩行者の歩行ペースに合わせて走向するようになる。
【００３９】
また本発明によれば、ロボットの左右両側に壁が存在する場合には、これら左右の壁の表面でロボットよりも前側に生じた反射点の座標が獲得される。そして、これらの反射点の中点位置に、ロボットの位置が制御される。これにより、ロボットは、ロボットの前側における廊下の中央位置を走向するようになるので、ロボットを追随する歩行者に対して、確実に壁を回避可能な進路が提示される。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施の形態におけるロボットが歩行者を先導している状態を示す側面図である。
【図２】ロボットが走向する廊下内の環境を示す平面図である。
【図３】ロボットを示す写真である。
【図４】ロボットのハードウェア構成を示すブロック図である。
【図５】ロボット全体における処理を概略的に示すフローチャートである。
【図６】図５のステップＳ１０４により抽出される反射点のクラスタを示す平面図である。
【図７】図５のステップＳ１１４で範囲Ｂについて取得される反射点の座標の例を示す平面図である。
【図８】図５のステップＳ１１４で範囲Ｂについて取得される反射点の座標の例を示す平面図である。
【図９】図５のステップＳ１１４で範囲Ｂについて取得される反射点の座標の例を示す平面図である。
【図１０】図５のステップＳ１１４で範囲Ｂについて取得される反射点の座標の例を示す平面図である。
【図１１】図５のステップＳ１１５で算出される中点Ｕの座標の例を示す平面図である。
【図１２】図５のステップＳ１１５で算出される中点Ｕの座標の例を示す平面図である。
【図１３】図５のステップＳ１１７で特定されるロボットの真横から前側に生じた反射点ｈの座標の例を示す平面図である。
【図１４】図５のステップＳ１１７で特定されるロボットの真横から前側に生じた反射点ｈの座標の例を示す平面図である。
【図１５】図５のステップＳ１０１で作成されるデータテーブルの例を示す図である。
【図１６】図５のステップＳ１０４の処理の詳細を示すフローチャートである。
【図１７】図５のステップＳ１０７の処理の詳細を示すフローチャートである。
【図１８】図５のステップＳ１０９の処理の詳細を示すフローチャートである。
【図１９】図５のステップＳ１１０の処理の詳細を示すフローチャートである。
【図２０】図６に示す歩行者の右足・左足近傍の領域を、拡大して示す平面図である。
【図２１】図５のステップＳ１１２の処理の詳細を示すフローチャートである。
【図２２】図２１のステップＳ６０１で算出される離隔距離と、ステップＳ６０２で制御される後輪の駆動速度との関係を示す図である。
【図２３】レーザ光の進路に対して左足が右足の背後にある状況を示す平面図である。
【図２４】図５のステップＳ１１３の処理の詳細を示すフローチャートである。
【図２５】図５のステップＳ１１４の処理の詳細を示すフローチャートである。
【図２６】図５のステップＳ１１７の処理の詳細を示すフローチャートである。
【図２７】図５のステップＳ１２０の処理の詳細を示すフローチャートである。
【図２８】ロボットの先導機能の評価実験で、ロボットが歩行者を先導している状態を示す側面図である。
【図２９】ロボットの先導機能の評価実験が行われた廊下環境を示す平面図である。
【図３０】非特許文献１の方式によるロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【図３１】本発明のロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【図３２】本発明のロボットの速度の時系列変化を示す図である。
【図３３】歩行者の左右の足の変位を示す図である。
【図３４】ロボットを追い越す歩行者が存在する条件下における、本発明のロボットの軌跡と、歩行者の軌跡とを示す平面図である。
【図３５】非特許文献１のロボットが、屋内の廊下を走向する状況を示す平面図である。
【図３６】非特許文献１のロボットで生成される画像を示す平面図である。
【図３７】非特許文献１のロボットで取得される反射点の座標の例を示す平面図である。
【発明を実施するための形態】
【００４１】
以下、この発明の実施の形態１について図を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。図１は、本発明の実施の形態におけるロボット１が歩行者を先導している状態を示す側面図であり、図２は、ロボット１が走向する廊下内の環境を示す平面図であり、図３は、ロボット１を示す写真であり、図４は、ロボット１のハードウェア構成を示すブロック図である。
【００４２】
ロボット１は、一つの前輪３１及び左右の後輪３２を備えた移動機構３と、歩行者や障害物等の位置を検出するためのＬＲＦ５と、移動機構３とＬＲＦ５との接続を図るシステムコントローラ７（図３，４参照）とを備え、後輪３２の駆動により、前輪３１によって操舵された方向に進行可能である。
【００４３】
以下、ロボット１が進行する方向を「前方向」と記し、ロボット１の進行方向に対して１８０度反対側の方向（進行方向の逆方向）を「後方向」と記し、ロボット１の進行方向に対して左側に９０度傾く方向を「左方向」と記し、ロボット１の進行方向に対して右側に９０度傾く方向を「右方向」と記す。
【００４４】
移動機構３には、図４に示すように、コンピュータ３３と、接地型ロータリエンコーダ３４とが搭載されている。コンピュータ３３は、前輪３１の操舵角や後輪３２の駆動速度をプログラム処理によって５ミリ秒間隔で制御可能である。コンピュータ３３としては、例えば北陽電機製のSH-4プロセッサを備えたコンピュータを使用することができる。接地型ロータリエンコーダ３４は、オドメトリによって後輪３２の駆動量を算出可能である。
【００４５】
ＬＲＦ５は、小型且つ軽量のスキャナ式レーザレンジファインダであって、レーザ光を出射して、物体の表面に生じた反射点ｈまでの距離データ（図１，２参照）を獲得する。ＬＲＦ５は、レーザ光の発射部が後方向を向くように移動機構３上に設置されており、図２に示すように、後方向を中心とする１２０度の範囲Ａと、右方向を中心とする６０度の範囲Ｂと、左方向を中心とする６０度の範囲Ｃとに、所定角度ピッチで放射線状にレーザ光を照射する。
【００４６】
またＬＲＦ５は、図１に示すように、レーザ光の出射高さが床から約２０ｃｍの位置に設定されている。これにより、範囲Ａ，Ｂ，Ｃに存在する物体の前記２０ｃｍの高さにおける水平断面形状を計測することができる。範囲Ａに照射されたレーザ光によって得られたデータは、ロボット１の後方に存在する歩行者の足などの物体を検出するために用いられ、範囲Ｂ，Ｃに照射されたレーザ光によって得られたデータは、廊下の壁や障害物を検出するために用いられる。ＬＲＦ５として、例えば北陽電機製のURG-04LXを用いることができる。
【００４７】
システムコントローラ７は、移動機構３上に搭載された小型且つ軽量のコンピュータであり、図４に示すように、ＬＲＦ５とＵＳＢ接続が行われ、移動機構３とシリアル接続及びＵＳＢ接続が行われている。この接続により、システムコントローラ７は、ＬＲＦ５とのデータ送受信を行ったり、移動機構３のコンピュータ３３へ指令を送信することができる。システムコントローラ７としては、例えば富士通製のコンピュータ（FMV-BIBLO LOOX U50X/V）を用いることができる。
【００４８】
次に、ロボット１で実行される処理について説明する。図５は、ロボット１の全体における処理を概略的に示すフローチャートである。
【００４９】
ロボット１では、まずＬＲＦ５において環境スキャン処理が行われ、その後、システムコントローラ７において歩行者位置検出処理・壁有無判定処理・障害物位置検出処理が行われる。そして移動機構３において、歩行者位置検出処理に続いて速度制御処理が行われ、障害物位置検出処理に続いて進路制御処理が行われる。以下、これらの処理の概略について順に説明する。なお上記の各処理は、ＬＲＦ５や、システムコントローラ７や、移動機構３のコンピュータ３３に記憶されたプログラムに基づき実行される。
【００５０】
環境スキャン処理では、ＬＲＦ５は、一定の時間間隔で範囲Ａ，Ｂ，Ｃに向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット１から反射点ｈまでの距離データを獲得する（ステップＳ１０１）。
【００５１】
次に、ＬＲＦ５は、ステップＳ１０１で取得した距離データを、システムコントローラ７に送信する（ステップＳ１０２）。
【００５２】
そして、システムコントローラ７は、ＬＲＦ５からデータを受信することに応じて、ステップＳ１０３からの処理を開始する。このシステムコントローラ７における処理は、ＬＲＦ５が範囲Ａ，Ｂ，Ｃに向けてレーザ光を照射するたび（すなわちステップＳ１０２でＬＲＦ５からデータを受信するたび）に行われる。
【００５３】
まず、システムコントローラ７は、ＬＲＦ５から受信したデータのデコードを行う（ステップＳ１０３）。
【００５４】
そして、システムコントローラ７は、範囲Ａに照射されたレーザ光の距離データに基づき、歩行者位置検出処理を開始する。
【００５５】
まず、システムコントローラ７は、範囲Ａに存在する物体の各々の表面に生じた反射点ｈのクラスタを抽出する（ステップＳ１０４）。
【００５６】
図６は、ステップＳ１０４により抽出される反射点ｈのクラスタを示す平面図である。図６では、範囲Ａに存在する物体として、歩行者の右足・左足と、物体Ｂ１，Ｂ２とが示されている。図６に示す状況下では、ステップＳ１０４により、物体Ｂ１の表面に生じた反射点ｈ１〜ｈ３のクラスタ１と、右足の表面に生じた反射点ｈ４〜ｈ６のクラスタ２と、左足の表面に生じた反射点ｈ７〜ｈ９のクラスタ３と、物体Ｂ２の表面に生じた反射点ｈ１０〜ｈ１７のクラスタ４とが抽出される。
【００５７】
そしてステップＳ１０４の実行後では、システムコントローラ７は、ステップＳ１０４で抽出されたクラスタの中から、歩行者の足を示す可能性のあるクラスタ（以下、注目クラスタと記す）を抽出する（ステップＳ１０５）。この処理では、ステップＳ１０４で抽出されたクラスタのうち、足と同程度のサイズの物体を示すクラスタが、注目クラスタとして抽出される。
【００５８】
図６の例では、クラスタ２，３は、歩行者の足を示すクラスタであることから、注目クラスタとして抽出される。また、物体Ｂ１を示すクラスタ１も、物体Ｂ１が足と同程度のサイズを有していることから、注目クラスタとして抽出される。しかしながら、物体Ｂ２を示すクラスタ４は、物体Ｂ２が足よりも大きなサイズを有していることから、注目クラスタとしては抽出されない。
【００５９】
次に、システムコントローラ７は、注目クラスタに含まれる反射点ｈの座標の代表値Ｄを算出する（ステップＳ１０６）。この代表値Ｄは、ステップＳ１０５で抽出された注目クラスタ毎に獲得される。
【００６０】
図６の例では、クラスタ１の代表値Ｄ１の座標が得られ、クラスタ２の代表値Ｄ２の座標が得られ、クラスタ３の代表値Ｄ３の座標が得られた状態が示されている。
【００６１】
次に、システムコントローラ７は、ステップＳ１０５で抽出された注目クラスタの中から、歩行者の両足を示している可能性のある２つの注目クラスタの組を抽出する（ステップＳ１０７）。この処理は、ステップＳ１０６で算出された代表値Ｄに基づき行われ、ステップＳ１０５でｎ個の注目クラスタが抽出されている場合には、このｎ個の注目クラスタの中から、隣り合う一対の物体を示す２つの注目クラスタがｎ−１組設定され、さらに、このｎ−１個の組の中から、両足を示している可能性のある注目クラスタの組が抽出される。
【００６２】
図６の例では、隣り合う注目クラスタの組として、代表値（Ｄ１，Ｄ２）に基づき、クラスタ１，２の組が設定され、代表値（Ｄ２，Ｄ３）に基づき、クラスタ２，３の組が設定され得る。そしてさらに、クラスタ１，２の組・クラスタ２，３の組のいずれもが、代表値（Ｄ１，Ｄ２）（Ｄ２，Ｄ３）に基づき、両足を示す可能性のある注目クラスタの組として抽出され得る。
【００６３】
次に、システムコントローラ７は、ステップＳ１０７で抽出された注目クラスタの組において、一方の注目クラスタから得られた代表値Ｄと、他方の注目クラスタから得られた代表値Ｄとの中点Ｔの座標を算出する（ステップＳ１０８）。この処理は、ステップＳ１０７で抽出された組毎に行われる。この結果、中点Ｔの座標は、複数獲得され得る。
【００６４】
図６の例では、クラスタ１，２の組について、代表値Ｄ１と代表値Ｄ２との中点Ｔ１の座標が算出され、クラスタ２，３の組について、代表値Ｄ２と代表値Ｄ３との中点Ｔ２の座標が算出されている。
【００６５】
次に、システムコントローラ７は、現在の歩行者の胴体中心位置の座標を推定する（ステップＳ１０９）。この推定は、過去の処理（後述のステップＳ１１０の過去の処理）で特定した歩行者の胴体中心位置に基づき行われる。
【００６６】
次に、システムコントローラ７は、ステップＳ１０８で算出した中点Ｔの座標の中から、歩行者の胴体中心位置を示す可能性が高い座標を特定する（ステップＳ１１０）。この処理では、ステップＳ１０８で算出された中点Ｔの座標のうち、ステップＳ１０９の推定位置Ｓの座標に最も近い座標が特定される。
【００６７】
図６の例では、ステップＳ１０９による推定位置Ｓ１が示されており、中点Ｔ１，Ｔ２のうち、中点Ｔ２が推定位置Ｓ１に近いと判断されて、中点Ｔ２の座標が、胴体中心位置を示す可能性が高い座標として特定される。
【００６８】
次に、システムコントローラ７は、ステップＳ１０９で特定した中点Ｔの座標（胴体中心位置を示す可能性が高い座標）を、移動機構３に送信する（Ｓ１１１）。図６の例の説明では、中点Ｔ２の座標が、移動機構３に送信される。
【００６９】
以上で歩行者位置検出処理は終了し、移動機構３は、ステップＳ１１１で送信された座標を受信することに応じて、速度制御処理を開始する。
【００７０】
この速度制御処理では、移動機構３は、ステップＳ１１１により受信した座標に基づき、後輪３２の駆動速度を制御する（ステップＳ１１２）。この結果、ロボット１の速度は、歩行者との離隔距離に応じて制御されるようになる。
【００７１】
次に、システムコントローラ７における壁有無判定処理・障害物位置検出処理の概略について説明する。
【００７２】
ステップＳ１０３のデコードが行われると、システムコントローラ７は、範囲Ｂ，Ｃ（図２参照）に照射されたレーザ光の距離データに基づき、範囲Ｂ，Ｃに壁が存在するか否かを判断する（ステップＳ１１３）。
【００７３】
範囲Ｂ，Ｃのいずれにも壁が存在すると判断された場合には（ステップＳ１１３でＹＥＳ）、ステップＳ１１４からの障害物位置検出処理が開始される。
【００７４】
また、範囲Ｂ，Ｃのいずれか一方に壁が存在していないと判断された場合には（ステップＳ１１３でＮＯ）、ステップＳ１１７からの障害物位置検出処理が開始される。
【００７５】
まず、ステップＳ１１４から開始される障害物位置検出処理の流れについて説明する。
【００７６】
この流れでは、まず、システムコントローラ７は、範囲Ｂ，Ｃに照射されたレーザ光の距離データに基づき、範囲Ｂ，Ｃにおいて、ロボット１よりも前側に生じた反射点ｈの座標を特定する（ステップＳ１１４）。以下、ステップＳ１１４で範囲Ｂについて特定される反射点ｈの座標の例を、図７，８，９，１０を用いて説明する。
【００７７】
図７は、範囲Ｂの後端から前端に亘って、右側の壁が延びている状況を示している。この状況下では、例えば、範囲Ｂの前端における壁表面に生じた反射点ｈ２３の座標が特定される。
【００７８】
図８は、範囲Ｂの後端と前端との間で、右側の壁が途切れている状況を示している。この状況下では、例えば、壁の途切れ手前の反射点ｈ３１の座標が特定される。
【００７９】
図９は、右側の壁が範囲Ｂの前端付近で途切れており、この途切れた先に、レーザ光を拡散反射しにくい材質の物体Ｃ（例えば黒いドア）が存在している状況を示している。この状況下では、例えば、物体Ｃの手前の壁表面に生じた反射点ｈ４２の座標が特定される。
【００８０】
図１０は、範囲Ｂにおいてロボット１よりも前側に障害物Ｂ３が存在している状況を示している。この状況下では、例えば、障害物Ｂ３の表面で生じた反射点ｈ５５の座標が特定される。
【００８１】
ステップＳ１１４では、範囲Ｃについても同様に、ロボット１よりも前側に生じた反射点ｈの座標が特定される。すなわち、範囲Ｃでは、左側の壁の状況に応じて、範囲Ｃの前端における壁表面に生じた反射点ｈの座標や、壁の途切れ手前の反射点ｈの座標や、反射を生じにくい物体の手前の壁表面に生じた反射点ｈの座標が特定される。また、ロボット１よりも前側に障害物が存在しているときには、障害物の表面で生じた反射点ｈの座標が特定される。
【００８２】
図５に戻り、ステップＳ１１４の実行後では、システムコントローラ７は、ステップＳ１１４で特定した範囲Ｂ，Ｃの反射点ｈの座標の中点Ｕの座標を算出する（ステップＳ１１５）。ステップＳ１１５で算出される中点Ｕの座標の例を、図１１，１２を用いて説明する。
【００８３】
図１１は、範囲Ｂ，Ｃの両端に亘って、右側・左側の壁が存在している状況を示している。この状況下では、ステップＳ１１４により、範囲Ｂの前端における右側壁の表面に生じた反射点ｈ６０の座標と、範囲Ｃの前端における左側壁の表面に生じた反射点ｈ６１の座標とが特定される。そして、ステップＳ１１５では、反射点ｈ６０，ｈ６１の中点Ｕ１の座標が取得される。この中点Ｕ１は、ロボット１よりも前側における廊下の中央位置を示している。
【００８４】
図１２は、右側・左側の壁が、それぞれ範囲Ｂ，Ｃの両端に亘って存在しており、範囲Ｃの前端における壁際に障害物Ｂ４が存在している状況を示している。この状況下では、ステップＳ１１４により、範囲Ｂの前端における右側壁の表面に生じた反射点ｈ７０の座標と、障害物Ｂ４の表面に生じた反射点ｈ７５の座標とが特定される。そして、ステップＳ１１５では、反射点ｈ７０，ｈ７５の中点Ｕ２の座標が取得される。この中点Ｕ２は、ロボット１よりも前側における、右側の壁と障害物Ｂ４との間の中央位置を示している。
【００８５】
図５に戻り、ステップＳ１１５の実行後では、システムコントローラ７は、ステップＳ１１５で算出した中点Ｕの座標を移動機構３に送信する（ステップＳ１１６）。以上によりステップＳ１１４からの障害物位置検出処理は終了する。
【００８６】
次に、ステップＳ１１７からの障害物位置検出処理の流れについて説明する。この処理の流れは、上述したように、範囲Ｂ，Ｃのいずれか一方に壁が存在しない場合に実行される。
【００８７】
この流れでは、システムコントローラ７は、まず範囲Ｂ，Ｃのうち、壁が存在する方の範囲において、ロボット１の真横から前側に生じた反射点ｈの座標を特定する（ステップＳ１１７）。ステップＳ１１７で特定される反射点ｈの座標の例を、図１３，１４を用いて説明する。
【００８８】
図１３は、左側の壁が存在するが、右側の壁が存在しない状況を示している。この状況下では、範囲Ｃの前端における左側壁の表面に生じた反射点ｈ８４の座標が特定される。
【００８９】
図１４は、左側の壁は存在するが、右側の壁が存在しておらず、また、範囲Ｃの前端における壁際に障害物Ｂ５が存在している状況を示している。この状況下では、障害物Ｂ５の表面で生じた反射点ｈ９３の座標が特定される。
【００９０】
図５に戻り、ステップＳ１１７の実行後では、システムコントローラ７は、ステップＳ１１７で特定したロボット１前側の反射点ｈの座標と、ロボット１の真横付近（真横或いは真横よりも前側の位置）の反射点ｈの座標と、ロボット１の座標と、を３つの頂点とする平行四辺形において、残りの１つの頂点Ｑとなる座標を算出する（ステップＳ１１８）。この頂点Ｑの座標は、下記数１に基づき行われる。なお、上記のロボット１の真横付近の反射点ｈの座標は、ステップＳ１１３でシステムコントローラ７に記憶されるものである。
【数１】
2011059905.tif 000003
【００９１】
図１３の例では、ステップＳ１１７で特定されたロボット１前側の反射点ｈ８４の座標と、範囲Ｃでロボット１の真横付近に生じた反射点ｈ８０の座標と、ロボット１の座標とを３つの頂点とする平行四辺形において、残りの１つの頂点Ｑ１の座標が算出されている。
【００９２】
また図１４の例では、ステップＳ１１７で特定されたロボット１前側の反射点ｈ９３の座標と、範囲Ｃでロボット１の真横付近に生じた反射点ｈ９０の座標と、ロボット１の座標とを３つの頂点とする平行四辺形において、残りの１つの頂点Ｑ２の座標が算出されている。
【００９３】
図５に戻り、ステップＳ１１８の実行後では、システムコントローラ７は、ステップＳ１１８で算出した頂点Ｑの座標を、移動機構３に送信する（ステップＳ１１９）。以上によりステップＳ１１７からの障害物位置検出処理は終了する。
【００９４】
そして、ステップＳ１１６，Ｓ１１９が実行されることに応じて、移動機構３は、進路制御処理を開始する。
【００９５】
この進路制御処理では、移動機構３は、ステップＳ１１６，Ｓ１１９で受信された中点Ｕ又は頂点Ｑの座標に基づき、前輪３１の操舵角を制御する（ステップＳ１２０）。これにより、ロボット１は、ステップＳ１１６，Ｓ１１９で受信された座標の位置（例えば図１１〜１４のＵ１，Ｕ２，Ｑ１，Ｑ２の位置）近傍に向けて走向するようになる。
【００９６】
次に、ロボット１で実行される処理の詳細について説明する。まず、図５のステップＳ１０１の詳細として、ＬＲＦ５から範囲Ａ，Ｂ，Ｃに向けて照射されるレーザ光の順序と、ステップＳ１０１で作成されるデータテーブルとについて説明する。
【００９７】
範囲Ａにおけるレーザ光の照射順序は、（１）範囲Ａの右端を通過するレーザ光を始めとして、左寄りのレーザ光が後になる順序、或いは（２）範囲Ａの左端のレーザ光を始めとして、右寄りのレーザ光が後になる順序に設定される。
【００９８】
図２のＲ１〜６は、範囲Ａに連続して照射されたレーザ光の例を示している。これらＲ１〜６の照射順序は、（１）左寄りのレーザ光が後になる順序では、Ｒ１→Ｒ２→Ｒ３→Ｒ４→Ｒ５→Ｒ６の順となり、（２）右寄りのレーザ光が後になる順序では、Ｒ６→Ｒ５→Ｒ４→Ｒ３→Ｒ２→Ｒ１の順となる。
【００９９】
また範囲Ｂ，Ｃにおけるレーザ光の照射順序は、範囲Ｂ，Ｃの後端を通過するレーザ光を始めとして、前寄りのレーザ光が後になる順序となっている。
【０１００】
図２のＲ７〜１２は、範囲Ｂに連続して照射された照射されたレーザ光の例を示している。これらＲ７〜１２の照射順序は、Ｒ７→Ｒ８→Ｒ９→Ｒ１０→Ｒ１１→Ｒ１２の順序となる。
【０１０１】
図１５は、図５のステップＳ１０１で作成されるデータテーブルの例を示している。このデータテーブルは、範囲Ｂに照射されたレーザ光について作成されたものであって、範囲Ｂに照射されたレーザ光の各々に対応する行が設けられている。これらの行では、レーザ光によって得られた距離データと、レーザ光に関する情報（レーザ光が照射された順番・レーザ光が進行した角度位置）とが記されている。
【０１０２】
例えば、データテーブルの１行目は、範囲Ｂの後端を通過したレーザ光に対応し、データテーブルの２行目は、後端のレーザ光の１ピッチ前寄りを通過したレーザ光に対応している。そして、データテーブルの１行目では、後端のレーザ光によって得られた距離データＡや、後端のレーザ光が照射された順番（１番目）や、後端のレーザ光が進行した角度位置（０．０°：範囲Ｂ後端からの角度）が記されている。
【０１０３】
図５のステップＳ１０１では、上記のデータテーブルが、範囲Ａ，Ｂ，Ｃに照射されたレーザ光のいずれにもついても作成される。そして、これらのデータテーブルは、ステップＳ１０２でシステムコントローラ７に送信される。
【０１０４】
なお図１５に示すデータテーブルでは、５，９行目において、距離データが記されていない。これは、５，９行目に対応するレーザ光の反射点を、ＬＲＦ５が計測できなかったことによるものである。この理由としては、レーザ光の進路の先に、反射を生じさせる壁が存在していなかったことや（図１３，１４の範囲Ｂ参照）、レーザ光を反射しにくい材質の物体（図９の物体Ｃ参照）が存在していたことがあげられる。
【０１０５】
次に、図５のステップＳ１０４の詳細について説明する。
【０１０６】
図６に示すレーザ光Ｒ１３〜１８は、範囲Ａに照射されたレーザ光の例を示している。このうち、Ｒ１３〜１６は連続して照射されたものであって、Ｒ１３，Ｒ１４，Ｒ１５は、物体Ｂ１の表面に反射点ｈ１，ｈ２，ｈ３を生じさせている。また、Ｒ１５は、物体Ｂ１の脇を通過して物体Ｂ２に照射されたことで、物体Ｂ２の表面に反射点ｈ１０を生じさせている。
【０１０７】
ここで、Ｒ１３とＲ１４のように、１ピッチの角度間隔をあけて進行した２つのレーザ光が同一の物体に照射された場合、これらレーザ光の反射点は近い位置に生じる（Ｒ１３，Ｒ１４の反射点ｈ１，ｈ２参照）。よって、これら２つのレーザ光により得られる距離データは同程度の値を示すものとなる。
【０１０８】
これに対して、Ｒ１５とＲ１６のように、１ピッチの角度間隔をあけて進行した２つのレーザ光が異なる物体（物体Ｂ１，Ｂ２）に照射され、これらの物体が他方から離れた位置にある場合には、２つのレーザ光の反射点は遠い位置に生じる（Ｒ１５，Ｒ１６の反射点ｈ３，ｈ１０参照）。よって、これら２つのレーザ光により得られる距離データは、大きく異なる値を示すものとなる。
【０１０９】
これに鑑み、図５のステップＳ１０４では、範囲Ａに照射されたレーザ光のうち、隣り合う位置を進行した２つのレーザ光の組における距離データの差が順次算出され、この差に基づき、同一の物体の表面に生じた反射点ｈを特定することが行われる。以下、具体的に説明する。
【０１１０】
なお以下では、図６のＲ１３が範囲Ａの右端を通過したレーザ光に該当し、Ｒ１８が範囲Ａの左端を通過したレーザ光に該当し、Ｒ１７がＲ１８の１ピッチ右寄りの位置を進行したレーザ光に該当するものとして説明する。また、レーザ光の照射順序は、右端を通過するレーザ光（Ｒ１３）を始めとして、左寄りのレーザ光が後となる順序（Ｒ１８が最後となる順序）に設定されているものとする。
【０１１１】
図１６は、ステップＳ１０４の処理の詳細を示すフローチャートである。
【０１１２】
まず、システムコントローラ７は、距離データの差を算出する２つのレーザ光の組を選択する（ステップＳ２０１）。初回の処理では、範囲Ａの右端を通過したＲ１３と、これの１ピッチ左寄りを進行したＲ１４とからなる組が選択される。
【０１１３】
具体的には、範囲Ａについて作成されたデータテーブルにおいて、Ｒ１３，Ｒ１４に対応する２行が、距離データの差を算出する行として選択される。この行の選択は、データテーブルに示されるレーザ光に関する情報（レーザ光の照射順序・レーザ光の角度位置）に基づき行われる。
【０１１４】
次に、システムコントローラ７は、ステップＳ２０１で選択した２つのレーザ光の距離データの差を算出する（ステップＳ２０２）。具体的には、ステップＳ２０１で選択されたデータテーブルの２行に記されている距離データの差が選択される。
【０１１５】
次に、システムコントローラ７は、ステップＳ２０２で算出した差が、所定の閾値を超えているか否かを判断する（ステップＳ２０３）。
【０１１６】
距離データの差が閾値を超えていないと判断された場合には（ステップＳ２０３でＮＯ）、ステップＳ２０１で選択された２つのレーザ光の反射点ｈは、同一の物体の表面に生じたものとして、同一のクラスタに登録される（ステップＳ２０４）。
【０１１７】
一方、距離データの差が閾値を超えていると判断された場合には（ステップＳ２０３でＹＥＳ）、ステップＳ２０１で選択された２つのレーザ光の反射点ｈは、異なる物体の表面に生じたものとして、異なるクラスタに登録される（ステップＳ２０５）。
【０１１８】
例えば、ステップＳ２０１で選択された２つのレーザ光が図６のＲ１３，Ｒ１４である場合には、Ｒ１３，Ｒ１４の反射点ｈ１，ｈ２がいずれも物体Ｂ１の表面に生じていることで、Ｒ１３，Ｒ１４の距離データの差は小さい。これにより、Ｒ１３，Ｒ１４の距離データの差は閾値を超えていないと判断される（ステップＳ２０３でＮＯ）。この結果、Ｒ１３，Ｒ１４の反射点ｈ１，ｈ２は、同一のクラスタに登録される（ステップＳ２０４）。
【０１１９】
そして図１６のステップＳ２０４，Ｓ２０５の実行後では、システムコントローラ７は、範囲Ａにおける全てのレーザ光の組について、距離データの差の算出や、クラスタの登録処理（Ｓ２０２〜Ｓ２０４，２０５の処理）を行ったか否かを判断する（ステップＳ２０６）。図６の例による説明では、処理が行われたのは、Ｒ１３，Ｒ１４の組についてのみであるため、ＮＯと判断されて、ステップＳ２０７に移行する。
【０１２０】
そしてステップＳ２０７では、距離データの差を算出するレーザ光の組が、１ピッチ左寄りの組に変更される。図６のＲ１３，Ｒ１４の組が選択されていた場合には、これらの１ピッチ左寄りにあるＲ１４，Ｒ１５の組に変更される。
【０１２１】
そして再びステップＳ２０２，Ｓ２０３が実行されることで、ステップＳ２０７で変更された２つのレーザ光の組について、距離データの差が算出されて、閾値を超えていないか判断される。
【０１２２】
そして、距離データの差が閾値を超えていないと判断された場合には（ステップＳ２０３でＮＯ）、ステップＳ２０７で新たに選択されたレーザ光の反射点ｈが、前回の処理で反射点の登録が行われたクラスタに追加登録される（ステップＳ２０４）。
【０１２３】
一方、距離データの差が閾値を超えていると判断された場合には（ステップＳ２０３でＹＥＳ）、ステップＳ２０７で新たに選択されたレーザ光の反射点ｈは、前回の処理で登録があったクラスタとは異なるクラスタに登録される（ステップＳ２０５）。
【０１２４】
例えばステップＳ２０７で、図６のＲ１３，Ｒ１４の組から、図６のＲ１４，Ｒ１５の組に変更されていた場合には、Ｒ１５が、ステップＳ２０７で新たに選択されたレーザ光に該当する（Ｒ１４は、前回の処理で既に選択されているため、新たに選択されたレーザ光ではない）。
【０１２５】
この場合、Ｒ１５の反射点ｈ３は、Ｒ１４の反射点ｈ２と同様に、物体Ｂ１の表面に生じていることから、Ｒ１４，Ｒ１５の距離データの差は小さい。このため、ステップＳ２０３では、閾値を超えていないと判断される（ステップＳ２０３でＮＯ）。この結果、Ｒ１４の反射点ｈ３は、前回処理で反射点ｈ２が登録されたクラスタに追加登録される（ステップＳ２０４）。
【０１２６】
そして、ステップＳ２０４で反射点ｈ３の登録が行われた後では、ステップＳ２０６が実行されるが、Ｓ２０２〜Ｓ２０４，２０５が行われた組は、Ｒ１３，Ｒ１４の組、Ｒ１４，Ｒ１５の組だけであるため、ＮＯと判断されて、ステップＳ２０７に移行する。
【０１２７】
このステップＳ２０７では、Ｒ１４，Ｒ１５の組から、Ｒ１５，Ｒ１６の組に変更される。この場合、Ｒ１６が、ステップＳ２０７で新たに選択されたレーザ光に該当することになる。
【０１２８】
そして、再びステップＳ２０２，２０３が実行されることで、Ｒ１５，Ｒ１６の距離データの差が算出されて、閾値を超えていないか判断される。この際には、Ｒ１６の反射点ｈ１０は、Ｒ１５の反射点ｈ３とは異なり、物体Ｂ２の表面に生じていることから、Ｒ１５，Ｒ１６の距離データの差は大きい。このため、ステップＳ２０３では閾値を超えていると判断される（Ｓ２０３でＹＥＳ）。この結果、Ｒ１６の反射点ｈ１０は、前回処理で反射点ｈ３が登録されたクラスタとは、異なるクラスタに登録される（ステップＳ２０５）。
【０１２９】
上記のＳ２０２〜Ｓ２０７は、範囲Ａの左端に照射されたＲ１７，Ｒ１８の組が完了するまで繰り返される。この結果、範囲Ａに存在する物体の各々（物体Ｂ１・右足・左足・物体Ｂ２）の表面に生じた反射点ｈのクラスタ１，２，３，４が抽出される。そして、Ｒ１７，Ｒ１８の組についての処理が完了した際には、ステップＳ２０６でＹＥＳと判断されて、ステップＳ１０４は終了する。
【０１３０】
次に、図５のステップＳ１０５の詳細について説明する。
【０１３１】
クラスタを構成する反射点ｈの数は、物体の大きさに応じて変わり、足を示すクラスタは、電柱のような太い物体を示すクラスタに比して反射点ｈの数が少なく、また、箒の柄のように細い物体を示すクラスタに比して反射点ｈの数が多い。図６の例では、右足・左足を示すクラスタ２，３は、反射点の数が３であるのに対して、足よりも大きな物体Ｂ２を示すクラスタ４は、反射点の数が８となっている。
【０１３２】
これに鑑みステップＳ１０５では、クラスタを構成する反射点ｈの数に基づき、注目クラスタが抽出される。具体的には、システムコントローラ７は、ステップＳ１０４で抽出されたクラスタの中から、反射点ｈの数が所定の範囲に含まれるクラスタを、注目クラスタとして抽出する。
【０１３３】
上記の範囲は、レーザ光の照射により足の表面に生じる反射点ｈの数を、足の位置を変えるたびに測定し、この測定で得られた最大値・最小値を、上限・下限とすることで設定されるものである。
【０１３４】
例えば、上記の範囲が２以上４以下に設定されている場合、図６の例では、反射点の数が３であるクラスタ１，２，３は、注目クラスタとして抽出されるが、反射点の数が８であるクラスタ４は、注目クラスタとして抽出されない。
【０１３５】
次に、図５のステップＳ１０６の詳細について説明する。
【０１３６】
このステップＳ１０６では、システムコントローラ７は、下記数２により、注目クラスタに含まれる反射点ｈの座標を均等重みで平均化することで代表値Ｄを算出する。例えば、図６に示すクラスタ１では、反射点ｈ１，ｈ２，ｈ３の座標について、数２による平均化が行われることで、代表値Ｄ１の座標が算出される。
【数２】
2011059905.tif 000004
【０１３７】
次に、図５のステップＳ１０７の詳細について説明する。図１７は、ステップＳ１０７の処理の詳細を示すフローチャートである。このステップＳ１０７では、ステップＳ１０６で算出された代表値Ｄに基づき、歩行者の両足を示す注目クラスタの組が設定される。
【０１３８】
まず、システムコントローラ７は、ステップＳ１０５で抽出された注目クラスタの中から、隣り合う一対の物体を示す２つの注目クラスタの組を設定する（ステップＳ３０１）。この処理では、ステップＳ１０６で算出された代表値Ｄの座標が近い位置にある２つの注目クラスタが、上述の一対の物体を示す組として設定される。
【０１３９】
図６の例において、代表値Ｄ１，Ｄ２の位置が近いと判断される場合には、クラスタ１，２の組が、隣り合う物体を示す組として抽出され、また、代表値Ｄ２，Ｄ３の位置が近いと判断される場合には、クラスタ２，３の組が、隣り合う物体を示す組として抽出され得る。
【０１４０】
そして、システムコントローラ７は、ステップＳ３０１で設定した注目クラスタの組の中から、両足を示す可能性のある組を抽出する（ステップＳ３０２）。この抽出は、ステップＳ３０１で設定された組について、一方の代表値Ｄの座標と、他方の代表値Ｄの座標との離隔距離が、予め設定された限界値（例えば３００ｍｍ）を超えていない組を抽出することで行われる。これは、人が歩行時に取り得る歩幅には限度があることから、この限度を超えて２つの代表値Ｄが離れている注目クラスタの組は、両足を示すものではないと考えられるためである。
【０１４１】
図６の例において、代表値Ｄ１，Ｄ２の離隔距離が限界値を超えていないと判断される場合には、クラスタ１，２は、両足を示す可能性のある組として抽出され、また、代表値Ｄ２，Ｄ３の離隔距離が限界値を超えていないと判断される場合には、クラスタ２，３は、両足を示す可能性のある組として抽出され得る。
【０１４２】
次に、図５のステップＳ１０９の詳細について説明する。図１８は、ステップＳ１０９の処理の詳細を示すフローチャートである。
【０１４３】
ステップＳ１０９では、下記数３，４による線形推定法によって、現在の胴体の中心位置が推定される。
【０１４４】
まず、システムコントローラは、数３に示すように、前回のステップＳ１１０で特定された胴体中心位置の座標（図６のＺ２に相当）と、前々回のステップＳ１１０で特定された胴体中心位置の座標（図６のＺ１に相当）との距離差（図６のｄ１に相当）を、前々回のステップＳ１１０から前回のステップＳ１１０までの時間間隔（図６のＺ１〜Ｚ２の移動時間に相当）で序することで、前回処理時における歩行者の速度（Ｚ１〜Ｚ２移動時の歩行速度に相当）を算出する（ステップＳ４０１）。
【数３】
2011059905.tif 000005
【０１４５】
次に、歩行者は、前回処理時から現時点まで一定の速度で歩行しているという仮定に基づき、数４に示すように、前回処理時から現時点までの時間間隔（図６のＺ２〜Ｓ１の移動時間に相当）に、ステップＳ４０１で算出した速度（Ｚ１〜Ｚ２移動時の歩行速度に相当）を乗じることで、歩行者の移動距離（図６のｄ２に相当）を算出し、この距離を前回のステップＳ１１０で特定された座標（図６のＺ２に相当）に加算する（ステップＳ４０２）。この結果、得られる座標（図６のＳ１に相当）が、現在の胴体中心の推定位置となる。
【数４】
2011059905.tif 000006
【０１４６】
次に、図５のステップＳ１１０の詳細を説明する。図１９は、ステップＳ１１０の処理の詳細を示すフローチャートである。
【０１４７】
ロボット１を追随する歩行者が、真横を向くことは、まれであると思われる。また、人の足の関節の構造によれば、歩行者は、両足を、前後方向には交互に出しやすいが、横方向には交互に出しにくい。以上のことから、ロボット１による先導中に、歩行者の位置の変位は、前後方向に出やすい傾向にあるといえる。
【０１４８】
よって、例えば図６に示す状況のように、ステップＳ１０８で２つの中点Ｔ１，Ｔ２の座標が算出されており、これら中点Ｔ１，Ｔ２がステップＳ１０９の推定位置Ｓ１から同程度の距離で離隔しているときには、中点Ｔ１，Ｔ２のうち、推定位置Ｓ１に対して前後方向にずれた位置にある中点Ｔ２が、現在の歩行者の位置を示している可能性が高いと考えるのが妥当である。
【０１４９】
これに鑑み、ステップＳ１１０では、下記数５により得られるユークリッド距離が用いられて、ステップＳ１０８で算出された中点Ｔの中から、歩行者の胴体中心を示す可能性の高い座標が特定される。
【数５】
2011059905.tif 000007
【０１５０】
ユークリッド距離は、ステップＳ１０８で算出された中点Ｔの座標とステップＳ１０９で算出された推定位置Ｓの座標との横方向の差（以下、横方向の差と略す）の２乗値に定数Ｃを乗じた値と、ステップＳ１０８で算出された中点Ｔの座標とステップＳ１０９で算出された推定位置Ｓの座標との前後方向の差（以下、前後方向の差と略す）の２乗値に１／Ｃ（定数Ｃの逆数）を乗じた値とを、足し合わせることで算出される。Ｃ値が１よりも大きく設定される場合には、ユークリッド距離は、横方向の差による変動が大きくなる特徴を有している。
【０１５１】
そして図１９に示すように、ステップＳ１１０では、ステップＳ１０８で算出された各中点Ｔの座標について、数５によりユークリッド距離が算出されるが（ステップＳ５０１）、この際に用いられるＣの値は１よりも大きく設定されている。そして、この設定下でユークリッド距離が最も小さく算出される中点Ｔの座標が、現在の歩行者の位置を示す可能性の高い座標として特定される（ステップＳ５０２）。
【０１５２】
図２０は、図６に示す歩行者の右足・左足近傍の領域を、拡大して示す平面図である。
【０１５３】
図２０に示す等高線Ｋは、Ｃの値が「１．５」に設定された場合に、ユークリッド距離が同程度となる領域を、区分するものである。等高線Ｋは、推定位置Ｓ１を中心に配する楕円を呈している（正確には長軸及び短軸の交差地点に推定位置Ｓを配する楕円）。この等高線Ｋが示す楕円は、Ｃの値が「１．５」に設定されることで、横方向の差が前後方向の差に比して、２．２５倍のユークリッド距離の変動を与えることに基づき、表現されるものである。
【０１５４】
等高線Ｋによる区分では、中点Ｔ２は、中点Ｔ１よりも、推定位置Ｓ１に近い領域に位置している。これは、Ｃの値が「１．５」に設定された状況下では、中点Ｔ２の座標について得られるユークリッド距離は、中点Ｔ１の座標について得られるユークリッド距離よりも小さくなるためである。よって、Ｃの値が「１．５」に設定される状況下で、中点Ｔ１，Ｔ２及び推定位置Ｓ１の座敷に基づき、図１９のステップＳ５０１，５０２の処理が行われると、中点Ｔ２が、現在の歩行者の胴体中心を示す可能性の高い座標として特定されることになる。
【０１５５】
なお、図５のステップＳ１０９では、推定位置Ｓの座標を得るために、ステップＳ１１０により特定される座標が過去２回分必要となる。このため、ステップＳ１０９は、ステップＳ１１０が２回実行されるまでは行うことができない。よって、ステップＳ１１０の初回と２回目とは、ステップＳ１０９が省略された状態で実行される。
【０１５６】
具体的には、システムコントローラ７には、歩行者の胴体中心の初期位置を示す座標が予め記憶されており、ステップＳ１１０の初回実行時には、前記初期位置の座標が、胴体中心位置を示す可能性が高い座標として特定される。そして、ステップＳ１１０の２回目実行時では、ステップＳ１０８で算出された中点Ｔの座標のうち、初期位置に最も近い座標が、胴体中心を示す可能性が高い座標として特定される。この際にも、上記のユークリッド距離による評価で、胴体中心を示す可能性の高い座標が特定される。
【０１５７】
次に、図５のステップＳ１１２の詳細について説明する。図２１は、ステップＳ１１２の処理の詳細を示すフローチャートである。
【０１５８】
まず、移動機構３は、ステップＳ１１１によりシステムコントローラ７から受信した座標（胴体中心を示す可能性が高い座標）に基づき、ロボット１と歩行者との離隔距離dfzを算出する（ステップＳ６０１）。
【０１５９】
図６の中点Ｔ２の座標が、胴体中心を示す可能性が高い座標として特定されていた場合には、ロボット１と中点Ｔ２との離隔距離dfzが算出される。
【０１６０】
そして、移動機構３は、ステップＳ６０１で算出した離隔距離dfzに基づき、ロボット１の速度を制御する（ステップＳ６０２）。この制御は、後輪３２の駆動速度Vrzが、下記数６に基づき調整されることで行われる。
【数６】
2011059905.tif 000008
【０１６１】
図２２は、ステップＳ６０１で算出される離隔距離dfzと、ステップＳ６０２で制御される後輪３２の駆動速度Vrzとの関係を示している。
【０１６２】
まず、ステップＳ６０１で算出された離隔距離dfzが、予め設定された最近先導距離dnearよりも小さい場合には（図２２の範囲Ａに対応）、移動機構３は、後輪３２の駆動速度Vrzを、予め設定された先導最高速度Vmaxに制御する。
【０１６３】
また、ステップＳ６０１で算出された離隔距離dfzが、予め設定された停止判断距離dstopよりも大きい場合には（図２２の範囲Ｃに対応）、移動機構３は、後輪３２の回転を停止する。
【０１６４】
また、ステップＳ６０１で算出された離隔距離dfzが、最近先導距離dnearよりも大きく、停止判断距離dstopよりも大きい場合には（図２２の範囲Ｂに対応）、後輪３２の回転速度を、停止判断距離dstopと離隔距離dfzとの差に比例した値に制御する。
【０１６５】
以上のように、後輪３２の駆動速度Vrzが離隔距離dfzに基づき調整されることで、ロボット１の速度は、歩行者の位置に応じて制御されるようになる。
【０１６６】
本実施の形態によれば、歩行者の両足を示す注目クラスタの組が特定され、さらに、この注目クラスタの組に基づき、歩行者の胴体中心位置が特定されて、この位置に基づき、ロボット１の速度が制御される。ここで、歩行者の胴体中心は、両足が前後往復運動をしているときでも、大きな変位を伴わず、滑らかに移動する。このことから、歩行者の位置をブレなく追跡できる。また、歩行者の追跡のために負荷の大きな処理を必要としないことから、歩行者の追跡に要する計算時間が短い。このため、歩行者の現位置を追跡することができる。以上のことから本実施の形態によれば、高いロバスト性で歩行者の位置を追跡できるため、ロボット１は確実に歩行者の歩行ペースに合わせて走向するようになる。
【０１６７】
なお、図５の歩行者位置検出処理では、左足・右足を別個に示す２つの注目クラスタが抽出されることを前提としているが、レーザ光の進路において一方の足が他方の足の背後にあることや、歩行者がロボット１に近接した位置にあることで、ステップＳ１０４において、両足をまとめて示すクラスタが抽出される場合が想定される。
【０１６８】
例えば図２３に示すように、レーザ光の進路に対して左足が右足の背後にある場合には、右足の表面に生じた反射点ｈ１０１，ｈ１０２と、左足の表面に生じた反射点ｈ１０３，ｈ１０４とが、同一のクラスタに登録された結果（図１６のステップＳ２０４参照）、ステップＳ１０４で、右足・左足をまとめて示すクラスタ（ｈ１０１〜ｈ１０４が含まれるクラスタ）が抽出されることになる。
【０１６９】
しかしながら、このようなケースにおいても、以下に述べる対策を取ることで、歩行者の位置を追跡することが可能である。
【０１７０】
すなわち、上述の左足が右足の背後になるような状況は、歩行者の足の運び方によって一時的に起こるものであって、ロボット１による先導中に連続して起こるものとは考えられない。
【０１７１】
つまり、左足が右足の背後になる直前においては、右足が、図２３の破線Ａ，Ｂに示すような位置にあることで、ステップＳ１０４では、左足・右足を別個に示すクラスタが抽出される。この結果、これらクラスタの代表値（Ｄ５，Ｄ６，Ｄ７に相当）の中点（Ｔ６，Ｔ７に相当）が、ステップＳ１１０で胴体中心が存在する可能性の高い座標として特定されるものと考えられる。
【０１７２】
この特定が行われていれば、左足が右足の背後になった時点の処理において、前回のステップＳ１１０で特定された胴体中心（Ｔ６，Ｔ７に相当）に基づき、ステップＳ１０９で胴体中心位置が推定されることになる（Ｓ２が推定位置に相当）。よって、この推定位置Ｓ２は、信頼のおけるデータに基づき、算出されたものといえる。
【０１７３】
このことから、両足をまとめて示す一つのクラスタが抽出された場合には、ステップＳ１０９で得られる推定位置（Ｓ２に相当）を、現在の歩行者の胴体中心位置と暫定的にみなす対策が行われる。これにより、歩行者位置の追跡を続けることが可能となる。
【０１７４】
なお、推定位置（Ｓ２に相当）は、両足をまとめて示すクラスタの代表値（ｈ１０１〜ｈ１０４の重心座標：Ｄ８に相当）と近い場合にのみ、現在の胴体中心位置としてみなされるようにしても良い。
【０１７５】
また、図５の環境スキャン処理では、範囲Ａに向けてレーザ光を照射することに代えて、ロボットの周囲のあらゆる範囲に向けてレーザ光は照射され得る。このようにすることで、歩行者が、範囲Ａ以外のロボットの周囲に存在する場合においても、歩行者位置検出処理で歩行者の胴体中心位置が特定されて、この位置に基づき、速度制御処理でロボットの速度が制御されるようになる。
【０１７６】
次に、図５のステップＳ１１３の詳細について説明する。図２４は、ステップＳ１１３の処理の詳細を示すフローチャートである。なお以下では、図２に示すＲ９が、範囲Ｂでロボット１の真横に向かったレーザ光に該当し、Ｒ１２が、範囲Ｂの前端を通過したレーザ光に該当するものとして説明する。
【０１７７】
まず、システムコントローラ７は、範囲Ｂに照射したレーザ光のうち、後述のステップＳ７０２，７０３の処理を行うレーザ光を選択する（ステップＳ７０１）。初回の処理では、ロボット１の真横に進んだＲ９が選択される。具体的には、範囲Ｂについて作成されたデータテーブル（図１５参照）において、Ｒ９に対応する行が選択される。
【０１７８】
次に、システムコントローラ７は、ステップＳ７０１で選択されたレーザ光の距離データが存在するか否かを判断する（ステップＳ７０２）。具体的には、ステップＳ７０１で選択されたデータテーブルの行に、距離データが記録されているか否かが選択される。
【０１７９】
距離データが存在しない理由としては、ステップＳ７０１で選択されたレーザ光の進路の先に、反射を生じさせる壁が存在していなかったことや（図１３，１４における右側の壁の状況を参照）、レーザ光を反射しにくい物体（図９の物体Ｃ参照）が存在していることがあげられる。
【０１８０】
例えば、図１５の５，９行目のように、ステップＳ７０２で選択されたテーブルの行に距離データが記録されていないことから、距離データが存在していないと判断された場合には（ステップＳ７０２でＮＯ）、ステップＳ７０４に移行する。
【０１８１】
一方、ステップＳ７０２で距離データが得られていると判断された場合には（ステップＳ７０２でＹＥＳ）、システムコントローラ７は、ステップＳ７０１で選択されたレーザ光の反射点の座標が、異常値を示していないか否かを判断する（ステップＳ７０３）。このステップＳ７０３は、ステップＳ７０１で選択されたレーザ光の反射点が、壁の表面に生じたものであるか否かを確認するために行われる。
【０１８２】
具体的には、反射点の座標が、ロボット１から所定距離以上離れた位置（例えばロボット１から２ｍ以上離れた位置）を示していないか、或いは壁が物理的に存在し得ない位置（例えばロボット１が存在する位置）を示していないか、といったことが判断される。ステップＳ７０１で選択されたレーザ光が、壁が途切れた先や、反射しにくい物体（図９の物体Ｃ参照）に向かっていたことで、反射点の座標が、壁に生じる反射点の座標に比して遠い位置にある場合には、ＮＯと判断される。
【０１８３】
そして、反射点の座標が異常値を示すことで、ステップＳ７０３でＮＯと判断された場合には、ステップＳ７０２でＮＯと判断される場合と同様、ステップＳ７０４へ移行する。ステップＳ７０３でＹＥＳと判断される場合については後述する。
【０１８４】
ステップＳ７０４では、システムコントローラ７は、ステップＳ７０２，７０３の処理が、ロボット１の真横から範囲Ｂの前端までに照射された全てのレーザ光（図２の例ではＲ９〜Ｒ１２）について行われたか否かを判断する。図２の例による説明では、ステップＳ７０２，７０３が行われたのは、Ｒ９についてのみであるため、ＮＯと判断されて、ステップＳ７０５に移行する。
【０１８５】
そしてステップＳ７０５では、システムコントローラ７は、ステップＳ７０２，７０３の処理を行うレーザ光を変更する。この処理では、前回のステップＳ７０１で選択されたレーザ光に対して、１ピッチ前寄りを進行していたレーザ光に変更される。前回の処理で、図２のＲ９が選択されていた場合には、Ｒ１０に変更される。
【０１８６】
そして、ステップＳ７０５で変更されたレーザ光について、ステップＳ７０２，Ｓ７０３の処理が行われる。この結果、ステップＳ７０５で変更されたレーザ光について、１）距離データが存在していないこと、２）反射点の座標が異常値を示していることが確認された場合には（ステップＳ７０２，Ｓ７０３でＮＯ）、ステップＳ７０４，Ｓ７０５が実行される。この結果、ステップＳ７０２，Ｓ７０３の処理を行うレーザ光が、１ピッチ前寄りを進行していたレーザ光に変更される。前回の処理で、図２のＲ１０が選択されていた場合には、Ｒ１１に変更される。
【０１８７】
以上のステップＳ７０２〜Ｓ７０５の流れは、ステップＳ７０４でＹＥＳと判断されるまで、或いはステップＳ７０３でＹＥＳと判断されるまで繰り返される。
【０１８８】
そして、ロボット１の真横から範囲Ｂの前端までに照射された全てのレーザ光（図２ではＲ９〜Ｒ１２）について、１）距離データが存在していないこと、２）反射点の座標が異常値を示していることが確認された場合には（ステップＳ７０２又はＳ７０３でＮＯ）、ステップＳ７０４でＹＥＳと判断されて、システムコントローラ７は、範囲Ｂに壁が存在しないことを示す情報を記憶する（ステップＳ７０６）。
【０１８９】
また、ステップＳ７０２〜Ｓ７０５が繰り返される過程で、１）距離データが存在すること、２）反射点の座標が異常値を示していないことが確認されたレーザ光が検出された場合には（ステップＳ７０２，Ｓ７０３でＹＥＳ）、システムコントローラ７は、そのレーザ光の反射点の座標を記憶する（ステップＳ７０７）。
【０１９０】
ステップＳ７０７で記憶される反射点の座標は、この位置に壁の存在が確認されたことで、これよりも前方へ壁が延びている可能性があることを意味するものであり、図５のステップＳ１１４又はＳ１１７における反射点探索の開始位置（以下、探索開始位置と記す）として、設定されるものとなる。なお、ステップＳ７０１〜７０７の処理が、ロボット１の真横から前側の範囲に照射されたレーザ光について行われることから、探索開始位置として設定される反射点の座標（Ｓ７０７で記憶される座標）は、必ず、ロボット１の真横或いは真横よりも前側に存在する。
【０１９１】
そしてステップＳ７０７の実行後では、システムコントローラは、範囲Ｂ，Ｃについて、Ｓ７０６又はＳ７０７を行ったか否かを判断する（ステップＳ７０８）。図２の例による説明では、処理が行われたのは範囲Ｂについてのみであるため、ＮＯと判断されて、ステップＳ７０１に移行する。
【０１９２】
このステップＳ７０１では、範囲Ｃでロボット１の真横に向かったレーザ光が、ステップＳ７０２，７０４の検討を行うレーザ光として選択される。
【０１９３】
そして、この後、範囲Ｃに照射されたレーザ光について、ロボット１の真横に向かったレーザを始めとして、前寄りのレーザ光が後となる順序で、ステップＳ７０２〜Ｓ７０５が繰り返される。
【０１９４】
そして、ステップＳ７０４でＹＥＳと判断された場合には、システムコントローラ７に、範囲Ｃに壁が存在しないことを示す情報が記憶される（ステップＳ７０６）。
【０１９５】
また、ステップＳ７０３でＹＥＳと判断された場合には、範囲Ｃについて、１）距離データが存在すること、２）反射点の座標が異常値を示していないことが確認されたレーザ光の反射点ｈが記憶される。この際に記憶される反射点ｈの座標は、範囲Ｃでロボット１の真横或いは真横よりも前側に存在しており、ステップＳ１１４又はＳ１１７における範囲Ｃの反射点探索開始位置として設定されるものとなる。
【０１９６】
そして、範囲ＣについてＳ７０６又はＳ７０７が実行された場合には、ステップＳ７０８でＹＥＳと判断されて、システムコントローラ７は、範囲Ｂ，Ｃについて、ステップＳ７０６の情報が記憶されたか否かを判断する（ステップＳ７０９）。
【０１９７】
範囲Ｂ，ＣのいずれについてもステップＳ７０６の情報が記憶されていない場合には（ステップＳ７０９でＮＯ）、範囲Ｂ，Ｃのいずれにも壁が存在することから、図５のステップＳ１１４に移行する。
【０１９８】
また、範囲Ａ，Ｂの一方にステップＳ７０６の情報が記憶されている場合には（ステップＳ７０９でＮＯ）、範囲Ｂ，Ｃの一方に壁が存在しないことから、図５のステップＳ１１７に移行する。
【０１９９】
次に、ステップＳ１１４の処理の詳細について説明する。図２５は、ステップＳ１１４の処理の詳細を示すフローチャートである。なお、以下では、図２に示すＲ９の反射点ｈの座標が、図２４のステップＳ７０７で記憶されることで、範囲Ｂの探索開始位置として設定される場合を例に説明する。
【０２００】
まず、システムコントローラ７は、後述のステップＳ８０２〜８０５の処理を行うレーザ光として、範囲Ｂ内で隣り合う位置を進行した２つのレーザ光を選択する（ステップＳ８０１）。
【０２０１】
初回実行時には、図２４のステップＳ７０７で探索開始位置として座標が記憶されたＲ９と、この１ピッチ前寄りを進行したＲ１０とが選択される。具体的には、範囲Ｂのデータテーブル（図１５参照）において、Ｒ９，Ｒ１０に対応する２行が選択される。
【０２０２】
次に、システムコントローラ７は、ステップＳ８０１で選択された２つのレーザ光のうち、前寄りの位置を進行したレーザ光について、図２４のステップＳ７０２，Ｓ７０３と同様の処理を行う（ステップＳ８０２，Ｓ８０３）。
【０２０３】
ステップＳ８０１で、Ｒ９，Ｒ１０が選択されていた場合には、Ｒ１０が前寄りの位置を進行したレーザ光に該当し、Ｒ１０について、ステップＳ８０２，Ｓ８０３が行われる。
【０２０４】
このステップＳ８０２，Ｓ８０３は、上記前寄りのレーザ光が進んだ先に、壁が存在するか否かを確認するために実行され、壁が存在していた場合には、ステップＳ８０２，Ｓ８０３でＹＥＳと判断されることになる。
【０２０５】
そしてこの場合には（ステップＳ８０２，Ｓ８０３でＹＥＳ）、システムコントローラ７は、ステップＳ８０１で選択された２つのレーザ光の距離データの差を算出する（ステップＳ８０４）。具体的には、ステップＳ８０１で選択されたテーブルの２行に記されている距離データの差が算出される。ステップＳ８０２，Ｓ８０３でＮＯと判断される場合については、後述する。
【０２０６】
次に、システムコントローラ７は、ステップＳ８０４で算出された距離データの差が、所定の閾値を超えるか否かを判断する（ステップＳ８０５）。この処理は、ステップＳ８０１で選択された２つのレーザ光の反射点が、同一の物体の表面に生じたものか否かを確認するために行われる。
【０２０７】
例えば、図８に示す反射点ｈ３１，ｈ３２を生じさせた２つのレーザ光のように、後寄りのレーザ光（反射点ｈ３１を生じさせたレーザ光に相当）は、壁に照射されたものの、前寄りのレーザ光（反射点ｈ３２を生じさせたレーザ光に相当）が、壁が途切れた先に向かって、異なる物体に照射された場合には、これら２つのレーザ光の距離データは大きく異なるものとなる。これにより、ステップＳ８０５では、閾値を超えると判断される（ステップＳ８０５でＹＥＳ）。まず、ステップＳ８０５でＮＯと判断される場合の処理の流れについて説明する。
【０２０８】
ステップＳ８０５でＮＯと判断された場合には、システムコントローラ７は、ステップＳ８０２〜８０５の処理を、探索開始位置（図２４のＳ７０７で記憶された反射点の座標位置）から範囲Ｂの前端までに照射されたレーザ光の全ての組（（図２では、Ｒ９，Ｒ１０の組、Ｒ１０，Ｒ１１の組、Ｒ１１，Ｒ１２の組）について行ったか否かを判断する（ステップＳ８０６）。図２の例による説明では、Ｒ９，Ｒ１０の組についてしか処理を行っていないため、ＮＯと判断して、ステップＳ８０７に移行する。
【０２０９】
そしてステップＳ８０７では、システムコントローラ７は、ステップＳ８０２〜８０５の処理を行うレーザ光を変更する。この処理では、以前の処理で設定された２つのレーザ光に対して、１ピッチ前寄りを進行していた２つのレーザ光へと変更される。図２の例では、Ｒ９とＲ１０の組から、Ｒ１０とＲ１１の組へと変更される。
【０２１０】
そして、システムコントローラ７は、ステップＳ８０６で新たに選択されたレーザ光（図２の説明の例ではＲ１１に相当）について、ステップＳ８０２，Ｓ８０３を実行する。
【０２１１】
そしてステップＳ８０２，Ｓ８０３でＹＥＳと判断された場合には、システムコントローラ７は、ステップＳ８０６で変更された２つのレーザ光の距離データの差を算出し（ステップＳ８０４）、所定の閾値を超えるか否かを判断する（ステップＳ８０５）。
【０２１２】
以上のステップＳ８０２〜８０７の処理は、ステップＳ８０５，Ｓ８０６でＹＥＳ或いはステップＳ８０２，Ｓ８０３でＮＯと判断されない限り繰り返され、この繰り返しの過程では、２つのレーザ光の距離データの差が、前寄りのレーザ光の組が後となる順で、算出される。
【０２１３】
そしてこの繰り返しの過程で、ある組の距離データの差にステップＳ８０５の閾値を超える急峻な差があった場合には（ステップＳ８０５でＹＥＳ）、この組をなす２つのレーザ光のうち、後寄りのレーザ光の反射点の座標が、ステップＳ１１５（図５参照）で中点Ｕの算出に用いる可能性のある座標（以下、中点算出候補と記す）として設定される（ステップＳ８０８）。
【０２１４】
また、探索開始位置から範囲Ｂの前端までの領域に向けて照射されたレーザ光の全ての組（Ｒ９，Ｒ１０の組、Ｒ１０，Ｒ１１の組、Ｒ１１，Ｒ１２の組）の中から、距離データの差がステップＳ８０５の閾値を超える組が検出されなかった場合には、ステップＳ８０６でＹＥＳと判断される。この場合には、システムコントローラ７は、ステップＳ８０９に移行して、範囲Ｂの前端を通過したレーザ光（Ｒ１２に相当）の反射点の座標を、中点Ｕの算出に用いる座標（以下、中点算出点）として特定する（ステップＳ８０９）。
【０２１５】
また、ステップＳ８０２，Ｓ８０３でＮＯと判断される場合には、システムコントローラ７は、ステップＳ８０１，Ｓ８０７で選択された２つのレーザ光のうち、後寄りのレーザ光の反射点の座標を、中点算出候補として設定する（ステップＳ８１０）。
【０２１６】
そして、ステップＳ８０８，Ｓ８１０で中点算出候補が設定されると、システムコントローラ７は、ステップＳ８１１に移行する。
【０２１７】
このステップＳ８１１では、システムコントローラ７は、範囲Ｂの前端までに、中点算出候補として設定された反射点よりも、ロボット１に近い反射点が存在するか探索する（ステップＳ８１１）。これを行う理由としては、範囲Ｂの前端までに障害物が存在しており、この障害物の表面に反射点が生じている可能性があるためである。
【０２１８】
より近い反射点が探索されなければ（ステップＳ８１１でＮＯ）、システムコントローラ７は、ステップＳ８０８，Ｓ８１０で中点算出候補として設定した反射点の座標を、中点算出点として特定する（ステップＳ８１２）。
【０２１９】
また、より近い反射点が探索された場合には（ステップＳ８１１でＹＥＳ）、システムコントローラ７は、この反射点の座標を、中点算出点として特定する（ステップＳ８１３）。
【０２２０】
ここで、ステップＳ８０１〜Ｓ８１３の処理により、中点算出点が特定される過程を、図７〜１０を用いて説明する。なお以下では、範囲Ｂの探索開始位置として、図７の反射点ｈ２０の座標と、図８の反射点ｈ３０の座標と、図９の反射点ｈ４０の座標と、図１０の反射点ｈ５０の座標とが設定されるものとして説明する。
【０２２１】
図７の例では、反射点ｈ２０，ｈ２１を生じさせた２つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて（ステップＳ８０４）、閾値と比較される（ステップＳ８０５）。この結果、閾値を超えるレーザ光の組が検出されないことで（ステップＳ８０６でＹＥＳ）、範囲Ｂの前端を通過したレーザ光の反射点ｈ２３が、中点算出点として特定される（ステップＳ８０９）。
【０２２２】
図８の例では、反射点ｈ３０，ｈ３１を生じさせた２つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて（ステップＳ８０４）、閾値と比較される（ステップＳ８０５）。この結果、反射点ｈ３１，ｈ３２を生じさせた２つのレーザ光の組の距離データに、大きな差があることが検出される（ステップＳ８０５でＹＥＳ）。これにより、反射点ｈ３１が、中点算出候補として設定される（ステップＳ８０８）。
【０２２３】
その後、範囲Ｂの前端までに、反射点ｈ３１よりも、ロボット１に近い反射点が存在するか探索されるが（ステップＳ８１１）、より近い反射点が探索されないことで（ステップＳ８１１でＮＯ）、反射点ｈ３１が、中点算出点として特定される（ステップＳ８１２）。
【０２２４】
図９の例では、壁の途中に反射を生じにくい物体Ｃが存在していることから、（１）物体Ｃに照射されたレーザ光の距離データが得られなかったり、（２）物体Ｃに照射されたレーザ光の反射点が、遠くに検出される事態が生じ得る（ｈ４３，ｈ４４，ｈ４５参照）。
【０２２５】
まず（１）前者の事態が生じていた場合には、反射点ｈ４０，ｈ４１を生じさせた２つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、ステップＳ８０２〜Ｓ８０７の処理が繰り返される。この結果、物体Ｃに照射されたレーザ光の距離データが得られていないことが確認されるため（ステップＳ８０２でＮＯ）、物体Ｃの手前にある反射点ｈ４２が、中点算出候補として設定される（ステップＳ８１０）。
【０２２６】
その後、範囲Ｂの前端までに、反射点ｈ４２よりも、ロボット１に近い反射点が存在するか探索されるが（ステップＳ８１１）、より近い反射点が探索されないことで（ステップＳ８１１でＮＯ）、反射点ｈ４２が、中点算出点として特定される（ステップＳ８１２）。
【０２２７】
また（２）後者の事態が生じていた場合には、前者の事態と同様に、ステップＳ８０２〜Ｓ８０７の処理が繰り返されるが、物体Ｃに照射されたレーザ光の反射点ｈ４３の座標が異常値を示していることで（ステップＳ８０３でＮＯ）、物体Ｃの手前にある反射点ｈ４２が、中点算出候補として設定される（ステップＳ８１０）。
【０２２８】
その後、範囲Ｂの前端までに、反射点ｈ４２よりも、ロボット１に近い反射点が存在するか探索されるが（ステップＳ８１１）、より近い反射点が探索されないことで（ステップＳ８１１でＮＯ）、反射点ｈ４２が、中点算出点として特定される（ステップＳ８１２）。
【０２２９】
図１０の例では、反射点ｈ５０，ｈ５１を生じさせた２つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて（ステップＳ８０４）、閾値と比較される（ステップＳ８０５）。この結果、反射点ｈ５２，ｈ５３を生じさせた２つのレーザ光の組の距離データに、大きな差があることが検出される（ステップＳ８０５でＹＥＳ）。これにより、反射点ｈ５２が、中点算出候補として設定される（ステップＳ８０８）。
【０２３０】
その後、範囲Ｂの前端までに、反射点ｈ５２よりも、ロボット１に近い反射点が存在するか探索される（ステップＳ８１１）。この結果、障害物Ｂ３の表面に生じた反射点ｈ５５が、反射点ｈ５２よりも、ロボット１に近いことが検出される（ステップＳ８１１でＹＥＳ）。これにより、反射点ｈ５５が、中点算出点として特定される（ステップＳ８１３）。
【０２３１】
そして、図２５のステップＳ８０９，Ｓ８１２，Ｓ８１３が実行された後では、システムコントローラ７は、範囲Ｂ，Ｃのいずれについても、中点算出点を特定したか否かを判断する（ステップＳ８１４）。図２の例の説明では、範囲Ｃについては、中点算出点を設定していないので、ＮＯと判断して、ステップＳ８０１に復帰する。これ以降、範囲Ｃの中点算出点を特定するための処理（ステップＳ８０１〜Ｓ８０９，Ｓ８１２，Ｓ８１３）が行われる。
【０２３２】
そして、範囲Ｃについて、Ｓ８０９，Ｓ８１２，Ｓ８１３が実行されることで、範囲Ｃの中点算出点（図１１のｈ６１，図１２のｈ７５に相当）が特定された際には、システムコントローラは、Ｓ８１４でＹＥＳと判断して、図５のＳ１１５へ移行する。これにより、範囲Ｂの中点算出点として特定された反射点（図１１のｈ６０，図１２のｈ７０に相当）と、範囲Ｃの中点算出点として設定された反射点（図１１のｈ６１，図１２のｈ７５に相当）との、中点Ｕ（図１１のＵ１，図１２のＵ２に相当）の座標が算出されることになる。
【０２３３】
なお、図２５に示すステップＳ１１４の処理では、ロボット１の真横あるいは真横よりも前側に位置する探索開始位置（図２４のＳ７０７で記憶される反射点の座標）を起点として、処理が開始される。このため、Ｓ８０９，Ｓ８１２，Ｓ８１３で設定される範囲Ｂ，Ｃの中点算出点（図１１，１２のｈ６０，ｈ６１，ｈ７０，ｈ７５に相当）は、必ず、ロボット１よりも前側に位置している。よって、ステップＳ１１５で算出される中点Ｕ（図１１，１２の中点Ｕ１，Ｕ２に相当）の座標も、ロボット１よりも前側に位置することになる。
【０２３４】
図２６は、図５のステップＳ１１７の処理の詳細を示すフローチャートである。図２６は、図２５に示すフローチャートから、ステップＳ８１４が省略されたものである。
【０２３５】
図２６に示す処理は、範囲Ｂ，Ｃのうち、ステップＳ１１３で壁が存在すると判断された範囲について実行される。この結果、ステップＳ９０９，Ｓ９１２，Ｓ９１３において、ステップＳ１１８（図５参照）で平行四辺形の頂点Ｑを算出するための座標（以下、頂点算出点）が設定される。また、ステップＳ９０８，Ｓ９１０では、頂点算出点となり得る候補（以下、頂点算出候補）の座標が設定される。
【０２３６】
また、図２６の処理についても、ロボット１の真横あるいは真横よりも前側に位置する探索開始位置（図２４のＳ７０７で記憶される反射点の座標）を起点として、処理が開始される。これにより、ステップＳ９０９，Ｓ９１２，Ｓ９１３で設定される頂点算出点は、必ず、ロボット１よりも前側に位置することになる。
【０２３７】
図２６の処理により、頂点算出点が設定される過程を、図１３，１４を用いて説明する。なお以下では、範囲Ｃの探索開始位置として、図１３の反射点ｈ８０と、図１４の反射点ｈ９０とが設定されているものとして説明する。
【０２３８】
図１３の例では、壁が存在する範囲Ｃについて図２６の処理が実行される。この処理では、反射点ｈ８０，ｈ８１を生じさせた２つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて（ステップＳ９０４）、閾値と比較される（ステップＳ９０５）。この結果、閾値を超えるレーザ光の組が検出されないことで（ステップＳ９０６でＹＥＳ）、範囲Ｃの前端を通過したレーザ光の反射点ｈ８４の座標が、頂点算出点として特定される（ステップＳ９０９）。
【０２３９】
図１４の例では、反射点ｈ９０，ｈ９１を生じさせた２つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて（ステップＳ９０４）、閾値と比較される（ステップＳ９０５）。この結果、反射点ｈ９１，ｈ９２を生じさせた２つのレーザ光の組の距離データに、大きな差があることが検出される（ステップＳ９０５でＹＥＳ）。これにより、反射点ｈ９１が、頂点算出候補として設定される（ステップＳ９０８）。
【０２４０】
その後、範囲Ｃの前端までに、反射点ｈ９１よりも、ロボット１に近い反射点が存在するか探索される（ステップＳ９１１）。この結果、障害物Ｂ５の表面に生じた反射点ｈ９３が、反射点ｈ９１よりも、ロボット１に近いことが検出される（ステップＳ９１１でＹＥＳ）。これにより、反射点９３が、頂点算出点として特定される（ステップＳ９１３）。
【０２４１】
そして図５のステップＳ１１８では、図２６のステップＳ９０９，Ｓ９１２，Ｓ９１３で特定された頂点算出点の座標と、図２４のステップＳ７０７で探索開始位置として記憶された反射点の座標と、ロボット１の座標とを３つの頂点とする平行四辺形において、残りの一つの頂点Ｑの座標が得られる。
【０２４２】
図１３の例では、探索開始位置としての反射点ｈ８０と、頂点算出点としての反射点ｈ８４と、ロボット１の位置とを３つの頂点とする平行四辺形において、残りの１つの頂点Ｑ１の座標が算出される。頂点算出点ｈ８４がロボット１よりも前側にあることで、頂点Ｑ１も、ロボット１よりも前側に位置している。
【０２４３】
また図１４の例では、探索開始位置としての反射点ｈ９０と、頂点算出点としての反射点ｈ９３と、ロボット１の位置とを３つの頂点とする平行四辺形において、残りの１つの頂点Ｑ２の座標が算出される。頂点算出点ｈ９３がロボット１よりも前側にあることで、頂点Ｑ２も、ロボット１よりも前側に位置している。
【０２４４】
そして、図５のステップＳ１１９では、ステップＳ１１８で算出された頂点Ｑの座標が、移動機構３に送信される。
【０２４５】
次に、ステップＳ１１６，Ｓ１１９で中点Ｕ又は頂点Ｑの座標が送信されることに応じて、移動機構３で実行されるステップＳ１２０の処理の詳細について説明する。図２７は、ステップＳ１２０の処理の詳細を示すフローチャートである。
【０２４６】
まず、移動機構３は、ステップＳ１１６，Ｓ１１９で送信された中点Ｕ又は頂点Ｑの座標に基づき、前輪３１の操舵角φを、下記数７により算出する（ステップＳ１００１）。
【数７】
2011059905.tif 000009
そして、移動機構３は、前輪３１の操舵角を、ステップＳ１００１で算出された角度に調整する（ステップＳ１００２）。この結果、ロボット１は、Ｓ１１６，Ｓ１１９で受信した中点Ｕ又は頂点Ｑの位置近傍に向かって進行するようになる。
【０２４７】
本実施の形態によれば、図１１に示したように、ロボット１の左右両側に壁が存在する場合には、これら左右の壁の表面でロボット１よりも前側に生じた反射点ｈ６０，ｈ６１の座標が獲得される。そして、これらの反射点ｈ６０，ｈ６１の中点Ｕ１位置近傍に、ロボット１の位置が制御される。これにより、ロボット１は、ロボット１の前側における廊下の中央位置付近を走向するようになるので、ロボット１を追随する歩行者に対して、確実に壁を回避可能な進路が提示される。
【０２４８】
また、上記の中点Ｔ位置にロボット１の位置を制御する処理は、図８に示したように壁が途中で途切れていたり、図９に示したように壁の途中にレーザ光を反射しにくい物体Ｃが存在している場合でも実行され得る。よって、このような場合においても、ロボット１を追随する歩行者に対して確実に壁を回避可能な進路が提示される。
【０２４９】
また、図１２に示したように、ロボット１よりも前側における左側の壁際に、障害物Ｂ４が存在する場合には、左側の壁や障害物Ｂ４の表面に生じた反射点ｈの中から、ロボット１に最も近い反射点の座標ｈ７５が獲得される。
【０２５０】
そして、このロボット１に最も近い反射点ｈ７５の座標と、右側の壁の表面でロボット１よりも前側に生じた反射点ｈ７０の座標と、の中点Ｕ２の座標が算出されて、この位置近傍に向けてロボット１は進行する。これにより、壁際に障害物Ｂ４が存在する場合には、ロボット１は、該ロボット１よりも前側における、障害物Ｂ４と右側の壁との間の中央位置付近を走向するようになる。これにより、壁際に障害物Ｂ４が存在する場合においても、ロボット１を追随する歩行者に対して確実に壁を回避可能な進路が提示される。
【０２５１】
また、図１３に示したように、右側の壁が存在しない場合には、左側の壁の表面で、ロボット１の真横から前側に生じた２つの反射点ｈ８０，ｈ８４の座標が獲得される。そして、この２つの反射点ｈ８０，ｈ８４と、ロボット１の位置とを３つの頂点とする平行四辺形における残りの１つの頂点Ｑ１の位置が獲得されて、この頂点Ｑ１の位置近傍に向けてロボット１は進行する。これにより、ロボット１は、左側の壁と略平行に走向するようになるので、ロボット１と左側の壁との離隔距離は、ほぼ一定に保たれる。これにより、図１３に示すように、一方の壁が存在しない場合においても、歩行者に対して確実に障害物を回避可能な進路を提示することができる。
【０２５２】
また、図１４に示したように、右側の壁が存在しない場合であって、左側の壁際に障害物Ｂ５が存在するときには、左側の壁や障害物Ｂ５の表面に生じた反射点ｈの中から、ロボット１に最も近い反射点の座標ｈ９３が獲得される。
【０２５３】
そして、このロボット１に最も近い反射点ｈ９３と、左側の壁の表面でロボット１の真横付近（真横或いは真横から前側）に生じた反射点ｈ９０と、ロボット１の位置とを３つの頂点とする平行四辺形において、残りの１つの頂点Ｑ２の位置が獲得され、この頂点Ｑ２の位置近傍に向けてロボット１は進行する。これにより、ロボット１は、障害物Ｂ５を回避する走向を行うようになる。これにより、図１４に示したように、一方の壁が存在せず、他方の壁際に障害物が存在するときでも、歩行者に対して確実に障害物を回避可能な進路を提示することができる。
【０２５４】
なお、本実施形態のロボット１における各種処理を行う手段および方法は、専用のハードウェア回路、またはプログラムされたコンピュータのいずれによっても実現することが可能である。ここで、上記プログラムは、例えばフレキシブルディスクやＣＤ−ＲＯＭ等のコンピュータ読取可能な情報記録媒体によって提供されてもよい。この場合、コンピュータ読取可能な情報記録媒体に記録されたプログラムは、通常、ハードディスク等の記憶部に転送されて記憶される。また、上記プログラムは、単独のアプリケーションソフトとして提供されてもよいし、装置の一機能としてその装置のソフトウェアに組み込まれてもよい。
【０２５５】
次に、本発明のロボット１の先導機能を評価するために行った実験について説明する。
図２８は、本実験でロボット１が歩行者を先導している状態を示す側面図であり、図２９は、本実験が行われた廊下環境を示す平面図である。
【０２５６】
本実験では、図２９に示すように、右側の壁際に障害物Ｂ６が存在する廊下内で、本発明のロボット１と、非特許文献１の方式によるロボットとを、障害物Ｂ６手前から障害物Ｂ６側に向けて進行させた。
【０２５７】
そして、廊下内に配置した環境計測用ＬＲＦ５０により、ロボットの軌跡と、ロボットを追随する歩行者の足の軌跡とを計測した。
【０２５８】
環境計測用ＬＲＦ５０としては、本発明のロボット１に搭載されたＬＲＦ５（URG-04LX）に比して、スキャン周期が約３分の１であるUBG- 04LX- F01（走査周期28msec，北陽電機製）を用いた。
【０２５９】
また、図２８に示すように、環境計測用ＬＲＦ５０がスキャンを行う高さは床から約３５ｃｍとした。これはロボット１に搭載したＬＲＦ５と干渉しないだけの十分なオフセットを持ち、かつ、歩行者の足の位置を計測可能とするためである。
【０２６０】
環境計測用ＬＲＦ５０がロボット１の位置を正確且つ安定して計測するために、ロボット１には、筒状の目印物体８（図２８参照）を取り付けた。目印物体８は、環境計測用ＬＲＦ５０によるスキャンが少なくとも２点で行われる長さに設定され、表面には白ケント紙が貼り付けられている。
【０２６１】
図３０は、非特許文献１の方式によるロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【０２６２】
図３０に示す通り、非特許文献１のロボットは、障害物Ｂ６より手前では、廊下の中央付近を目指した走行を行っていることが確認できた。
【０２６３】
しかしながら、非特許文献１のロボットが、障害物Ｂ６近傍の位置に到達した際には、姿勢を大きく変化させて、左側の壁に寄っている。これは、非特許文献１のロボットが、左側の壁に、最近となる反射点を生じさせたレーザ光を特定した後、これと１８０度反対側に向かったレーザ光の反射点（対向反射点）が、ロボットに設定されたＬＲＦの計測可能な範囲外にあって検出できなかったためと考えられる．このことから、非特許文献１の方式では、ロボットの姿勢が大きく変化した際に、ロボットは、障害物を回避可能な経路を提示することが困難になると思われる。
【０２６４】
図３１は、本発明のロボット１の軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【０２６５】
図３１に示す通り、本発明のロボット１は、障害物Ｂ６より手前では、廊下の中心を目指した走行を行い、障害物Ｂ６に近づいた際には、障害物Ｂ６から距離をとって、障害物Ｂ６と右側の壁との間の中央付近を走向している。これは、ロボット１が、障害物Ｂ６の回避を行なった後に、より前方の反射点を参照した結果、前方の廊下内の通路が障害物Ｂ６の存在により狭められていることを認識したためと考えられる。また、ロボット１が走向する全行程において、本発明のロボット１は、非特許文献１のロボットよりも、旋回量が少ないことが確認された。
【０２６６】
また、図３２は、本発明のロボット１の速度の時系列変化を示している。
【０２６７】
図３２に示す通り、本発明のロボット１の速度は、歩行者との離隔距離に応じて、ほぼ線形に変化していたことが確認された。このことから、本発明のロボット１は、歩行者との離隔距離に応じて速度制御を行っていたことが確認できる。
【０２６８】
図３３は、歩行者の左右の足の変位を示しており、曲線Ａは、左足の胴体中心に対する相対変位の時系列変化を示し、曲線Ｂは、右足の胴体中心に対する相対変位の時系列変化を示している。
【０２６９】
曲線Ａ，Ｂは、ＬＲＦ５による観測で得られた左足及び右足の時系列の相対変位のデータを、直線補完によって繋げていくことで描かれたものである。
【０２７０】
曲線Ａ，Ｂが、相対変位＝０の直線と交差する時間間隔は、歩行周期の半周期を示すものであり、約１秒間と一定となっている。このことから、本発明のロボット１を追随する歩行者には、つまずきや立ち止まりが生じていないことが確認された。
【０２７１】
また本発明のロボット１については、ロボット１を追い越す歩行者（以下、追い越し者と記す）が存在する条件下で、ロボット１の軌跡と、歩行者の軌跡とを計測する実験を行っている。その結果を、図３４に示す。
【０２７２】
追い越し者がロボット１を追い越した直後では、ロボット１は、回避行動をとっていることが確認された。しかしながら、ロボット１の走行経路には、大きな揺れは無く、ロボット１は安定した走行ができていることが確認された。これにより、本発明のロボット１によれば、ロボット１を追い越す歩行者が存在する状況下でも、安定した先導が行えることが確認された。
【産業上の利用可能性】
【０２７３】
本発明は、老人介護施設等で歩行者を先導するために使用されるロボットや、ホテルで客室を案内するために使用されるロボットに適用できる。またさらには、歩行者が追いかけることに応じて逃げる動作を行う屋内用おもちゃや、歩行時の体重移動評価装置や、ＦＡシステム用自走式搬送システムに適用できる。
【符号の説明】
【０２７４】
１  ロボット
３  移動機構
５  ＬＲＦ
７  システムコントローラ
８  目印物体
３１  前輪
３２  後輪
３３  コンピュータ
３４  接地型ロータリエンコーダ
５０  環境計測用ＬＲＦ
Ｂ１，Ｂ２，Ｃ  物体
Ｂ３，Ｂ４，Ｂ５，Ｂ６  障害物
Ｄ  代表値
ｈ  反射点
Ｋ  等高線
Ｑ  頂点
Ｒ  レーザ光
Ｓ  推定位置
Ｔ，Ｕ  中点
Ｚ  胴体中心位置の座標
【図１】
2011059905.tif 000010
【図２】
2011059905.tif 000011
【図４】
2011059905.tif 000012
【図５】
2011059905.tif 000013
【図６】
2011059905.tif 000014
【図７】
2011059905.tif 000015
【図８】
2011059905.tif 000016
【図９】
2011059905.tif 000017
【図１０】
2011059905.tif 000018
【図１１】
2011059905.tif 000019
【図１２】
2011059905.tif 000020
【図１３】
2011059905.tif 000021
【図１４】
2011059905.tif 000022
【図１５】
2011059905.tif 000023
【図１６】
2011059905.tif 000024
【図１７】
2011059905.tif 000025
【図１８】
2011059905.tif 000026
【図１９】
2011059905.tif 000027
【図２０】
2011059905.tif 000028
【図２１】
2011059905.tif 000029
【図２２】
2011059905.tif 000030
【図２３】
2011059905.tif 000031
【図２４】
2011059905.tif 000032
【図２５】
2011059905.tif 000033
【図２６】
2011059905.tif 000034
【図２７】
2011059905.tif 000035
【図２８】
2011059905.tif 000036
【図２９】
2011059905.tif 000037
【図３０】
2011059905.tif 000038
【図３１】
2011059905.tif 000039
【図３２】
2011059905.tif 000040
【図３３】
2011059905.tif 000041
【図３４】
2011059905.tif 000042
【図３５】
2011059905.tif 000043
【図３６】
2011059905.tif 000044
【図３７】
2011059905.tif 000045
【図３】
2011059905.tif 000046