ロボット、制御プログラム、及び記録媒体
【課題】歩行者に対して確実に障害物を回避可能な進路を提示することのできるロボットを提供する。
【解決手段】ロボット1は、後方の範囲Aに向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット1から反射点(h1〜h17)までの距離データを獲得する。そして距離データに基づき、ロボット1の後方に存在する物体の各々の表面に生じた反射点のクラスタ1〜4を抽出し、この中から歩行者の両足を示す可能性のある2つのクラスタの組(1,2の組、2,3の組)を特定する。そして、特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標T1,T2を獲得し、この中から、過去のデータから推定される胴体中心位置S1と、最も近い位置にある座標T2を、現在の胴体中心位置の座標として特定して、座標T2に基づき、ロボット1の速度を制御する。
【解決手段】ロボット1は、後方の範囲Aに向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット1から反射点(h1〜h17)までの距離データを獲得する。そして距離データに基づき、ロボット1の後方に存在する物体の各々の表面に生じた反射点のクラスタ1〜4を抽出し、この中から歩行者の両足を示す可能性のある2つのクラスタの組(1,2の組、2,3の組)を特定する。そして、特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標T1,T2を獲得し、この中から、過去のデータから推定される胴体中心位置S1と、最も近い位置にある座標T2を、現在の胴体中心位置の座標として特定して、座標T2に基づき、ロボット1の速度を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、歩行者等を先導するロボット及びロボットの制御プログラム、並びに記録媒体に関する。
【背景技術】
【0002】
現在、盲導犬による歩行支援を希望する視覚障害者は7800人にのぼっているが、これら視覚障害者のうち盲導犬が提供されている人の割合は、約12%と非常に低い。そして今後においても、盲導犬の訓練期間が長いことや、盲導犬の育成費用が高額であること等を理由として、盲導犬が提供される割合を向上させることは困難であると考えられている。このため近年では、盲導犬に代わる歩行支援手段として、歩行者の前を走向することで、歩行者の先導を行うロボットの開発が進められている。
【0003】
この種のロボットが、盲導犬と同等の役割を果たすためには、歩行者に対して障害物を回避可能な進路を提示することや、歩行者の歩行ペースに合わせて走向することが求められる。非特許文献1には、この課題を解決する方策が提案されている。
【0004】
非特許文献1には、屋内の廊下を歩く歩行者を先導するためのロボット100(図35参照)が開示されている。このロボット100には、廊下の壁や歩行者の位置を検出するための手段としてLRF(Laser range Finder)が設けられており、LRFは、ロボット100の後方と、ロボット100の左右側方とに向けて、所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット100から反射点hまでの距離データを獲得するようになっている。
【0005】
そして、ロボット100の左右側方に照射されたレーザ光によって得られた距離データを用いて、以下に示す進路制御処理が行われる。
【0006】
<進路制御処理>
まず、ロボット100は、ロボット100の左右側方に照射されたレーザ光のうち、ロボットに最も近い反射点h200(以下、最近の反射点と記す)を生じさせたレーザ光を特定して、その反射点の座標を獲得する。さらに、最近の反射点h200を生じさせたレーザ光に対して180度反対側に進行したレーザ光を特定して、その反射点h201(以下、対向反射点と記す)の座標を獲得する。
【0007】
次に、上記最近の反射点h200の座標と、上記対向反射点h201の座標との中点C1の座標を算出する。
【0008】
次に、中点C1の座標にロボット100の位置が制御される。
【0009】
以上の処理により、ロボット100は廊下の中央位置を走向するようになるため、歩行者に対して障害物を回避可能な進路を提示することが実現されることになっている。
【0010】
また非特許文献1によれば、ロボット後方へ照射されたレーザ光により得られた距離データが用いられて、以下に説明する速度制御処理が行われる。
【0011】
<速度制御処理>
ロボット100には、図36に示すように、ロボット100の後方で歩行者が存在すると想定される領域(以下、想定領域と記す)を示す画像が生成されている。この画像では、格子状に並ぶ複数のピクセルPによって想定領域が表現されており、ピクセルPの各々は、想定領域における数cm四方の空間に対応している。
【0012】
そして、上記後方の距離データに基づき、レーザ光の反射が生じた物体の表面位置を示すピクセル(例えばP1〜P4)が特定されることで、想定領域に存在する物体の形状が画像中に表現される。
【0013】
そして、上記画像に表現された物体のうち、歩行者の足の形状を示すテンプレートと類似する物体が特定されて、その物体の位置が、歩行者の足の位置として検出される。
【0014】
そして、上記検出された足位置の経時的な変化量に基づいてロボット100の速度が制御される。
【0015】
以上の処理により、ロボット100が歩行者の歩行ペースに合わせて走向することが実現されることになっている。
【先行技術文献】
【非特許文献】
【0016】
【非特許文献1】安田 裕也、三枝 省三、兼田 健太郎、浦谷 佳孝、田中 英一郎、牧野 俊昭, 盲導犬ロボットにおける視覚障害者の歩行認識と先導, 第9回SICEシステムインテグレーション部門講演会講演論文集(SI2008), 3K2−1 (2008)
【発明の概要】
【発明が解決しようとする課題】
【0017】
ところで非特許文献1の進路制御処理では、ロボット100が、開いたドアの横や廊下の分岐地点に到達することで、ロボット100の側方に壁が存在しなくなった際に(図37(A)参照)、廊下の中央位置が特定できなくなることが生じ得る。
【0018】
つまり、最近の反射点h200を生じさせるレーザ光が特定された後では、これと180度反対側に向かうレーザ光が、対向反射点h201の座標を得るために特定されるが、この特定は、レーザ光の進路の先に反射を生じさせる壁が存在するか否かに関わらず、自動的に行われてしまう。このため、図37(A)に示すように、一方の側に壁が存在しない状況では、対向反射点h201の位置を計測できず、廊下の中央位置の特定が困難になることが生じ得る。
【0019】
また非特許文献1の進路制御処理では、図37(B)に示すようにロボット100の前方に障害物が存在していたり、ロボット100の前で両側の壁が接近して廊下が狭くなっている状況下では、最近の反射点h200は、ロボット100の前方に検出され、対向反射点h201は、ロボット100の後方に検出される。この状況下で、図37(B)に示すように、対向反射点h201が、最近の反射点h200よりも、ロボット100から遠く離れている場合には、反射点h200,h201の中点C1の座標は、ロボット100の後方に算出される。この中点C1の座標に、ロボット100の位置が制御されると、ロボット100は、既に通過した場所へ戻るような動きを示す。この場合、ロボット100は、歩行者が進む先の廊下の中央を走行するものにはならないため、歩行者に障害物の回避が可能な針路を提示することができない。
【0020】
また速度制御処理では、足が歩行時に大きな加速度が生じる部位であるため、テンプレートによる物体の検出(以下、テンプレートによるマッチング)が足の動きに追いつかなくなることが生じ得る。この場合、ロボット100は、歩行者の現位置を特定できないことで、歩行者の歩行ペースに合わせて走向しなくなるものと考えられる。この問題は、画像中の全てのピクセルPを走査することで、テンプレートによるマッチングに多大な計算負荷を要する場合に顕著に現れる。
【0021】
本発明は、こうした状況に鑑みてなされたものであり、本発明の目的は、歩行者等を先導するロボットであって、歩行者に対して確実に障害物を回避可能な進路を提示することのできるロボットを提供することである。
【0022】
また本発明のさらなる目的は、歩行者等を先導するロボットであって、歩行者の位置を高いロバスト性で追跡できることで、確実に歩行者の歩行ペースに合わせて走向することのできるロボットを提供することである。
【課題を解決するための手段】
【0023】
上記目的を達成するため、本発明の第1の観点にかかるロボットは、歩行者等を先導するロボットであって、ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手段と、前記胴体中心特定手段が特定した座標に基づき、ロボットの速度を制御する速度制御手段とを備えることを特徴とする。
【0024】
好ましくは、前記距離データ獲得手段が獲得した距離データに基づき、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出するクラスタ抽出手段と、前記クラスタ抽出手段が抽出したクラスタのうち、歩行者の両足を示す可能性のある2つのクラスタの組を特定する両足候補特定手段と、前記両足候補特定手段が特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標を獲得する胴体中心座標獲得手段とをさらに備え、前記胴体中心特定手段は、前記胴体中心座標獲得手段が獲得した座標の中から、歩行者の胴体中心位置の座標を特定することを特徴とする。
【0025】
好ましくは、前記クラスタ抽出手段が抽出したクラスタのうち、反射点の数が所定の範囲に含まれるクラスタを、歩行者の足を示す可能性のあるクラスタとして特定する足候補特定手段と、前記足候補特定手段が特定したクラスタに含まれる反射点の座標を、均等重みで平均化した重心座標を算出する重心座標算出手段とをさらに備え、前記両足候補特定手段は、前記足候補特定手段が特定したクラスタの中から、歩行者の両足を示す可能性のある2つのクラスタの組を、前記重心座標に基づき特定することを特徴とする。
【0026】
好ましくは、前記両足候補特定手段は、前記重心座標算出手段が算出した重心座標に基づき、前記足候補特定手段が特定したクラスタの中から、隣り合う一対の物体を示す2つのクラスタの組を特定するとともに、これらクラスタの組のうち、一方のクラスタから得られる重心座標と、他方のクラスタから得られる重心座標との間の離隔距離が、所定の閾値を超えていないと判断されたクラスタの組を、歩行者の両足を示す可能性のある2つのクラスタの組として特定することを特徴とする。
【0027】
好ましくは、前記両足候補特定手段が特定した組毎に、これらに含まれる2つのクラスタのうち、一方から得られた重心座標と、他方から得られた重心座標との中点の座標を算出する中点座標算出手段と、過去の処理で歩行者の胴体中心位置を示す座標として特定された前記中点の座標に、線形推定法により推定された歩行者の移動距離を加算することで、現在の胴体中心位置の座標を推定する胴体中心推定手段とをさらに備え、前記胴体中心特定手段は、前記中点座標算出手段が算出した中点の座標のうち、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を、現在の胴体中心位置の座標として特定することを特徴とする。
【0028】
好ましくは、前記胴体中心特定手段は、横方向における位置の差が、前後方向における位置の差よりも大きな変動を与えるユークリッド距離による評価で、前記中点座標算出手段が算出した中点の座標の中から、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を特定することを特徴とする。
【0029】
好ましくは、前記クラスタ抽出手段は、ロボットの周囲に向けて照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出し、前記距離データの差が閾値を超えていないと判断された組については、この組における2つのレーザ光の反射点を同一のクラスタに登録し、前記距離データの差が閾値を超えたと判断された組については、この組における2つのレーザ光の反射点を異なるクラスタに登録していくことで、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出することを特徴とする。
【0030】
好ましくは、前記速度制御手段は、前記胴体中心特定手段が特定した座標と、ロボットが位置する座標との間の離隔距離を算出し、当該離隔距離が、予め設定された最近先導距離よりも小さい場合、ロボットの速度を予め設定された最高速度に制御し、前記離隔距離が、予め設定された停止判断距離よりも大きい場合、ロボットを停止させ、前記離隔距離が、前記最近先導距離よりも大きく、前記停止判断距離よりも小さい場合には、ロボットの速度を前記停止判断距離と前記離隔距離との差に比例した速度に制御することを特徴とする。
【0031】
また、本発明の第2の観点にかかるロボットは、歩行者等を先導するロボットであって、ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手段と、前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手段と、前記左側座標特定手段が特定した反射点の座標と、前記右側座標特定手段が特定した反射点の座標との中点の座標を算出する中点座標算出手段と、前記中点座標算出手段が算出した中点の座標近傍に、ロボットの位置を制御する進路制御手段とを備えることを特徴とする。
【0032】
好ましくは、前記左側座標特定手段又は右側座標特定手段は、ロボットの真横から前記左側又は右側の範囲の前端に至る領域に照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出して、所定の閾値を超えるか否かを判断し、前記距離データの差が閾値を超える組を検出しなかった場合には、前記左側又は右側の範囲の前端にある反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、前記距離データの差が閾値を超える組を検出した場合には、前記左側又は右側の範囲の前端までの領域で、前記閾値を超えた組における2つのレーザ光のうち、後寄りのレーザ光の反射点に比して、ロボットに近い反射点が存在するか探索し、ロボットに近い反射点が探索された場合には、当該反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、ロボットに近い反射点が探索されなかった場合には、前記後寄りのレーザ光の反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定することを特徴とする。
【0033】
好ましくは、前記左側又は右側の範囲に照射されたレーザ光の距離データに基づき、前記左側又は右側の範囲に、壁が存在するか否かを判断する壁有無判定手段と、前記壁有無判定手段によって前記左側又は右側の範囲のいずれか一方に壁が存在しないことが確認された場合、壁の存在が確認された範囲において、ロボットの真横から前側に生じた2つの反射点の座標を特定する座標特定手段と、前記座標特定手段が特定した2つの反射点の座標と、ロボットの座標とを3つの頂点とする平行四辺形における残りの1つの頂点の座標を算出する頂点算出手段と、前記頂点算出手段が算出した座標近傍に、ロボットの位置を制御する進路制御手段とをさらに備えることを特徴とする。
【0034】
好ましくは、前記ロボットの左側又は右側の範囲において、ロボットよりも前側に歩行の妨げとなる障害物が存在する場合には、前記左側座標特定手段及び右側座標特定手段のうち一方は、前記距離データ獲得手段によって獲得された距離データに基づき、前記障害物の表面に生じた反射点の座標を特定し、前記中点座標算出手段は、前記障害物の表面に生じた反射点の座標と、前記左側座標特定手段及び右側座標特定手段のうち他方が特定した反射点の座標との中点の座標を算出することを特徴とする。
【0035】
また、本発明の第3の観点にかかる制御プログラムは、歩行者等を先導するロボットの制御プログラムであって、ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手順と、前記胴体中心特定手順で特定された座標に基づき、ロボットの速度を制御する速度制御手順とをロボットに実行させることを特徴とする。
【0036】
また、本発明の第4の観点にかかる制御プログラムは、歩行者等を先導するロボットの制御プログラムであって、ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手順と、前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手順と、前記左側座標特定手順で特定された反射点の座標と、前記右側座標特定手順で特定された反射点の座標との中点の座標を算出する中点座標算出手順と、前記中点座標算出手順で算出された中点の座標近傍に、ロボットの位置を制御する進路制御手順とをロボットに実行させることを特徴とする。
【0037】
本発明の第5の観点にかかる記録媒体は、前記制御プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0038】
本発明によれば、歩行者の両足を示す可能性のある2つのクラスタの組が特定され、さらに、このクラスタの組に基づき、現在の胴体中心位置の座標が特定されて、この位置に基づき、ロボットの速度が制御される。ここで、歩行者の胴体中心は、両足が前後往復運動をしているときでも、大きな変位を伴わず、滑らかに移動する。このことから、歩行者の位置をブレなく追跡できる。また、歩行者の追跡のために負荷の大きな処理を必要としないことから、歩行者の追跡に要する計算時間が短い。このため、歩行者の現位置を追跡することができる。以上のことから、本発明によれば、高いロバスト性で歩行者の位置を追跡できるため、ロボットは確実に歩行者の歩行ペースに合わせて走向するようになる。
【0039】
また本発明によれば、ロボットの左右両側に壁が存在する場合には、これら左右の壁の表面でロボットよりも前側に生じた反射点の座標が獲得される。そして、これらの反射点の中点位置に、ロボットの位置が制御される。これにより、ロボットは、ロボットの前側における廊下の中央位置を走向するようになるので、ロボットを追随する歩行者に対して、確実に壁を回避可能な進路が提示される。
【図面の簡単な説明】
【0040】
【図1】本発明の実施の形態におけるロボットが歩行者を先導している状態を示す側面図である。
【図2】ロボットが走向する廊下内の環境を示す平面図である。
【図3】ロボットを示す写真である。
【図4】ロボットのハードウェア構成を示すブロック図である。
【図5】ロボット全体における処理を概略的に示すフローチャートである。
【図6】図5のステップS104により抽出される反射点のクラスタを示す平面図である。
【図7】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図8】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図9】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図10】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図11】図5のステップS115で算出される中点Uの座標の例を示す平面図である。
【図12】図5のステップS115で算出される中点Uの座標の例を示す平面図である。
【図13】図5のステップS117で特定されるロボットの真横から前側に生じた反射点hの座標の例を示す平面図である。
【図14】図5のステップS117で特定されるロボットの真横から前側に生じた反射点hの座標の例を示す平面図である。
【図15】図5のステップS101で作成されるデータテーブルの例を示す図である。
【図16】図5のステップS104の処理の詳細を示すフローチャートである。
【図17】図5のステップS107の処理の詳細を示すフローチャートである。
【図18】図5のステップS109の処理の詳細を示すフローチャートである。
【図19】図5のステップS110の処理の詳細を示すフローチャートである。
【図20】図6に示す歩行者の右足・左足近傍の領域を、拡大して示す平面図である。
【図21】図5のステップS112の処理の詳細を示すフローチャートである。
【図22】図21のステップS601で算出される離隔距離と、ステップS602で制御される後輪の駆動速度との関係を示す図である。
【図23】レーザ光の進路に対して左足が右足の背後にある状況を示す平面図である。
【図24】図5のステップS113の処理の詳細を示すフローチャートである。
【図25】図5のステップS114の処理の詳細を示すフローチャートである。
【図26】図5のステップS117の処理の詳細を示すフローチャートである。
【図27】図5のステップS120の処理の詳細を示すフローチャートである。
【図28】ロボットの先導機能の評価実験で、ロボットが歩行者を先導している状態を示す側面図である。
【図29】ロボットの先導機能の評価実験が行われた廊下環境を示す平面図である。
【図30】非特許文献1の方式によるロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【図31】本発明のロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【図32】本発明のロボットの速度の時系列変化を示す図である。
【図33】歩行者の左右の足の変位を示す図である。
【図34】ロボットを追い越す歩行者が存在する条件下における、本発明のロボットの軌跡と、歩行者の軌跡とを示す平面図である。
【図35】非特許文献1のロボットが、屋内の廊下を走向する状況を示す平面図である。
【図36】非特許文献1のロボットで生成される画像を示す平面図である。
【図37】非特許文献1のロボットで取得される反射点の座標の例を示す平面図である。
【発明を実施するための形態】
【0041】
以下、この発明の実施の形態1について図を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。図1は、本発明の実施の形態におけるロボット1が歩行者を先導している状態を示す側面図であり、図2は、ロボット1が走向する廊下内の環境を示す平面図であり、図3は、ロボット1を示す写真であり、図4は、ロボット1のハードウェア構成を示すブロック図である。
【0042】
ロボット1は、一つの前輪31及び左右の後輪32を備えた移動機構3と、歩行者や障害物等の位置を検出するためのLRF5と、移動機構3とLRF5との接続を図るシステムコントローラ7(図3,4参照)とを備え、後輪32の駆動により、前輪31によって操舵された方向に進行可能である。
【0043】
以下、ロボット1が進行する方向を「前方向」と記し、ロボット1の進行方向に対して180度反対側の方向(進行方向の逆方向)を「後方向」と記し、ロボット1の進行方向に対して左側に90度傾く方向を「左方向」と記し、ロボット1の進行方向に対して右側に90度傾く方向を「右方向」と記す。
【0044】
移動機構3には、図4に示すように、コンピュータ33と、接地型ロータリエンコーダ34とが搭載されている。コンピュータ33は、前輪31の操舵角や後輪32の駆動速度をプログラム処理によって5ミリ秒間隔で制御可能である。コンピュータ33としては、例えば北陽電機製のSH-4プロセッサを備えたコンピュータを使用することができる。接地型ロータリエンコーダ34は、オドメトリによって後輪32の駆動量を算出可能である。
【0045】
LRF5は、小型且つ軽量のスキャナ式レーザレンジファインダであって、レーザ光を出射して、物体の表面に生じた反射点hまでの距離データ(図1,2参照)を獲得する。LRF5は、レーザ光の発射部が後方向を向くように移動機構3上に設置されており、図2に示すように、後方向を中心とする120度の範囲Aと、右方向を中心とする60度の範囲Bと、左方向を中心とする60度の範囲Cとに、所定角度ピッチで放射線状にレーザ光を照射する。
【0046】
またLRF5は、図1に示すように、レーザ光の出射高さが床から約20cmの位置に設定されている。これにより、範囲A,B,Cに存在する物体の前記20cmの高さにおける水平断面形状を計測することができる。範囲Aに照射されたレーザ光によって得られたデータは、ロボット1の後方に存在する歩行者の足などの物体を検出するために用いられ、範囲B,Cに照射されたレーザ光によって得られたデータは、廊下の壁や障害物を検出するために用いられる。LRF5として、例えば北陽電機製のURG-04LXを用いることができる。
【0047】
システムコントローラ7は、移動機構3上に搭載された小型且つ軽量のコンピュータであり、図4に示すように、LRF5とUSB接続が行われ、移動機構3とシリアル接続及びUSB接続が行われている。この接続により、システムコントローラ7は、LRF5とのデータ送受信を行ったり、移動機構3のコンピュータ33へ指令を送信することができる。システムコントローラ7としては、例えば富士通製のコンピュータ(FMV-BIBLO LOOX U50X/V)を用いることができる。
【0048】
次に、ロボット1で実行される処理について説明する。図5は、ロボット1の全体における処理を概略的に示すフローチャートである。
【0049】
ロボット1では、まずLRF5において環境スキャン処理が行われ、その後、システムコントローラ7において歩行者位置検出処理・壁有無判定処理・障害物位置検出処理が行われる。そして移動機構3において、歩行者位置検出処理に続いて速度制御処理が行われ、障害物位置検出処理に続いて進路制御処理が行われる。以下、これらの処理の概略について順に説明する。なお上記の各処理は、LRF5や、システムコントローラ7や、移動機構3のコンピュータ33に記憶されたプログラムに基づき実行される。
【0050】
環境スキャン処理では、LRF5は、一定の時間間隔で範囲A,B,Cに向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット1から反射点hまでの距離データを獲得する(ステップS101)。
【0051】
次に、LRF5は、ステップS101で取得した距離データを、システムコントローラ7に送信する(ステップS102)。
【0052】
そして、システムコントローラ7は、LRF5からデータを受信することに応じて、ステップS103からの処理を開始する。このシステムコントローラ7における処理は、LRF5が範囲A,B,Cに向けてレーザ光を照射するたび(すなわちステップS102でLRF5からデータを受信するたび)に行われる。
【0053】
まず、システムコントローラ7は、LRF5から受信したデータのデコードを行う(ステップS103)。
【0054】
そして、システムコントローラ7は、範囲Aに照射されたレーザ光の距離データに基づき、歩行者位置検出処理を開始する。
【0055】
まず、システムコントローラ7は、範囲Aに存在する物体の各々の表面に生じた反射点hのクラスタを抽出する(ステップS104)。
【0056】
図6は、ステップS104により抽出される反射点hのクラスタを示す平面図である。図6では、範囲Aに存在する物体として、歩行者の右足・左足と、物体B1,B2とが示されている。図6に示す状況下では、ステップS104により、物体B1の表面に生じた反射点h1〜h3のクラスタ1と、右足の表面に生じた反射点h4〜h6のクラスタ2と、左足の表面に生じた反射点h7〜h9のクラスタ3と、物体B2の表面に生じた反射点h10〜h17のクラスタ4とが抽出される。
【0057】
そしてステップS104の実行後では、システムコントローラ7は、ステップS104で抽出されたクラスタの中から、歩行者の足を示す可能性のあるクラスタ(以下、注目クラスタと記す)を抽出する(ステップS105)。この処理では、ステップS104で抽出されたクラスタのうち、足と同程度のサイズの物体を示すクラスタが、注目クラスタとして抽出される。
【0058】
図6の例では、クラスタ2,3は、歩行者の足を示すクラスタであることから、注目クラスタとして抽出される。また、物体B1を示すクラスタ1も、物体B1が足と同程度のサイズを有していることから、注目クラスタとして抽出される。しかしながら、物体B2を示すクラスタ4は、物体B2が足よりも大きなサイズを有していることから、注目クラスタとしては抽出されない。
【0059】
次に、システムコントローラ7は、注目クラスタに含まれる反射点hの座標の代表値Dを算出する(ステップS106)。この代表値Dは、ステップS105で抽出された注目クラスタ毎に獲得される。
【0060】
図6の例では、クラスタ1の代表値D1の座標が得られ、クラスタ2の代表値D2の座標が得られ、クラスタ3の代表値D3の座標が得られた状態が示されている。
【0061】
次に、システムコントローラ7は、ステップS105で抽出された注目クラスタの中から、歩行者の両足を示している可能性のある2つの注目クラスタの組を抽出する(ステップS107)。この処理は、ステップS106で算出された代表値Dに基づき行われ、ステップS105でn個の注目クラスタが抽出されている場合には、このn個の注目クラスタの中から、隣り合う一対の物体を示す2つの注目クラスタがn−1組設定され、さらに、このn−1個の組の中から、両足を示している可能性のある注目クラスタの組が抽出される。
【0062】
図6の例では、隣り合う注目クラスタの組として、代表値(D1,D2)に基づき、クラスタ1,2の組が設定され、代表値(D2,D3)に基づき、クラスタ2,3の組が設定され得る。そしてさらに、クラスタ1,2の組・クラスタ2,3の組のいずれもが、代表値(D1,D2)(D2,D3)に基づき、両足を示す可能性のある注目クラスタの組として抽出され得る。
【0063】
次に、システムコントローラ7は、ステップS107で抽出された注目クラスタの組において、一方の注目クラスタから得られた代表値Dと、他方の注目クラスタから得られた代表値Dとの中点Tの座標を算出する(ステップS108)。この処理は、ステップS107で抽出された組毎に行われる。この結果、中点Tの座標は、複数獲得され得る。
【0064】
図6の例では、クラスタ1,2の組について、代表値D1と代表値D2との中点T1の座標が算出され、クラスタ2,3の組について、代表値D2と代表値D3との中点T2の座標が算出されている。
【0065】
次に、システムコントローラ7は、現在の歩行者の胴体中心位置の座標を推定する(ステップS109)。この推定は、過去の処理(後述のステップS110の過去の処理)で特定した歩行者の胴体中心位置に基づき行われる。
【0066】
次に、システムコントローラ7は、ステップS108で算出した中点Tの座標の中から、歩行者の胴体中心位置を示す可能性が高い座標を特定する(ステップS110)。この処理では、ステップS108で算出された中点Tの座標のうち、ステップS109の推定位置Sの座標に最も近い座標が特定される。
【0067】
図6の例では、ステップS109による推定位置S1が示されており、中点T1,T2のうち、中点T2が推定位置S1に近いと判断されて、中点T2の座標が、胴体中心位置を示す可能性が高い座標として特定される。
【0068】
次に、システムコントローラ7は、ステップS109で特定した中点Tの座標(胴体中心位置を示す可能性が高い座標)を、移動機構3に送信する(S111)。図6の例の説明では、中点T2の座標が、移動機構3に送信される。
【0069】
以上で歩行者位置検出処理は終了し、移動機構3は、ステップS111で送信された座標を受信することに応じて、速度制御処理を開始する。
【0070】
この速度制御処理では、移動機構3は、ステップS111により受信した座標に基づき、後輪32の駆動速度を制御する(ステップS112)。この結果、ロボット1の速度は、歩行者との離隔距離に応じて制御されるようになる。
【0071】
次に、システムコントローラ7における壁有無判定処理・障害物位置検出処理の概略について説明する。
【0072】
ステップS103のデコードが行われると、システムコントローラ7は、範囲B,C(図2参照)に照射されたレーザ光の距離データに基づき、範囲B,Cに壁が存在するか否かを判断する(ステップS113)。
【0073】
範囲B,Cのいずれにも壁が存在すると判断された場合には(ステップS113でYES)、ステップS114からの障害物位置検出処理が開始される。
【0074】
また、範囲B,Cのいずれか一方に壁が存在していないと判断された場合には(ステップS113でNO)、ステップS117からの障害物位置検出処理が開始される。
【0075】
まず、ステップS114から開始される障害物位置検出処理の流れについて説明する。
【0076】
この流れでは、まず、システムコントローラ7は、範囲B,Cに照射されたレーザ光の距離データに基づき、範囲B,Cにおいて、ロボット1よりも前側に生じた反射点hの座標を特定する(ステップS114)。以下、ステップS114で範囲Bについて特定される反射点hの座標の例を、図7,8,9,10を用いて説明する。
【0077】
図7は、範囲Bの後端から前端に亘って、右側の壁が延びている状況を示している。この状況下では、例えば、範囲Bの前端における壁表面に生じた反射点h23の座標が特定される。
【0078】
図8は、範囲Bの後端と前端との間で、右側の壁が途切れている状況を示している。この状況下では、例えば、壁の途切れ手前の反射点h31の座標が特定される。
【0079】
図9は、右側の壁が範囲Bの前端付近で途切れており、この途切れた先に、レーザ光を拡散反射しにくい材質の物体C(例えば黒いドア)が存在している状況を示している。この状況下では、例えば、物体Cの手前の壁表面に生じた反射点h42の座標が特定される。
【0080】
図10は、範囲Bにおいてロボット1よりも前側に障害物B3が存在している状況を示している。この状況下では、例えば、障害物B3の表面で生じた反射点h55の座標が特定される。
【0081】
ステップS114では、範囲Cについても同様に、ロボット1よりも前側に生じた反射点hの座標が特定される。すなわち、範囲Cでは、左側の壁の状況に応じて、範囲Cの前端における壁表面に生じた反射点hの座標や、壁の途切れ手前の反射点hの座標や、反射を生じにくい物体の手前の壁表面に生じた反射点hの座標が特定される。また、ロボット1よりも前側に障害物が存在しているときには、障害物の表面で生じた反射点hの座標が特定される。
【0082】
図5に戻り、ステップS114の実行後では、システムコントローラ7は、ステップS114で特定した範囲B,Cの反射点hの座標の中点Uの座標を算出する(ステップS115)。ステップS115で算出される中点Uの座標の例を、図11,12を用いて説明する。
【0083】
図11は、範囲B,Cの両端に亘って、右側・左側の壁が存在している状況を示している。この状況下では、ステップS114により、範囲Bの前端における右側壁の表面に生じた反射点h60の座標と、範囲Cの前端における左側壁の表面に生じた反射点h61の座標とが特定される。そして、ステップS115では、反射点h60,h61の中点U1の座標が取得される。この中点U1は、ロボット1よりも前側における廊下の中央位置を示している。
【0084】
図12は、右側・左側の壁が、それぞれ範囲B,Cの両端に亘って存在しており、範囲Cの前端における壁際に障害物B4が存在している状況を示している。この状況下では、ステップS114により、範囲Bの前端における右側壁の表面に生じた反射点h70の座標と、障害物B4の表面に生じた反射点h75の座標とが特定される。そして、ステップS115では、反射点h70,h75の中点U2の座標が取得される。この中点U2は、ロボット1よりも前側における、右側の壁と障害物B4との間の中央位置を示している。
【0085】
図5に戻り、ステップS115の実行後では、システムコントローラ7は、ステップS115で算出した中点Uの座標を移動機構3に送信する(ステップS116)。以上によりステップS114からの障害物位置検出処理は終了する。
【0086】
次に、ステップS117からの障害物位置検出処理の流れについて説明する。この処理の流れは、上述したように、範囲B,Cのいずれか一方に壁が存在しない場合に実行される。
【0087】
この流れでは、システムコントローラ7は、まず範囲B,Cのうち、壁が存在する方の範囲において、ロボット1の真横から前側に生じた反射点hの座標を特定する(ステップS117)。ステップS117で特定される反射点hの座標の例を、図13,14を用いて説明する。
【0088】
図13は、左側の壁が存在するが、右側の壁が存在しない状況を示している。この状況下では、範囲Cの前端における左側壁の表面に生じた反射点h84の座標が特定される。
【0089】
図14は、左側の壁は存在するが、右側の壁が存在しておらず、また、範囲Cの前端における壁際に障害物B5が存在している状況を示している。この状況下では、障害物B5の表面で生じた反射点h93の座標が特定される。
【0090】
図5に戻り、ステップS117の実行後では、システムコントローラ7は、ステップS117で特定したロボット1前側の反射点hの座標と、ロボット1の真横付近(真横或いは真横よりも前側の位置)の反射点hの座標と、ロボット1の座標と、を3つの頂点とする平行四辺形において、残りの1つの頂点Qとなる座標を算出する(ステップS118)。この頂点Qの座標は、下記数1に基づき行われる。なお、上記のロボット1の真横付近の反射点hの座標は、ステップS113でシステムコントローラ7に記憶されるものである。
【数1】
【0091】
図13の例では、ステップS117で特定されたロボット1前側の反射点h84の座標と、範囲Cでロボット1の真横付近に生じた反射点h80の座標と、ロボット1の座標とを3つの頂点とする平行四辺形において、残りの1つの頂点Q1の座標が算出されている。
【0092】
また図14の例では、ステップS117で特定されたロボット1前側の反射点h93の座標と、範囲Cでロボット1の真横付近に生じた反射点h90の座標と、ロボット1の座標とを3つの頂点とする平行四辺形において、残りの1つの頂点Q2の座標が算出されている。
【0093】
図5に戻り、ステップS118の実行後では、システムコントローラ7は、ステップS118で算出した頂点Qの座標を、移動機構3に送信する(ステップS119)。以上によりステップS117からの障害物位置検出処理は終了する。
【0094】
そして、ステップS116,S119が実行されることに応じて、移動機構3は、進路制御処理を開始する。
【0095】
この進路制御処理では、移動機構3は、ステップS116,S119で受信された中点U又は頂点Qの座標に基づき、前輪31の操舵角を制御する(ステップS120)。これにより、ロボット1は、ステップS116,S119で受信された座標の位置(例えば図11〜14のU1,U2,Q1,Q2の位置)近傍に向けて走向するようになる。
【0096】
次に、ロボット1で実行される処理の詳細について説明する。まず、図5のステップS101の詳細として、LRF5から範囲A,B,Cに向けて照射されるレーザ光の順序と、ステップS101で作成されるデータテーブルとについて説明する。
【0097】
範囲Aにおけるレーザ光の照射順序は、(1)範囲Aの右端を通過するレーザ光を始めとして、左寄りのレーザ光が後になる順序、或いは(2)範囲Aの左端のレーザ光を始めとして、右寄りのレーザ光が後になる順序に設定される。
【0098】
図2のR1〜6は、範囲Aに連続して照射されたレーザ光の例を示している。これらR1〜6の照射順序は、(1)左寄りのレーザ光が後になる順序では、R1→R2→R3→R4→R5→R6の順となり、(2)右寄りのレーザ光が後になる順序では、R6→R5→R4→R3→R2→R1の順となる。
【0099】
また範囲B,Cにおけるレーザ光の照射順序は、範囲B,Cの後端を通過するレーザ光を始めとして、前寄りのレーザ光が後になる順序となっている。
【0100】
図2のR7〜12は、範囲Bに連続して照射された照射されたレーザ光の例を示している。これらR7〜12の照射順序は、R7→R8→R9→R10→R11→R12の順序となる。
【0101】
図15は、図5のステップS101で作成されるデータテーブルの例を示している。このデータテーブルは、範囲Bに照射されたレーザ光について作成されたものであって、範囲Bに照射されたレーザ光の各々に対応する行が設けられている。これらの行では、レーザ光によって得られた距離データと、レーザ光に関する情報(レーザ光が照射された順番・レーザ光が進行した角度位置)とが記されている。
【0102】
例えば、データテーブルの1行目は、範囲Bの後端を通過したレーザ光に対応し、データテーブルの2行目は、後端のレーザ光の1ピッチ前寄りを通過したレーザ光に対応している。そして、データテーブルの1行目では、後端のレーザ光によって得られた距離データAや、後端のレーザ光が照射された順番(1番目)や、後端のレーザ光が進行した角度位置(0.0°:範囲B後端からの角度)が記されている。
【0103】
図5のステップS101では、上記のデータテーブルが、範囲A,B,Cに照射されたレーザ光のいずれにもついても作成される。そして、これらのデータテーブルは、ステップS102でシステムコントローラ7に送信される。
【0104】
なお図15に示すデータテーブルでは、5,9行目において、距離データが記されていない。これは、5,9行目に対応するレーザ光の反射点を、LRF5が計測できなかったことによるものである。この理由としては、レーザ光の進路の先に、反射を生じさせる壁が存在していなかったことや(図13,14の範囲B参照)、レーザ光を反射しにくい材質の物体(図9の物体C参照)が存在していたことがあげられる。
【0105】
次に、図5のステップS104の詳細について説明する。
【0106】
図6に示すレーザ光R13〜18は、範囲Aに照射されたレーザ光の例を示している。このうち、R13〜16は連続して照射されたものであって、R13,R14,R15は、物体B1の表面に反射点h1,h2,h3を生じさせている。また、R15は、物体B1の脇を通過して物体B2に照射されたことで、物体B2の表面に反射点h10を生じさせている。
【0107】
ここで、R13とR14のように、1ピッチの角度間隔をあけて進行した2つのレーザ光が同一の物体に照射された場合、これらレーザ光の反射点は近い位置に生じる(R13,R14の反射点h1,h2参照)。よって、これら2つのレーザ光により得られる距離データは同程度の値を示すものとなる。
【0108】
これに対して、R15とR16のように、1ピッチの角度間隔をあけて進行した2つのレーザ光が異なる物体(物体B1,B2)に照射され、これらの物体が他方から離れた位置にある場合には、2つのレーザ光の反射点は遠い位置に生じる(R15,R16の反射点h3,h10参照)。よって、これら2つのレーザ光により得られる距離データは、大きく異なる値を示すものとなる。
【0109】
これに鑑み、図5のステップS104では、範囲Aに照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差が順次算出され、この差に基づき、同一の物体の表面に生じた反射点hを特定することが行われる。以下、具体的に説明する。
【0110】
なお以下では、図6のR13が範囲Aの右端を通過したレーザ光に該当し、R18が範囲Aの左端を通過したレーザ光に該当し、R17がR18の1ピッチ右寄りの位置を進行したレーザ光に該当するものとして説明する。また、レーザ光の照射順序は、右端を通過するレーザ光(R13)を始めとして、左寄りのレーザ光が後となる順序(R18が最後となる順序)に設定されているものとする。
【0111】
図16は、ステップS104の処理の詳細を示すフローチャートである。
【0112】
まず、システムコントローラ7は、距離データの差を算出する2つのレーザ光の組を選択する(ステップS201)。初回の処理では、範囲Aの右端を通過したR13と、これの1ピッチ左寄りを進行したR14とからなる組が選択される。
【0113】
具体的には、範囲Aについて作成されたデータテーブルにおいて、R13,R14に対応する2行が、距離データの差を算出する行として選択される。この行の選択は、データテーブルに示されるレーザ光に関する情報(レーザ光の照射順序・レーザ光の角度位置)に基づき行われる。
【0114】
次に、システムコントローラ7は、ステップS201で選択した2つのレーザ光の距離データの差を算出する(ステップS202)。具体的には、ステップS201で選択されたデータテーブルの2行に記されている距離データの差が選択される。
【0115】
次に、システムコントローラ7は、ステップS202で算出した差が、所定の閾値を超えているか否かを判断する(ステップS203)。
【0116】
距離データの差が閾値を超えていないと判断された場合には(ステップS203でNO)、ステップS201で選択された2つのレーザ光の反射点hは、同一の物体の表面に生じたものとして、同一のクラスタに登録される(ステップS204)。
【0117】
一方、距離データの差が閾値を超えていると判断された場合には(ステップS203でYES)、ステップS201で選択された2つのレーザ光の反射点hは、異なる物体の表面に生じたものとして、異なるクラスタに登録される(ステップS205)。
【0118】
例えば、ステップS201で選択された2つのレーザ光が図6のR13,R14である場合には、R13,R14の反射点h1,h2がいずれも物体B1の表面に生じていることで、R13,R14の距離データの差は小さい。これにより、R13,R14の距離データの差は閾値を超えていないと判断される(ステップS203でNO)。この結果、R13,R14の反射点h1,h2は、同一のクラスタに登録される(ステップS204)。
【0119】
そして図16のステップS204,S205の実行後では、システムコントローラ7は、範囲Aにおける全てのレーザ光の組について、距離データの差の算出や、クラスタの登録処理(S202〜S204,205の処理)を行ったか否かを判断する(ステップS206)。図6の例による説明では、処理が行われたのは、R13,R14の組についてのみであるため、NOと判断されて、ステップS207に移行する。
【0120】
そしてステップS207では、距離データの差を算出するレーザ光の組が、1ピッチ左寄りの組に変更される。図6のR13,R14の組が選択されていた場合には、これらの1ピッチ左寄りにあるR14,R15の組に変更される。
【0121】
そして再びステップS202,S203が実行されることで、ステップS207で変更された2つのレーザ光の組について、距離データの差が算出されて、閾値を超えていないか判断される。
【0122】
そして、距離データの差が閾値を超えていないと判断された場合には(ステップS203でNO)、ステップS207で新たに選択されたレーザ光の反射点hが、前回の処理で反射点の登録が行われたクラスタに追加登録される(ステップS204)。
【0123】
一方、距離データの差が閾値を超えていると判断された場合には(ステップS203でYES)、ステップS207で新たに選択されたレーザ光の反射点hは、前回の処理で登録があったクラスタとは異なるクラスタに登録される(ステップS205)。
【0124】
例えばステップS207で、図6のR13,R14の組から、図6のR14,R15の組に変更されていた場合には、R15が、ステップS207で新たに選択されたレーザ光に該当する(R14は、前回の処理で既に選択されているため、新たに選択されたレーザ光ではない)。
【0125】
この場合、R15の反射点h3は、R14の反射点h2と同様に、物体B1の表面に生じていることから、R14,R15の距離データの差は小さい。このため、ステップS203では、閾値を超えていないと判断される(ステップS203でNO)。この結果、R14の反射点h3は、前回処理で反射点h2が登録されたクラスタに追加登録される(ステップS204)。
【0126】
そして、ステップS204で反射点h3の登録が行われた後では、ステップS206が実行されるが、S202〜S204,205が行われた組は、R13,R14の組、R14,R15の組だけであるため、NOと判断されて、ステップS207に移行する。
【0127】
このステップS207では、R14,R15の組から、R15,R16の組に変更される。この場合、R16が、ステップS207で新たに選択されたレーザ光に該当することになる。
【0128】
そして、再びステップS202,203が実行されることで、R15,R16の距離データの差が算出されて、閾値を超えていないか判断される。この際には、R16の反射点h10は、R15の反射点h3とは異なり、物体B2の表面に生じていることから、R15,R16の距離データの差は大きい。このため、ステップS203では閾値を超えていると判断される(S203でYES)。この結果、R16の反射点h10は、前回処理で反射点h3が登録されたクラスタとは、異なるクラスタに登録される(ステップS205)。
【0129】
上記のS202〜S207は、範囲Aの左端に照射されたR17,R18の組が完了するまで繰り返される。この結果、範囲Aに存在する物体の各々(物体B1・右足・左足・物体B2)の表面に生じた反射点hのクラスタ1,2,3,4が抽出される。そして、R17,R18の組についての処理が完了した際には、ステップS206でYESと判断されて、ステップS104は終了する。
【0130】
次に、図5のステップS105の詳細について説明する。
【0131】
クラスタを構成する反射点hの数は、物体の大きさに応じて変わり、足を示すクラスタは、電柱のような太い物体を示すクラスタに比して反射点hの数が少なく、また、箒の柄のように細い物体を示すクラスタに比して反射点hの数が多い。図6の例では、右足・左足を示すクラスタ2,3は、反射点の数が3であるのに対して、足よりも大きな物体B2を示すクラスタ4は、反射点の数が8となっている。
【0132】
これに鑑みステップS105では、クラスタを構成する反射点hの数に基づき、注目クラスタが抽出される。具体的には、システムコントローラ7は、ステップS104で抽出されたクラスタの中から、反射点hの数が所定の範囲に含まれるクラスタを、注目クラスタとして抽出する。
【0133】
上記の範囲は、レーザ光の照射により足の表面に生じる反射点hの数を、足の位置を変えるたびに測定し、この測定で得られた最大値・最小値を、上限・下限とすることで設定されるものである。
【0134】
例えば、上記の範囲が2以上4以下に設定されている場合、図6の例では、反射点の数が3であるクラスタ1,2,3は、注目クラスタとして抽出されるが、反射点の数が8であるクラスタ4は、注目クラスタとして抽出されない。
【0135】
次に、図5のステップS106の詳細について説明する。
【0136】
このステップS106では、システムコントローラ7は、下記数2により、注目クラスタに含まれる反射点hの座標を均等重みで平均化することで代表値Dを算出する。例えば、図6に示すクラスタ1では、反射点h1,h2,h3の座標について、数2による平均化が行われることで、代表値D1の座標が算出される。
【数2】
【0137】
次に、図5のステップS107の詳細について説明する。図17は、ステップS107の処理の詳細を示すフローチャートである。このステップS107では、ステップS106で算出された代表値Dに基づき、歩行者の両足を示す注目クラスタの組が設定される。
【0138】
まず、システムコントローラ7は、ステップS105で抽出された注目クラスタの中から、隣り合う一対の物体を示す2つの注目クラスタの組を設定する(ステップS301)。この処理では、ステップS106で算出された代表値Dの座標が近い位置にある2つの注目クラスタが、上述の一対の物体を示す組として設定される。
【0139】
図6の例において、代表値D1,D2の位置が近いと判断される場合には、クラスタ1,2の組が、隣り合う物体を示す組として抽出され、また、代表値D2,D3の位置が近いと判断される場合には、クラスタ2,3の組が、隣り合う物体を示す組として抽出され得る。
【0140】
そして、システムコントローラ7は、ステップS301で設定した注目クラスタの組の中から、両足を示す可能性のある組を抽出する(ステップS302)。この抽出は、ステップS301で設定された組について、一方の代表値Dの座標と、他方の代表値Dの座標との離隔距離が、予め設定された限界値(例えば300mm)を超えていない組を抽出することで行われる。これは、人が歩行時に取り得る歩幅には限度があることから、この限度を超えて2つの代表値Dが離れている注目クラスタの組は、両足を示すものではないと考えられるためである。
【0141】
図6の例において、代表値D1,D2の離隔距離が限界値を超えていないと判断される場合には、クラスタ1,2は、両足を示す可能性のある組として抽出され、また、代表値D2,D3の離隔距離が限界値を超えていないと判断される場合には、クラスタ2,3は、両足を示す可能性のある組として抽出され得る。
【0142】
次に、図5のステップS109の詳細について説明する。図18は、ステップS109の処理の詳細を示すフローチャートである。
【0143】
ステップS109では、下記数3,4による線形推定法によって、現在の胴体の中心位置が推定される。
【0144】
まず、システムコントローラは、数3に示すように、前回のステップS110で特定された胴体中心位置の座標(図6のZ2に相当)と、前々回のステップS110で特定された胴体中心位置の座標(図6のZ1に相当)との距離差(図6のd1に相当)を、前々回のステップS110から前回のステップS110までの時間間隔(図6のZ1〜Z2の移動時間に相当)で序することで、前回処理時における歩行者の速度(Z1〜Z2移動時の歩行速度に相当)を算出する(ステップS401)。
【数3】
【0145】
次に、歩行者は、前回処理時から現時点まで一定の速度で歩行しているという仮定に基づき、数4に示すように、前回処理時から現時点までの時間間隔(図6のZ2〜S1の移動時間に相当)に、ステップS401で算出した速度(Z1〜Z2移動時の歩行速度に相当)を乗じることで、歩行者の移動距離(図6のd2に相当)を算出し、この距離を前回のステップS110で特定された座標(図6のZ2に相当)に加算する(ステップS402)。この結果、得られる座標(図6のS1に相当)が、現在の胴体中心の推定位置となる。
【数4】
【0146】
次に、図5のステップS110の詳細を説明する。図19は、ステップS110の処理の詳細を示すフローチャートである。
【0147】
ロボット1を追随する歩行者が、真横を向くことは、まれであると思われる。また、人の足の関節の構造によれば、歩行者は、両足を、前後方向には交互に出しやすいが、横方向には交互に出しにくい。以上のことから、ロボット1による先導中に、歩行者の位置の変位は、前後方向に出やすい傾向にあるといえる。
【0148】
よって、例えば図6に示す状況のように、ステップS108で2つの中点T1,T2の座標が算出されており、これら中点T1,T2がステップS109の推定位置S1から同程度の距離で離隔しているときには、中点T1,T2のうち、推定位置S1に対して前後方向にずれた位置にある中点T2が、現在の歩行者の位置を示している可能性が高いと考えるのが妥当である。
【0149】
これに鑑み、ステップS110では、下記数5により得られるユークリッド距離が用いられて、ステップS108で算出された中点Tの中から、歩行者の胴体中心を示す可能性の高い座標が特定される。
【数5】
【0150】
ユークリッド距離は、ステップS108で算出された中点Tの座標とステップS109で算出された推定位置Sの座標との横方向の差(以下、横方向の差と略す)の2乗値に定数Cを乗じた値と、ステップS108で算出された中点Tの座標とステップS109で算出された推定位置Sの座標との前後方向の差(以下、前後方向の差と略す)の2乗値に1/C(定数Cの逆数)を乗じた値とを、足し合わせることで算出される。C値が1よりも大きく設定される場合には、ユークリッド距離は、横方向の差による変動が大きくなる特徴を有している。
【0151】
そして図19に示すように、ステップS110では、ステップS108で算出された各中点Tの座標について、数5によりユークリッド距離が算出されるが(ステップS501)、この際に用いられるCの値は1よりも大きく設定されている。そして、この設定下でユークリッド距離が最も小さく算出される中点Tの座標が、現在の歩行者の位置を示す可能性の高い座標として特定される(ステップS502)。
【0152】
図20は、図6に示す歩行者の右足・左足近傍の領域を、拡大して示す平面図である。
【0153】
図20に示す等高線Kは、Cの値が「1.5」に設定された場合に、ユークリッド距離が同程度となる領域を、区分するものである。等高線Kは、推定位置S1を中心に配する楕円を呈している(正確には長軸及び短軸の交差地点に推定位置Sを配する楕円)。この等高線Kが示す楕円は、Cの値が「1.5」に設定されることで、横方向の差が前後方向の差に比して、2.25倍のユークリッド距離の変動を与えることに基づき、表現されるものである。
【0154】
等高線Kによる区分では、中点T2は、中点T1よりも、推定位置S1に近い領域に位置している。これは、Cの値が「1.5」に設定された状況下では、中点T2の座標について得られるユークリッド距離は、中点T1の座標について得られるユークリッド距離よりも小さくなるためである。よって、Cの値が「1.5」に設定される状況下で、中点T1,T2及び推定位置S1の座敷に基づき、図19のステップS501,502の処理が行われると、中点T2が、現在の歩行者の胴体中心を示す可能性の高い座標として特定されることになる。
【0155】
なお、図5のステップS109では、推定位置Sの座標を得るために、ステップS110により特定される座標が過去2回分必要となる。このため、ステップS109は、ステップS110が2回実行されるまでは行うことができない。よって、ステップS110の初回と2回目とは、ステップS109が省略された状態で実行される。
【0156】
具体的には、システムコントローラ7には、歩行者の胴体中心の初期位置を示す座標が予め記憶されており、ステップS110の初回実行時には、前記初期位置の座標が、胴体中心位置を示す可能性が高い座標として特定される。そして、ステップS110の2回目実行時では、ステップS108で算出された中点Tの座標のうち、初期位置に最も近い座標が、胴体中心を示す可能性が高い座標として特定される。この際にも、上記のユークリッド距離による評価で、胴体中心を示す可能性の高い座標が特定される。
【0157】
次に、図5のステップS112の詳細について説明する。図21は、ステップS112の処理の詳細を示すフローチャートである。
【0158】
まず、移動機構3は、ステップS111によりシステムコントローラ7から受信した座標(胴体中心を示す可能性が高い座標)に基づき、ロボット1と歩行者との離隔距離dfzを算出する(ステップS601)。
【0159】
図6の中点T2の座標が、胴体中心を示す可能性が高い座標として特定されていた場合には、ロボット1と中点T2との離隔距離dfzが算出される。
【0160】
そして、移動機構3は、ステップS601で算出した離隔距離dfzに基づき、ロボット1の速度を制御する(ステップS602)。この制御は、後輪32の駆動速度Vrzが、下記数6に基づき調整されることで行われる。
【数6】
【0161】
図22は、ステップS601で算出される離隔距離dfzと、ステップS602で制御される後輪32の駆動速度Vrzとの関係を示している。
【0162】
まず、ステップS601で算出された離隔距離dfzが、予め設定された最近先導距離dnearよりも小さい場合には(図22の範囲Aに対応)、移動機構3は、後輪32の駆動速度Vrzを、予め設定された先導最高速度Vmaxに制御する。
【0163】
また、ステップS601で算出された離隔距離dfzが、予め設定された停止判断距離dstopよりも大きい場合には(図22の範囲Cに対応)、移動機構3は、後輪32の回転を停止する。
【0164】
また、ステップS601で算出された離隔距離dfzが、最近先導距離dnearよりも大きく、停止判断距離dstopよりも大きい場合には(図22の範囲Bに対応)、後輪32の回転速度を、停止判断距離dstopと離隔距離dfzとの差に比例した値に制御する。
【0165】
以上のように、後輪32の駆動速度Vrzが離隔距離dfzに基づき調整されることで、ロボット1の速度は、歩行者の位置に応じて制御されるようになる。
【0166】
本実施の形態によれば、歩行者の両足を示す注目クラスタの組が特定され、さらに、この注目クラスタの組に基づき、歩行者の胴体中心位置が特定されて、この位置に基づき、ロボット1の速度が制御される。ここで、歩行者の胴体中心は、両足が前後往復運動をしているときでも、大きな変位を伴わず、滑らかに移動する。このことから、歩行者の位置をブレなく追跡できる。また、歩行者の追跡のために負荷の大きな処理を必要としないことから、歩行者の追跡に要する計算時間が短い。このため、歩行者の現位置を追跡することができる。以上のことから本実施の形態によれば、高いロバスト性で歩行者の位置を追跡できるため、ロボット1は確実に歩行者の歩行ペースに合わせて走向するようになる。
【0167】
なお、図5の歩行者位置検出処理では、左足・右足を別個に示す2つの注目クラスタが抽出されることを前提としているが、レーザ光の進路において一方の足が他方の足の背後にあることや、歩行者がロボット1に近接した位置にあることで、ステップS104において、両足をまとめて示すクラスタが抽出される場合が想定される。
【0168】
例えば図23に示すように、レーザ光の進路に対して左足が右足の背後にある場合には、右足の表面に生じた反射点h101,h102と、左足の表面に生じた反射点h103,h104とが、同一のクラスタに登録された結果(図16のステップS204参照)、ステップS104で、右足・左足をまとめて示すクラスタ(h101〜h104が含まれるクラスタ)が抽出されることになる。
【0169】
しかしながら、このようなケースにおいても、以下に述べる対策を取ることで、歩行者の位置を追跡することが可能である。
【0170】
すなわち、上述の左足が右足の背後になるような状況は、歩行者の足の運び方によって一時的に起こるものであって、ロボット1による先導中に連続して起こるものとは考えられない。
【0171】
つまり、左足が右足の背後になる直前においては、右足が、図23の破線A,Bに示すような位置にあることで、ステップS104では、左足・右足を別個に示すクラスタが抽出される。この結果、これらクラスタの代表値(D5,D6,D7に相当)の中点(T6,T7に相当)が、ステップS110で胴体中心が存在する可能性の高い座標として特定されるものと考えられる。
【0172】
この特定が行われていれば、左足が右足の背後になった時点の処理において、前回のステップS110で特定された胴体中心(T6,T7に相当)に基づき、ステップS109で胴体中心位置が推定されることになる(S2が推定位置に相当)。よって、この推定位置S2は、信頼のおけるデータに基づき、算出されたものといえる。
【0173】
このことから、両足をまとめて示す一つのクラスタが抽出された場合には、ステップS109で得られる推定位置(S2に相当)を、現在の歩行者の胴体中心位置と暫定的にみなす対策が行われる。これにより、歩行者位置の追跡を続けることが可能となる。
【0174】
なお、推定位置(S2に相当)は、両足をまとめて示すクラスタの代表値(h101〜h104の重心座標:D8に相当)と近い場合にのみ、現在の胴体中心位置としてみなされるようにしても良い。
【0175】
また、図5の環境スキャン処理では、範囲Aに向けてレーザ光を照射することに代えて、ロボットの周囲のあらゆる範囲に向けてレーザ光は照射され得る。このようにすることで、歩行者が、範囲A以外のロボットの周囲に存在する場合においても、歩行者位置検出処理で歩行者の胴体中心位置が特定されて、この位置に基づき、速度制御処理でロボットの速度が制御されるようになる。
【0176】
次に、図5のステップS113の詳細について説明する。図24は、ステップS113の処理の詳細を示すフローチャートである。なお以下では、図2に示すR9が、範囲Bでロボット1の真横に向かったレーザ光に該当し、R12が、範囲Bの前端を通過したレーザ光に該当するものとして説明する。
【0177】
まず、システムコントローラ7は、範囲Bに照射したレーザ光のうち、後述のステップS702,703の処理を行うレーザ光を選択する(ステップS701)。初回の処理では、ロボット1の真横に進んだR9が選択される。具体的には、範囲Bについて作成されたデータテーブル(図15参照)において、R9に対応する行が選択される。
【0178】
次に、システムコントローラ7は、ステップS701で選択されたレーザ光の距離データが存在するか否かを判断する(ステップS702)。具体的には、ステップS701で選択されたデータテーブルの行に、距離データが記録されているか否かが選択される。
【0179】
距離データが存在しない理由としては、ステップS701で選択されたレーザ光の進路の先に、反射を生じさせる壁が存在していなかったことや(図13,14における右側の壁の状況を参照)、レーザ光を反射しにくい物体(図9の物体C参照)が存在していることがあげられる。
【0180】
例えば、図15の5,9行目のように、ステップS702で選択されたテーブルの行に距離データが記録されていないことから、距離データが存在していないと判断された場合には(ステップS702でNO)、ステップS704に移行する。
【0181】
一方、ステップS702で距離データが得られていると判断された場合には(ステップS702でYES)、システムコントローラ7は、ステップS701で選択されたレーザ光の反射点の座標が、異常値を示していないか否かを判断する(ステップS703)。このステップS703は、ステップS701で選択されたレーザ光の反射点が、壁の表面に生じたものであるか否かを確認するために行われる。
【0182】
具体的には、反射点の座標が、ロボット1から所定距離以上離れた位置(例えばロボット1から2m以上離れた位置)を示していないか、或いは壁が物理的に存在し得ない位置(例えばロボット1が存在する位置)を示していないか、といったことが判断される。ステップS701で選択されたレーザ光が、壁が途切れた先や、反射しにくい物体(図9の物体C参照)に向かっていたことで、反射点の座標が、壁に生じる反射点の座標に比して遠い位置にある場合には、NOと判断される。
【0183】
そして、反射点の座標が異常値を示すことで、ステップS703でNOと判断された場合には、ステップS702でNOと判断される場合と同様、ステップS704へ移行する。ステップS703でYESと判断される場合については後述する。
【0184】
ステップS704では、システムコントローラ7は、ステップS702,703の処理が、ロボット1の真横から範囲Bの前端までに照射された全てのレーザ光(図2の例ではR9〜R12)について行われたか否かを判断する。図2の例による説明では、ステップS702,703が行われたのは、R9についてのみであるため、NOと判断されて、ステップS705に移行する。
【0185】
そしてステップS705では、システムコントローラ7は、ステップS702,703の処理を行うレーザ光を変更する。この処理では、前回のステップS701で選択されたレーザ光に対して、1ピッチ前寄りを進行していたレーザ光に変更される。前回の処理で、図2のR9が選択されていた場合には、R10に変更される。
【0186】
そして、ステップS705で変更されたレーザ光について、ステップS702,S703の処理が行われる。この結果、ステップS705で変更されたレーザ光について、1)距離データが存在していないこと、2)反射点の座標が異常値を示していることが確認された場合には(ステップS702,S703でNO)、ステップS704,S705が実行される。この結果、ステップS702,S703の処理を行うレーザ光が、1ピッチ前寄りを進行していたレーザ光に変更される。前回の処理で、図2のR10が選択されていた場合には、R11に変更される。
【0187】
以上のステップS702〜S705の流れは、ステップS704でYESと判断されるまで、或いはステップS703でYESと判断されるまで繰り返される。
【0188】
そして、ロボット1の真横から範囲Bの前端までに照射された全てのレーザ光(図2ではR9〜R12)について、1)距離データが存在していないこと、2)反射点の座標が異常値を示していることが確認された場合には(ステップS702又はS703でNO)、ステップS704でYESと判断されて、システムコントローラ7は、範囲Bに壁が存在しないことを示す情報を記憶する(ステップS706)。
【0189】
また、ステップS702〜S705が繰り返される過程で、1)距離データが存在すること、2)反射点の座標が異常値を示していないことが確認されたレーザ光が検出された場合には(ステップS702,S703でYES)、システムコントローラ7は、そのレーザ光の反射点の座標を記憶する(ステップS707)。
【0190】
ステップS707で記憶される反射点の座標は、この位置に壁の存在が確認されたことで、これよりも前方へ壁が延びている可能性があることを意味するものであり、図5のステップS114又はS117における反射点探索の開始位置(以下、探索開始位置と記す)として、設定されるものとなる。なお、ステップS701〜707の処理が、ロボット1の真横から前側の範囲に照射されたレーザ光について行われることから、探索開始位置として設定される反射点の座標(S707で記憶される座標)は、必ず、ロボット1の真横或いは真横よりも前側に存在する。
【0191】
そしてステップS707の実行後では、システムコントローラは、範囲B,Cについて、S706又はS707を行ったか否かを判断する(ステップS708)。図2の例による説明では、処理が行われたのは範囲Bについてのみであるため、NOと判断されて、ステップS701に移行する。
【0192】
このステップS701では、範囲Cでロボット1の真横に向かったレーザ光が、ステップS702,704の検討を行うレーザ光として選択される。
【0193】
そして、この後、範囲Cに照射されたレーザ光について、ロボット1の真横に向かったレーザを始めとして、前寄りのレーザ光が後となる順序で、ステップS702〜S705が繰り返される。
【0194】
そして、ステップS704でYESと判断された場合には、システムコントローラ7に、範囲Cに壁が存在しないことを示す情報が記憶される(ステップS706)。
【0195】
また、ステップS703でYESと判断された場合には、範囲Cについて、1)距離データが存在すること、2)反射点の座標が異常値を示していないことが確認されたレーザ光の反射点hが記憶される。この際に記憶される反射点hの座標は、範囲Cでロボット1の真横或いは真横よりも前側に存在しており、ステップS114又はS117における範囲Cの反射点探索開始位置として設定されるものとなる。
【0196】
そして、範囲CについてS706又はS707が実行された場合には、ステップS708でYESと判断されて、システムコントローラ7は、範囲B,Cについて、ステップS706の情報が記憶されたか否かを判断する(ステップS709)。
【0197】
範囲B,CのいずれについてもステップS706の情報が記憶されていない場合には(ステップS709でNO)、範囲B,Cのいずれにも壁が存在することから、図5のステップS114に移行する。
【0198】
また、範囲A,Bの一方にステップS706の情報が記憶されている場合には(ステップS709でNO)、範囲B,Cの一方に壁が存在しないことから、図5のステップS117に移行する。
【0199】
次に、ステップS114の処理の詳細について説明する。図25は、ステップS114の処理の詳細を示すフローチャートである。なお、以下では、図2に示すR9の反射点hの座標が、図24のステップS707で記憶されることで、範囲Bの探索開始位置として設定される場合を例に説明する。
【0200】
まず、システムコントローラ7は、後述のステップS802〜805の処理を行うレーザ光として、範囲B内で隣り合う位置を進行した2つのレーザ光を選択する(ステップS801)。
【0201】
初回実行時には、図24のステップS707で探索開始位置として座標が記憶されたR9と、この1ピッチ前寄りを進行したR10とが選択される。具体的には、範囲Bのデータテーブル(図15参照)において、R9,R10に対応する2行が選択される。
【0202】
次に、システムコントローラ7は、ステップS801で選択された2つのレーザ光のうち、前寄りの位置を進行したレーザ光について、図24のステップS702,S703と同様の処理を行う(ステップS802,S803)。
【0203】
ステップS801で、R9,R10が選択されていた場合には、R10が前寄りの位置を進行したレーザ光に該当し、R10について、ステップS802,S803が行われる。
【0204】
このステップS802,S803は、上記前寄りのレーザ光が進んだ先に、壁が存在するか否かを確認するために実行され、壁が存在していた場合には、ステップS802,S803でYESと判断されることになる。
【0205】
そしてこの場合には(ステップS802,S803でYES)、システムコントローラ7は、ステップS801で選択された2つのレーザ光の距離データの差を算出する(ステップS804)。具体的には、ステップS801で選択されたテーブルの2行に記されている距離データの差が算出される。ステップS802,S803でNOと判断される場合については、後述する。
【0206】
次に、システムコントローラ7は、ステップS804で算出された距離データの差が、所定の閾値を超えるか否かを判断する(ステップS805)。この処理は、ステップS801で選択された2つのレーザ光の反射点が、同一の物体の表面に生じたものか否かを確認するために行われる。
【0207】
例えば、図8に示す反射点h31,h32を生じさせた2つのレーザ光のように、後寄りのレーザ光(反射点h31を生じさせたレーザ光に相当)は、壁に照射されたものの、前寄りのレーザ光(反射点h32を生じさせたレーザ光に相当)が、壁が途切れた先に向かって、異なる物体に照射された場合には、これら2つのレーザ光の距離データは大きく異なるものとなる。これにより、ステップS805では、閾値を超えると判断される(ステップS805でYES)。まず、ステップS805でNOと判断される場合の処理の流れについて説明する。
【0208】
ステップS805でNOと判断された場合には、システムコントローラ7は、ステップS802〜805の処理を、探索開始位置(図24のS707で記憶された反射点の座標位置)から範囲Bの前端までに照射されたレーザ光の全ての組((図2では、R9,R10の組、R10,R11の組、R11,R12の組)について行ったか否かを判断する(ステップS806)。図2の例による説明では、R9,R10の組についてしか処理を行っていないため、NOと判断して、ステップS807に移行する。
【0209】
そしてステップS807では、システムコントローラ7は、ステップS802〜805の処理を行うレーザ光を変更する。この処理では、以前の処理で設定された2つのレーザ光に対して、1ピッチ前寄りを進行していた2つのレーザ光へと変更される。図2の例では、R9とR10の組から、R10とR11の組へと変更される。
【0210】
そして、システムコントローラ7は、ステップS806で新たに選択されたレーザ光(図2の説明の例ではR11に相当)について、ステップS802,S803を実行する。
【0211】
そしてステップS802,S803でYESと判断された場合には、システムコントローラ7は、ステップS806で変更された2つのレーザ光の距離データの差を算出し(ステップS804)、所定の閾値を超えるか否かを判断する(ステップS805)。
【0212】
以上のステップS802〜807の処理は、ステップS805,S806でYES或いはステップS802,S803でNOと判断されない限り繰り返され、この繰り返しの過程では、2つのレーザ光の距離データの差が、前寄りのレーザ光の組が後となる順で、算出される。
【0213】
そしてこの繰り返しの過程で、ある組の距離データの差にステップS805の閾値を超える急峻な差があった場合には(ステップS805でYES)、この組をなす2つのレーザ光のうち、後寄りのレーザ光の反射点の座標が、ステップS115(図5参照)で中点Uの算出に用いる可能性のある座標(以下、中点算出候補と記す)として設定される(ステップS808)。
【0214】
また、探索開始位置から範囲Bの前端までの領域に向けて照射されたレーザ光の全ての組(R9,R10の組、R10,R11の組、R11,R12の組)の中から、距離データの差がステップS805の閾値を超える組が検出されなかった場合には、ステップS806でYESと判断される。この場合には、システムコントローラ7は、ステップS809に移行して、範囲Bの前端を通過したレーザ光(R12に相当)の反射点の座標を、中点Uの算出に用いる座標(以下、中点算出点)として特定する(ステップS809)。
【0215】
また、ステップS802,S803でNOと判断される場合には、システムコントローラ7は、ステップS801,S807で選択された2つのレーザ光のうち、後寄りのレーザ光の反射点の座標を、中点算出候補として設定する(ステップS810)。
【0216】
そして、ステップS808,S810で中点算出候補が設定されると、システムコントローラ7は、ステップS811に移行する。
【0217】
このステップS811では、システムコントローラ7は、範囲Bの前端までに、中点算出候補として設定された反射点よりも、ロボット1に近い反射点が存在するか探索する(ステップS811)。これを行う理由としては、範囲Bの前端までに障害物が存在しており、この障害物の表面に反射点が生じている可能性があるためである。
【0218】
より近い反射点が探索されなければ(ステップS811でNO)、システムコントローラ7は、ステップS808,S810で中点算出候補として設定した反射点の座標を、中点算出点として特定する(ステップS812)。
【0219】
また、より近い反射点が探索された場合には(ステップS811でYES)、システムコントローラ7は、この反射点の座標を、中点算出点として特定する(ステップS813)。
【0220】
ここで、ステップS801〜S813の処理により、中点算出点が特定される過程を、図7〜10を用いて説明する。なお以下では、範囲Bの探索開始位置として、図7の反射点h20の座標と、図8の反射点h30の座標と、図9の反射点h40の座標と、図10の反射点h50の座標とが設定されるものとして説明する。
【0221】
図7の例では、反射点h20,h21を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS804)、閾値と比較される(ステップS805)。この結果、閾値を超えるレーザ光の組が検出されないことで(ステップS806でYES)、範囲Bの前端を通過したレーザ光の反射点h23が、中点算出点として特定される(ステップS809)。
【0222】
図8の例では、反射点h30,h31を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS804)、閾値と比較される(ステップS805)。この結果、反射点h31,h32を生じさせた2つのレーザ光の組の距離データに、大きな差があることが検出される(ステップS805でYES)。これにより、反射点h31が、中点算出候補として設定される(ステップS808)。
【0223】
その後、範囲Bの前端までに、反射点h31よりも、ロボット1に近い反射点が存在するか探索されるが(ステップS811)、より近い反射点が探索されないことで(ステップS811でNO)、反射点h31が、中点算出点として特定される(ステップS812)。
【0224】
図9の例では、壁の途中に反射を生じにくい物体Cが存在していることから、(1)物体Cに照射されたレーザ光の距離データが得られなかったり、(2)物体Cに照射されたレーザ光の反射点が、遠くに検出される事態が生じ得る(h43,h44,h45参照)。
【0225】
まず(1)前者の事態が生じていた場合には、反射点h40,h41を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、ステップS802〜S807の処理が繰り返される。この結果、物体Cに照射されたレーザ光の距離データが得られていないことが確認されるため(ステップS802でNO)、物体Cの手前にある反射点h42が、中点算出候補として設定される(ステップS810)。
【0226】
その後、範囲Bの前端までに、反射点h42よりも、ロボット1に近い反射点が存在するか探索されるが(ステップS811)、より近い反射点が探索されないことで(ステップS811でNO)、反射点h42が、中点算出点として特定される(ステップS812)。
【0227】
また(2)後者の事態が生じていた場合には、前者の事態と同様に、ステップS802〜S807の処理が繰り返されるが、物体Cに照射されたレーザ光の反射点h43の座標が異常値を示していることで(ステップS803でNO)、物体Cの手前にある反射点h42が、中点算出候補として設定される(ステップS810)。
【0228】
その後、範囲Bの前端までに、反射点h42よりも、ロボット1に近い反射点が存在するか探索されるが(ステップS811)、より近い反射点が探索されないことで(ステップS811でNO)、反射点h42が、中点算出点として特定される(ステップS812)。
【0229】
図10の例では、反射点h50,h51を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS804)、閾値と比較される(ステップS805)。この結果、反射点h52,h53を生じさせた2つのレーザ光の組の距離データに、大きな差があることが検出される(ステップS805でYES)。これにより、反射点h52が、中点算出候補として設定される(ステップS808)。
【0230】
その後、範囲Bの前端までに、反射点h52よりも、ロボット1に近い反射点が存在するか探索される(ステップS811)。この結果、障害物B3の表面に生じた反射点h55が、反射点h52よりも、ロボット1に近いことが検出される(ステップS811でYES)。これにより、反射点h55が、中点算出点として特定される(ステップS813)。
【0231】
そして、図25のステップS809,S812,S813が実行された後では、システムコントローラ7は、範囲B,Cのいずれについても、中点算出点を特定したか否かを判断する(ステップS814)。図2の例の説明では、範囲Cについては、中点算出点を設定していないので、NOと判断して、ステップS801に復帰する。これ以降、範囲Cの中点算出点を特定するための処理(ステップS801〜S809,S812,S813)が行われる。
【0232】
そして、範囲Cについて、S809,S812,S813が実行されることで、範囲Cの中点算出点(図11のh61,図12のh75に相当)が特定された際には、システムコントローラは、S814でYESと判断して、図5のS115へ移行する。これにより、範囲Bの中点算出点として特定された反射点(図11のh60,図12のh70に相当)と、範囲Cの中点算出点として設定された反射点(図11のh61,図12のh75に相当)との、中点U(図11のU1,図12のU2に相当)の座標が算出されることになる。
【0233】
なお、図25に示すステップS114の処理では、ロボット1の真横あるいは真横よりも前側に位置する探索開始位置(図24のS707で記憶される反射点の座標)を起点として、処理が開始される。このため、S809,S812,S813で設定される範囲B,Cの中点算出点(図11,12のh60,h61,h70,h75に相当)は、必ず、ロボット1よりも前側に位置している。よって、ステップS115で算出される中点U(図11,12の中点U1,U2に相当)の座標も、ロボット1よりも前側に位置することになる。
【0234】
図26は、図5のステップS117の処理の詳細を示すフローチャートである。図26は、図25に示すフローチャートから、ステップS814が省略されたものである。
【0235】
図26に示す処理は、範囲B,Cのうち、ステップS113で壁が存在すると判断された範囲について実行される。この結果、ステップS909,S912,S913において、ステップS118(図5参照)で平行四辺形の頂点Qを算出するための座標(以下、頂点算出点)が設定される。また、ステップS908,S910では、頂点算出点となり得る候補(以下、頂点算出候補)の座標が設定される。
【0236】
また、図26の処理についても、ロボット1の真横あるいは真横よりも前側に位置する探索開始位置(図24のS707で記憶される反射点の座標)を起点として、処理が開始される。これにより、ステップS909,S912,S913で設定される頂点算出点は、必ず、ロボット1よりも前側に位置することになる。
【0237】
図26の処理により、頂点算出点が設定される過程を、図13,14を用いて説明する。なお以下では、範囲Cの探索開始位置として、図13の反射点h80と、図14の反射点h90とが設定されているものとして説明する。
【0238】
図13の例では、壁が存在する範囲Cについて図26の処理が実行される。この処理では、反射点h80,h81を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS904)、閾値と比較される(ステップS905)。この結果、閾値を超えるレーザ光の組が検出されないことで(ステップS906でYES)、範囲Cの前端を通過したレーザ光の反射点h84の座標が、頂点算出点として特定される(ステップS909)。
【0239】
図14の例では、反射点h90,h91を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS904)、閾値と比較される(ステップS905)。この結果、反射点h91,h92を生じさせた2つのレーザ光の組の距離データに、大きな差があることが検出される(ステップS905でYES)。これにより、反射点h91が、頂点算出候補として設定される(ステップS908)。
【0240】
その後、範囲Cの前端までに、反射点h91よりも、ロボット1に近い反射点が存在するか探索される(ステップS911)。この結果、障害物B5の表面に生じた反射点h93が、反射点h91よりも、ロボット1に近いことが検出される(ステップS911でYES)。これにより、反射点93が、頂点算出点として特定される(ステップS913)。
【0241】
そして図5のステップS118では、図26のステップS909,S912,S913で特定された頂点算出点の座標と、図24のステップS707で探索開始位置として記憶された反射点の座標と、ロボット1の座標とを3つの頂点とする平行四辺形において、残りの一つの頂点Qの座標が得られる。
【0242】
図13の例では、探索開始位置としての反射点h80と、頂点算出点としての反射点h84と、ロボット1の位置とを3つの頂点とする平行四辺形において、残りの1つの頂点Q1の座標が算出される。頂点算出点h84がロボット1よりも前側にあることで、頂点Q1も、ロボット1よりも前側に位置している。
【0243】
また図14の例では、探索開始位置としての反射点h90と、頂点算出点としての反射点h93と、ロボット1の位置とを3つの頂点とする平行四辺形において、残りの1つの頂点Q2の座標が算出される。頂点算出点h93がロボット1よりも前側にあることで、頂点Q2も、ロボット1よりも前側に位置している。
【0244】
そして、図5のステップS119では、ステップS118で算出された頂点Qの座標が、移動機構3に送信される。
【0245】
次に、ステップS116,S119で中点U又は頂点Qの座標が送信されることに応じて、移動機構3で実行されるステップS120の処理の詳細について説明する。図27は、ステップS120の処理の詳細を示すフローチャートである。
【0246】
まず、移動機構3は、ステップS116,S119で送信された中点U又は頂点Qの座標に基づき、前輪31の操舵角φを、下記数7により算出する(ステップS1001)。
【数7】
そして、移動機構3は、前輪31の操舵角を、ステップS1001で算出された角度に調整する(ステップS1002)。この結果、ロボット1は、S116,S119で受信した中点U又は頂点Qの位置近傍に向かって進行するようになる。
【0247】
本実施の形態によれば、図11に示したように、ロボット1の左右両側に壁が存在する場合には、これら左右の壁の表面でロボット1よりも前側に生じた反射点h60,h61の座標が獲得される。そして、これらの反射点h60,h61の中点U1位置近傍に、ロボット1の位置が制御される。これにより、ロボット1は、ロボット1の前側における廊下の中央位置付近を走向するようになるので、ロボット1を追随する歩行者に対して、確実に壁を回避可能な進路が提示される。
【0248】
また、上記の中点T位置にロボット1の位置を制御する処理は、図8に示したように壁が途中で途切れていたり、図9に示したように壁の途中にレーザ光を反射しにくい物体Cが存在している場合でも実行され得る。よって、このような場合においても、ロボット1を追随する歩行者に対して確実に壁を回避可能な進路が提示される。
【0249】
また、図12に示したように、ロボット1よりも前側における左側の壁際に、障害物B4が存在する場合には、左側の壁や障害物B4の表面に生じた反射点hの中から、ロボット1に最も近い反射点の座標h75が獲得される。
【0250】
そして、このロボット1に最も近い反射点h75の座標と、右側の壁の表面でロボット1よりも前側に生じた反射点h70の座標と、の中点U2の座標が算出されて、この位置近傍に向けてロボット1は進行する。これにより、壁際に障害物B4が存在する場合には、ロボット1は、該ロボット1よりも前側における、障害物B4と右側の壁との間の中央位置付近を走向するようになる。これにより、壁際に障害物B4が存在する場合においても、ロボット1を追随する歩行者に対して確実に壁を回避可能な進路が提示される。
【0251】
また、図13に示したように、右側の壁が存在しない場合には、左側の壁の表面で、ロボット1の真横から前側に生じた2つの反射点h80,h84の座標が獲得される。そして、この2つの反射点h80,h84と、ロボット1の位置とを3つの頂点とする平行四辺形における残りの1つの頂点Q1の位置が獲得されて、この頂点Q1の位置近傍に向けてロボット1は進行する。これにより、ロボット1は、左側の壁と略平行に走向するようになるので、ロボット1と左側の壁との離隔距離は、ほぼ一定に保たれる。これにより、図13に示すように、一方の壁が存在しない場合においても、歩行者に対して確実に障害物を回避可能な進路を提示することができる。
【0252】
また、図14に示したように、右側の壁が存在しない場合であって、左側の壁際に障害物B5が存在するときには、左側の壁や障害物B5の表面に生じた反射点hの中から、ロボット1に最も近い反射点の座標h93が獲得される。
【0253】
そして、このロボット1に最も近い反射点h93と、左側の壁の表面でロボット1の真横付近(真横或いは真横から前側)に生じた反射点h90と、ロボット1の位置とを3つの頂点とする平行四辺形において、残りの1つの頂点Q2の位置が獲得され、この頂点Q2の位置近傍に向けてロボット1は進行する。これにより、ロボット1は、障害物B5を回避する走向を行うようになる。これにより、図14に示したように、一方の壁が存在せず、他方の壁際に障害物が存在するときでも、歩行者に対して確実に障害物を回避可能な進路を提示することができる。
【0254】
なお、本実施形態のロボット1における各種処理を行う手段および方法は、専用のハードウェア回路、またはプログラムされたコンピュータのいずれによっても実現することが可能である。ここで、上記プログラムは、例えばフレキシブルディスクやCD−ROM等のコンピュータ読取可能な情報記録媒体によって提供されてもよい。この場合、コンピュータ読取可能な情報記録媒体に記録されたプログラムは、通常、ハードディスク等の記憶部に転送されて記憶される。また、上記プログラムは、単独のアプリケーションソフトとして提供されてもよいし、装置の一機能としてその装置のソフトウェアに組み込まれてもよい。
【0255】
次に、本発明のロボット1の先導機能を評価するために行った実験について説明する。
図28は、本実験でロボット1が歩行者を先導している状態を示す側面図であり、図29は、本実験が行われた廊下環境を示す平面図である。
【0256】
本実験では、図29に示すように、右側の壁際に障害物B6が存在する廊下内で、本発明のロボット1と、非特許文献1の方式によるロボットとを、障害物B6手前から障害物B6側に向けて進行させた。
【0257】
そして、廊下内に配置した環境計測用LRF50により、ロボットの軌跡と、ロボットを追随する歩行者の足の軌跡とを計測した。
【0258】
環境計測用LRF50としては、本発明のロボット1に搭載されたLRF5(URG-04LX)に比して、スキャン周期が約3分の1であるUBG- 04LX- F01(走査周期28msec,北陽電機製)を用いた。
【0259】
また、図28に示すように、環境計測用LRF50がスキャンを行う高さは床から約35cmとした。これはロボット1に搭載したLRF5と干渉しないだけの十分なオフセットを持ち、かつ、歩行者の足の位置を計測可能とするためである。
【0260】
環境計測用LRF50がロボット1の位置を正確且つ安定して計測するために、ロボット1には、筒状の目印物体8(図28参照)を取り付けた。目印物体8は、環境計測用LRF50によるスキャンが少なくとも2点で行われる長さに設定され、表面には白ケント紙が貼り付けられている。
【0261】
図30は、非特許文献1の方式によるロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【0262】
図30に示す通り、非特許文献1のロボットは、障害物B6より手前では、廊下の中央付近を目指した走行を行っていることが確認できた。
【0263】
しかしながら、非特許文献1のロボットが、障害物B6近傍の位置に到達した際には、姿勢を大きく変化させて、左側の壁に寄っている。これは、非特許文献1のロボットが、左側の壁に、最近となる反射点を生じさせたレーザ光を特定した後、これと180度反対側に向かったレーザ光の反射点(対向反射点)が、ロボットに設定されたLRFの計測可能な範囲外にあって検出できなかったためと考えられる.このことから、非特許文献1の方式では、ロボットの姿勢が大きく変化した際に、ロボットは、障害物を回避可能な経路を提示することが困難になると思われる。
【0264】
図31は、本発明のロボット1の軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【0265】
図31に示す通り、本発明のロボット1は、障害物B6より手前では、廊下の中心を目指した走行を行い、障害物B6に近づいた際には、障害物B6から距離をとって、障害物B6と右側の壁との間の中央付近を走向している。これは、ロボット1が、障害物B6の回避を行なった後に、より前方の反射点を参照した結果、前方の廊下内の通路が障害物B6の存在により狭められていることを認識したためと考えられる。また、ロボット1が走向する全行程において、本発明のロボット1は、非特許文献1のロボットよりも、旋回量が少ないことが確認された。
【0266】
また、図32は、本発明のロボット1の速度の時系列変化を示している。
【0267】
図32に示す通り、本発明のロボット1の速度は、歩行者との離隔距離に応じて、ほぼ線形に変化していたことが確認された。このことから、本発明のロボット1は、歩行者との離隔距離に応じて速度制御を行っていたことが確認できる。
【0268】
図33は、歩行者の左右の足の変位を示しており、曲線Aは、左足の胴体中心に対する相対変位の時系列変化を示し、曲線Bは、右足の胴体中心に対する相対変位の時系列変化を示している。
【0269】
曲線A,Bは、LRF5による観測で得られた左足及び右足の時系列の相対変位のデータを、直線補完によって繋げていくことで描かれたものである。
【0270】
曲線A,Bが、相対変位=0の直線と交差する時間間隔は、歩行周期の半周期を示すものであり、約1秒間と一定となっている。このことから、本発明のロボット1を追随する歩行者には、つまずきや立ち止まりが生じていないことが確認された。
【0271】
また本発明のロボット1については、ロボット1を追い越す歩行者(以下、追い越し者と記す)が存在する条件下で、ロボット1の軌跡と、歩行者の軌跡とを計測する実験を行っている。その結果を、図34に示す。
【0272】
追い越し者がロボット1を追い越した直後では、ロボット1は、回避行動をとっていることが確認された。しかしながら、ロボット1の走行経路には、大きな揺れは無く、ロボット1は安定した走行ができていることが確認された。これにより、本発明のロボット1によれば、ロボット1を追い越す歩行者が存在する状況下でも、安定した先導が行えることが確認された。
【産業上の利用可能性】
【0273】
本発明は、老人介護施設等で歩行者を先導するために使用されるロボットや、ホテルで客室を案内するために使用されるロボットに適用できる。またさらには、歩行者が追いかけることに応じて逃げる動作を行う屋内用おもちゃや、歩行時の体重移動評価装置や、FAシステム用自走式搬送システムに適用できる。
【符号の説明】
【0274】
1 ロボット
3 移動機構
5 LRF
7 システムコントローラ
8 目印物体
31 前輪
32 後輪
33 コンピュータ
34 接地型ロータリエンコーダ
50 環境計測用LRF
B1,B2,C 物体
B3,B4,B5,B6 障害物
D 代表値
h 反射点
K 等高線
Q 頂点
R レーザ光
S 推定位置
T,U 中点
Z 胴体中心位置の座標
【技術分野】
【0001】
本発明は、歩行者等を先導するロボット及びロボットの制御プログラム、並びに記録媒体に関する。
【背景技術】
【0002】
現在、盲導犬による歩行支援を希望する視覚障害者は7800人にのぼっているが、これら視覚障害者のうち盲導犬が提供されている人の割合は、約12%と非常に低い。そして今後においても、盲導犬の訓練期間が長いことや、盲導犬の育成費用が高額であること等を理由として、盲導犬が提供される割合を向上させることは困難であると考えられている。このため近年では、盲導犬に代わる歩行支援手段として、歩行者の前を走向することで、歩行者の先導を行うロボットの開発が進められている。
【0003】
この種のロボットが、盲導犬と同等の役割を果たすためには、歩行者に対して障害物を回避可能な進路を提示することや、歩行者の歩行ペースに合わせて走向することが求められる。非特許文献1には、この課題を解決する方策が提案されている。
【0004】
非特許文献1には、屋内の廊下を歩く歩行者を先導するためのロボット100(図35参照)が開示されている。このロボット100には、廊下の壁や歩行者の位置を検出するための手段としてLRF(Laser range Finder)が設けられており、LRFは、ロボット100の後方と、ロボット100の左右側方とに向けて、所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット100から反射点hまでの距離データを獲得するようになっている。
【0005】
そして、ロボット100の左右側方に照射されたレーザ光によって得られた距離データを用いて、以下に示す進路制御処理が行われる。
【0006】
<進路制御処理>
まず、ロボット100は、ロボット100の左右側方に照射されたレーザ光のうち、ロボットに最も近い反射点h200(以下、最近の反射点と記す)を生じさせたレーザ光を特定して、その反射点の座標を獲得する。さらに、最近の反射点h200を生じさせたレーザ光に対して180度反対側に進行したレーザ光を特定して、その反射点h201(以下、対向反射点と記す)の座標を獲得する。
【0007】
次に、上記最近の反射点h200の座標と、上記対向反射点h201の座標との中点C1の座標を算出する。
【0008】
次に、中点C1の座標にロボット100の位置が制御される。
【0009】
以上の処理により、ロボット100は廊下の中央位置を走向するようになるため、歩行者に対して障害物を回避可能な進路を提示することが実現されることになっている。
【0010】
また非特許文献1によれば、ロボット後方へ照射されたレーザ光により得られた距離データが用いられて、以下に説明する速度制御処理が行われる。
【0011】
<速度制御処理>
ロボット100には、図36に示すように、ロボット100の後方で歩行者が存在すると想定される領域(以下、想定領域と記す)を示す画像が生成されている。この画像では、格子状に並ぶ複数のピクセルPによって想定領域が表現されており、ピクセルPの各々は、想定領域における数cm四方の空間に対応している。
【0012】
そして、上記後方の距離データに基づき、レーザ光の反射が生じた物体の表面位置を示すピクセル(例えばP1〜P4)が特定されることで、想定領域に存在する物体の形状が画像中に表現される。
【0013】
そして、上記画像に表現された物体のうち、歩行者の足の形状を示すテンプレートと類似する物体が特定されて、その物体の位置が、歩行者の足の位置として検出される。
【0014】
そして、上記検出された足位置の経時的な変化量に基づいてロボット100の速度が制御される。
【0015】
以上の処理により、ロボット100が歩行者の歩行ペースに合わせて走向することが実現されることになっている。
【先行技術文献】
【非特許文献】
【0016】
【非特許文献1】安田 裕也、三枝 省三、兼田 健太郎、浦谷 佳孝、田中 英一郎、牧野 俊昭, 盲導犬ロボットにおける視覚障害者の歩行認識と先導, 第9回SICEシステムインテグレーション部門講演会講演論文集(SI2008), 3K2−1 (2008)
【発明の概要】
【発明が解決しようとする課題】
【0017】
ところで非特許文献1の進路制御処理では、ロボット100が、開いたドアの横や廊下の分岐地点に到達することで、ロボット100の側方に壁が存在しなくなった際に(図37(A)参照)、廊下の中央位置が特定できなくなることが生じ得る。
【0018】
つまり、最近の反射点h200を生じさせるレーザ光が特定された後では、これと180度反対側に向かうレーザ光が、対向反射点h201の座標を得るために特定されるが、この特定は、レーザ光の進路の先に反射を生じさせる壁が存在するか否かに関わらず、自動的に行われてしまう。このため、図37(A)に示すように、一方の側に壁が存在しない状況では、対向反射点h201の位置を計測できず、廊下の中央位置の特定が困難になることが生じ得る。
【0019】
また非特許文献1の進路制御処理では、図37(B)に示すようにロボット100の前方に障害物が存在していたり、ロボット100の前で両側の壁が接近して廊下が狭くなっている状況下では、最近の反射点h200は、ロボット100の前方に検出され、対向反射点h201は、ロボット100の後方に検出される。この状況下で、図37(B)に示すように、対向反射点h201が、最近の反射点h200よりも、ロボット100から遠く離れている場合には、反射点h200,h201の中点C1の座標は、ロボット100の後方に算出される。この中点C1の座標に、ロボット100の位置が制御されると、ロボット100は、既に通過した場所へ戻るような動きを示す。この場合、ロボット100は、歩行者が進む先の廊下の中央を走行するものにはならないため、歩行者に障害物の回避が可能な針路を提示することができない。
【0020】
また速度制御処理では、足が歩行時に大きな加速度が生じる部位であるため、テンプレートによる物体の検出(以下、テンプレートによるマッチング)が足の動きに追いつかなくなることが生じ得る。この場合、ロボット100は、歩行者の現位置を特定できないことで、歩行者の歩行ペースに合わせて走向しなくなるものと考えられる。この問題は、画像中の全てのピクセルPを走査することで、テンプレートによるマッチングに多大な計算負荷を要する場合に顕著に現れる。
【0021】
本発明は、こうした状況に鑑みてなされたものであり、本発明の目的は、歩行者等を先導するロボットであって、歩行者に対して確実に障害物を回避可能な進路を提示することのできるロボットを提供することである。
【0022】
また本発明のさらなる目的は、歩行者等を先導するロボットであって、歩行者の位置を高いロバスト性で追跡できることで、確実に歩行者の歩行ペースに合わせて走向することのできるロボットを提供することである。
【課題を解決するための手段】
【0023】
上記目的を達成するため、本発明の第1の観点にかかるロボットは、歩行者等を先導するロボットであって、ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手段と、前記胴体中心特定手段が特定した座標に基づき、ロボットの速度を制御する速度制御手段とを備えることを特徴とする。
【0024】
好ましくは、前記距離データ獲得手段が獲得した距離データに基づき、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出するクラスタ抽出手段と、前記クラスタ抽出手段が抽出したクラスタのうち、歩行者の両足を示す可能性のある2つのクラスタの組を特定する両足候補特定手段と、前記両足候補特定手段が特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標を獲得する胴体中心座標獲得手段とをさらに備え、前記胴体中心特定手段は、前記胴体中心座標獲得手段が獲得した座標の中から、歩行者の胴体中心位置の座標を特定することを特徴とする。
【0025】
好ましくは、前記クラスタ抽出手段が抽出したクラスタのうち、反射点の数が所定の範囲に含まれるクラスタを、歩行者の足を示す可能性のあるクラスタとして特定する足候補特定手段と、前記足候補特定手段が特定したクラスタに含まれる反射点の座標を、均等重みで平均化した重心座標を算出する重心座標算出手段とをさらに備え、前記両足候補特定手段は、前記足候補特定手段が特定したクラスタの中から、歩行者の両足を示す可能性のある2つのクラスタの組を、前記重心座標に基づき特定することを特徴とする。
【0026】
好ましくは、前記両足候補特定手段は、前記重心座標算出手段が算出した重心座標に基づき、前記足候補特定手段が特定したクラスタの中から、隣り合う一対の物体を示す2つのクラスタの組を特定するとともに、これらクラスタの組のうち、一方のクラスタから得られる重心座標と、他方のクラスタから得られる重心座標との間の離隔距離が、所定の閾値を超えていないと判断されたクラスタの組を、歩行者の両足を示す可能性のある2つのクラスタの組として特定することを特徴とする。
【0027】
好ましくは、前記両足候補特定手段が特定した組毎に、これらに含まれる2つのクラスタのうち、一方から得られた重心座標と、他方から得られた重心座標との中点の座標を算出する中点座標算出手段と、過去の処理で歩行者の胴体中心位置を示す座標として特定された前記中点の座標に、線形推定法により推定された歩行者の移動距離を加算することで、現在の胴体中心位置の座標を推定する胴体中心推定手段とをさらに備え、前記胴体中心特定手段は、前記中点座標算出手段が算出した中点の座標のうち、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を、現在の胴体中心位置の座標として特定することを特徴とする。
【0028】
好ましくは、前記胴体中心特定手段は、横方向における位置の差が、前後方向における位置の差よりも大きな変動を与えるユークリッド距離による評価で、前記中点座標算出手段が算出した中点の座標の中から、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を特定することを特徴とする。
【0029】
好ましくは、前記クラスタ抽出手段は、ロボットの周囲に向けて照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出し、前記距離データの差が閾値を超えていないと判断された組については、この組における2つのレーザ光の反射点を同一のクラスタに登録し、前記距離データの差が閾値を超えたと判断された組については、この組における2つのレーザ光の反射点を異なるクラスタに登録していくことで、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出することを特徴とする。
【0030】
好ましくは、前記速度制御手段は、前記胴体中心特定手段が特定した座標と、ロボットが位置する座標との間の離隔距離を算出し、当該離隔距離が、予め設定された最近先導距離よりも小さい場合、ロボットの速度を予め設定された最高速度に制御し、前記離隔距離が、予め設定された停止判断距離よりも大きい場合、ロボットを停止させ、前記離隔距離が、前記最近先導距離よりも大きく、前記停止判断距離よりも小さい場合には、ロボットの速度を前記停止判断距離と前記離隔距離との差に比例した速度に制御することを特徴とする。
【0031】
また、本発明の第2の観点にかかるロボットは、歩行者等を先導するロボットであって、ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手段と、前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手段と、前記左側座標特定手段が特定した反射点の座標と、前記右側座標特定手段が特定した反射点の座標との中点の座標を算出する中点座標算出手段と、前記中点座標算出手段が算出した中点の座標近傍に、ロボットの位置を制御する進路制御手段とを備えることを特徴とする。
【0032】
好ましくは、前記左側座標特定手段又は右側座標特定手段は、ロボットの真横から前記左側又は右側の範囲の前端に至る領域に照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出して、所定の閾値を超えるか否かを判断し、前記距離データの差が閾値を超える組を検出しなかった場合には、前記左側又は右側の範囲の前端にある反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、前記距離データの差が閾値を超える組を検出した場合には、前記左側又は右側の範囲の前端までの領域で、前記閾値を超えた組における2つのレーザ光のうち、後寄りのレーザ光の反射点に比して、ロボットに近い反射点が存在するか探索し、ロボットに近い反射点が探索された場合には、当該反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、ロボットに近い反射点が探索されなかった場合には、前記後寄りのレーザ光の反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定することを特徴とする。
【0033】
好ましくは、前記左側又は右側の範囲に照射されたレーザ光の距離データに基づき、前記左側又は右側の範囲に、壁が存在するか否かを判断する壁有無判定手段と、前記壁有無判定手段によって前記左側又は右側の範囲のいずれか一方に壁が存在しないことが確認された場合、壁の存在が確認された範囲において、ロボットの真横から前側に生じた2つの反射点の座標を特定する座標特定手段と、前記座標特定手段が特定した2つの反射点の座標と、ロボットの座標とを3つの頂点とする平行四辺形における残りの1つの頂点の座標を算出する頂点算出手段と、前記頂点算出手段が算出した座標近傍に、ロボットの位置を制御する進路制御手段とをさらに備えることを特徴とする。
【0034】
好ましくは、前記ロボットの左側又は右側の範囲において、ロボットよりも前側に歩行の妨げとなる障害物が存在する場合には、前記左側座標特定手段及び右側座標特定手段のうち一方は、前記距離データ獲得手段によって獲得された距離データに基づき、前記障害物の表面に生じた反射点の座標を特定し、前記中点座標算出手段は、前記障害物の表面に生じた反射点の座標と、前記左側座標特定手段及び右側座標特定手段のうち他方が特定した反射点の座標との中点の座標を算出することを特徴とする。
【0035】
また、本発明の第3の観点にかかる制御プログラムは、歩行者等を先導するロボットの制御プログラムであって、ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手順と、前記胴体中心特定手順で特定された座標に基づき、ロボットの速度を制御する速度制御手順とをロボットに実行させることを特徴とする。
【0036】
また、本発明の第4の観点にかかる制御プログラムは、歩行者等を先導するロボットの制御プログラムであって、ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手順と、前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手順と、前記左側座標特定手順で特定された反射点の座標と、前記右側座標特定手順で特定された反射点の座標との中点の座標を算出する中点座標算出手順と、前記中点座標算出手順で算出された中点の座標近傍に、ロボットの位置を制御する進路制御手順とをロボットに実行させることを特徴とする。
【0037】
本発明の第5の観点にかかる記録媒体は、前記制御プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0038】
本発明によれば、歩行者の両足を示す可能性のある2つのクラスタの組が特定され、さらに、このクラスタの組に基づき、現在の胴体中心位置の座標が特定されて、この位置に基づき、ロボットの速度が制御される。ここで、歩行者の胴体中心は、両足が前後往復運動をしているときでも、大きな変位を伴わず、滑らかに移動する。このことから、歩行者の位置をブレなく追跡できる。また、歩行者の追跡のために負荷の大きな処理を必要としないことから、歩行者の追跡に要する計算時間が短い。このため、歩行者の現位置を追跡することができる。以上のことから、本発明によれば、高いロバスト性で歩行者の位置を追跡できるため、ロボットは確実に歩行者の歩行ペースに合わせて走向するようになる。
【0039】
また本発明によれば、ロボットの左右両側に壁が存在する場合には、これら左右の壁の表面でロボットよりも前側に生じた反射点の座標が獲得される。そして、これらの反射点の中点位置に、ロボットの位置が制御される。これにより、ロボットは、ロボットの前側における廊下の中央位置を走向するようになるので、ロボットを追随する歩行者に対して、確実に壁を回避可能な進路が提示される。
【図面の簡単な説明】
【0040】
【図1】本発明の実施の形態におけるロボットが歩行者を先導している状態を示す側面図である。
【図2】ロボットが走向する廊下内の環境を示す平面図である。
【図3】ロボットを示す写真である。
【図4】ロボットのハードウェア構成を示すブロック図である。
【図5】ロボット全体における処理を概略的に示すフローチャートである。
【図6】図5のステップS104により抽出される反射点のクラスタを示す平面図である。
【図7】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図8】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図9】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図10】図5のステップS114で範囲Bについて取得される反射点の座標の例を示す平面図である。
【図11】図5のステップS115で算出される中点Uの座標の例を示す平面図である。
【図12】図5のステップS115で算出される中点Uの座標の例を示す平面図である。
【図13】図5のステップS117で特定されるロボットの真横から前側に生じた反射点hの座標の例を示す平面図である。
【図14】図5のステップS117で特定されるロボットの真横から前側に生じた反射点hの座標の例を示す平面図である。
【図15】図5のステップS101で作成されるデータテーブルの例を示す図である。
【図16】図5のステップS104の処理の詳細を示すフローチャートである。
【図17】図5のステップS107の処理の詳細を示すフローチャートである。
【図18】図5のステップS109の処理の詳細を示すフローチャートである。
【図19】図5のステップS110の処理の詳細を示すフローチャートである。
【図20】図6に示す歩行者の右足・左足近傍の領域を、拡大して示す平面図である。
【図21】図5のステップS112の処理の詳細を示すフローチャートである。
【図22】図21のステップS601で算出される離隔距離と、ステップS602で制御される後輪の駆動速度との関係を示す図である。
【図23】レーザ光の進路に対して左足が右足の背後にある状況を示す平面図である。
【図24】図5のステップS113の処理の詳細を示すフローチャートである。
【図25】図5のステップS114の処理の詳細を示すフローチャートである。
【図26】図5のステップS117の処理の詳細を示すフローチャートである。
【図27】図5のステップS120の処理の詳細を示すフローチャートである。
【図28】ロボットの先導機能の評価実験で、ロボットが歩行者を先導している状態を示す側面図である。
【図29】ロボットの先導機能の評価実験が行われた廊下環境を示す平面図である。
【図30】非特許文献1の方式によるロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【図31】本発明のロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【図32】本発明のロボットの速度の時系列変化を示す図である。
【図33】歩行者の左右の足の変位を示す図である。
【図34】ロボットを追い越す歩行者が存在する条件下における、本発明のロボットの軌跡と、歩行者の軌跡とを示す平面図である。
【図35】非特許文献1のロボットが、屋内の廊下を走向する状況を示す平面図である。
【図36】非特許文献1のロボットで生成される画像を示す平面図である。
【図37】非特許文献1のロボットで取得される反射点の座標の例を示す平面図である。
【発明を実施するための形態】
【0041】
以下、この発明の実施の形態1について図を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。図1は、本発明の実施の形態におけるロボット1が歩行者を先導している状態を示す側面図であり、図2は、ロボット1が走向する廊下内の環境を示す平面図であり、図3は、ロボット1を示す写真であり、図4は、ロボット1のハードウェア構成を示すブロック図である。
【0042】
ロボット1は、一つの前輪31及び左右の後輪32を備えた移動機構3と、歩行者や障害物等の位置を検出するためのLRF5と、移動機構3とLRF5との接続を図るシステムコントローラ7(図3,4参照)とを備え、後輪32の駆動により、前輪31によって操舵された方向に進行可能である。
【0043】
以下、ロボット1が進行する方向を「前方向」と記し、ロボット1の進行方向に対して180度反対側の方向(進行方向の逆方向)を「後方向」と記し、ロボット1の進行方向に対して左側に90度傾く方向を「左方向」と記し、ロボット1の進行方向に対して右側に90度傾く方向を「右方向」と記す。
【0044】
移動機構3には、図4に示すように、コンピュータ33と、接地型ロータリエンコーダ34とが搭載されている。コンピュータ33は、前輪31の操舵角や後輪32の駆動速度をプログラム処理によって5ミリ秒間隔で制御可能である。コンピュータ33としては、例えば北陽電機製のSH-4プロセッサを備えたコンピュータを使用することができる。接地型ロータリエンコーダ34は、オドメトリによって後輪32の駆動量を算出可能である。
【0045】
LRF5は、小型且つ軽量のスキャナ式レーザレンジファインダであって、レーザ光を出射して、物体の表面に生じた反射点hまでの距離データ(図1,2参照)を獲得する。LRF5は、レーザ光の発射部が後方向を向くように移動機構3上に設置されており、図2に示すように、後方向を中心とする120度の範囲Aと、右方向を中心とする60度の範囲Bと、左方向を中心とする60度の範囲Cとに、所定角度ピッチで放射線状にレーザ光を照射する。
【0046】
またLRF5は、図1に示すように、レーザ光の出射高さが床から約20cmの位置に設定されている。これにより、範囲A,B,Cに存在する物体の前記20cmの高さにおける水平断面形状を計測することができる。範囲Aに照射されたレーザ光によって得られたデータは、ロボット1の後方に存在する歩行者の足などの物体を検出するために用いられ、範囲B,Cに照射されたレーザ光によって得られたデータは、廊下の壁や障害物を検出するために用いられる。LRF5として、例えば北陽電機製のURG-04LXを用いることができる。
【0047】
システムコントローラ7は、移動機構3上に搭載された小型且つ軽量のコンピュータであり、図4に示すように、LRF5とUSB接続が行われ、移動機構3とシリアル接続及びUSB接続が行われている。この接続により、システムコントローラ7は、LRF5とのデータ送受信を行ったり、移動機構3のコンピュータ33へ指令を送信することができる。システムコントローラ7としては、例えば富士通製のコンピュータ(FMV-BIBLO LOOX U50X/V)を用いることができる。
【0048】
次に、ロボット1で実行される処理について説明する。図5は、ロボット1の全体における処理を概略的に示すフローチャートである。
【0049】
ロボット1では、まずLRF5において環境スキャン処理が行われ、その後、システムコントローラ7において歩行者位置検出処理・壁有無判定処理・障害物位置検出処理が行われる。そして移動機構3において、歩行者位置検出処理に続いて速度制御処理が行われ、障害物位置検出処理に続いて進路制御処理が行われる。以下、これらの処理の概略について順に説明する。なお上記の各処理は、LRF5や、システムコントローラ7や、移動機構3のコンピュータ33に記憶されたプログラムに基づき実行される。
【0050】
環境スキャン処理では、LRF5は、一定の時間間隔で範囲A,B,Cに向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボット1から反射点hまでの距離データを獲得する(ステップS101)。
【0051】
次に、LRF5は、ステップS101で取得した距離データを、システムコントローラ7に送信する(ステップS102)。
【0052】
そして、システムコントローラ7は、LRF5からデータを受信することに応じて、ステップS103からの処理を開始する。このシステムコントローラ7における処理は、LRF5が範囲A,B,Cに向けてレーザ光を照射するたび(すなわちステップS102でLRF5からデータを受信するたび)に行われる。
【0053】
まず、システムコントローラ7は、LRF5から受信したデータのデコードを行う(ステップS103)。
【0054】
そして、システムコントローラ7は、範囲Aに照射されたレーザ光の距離データに基づき、歩行者位置検出処理を開始する。
【0055】
まず、システムコントローラ7は、範囲Aに存在する物体の各々の表面に生じた反射点hのクラスタを抽出する(ステップS104)。
【0056】
図6は、ステップS104により抽出される反射点hのクラスタを示す平面図である。図6では、範囲Aに存在する物体として、歩行者の右足・左足と、物体B1,B2とが示されている。図6に示す状況下では、ステップS104により、物体B1の表面に生じた反射点h1〜h3のクラスタ1と、右足の表面に生じた反射点h4〜h6のクラスタ2と、左足の表面に生じた反射点h7〜h9のクラスタ3と、物体B2の表面に生じた反射点h10〜h17のクラスタ4とが抽出される。
【0057】
そしてステップS104の実行後では、システムコントローラ7は、ステップS104で抽出されたクラスタの中から、歩行者の足を示す可能性のあるクラスタ(以下、注目クラスタと記す)を抽出する(ステップS105)。この処理では、ステップS104で抽出されたクラスタのうち、足と同程度のサイズの物体を示すクラスタが、注目クラスタとして抽出される。
【0058】
図6の例では、クラスタ2,3は、歩行者の足を示すクラスタであることから、注目クラスタとして抽出される。また、物体B1を示すクラスタ1も、物体B1が足と同程度のサイズを有していることから、注目クラスタとして抽出される。しかしながら、物体B2を示すクラスタ4は、物体B2が足よりも大きなサイズを有していることから、注目クラスタとしては抽出されない。
【0059】
次に、システムコントローラ7は、注目クラスタに含まれる反射点hの座標の代表値Dを算出する(ステップS106)。この代表値Dは、ステップS105で抽出された注目クラスタ毎に獲得される。
【0060】
図6の例では、クラスタ1の代表値D1の座標が得られ、クラスタ2の代表値D2の座標が得られ、クラスタ3の代表値D3の座標が得られた状態が示されている。
【0061】
次に、システムコントローラ7は、ステップS105で抽出された注目クラスタの中から、歩行者の両足を示している可能性のある2つの注目クラスタの組を抽出する(ステップS107)。この処理は、ステップS106で算出された代表値Dに基づき行われ、ステップS105でn個の注目クラスタが抽出されている場合には、このn個の注目クラスタの中から、隣り合う一対の物体を示す2つの注目クラスタがn−1組設定され、さらに、このn−1個の組の中から、両足を示している可能性のある注目クラスタの組が抽出される。
【0062】
図6の例では、隣り合う注目クラスタの組として、代表値(D1,D2)に基づき、クラスタ1,2の組が設定され、代表値(D2,D3)に基づき、クラスタ2,3の組が設定され得る。そしてさらに、クラスタ1,2の組・クラスタ2,3の組のいずれもが、代表値(D1,D2)(D2,D3)に基づき、両足を示す可能性のある注目クラスタの組として抽出され得る。
【0063】
次に、システムコントローラ7は、ステップS107で抽出された注目クラスタの組において、一方の注目クラスタから得られた代表値Dと、他方の注目クラスタから得られた代表値Dとの中点Tの座標を算出する(ステップS108)。この処理は、ステップS107で抽出された組毎に行われる。この結果、中点Tの座標は、複数獲得され得る。
【0064】
図6の例では、クラスタ1,2の組について、代表値D1と代表値D2との中点T1の座標が算出され、クラスタ2,3の組について、代表値D2と代表値D3との中点T2の座標が算出されている。
【0065】
次に、システムコントローラ7は、現在の歩行者の胴体中心位置の座標を推定する(ステップS109)。この推定は、過去の処理(後述のステップS110の過去の処理)で特定した歩行者の胴体中心位置に基づき行われる。
【0066】
次に、システムコントローラ7は、ステップS108で算出した中点Tの座標の中から、歩行者の胴体中心位置を示す可能性が高い座標を特定する(ステップS110)。この処理では、ステップS108で算出された中点Tの座標のうち、ステップS109の推定位置Sの座標に最も近い座標が特定される。
【0067】
図6の例では、ステップS109による推定位置S1が示されており、中点T1,T2のうち、中点T2が推定位置S1に近いと判断されて、中点T2の座標が、胴体中心位置を示す可能性が高い座標として特定される。
【0068】
次に、システムコントローラ7は、ステップS109で特定した中点Tの座標(胴体中心位置を示す可能性が高い座標)を、移動機構3に送信する(S111)。図6の例の説明では、中点T2の座標が、移動機構3に送信される。
【0069】
以上で歩行者位置検出処理は終了し、移動機構3は、ステップS111で送信された座標を受信することに応じて、速度制御処理を開始する。
【0070】
この速度制御処理では、移動機構3は、ステップS111により受信した座標に基づき、後輪32の駆動速度を制御する(ステップS112)。この結果、ロボット1の速度は、歩行者との離隔距離に応じて制御されるようになる。
【0071】
次に、システムコントローラ7における壁有無判定処理・障害物位置検出処理の概略について説明する。
【0072】
ステップS103のデコードが行われると、システムコントローラ7は、範囲B,C(図2参照)に照射されたレーザ光の距離データに基づき、範囲B,Cに壁が存在するか否かを判断する(ステップS113)。
【0073】
範囲B,Cのいずれにも壁が存在すると判断された場合には(ステップS113でYES)、ステップS114からの障害物位置検出処理が開始される。
【0074】
また、範囲B,Cのいずれか一方に壁が存在していないと判断された場合には(ステップS113でNO)、ステップS117からの障害物位置検出処理が開始される。
【0075】
まず、ステップS114から開始される障害物位置検出処理の流れについて説明する。
【0076】
この流れでは、まず、システムコントローラ7は、範囲B,Cに照射されたレーザ光の距離データに基づき、範囲B,Cにおいて、ロボット1よりも前側に生じた反射点hの座標を特定する(ステップS114)。以下、ステップS114で範囲Bについて特定される反射点hの座標の例を、図7,8,9,10を用いて説明する。
【0077】
図7は、範囲Bの後端から前端に亘って、右側の壁が延びている状況を示している。この状況下では、例えば、範囲Bの前端における壁表面に生じた反射点h23の座標が特定される。
【0078】
図8は、範囲Bの後端と前端との間で、右側の壁が途切れている状況を示している。この状況下では、例えば、壁の途切れ手前の反射点h31の座標が特定される。
【0079】
図9は、右側の壁が範囲Bの前端付近で途切れており、この途切れた先に、レーザ光を拡散反射しにくい材質の物体C(例えば黒いドア)が存在している状況を示している。この状況下では、例えば、物体Cの手前の壁表面に生じた反射点h42の座標が特定される。
【0080】
図10は、範囲Bにおいてロボット1よりも前側に障害物B3が存在している状況を示している。この状況下では、例えば、障害物B3の表面で生じた反射点h55の座標が特定される。
【0081】
ステップS114では、範囲Cについても同様に、ロボット1よりも前側に生じた反射点hの座標が特定される。すなわち、範囲Cでは、左側の壁の状況に応じて、範囲Cの前端における壁表面に生じた反射点hの座標や、壁の途切れ手前の反射点hの座標や、反射を生じにくい物体の手前の壁表面に生じた反射点hの座標が特定される。また、ロボット1よりも前側に障害物が存在しているときには、障害物の表面で生じた反射点hの座標が特定される。
【0082】
図5に戻り、ステップS114の実行後では、システムコントローラ7は、ステップS114で特定した範囲B,Cの反射点hの座標の中点Uの座標を算出する(ステップS115)。ステップS115で算出される中点Uの座標の例を、図11,12を用いて説明する。
【0083】
図11は、範囲B,Cの両端に亘って、右側・左側の壁が存在している状況を示している。この状況下では、ステップS114により、範囲Bの前端における右側壁の表面に生じた反射点h60の座標と、範囲Cの前端における左側壁の表面に生じた反射点h61の座標とが特定される。そして、ステップS115では、反射点h60,h61の中点U1の座標が取得される。この中点U1は、ロボット1よりも前側における廊下の中央位置を示している。
【0084】
図12は、右側・左側の壁が、それぞれ範囲B,Cの両端に亘って存在しており、範囲Cの前端における壁際に障害物B4が存在している状況を示している。この状況下では、ステップS114により、範囲Bの前端における右側壁の表面に生じた反射点h70の座標と、障害物B4の表面に生じた反射点h75の座標とが特定される。そして、ステップS115では、反射点h70,h75の中点U2の座標が取得される。この中点U2は、ロボット1よりも前側における、右側の壁と障害物B4との間の中央位置を示している。
【0085】
図5に戻り、ステップS115の実行後では、システムコントローラ7は、ステップS115で算出した中点Uの座標を移動機構3に送信する(ステップS116)。以上によりステップS114からの障害物位置検出処理は終了する。
【0086】
次に、ステップS117からの障害物位置検出処理の流れについて説明する。この処理の流れは、上述したように、範囲B,Cのいずれか一方に壁が存在しない場合に実行される。
【0087】
この流れでは、システムコントローラ7は、まず範囲B,Cのうち、壁が存在する方の範囲において、ロボット1の真横から前側に生じた反射点hの座標を特定する(ステップS117)。ステップS117で特定される反射点hの座標の例を、図13,14を用いて説明する。
【0088】
図13は、左側の壁が存在するが、右側の壁が存在しない状況を示している。この状況下では、範囲Cの前端における左側壁の表面に生じた反射点h84の座標が特定される。
【0089】
図14は、左側の壁は存在するが、右側の壁が存在しておらず、また、範囲Cの前端における壁際に障害物B5が存在している状況を示している。この状況下では、障害物B5の表面で生じた反射点h93の座標が特定される。
【0090】
図5に戻り、ステップS117の実行後では、システムコントローラ7は、ステップS117で特定したロボット1前側の反射点hの座標と、ロボット1の真横付近(真横或いは真横よりも前側の位置)の反射点hの座標と、ロボット1の座標と、を3つの頂点とする平行四辺形において、残りの1つの頂点Qとなる座標を算出する(ステップS118)。この頂点Qの座標は、下記数1に基づき行われる。なお、上記のロボット1の真横付近の反射点hの座標は、ステップS113でシステムコントローラ7に記憶されるものである。
【数1】
【0091】
図13の例では、ステップS117で特定されたロボット1前側の反射点h84の座標と、範囲Cでロボット1の真横付近に生じた反射点h80の座標と、ロボット1の座標とを3つの頂点とする平行四辺形において、残りの1つの頂点Q1の座標が算出されている。
【0092】
また図14の例では、ステップS117で特定されたロボット1前側の反射点h93の座標と、範囲Cでロボット1の真横付近に生じた反射点h90の座標と、ロボット1の座標とを3つの頂点とする平行四辺形において、残りの1つの頂点Q2の座標が算出されている。
【0093】
図5に戻り、ステップS118の実行後では、システムコントローラ7は、ステップS118で算出した頂点Qの座標を、移動機構3に送信する(ステップS119)。以上によりステップS117からの障害物位置検出処理は終了する。
【0094】
そして、ステップS116,S119が実行されることに応じて、移動機構3は、進路制御処理を開始する。
【0095】
この進路制御処理では、移動機構3は、ステップS116,S119で受信された中点U又は頂点Qの座標に基づき、前輪31の操舵角を制御する(ステップS120)。これにより、ロボット1は、ステップS116,S119で受信された座標の位置(例えば図11〜14のU1,U2,Q1,Q2の位置)近傍に向けて走向するようになる。
【0096】
次に、ロボット1で実行される処理の詳細について説明する。まず、図5のステップS101の詳細として、LRF5から範囲A,B,Cに向けて照射されるレーザ光の順序と、ステップS101で作成されるデータテーブルとについて説明する。
【0097】
範囲Aにおけるレーザ光の照射順序は、(1)範囲Aの右端を通過するレーザ光を始めとして、左寄りのレーザ光が後になる順序、或いは(2)範囲Aの左端のレーザ光を始めとして、右寄りのレーザ光が後になる順序に設定される。
【0098】
図2のR1〜6は、範囲Aに連続して照射されたレーザ光の例を示している。これらR1〜6の照射順序は、(1)左寄りのレーザ光が後になる順序では、R1→R2→R3→R4→R5→R6の順となり、(2)右寄りのレーザ光が後になる順序では、R6→R5→R4→R3→R2→R1の順となる。
【0099】
また範囲B,Cにおけるレーザ光の照射順序は、範囲B,Cの後端を通過するレーザ光を始めとして、前寄りのレーザ光が後になる順序となっている。
【0100】
図2のR7〜12は、範囲Bに連続して照射された照射されたレーザ光の例を示している。これらR7〜12の照射順序は、R7→R8→R9→R10→R11→R12の順序となる。
【0101】
図15は、図5のステップS101で作成されるデータテーブルの例を示している。このデータテーブルは、範囲Bに照射されたレーザ光について作成されたものであって、範囲Bに照射されたレーザ光の各々に対応する行が設けられている。これらの行では、レーザ光によって得られた距離データと、レーザ光に関する情報(レーザ光が照射された順番・レーザ光が進行した角度位置)とが記されている。
【0102】
例えば、データテーブルの1行目は、範囲Bの後端を通過したレーザ光に対応し、データテーブルの2行目は、後端のレーザ光の1ピッチ前寄りを通過したレーザ光に対応している。そして、データテーブルの1行目では、後端のレーザ光によって得られた距離データAや、後端のレーザ光が照射された順番(1番目)や、後端のレーザ光が進行した角度位置(0.0°:範囲B後端からの角度)が記されている。
【0103】
図5のステップS101では、上記のデータテーブルが、範囲A,B,Cに照射されたレーザ光のいずれにもついても作成される。そして、これらのデータテーブルは、ステップS102でシステムコントローラ7に送信される。
【0104】
なお図15に示すデータテーブルでは、5,9行目において、距離データが記されていない。これは、5,9行目に対応するレーザ光の反射点を、LRF5が計測できなかったことによるものである。この理由としては、レーザ光の進路の先に、反射を生じさせる壁が存在していなかったことや(図13,14の範囲B参照)、レーザ光を反射しにくい材質の物体(図9の物体C参照)が存在していたことがあげられる。
【0105】
次に、図5のステップS104の詳細について説明する。
【0106】
図6に示すレーザ光R13〜18は、範囲Aに照射されたレーザ光の例を示している。このうち、R13〜16は連続して照射されたものであって、R13,R14,R15は、物体B1の表面に反射点h1,h2,h3を生じさせている。また、R15は、物体B1の脇を通過して物体B2に照射されたことで、物体B2の表面に反射点h10を生じさせている。
【0107】
ここで、R13とR14のように、1ピッチの角度間隔をあけて進行した2つのレーザ光が同一の物体に照射された場合、これらレーザ光の反射点は近い位置に生じる(R13,R14の反射点h1,h2参照)。よって、これら2つのレーザ光により得られる距離データは同程度の値を示すものとなる。
【0108】
これに対して、R15とR16のように、1ピッチの角度間隔をあけて進行した2つのレーザ光が異なる物体(物体B1,B2)に照射され、これらの物体が他方から離れた位置にある場合には、2つのレーザ光の反射点は遠い位置に生じる(R15,R16の反射点h3,h10参照)。よって、これら2つのレーザ光により得られる距離データは、大きく異なる値を示すものとなる。
【0109】
これに鑑み、図5のステップS104では、範囲Aに照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差が順次算出され、この差に基づき、同一の物体の表面に生じた反射点hを特定することが行われる。以下、具体的に説明する。
【0110】
なお以下では、図6のR13が範囲Aの右端を通過したレーザ光に該当し、R18が範囲Aの左端を通過したレーザ光に該当し、R17がR18の1ピッチ右寄りの位置を進行したレーザ光に該当するものとして説明する。また、レーザ光の照射順序は、右端を通過するレーザ光(R13)を始めとして、左寄りのレーザ光が後となる順序(R18が最後となる順序)に設定されているものとする。
【0111】
図16は、ステップS104の処理の詳細を示すフローチャートである。
【0112】
まず、システムコントローラ7は、距離データの差を算出する2つのレーザ光の組を選択する(ステップS201)。初回の処理では、範囲Aの右端を通過したR13と、これの1ピッチ左寄りを進行したR14とからなる組が選択される。
【0113】
具体的には、範囲Aについて作成されたデータテーブルにおいて、R13,R14に対応する2行が、距離データの差を算出する行として選択される。この行の選択は、データテーブルに示されるレーザ光に関する情報(レーザ光の照射順序・レーザ光の角度位置)に基づき行われる。
【0114】
次に、システムコントローラ7は、ステップS201で選択した2つのレーザ光の距離データの差を算出する(ステップS202)。具体的には、ステップS201で選択されたデータテーブルの2行に記されている距離データの差が選択される。
【0115】
次に、システムコントローラ7は、ステップS202で算出した差が、所定の閾値を超えているか否かを判断する(ステップS203)。
【0116】
距離データの差が閾値を超えていないと判断された場合には(ステップS203でNO)、ステップS201で選択された2つのレーザ光の反射点hは、同一の物体の表面に生じたものとして、同一のクラスタに登録される(ステップS204)。
【0117】
一方、距離データの差が閾値を超えていると判断された場合には(ステップS203でYES)、ステップS201で選択された2つのレーザ光の反射点hは、異なる物体の表面に生じたものとして、異なるクラスタに登録される(ステップS205)。
【0118】
例えば、ステップS201で選択された2つのレーザ光が図6のR13,R14である場合には、R13,R14の反射点h1,h2がいずれも物体B1の表面に生じていることで、R13,R14の距離データの差は小さい。これにより、R13,R14の距離データの差は閾値を超えていないと判断される(ステップS203でNO)。この結果、R13,R14の反射点h1,h2は、同一のクラスタに登録される(ステップS204)。
【0119】
そして図16のステップS204,S205の実行後では、システムコントローラ7は、範囲Aにおける全てのレーザ光の組について、距離データの差の算出や、クラスタの登録処理(S202〜S204,205の処理)を行ったか否かを判断する(ステップS206)。図6の例による説明では、処理が行われたのは、R13,R14の組についてのみであるため、NOと判断されて、ステップS207に移行する。
【0120】
そしてステップS207では、距離データの差を算出するレーザ光の組が、1ピッチ左寄りの組に変更される。図6のR13,R14の組が選択されていた場合には、これらの1ピッチ左寄りにあるR14,R15の組に変更される。
【0121】
そして再びステップS202,S203が実行されることで、ステップS207で変更された2つのレーザ光の組について、距離データの差が算出されて、閾値を超えていないか判断される。
【0122】
そして、距離データの差が閾値を超えていないと判断された場合には(ステップS203でNO)、ステップS207で新たに選択されたレーザ光の反射点hが、前回の処理で反射点の登録が行われたクラスタに追加登録される(ステップS204)。
【0123】
一方、距離データの差が閾値を超えていると判断された場合には(ステップS203でYES)、ステップS207で新たに選択されたレーザ光の反射点hは、前回の処理で登録があったクラスタとは異なるクラスタに登録される(ステップS205)。
【0124】
例えばステップS207で、図6のR13,R14の組から、図6のR14,R15の組に変更されていた場合には、R15が、ステップS207で新たに選択されたレーザ光に該当する(R14は、前回の処理で既に選択されているため、新たに選択されたレーザ光ではない)。
【0125】
この場合、R15の反射点h3は、R14の反射点h2と同様に、物体B1の表面に生じていることから、R14,R15の距離データの差は小さい。このため、ステップS203では、閾値を超えていないと判断される(ステップS203でNO)。この結果、R14の反射点h3は、前回処理で反射点h2が登録されたクラスタに追加登録される(ステップS204)。
【0126】
そして、ステップS204で反射点h3の登録が行われた後では、ステップS206が実行されるが、S202〜S204,205が行われた組は、R13,R14の組、R14,R15の組だけであるため、NOと判断されて、ステップS207に移行する。
【0127】
このステップS207では、R14,R15の組から、R15,R16の組に変更される。この場合、R16が、ステップS207で新たに選択されたレーザ光に該当することになる。
【0128】
そして、再びステップS202,203が実行されることで、R15,R16の距離データの差が算出されて、閾値を超えていないか判断される。この際には、R16の反射点h10は、R15の反射点h3とは異なり、物体B2の表面に生じていることから、R15,R16の距離データの差は大きい。このため、ステップS203では閾値を超えていると判断される(S203でYES)。この結果、R16の反射点h10は、前回処理で反射点h3が登録されたクラスタとは、異なるクラスタに登録される(ステップS205)。
【0129】
上記のS202〜S207は、範囲Aの左端に照射されたR17,R18の組が完了するまで繰り返される。この結果、範囲Aに存在する物体の各々(物体B1・右足・左足・物体B2)の表面に生じた反射点hのクラスタ1,2,3,4が抽出される。そして、R17,R18の組についての処理が完了した際には、ステップS206でYESと判断されて、ステップS104は終了する。
【0130】
次に、図5のステップS105の詳細について説明する。
【0131】
クラスタを構成する反射点hの数は、物体の大きさに応じて変わり、足を示すクラスタは、電柱のような太い物体を示すクラスタに比して反射点hの数が少なく、また、箒の柄のように細い物体を示すクラスタに比して反射点hの数が多い。図6の例では、右足・左足を示すクラスタ2,3は、反射点の数が3であるのに対して、足よりも大きな物体B2を示すクラスタ4は、反射点の数が8となっている。
【0132】
これに鑑みステップS105では、クラスタを構成する反射点hの数に基づき、注目クラスタが抽出される。具体的には、システムコントローラ7は、ステップS104で抽出されたクラスタの中から、反射点hの数が所定の範囲に含まれるクラスタを、注目クラスタとして抽出する。
【0133】
上記の範囲は、レーザ光の照射により足の表面に生じる反射点hの数を、足の位置を変えるたびに測定し、この測定で得られた最大値・最小値を、上限・下限とすることで設定されるものである。
【0134】
例えば、上記の範囲が2以上4以下に設定されている場合、図6の例では、反射点の数が3であるクラスタ1,2,3は、注目クラスタとして抽出されるが、反射点の数が8であるクラスタ4は、注目クラスタとして抽出されない。
【0135】
次に、図5のステップS106の詳細について説明する。
【0136】
このステップS106では、システムコントローラ7は、下記数2により、注目クラスタに含まれる反射点hの座標を均等重みで平均化することで代表値Dを算出する。例えば、図6に示すクラスタ1では、反射点h1,h2,h3の座標について、数2による平均化が行われることで、代表値D1の座標が算出される。
【数2】
【0137】
次に、図5のステップS107の詳細について説明する。図17は、ステップS107の処理の詳細を示すフローチャートである。このステップS107では、ステップS106で算出された代表値Dに基づき、歩行者の両足を示す注目クラスタの組が設定される。
【0138】
まず、システムコントローラ7は、ステップS105で抽出された注目クラスタの中から、隣り合う一対の物体を示す2つの注目クラスタの組を設定する(ステップS301)。この処理では、ステップS106で算出された代表値Dの座標が近い位置にある2つの注目クラスタが、上述の一対の物体を示す組として設定される。
【0139】
図6の例において、代表値D1,D2の位置が近いと判断される場合には、クラスタ1,2の組が、隣り合う物体を示す組として抽出され、また、代表値D2,D3の位置が近いと判断される場合には、クラスタ2,3の組が、隣り合う物体を示す組として抽出され得る。
【0140】
そして、システムコントローラ7は、ステップS301で設定した注目クラスタの組の中から、両足を示す可能性のある組を抽出する(ステップS302)。この抽出は、ステップS301で設定された組について、一方の代表値Dの座標と、他方の代表値Dの座標との離隔距離が、予め設定された限界値(例えば300mm)を超えていない組を抽出することで行われる。これは、人が歩行時に取り得る歩幅には限度があることから、この限度を超えて2つの代表値Dが離れている注目クラスタの組は、両足を示すものではないと考えられるためである。
【0141】
図6の例において、代表値D1,D2の離隔距離が限界値を超えていないと判断される場合には、クラスタ1,2は、両足を示す可能性のある組として抽出され、また、代表値D2,D3の離隔距離が限界値を超えていないと判断される場合には、クラスタ2,3は、両足を示す可能性のある組として抽出され得る。
【0142】
次に、図5のステップS109の詳細について説明する。図18は、ステップS109の処理の詳細を示すフローチャートである。
【0143】
ステップS109では、下記数3,4による線形推定法によって、現在の胴体の中心位置が推定される。
【0144】
まず、システムコントローラは、数3に示すように、前回のステップS110で特定された胴体中心位置の座標(図6のZ2に相当)と、前々回のステップS110で特定された胴体中心位置の座標(図6のZ1に相当)との距離差(図6のd1に相当)を、前々回のステップS110から前回のステップS110までの時間間隔(図6のZ1〜Z2の移動時間に相当)で序することで、前回処理時における歩行者の速度(Z1〜Z2移動時の歩行速度に相当)を算出する(ステップS401)。
【数3】
【0145】
次に、歩行者は、前回処理時から現時点まで一定の速度で歩行しているという仮定に基づき、数4に示すように、前回処理時から現時点までの時間間隔(図6のZ2〜S1の移動時間に相当)に、ステップS401で算出した速度(Z1〜Z2移動時の歩行速度に相当)を乗じることで、歩行者の移動距離(図6のd2に相当)を算出し、この距離を前回のステップS110で特定された座標(図6のZ2に相当)に加算する(ステップS402)。この結果、得られる座標(図6のS1に相当)が、現在の胴体中心の推定位置となる。
【数4】
【0146】
次に、図5のステップS110の詳細を説明する。図19は、ステップS110の処理の詳細を示すフローチャートである。
【0147】
ロボット1を追随する歩行者が、真横を向くことは、まれであると思われる。また、人の足の関節の構造によれば、歩行者は、両足を、前後方向には交互に出しやすいが、横方向には交互に出しにくい。以上のことから、ロボット1による先導中に、歩行者の位置の変位は、前後方向に出やすい傾向にあるといえる。
【0148】
よって、例えば図6に示す状況のように、ステップS108で2つの中点T1,T2の座標が算出されており、これら中点T1,T2がステップS109の推定位置S1から同程度の距離で離隔しているときには、中点T1,T2のうち、推定位置S1に対して前後方向にずれた位置にある中点T2が、現在の歩行者の位置を示している可能性が高いと考えるのが妥当である。
【0149】
これに鑑み、ステップS110では、下記数5により得られるユークリッド距離が用いられて、ステップS108で算出された中点Tの中から、歩行者の胴体中心を示す可能性の高い座標が特定される。
【数5】
【0150】
ユークリッド距離は、ステップS108で算出された中点Tの座標とステップS109で算出された推定位置Sの座標との横方向の差(以下、横方向の差と略す)の2乗値に定数Cを乗じた値と、ステップS108で算出された中点Tの座標とステップS109で算出された推定位置Sの座標との前後方向の差(以下、前後方向の差と略す)の2乗値に1/C(定数Cの逆数)を乗じた値とを、足し合わせることで算出される。C値が1よりも大きく設定される場合には、ユークリッド距離は、横方向の差による変動が大きくなる特徴を有している。
【0151】
そして図19に示すように、ステップS110では、ステップS108で算出された各中点Tの座標について、数5によりユークリッド距離が算出されるが(ステップS501)、この際に用いられるCの値は1よりも大きく設定されている。そして、この設定下でユークリッド距離が最も小さく算出される中点Tの座標が、現在の歩行者の位置を示す可能性の高い座標として特定される(ステップS502)。
【0152】
図20は、図6に示す歩行者の右足・左足近傍の領域を、拡大して示す平面図である。
【0153】
図20に示す等高線Kは、Cの値が「1.5」に設定された場合に、ユークリッド距離が同程度となる領域を、区分するものである。等高線Kは、推定位置S1を中心に配する楕円を呈している(正確には長軸及び短軸の交差地点に推定位置Sを配する楕円)。この等高線Kが示す楕円は、Cの値が「1.5」に設定されることで、横方向の差が前後方向の差に比して、2.25倍のユークリッド距離の変動を与えることに基づき、表現されるものである。
【0154】
等高線Kによる区分では、中点T2は、中点T1よりも、推定位置S1に近い領域に位置している。これは、Cの値が「1.5」に設定された状況下では、中点T2の座標について得られるユークリッド距離は、中点T1の座標について得られるユークリッド距離よりも小さくなるためである。よって、Cの値が「1.5」に設定される状況下で、中点T1,T2及び推定位置S1の座敷に基づき、図19のステップS501,502の処理が行われると、中点T2が、現在の歩行者の胴体中心を示す可能性の高い座標として特定されることになる。
【0155】
なお、図5のステップS109では、推定位置Sの座標を得るために、ステップS110により特定される座標が過去2回分必要となる。このため、ステップS109は、ステップS110が2回実行されるまでは行うことができない。よって、ステップS110の初回と2回目とは、ステップS109が省略された状態で実行される。
【0156】
具体的には、システムコントローラ7には、歩行者の胴体中心の初期位置を示す座標が予め記憶されており、ステップS110の初回実行時には、前記初期位置の座標が、胴体中心位置を示す可能性が高い座標として特定される。そして、ステップS110の2回目実行時では、ステップS108で算出された中点Tの座標のうち、初期位置に最も近い座標が、胴体中心を示す可能性が高い座標として特定される。この際にも、上記のユークリッド距離による評価で、胴体中心を示す可能性の高い座標が特定される。
【0157】
次に、図5のステップS112の詳細について説明する。図21は、ステップS112の処理の詳細を示すフローチャートである。
【0158】
まず、移動機構3は、ステップS111によりシステムコントローラ7から受信した座標(胴体中心を示す可能性が高い座標)に基づき、ロボット1と歩行者との離隔距離dfzを算出する(ステップS601)。
【0159】
図6の中点T2の座標が、胴体中心を示す可能性が高い座標として特定されていた場合には、ロボット1と中点T2との離隔距離dfzが算出される。
【0160】
そして、移動機構3は、ステップS601で算出した離隔距離dfzに基づき、ロボット1の速度を制御する(ステップS602)。この制御は、後輪32の駆動速度Vrzが、下記数6に基づき調整されることで行われる。
【数6】
【0161】
図22は、ステップS601で算出される離隔距離dfzと、ステップS602で制御される後輪32の駆動速度Vrzとの関係を示している。
【0162】
まず、ステップS601で算出された離隔距離dfzが、予め設定された最近先導距離dnearよりも小さい場合には(図22の範囲Aに対応)、移動機構3は、後輪32の駆動速度Vrzを、予め設定された先導最高速度Vmaxに制御する。
【0163】
また、ステップS601で算出された離隔距離dfzが、予め設定された停止判断距離dstopよりも大きい場合には(図22の範囲Cに対応)、移動機構3は、後輪32の回転を停止する。
【0164】
また、ステップS601で算出された離隔距離dfzが、最近先導距離dnearよりも大きく、停止判断距離dstopよりも大きい場合には(図22の範囲Bに対応)、後輪32の回転速度を、停止判断距離dstopと離隔距離dfzとの差に比例した値に制御する。
【0165】
以上のように、後輪32の駆動速度Vrzが離隔距離dfzに基づき調整されることで、ロボット1の速度は、歩行者の位置に応じて制御されるようになる。
【0166】
本実施の形態によれば、歩行者の両足を示す注目クラスタの組が特定され、さらに、この注目クラスタの組に基づき、歩行者の胴体中心位置が特定されて、この位置に基づき、ロボット1の速度が制御される。ここで、歩行者の胴体中心は、両足が前後往復運動をしているときでも、大きな変位を伴わず、滑らかに移動する。このことから、歩行者の位置をブレなく追跡できる。また、歩行者の追跡のために負荷の大きな処理を必要としないことから、歩行者の追跡に要する計算時間が短い。このため、歩行者の現位置を追跡することができる。以上のことから本実施の形態によれば、高いロバスト性で歩行者の位置を追跡できるため、ロボット1は確実に歩行者の歩行ペースに合わせて走向するようになる。
【0167】
なお、図5の歩行者位置検出処理では、左足・右足を別個に示す2つの注目クラスタが抽出されることを前提としているが、レーザ光の進路において一方の足が他方の足の背後にあることや、歩行者がロボット1に近接した位置にあることで、ステップS104において、両足をまとめて示すクラスタが抽出される場合が想定される。
【0168】
例えば図23に示すように、レーザ光の進路に対して左足が右足の背後にある場合には、右足の表面に生じた反射点h101,h102と、左足の表面に生じた反射点h103,h104とが、同一のクラスタに登録された結果(図16のステップS204参照)、ステップS104で、右足・左足をまとめて示すクラスタ(h101〜h104が含まれるクラスタ)が抽出されることになる。
【0169】
しかしながら、このようなケースにおいても、以下に述べる対策を取ることで、歩行者の位置を追跡することが可能である。
【0170】
すなわち、上述の左足が右足の背後になるような状況は、歩行者の足の運び方によって一時的に起こるものであって、ロボット1による先導中に連続して起こるものとは考えられない。
【0171】
つまり、左足が右足の背後になる直前においては、右足が、図23の破線A,Bに示すような位置にあることで、ステップS104では、左足・右足を別個に示すクラスタが抽出される。この結果、これらクラスタの代表値(D5,D6,D7に相当)の中点(T6,T7に相当)が、ステップS110で胴体中心が存在する可能性の高い座標として特定されるものと考えられる。
【0172】
この特定が行われていれば、左足が右足の背後になった時点の処理において、前回のステップS110で特定された胴体中心(T6,T7に相当)に基づき、ステップS109で胴体中心位置が推定されることになる(S2が推定位置に相当)。よって、この推定位置S2は、信頼のおけるデータに基づき、算出されたものといえる。
【0173】
このことから、両足をまとめて示す一つのクラスタが抽出された場合には、ステップS109で得られる推定位置(S2に相当)を、現在の歩行者の胴体中心位置と暫定的にみなす対策が行われる。これにより、歩行者位置の追跡を続けることが可能となる。
【0174】
なお、推定位置(S2に相当)は、両足をまとめて示すクラスタの代表値(h101〜h104の重心座標:D8に相当)と近い場合にのみ、現在の胴体中心位置としてみなされるようにしても良い。
【0175】
また、図5の環境スキャン処理では、範囲Aに向けてレーザ光を照射することに代えて、ロボットの周囲のあらゆる範囲に向けてレーザ光は照射され得る。このようにすることで、歩行者が、範囲A以外のロボットの周囲に存在する場合においても、歩行者位置検出処理で歩行者の胴体中心位置が特定されて、この位置に基づき、速度制御処理でロボットの速度が制御されるようになる。
【0176】
次に、図5のステップS113の詳細について説明する。図24は、ステップS113の処理の詳細を示すフローチャートである。なお以下では、図2に示すR9が、範囲Bでロボット1の真横に向かったレーザ光に該当し、R12が、範囲Bの前端を通過したレーザ光に該当するものとして説明する。
【0177】
まず、システムコントローラ7は、範囲Bに照射したレーザ光のうち、後述のステップS702,703の処理を行うレーザ光を選択する(ステップS701)。初回の処理では、ロボット1の真横に進んだR9が選択される。具体的には、範囲Bについて作成されたデータテーブル(図15参照)において、R9に対応する行が選択される。
【0178】
次に、システムコントローラ7は、ステップS701で選択されたレーザ光の距離データが存在するか否かを判断する(ステップS702)。具体的には、ステップS701で選択されたデータテーブルの行に、距離データが記録されているか否かが選択される。
【0179】
距離データが存在しない理由としては、ステップS701で選択されたレーザ光の進路の先に、反射を生じさせる壁が存在していなかったことや(図13,14における右側の壁の状況を参照)、レーザ光を反射しにくい物体(図9の物体C参照)が存在していることがあげられる。
【0180】
例えば、図15の5,9行目のように、ステップS702で選択されたテーブルの行に距離データが記録されていないことから、距離データが存在していないと判断された場合には(ステップS702でNO)、ステップS704に移行する。
【0181】
一方、ステップS702で距離データが得られていると判断された場合には(ステップS702でYES)、システムコントローラ7は、ステップS701で選択されたレーザ光の反射点の座標が、異常値を示していないか否かを判断する(ステップS703)。このステップS703は、ステップS701で選択されたレーザ光の反射点が、壁の表面に生じたものであるか否かを確認するために行われる。
【0182】
具体的には、反射点の座標が、ロボット1から所定距離以上離れた位置(例えばロボット1から2m以上離れた位置)を示していないか、或いは壁が物理的に存在し得ない位置(例えばロボット1が存在する位置)を示していないか、といったことが判断される。ステップS701で選択されたレーザ光が、壁が途切れた先や、反射しにくい物体(図9の物体C参照)に向かっていたことで、反射点の座標が、壁に生じる反射点の座標に比して遠い位置にある場合には、NOと判断される。
【0183】
そして、反射点の座標が異常値を示すことで、ステップS703でNOと判断された場合には、ステップS702でNOと判断される場合と同様、ステップS704へ移行する。ステップS703でYESと判断される場合については後述する。
【0184】
ステップS704では、システムコントローラ7は、ステップS702,703の処理が、ロボット1の真横から範囲Bの前端までに照射された全てのレーザ光(図2の例ではR9〜R12)について行われたか否かを判断する。図2の例による説明では、ステップS702,703が行われたのは、R9についてのみであるため、NOと判断されて、ステップS705に移行する。
【0185】
そしてステップS705では、システムコントローラ7は、ステップS702,703の処理を行うレーザ光を変更する。この処理では、前回のステップS701で選択されたレーザ光に対して、1ピッチ前寄りを進行していたレーザ光に変更される。前回の処理で、図2のR9が選択されていた場合には、R10に変更される。
【0186】
そして、ステップS705で変更されたレーザ光について、ステップS702,S703の処理が行われる。この結果、ステップS705で変更されたレーザ光について、1)距離データが存在していないこと、2)反射点の座標が異常値を示していることが確認された場合には(ステップS702,S703でNO)、ステップS704,S705が実行される。この結果、ステップS702,S703の処理を行うレーザ光が、1ピッチ前寄りを進行していたレーザ光に変更される。前回の処理で、図2のR10が選択されていた場合には、R11に変更される。
【0187】
以上のステップS702〜S705の流れは、ステップS704でYESと判断されるまで、或いはステップS703でYESと判断されるまで繰り返される。
【0188】
そして、ロボット1の真横から範囲Bの前端までに照射された全てのレーザ光(図2ではR9〜R12)について、1)距離データが存在していないこと、2)反射点の座標が異常値を示していることが確認された場合には(ステップS702又はS703でNO)、ステップS704でYESと判断されて、システムコントローラ7は、範囲Bに壁が存在しないことを示す情報を記憶する(ステップS706)。
【0189】
また、ステップS702〜S705が繰り返される過程で、1)距離データが存在すること、2)反射点の座標が異常値を示していないことが確認されたレーザ光が検出された場合には(ステップS702,S703でYES)、システムコントローラ7は、そのレーザ光の反射点の座標を記憶する(ステップS707)。
【0190】
ステップS707で記憶される反射点の座標は、この位置に壁の存在が確認されたことで、これよりも前方へ壁が延びている可能性があることを意味するものであり、図5のステップS114又はS117における反射点探索の開始位置(以下、探索開始位置と記す)として、設定されるものとなる。なお、ステップS701〜707の処理が、ロボット1の真横から前側の範囲に照射されたレーザ光について行われることから、探索開始位置として設定される反射点の座標(S707で記憶される座標)は、必ず、ロボット1の真横或いは真横よりも前側に存在する。
【0191】
そしてステップS707の実行後では、システムコントローラは、範囲B,Cについて、S706又はS707を行ったか否かを判断する(ステップS708)。図2の例による説明では、処理が行われたのは範囲Bについてのみであるため、NOと判断されて、ステップS701に移行する。
【0192】
このステップS701では、範囲Cでロボット1の真横に向かったレーザ光が、ステップS702,704の検討を行うレーザ光として選択される。
【0193】
そして、この後、範囲Cに照射されたレーザ光について、ロボット1の真横に向かったレーザを始めとして、前寄りのレーザ光が後となる順序で、ステップS702〜S705が繰り返される。
【0194】
そして、ステップS704でYESと判断された場合には、システムコントローラ7に、範囲Cに壁が存在しないことを示す情報が記憶される(ステップS706)。
【0195】
また、ステップS703でYESと判断された場合には、範囲Cについて、1)距離データが存在すること、2)反射点の座標が異常値を示していないことが確認されたレーザ光の反射点hが記憶される。この際に記憶される反射点hの座標は、範囲Cでロボット1の真横或いは真横よりも前側に存在しており、ステップS114又はS117における範囲Cの反射点探索開始位置として設定されるものとなる。
【0196】
そして、範囲CについてS706又はS707が実行された場合には、ステップS708でYESと判断されて、システムコントローラ7は、範囲B,Cについて、ステップS706の情報が記憶されたか否かを判断する(ステップS709)。
【0197】
範囲B,CのいずれについてもステップS706の情報が記憶されていない場合には(ステップS709でNO)、範囲B,Cのいずれにも壁が存在することから、図5のステップS114に移行する。
【0198】
また、範囲A,Bの一方にステップS706の情報が記憶されている場合には(ステップS709でNO)、範囲B,Cの一方に壁が存在しないことから、図5のステップS117に移行する。
【0199】
次に、ステップS114の処理の詳細について説明する。図25は、ステップS114の処理の詳細を示すフローチャートである。なお、以下では、図2に示すR9の反射点hの座標が、図24のステップS707で記憶されることで、範囲Bの探索開始位置として設定される場合を例に説明する。
【0200】
まず、システムコントローラ7は、後述のステップS802〜805の処理を行うレーザ光として、範囲B内で隣り合う位置を進行した2つのレーザ光を選択する(ステップS801)。
【0201】
初回実行時には、図24のステップS707で探索開始位置として座標が記憶されたR9と、この1ピッチ前寄りを進行したR10とが選択される。具体的には、範囲Bのデータテーブル(図15参照)において、R9,R10に対応する2行が選択される。
【0202】
次に、システムコントローラ7は、ステップS801で選択された2つのレーザ光のうち、前寄りの位置を進行したレーザ光について、図24のステップS702,S703と同様の処理を行う(ステップS802,S803)。
【0203】
ステップS801で、R9,R10が選択されていた場合には、R10が前寄りの位置を進行したレーザ光に該当し、R10について、ステップS802,S803が行われる。
【0204】
このステップS802,S803は、上記前寄りのレーザ光が進んだ先に、壁が存在するか否かを確認するために実行され、壁が存在していた場合には、ステップS802,S803でYESと判断されることになる。
【0205】
そしてこの場合には(ステップS802,S803でYES)、システムコントローラ7は、ステップS801で選択された2つのレーザ光の距離データの差を算出する(ステップS804)。具体的には、ステップS801で選択されたテーブルの2行に記されている距離データの差が算出される。ステップS802,S803でNOと判断される場合については、後述する。
【0206】
次に、システムコントローラ7は、ステップS804で算出された距離データの差が、所定の閾値を超えるか否かを判断する(ステップS805)。この処理は、ステップS801で選択された2つのレーザ光の反射点が、同一の物体の表面に生じたものか否かを確認するために行われる。
【0207】
例えば、図8に示す反射点h31,h32を生じさせた2つのレーザ光のように、後寄りのレーザ光(反射点h31を生じさせたレーザ光に相当)は、壁に照射されたものの、前寄りのレーザ光(反射点h32を生じさせたレーザ光に相当)が、壁が途切れた先に向かって、異なる物体に照射された場合には、これら2つのレーザ光の距離データは大きく異なるものとなる。これにより、ステップS805では、閾値を超えると判断される(ステップS805でYES)。まず、ステップS805でNOと判断される場合の処理の流れについて説明する。
【0208】
ステップS805でNOと判断された場合には、システムコントローラ7は、ステップS802〜805の処理を、探索開始位置(図24のS707で記憶された反射点の座標位置)から範囲Bの前端までに照射されたレーザ光の全ての組((図2では、R9,R10の組、R10,R11の組、R11,R12の組)について行ったか否かを判断する(ステップS806)。図2の例による説明では、R9,R10の組についてしか処理を行っていないため、NOと判断して、ステップS807に移行する。
【0209】
そしてステップS807では、システムコントローラ7は、ステップS802〜805の処理を行うレーザ光を変更する。この処理では、以前の処理で設定された2つのレーザ光に対して、1ピッチ前寄りを進行していた2つのレーザ光へと変更される。図2の例では、R9とR10の組から、R10とR11の組へと変更される。
【0210】
そして、システムコントローラ7は、ステップS806で新たに選択されたレーザ光(図2の説明の例ではR11に相当)について、ステップS802,S803を実行する。
【0211】
そしてステップS802,S803でYESと判断された場合には、システムコントローラ7は、ステップS806で変更された2つのレーザ光の距離データの差を算出し(ステップS804)、所定の閾値を超えるか否かを判断する(ステップS805)。
【0212】
以上のステップS802〜807の処理は、ステップS805,S806でYES或いはステップS802,S803でNOと判断されない限り繰り返され、この繰り返しの過程では、2つのレーザ光の距離データの差が、前寄りのレーザ光の組が後となる順で、算出される。
【0213】
そしてこの繰り返しの過程で、ある組の距離データの差にステップS805の閾値を超える急峻な差があった場合には(ステップS805でYES)、この組をなす2つのレーザ光のうち、後寄りのレーザ光の反射点の座標が、ステップS115(図5参照)で中点Uの算出に用いる可能性のある座標(以下、中点算出候補と記す)として設定される(ステップS808)。
【0214】
また、探索開始位置から範囲Bの前端までの領域に向けて照射されたレーザ光の全ての組(R9,R10の組、R10,R11の組、R11,R12の組)の中から、距離データの差がステップS805の閾値を超える組が検出されなかった場合には、ステップS806でYESと判断される。この場合には、システムコントローラ7は、ステップS809に移行して、範囲Bの前端を通過したレーザ光(R12に相当)の反射点の座標を、中点Uの算出に用いる座標(以下、中点算出点)として特定する(ステップS809)。
【0215】
また、ステップS802,S803でNOと判断される場合には、システムコントローラ7は、ステップS801,S807で選択された2つのレーザ光のうち、後寄りのレーザ光の反射点の座標を、中点算出候補として設定する(ステップS810)。
【0216】
そして、ステップS808,S810で中点算出候補が設定されると、システムコントローラ7は、ステップS811に移行する。
【0217】
このステップS811では、システムコントローラ7は、範囲Bの前端までに、中点算出候補として設定された反射点よりも、ロボット1に近い反射点が存在するか探索する(ステップS811)。これを行う理由としては、範囲Bの前端までに障害物が存在しており、この障害物の表面に反射点が生じている可能性があるためである。
【0218】
より近い反射点が探索されなければ(ステップS811でNO)、システムコントローラ7は、ステップS808,S810で中点算出候補として設定した反射点の座標を、中点算出点として特定する(ステップS812)。
【0219】
また、より近い反射点が探索された場合には(ステップS811でYES)、システムコントローラ7は、この反射点の座標を、中点算出点として特定する(ステップS813)。
【0220】
ここで、ステップS801〜S813の処理により、中点算出点が特定される過程を、図7〜10を用いて説明する。なお以下では、範囲Bの探索開始位置として、図7の反射点h20の座標と、図8の反射点h30の座標と、図9の反射点h40の座標と、図10の反射点h50の座標とが設定されるものとして説明する。
【0221】
図7の例では、反射点h20,h21を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS804)、閾値と比較される(ステップS805)。この結果、閾値を超えるレーザ光の組が検出されないことで(ステップS806でYES)、範囲Bの前端を通過したレーザ光の反射点h23が、中点算出点として特定される(ステップS809)。
【0222】
図8の例では、反射点h30,h31を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS804)、閾値と比較される(ステップS805)。この結果、反射点h31,h32を生じさせた2つのレーザ光の組の距離データに、大きな差があることが検出される(ステップS805でYES)。これにより、反射点h31が、中点算出候補として設定される(ステップS808)。
【0223】
その後、範囲Bの前端までに、反射点h31よりも、ロボット1に近い反射点が存在するか探索されるが(ステップS811)、より近い反射点が探索されないことで(ステップS811でNO)、反射点h31が、中点算出点として特定される(ステップS812)。
【0224】
図9の例では、壁の途中に反射を生じにくい物体Cが存在していることから、(1)物体Cに照射されたレーザ光の距離データが得られなかったり、(2)物体Cに照射されたレーザ光の反射点が、遠くに検出される事態が生じ得る(h43,h44,h45参照)。
【0225】
まず(1)前者の事態が生じていた場合には、反射点h40,h41を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、ステップS802〜S807の処理が繰り返される。この結果、物体Cに照射されたレーザ光の距離データが得られていないことが確認されるため(ステップS802でNO)、物体Cの手前にある反射点h42が、中点算出候補として設定される(ステップS810)。
【0226】
その後、範囲Bの前端までに、反射点h42よりも、ロボット1に近い反射点が存在するか探索されるが(ステップS811)、より近い反射点が探索されないことで(ステップS811でNO)、反射点h42が、中点算出点として特定される(ステップS812)。
【0227】
また(2)後者の事態が生じていた場合には、前者の事態と同様に、ステップS802〜S807の処理が繰り返されるが、物体Cに照射されたレーザ光の反射点h43の座標が異常値を示していることで(ステップS803でNO)、物体Cの手前にある反射点h42が、中点算出候補として設定される(ステップS810)。
【0228】
その後、範囲Bの前端までに、反射点h42よりも、ロボット1に近い反射点が存在するか探索されるが(ステップS811)、より近い反射点が探索されないことで(ステップS811でNO)、反射点h42が、中点算出点として特定される(ステップS812)。
【0229】
図10の例では、反射点h50,h51を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS804)、閾値と比較される(ステップS805)。この結果、反射点h52,h53を生じさせた2つのレーザ光の組の距離データに、大きな差があることが検出される(ステップS805でYES)。これにより、反射点h52が、中点算出候補として設定される(ステップS808)。
【0230】
その後、範囲Bの前端までに、反射点h52よりも、ロボット1に近い反射点が存在するか探索される(ステップS811)。この結果、障害物B3の表面に生じた反射点h55が、反射点h52よりも、ロボット1に近いことが検出される(ステップS811でYES)。これにより、反射点h55が、中点算出点として特定される(ステップS813)。
【0231】
そして、図25のステップS809,S812,S813が実行された後では、システムコントローラ7は、範囲B,Cのいずれについても、中点算出点を特定したか否かを判断する(ステップS814)。図2の例の説明では、範囲Cについては、中点算出点を設定していないので、NOと判断して、ステップS801に復帰する。これ以降、範囲Cの中点算出点を特定するための処理(ステップS801〜S809,S812,S813)が行われる。
【0232】
そして、範囲Cについて、S809,S812,S813が実行されることで、範囲Cの中点算出点(図11のh61,図12のh75に相当)が特定された際には、システムコントローラは、S814でYESと判断して、図5のS115へ移行する。これにより、範囲Bの中点算出点として特定された反射点(図11のh60,図12のh70に相当)と、範囲Cの中点算出点として設定された反射点(図11のh61,図12のh75に相当)との、中点U(図11のU1,図12のU2に相当)の座標が算出されることになる。
【0233】
なお、図25に示すステップS114の処理では、ロボット1の真横あるいは真横よりも前側に位置する探索開始位置(図24のS707で記憶される反射点の座標)を起点として、処理が開始される。このため、S809,S812,S813で設定される範囲B,Cの中点算出点(図11,12のh60,h61,h70,h75に相当)は、必ず、ロボット1よりも前側に位置している。よって、ステップS115で算出される中点U(図11,12の中点U1,U2に相当)の座標も、ロボット1よりも前側に位置することになる。
【0234】
図26は、図5のステップS117の処理の詳細を示すフローチャートである。図26は、図25に示すフローチャートから、ステップS814が省略されたものである。
【0235】
図26に示す処理は、範囲B,Cのうち、ステップS113で壁が存在すると判断された範囲について実行される。この結果、ステップS909,S912,S913において、ステップS118(図5参照)で平行四辺形の頂点Qを算出するための座標(以下、頂点算出点)が設定される。また、ステップS908,S910では、頂点算出点となり得る候補(以下、頂点算出候補)の座標が設定される。
【0236】
また、図26の処理についても、ロボット1の真横あるいは真横よりも前側に位置する探索開始位置(図24のS707で記憶される反射点の座標)を起点として、処理が開始される。これにより、ステップS909,S912,S913で設定される頂点算出点は、必ず、ロボット1よりも前側に位置することになる。
【0237】
図26の処理により、頂点算出点が設定される過程を、図13,14を用いて説明する。なお以下では、範囲Cの探索開始位置として、図13の反射点h80と、図14の反射点h90とが設定されているものとして説明する。
【0238】
図13の例では、壁が存在する範囲Cについて図26の処理が実行される。この処理では、反射点h80,h81を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS904)、閾値と比較される(ステップS905)。この結果、閾値を超えるレーザ光の組が検出されないことで(ステップS906でYES)、範囲Cの前端を通過したレーザ光の反射点h84の座標が、頂点算出点として特定される(ステップS909)。
【0239】
図14の例では、反射点h90,h91を生じさせた2つのレーザ光の組を始めとして、前寄りのレーザ光の組が後となる順で、距離データの差が算出されて(ステップS904)、閾値と比較される(ステップS905)。この結果、反射点h91,h92を生じさせた2つのレーザ光の組の距離データに、大きな差があることが検出される(ステップS905でYES)。これにより、反射点h91が、頂点算出候補として設定される(ステップS908)。
【0240】
その後、範囲Cの前端までに、反射点h91よりも、ロボット1に近い反射点が存在するか探索される(ステップS911)。この結果、障害物B5の表面に生じた反射点h93が、反射点h91よりも、ロボット1に近いことが検出される(ステップS911でYES)。これにより、反射点93が、頂点算出点として特定される(ステップS913)。
【0241】
そして図5のステップS118では、図26のステップS909,S912,S913で特定された頂点算出点の座標と、図24のステップS707で探索開始位置として記憶された反射点の座標と、ロボット1の座標とを3つの頂点とする平行四辺形において、残りの一つの頂点Qの座標が得られる。
【0242】
図13の例では、探索開始位置としての反射点h80と、頂点算出点としての反射点h84と、ロボット1の位置とを3つの頂点とする平行四辺形において、残りの1つの頂点Q1の座標が算出される。頂点算出点h84がロボット1よりも前側にあることで、頂点Q1も、ロボット1よりも前側に位置している。
【0243】
また図14の例では、探索開始位置としての反射点h90と、頂点算出点としての反射点h93と、ロボット1の位置とを3つの頂点とする平行四辺形において、残りの1つの頂点Q2の座標が算出される。頂点算出点h93がロボット1よりも前側にあることで、頂点Q2も、ロボット1よりも前側に位置している。
【0244】
そして、図5のステップS119では、ステップS118で算出された頂点Qの座標が、移動機構3に送信される。
【0245】
次に、ステップS116,S119で中点U又は頂点Qの座標が送信されることに応じて、移動機構3で実行されるステップS120の処理の詳細について説明する。図27は、ステップS120の処理の詳細を示すフローチャートである。
【0246】
まず、移動機構3は、ステップS116,S119で送信された中点U又は頂点Qの座標に基づき、前輪31の操舵角φを、下記数7により算出する(ステップS1001)。
【数7】
そして、移動機構3は、前輪31の操舵角を、ステップS1001で算出された角度に調整する(ステップS1002)。この結果、ロボット1は、S116,S119で受信した中点U又は頂点Qの位置近傍に向かって進行するようになる。
【0247】
本実施の形態によれば、図11に示したように、ロボット1の左右両側に壁が存在する場合には、これら左右の壁の表面でロボット1よりも前側に生じた反射点h60,h61の座標が獲得される。そして、これらの反射点h60,h61の中点U1位置近傍に、ロボット1の位置が制御される。これにより、ロボット1は、ロボット1の前側における廊下の中央位置付近を走向するようになるので、ロボット1を追随する歩行者に対して、確実に壁を回避可能な進路が提示される。
【0248】
また、上記の中点T位置にロボット1の位置を制御する処理は、図8に示したように壁が途中で途切れていたり、図9に示したように壁の途中にレーザ光を反射しにくい物体Cが存在している場合でも実行され得る。よって、このような場合においても、ロボット1を追随する歩行者に対して確実に壁を回避可能な進路が提示される。
【0249】
また、図12に示したように、ロボット1よりも前側における左側の壁際に、障害物B4が存在する場合には、左側の壁や障害物B4の表面に生じた反射点hの中から、ロボット1に最も近い反射点の座標h75が獲得される。
【0250】
そして、このロボット1に最も近い反射点h75の座標と、右側の壁の表面でロボット1よりも前側に生じた反射点h70の座標と、の中点U2の座標が算出されて、この位置近傍に向けてロボット1は進行する。これにより、壁際に障害物B4が存在する場合には、ロボット1は、該ロボット1よりも前側における、障害物B4と右側の壁との間の中央位置付近を走向するようになる。これにより、壁際に障害物B4が存在する場合においても、ロボット1を追随する歩行者に対して確実に壁を回避可能な進路が提示される。
【0251】
また、図13に示したように、右側の壁が存在しない場合には、左側の壁の表面で、ロボット1の真横から前側に生じた2つの反射点h80,h84の座標が獲得される。そして、この2つの反射点h80,h84と、ロボット1の位置とを3つの頂点とする平行四辺形における残りの1つの頂点Q1の位置が獲得されて、この頂点Q1の位置近傍に向けてロボット1は進行する。これにより、ロボット1は、左側の壁と略平行に走向するようになるので、ロボット1と左側の壁との離隔距離は、ほぼ一定に保たれる。これにより、図13に示すように、一方の壁が存在しない場合においても、歩行者に対して確実に障害物を回避可能な進路を提示することができる。
【0252】
また、図14に示したように、右側の壁が存在しない場合であって、左側の壁際に障害物B5が存在するときには、左側の壁や障害物B5の表面に生じた反射点hの中から、ロボット1に最も近い反射点の座標h93が獲得される。
【0253】
そして、このロボット1に最も近い反射点h93と、左側の壁の表面でロボット1の真横付近(真横或いは真横から前側)に生じた反射点h90と、ロボット1の位置とを3つの頂点とする平行四辺形において、残りの1つの頂点Q2の位置が獲得され、この頂点Q2の位置近傍に向けてロボット1は進行する。これにより、ロボット1は、障害物B5を回避する走向を行うようになる。これにより、図14に示したように、一方の壁が存在せず、他方の壁際に障害物が存在するときでも、歩行者に対して確実に障害物を回避可能な進路を提示することができる。
【0254】
なお、本実施形態のロボット1における各種処理を行う手段および方法は、専用のハードウェア回路、またはプログラムされたコンピュータのいずれによっても実現することが可能である。ここで、上記プログラムは、例えばフレキシブルディスクやCD−ROM等のコンピュータ読取可能な情報記録媒体によって提供されてもよい。この場合、コンピュータ読取可能な情報記録媒体に記録されたプログラムは、通常、ハードディスク等の記憶部に転送されて記憶される。また、上記プログラムは、単独のアプリケーションソフトとして提供されてもよいし、装置の一機能としてその装置のソフトウェアに組み込まれてもよい。
【0255】
次に、本発明のロボット1の先導機能を評価するために行った実験について説明する。
図28は、本実験でロボット1が歩行者を先導している状態を示す側面図であり、図29は、本実験が行われた廊下環境を示す平面図である。
【0256】
本実験では、図29に示すように、右側の壁際に障害物B6が存在する廊下内で、本発明のロボット1と、非特許文献1の方式によるロボットとを、障害物B6手前から障害物B6側に向けて進行させた。
【0257】
そして、廊下内に配置した環境計測用LRF50により、ロボットの軌跡と、ロボットを追随する歩行者の足の軌跡とを計測した。
【0258】
環境計測用LRF50としては、本発明のロボット1に搭載されたLRF5(URG-04LX)に比して、スキャン周期が約3分の1であるUBG- 04LX- F01(走査周期28msec,北陽電機製)を用いた。
【0259】
また、図28に示すように、環境計測用LRF50がスキャンを行う高さは床から約35cmとした。これはロボット1に搭載したLRF5と干渉しないだけの十分なオフセットを持ち、かつ、歩行者の足の位置を計測可能とするためである。
【0260】
環境計測用LRF50がロボット1の位置を正確且つ安定して計測するために、ロボット1には、筒状の目印物体8(図28参照)を取り付けた。目印物体8は、環境計測用LRF50によるスキャンが少なくとも2点で行われる長さに設定され、表面には白ケント紙が貼り付けられている。
【0261】
図30は、非特許文献1の方式によるロボットの軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【0262】
図30に示す通り、非特許文献1のロボットは、障害物B6より手前では、廊下の中央付近を目指した走行を行っていることが確認できた。
【0263】
しかしながら、非特許文献1のロボットが、障害物B6近傍の位置に到達した際には、姿勢を大きく変化させて、左側の壁に寄っている。これは、非特許文献1のロボットが、左側の壁に、最近となる反射点を生じさせたレーザ光を特定した後、これと180度反対側に向かったレーザ光の反射点(対向反射点)が、ロボットに設定されたLRFの計測可能な範囲外にあって検出できなかったためと考えられる.このことから、非特許文献1の方式では、ロボットの姿勢が大きく変化した際に、ロボットは、障害物を回避可能な経路を提示することが困難になると思われる。
【0264】
図31は、本発明のロボット1の軌跡、及びこれに追随した歩行者の軌跡を示す平面図である。
【0265】
図31に示す通り、本発明のロボット1は、障害物B6より手前では、廊下の中心を目指した走行を行い、障害物B6に近づいた際には、障害物B6から距離をとって、障害物B6と右側の壁との間の中央付近を走向している。これは、ロボット1が、障害物B6の回避を行なった後に、より前方の反射点を参照した結果、前方の廊下内の通路が障害物B6の存在により狭められていることを認識したためと考えられる。また、ロボット1が走向する全行程において、本発明のロボット1は、非特許文献1のロボットよりも、旋回量が少ないことが確認された。
【0266】
また、図32は、本発明のロボット1の速度の時系列変化を示している。
【0267】
図32に示す通り、本発明のロボット1の速度は、歩行者との離隔距離に応じて、ほぼ線形に変化していたことが確認された。このことから、本発明のロボット1は、歩行者との離隔距離に応じて速度制御を行っていたことが確認できる。
【0268】
図33は、歩行者の左右の足の変位を示しており、曲線Aは、左足の胴体中心に対する相対変位の時系列変化を示し、曲線Bは、右足の胴体中心に対する相対変位の時系列変化を示している。
【0269】
曲線A,Bは、LRF5による観測で得られた左足及び右足の時系列の相対変位のデータを、直線補完によって繋げていくことで描かれたものである。
【0270】
曲線A,Bが、相対変位=0の直線と交差する時間間隔は、歩行周期の半周期を示すものであり、約1秒間と一定となっている。このことから、本発明のロボット1を追随する歩行者には、つまずきや立ち止まりが生じていないことが確認された。
【0271】
また本発明のロボット1については、ロボット1を追い越す歩行者(以下、追い越し者と記す)が存在する条件下で、ロボット1の軌跡と、歩行者の軌跡とを計測する実験を行っている。その結果を、図34に示す。
【0272】
追い越し者がロボット1を追い越した直後では、ロボット1は、回避行動をとっていることが確認された。しかしながら、ロボット1の走行経路には、大きな揺れは無く、ロボット1は安定した走行ができていることが確認された。これにより、本発明のロボット1によれば、ロボット1を追い越す歩行者が存在する状況下でも、安定した先導が行えることが確認された。
【産業上の利用可能性】
【0273】
本発明は、老人介護施設等で歩行者を先導するために使用されるロボットや、ホテルで客室を案内するために使用されるロボットに適用できる。またさらには、歩行者が追いかけることに応じて逃げる動作を行う屋内用おもちゃや、歩行時の体重移動評価装置や、FAシステム用自走式搬送システムに適用できる。
【符号の説明】
【0274】
1 ロボット
3 移動機構
5 LRF
7 システムコントローラ
8 目印物体
31 前輪
32 後輪
33 コンピュータ
34 接地型ロータリエンコーダ
50 環境計測用LRF
B1,B2,C 物体
B3,B4,B5,B6 障害物
D 代表値
h 反射点
K 等高線
Q 頂点
R レーザ光
S 推定位置
T,U 中点
Z 胴体中心位置の座標
【特許請求の範囲】
【請求項1】
歩行者等を先導するロボットであって、
ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、
前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手段と、
前記胴体中心特定手段が特定した座標に基づき、ロボットの速度を制御する速度制御手段とを備えることを特徴とするロボット。
【請求項2】
前記距離データ獲得手段が獲得した距離データに基づき、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出するクラスタ抽出手段と、
前記クラスタ抽出手段が抽出したクラスタのうち、歩行者の両足を示す可能性のある2つのクラスタの組を特定する両足候補特定手段と、
前記両足候補特定手段が特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標を獲得する胴体中心座標獲得手段とをさらに備え、
前記胴体中心特定手段は、前記胴体中心座標獲得手段が獲得した座標の中から、歩行者の胴体中心位置の座標を特定することを特徴とする請求項1に記載のロボット。
【請求項3】
前記クラスタ抽出手段が抽出したクラスタのうち、反射点の数が所定の範囲に含まれるクラスタを、歩行者の足を示す可能性のあるクラスタとして特定する足候補特定手段と、
前記足候補特定手段が特定したクラスタに含まれる反射点の座標を、均等重みで平均化した重心座標を算出する重心座標算出手段とをさらに備え、
前記両足候補特定手段は、前記足候補特定手段が特定したクラスタの中から、歩行者の両足を示す可能性のある2つのクラスタの組を、前記重心座標に基づき特定することを特徴とする請求項2に記載のロボット。
【請求項4】
前記両足候補特定手段は、前記重心座標算出手段が算出した重心座標に基づき、前記足候補特定手段が特定したクラスタの中から、隣り合う一対の物体を示す2つのクラスタの組を特定するとともに、これらクラスタの組のうち、一方のクラスタから得られる重心座標と、他方のクラスタから得られる重心座標との間の離隔距離が、所定の閾値を超えていないと判断されたクラスタの組を、歩行者の両足を示す可能性のある2つのクラスタの組として特定することを特徴とする請求項3に記載のロボット。
【請求項5】
前記両足候補特定手段が特定した組毎に、これらに含まれる2つのクラスタのうち、一方から得られた重心座標と、他方から得られた重心座標との中点の座標を算出する中点座標算出手段と、
過去の処理で歩行者の胴体中心位置を示す座標として特定された前記中点の座標に、線形推定法により推定された歩行者の移動距離を加算することで、現在の胴体中心位置の座標を推定する胴体中心推定手段とをさらに備え、
前記胴体中心特定手段は、前記中点座標算出手段が算出した中点の座標のうち、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を、現在の胴体中心位置の座標として特定することを特徴とする請求項3又は4に記載のロボット。
【請求項6】
前記胴体中心特定手段は、横方向における位置の差が、前後方向における位置の差よりも大きな変動を与えるユークリッド距離による評価で、前記中点座標算出手段が算出した中点の座標の中から、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を特定することを特徴とする請求項5に記載のロボット。
【請求項7】
前記クラスタ抽出手段は、ロボットの周囲に向けて照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出し、
前記距離データの差が閾値を超えていないと判断された組については、この組における2つのレーザ光の反射点を同一のクラスタに登録し、前記距離データの差が閾値を超えたと判断された組については、この組における2つのレーザ光の反射点を異なるクラスタに登録していくことで、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出することを特徴とする請求項2乃至6のいずれか1項に記載のロボット。
【請求項8】
前記速度制御手段は、前記胴体中心特定手段が特定した座標と、ロボットが位置する座標との間の離隔距離を算出し、当該離隔距離が、予め設定された最近先導距離よりも小さい場合、ロボットの速度を予め設定された最高速度に制御し、前記離隔距離が、予め設定された停止判断距離よりも大きい場合、ロボットを停止させ、前記離隔距離が、前記最近先導距離よりも大きく、前記停止判断距離よりも小さい場合には、ロボットの速度を前記停止判断距離と前記離隔距離との差に比例した速度に制御することを特徴とする請求項1乃至7のいずれか1項に記載のロボット。
【請求項9】
歩行者等を先導するロボットであって、
ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、
前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手段と、
前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手段と、
前記左側座標特定手段が特定した反射点の座標と、前記右側座標特定手段が特定した反射点の座標との中点の座標を算出する中点座標算出手段と、
前記中点座標算出手段が算出した中点の座標近傍に、ロボットの位置を制御する進路制御手段とを備えることを特徴とするロボット。
【請求項10】
前記左側座標特定手段又は右側座標特定手段は、ロボットの真横から前記左側又は右側の範囲の前端に至る領域に照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出して、所定の閾値を超えるか否かを判断し、
前記距離データの差が閾値を超える組を検出しなかった場合には、前記左側又は右側の範囲の前端にある反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、
前記距離データの差が閾値を超える組を検出した場合には、前記左側又は右側の範囲の前端までの領域で、前記閾値を超えた組における2つのレーザ光のうち、後寄りのレーザ光の反射点に比して、ロボットに近い反射点が存在するか探索し、
ロボットに近い反射点が探索された場合には、当該反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、
ロボットに近い反射点が探索されなかった場合には、前記後寄りのレーザ光の反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定することを特徴とする請求項9に記載のロボット。
【請求項11】
前記左側又は右側の範囲に照射されたレーザ光の距離データに基づき、前記左側又は右側の範囲に、壁が存在するか否かを判断する壁有無判定手段と、
前記壁有無判定手段によって前記左側又は右側の範囲のいずれか一方に壁が存在しないことが確認された場合、壁の存在が確認された範囲において、ロボットの真横から前側に生じた2つの反射点の座標を特定する座標特定手段と、
前記座標特定手段が特定した2つの反射点の座標と、ロボットの座標とを3つの頂点とする平行四辺形における残りの1つの頂点の座標を算出する頂点算出手段と、
前記頂点算出手段が算出した座標近傍に、ロボットの位置を制御する進路制御手段とをさらに備えることを特徴とする請求項9又は10に記載のロボット。
【請求項12】
前記ロボットの左側又は右側の範囲において、ロボットよりも前側に歩行の妨げとなる障害物が存在する場合には、前記左側座標特定手段及び右側座標特定手段のうち一方は、前記距離データ獲得手段によって獲得された距離データに基づき、前記障害物の表面に生じた反射点の座標を特定し、
前記中点座標算出手段は、前記障害物の表面に生じた反射点の座標と、前記左側座標特定手段及び右側座標特定手段のうち他方が特定した反射点の座標との中点の座標を算出することを特徴とする請求項9乃至11のいずれか1項に記載のロボット。
【請求項13】
歩行者等を先導するロボットの制御プログラムであって、
ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、
前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手順と、
前記胴体中心特定手順で特定された座標に基づき、ロボットの速度を制御する速度制御手順とをロボットに実行させることを特徴とする制御プログラム。
【請求項14】
歩行者等を先導するロボットの制御プログラムであって、
ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、
前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手順と、
前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手順と、
前記左側座標特定手順で特定された反射点の座標と、前記右側座標特定手順で特定された反射点の座標との中点の座標を算出する中点座標算出手順と、
前記中点座標算出手順で算出された中点の座標近傍に、ロボットの位置を制御する進路制御手順とをロボットに実行させることを特徴とする制御プログラム。
【請求項15】
請求項13又は14に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
歩行者等を先導するロボットであって、
ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、
前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手段と、
前記胴体中心特定手段が特定した座標に基づき、ロボットの速度を制御する速度制御手段とを備えることを特徴とするロボット。
【請求項2】
前記距離データ獲得手段が獲得した距離データに基づき、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出するクラスタ抽出手段と、
前記クラスタ抽出手段が抽出したクラスタのうち、歩行者の両足を示す可能性のある2つのクラスタの組を特定する両足候補特定手段と、
前記両足候補特定手段が特定したクラスタの組毎に、歩行者の胴体中心位置を示す可能性のある座標を獲得する胴体中心座標獲得手段とをさらに備え、
前記胴体中心特定手段は、前記胴体中心座標獲得手段が獲得した座標の中から、歩行者の胴体中心位置の座標を特定することを特徴とする請求項1に記載のロボット。
【請求項3】
前記クラスタ抽出手段が抽出したクラスタのうち、反射点の数が所定の範囲に含まれるクラスタを、歩行者の足を示す可能性のあるクラスタとして特定する足候補特定手段と、
前記足候補特定手段が特定したクラスタに含まれる反射点の座標を、均等重みで平均化した重心座標を算出する重心座標算出手段とをさらに備え、
前記両足候補特定手段は、前記足候補特定手段が特定したクラスタの中から、歩行者の両足を示す可能性のある2つのクラスタの組を、前記重心座標に基づき特定することを特徴とする請求項2に記載のロボット。
【請求項4】
前記両足候補特定手段は、前記重心座標算出手段が算出した重心座標に基づき、前記足候補特定手段が特定したクラスタの中から、隣り合う一対の物体を示す2つのクラスタの組を特定するとともに、これらクラスタの組のうち、一方のクラスタから得られる重心座標と、他方のクラスタから得られる重心座標との間の離隔距離が、所定の閾値を超えていないと判断されたクラスタの組を、歩行者の両足を示す可能性のある2つのクラスタの組として特定することを特徴とする請求項3に記載のロボット。
【請求項5】
前記両足候補特定手段が特定した組毎に、これらに含まれる2つのクラスタのうち、一方から得られた重心座標と、他方から得られた重心座標との中点の座標を算出する中点座標算出手段と、
過去の処理で歩行者の胴体中心位置を示す座標として特定された前記中点の座標に、線形推定法により推定された歩行者の移動距離を加算することで、現在の胴体中心位置の座標を推定する胴体中心推定手段とをさらに備え、
前記胴体中心特定手段は、前記中点座標算出手段が算出した中点の座標のうち、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を、現在の胴体中心位置の座標として特定することを特徴とする請求項3又は4に記載のロボット。
【請求項6】
前記胴体中心特定手段は、横方向における位置の差が、前後方向における位置の差よりも大きな変動を与えるユークリッド距離による評価で、前記中点座標算出手段が算出した中点の座標の中から、前記胴体中心推定手段が推定した座標と最も近い位置にある座標を特定することを特徴とする請求項5に記載のロボット。
【請求項7】
前記クラスタ抽出手段は、ロボットの周囲に向けて照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出し、
前記距離データの差が閾値を超えていないと判断された組については、この組における2つのレーザ光の反射点を同一のクラスタに登録し、前記距離データの差が閾値を超えたと判断された組については、この組における2つのレーザ光の反射点を異なるクラスタに登録していくことで、ロボットの周囲に存在する物体の各々の表面に生じた反射点のクラスタを抽出することを特徴とする請求項2乃至6のいずれか1項に記載のロボット。
【請求項8】
前記速度制御手段は、前記胴体中心特定手段が特定した座標と、ロボットが位置する座標との間の離隔距離を算出し、当該離隔距離が、予め設定された最近先導距離よりも小さい場合、ロボットの速度を予め設定された最高速度に制御し、前記離隔距離が、予め設定された停止判断距離よりも大きい場合、ロボットを停止させ、前記離隔距離が、前記最近先導距離よりも大きく、前記停止判断距離よりも小さい場合には、ロボットの速度を前記停止判断距離と前記離隔距離との差に比例した速度に制御することを特徴とする請求項1乃至7のいずれか1項に記載のロボット。
【請求項9】
歩行者等を先導するロボットであって、
ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手段と、
前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手段と、
前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手段と、
前記左側座標特定手段が特定した反射点の座標と、前記右側座標特定手段が特定した反射点の座標との中点の座標を算出する中点座標算出手段と、
前記中点座標算出手段が算出した中点の座標近傍に、ロボットの位置を制御する進路制御手段とを備えることを特徴とするロボット。
【請求項10】
前記左側座標特定手段又は右側座標特定手段は、ロボットの真横から前記左側又は右側の範囲の前端に至る領域に照射されたレーザ光のうち、隣り合う位置を進行した2つのレーザ光の組における距離データの差を順次算出して、所定の閾値を超えるか否かを判断し、
前記距離データの差が閾値を超える組を検出しなかった場合には、前記左側又は右側の範囲の前端にある反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、
前記距離データの差が閾値を超える組を検出した場合には、前記左側又は右側の範囲の前端までの領域で、前記閾値を超えた組における2つのレーザ光のうち、後寄りのレーザ光の反射点に比して、ロボットに近い反射点が存在するか探索し、
ロボットに近い反射点が探索された場合には、当該反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定し、
ロボットに近い反射点が探索されなかった場合には、前記後寄りのレーザ光の反射点の座標を、前記中点座標算出手段が中点の座標を算出するために用いる反射点の座標として特定することを特徴とする請求項9に記載のロボット。
【請求項11】
前記左側又は右側の範囲に照射されたレーザ光の距離データに基づき、前記左側又は右側の範囲に、壁が存在するか否かを判断する壁有無判定手段と、
前記壁有無判定手段によって前記左側又は右側の範囲のいずれか一方に壁が存在しないことが確認された場合、壁の存在が確認された範囲において、ロボットの真横から前側に生じた2つの反射点の座標を特定する座標特定手段と、
前記座標特定手段が特定した2つの反射点の座標と、ロボットの座標とを3つの頂点とする平行四辺形における残りの1つの頂点の座標を算出する頂点算出手段と、
前記頂点算出手段が算出した座標近傍に、ロボットの位置を制御する進路制御手段とをさらに備えることを特徴とする請求項9又は10に記載のロボット。
【請求項12】
前記ロボットの左側又は右側の範囲において、ロボットよりも前側に歩行の妨げとなる障害物が存在する場合には、前記左側座標特定手段及び右側座標特定手段のうち一方は、前記距離データ獲得手段によって獲得された距離データに基づき、前記障害物の表面に生じた反射点の座標を特定し、
前記中点座標算出手段は、前記障害物の表面に生じた反射点の座標と、前記左側座標特定手段及び右側座標特定手段のうち他方が特定した反射点の座標との中点の座標を算出することを特徴とする請求項9乃至11のいずれか1項に記載のロボット。
【請求項13】
歩行者等を先導するロボットの制御プログラムであって、
ロボットの周囲に向けて放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、
前記距離データから獲得された歩行者の位置に関する情報に基づき、歩行者の胴体中心位置の座標を特定する胴体中心特定手順と、
前記胴体中心特定手順で特定された座標に基づき、ロボットの速度を制御する速度制御手順とをロボットに実行させることを特徴とする制御プログラム。
【請求項14】
歩行者等を先導するロボットの制御プログラムであって、
ロボットの左側及び右側の範囲に向けて所定角度ピッチで放射線状にレーザ光を照射して、各レーザ光毎にロボットから反射点までの距離データを獲得する距離データ獲得手順と、
前記左側の範囲に照射されたレーザ光の距離データに基づき、前記左側の範囲においてロボットよりも前側に生じた反射点の座標を特定する左側座標特定手順と、
前記右側の範囲に照射されたレーザ光の距離データに基づき、前記右側の範囲においてロボットよりも前側に生じた反射点の座標を特定する右側座標特定手順と、
前記左側座標特定手順で特定された反射点の座標と、前記右側座標特定手順で特定された反射点の座標との中点の座標を算出する中点座標算出手順と、
前記中点座標算出手順で算出された中点の座標近傍に、ロボットの位置を制御する進路制御手順とをロボットに実行させることを特徴とする制御プログラム。
【請求項15】
請求項13又は14に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図3】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図37】
【図3】
【公開番号】特開2011−59905(P2011−59905A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−207580(P2009−207580)
【出願日】平成21年9月8日(2009.9.8)
【出願人】(504136568)国立大学法人広島大学 (924)
【Fターム(参考)】
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願日】平成21年9月8日(2009.9.8)
【出願人】(504136568)国立大学法人広島大学 (924)
【Fターム(参考)】
[ Back to top ]