説明

経路探索システム、経路探索方法、経路探索プログラム、及び移動体

【課題】人間の通行が妨げられるのを防ぐことができる経路探索システム、経路探索方法、経路探索プログラム、及び移動体を提供すること。
【解決手段】本発明にかかる経路探索システムは、移動領域内に存在する移動始点より移動を開始し、移動領域内に存在する移動終点に到達する移動体の移動経路を探索するロボットであって、移動領域の情報に基づいて、基準経路を探索する最適経路探索部112と、基準経路の進行方向に基づいて、シフト方向を決定するシフト方向決定部113と、基準経路をシフト方向にシフトして、移動経路を決定する移動経路決定部115と、を備えるものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、経路探索システム、経路探索方法、経路探索プログラム、及び移動体に関する。
【背景技術】
【0002】
近年、移動体を制御する方法の開発が行われている(特許文献1〜5)。特許文献1の制御方法では、環境中の壁を認識して、壁から一定距離離れた位置を移動経路としている。従って、広い空間を移動する場合、遠回りしてしまう。よって、移動距離が長くなってしまい、移動時間が長くなってしまうという問題点がある。
【0003】
また、特許文献2の制御方法では、道路上の白線を認識して、その白線内を移動体が自律移動するように制御している。そのため、環境中に白線を設ける必要が生じてしまう。
【0004】
特許文献3では、追従目標物体を追従する移動ロボットにおいて、追従目標物体の移動経路に対して平行かつ一定量ずらした追従経路を設定している。特許文献4では、連続していない壁を検知して、移動経路から壁に対して下ろした垂線の長さを計測し、所定距離だけ離れた位置を通過している。特許文献5では、衝突回避目標を山、到達目標を谷とみなし、降下方向に移動する方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平4−310108号公報
【特許文献2】特開平5−297939号公報
【特許文献3】特開2006−146491号公報
【特許文献4】特開2006−293975号公報
【特許文献5】特開平5−297939号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
また、自律的に移動する自律移動体が利用されている。このような自律移動体は、移動始点から移動終点までの最短経路を探索する。そして、自律移動体がその最短経路に沿って移動している。このような自律移動体を人間と共存させることも可能である。
【0007】
自律移動体を人間環境で動作させる場合、人間と衝突しないことが重要である。しかしながら、特許文献1〜5については、人間が存在する移動環境における使用については、考慮されていない。移動始点から移動終点までの最短経路を探索する経路探索方法では、人間に動作について何ら考慮されていない。したがって、人間が移動する移動領域では、移動体が人間の通行を妨げてしまうことがある。
【0008】
本発明は、上記の問題点に鑑みてなされたものであり、人間の通行が妨げられるのを防ぐことができる経路探索システム、経路探索方法、経路探索プログラム、及び移動体を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の第1の態様にかかる経路探索システムは、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索システムであって、移動領域の情報に基づいて、基準経路を探索する経路探索手段と、前記基準経路の進行方向に基づいて、シフト方向を決定するシフト方向決定手段と、前記基準経路を前記シフト方向にシフトして、移動経路を決定する移動経路決定手段と、を備えたものである。これによって、人の歩行ルールを移動経路に反映させることが可能となり、人間の通行を妨げないことが可能になる。
【0010】
本発明の第2の態様にかかる経路探索システムは、上記の経路探索システムであって、前記シフト量が前記基準経路上の位置に応じて変化することを特徴とするものである。移動領域に応じた移動経路を探索することができる。
【0011】
本発明の第3の態様にかかる経路探索システムは、上記の経路探索システムであって、前記移動経路から前記移動領域に含まれる障害までの距離に応じて、前記シフト量を変化させるシフト量設定手段を、さらに備えたものである。これにより、移動領域に応じた移動経路を探索することができる。
【0012】
本発明の第4の態様にかかる経路探索システムは、上記の経路探索システムであって、前記移動経路から前記障害までの距離がしきい値よりも小さい場合に、前記シフト量を他の箇所よりも小さくすることを特徴とするものである。これにより、壁などの障害と衝突するのを避けることができる。
【0013】
本発明の第5の態様にかかる経路探索システムは、上記の経路探索システムであって、前記移動経路から前記障害までの距離がしきい値よりも大きい場合に、前記シフト距離を他の箇所よりも小さくすることを特徴とするものである。これにより、移動領域に応じた移動経路を探索することができ、移動時間を短縮することができる。
【0014】
本発明の第6の態様にかかる経路探索システムは、上記の経路探索システムであって、前記移動始点と前記移動終点では前記シフト量を0として、前記移動始点の近傍において前記移動始点から離れるにしたがってシフト量が増加する領域、及び前記移動終点の近傍において前記移動終点から離れるにしたがってシフト量が増加する領域と、が設けられていることを特徴とするものである。これにより、移動始点近傍及び移動終点の近傍において、滑らかな移動経路を探索することができる。
【0015】
本発明の第7の態様にかかる経路探索システムは、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索システムであって、移動領域を移動する動的障害物に基づいてベクトル場を生成するベクトル場生成手段と、前記ベクトル場に基づくコストを付与して、移動経路を探索する経路探索手段と、を備えるものである。これにより、動的な障害物を意図した方向から避けることができる。
【0016】
本発明の第8の態様にかかる移動体は、上記の経路探索システムを有するものである
これにより、人間の通行を妨げるのを防ぐことができる。
【0017】
本発明の第9の態様にかかる経路探索方法は、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索方法であって、移動領域の情報に基づいて、基準経路を探索する経路探索ステップと、前記基準経路の進行方向に基づいて、シフト方向を決定するシフト方向決定ステップと、前記基準経路を前記シフト方向にシフトして、移動経路を決定する移動経路決定ステップと、を備えたものである。これにより、人間の通行を妨げるのを防ぐことができる。
【0018】
本発明の第10の態様にかかる経路探索方法は、上記の経路探索方法であって、前記シフト量が前記基準経路上の位置に応じて変化することを特徴とするものである。これにより、移動領域に応じた移動経路を探索することができる。
【0019】
本発明の第11の態様にかかる経路探索方法は、上記の経路探索方法であって、前記移動経路から前記移動領域に含まれる障害までの距離に応じて、前記シフト量を変化させるシフト量設定ステップを、さらに備えたものである。これにより、移動領域に応じた移動経路を探索することができる。
【0020】
本発明の第12の態様にかかる経路探索方法は、上記の経路探索方法であって、前記移動経路から前記障害までの距離がしきい値よりも小さい場合に、前記シフト量を他の箇所よりも小さくすることを特徴とするものである。これにより、壁などの障害と衝突するのを避けることができる。
【0021】
本発明の第13の態様にかかる経路探索方法は、上記の経路探索方法であって、前記移動経路から前記障害までの距離がしきい値よりも大きい場合に、前記シフト距離を他の箇所よりも小さくすることを特徴とするものである。これにより、移動領域に応じた移動経路を探索することができ、移動時間を短縮することができる。
【0022】
本発明の第14の態様にかかる経路探索方法は、上記の経路探索方法であって、前記移動始点と前記移動終点では前記シフト量を0として、前記移動始点の近傍において前記移動始点から離れるにしたがってシフト量が増加する領域、及び前記移動終点の近傍において前記移動終点から離れるにしたがってシフト量が増加する領域と、が設けられていることを特徴とするものである。これにより、移動始点近傍及び移動終点の近傍において、滑らかな移動経路を探索することができる。
【0023】
本発明の第15の態様にかかる経路探索方法は、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索方法であって、移動領域を移動する動的障害物に基づいてベクトル場を生成するベクトル場生成ステップと、前記ベクトル場に基づくコストを付与して、移動経路を探索する経路探索ステップと、を備えるものである。これにより、動的な障害物を意図した方向から避けることができる。
【0024】
本発明の第16の態様にかかる経路探索プログラムは、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索プログラムであって、コンピュータに対して、移動領域の情報に基づいて、基準経路を探索させる経路探索ステップと、前記基準経路の進行方向に基づいて、シフト方向を決定させるシフト方向決定ステップと、前記基準経路を前記シフト方向にシフトして、移動経路を決定させる移動経路決定ステップと、を備えたものである。
【0025】
本発明の第17の態様にかかる経路探索プログラムは、上記の経路探索プログラムであって、前記シフト量が前記基準経路上の位置に応じて変化することを特徴とするものである。これにより、移動領域に応じた移動経路を探索することができる。
【0026】
本発明の第18の態様にかかる経路探索プログラムは、上記の経路探索プログラムであって、前記移動経路から前記移動領域に含まれる障害までの距離に応じて、前記シフト量を変化させるシフト量設定ステップを、さらに備えたものである。これにより、移動領域に応じた移動経路を探索することができる。
【0027】
本発明の第19の態様にかかる経路探索プログラムは、上記の経路探索プログラムであって、前記移動経路から前記障害までの距離がしきい値よりも小さい場合に、前記シフト量を他の箇所よりも小さくすることを特徴とするものである。これにより、移動領域に応じた移動経路を探索することができる。これにより、壁などの障害と衝突するのを避けることができる。
【0028】
本発明の第20の態様にかかる経路探索プログラムは、上記の経路探索プログラムであって、前記移動経路から前記障害までの距離がしきい値よりも大きい場合に、前記シフト距離を他の箇所よりも小さくすることを特徴とするものである。これにより、移動領域に応じた移動経路を探索することができ、移動時間を短縮することができる。
【0029】
本発明の第21の態様にかかる経路探索プログラムは、上記の経路探索プログラムであって、前記移動始点と前記移動終点では前記シフト量を0として、前記移動始点の近傍において前記移動始点から離れるにしたがってシフト量が増加する領域、及び前記移動終点の近傍において前記移動終点から離れるにしたがってシフト量が増加する領域と、が設けられていることを特徴とするものである。これにより、移動始点近傍及び移動終点の近傍において、滑らかな移動経路を探索することができる。
【0030】
本発明の第22の態様にかかる経路探索プログラムは、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索プログラムであって、コンピュータに対して、移動領域を移動する動的障害物に基づいてベクトル場を生成させるベクトル場生成ステップと、前記ベクトル場に基づくコストを付与して、移動経路を探索させる経路探索ステップと、備えるものである。これにより、動的な障害物を避けることができる。
【発明の効果】
【0031】
本発明によれば、人間の通行が妨げられるのを防ぐことができる経路探索システム、経路探索方法、経路探索プログラム、及び移動体を提供することができる。
【図面の簡単な説明】
【0032】
【図1】本発明にかかる移動体の構成を示す図である。
【図2】本発明にかかる移動体の制御部の構成を示すブロック図である。
【図3】本発明の実施の形態1にかかる経路生成システムで生成された経路を示す図である。
【図4】本発明にかかる移動体が移動領域中を移動する様子を模式的に示す図である。
【図5】本発明の実施の形態1にかかる経路生成方法を示すフローチャートである。
【図6】本発明の実施の形態2にかかる経路生成システムで生成された経路を示す図である。
【図7】本発明の実施の形態2にかかる経路生成方法を示すフローチャートである。
【図8】本発明の実施の形態3にかかる経路生成システムで生成された経路を示す図である。
【図9】本発明の実施の形態3にかかる経路生成方法を示すフローチャートである。
【図10】シフト量と壁からの距離の関係を示すグラフである。
【図11】本発明の実施の形態4にかかる経路生成システムで生成された経路を示す図である。
【図12】本発明の実施の形態4にかかる経路生成方法を示すフローチャートである。
【図13】シフト量と経路長の関係を示すグラフである。
【図14】本発明にかかる移動体の制御部の構成を示すブロック図である。
【図15】本発明の実施の形態5にかかる経路生成システムで生成された経路を示す図である。
【図16】本発明の実施の形態5にかかる経路生成方法を示すフローチャートである。
【図17】実施の形態1、2、及び4を組み合わせた経路生成方法を示すフローチャートである。
【図18】実施の形態1、2、及び4を組み合わせて生成した移動経路を示す図である。
【発明を実施するための形態】
【0033】
以下、本発明に係る移動体の実施形態を、図面に基づいて詳細に説明する。但し、本発明が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【0034】
発明の実施の形態1.
まず、本発明に係る移動体の一例であるロボットの構成について、図1を用いて説明する。図1はロボット100の構成を模式的に示す外観図である。本実施の形態では、ロボット100が、自律移動する移動ロボットとして説明する。ロボット100は、車輪2と、筐体3と、センサ5と、を備えている。そして、筐体3の内部には、車輪2と接続されたモータ、及びモータを駆動するためのバッテリなどが設けられている。このモータがロボット100を駆動するための駆動機構となる。モータを駆動することによって、車輪2が回転して、ロボット100が移動する。ロボット100は、例えば、人間の歩行速度と同程度の速度で移動する。さらに、頭部1には、CCDカメラやレーザセンサなどを有するセンサ5が設けられている。センサ5はロボット100に周囲に存在する障害物や人間などを検知する。
【0035】
ロボット100には、制御部110が設けられている。制御部110は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、通信用のインタフェイスなどを有する演算処理装置である。また、制御部110は、着脱可能なHDD、光ディスク、光磁気ディスク等を有し、各種プログラムや制御パラメータなどを記憶し、そのプログラムやデータを必要に応じてメモリ(不図示)等に供給する。もちろん、制御部110は、物理的に一つの構成に限られるものではない。制御部110は、ロボット100が移動する移動経路を生成する。そして、その移動経路に沿ってロボット100が移動するよう、車輪2を駆動するためのモータ等を制御する。もちろん、ロボット100は車輪型の移動ロボットに限らず、歩行型やその他の移動ロボットでもよい。ロボット100は自己位置推定を行なって移動する移動体であってもよい。
【0036】
制御部110は、移動環境中にある移動始点から移動終点までの移動経路を決定する。ロボット100は、移動始点から移動を開始する。そして、移動経路に沿って移動していき、移動終点まで移動したら停止する。すなわち、制御部110は、移動始点から移動終点までの移動経路を探索する経路探索システムとして機能する。
【0037】
次に、ロボット100の制御系について図2を用いて説明する。図2は、ロボット100の制御部110を示すブロック図である。制御部110は、ロボット100が移動する経路を決定するための演算処理を実行する。図2に示すように、制御部110は、地図情報記憶部111と最適経路探索部112とシフト方向決定部113とシフト量設定部114と移動経路決定部115とを備えている。
【0038】
地図情報記憶部111は、ロボット100が移動する移動領域中の地図情報を記憶している。例えば、移動する環境中に存在する壁、机などの障害物の座標を記憶している。また、地図情報記憶部111は、例えば、移動環境における壁からの距離を距離ポテンシャルとして保存している。
【0039】
最適経路探索部112は、入力された移動始点から移動終点まで最短経路を探索する。例えば、最適経路探索部112は、地図情報記憶部111に記憶されている地図情報を参照して、移動始点から移動終点までの最短経路を探索する。この最短経路は、例えば、移動する対象が通過する通過点の集合として、得られる。すなわち、複数の通過点の集合を結んだ曲線が最短経路となる。この最短経路が移動経路を求めるための基準経路となる。
【0040】
以下に示すように制御部110は、最短経路に基づいて移動経路を生成する。例えば、最適経路探索部112は、地図情報に格納されている距離ポテンシャルに基づいて、最短経路を生成する。最短経路は、ロボット100が通過する空間における壁の中間を通るように生成される。すなわち、壁からの距離をコストとして、最短経路が探索される。もちろん、基準となる基準経路は最短経路に限らず、移動始点から移動終点までのコストが最適になる最適経路であればよい。
【0041】
シフト方向決定部113は、最適経路探索部112で探索された最短経路をシフトする方向を決定する。例えば、シフト方向決定部113は、最短経路を構成する通過点の集合を滑らか化して、最短経路に沿った曲線を求める。シフト方向決定部113は、この曲線の法線方向をシフト方向とする。したがって、シフト方向は各位置に応じて変化する。ここでは、右側の法線方向がシフト方向となる。すなわち、右方向をシフト方向とする。なお、右方向とは、ロボット100が移動方向を向いている状態において、ロボット100を基準とした場合の右方向である。シフト方向は、移動環境50中の水平面内における方向である。このように、シフト方向決定部113は、最短経路の進行方向に基づいて、シフト方向を決定する。
【0042】
シフト量設定部114には、最短経路をシフトするシフト量が設定されている。本実施の形態では、このシフト量を一定値としている。すなわち、シフト量が所定の値で固定されている。
【0043】
移動経路決定部115は、最短経路、シフト方向、及びシフト量に基づいて、移動経路を決定する。具体的には、最短経路をシフト方向に、シフト量だけずらした経路を移動経路として決定する。ここで、シフト方向は最短経路の曲線に対して垂直右方向になっている。従って、移動経路は、最短経路からシフト量だけ右方向にずれている。換言すると、移動経路は、最短経路を右方向に平行移動した曲線になっている。
【0044】
次に、最短経路と移動経路との関係について、図3を用いて説明する、図3は、移動環境50を模式的に示す上面図である。すなわち、図3には、ロボット100が移動する移動環境50が模式的に示されている。
【0045】
図3では、ロボット100が下から上に移動していき、左側に曲がるように移動している。最短経路52は、移動環境50中において、左右両側の壁のほぼ中間に存在している。ここで、シフト方向は、ロボット100の向きを基準とした右方向となっている。従って、最短経路の各点において、最短経路を右方向にシフト量だけずらした点の集合が移動経路51を構成する。
【0046】
このように、最短経路52をずらして、移動経路を決定している。よって、人間がいる移動環境であっても、ロボット100が人間の歩行を妨げるのを防ぐことができる。例えば、図4に示すように、人間53が右側通行するというルールがある移動環境において、上記の移動経路にしたがってロボット100が移動する。この場合、ロボット100が右側通行することで、人間の流れが妨げられるのを防ぐことができる。すなわち、ロボット100も人と同じように右側通行に移動環境中を移動する。従って、人間53と共存する環境内でタスクを実行することができる。
【0047】
なお、シフト方向は右方向に限られるものではない。例えば、人間が左側通行するような移動環境50では、シフト方向を左方向としてもよい。このように、ロボット100の向きを基準として、左右いずれの方向をシフト方向としてもよい。本実施の形態にかかるロボット100は、車椅子型の倒立二輪車に応用可能である。もちろん、歩行型のロボット100に応用することも可能である。
【0048】
このように制御部110は移動始点から移動終点までの経路探索システムとして機能する。もちろん、経路探索システムの全ての構成がロボット100に内蔵されていなくてもよい。例えば、地図情報記憶部111は外部の記憶装置に存在していてもよい。すなわち、一部の構成がロボット100の外部に設けられていてもよい。
【0049】
本実施の形態にかかる制御部110における経路探索方法について、図5を用いて説明する。図5は、経路探索方法を示すフローチャートである。まず、処理開始すると地図情報記憶部111の地図情報を参照して、最適経路探索部112が最短経路を探索する。そして、シフト方向決定部113が最短経路に含まれる通過点を滑らか化する(ステップS101)。これにより、基準経路に対応する曲線が生成される。その後、シフト方向決定部113が通過点の法線方向を算出する(ステップS102)。これにより、シフト方向が決定される。
【0050】
そして、法線方向に指定距離(シフト量)だけシフトする(ステップS103)。そして、移動始点から移動終点までの全ての経路点をシフトしたか否かを判定する(ステップS104)。全経路点をシフトするまで、上記ステップS101〜S103の処理を繰り返す(ステップS104のNo)。全ての経路点をシフトしたら、経路探索を終了する。これにより、最短経路から右側にシフトした移動経路を生成することができる。最短経路を補正して移動経路とすることで、人間の移動の流れを妨げるのを防ぐことができる。さらに、衝突を防ぐことができるため、より安全性を向上することができる。
【0051】
このように、本実施の形態にかかる経路探索システムは、移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索システムであって、移動領域の情報に基づいて、最短経路を探索する経路探索部112と、最短経路の進行方向に基づいて、シフト方向を決定するシフト方向決定部113と、最短経路をシフト方向にシフトして、移動経路を決定する移動経路決定部115と、を備えている。これにより、人間の通行を妨げるのを防ぐことができる
【0052】
実施の形態2.
本実施の形態では、シフト量を状況に応じて変化させている。すなわち、実施の形態1でシフト量が一定であったが、本実施の形態では、シフト量が移動経路上の位置に応じて変化させている。これにより、移動領域に応じた移動経路を探索することができる。なお、ロボット100及び制御部110の基本的な構成は、実施の形態1で示した構成と同様であるため、説明を省略する。
【0053】
本実施の形態では、移動環境中における壁との衝突を考慮して移動経路を生成している。本実施の形態にかかる移動経路生成について図6を用いて説明する。図6は移動環境60を示す上面図である。図6に示すように、移動経路の幅が途中で狭くなっている箇所が存在するとする。すなわち、移動環境50中において、右側の壁がくの字に屈曲している。この場合、屈曲位置で右側の壁が左側の壁に近づいている。
【0054】
このような移動環境では、固定されたシフト量だけシフトするとロボット100が壁と衝突してしまうおそれがある。そこで、本実施の形態では、シフト量を変化させている。すなわち、壁との距離が近づく箇所では、シフト量を小さくしている。具体的には、右側壁面の屈曲点近傍において、シフト量が最小となり、屈曲点から離れるにしたがってシフト量が大きくなっている。そして、ある一定以上屈曲点から離れたらシフト量が一定となる。すなわち、壁面からの距離が一定以上ある場合、シフト量は指定値で一定となる。
【0055】
このような処理を行うため、本実施の形態では、距離ポテンシャルを持つ地図情報を用いている。距離ポテンシャルは、自己位置推定や最短経路探索に利用されている。これにより、高速に通過点と壁との相対距離を高速に算出することができる。予め自己位置推定や最短距離探索に利用される距離ポテンシャルを用いることで、簡便にシフト量を変化させることができる。すなわち、シフト量を変化させるためのデータを新たに追加する必要がなく、簡便にシフト量を変化させることができる。また、図2で示したシフト量設定部114がシフト量を変化させるための演算を実行している。
【0056】
次に、シフト量を変化させる演算処理について、図7を用いて説明する。図7は、シフト量を変化させる処理を示すフローチャートである。まず、実施の形態1で示したステップS101〜S103と同様に、通過点の滑らか化(ステップS201)、通過点の法線方向(シフト方向)の算出(ステップS202)、法線方向に指定距離(シフト量)だけシフト(ステップS203)を実行する。これらのステップS201〜S203は、実施の形態1と同様の処理であるため詳細な説明は省略する。
【0057】
次に、シフトした位置が壁と衝突するか否かを判定する(ステップS204)。ここでは、壁までの距離に応じた距離ポテンシャルを用いて、シフトした位置と壁が衝突していないか否かを判定する。シフトした位置が壁と衝突している場合、シフト量を少なくして、壁との衝突を避ける(ステップS205)。すなわち、シフトした位置が壁と衝突しないようにする。
【0058】
そして、移動始点から移動終点までの全ての経路点をシフトしたか否かを判定する(ステップS206)。全経路点を計算(シフト)するまで、上記ステップS201〜S205の処理を繰り返す(ステップS206のNo)。全ての経路点をシフトしたら、経路探索を終了する。これにより、最短経路から右側にシフトした移動経路を生成することができる。このように、最短経路を補正して移動経路とすることで、人間の通行を妨げるのを防ぐことができる。また、ロボット100が壁と衝突するのを防ぐことができるため、安全な移動が可能になる。もちろん、壁以外の障害物との距離を考慮して、シフト量を変更してもよい。本実施の形態では、シフト量が最短経路上の位置に応じて変化している。これにより、適切な移動経路を生成することができる。
【0059】
このように、本実施の形態では、シフト量が最短経路上の位置に応じて変化している。シフト量設定部114は、移動経路から移動領域に含まれる障害までの距離に応じて、シフト量を変化させている。シフト量設定部114は、移動経路から障害までの距離がしきい値よりも小さい場合に、シフト量を他の箇所よりも小さくしている。これにより、障害と衝突するのを防ぐことができる。なお、障害と衝突するか否かのしきい値は、ロボット100の外形に応じて設定すればよい。
【0060】
実施の形態3.
本実施の形態では、シフト量を状況に応じて変化させている。すなわち、実施の形態1でシフト量が一定であったが、本実施の形態では、シフト量が移動経路上の位置に応じて変化させている。なお、ロボット100及び制御部110の基本的な構成は、実施の形態1で示した構成と同様であるため、説明を省略する。
【0061】
本実施の形態では、移動経路中に広い空間があった場合、その位置でのシフト量を小さくしている。このシフト量を変化させる移動経路生成について、図8を用いて説明する。図8は移動環境50を示す上面図である。図8に示すように、移動経路の幅が途中で広くなっている箇所が存在する。すなわち、移動環境50中の途中において、両側の壁の間隔が広くなっており、広い空間が存在している。ロボット100は、広い空間、すなわち壁からの距離が離れている空間を通過することになる。
【0062】
本実施形態では、この広い空間においてシフト量を小さくする。具体的には、両側の壁が離れて広くなっている空間において、シフト量を0にしている。例えば、壁からの距離がしきい値よりも大きい場合、シフト量を0にする。広い空間において、その中心から離れるにしたがって、シフト量が徐々に大きくなっている。すなわち、広い空間の中心では壁までの距離が最も大きくなっており、その中心から離れるにしたがって壁までの距離が小さくなっている。したがって、ロボット100の移動にともなって、シフト量が減少して、0になり、その後シフト量が増加する。そして、広い空間の外側(狭い空間)では、ほぼシフト量が一定になる。
【0063】
広い空間では、右側通行をしなくても、人間とロボット100が十分すれ違うことができる。すなわち、人間とロボット100が通過する空間が十分広くなっているため、すれ違う空間に余裕がある。これにより、シフト量を0にしても、人間の通行を妨げるのを防ぐことができる。また、ロボット100は最短経路に近い経路を通過することができるため、移動時間を短縮することができる。また、図2で示した、シフト量設定部114がシフト量を変化させるための演算を実行している。
【0064】
次に、シフト量を変化させる処理について、図9を用いて説明する。図9は、シフト量を変化させる処理を示すフローチャートである。まず、実施の形態1で示したステップS101〜S102と同様に、通過点の滑らか化(ステップS301)、通過点の法線方向の算出(ステップS302)を実行する。これらのステップS301〜S302は、実施の形態1と同様の処理であるため詳細な説明は省略する。
【0065】
次に、経路点と壁との距離に応じてシフト量を決定する(ステップS303)。このシフト量の決定は、例えば、図2のシフト量設定部114が実行する。そして、ステップS303で算出した距離(シフト量)だけ法線方向にシフトする(ステップS304)。そして、移動始点から移動終点までの全ての経路点をシフトしたか否かを判定する(ステップS305)。全経路点をシフトするまで、上記ステップS201〜S205の処理を繰り返す(ステップS306のNo)。全ての経路点をシフトしたら、経路探索を終了する。これにより、最短経路から右側にシフトした移動経路を生成することができる。また、最短経路に近い経路を移動経路としているため、移動時間を短縮することができる。
【0066】
次に、実施の形態2と実施の形態3の両方を用いたシフト量の調整について、図10を用いて説明する。実施の形態2で示したように、壁と衝突する箇所でシフト量を小さくする制御と、実施の形態3で示したように、両側の壁が離れて広くなっている空間でシフト量を小さくする制御を同時に行っている。以下の説明では、壁からの距離に応じて、A〜Eの区間に分けて説明を行っている。
【0067】
図10に示すAの区間では、壁からの距離が小さいため、右側シフト量は0となっている。これにより、実施の形態2で示したように、壁との衝突を防ぐことができる。すなわち、シフト量が大きくなってロボット100が壁と衝突するのを防ぐことができる。そして、Bの区間では、壁からの距離に応じて、右側シフト量が増加している。ここでは、壁からの距離とシフト量が比例している。壁に接近するまでシフトすることができる。次に、壁からの距離がある程度大きくなったら、Cの区間に示すようにシフト量を一定にする。これにより、指定されたシフト量だけ右側にシフトした移動経路が生成される。なお、Bの区間ではシフト量が0からCの区間で与えられる指定シフト量までリニアに増加している。
【0068】
さらに、壁からの距離が大きくなったら、空間が広くなっていると判定して、Dの区間に示すようにシフト量を小さくしていく。すなわち、壁からの距離が大きくなるにつれて、シフト量が小さくなる。ここでは、壁からの距離とシフト量が比例している。なお、Dの区間ではシフト量がCの区間で与えられる指定シフト量から0まで減少している。さらに、壁からの距離が大きくなると、十分に広い空間になっていると判定して、Eの区間に示すように、シフト量を0とする。このようにすることで、壁と衝突するのを防ぐことができるとともに、移動時間を短縮することができる。また、右側通行するため、人間の流れを妨げるのを防ぐことができる。よって、より利便性を向上することができる。本実施の形態では、シフト量が最短経路上の位置に応じて変化している。これにより、適切な移動経路を生成することができる。
【0069】
本実施の形態では、シフト量が最短経路上の位置に応じて変化している。シフト量設定部114は、移動経路から移動領域に含まれる障害までの距離に応じて、シフト量を変化させている。具体的には、移動経路から障害までの距離がしきい値よりも大きい場合に、シフト距離を他の箇所よりも小さくしている。このしきい値は、ロボット100の外形に応じて設定すればよい。通路ではない空間(幅が十分に広い空間)を移動する場合、人間とロボット100がすれ違うスペースが十分ある。このため、ロボット100が右側通行する必要がなくなる。よって、移動距離を短くすることができ、移動時間を短縮することができる。
【0070】
実施の形態4.
本実施の形態では、移動始点と移動終点を連続的に接続するように経路生成を行っている。すなわち、移動始点の近傍では、移動始点から離れるにしたがって徐々にシフト量が大きくなるように、シフト量を調整する。また、移動終点の近傍では、移動終点に近づくにしたがって、徐々にシフト量が小さくなるようにシフト量を調整する。このシフト量の調整は、シフト量設定部114が実行する。
【0071】
これにより、図11に示すように、移動始点から移動終点までの移動経路51が連続的に接続する。すなわち、移動始点近傍では、シフト量が徐々に増加していき、移動終点近傍ではシフト量が徐々に減少していく。移動始点近傍から移動終点近傍までの区間ではシフト量が一定になっている。よって、ロボット100が急な旋回やターンなどをするのを防ぐことができる。これにより、ロボット100が滑らかに移動することができる。
【0072】
次に、上記の移動経路の生成方法について、図12を用いて説明する。図12は、本実施の形態にかかる経路生成方法を示すフローチャートである。まず、実施の形態1で示したステップS101〜S102と同様に、通過点の滑らか化(ステップS401)、通過点の法線方向の算出(ステップS402)を実行する。これらのステップS401〜S402は、実施の形態1と同様の処理であるため詳細な説明は省略する。
【0073】
そして、経路点と始点・終点の距離に応じてシフト量を決定する(ステップS403)。すなわち、移動始点までの距離が小さい経路点ではシフト量を小さくする。また、移動終点までの距離が小さい経路点ではシフト量を小さくする。
【0074】
例えば、図13に示すように、移動始点ではシフト量が0となっている。そして、移動始点近傍のGの領域では、シフト量が徐々に増加していく。なお、Gの領域では、経路長に対してシフト量がリニアに増加している。そして、経路点がある一定距離以上移動始点から離れると、Hの領域に示されるように、シフト量が一定となる。さらに、ロボット100が進み、移動終点近傍になると、Iの領域に示すように、シフト量が徐々に減少していく。Iの領域では、経路長に対してシフト量がリニアに減少している。そして、移動終点では、シフト量を0とする。
【0075】
Gの領域とIの領域の中間ではシフト量が一定になっている。また、移動始点近傍のGの領域では、移動始点から離れるにしたがってシフト量が増加している。さらに、移動終点近傍のIの領域では移動終点から離れるにしたがってシフト量が増加している。
【0076】
そして、算出した距離(シフト量)だけ法線方向にシフトする(ステップS404)。したがって、上記の通り、シフト量が移動始点及び移動終点の近傍で変化する。そして、実施の形態1のステップS104と同様に、移動始点から移動終点までの全ての経路点をシフトしたか否かを判定する(ステップS405)。全経路点をシフトするまで、上記ステップS401〜S404の処理を繰り返す(ステップS405のNo)。全ての経路点をシフトしたら、経路探索を終了する。これにより、最短経路から右側にシフトした移動経路を生成することができる。このように、最短経路を補正して移動経路とすることで、人間の通行を妨げるのを防ぐことができる。
【0077】
このようにすることで、移動経路を連続的に変化させることができる。すなわち、移動始点や移動終点の近傍において、ロボット100が徐々に方向を変えていく。したがって、ロボット100が急激な旋回を行うことを防ぐことができる。よって、ロボット100を滑らかに移動させることができる。本実施の形態では、シフト量が最短経路上の位置に応じて変化している。これにより、適切な移動経路を生成することができる。
【0078】
実施の形態5.
本実施の形態では、動的な障害物の右側を通過するように基準経路生成を行っている。このようにすることで、人間やロボットなどの動的な障害物が前方に存在する場合でも、その障害物を確実に回避することができる。なお、動的な障害物とは時間とともに移動する障害物である。
【0079】
本実施形態にかかる移動体の制御部について図14を用いて説明する。図14は、制御部の構成を示すブロック図である。なお、実施の形態1で説明した構成と同じ構成については、生命を省略する。例えば、地図情報記憶部111と、最適経路探索決定部112などの構成については、実施の形態1と同様であるため説明を省略する。
【0080】
ベクトル場生成部116は、動的障害物に基づいてベクトル場を生成する。例えば、図15に示すように、経路上あるいはその近傍に動的障害物が存在する場合、その動的障害物を中心とした左回転のベクトル場を生成する。最適経路探索部112は、このベクトル場の流れに沿うような移動経路を生成する。これにより、右側通行の経路を生成することが可能になる。具体的には、ベクトル場に基づいて与えられるコストを付与して、最適経路探索を行う。この最適経路探索で探索された最適経路が移動経路となる。これにより、動的障害物の近傍で、ベクトル場に沿うような移動経路が生成される。そして、ロボット100がこの移動経路に沿って、移動することで、動的障害物を回避することができる。
【0081】
次に、本実施の形態にかかる経路生成について図16を用いて説明する。まず、動的な障害物を検出する(ステップS501)。例えば、CCDカメラなどのセンサ5でロボット100の前方の画像を取得する。ここでは、画像の中に人間などの動的な障害が含まれているとする。あるいは、外部に設けられたカメラやセンサで移動環境に存在する動的障害物を検出してもよい。次に、動的障害物の周囲に左回転ベクトル場を生成する(ステップS502)。このベクトル場は、動手障害物を中心として、左方向に螺旋状に回転している。そして、経路探索の過程で経路の進行方向とベクトル場の方向の一致度(内積値)に応じて、追加でコストを付与する(ステップS503。)具体的には、内積の絶対値をコストとして、コストが最小となるように、移動経路を探索する。これにより、動的障害物を回避することができる。
【0082】
ロボット100の正面に障害物がある場合、ロボット100が障害物の左右どちらを通過するかは、ランダムに決定される。仮に左側を通過する経路が選択された場合、右側通行しているロボット100が動的障害物(歩行者)の周囲だけ、左側を通行してしまう。この場合、歩行者の進行を妨げてしまうおそれがある。本実施形態では、移動していない静的な障害物に対しては、ベクトル場を生成しない。このように、経路探索を実行することによって、歩行者の進行を妨げるのを防ぐことができる。さらに、衝突を防ぐことができるため、より安全性を向上することができる。また、上記の基準経路を随時更新してもよい。すなわち、ロボット100の移動中に新たに、動的障害物が検出された場合、移動経路を更新してもよい。あるいは一定時間間隔で移動経路を探索してもよい。
【0083】
その他の実施の形態.
上記の実施の形態1〜5は、適宜組み合わせて利用することができる。すなわち、実施の形態1〜4のうち、少なくとも2つの経路生成を組み合わせて用いてもよい。ここで、実施の形態1〜4を組み合わせて経路を生成する方法について、図17を用いて説明する。図17は実施の形態1〜4を組み合わせたシフト量の計算ロジックを示すフローチャートである。
【0084】
まず、処理を開始して、最短経路を探索する。そして、スタート(移動始点)近傍であるか否かを判定する(ステップS601)。スタート近傍である場合、実施の形態4で示したようにシフト量を調整する(ステップS602)。スタート近傍でない場合、ゴール(移動終点)近傍であるか否かを判定する(ステップS603)。ゴール近傍である場合、実施の形態4と同様に、シフト量を調整する(ステップS604)。ゴール近傍でない場合、移動領域中の壁近傍であるか否かを判定する(ステップS605)。また、スタート近傍、及びゴール近傍で、シフト量を調整した場合も、移動領域中の壁近傍であるか否かを判定する(ステップS605)。
【0085】
壁近傍である場合、実施の形態2、3で示したように、シフト量を調整する(ステップS606)。そして、シフト量を決定する(ステップS607)。まあ、壁近傍でない場合、シフト量を調整せずに、シフト量を決定する(ステップS607)。このようにシフト量を算出した後、移動経路を決定する。これにより、右側通行を実現することができる。
【0086】
図18に上記の実施形態を組み合わせてシフト量を決定した結果を示す。図18は、ロボット100が実際に移動した移動経路と最短経路を示す図である。図18に示す移動経路は、上述の通り、実施の形態1、2、及び4を組み合わせて、移動経路を生成している。図18では、最大のシフト量を1mとしている。したがって、スタート近傍、ゴール近傍、及び壁と接近している箇所では、シフト量が1mよりも小さくなる。このように経路を生成することでロボット100が通路の右側を通行することができ、人の通行の流れを妨げるのを防ぐことができる。また、壁との衝突を防ぐことができる。さらに、移動始点及び移動終点の近傍においても、滑らかに移動することができる。
【0087】
上記の経路探索方法をコンピュータプログラムによって実行してもよい。上記の実施の形態1〜5のように移動経路を探索することで、移動体であるロボット100が人間を避けるように移動する。よって、人間の移動の流れを妨げることなく、ロボット100を移動させることができる。
【符号の説明】
【0088】
1 頭部
2 車輪
3 筐体
5 センサ
50 移動環境
51 移動経路
52 最短経路
53 人間
100 ロボット
110 制御部
111 地図情報記憶部
112 最適経路探索部
113 シフト方向決定部
114 シフト量設定部
115 移動経路決定部
116 ベクトル場生成部

