(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-25
(45)【発行日】2022-03-07
(54)【発明の名称】経路作成装置、経路作成方法、経路作成プログラム及び地図データ製造方法
(51)【国際特許分類】
G01C 21/26 20060101AFI20220228BHJP
G09B 29/00 20060101ALI20220228BHJP
【FI】
G01C21/26
G09B29/00 A
(21)【出願番号】P 2018160444
(22)【出願日】2018-08-29
【審査請求日】2021-02-25
(73)【特許権者】
【識別番号】500578216
【氏名又は名称】株式会社ゼンリンデータコム
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】柏崎 公生
(72)【発明者】
【氏名】鳥井 政宏
(72)【発明者】
【氏名】秋元 大地
(72)【発明者】
【氏名】片桐 修一
【審査官】マキロイ 寛済
(56)【参考文献】
【文献】特開2011-113488(JP,A)
【文献】特開2017-151687(JP,A)
【文献】米国特許出願公開第2011/0106306(US,A1)
【文献】米国特許出願公開第2010/0174435(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/26
G09B 29/00
(57)【特許請求の範囲】
【請求項1】
ノード間を結ぶ線分を接続することで、移動体が出発地から目的地まで移動する際の移動経路を作成する経路作成装置であって、
空間内に含まれる1以上のエリアと、該1以上のエリアの各々に適用される多値の重み値とが対応づけられて格納されるエリア情報を記憶する記憶部と、
前記空間内に配置した第1地点と、前記出発地を含むノード群の中から選択した、前記第1地点に近接する近接ノードから前記第1地点に向かって所定の距離移動した第2地点に所定の配置確率に基づき新ノードを配置し、
前記近接ノードから前記新ノードまでを線分で結ぶことを繰り返すことで前記目的地までの移動経路を作成するか、又は、
前記出発地を含むノード群の中で前記新ノードを基準とする所定の範囲に存在する1以上の候補ノードのうち、前記出発地からの移動経路のコストが小さい候補ノードと前記新ノードとを線分で結ぶことを繰り返すことで前記目的地までの移動経路を作成する、
移動経路作成部と、
を有し、
前記移動経路作成部は、前記エリア情報に含まれる重み値に基づいて、前記所定の距離、前記所定の配置確率、前記第1地点に近接する近接ノードの選択基準、前記所定の範囲の大きさ、及び、前記出発地から前記1以上の候補ノードの各々までの移動経路のコストのうち少なくとも1つを調整する、
経路作成装置。
【請求項2】
前記1以上のエリアの各々に適用される多値の重み値は、1以上のエリアの各々における移動体の通行が推奨される度合いを示す、
請求項1に記載の経路作成装置。
【請求項3】
前記移動経路作成部は、前記近接ノードから前記新ノードまでを結ぶ線分が通過するエリアにおける移動体の通行が推奨される度合いが低いほど、前記所定の距離が短くなるように調整する、
請求項2に記載の経路作成装置。
【請求項4】
前記移動経路作成部は、前記新ノードを配置する場合に、移動体の通行が推奨される度合いが低いエリアほど、前記所定の配置確率が低くなるように調整する、
請求項2又は3に記載の経路作成装置。
【請求項5】
前記移動経路作成部は、前記空間内に含まれる1以上のエリア内に存在するノードについて、
該ノードが存在するエリアにおける移動体の通行が推奨される度合いが低いほど、又は、
該ノードと前記第1地点との間に存在するエリアにおける移動体の通行が推奨される度合いが低いほど、
前記第1地点からの距離が遠いと判定するように、前記第1地点に近接する近接ノードの選択基準を調整する、
請求項2乃至4のいずれか一項に記載の経路作成装置。
【請求項6】
前記移動経路作成部は、前記新ノードが存在するエリアにおける移動体の通行が推奨される度合いが低いほど、前記所定の範囲の大きさが小さくなるように調整する、
請求項2乃至5のいずれか一項に記載の経路作成装置。
【請求項7】
前記移動経路作成部は、前記出発地から前記1以上の候補ノードの各々までの移動経路のコストについて、移動経路が通過するエリアにおける移動体の通行が推奨される度合いが低いほどコストが大きくなるように、移動経路のコストを調整する、
請求項2乃至6のいずれか一項に記載の経路作成装置。
【請求項8】
前記目的地は、複数の点の集合における任意の地点である、
請求項1乃至7のいずれか一項に記載の経路作成装置。
【請求項9】
前記1以上のエリアの各々に適用される多値の重み値は、前記近接ノードから前記新ノードまでを結ぶ線分がエリアに進入する際の方向ごとに又は進入角度に応じて設定され、
前記移動経路作成部は、前記新ノードを設定する場合に、前記近接ノードから前記新ノードまでを結ぶ線分が前記エリア情報に格納されるいずれかのエリアに進入する場合、線分が該エリアに侵入する方向又は進入角度に対応する重み値に応じて、前記近接ノードから前記新ノードまでを結ぶ線分が短くなるように前記新ノードの位置を設定する、
請求項2乃至8のいずれか一項に記載の経路作成装置。
【請求項10】
ノード間を結ぶ線分を接続することで、移動体が出発地から目的地まで移動する際の移動経路を作成する経路作成装置が実行する経路作成方法であって、
空間内に含まれる1以上のエリアと、該1以上のエリアの各々に適用される多値の重み値とが対応づけられて格納されるエリア情報を記憶部に記憶する記憶ステップと、
前記空間内に配置した第1地点と、前記出発地を含むノード群の中から選択した、前記第1地点に近接する近接ノードから前記第1地点に向かって所定の距離移動した第2地点に所定の配置確率に基づき新ノードを配置し、
前記近接ノードから前記新ノードまでを線分で結ぶことを繰り返すことで前記目的地までの移動経路を作成するか、又は、
前記出発地を含むノード群の中で前記新ノードを基準とする所定の範囲に存在する1以上の候補ノードのうち、前記出発地からの移動経路のコストが小さい候補ノードと前記新ノードとを線分で結ぶことを繰り返すことで前記目的地までの移動経路を作成する、
移動経路作成ステップと、
を有し、
前記移動経路作成ステップは、前記エリア情報に含まれる重み値に基づいて、前記所定の距離、前記所定の配置確率、前記第1地点に近接する近接ノードの選択基準、前記所定の範囲の大きさ、及び、前記出発地から前記1以上の候補ノードの各々までの移動経路のコストのうち少なくとも1つを調整する、
経路作成方法。
【請求項11】
ノード間を結ぶ線分を接続することで、移動体が出発地から目的地まで移動する際の移動経路を作成するコンピュータを、
空間内に含まれる1以上のエリアと、該1以上のエリアの各々に適用される多値の重み値とが対応づけられて格納されるエリア情報を記憶する記憶部と、
前記空間内に配置した第1地点と、前記出発地を含むノード群の中から選択した、前記第1地点に近接する近接ノードから前記第1地点に向かって所定の距離移動した第2地点に所定の配置確率に基づき新ノードを配置し、
前記近接ノードから前記新ノードまでを線分で結ぶことを繰り返すことで前記目的地までの移動経路を作成するか、又は、
前記出発地を含むノード群の中で前記新ノードを基準とする所定の範囲に存在する1以上の候補ノードのうち、前記出発地からの移動経路のコストが小さい候補ノードと前記新ノードとを線分で結ぶことを繰り返すことで前記目的地までの移動経路を作成する、
移動経路作成部と、
して機能させ、
前記移動経路作成部は、前記エリア情報に含まれる重み値に基づいて、前記所定の距離、前記所定の配置確率、前記第1地点に近接する近接ノードの選択基準、前記所定の範囲の大きさ、及び、前記出発地から前記1以上の候補ノードの各々までの移動経路のコストのうち少なくとも1つを調整する、
経路作成プログラム。
【請求項12】
請求項1乃至9のいずれか一項に記載の経路作成装置が作成する前記移動経路を含む地図データを生成する地図データ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、経路作成装置、経路作成方法、経路作成プログラム及び地図データ製造方法に関する。
【背景技術】
【0002】
従来から、移動経路を決定するアルゴリズムとして、RRT(Rapidly-exploring Random Tree)及びRRT*(Rapidly-exploring Random Tree)が知られている。RRT及びRRT*は、自由空間において障害物との衝突を避けつつ移動経路を作成することが可能なアルゴリズムであり、工業用ロボットアーム等の移動経路を決定するために用いられている。特許文献1には、RRTを自動車の走行経路作成に利用する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
移動経路を決定する際、単純に障害物を避けることのみならず、移動経路として利用可能ではあるものの、できれば移動経路として利用されることを回避したいといったエリアを設定したい場合が考えらえる。例えば、ドローンの飛行経路を決定する場合、ドローンの飛行が禁止されているのではないが、なるべくドローンの飛行を回避させたいエリアというように、空間内に通行推奨度を設定したいという場合が考えられる。
【0005】
しかしながら、従来のRRT及びRRT*では、障害物のように通行可/不可という2値の情報を考慮して経路探索することは可能であるが、できれば移動経路として利用されることを回避したいといったエリアのように、中間的な扱いのエリアを含む空間にて移動経路を決定することはできない。
【0006】
そこで、本発明の一態様は、移動経路の通行推奨度が設定された空間において、通行推奨度を考慮した移動経路を作成することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様に係る経路作成装置は、ノード間を結ぶ線分を接続することで、移動体が出発地から目的地まで移動する際の移動経路を作成する経路作成装置であって、空間内に含まれる1以上のエリアと、該1以上のエリアの各々に適用される多値の重み値とが対応づけられて格納されるエリア情報を記憶する記憶部と、空間内に配置した第1地点と、出発地を含むノード群の中から選択した、第1地点に近接する近接ノードから第1地点に向かって所定の距離移動した第2地点に所定の配置確率に基づき新ノードを配置し、近接ノードから新ノードまでを線分で結ぶことを繰り返すことで目的地までの移動経路を作成するか、又は、出発地を含むノード群の中で新ノードを基準とする所定の範囲に存在する1以上の候補ノードのうち、出発地からの移動経路のコストが小さい候補ノードと新ノードとを線分で結ぶことを繰り返すことで目的地までの移動経路を作成する、移動経路作成部と、を有し、移動経路作成部は、エリア情報に含まれる重み値に基づいて、所定の距離、所定の配置確率、第1地点に近接する近接ノードの選択基準、所定の範囲の大きさ、及び、出発地から1以上の候補ノードの各々までの移動経路のコストのうち少なくとも1つを調整する。
【発明の効果】
【0008】
本発明の一態様によれば、移動経路の通行推奨度が設定された空間において、通行推奨度を考慮した移動経路を作成することが可能な技術を提供することができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係る移動管理システム1の一例を示す図である。
【
図2】RRTアルゴリズムを説明するための図である。
【
図3】RRT
*アルゴリズムを説明するための図である。
【
図4】経路生成装置のハードウェア構成例を示す図である。
【
図5】経路生成装置の機能ブロック構成例を示す図である。
【
図7】経路生成装置が経路を生成する空間の一例を示す図である。
【
図8】アルゴリズム1による経路生成方法の一例を説明するための図である。
【
図9】アルゴリズム1による経路生成方法の一例を説明するための図である。
【
図10】アルゴリズム2による経路生成方法の一例を説明するための図である。
【
図11】アルゴリズム4による経路生成方法の一例を説明するための図である。
【発明を実施するための形態】
【0010】
添付図面を参照して、本発明の好適な実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0011】
<システム構成>
図1は、実施形態に係る移動管理システム1の一例を示す図である。移動管理システム1は、経路生成装置10と移動体20とを含む。
図1には移動体20が複数図示されているが、移動管理システム1に含まれる移動体20の数は1つでもよい。経路生成装置10と移動体20とは、通信ネットワークNにより相互に通信することができる。通信ネットワークNは、基本的に無線ネットワークを想定しているが、有線ネットワークが含まれていてもよい。
【0012】
経路生成装置10は、空間内において移動体20が通るべき経路を生成する装置である。経路生成装置10は、サーバ、パーソナルコンピュータ(PC)、ノートPC、スマートフォン、タブレット端末、携帯電話機、携帯情報端末(PDA)、家庭用ゲーム機器など、どのような情報処理装置であってもよい。また、経路生成装置10は、1又は複数の情報処理装置から構成されていてもよい。なお、経路生成装置10が生成する経路は、2次元空間の経路又は3次元空間の経路のいずれであってもよく、理論上は4次元以上の空間の経路であってもよい。
【0013】
移動体20は、例えばドローンやヘリコプター等の飛行体、車両及びロボット等であり、経路生成装置10により生成された移動経路に従って出発地から目的地まで移動する。
【0014】
経路生成装置10が経路を生成する空間内には、移動体20の通行が禁止されるエリアと、移動体20の通行をなるべく回避させたいエリアと、移動体20が自由に通行可能なエリアとが存在する。移動体20の通行が禁止されるエリアとは、例えば建物等の障害物が存在するエリアや、飛行禁止エリア等である。移動体20の通行をなるべく回避させたいエリアとは、例えば、多数の移動体20が通行するような空間において、少量の移動体20が通行することは許容されるが、多数の移動体20が自由に通行することは回避したいようなエリアである。
【0015】
本実施形態では、これらのエリアを、エリア内における移動体20の通行が推奨される度合いを示す多値の重み値(以下、「通行推奨度」と言う。)により表現する。通行推奨度は、例えば0%~100%までの値で表現される。またエリアに与えられた通行推奨度は、時間、天候、周囲の飛行体の数・状態などの外的要因により変化してもよい。移動体20の通行が禁止されるエリアの通行推奨度は0%に設定され、移動体20が自由に通行可能なエリアの通行推奨度は100%に設定される。移動体20の通行をなるべく回避させたいエリアの通行推奨度は、どの程度通行を回避させたいのかの度合いに応じて設定される。例えば、通行推奨度が70%であれば、移動体20の通行がある程度許容されるエリアを意味し、例えば、通行推奨度が20%であれば、移動体20の通行があまり許容されないエリアを意味する。また、特に優先的に通行させたいエリアについては、100%を超える通行推奨度(例えば120%等)を与えてもよい。
【0016】
なお、通行推奨度の表現方法はあくまで一例であり、パーセントによる表現に限定されるものではない。例えば、通行推奨度を、0(通行禁止)~1(自由に通行可能)の値で表現するようにしてもよい。或いは、通行推奨度を、100%(通行禁止)~0%(自由に通行可能)の値で表現するようにしてもよいし、通行推奨度を、1(通行禁止)~0(自由に通行可能)の値で表現するようにしてもよい。
【0017】
空間に存在するエリアごとの通行推奨度は、経路生成装置10が保持する「エリア情報」に含まれる。エリア情報には、1以上のエリアと、当該1以上のエリアの各々に適用される通行推奨度とが対応づけられており、経路生成装置10は、経路を生成する際、エリア情報を参照することでエリアごとの通行推奨度を考慮しながら経路生成を行う。
【0018】
経路生成装置10は、RRTアルゴリズム又はRRT
*アルゴリズムを用いて経路を生成する。まず既存のRRTのアルゴリズムを用いて2次元空間に経路を作成する方法を、
図2に示す例を用いて説明する。なお、
図2では、説明の便宜上2次元空間を例に説明するが、本実施形態が2次元空間に限定されることを意図しているのではない。本実施形態は、3次元空間や4次元空間又はそれ以上の多次元空間にも適用することができる。
【0019】
RRTは、空間内に設定された地点(ノード)から所定の距離(Δq)進んだ地点に新たなノードを配置し、これらの2つのノード間を線分で繋ぐことを繰り返すことで、出発地から目的地までの経路を作成するアルゴリズムである。Δqは、インクリメンタルディスタンス(incremental distance)や、ステップサイズとも呼ばれる。
図2において、Qinitは出発地であり、Qgoalは目的地である。なお、Qinitも、ノードの1つである。エリアXは、移動体20の通行が禁止されるエリアを示している。
【0020】
まず、経路生成装置10は、空間S内でランダムに地点Qrandを配置する(
図2(a))。続いて、経路生成装置10は、地点Qrandに最も近いノードQnearを選択する。
図2(a)では、ノードはQinitしかないので、経路生成装置10は、ノードQnearとしてQinitを選択する。続いて、経路生成装置10は、Qinitから地点Qrandに向かう線分上において、QinitからΔq進んだ地点に新たなノードQnewを配置し(
図2(b))、QinitからQnewまでの間に線分Lを追加する(
図2(c))。
【0021】
続いて、経路生成装置10は、空間S内でランダムに次のQrandを配置し(
図2(c))、Qrandに最も近いノードQnearとしてQnewを選択する。続いて、経路生成装置10は、Qnearから地点Qrandに向かう線分上において、QnearからΔq進んだ地点に新たなノードQnewを配置する(
図2(d))。このとき、ノードQnearからQrandまでの距離がΔq未満である場合、ノードQnearからΔq進んだ地点を新たなノードQnewとするようにしてもよいし、Qrandを新たなノードQnewとするようにしてもよい。
【0022】
なお、
図2(d)の例では、Qnewは通行が禁止されるエリアXに位置していることから、経路生成装置10は、このQnewを破棄して、新たにQrandを配置する処理をやり直す。また、Qnewが、通行が禁止されるエリアXに位置しない場合であっても、QnearからQnewまでの間に通行が禁止されるエリアXが含まれる場合、経路生成装置10は、このQnewを破棄して、新たにQrandを配置する処理をやり直す。Qnewが、通行が禁止されるエリアXに位置せず、かつ、QnearからQnewまでの間に通行が禁止されるエリアXが含まれない場合、QnearからQnewまでの間に線分を追加する。
【0023】
経路生成装置10は、これらの処理手順を、Qnew及びQgoalを結ぶ線分がエリアXを通らず、かつ、当該線分が所定の距離以下になるという条件(条件1)、又は、Qnear及びQnewを結ぶ線分とQgoalとが所定の距離以下であり、かつ、QnearとQgoalとを結ぶ線分がエリアXを通らないという条件(条件2)を満たすまで繰り返す(
図2(e))。条件1を満たした場合、経路生成装置10は、QnewとQgoalとを線分で結ぶ。また、条件2を満たした場合、経路生成装置10は、QnearとQgoalとを線分で結ぶ。これにより、QinitからQgoalまでの間に1本の経路が作成される。なお、RRTアルゴリズムには探索を終了する条件が規定されていないことから、経路生成装置10は、以上説明した処理手順を繰り返すことで、他の経路を探索することも可能である。
【0024】
次に、既存のRRT
*アルゴリズムを用いて2次元空間に経路を作成する方法を、
図3を用いて説明する。RRT
*アルゴリズムは、Qnewを配置するまでの手順についてはRRTアルゴリズムと同一であるが、その後線分を追加する処理がRRTアルゴリズムと異なる。
【0025】
具体的には、経路生成装置10は、Qnewを配置した後、Qnewを中心とした円で囲まれた所定の範囲内に存在するノードのうち、Qinitから各ノードまでのコストが最も小さいノード(Qmin)を選択し、QminからQnewまでの間に線分を追加する。なお、コストとは、線分全体の長さである。例えば、
図3(a)の例では、Qnewを中心とした半径rの円C1内にノードQ1、Q2及びQ3が含まれており、ノードQ1からQnewまでのコストが最も小さい。従って、経路生成装置10は、
図3(b)に示すように、ノードQ1をQminとみなし、ノードQ1(Qmin)からQnewまでの間に線分L1を追加する。
【0026】
また、RRT
*アルゴリズムでは、QminからQnewまでの間に線分を追加した後、Qnewを中心とした円で囲まれた所定の範囲内に存在するノードのうち、Qnewを経由することでコストが下がるものがあれば、Qnewを経由するように線分を結線し直す。例えば
図3(a)の例において、QinitからノードQ3までコストは、
図3(a)に図示されている経路よりも、Qnewを経由する経路とした方がコストが下がることになる。従って、経路生成装置10は、
図3(b)に示すように、ノードQ3とノードQ4との間の線分を削除し、ノードQ3とQnewとの間に線分L2を追加する。
【0027】
RRT*アルゴリズムにおいて、半径rには、予め定められる固定的な値、又は、Qnewを中心とした円の中に存在するノードの数に基づいて定められる値のうち小さい方の値が設定される。
【0028】
<ハードウェア構成>
図4は、経路生成装置10のハードウェア構成例を示す図である。経路生成装置10は、CPU(Central Processing Unit)11、メモリ、HDD(Hard Disk Drive)及び/又はSSD(Solid State Drive)等の記憶装置12、有線又は無線通信を行う通信IF(Interface)13、入力操作を受け付ける入力デバイス14、及び情報の出力を行う出力デバイス15を有する。入力デバイス14は、例えば、キーボード、タッチパネル、マウス及び/又はマイク等である。出力デバイス15は、例えば、ディスプレイ及び/又はスピーカ等である。
【0029】
<機能ブロック構成>
図5は、経路生成装置10の機能ブロック構成例を示す図である。経路生成装置10は、ルート作成部101と、ルート出力部102と、記憶部103とを含む。ルート作成部101と、ルート出力部102とは、経路生成装置10のCPU11が、記憶装置12に記憶されたプログラムを実行することにより実現することができる。また、当該プログラムは、記憶媒体に格納することができる。当該プログラムを格納した記憶媒体は、非一時的な記憶媒体(Non-transitory computer readable medium)であってもよい。非一時的な記憶媒体は特に限定されないが、例えば、USBメモリ又はCD-ROM等の記憶媒体であってもよい。また、記憶部103は、経路生成装置10が備える記憶装置12を用いて実現することができる。
【0030】
ルート作成部101は、RRTアルゴリズムを用いてノード間を結ぶ線分を順に接続することで、移動体が出発地から目的地まで移動する際の移動経路を作成する。具体的には、ルート作成部101は、空間内において第1配置確率に基づき配置した地点(以下、「配置地点(第1地点)」と言う。)と、出発地を含むノード群の中から選択した、配置地点に近接するノード(以下、「近接ノード」と言う。)から配置地点に向かって所定の距離移動した地点(第2地点)に、第2配置確率(所定の配置確率と称してもよい)に基づき新たなノード(以下、「新ノード」と言う。)を配置する。
【0031】
また、ルート作成部101は、RRTアルゴリズムに従い、近接ノードと新ノードとを線分で結ぶことを繰り返すことで目的地までの移動経路を作成する。或いは、ルート作成部101は、RRT*アルゴリズムに従い、出発地を含むノード群の中で新ノードを基準とする所定の範囲に存在する1以上のノード(以下、「候補ノード」と言う。)のうち、出発地からの移動経路のコストが小さい候補ノードと新ノードとを線分で結ぶことを繰り返すことで目的地までの移動経路を作成する。
【0032】
ここで、第1配置確率は一様であってもよい(すなわちランダムであってもよい)。より具体的には、第1配置確率に基づき地点を決定することとは、n次元空間における各軸の定義域内にて一様乱数を発生させることで、空間上の地点を決定することであってもよい。また、配置範囲を限定することで処理の高速化を狙うために、出発地と目的地を含む楕円体(又は球体)の中に限定して一様乱数を発生させることで空間上の地点を決定するようにしてもよい。その場合、直交する各座標軸において一様乱数を発生させることで決定される地点が所定楕円体(又は球体)に含まれる場合は当該地点を空間上の地点として決定し、含まれない場合は再度一様乱数を発生させる処理を繰り返すことで実現できる。または極座標の各軸の定義域に対して一様乱数を発生させることで空間上の地点を決定してもよい。
【0033】
また、ルート作成部101は、出発地を含むノード群の中から近接ノードを選択する場合、線形探索を用いて選択するようにしてもよいし、Kd木のように高速に探索できる手法を用いて選択するようにしてもよい。
【0034】
また、ルート作成部101は、ノード間を線分で結びながら移動経路を作成する際、エリア情報に含まれる通行推奨度に基づいて、所定の距離、所定の第2配置確率、配置地点に近接する近接ノードの選択基準、新ノードを基準とする所定の範囲の大きさ、及び、出発地から1以上の候補ノードの各々までの移動経路のコストのうち少なくとも1つを調整することで、移動体20の通行が推奨されないエリアほど、線分が引かれにくくなるように制御する。
【0035】
ルート出力部102は、ルート作成部101により作成された移動経路データを出力する。出力された移動経路データは移動体20で読み込まれ、移動経路データを読み込んだ移動体20は、移動経路データに従って出発地から目的地まで移動する。
【0036】
記憶部103は、エリア情報を記憶する。
図6にエリア情報の一例を示す。「エリア位置」には、空間内において、通行推奨度が設定されるエリアの位置を特定するための情報が格納される。エリアの位置はどのようなデータを用いて表現されていてもよい。例えば、緯度経度を用いて表現してもよいし、頂点座標データの集合により表現してもよいし、ポリゴンを用いて表現するようにしてもよいし、glTF等の3D(3次元)データを用いて表現するようにしてもよい。「通行推奨度」には、0%~100%までの値が格納される。なお、移動体20が自由に通行可能なエリア(通行推奨度が100%のエリア)については、エリア情報から省略されていてもよい。
【0037】
<処理手順>
続いて、経路生成装置10が経路を作成する手順について具体的に説明する。なお、以下の説明では、説明の便宜上、2次元空間を用いて説明するが、これに限定されるものではない。本実施形態は、3次元空間において経路を作成する場合にも適用可能である。
【0038】
図7は、経路生成装置10が経路を生成する空間の一例を示す図である。
図7に示す空間Sには、通行推奨度が0%であるエリアA1及びエリアA2、通行推奨度が40%であるエリアA3、及び、通行推奨度が60%であるエリアA4が設定されている。
【0039】
経路生成装置10のルート作成部101は、前述したRRTアルゴリズム又はRRT
*アルゴリズムの一部を変更することで、通行推奨度を考慮した経路作成を行う。具体的には、下記のアルゴリズム1~アルゴリズム6のうちいずれか1つ又は複数を組み合わせることで経路作成を行う。なお、特に言及しない点は、
図2を用いて説明した既存のRRTアルゴリズム又はRRT
*アルゴリズムに従う。
【0040】
(アルゴリズム1)
ルート作成部101は、新ノード(Qnew)を配置する場合に、近接ノード(Qnear)から新ノード(Qnew)までを結ぶ線分が通過するエリアについて通行推奨度が低いほど、線分の長さが短くなるように新ノード(Qnew)の位置を配置する。
【0041】
図8は、アルゴリズム1による経路生成方法の一例を説明するための図である。以下の説明において、パーセントは割合に換算して計算するものとする。つまり、例えばX×50%とは、X×0.5であるとして計算する。
【0042】
地点qは、近接ノード(Qnear)からΔq進んだ地点である。アルゴリズム1では、ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)に向けて、通過するエリアの通行推奨度に応じて進む距離を調整しながら線分を伸ばしていく。このとき、線分が伸びる長さは、通行推奨度が低いほど短くなる。つまり、近接ノード(Qnear)から地点qまでのエリアの中に、通行推奨度が100%未満であるエリアが一部でも存在する場合、近接ノード(Qnear)から伸びる線分は地点qには到達せず、途中で停止することになる。
【0043】
図8において、エリアB_n(n=1、2、3・・・N)は、近接ノード(Qnear)から配置地点(Qrand)に向かって伸びる線分が通過する1以上のエリアのうち、近接ノード(Qnear)に近い順にn番目のエリアを示している。また、エリアB_nのうち近接ノード(Qnear)側の境界と、近接ノード(Qnear)と地点qを結ぶ線分とが交わる地点を境界(q_border1_n)と呼ぶ。また、エリアB_nのうち地点q側の境界と、近接ノード(Qnear)と地点qを結ぶ線分とが交わる地点を境界(q_border2_n)と呼ぶ。また、境界(q_border1_n)から境界(q_border2_n)までの距離をΔarea(B_n)と呼ぶ。また、エリアB_nの通行推奨度はX_n%である。ただし、n=1の場合、エリアB_1の内部に近接ノード(Qnear)が含まれる場合もあり得る。そのため、n=1の場合、Δarea(B_1)は、近接ノード(Qnear)から境界(q_border2_n)までの距離であるとする。
【0044】
「rest」は、線分が伸びていく際の伸長力の余力を示す変数であり、初期値はΔqである。伸長力は、線分を伸ばす長さ÷通行推奨度で算出される値であり、通行推奨度が100%であるエリア内で線分を長さX伸ばす場合の伸長力はXである。一方、通行推奨度が50%であるエリア内で線分を長さX伸ばす場合の伸長力は2Xになる。エリアを通過するごとに伸長力を減じていき、restが0になると、線分はそれ以上伸びることができず停止することになる。Δq’は、アルゴリズム1によって算出される線分の長さを格納する変数であり初期値はゼロである。
【0045】
まず、ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)に向けて線分を伸ばした場合に、エリアB_1の途中で線分が停止するのか、線分がエリアB_1を突き抜けるのかを算出する。
【0046】
ΔareaB_1÷X_1%がrest以上である場合(つまり、線分がエリアB_1を突き抜ける余力が無い場合)、線分はエリアB_1の途中又は境界(q_border2_1)で停止する(
図8(a)においてn=1)。この場合、ルート作成部101は、Δq’にrest×X_1%(つまり、線分が伸びる長さ)を加算する。
【0047】
一方、ΔareaB_1÷X_1%がrest未満である場合(つまり、線分がエリアB_1を突き抜ける余力がある場合)、線分はエリアB_1の途中で停止せず、エリアB_2に進入する(
図8(b)においてn=1)。この場合、ルート作成部101は、Δq’にΔareaB_1を加算し、restから、ΔareaB_1÷X_1%を減算する。
【0048】
次に、線分がエリアB_2に進入した場合、ルート作成部101は、エリアB_2の境界(q_border1_2)から地点qに向けて線分を伸ばした場合に、エリアB_2の途中で線分が停止するのか、線分がエリアB_2を突き抜けるのかを算出する。
【0049】
もし、ΔareaB_2÷X_2%がrest以上である場合、線分はエリアB_2の途中又は境界(q_border2_2)で停止する(
図8(a)においてn=2)。この場合、ルート作成部101は、Δq’にrest×X_2%(線分が伸びる長さ)を加算する。
【0050】
一方、ΔareaB_2÷X_2%がrest未満である場合、線分はエリアB_2の途中で停止せず、エリアB_3に進入することになる(
図8(b)においてn=2)。この場合、ルート作成部101は、Δq’にΔareaB_2を加算し、restから、ΔareaB_2÷X_2%を減算する。
【0051】
ルート作成部101は、近接ノード(Qnear)から地点qに向けて伸ばした線分がいずれかのエリア内で停止するまで(つまり
図8(a)の状態になるまで)、線分を伸ばす処理を繰り返し行うことで、線分が停止した際のΔq’の値を算出する。最後に、ルート作成部101は、近接ノード(Qnear)から地点qに向かってΔq’進んだ地点に新ノード(Qnew)を配置する。
【0052】
続いて、
図9を用いて具体例を説明する。以下の説明においても、パーセントは割合に換算して計算するものとする。
図9(a)は、通行推奨度が60%である場合に、新ノード(Qnew)が配置される地点を示している。
図9(a)の例では、近接ノード(Qnear)から地点qを結ぶ線分の全てが、通行推奨度が60%であるエリアに含まれている。この場合、rest(=Δq)は、ΔareaB_1(=Δq)÷60%よりも小さいことから、近接ノード(Qnear)から伸びた線分は、エリアB_1の途中で停止する(
図8(a)のパターン)。従って、Δq’=Δq×60%になる。最後に、ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)に向かってΔq’進んだ地点に、新ノード(Qnew)を配置する。
【0053】
図9(b)は、通行推奨度が40%である場合に、新ノード(Qnew)が配置される地点を示している。
図9(b)の例では、近接ノード(Qnear)から地点qを結ぶ線分の全てが、通行推奨度が40%であるエリアに含まれている。この場合、rest(=Δq)は、ΔareaB_2(=Δq)÷40%よりも小さいことから、近接ノード(Qnear)から伸びた線分は、エリアB_2の途中で停止する(
図8(a)のパターン)。従って、Δq’=Δq×40%になる。最後に、ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)に向かってΔq’進んだ地点に、新ノード(Qnew)を配置する。
【0054】
図9(c)は、通行推奨度が異なるエリアが混在している場合に、新ノード(Qnew)が配置される地点を示している。ルート作成部101は、まず、rest(=Δq)と、ΔareaB_1÷100%(=Δq×45%÷100%)とを比較する。この場合、rは、ΔareaB_1÷100%よりも大きいことから、近接ノード(Qnear)から伸びた線分は、エリアB_1を突き抜ける(
図8(b)のパターン)。従って、ルート作成部101は、Δq’にΔareaB_1を加算し、restから、ΔareaB_1÷100%を減算する。この時点で、rest=Δq×55%(=Δq-Δq×45%÷100%)である。
【0055】
次に、ルート作成部101は、rest(=Δq×55%)と、ΔareaB_2÷60%(=Δq×25%÷60%)とを比較する。この場合、restは、ΔareaB_2÷60%よりも大きいことから、近接ノード(Qnear)から伸びた線分は、エリアB_2を突き抜ける(
図8(b)のパターン)。従って、ルート作成部101は、Δq’にΔareaB_2を加算し、restから、ΔareaB_2÷60%を減算する。この時点で、rest=Δq×13.33%(=Δq×55%-Δq×25%÷60%)である。
【0056】
次に、ルート作成部101は、rest(=Δq×13.3%)と、ΔareaB_3÷40%(=Δq×30%÷40%)とを比較する。この場合、restは、ΔareaB_3÷40%よりも小さいことから、近接ノード(Qnear)から伸びた線分は、エリアB_3の途中で停止する(
図8(a)のパターン)。従って、ルート作成部101は、Δq’にrest×40%(=Δq×5.3%)を加算する。
【0057】
以上の手順によれば、Δq’=Δq×45%+Δq×25%+Δq×5.3%(つまり、Δq×75.3%)になる。続いて、ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)に向かってΔq’進んだ地点に、新ノード(Qnew)を配置する。
【0058】
なお、アルゴリズム1では、近接ノード(Qnear)から地点qまでの間に複数のエリアが含まれる場合、Δq’を以下のように算出するようにしてもよい。
図9(c)の例では、近接ノード(Qnear)から地点qを結ぶ線分のうち、45%の区間の通行推奨度は100%であり、25%の区間の通行推奨度は60%であり、30%の区間の通行推奨度は40%である。従って、Δq’=Δq×(45%×100%+25%×60%+30%×40%)、すなわち、Δq’=Δq×72%と算出するようにしてもよい。上述の方法と比較して計算量を削減することが可能である。
【0059】
また、特に優先的に通行通過させたいエリアについて100%を超える通行推奨度(例えば120%等)を与えた場合、100%を超える通行推奨度をそのまま用いてアルゴリズム1の処理を行うようにしてもよい。又は、空間内に含まれる各エリアの通行推奨度を、各エリアの通行推奨度の最大値で正規化した値(つまり、通行推奨度÷通行推奨度の最大値で算出される値)を用いてアルゴリズム1の処理を行うようにしてもよい。
【0060】
アルゴリズム1によれは、QinitとQnewとの間に追加される線分の長さが、線分が通過するエリアの通行推奨度が低いほど短くなる。つまり、通行推奨度が低いエリア内では線分が伸びにくくなるため、通行推奨度が低いエリアを通過して目的地までの経路が生成される可能性も低下することになる。従って、アルゴリズム1を用いることで、通行推奨度が小さいエリアを含む移動経路が生成される可能性を低下させることができる。
【0061】
(アルゴリズム2)
ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)に向かって所定距離(Δq)移動した地点に新ノード(Qnew)を配置する場合に、移動体の通行が推奨される度合いが低いエリアほど、新ノード(Qnew)を配置する確率(第2配置確率)が低くなるように調整する。
【0062】
図10は、アルゴリズム2による経路生成方法の一例を説明するための図である。ルート作成部101は、空間内で新ノード(Qnew)を配置する地点を仮決定し、仮決定した地点に新ノード(Qnew)を配置するか否かを、通行推奨度の大きさに応じて決定する。例えば、
図10に示すように、空間S内に、通行推奨度が0%であるエリアA1及びエリアA2、通行推奨度が40%であるエリアA3、通行推奨度が60%であるエリアA4、及び通行推奨度が100%であるエリアA1~A4以外のエリアが設定されているとする。
【0063】
ルート作成部101は、通行推奨度が100%であるエリア内の地点q1に新ノード(Qnew)を配置しようと仮決定したとする。この場合、ルート作成部101は、地点q1を100%の確率で新ノード(Qnew)にすると決定する。同様に、ルート作成部101は、通行推奨度が60%であるエリア内の地点q2に新ノード(Qnew)を配置しようと仮決定したとする。この場合、ルート作成部101は、地点q2を60%の確率で新ノード(Qnew)にすると決定する。もし、地点q2を新ノード(Qnew)にしないという決定をした場合、このq2を破棄して、再度配置地点(Qrand)を配置する処理からやり直す。
【0064】
同様に、ルート作成部101は、通行推奨度が40%であるエリア内の地点q3に新ノード(Qnew)を配置しようと仮決定したとする。この場合、ルート作成部101は、地点q3を40%の確率で新ノード(Qnew)にすると決定する。もし、地点q3を新ノード(Qnew)にしないという決定をした場合、このq3を破棄して、再度配置地点(Qrand)を配置する処理からやり直す。
【0065】
なお、新ノード(Qnew)を配置する地点を含むエリアの通行推奨度に基づいてアルゴリズム2の処理を行うのではなく、配置地点(Qnear)を含むエリアの通行推奨度に基づいてアルゴリズム2の処理を行うようにしてもよい。例えば、
図10において、地点q3に新ノード(Qnew)を配置しようと仮決定したとする。この場合、配置地点(Qnear3)を含むエリアの通行推奨度(100%)に基づいてアルゴリズム2の処理を行うようにしてもよい。
【0066】
また、新ノード(Qnew)を配置する地点を含むエリアの通行推奨度に基づいてアルゴリズム2の処理を行うのではなく、配置地点(Qnear)から新ノード(Qnew)までの線分が通過するエリアの通行推奨度のうち、最も通行推奨度が低いエリアの通行推奨度に基づいてアルゴリズム2の処理を行うようにしてもよい。例えば、
図10において、地点q3に新ノード(Qnew)を配置しようと仮決定したとする。この場合、配置地点(Qnear3)から新ノード(Qnew)までの線分を含むエリアの通行推奨度のうち、最も通行推奨度が低いエリアの通行推奨度は40%である。従って、ルート作成部101は、通行推奨度は40であるものとしてアルゴリズム2の処理を行う。
【0067】
また、アルゴリズム2において、新ノード(Qnew)を配置しようと仮決定した地点に新ノードを配置しないという決定をした場合、配置地点(Qrand)を配置する処理からやり直すのではなく、配置地点(Qrand)からの距離が次に近い近接ノード(Qnear)を選択して再度アルゴリズム2の処理を行うようにしてもよい。
【0068】
また、特に優先的に通行通過させたいエリアについて100%を超える通行推奨度(例えば120%等)を与えた場合、空間内に含まれる各エリアの通行推奨度を、各エリアの通行推奨度の最大値で正規化した値(つまり、通行推奨度÷通行推奨度の最大値で算出される値)を用いてアルゴリズム2の処理を行うようにしてもよい。
【0069】
アルゴリズム2によれば、通行推奨度が低いエリアほど新ノード(Qnew)が配置される確率が低下する。つまり、通行推奨度が低いエリアに向かって線分が追加される確率が低下することになる。従って、アルゴリズム2を用いることで、通行推奨度が低いエリアを含む移動経路が生成される可能性を低下させることができる。
【0070】
(アルゴリズム3)
ルート作成部101は、通行推奨度に基づいて配置地点(Qrand)を配置する確率を調整するようにしてもよい。つまり、配置地点(Qrand)を配置する場合に、移動体の通行が推奨される度合いが低いエリアほど、配置地点(Qrand)を配置する確率(第1配置確率)が低くなるように調整するようにしてもよい。
【0071】
また、アルゴリズム3は、以下に示す方法であってもよい。まず、ルート作成部101は、どの通行推奨度のエリアに配置地点(Qrand)を配置するのかを決定する。このとき、ルート作成部101は、通行推奨度が低いエリアほど、配置地点(Qrand)を配置する確率を減らすようにする。続いて、ルート作成部101は、選択したエリア内で任意の場所を配置地点(Qrand)として選択する。
【0072】
具体例を説明する。例えば、ルート作成部101は、0~199までの数値のうち、0~99、100~159、及び、160~199を、それぞれ、通行推奨度が100%のエリア、通行推奨度が60%のエリア、及び通行推奨度が40%のエリアに割り当てておく。まず、ルート作成部101は、0から199までの数値のうちいずれか1つの数値をランダムに選択することで、どの通行推奨度のエリアに配置地点(Qrand)を配置するのかを決定する。例えば「170」が選択された場合、ルート作成部101は、通行推奨度が40%のエリアA3に配置地点(Qrand)を配置することになる。続いて、ルート作成部101は、通行推奨度が40%のエリアA3の中で、配置地点(Qrand)を配置する地点をランダムに選択する。
【0073】
アルゴリズム3によれば、通行推奨度が低いエリアほど配置地点(Qrand)が配置される確率が低下する。つまり、通行推奨度が低いエリアに向かって線分が追加される確率が低下することになる。従って、アルゴリズム3を用いることで、通行推奨度が低いエリアを含む移動経路が生成される可能性を低下させることができる。
【0074】
(アルゴリズム4)
ルート作成部101は、配置地点(Qrand)に近い近接ノード(Qnear)を選択する場合に、空間内に存在するノードについて、ノードが存在するエリアにおける移動体20の通行が推奨される度合いが低いほど、配置地点からの距離が遠いと判定するように、配置地点に近接する近接ノードの選択基準を調整する。
【0075】
図11は、アルゴリズム4による経路生成方法の一例を説明するための図である。ルート作成部101は、配置地点(Qrand)と、空間内に存在する各ノードとの間の距離に各ノードが存在するエリアの通行推奨度を割合に換算した値の逆数を乗算し、通行推奨度を割合に換算した値の逆数を乗算した距離が最も短いノードを、近接ノード(Qnear)として決定するようにしてもよい。例えば、ルート作成部101は、通行推奨度が100%のエリアC1に存在するノードq1と配置地点(Qrand)との間の距離については、「d1×1」であると算出する。同様に、ルート作成部101は、通行推奨度が50%のエリアC2に存在するノードq2と配置地点(Qrand)との間の距離については、「d2×1/0.5」であると算出する。つまり、ノードq2と配置地点(Qrand)との間の距離は、実際の距離d2より約2倍長いとみなされることになる。
【0076】
また、アルゴリズム4は、次に示す方法であってもよい。例えば、ルート作成部101は、配置地点(Qrand)に近い近接ノード(Qnear)を選択する場合に、該近接ノード(Qnear)と配置地点(Qrand)との間に存在するエリアにおける通行推奨度が低いほど、配置地点からの距離が遠いと判定するように、配置地点に近接する近接ノードの選択基準を調整するようにしてもよい。例えば、各近接ノード(Qnear)と配置地点(Qrand)とを結ぶ線分が1~NまでのN個のエリアを通過する場合を想定する。この場合において、エリアnにおける通過距離及び通行推奨度(割合に換算した通行推奨度)をそれぞれln及びWnとした場合、各近接ノード(Qnear)と配置地点(Qrand)との間の距離L'は、以下の式で表現することができる。
【数1】
例えば
図11において、Q1とQrandとを結ぶ線分のうちエリアC1に含まれる部分の距離を距離Aとし、エリアC2に含まれる部分の距離を距離Bとした場合、Q1からQrandまでの距離は、距離A÷1+距離部B÷0.5で算出される。
【0077】
アルゴリズム4によれば、通行推奨度が低いエリアに存在するノードほど、又は、ノードと配置地点との間に存在するエリアにおける通行推奨度が低いほど、近接ノード(Qnear)として選択される確率が低下する。線分は、選択された近接ノード(Qnear)から伸びることになるため、近接ノード(Qnear)として選択される確率が低下するということは、その近接ノード(Qnear)から線分が伸びる確率が低下することと同義である。線分が伸びる確率が低下すると、通行推奨度が低いエリア内に形成される線分の数が低下することになり、その結果、通行推奨度が低いエリアを含む移動経路が生成される可能性も低下することになる。
【0078】
(アルゴリズム5)
アルゴリズム5は、RRT*に対応するアルゴリズムである。ルート作成部101は、新ノード(Qnew)が存在するエリアにおける通行推奨度が低いほど、新ノード(Qnew)を基準とする所定の範囲の大きさが小さくなるように調整する。具体的には、新ノード(Qnew)を基準とする所定の範囲の大きさは、RRT*アルゴリズムに規定される計算式で示される半径×通行推奨度(割合に換算した通行推奨度)で算出される。
【0079】
図3を用いて具体例を説明する。例えば
図3において、新ノード(Qnew)が存在するエリアの通行推奨度が100%である場合の半径rはAであると仮定する。この場合において、新ノード(Qnew)が存在するエリアの通行推奨度を50%とした場合、新ノード(Qnew)を基準とする円の半径rは、A×0.5になる。
【0080】
アルゴリズム5によれば、新ノード(Qnew)を基準とする所定の範囲の大きさが小さくなるにつれて、Qminとして選択可能な候補ノードが当該所定の範囲の中に存在しなくなる可能性が高まることになる。つまり、QminからQnewへの結線が行われなくなる可能性も高まることになる。従って、アルゴリズム5を用いることで、通行推奨度が低いエリアを含む移動経路が生成される可能性を低下させることができる。
【0081】
(アルゴリズム6)
アルゴリズム6は、RRT*に対応するアルゴリズムである。ルート作成部101は、出発地から1以上の候補ノードの各々までの移動経路のコストについて、移動経路が通過するエリアにおける通行推奨度が低いほどコストが大きくなるように、移動経路のコストを調整する。
【0082】
ここで、出発地から各候補ノードまでを結ぶ線分が1~NまでのN個のエリアを通過する場合を想定する。この場合において、当該線分がエリアnを通過する通過距離及びエリアnの通行推奨度(割合に換算した通行推奨度)をそれぞれln及びWnとした場合、出発地から各候補ノードまでの移動経路のコストCは、以下の式で表現することができる。
【数2】
なお、アルゴリズム6において、ルート作成部101は、出発地から1以上の候補ノードの各々を経由して新ノード(Qnew)に至るまでの移動経路のコストについて、移動経路が通過するエリアにおける通行推奨度が低いほどコストが大きくなるように、移動経路のコストを調整するようにしてもよい。
【0083】
アルゴリズム6によれば、1以上の候補ノードの各々について、通行推奨度が低いエリアを通過した候補ノードほどコストが大きくなる可能性がある。つまり、通行推奨度が低いエリアを通過した候補ノードほど、新ノード(Qnew)と結線される可能性が低くなる可能性がある。従って、アルゴリズム6を用いることで、通行推奨度が低いエリアを多く通過した移動経路が生成される可能性を低下させることができる。
【0084】
<変形例>
経路生成装置10が生成する移動経路において、目的地は、特定の地点に限られず、複数の点の集合における任意の地点であってもよい。例えば、
図12に示すように、空間内に設けられた所定の面積又は体積を有するエリアG1、又は、線状のエリアG2を目的地としてもよい。経路生成装置10が移動経路を生成する領域又は空間内には、これらの複数の点の集合で表されるエリアが複数設定されていてもよい。目的地がエリアG1の場合、ルート作成部101は、Qnew1とエリアG1の中で最もQnew1に近い地点との間の距離が所定の距離以下になった場合に、Qnew1と当該地点との間を線分L1で結ぶことで、出発地から目的地までの移動経路を生成する。同様に、目的地がエリアG2の場合、ルート作成部101は、Qnew2とエリアG2の中で最もQnew2に近い地点との間の距離が所定の距離以下になった場合に、Qnew2と当該地点との間を線分L2で結ぶことで、出発地から目的地までの移動経路を生成する。これにより、目的地が特定の地点ではないような場合であっても、RRTアルゴリズムを用いて移動経路を生成することが可能になる。
【0085】
また、N次元空間において、N-1次元で表される領域を目的地とするようにしてもよい。例えば、3次元空間においては、目的地が面(つまり2次元の領域)であってもよい。具体例として、3次元空間において線分が高度100mの高さに達した場合に目的地に到達したと判定されるようにしてもよい。
【0086】
また、高圧鉄塔、河川及び移動体の通過予定ルートなど、地形的に連続なエリアを目的地とするようにしてもよい。通過予定ルートを目的地とする場合の利用例として、例えば、移動体が飛行ルートから外れた場合に、元の通過予定ルートに復帰させる際のルート探索に利用すること等が考えられる。
【0087】
また、本実施形態において、エリア情報には、1以上のエリアの各々に適用される移動体の通行推奨度が、近接ノード(Qnear)から伸びる線分(つまりQnearからQrandまでを結ぶ線分)がエリアに進入する際の方向ごとに設定されていてもよい。例えば、
図12におけるエリアA3において、上方向からエリアA3に線分が進入する場合と、左方向からエリアA3に線分が進入する場合と、右方向からエリアA3に線分が進入する場合と、下方向からエリアA3に線分が進入する場合とで、それぞれ異なる通行推奨度が設定されていてもよい。
【0088】
若しくは、エリア情報には、1以上のエリアの各々に適用される移動体の通行推奨度が、近接ノード(Qnear)から伸びる線分(つまりQnearからQrandまでを結ぶ線分)がエリアに進入する角度に応じて変化するように設定されていてもよい。この場合、通行推奨度は、線分がエリアに進入する角度(又は線分のベクトル)を入力することで通行推奨度を出力する関数を用いて算出されるようにしてもよい。
【0089】
図12の例では、左方向から進入する場合は30%に設定され、上方向から進入する場合は80%に設定されていると仮定する。本変形例は、アルゴリズム1又はアルゴリズム4を用いて移動経路を生成する際に適用することができる。以下、具体的に説明する。
【0090】
まず、アルゴリズム1を用いて移動経路を生成する際、ルート作成部101は、近接ノード(Qnear)からΔq進んだ地点までを結ぶ線分が、通行推奨度が設定されたエリアに進入する場合に、線分が該エリアに進入する方向又は進入角度に対応する通行推奨度に応じて、近接ノード(Qnear)から新ノード(Qnew)までを結ぶ線分の長さ(つまりΔq)が短くなるように新ノード(Qnew)を配置する。
【0091】
図12を用いて具体例を説明する。
図12の例では、近接ノード(Qnear3)からΔq進んだ地点q3までを結ぶ線分は、エリアA3に左方向から進入している。この場合、ルート作成部101は、通行推奨度は30%であるとしてΔq’の計算を行う。同様に、近接ノード(Qnear4)からΔq進んだ地点q4までを結ぶ線分は、エリアA3に上方向から進入している。この場合、ルート作成部101は、通行推奨度は80%であるとしてΔq’の計算を行う。
【0092】
次に、アルゴリズム4を用いて移動経路を生成する際、ルート作成部101は、近接ノード(Qnear)から配置地点(Qrand)までを結ぶ線分が、エリア情報に格納されるいずれかのエリアに進入する場合に、線分が該エリアに進入する方向又は進入角度に対応する通行推奨度に応じて、近接ノード(Qnear)と配置地点(Qrand)との間の距離を算出する。
【0093】
図12を用いて具体例を説明する。
図12の例では、近接ノード(Qnear3)からランダム位置(Qrand)までを結ぶ線分は、エリアA3に左方向から進入している。この場合、ルート作成部101は、通行推奨度は30%であるとして、近接ノード(Qnear3)と配置地点(Qrand)との間の距離を算出する。詳細には、ルート作成部101は、近接ノード(Qnear3)と配置地点(Qrand)との間の距離は、通行推奨度が100%である場合の距離よりも約3.3倍遠いと算出する。同様に、近接ノード(Qnear4)からランダム位置(Qrand)までを結ぶ線分は、エリアA3に上方向から進入している。この場合、ルート作成部101は、通行推奨度は80%であるとして、近接ノード(Qnear4)と配置地点(Qrand)との間の距離を算出する。詳細には、ルート作成部101は、近接ノード(Qnear4)と配置地点(Qrand)との間の距離は、通行推奨度が100%である場合の距離よりも約1.25倍遠いと算出する。
【0094】
また、本実施形態において、エリア情報には、アルゴリズムごとに異なる通行推奨度が設定されていてもよい。たとえば
図6に示すエリア情報おいて、各エリア位置に対応する通行推奨度が、アルゴリズム1に対応する通行推奨度と、アルゴリズム2に対応する通行推奨度と、アルゴリズム3に対応する通行推奨度とに分けて格納されていてもよい。
【0095】
また、本実施形態では、経路生成装置10が移動体20に組み込まれていてもよい。すなわち、移動体20は、自ら移動経路を生成して移動することとしてもよい。この場合、通信ネットワークN及び通信IF13は不要になる。
【0096】
また、本実施形態では、経路生成装置10が生成する移動経路を地図データに格納することで地図データを製造するようにしてもよい。更に、移動体20は、当該地図データを記憶し、当該地図データに格納された複数の移動経路のうち任意の移動経路を選択することで、ルート探索を行うようにしてもよい。或いは、移動体20は、当該地図データに格納された複数の移動経路のうちいずれか1つの移動経路を、ダイクストラ法やA*法などの探索アルゴリズムと組み合わせることで選択することで、ルート探索を行うようにしてもよい。
【0097】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態で説明したフローチャート、シーケンス、実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【0098】
1…移動管理システム、10…経路生成装置、11…CPU、12…記憶装置、13…通信IF、14…入力デバイス、15…出力デバイス、20…移動体、101…ルート作成部、102…ルート出力部、103…記憶部