【特許請求の範囲】
【請求項1】
移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索システムであって、
移動領域の情報に基づいて、基準経路を探索する経路探索手段と、
前記基準経路の移動方向に基づいて、シフト方向を決定するシフト方向決定手段と、
前記基準経路を前記シフト方向にシフトして、移動経路を決定する移動経路決定手段と、を備えた経路探索システム。
【請求項2】
前記シフト量が前記基準経路上の位置に応じて変化することを特徴とする請求項1に記載の経路探索システム。
【請求項3】
前記移動経路から前記移動領域に含まれる障害までの距離に応じて、前記シフト量を変化させるシフト量設定手段を、さらに備えた請求項2に記載の経路探索システム。
【請求項4】
前記移動経路から前記障害までの距離がしきい値よりも小さい場合に、前記シフト量を他の箇所よりも小さくすることを特徴とする請求項3に記載の経路探索システム。
【請求項5】
前記移動経路から前記障害までの距離がしきい値よりも大きい場合に、前記シフト距離を他の箇所よりも小さくすることを特徴とする請求項3、又は4に記載の経路探索システム。
【請求項6】
前記移動始点と前記移動終点では前記シフト量を0として、前記移動始点の近傍において前記移動始点から離れるにしたがってシフト量が増加する領域、及び前記移動終点の近傍において前記移動終点から離れるにしたがってシフト量が増加する領域と、が設けられていることを特徴とする請求項2乃至5のいずれか1項に記載の経路探索システム。
【請求項7】
移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索システムであって、
移動領域を移動する動的障害物に基づいてベクトル場を生成するベクトル場生成手段と、
前記ベクトル場に基づくコストを付与して、移動経路を探索する経路探索手段と、を備える経路探索システム。
【請求項8】
請求項1乃至7のいずれか1項に記載の経路探索システムを有する移動体。
【請求項9】
移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索方法であって、
移動領域の情報に基づいて、基準経路を探索する経路探索ステップと、
前記基準経路の進行方向に基づいて、シフト方向を決定するシフト方向決定ステップと、
前記基準経路を前記シフト方向にシフトして、移動経路を決定する移動経路決定ステップと、を備えた経路探索方法。
【請求項10】
前記シフト量が前記基準経路上の位置に応じて変化することを特徴とする請求項9に記載の経路探索方法。
【請求項11】
前記移動経路から前記移動領域に含まれる障害までの距離に応じて、前記シフト量を変化させるシフト量設定ステップを、さらに備えた請求項10に記載の経路探索方法。
【請求項12】
前記移動経路から前記障害までの距離がしきい値よりも小さい場合に、前記シフト量を他の箇所よりも小さくすることを特徴とする請求項11に記載の経路探索方法。
【請求項13】
前記移動経路から前記障害までの距離がしきい値よりも大きい場合に、前記シフト距離を他の箇所よりも小さくすることを特徴とする請求項10、又は11に記載の経路探索方法。
【請求項14】
前記移動始点と前記移動終点では前記シフト量を0として、前記移動始点の近傍において前記移動始点から離れるにしたがってシフト量が増加する領域、及び前記移動終点の近傍において前記移動終点から離れるにしたがってシフト量が増加する領域と、が設けられていることを特徴とする請求項10乃至13のいずれか1項に記載の経路探索方法。
【請求項15】
移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索方法であって、
移動領域を移動する動的障害物に基づいてベクトル場を生成するベクトル場生成ステップと、
前記ベクトル場に基づくコストを付与して、移動経路を探索する経路探索ステップと、を備える経路探索方法。
【請求項16】
移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索プログラムであって、
コンピュータに対して、
移動領域の情報に基づいて、基準経路を探索させる経路探索ステップと、
前記基準経路の進行方向に基づいて、シフト方向を決定させるシフト方向決定ステップと、
前記基準経路を前記シフト方向にシフトして、移動経路を決定させる移動経路決定ステップと、を備えた経路探索プログラム。
【請求項17】
前記シフト量が前記基準経路上の位置に応じて変化することを特徴とする請求項16に記載の経路探索プログラム。
【請求項18】
前記移動経路から前記移動領域に含まれる障害までの距離に応じて、前記シフト量を変化させるシフト量設定ステップを、さらに備えた請求項17に記載の経路探索プログラム。
【請求項19】
前記移動経路から前記障害までの距離がしきい値よりも小さい場合に、前記シフト量を他の箇所よりも小さくすることを特徴とする請求項18に記載の経路探索プログラム。
【請求項20】
前記移動経路から前記障害までの距離がしきい値よりも大きい場合に、前記シフト距離を他の箇所よりも小さくすることを特徴とする請求項18、又は19に記載の経路探索プログラム。
【請求項21】
前記移動始点と前記移動終点では前記シフト量を0として、前記移動始点の近傍において前記移動始点から離れるにしたがってシフト量が増加する領域、及び前記移動終点の近傍において前記移動終点から離れるにしたがってシフト量が増加する領域と、が設けられていることを特徴とする請求項17乃至20のいずれか1項に記載の経路探索プログラム。
【請求項22】
移動領域内に存在する移動始点より移動を開始し、前記移動領域内に存在する移動終点に到達する移動体の移動経路を探索する経路探索プログラムであって、
コンピュータに対して、
移動領域を移動する動的障害物に基づいてベクトル場を生成させるベクトル場生成ステップと、
前記ベクトル場に基づくコストを付与して、移動経路を探索させる経路探索ステップと、を備える経路探索プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−107984(P2011−107984A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−262295(P2009−262295)
【出願日】平成21年11月17日(2009.11.17)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】