経路探索装置及び経路探索用データ生成方法
【課題】 面的な空間を含む経路の探索、点・線・面混在方式による探索経路の出力を可能にする。
【解決手段】 座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データの組み合わせからなる幾何図形データを含む点・線・面混在型データ1と、幾何図形データと合成され面データに代表点を設定して双方向にネットワークを形成する線データの組み合わせからなる経路探索用データ2と、経路探索用データに基づき経路探索を行う経路探索手段3、4と、経路探索手段により探索された経路を幾何図形データに基づき点・線・面混在方式による経路を描画し出力する経路出力手段5とを備え、目的地までの最適経路を探索して出力する。
【解決手段】 座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データの組み合わせからなる幾何図形データを含む点・線・面混在型データ1と、幾何図形データと合成され面データに代表点を設定して双方向にネットワークを形成する線データの組み合わせからなる経路探索用データ2と、経路探索用データに基づき経路探索を行う経路探索手段3、4と、経路探索手段により探索された経路を幾何図形データに基づき点・線・面混在方式による経路を描画し出力する経路出力手段5とを備え、目的地までの最適経路を探索して出力する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、目的地までの最適経路を探索して出力する経路探索装置及び経路探索用データ生成方法に関する。
【背景技術】
【0002】
最適経路探索は、従来、車両用ナビゲーション装置において、道路を示す線、並びにその端点及び交差点を示す点の集まりで表現される道路ネットワークを使って行われてきた(例えば、特許文献1、2参照)。
【特許文献1】特開平10−239080号公報
【特許文献2】特開2004−28846号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、従来のナビゲーション装置における最適経路探索の方式は、広場や公園などの面的な空間において、移動体の自由な行動を保証するものではなく、特に歩行や車椅子による移動にとっては、不便となる場合がある。この問題を解決するためには、道路を互いに連結する複数の面の集まりとして捉え、その上を利用者の自由意志で移動できるようにすればよい。しかし郊外、山間部及び細街路まで面によって表現すると、データ作成のためのコストが実現への障壁となる。そこで、都市の中心部など歩行者等が多い空間は面とするが、その他は線及び点によってモデル化し、点・線・面混在型のデータを使って歩行者を誘導することが考えられる。しかし、これまでそのような方式はない。
【課題を解決するための手段】
【0004】
本発明は、上記課題を解決するものであって、面的な空間を含む経路の探索、点・線・面混在方式による探索経路の出力を可能にするものである。
【0005】
そのために本発明は、目的地までの最適経路を探索して出力する経路探索装置として、座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データの組み合わせからなる幾何図形データを含む点・線・面混在型データと、前記幾何図形データと合成され面データに代表点を設定して双方向にネットワークを形成する線データの組み合わせからなる経路探索用データと、前記経路探索用データに基づき経路探索を行う経路探索手段と、前記経路探索手段により探索された経路を前記幾何図形データに基づき点・線・面混在方式による経路を描画し出力する経路出力手段とを備えたことを特徴とする。
【0006】
目的地までの最適経路を探索するための経路探索用データを生成する方法として、点データ、線データ及び面データからなる幾何図形データ、前記点、線及び面に対応するノード、エッジ及びフェイスデータからなり幾何図形同士の隣接関係のみを表現する位相複体データ、幾何図形の各レコード及び位相複体データの各レコードの1対1関係を示す幾何位相関連データを入力として、前記幾何図形データの面データに対応する位相複体データのフェイスデータを新たにノードに置換してノードデータとエッジデータによりネットワークデータを経路探索基本データとして生成し、前記経路探索基本データ、幾何図形データ及び幾何位相関連データからなる経路探索用データを生成することを特徴とする。
【発明の効果】
【0007】
本発明によれば、面的な空間を含む経路を探索する場合においても、通常の最適経路探索法によって、これが可能となる。つまり、点・線・面混在型データを経路探索用データに自動的に変換することによって、データ量が多くなる面データを直接処理対象とすることなく経路探索を可能にするとともに、経路探索用データが元の点・線・面混在型データと関連をもつことによって、より現実的な表示を可能とするものである。
【発明を実施するための最良の形態】
【0008】
以下、本発明の実施の形態を図面を参照しつつ説明する。図1は本発明に係る経路探索装置の実施の形態を示す図、図2は幾何図形データの構成例を示す図、図3は経路探索用データの構成例を示す図、図4は探索経路の出力例を示す図である。図中、1は幾何図形データ、2は経路探索用データ、3は地点入力部、4は経路探索部、5は経路出力部を示す。
【0009】
図1において、幾何図形データ1は、座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データからなる。例えば図2に示すように点データは、2次元の座標をもつ点レコードの集まりであり、点レコードはそれぞれの点の識別子、x座標及びy座標の組である。線データは、点の列をもつ線レコードの集まりであり、線レコードは線の識別子及び点の列の組である。ここで、点列の第1点を始点、最終の点を終点という。面データは、その境界を左回りに廻る点の列をもつ面レコードの集まりであり、面レコードは面の識別子及び点列の組である。ここで、隣接する点列の端点は一致しなければならない。
【0010】
経路探索用データ2は、図3に示すように幾何図形データの面データs1、s2に代表点を設定してその代表点cp1、cp2を線データv1、v4、v9に付加し、その代表点を含む点列により経路探索のために双方向にネットワークを形成する線データcv11、cv111、cv12、cv121、……を定義したものである。例えば図2に示す幾何図形データでは、面データs1、s2があって、その面を回る線データv2、v3、v7〜v10が設定されているが、経路探索用データ2では、図3に示すように代表点cp1、cp2の設定に伴い、ネットワークを形成する線データとして、例えばv1に対応するcv11(cv111)、v4に対応するcv4(cv41)、cv10(cv101)、cv12(cv121)が設定される。
【0011】
地点入力部3は、経路探索を行う際の現在地や出発地、目的地、経由地などの地点を入力し、さらには最短距離経路、車道優先経路、歩道優先経路など好みの探索条件を入力するものであり、経路探索部4は、地点入力部3の入力に基づき経路探索用データ2を読み出して最適経路を探索し、経路出力部5は、その探索された経路を面データを有する幾何図形データ1を読み出して、図4(A)に示すような点・線方式ではなく、図4(B)に示すような点・線・面混在方式で表示して出力するものである。
【0012】
次に、経路探索用データを生成する装置、アルゴリズムについて説明する。図5は経路探索用データ生成装置のモジュール構成例を示す図、図6は位相複体データの構成例を示す図、図7は幾何位相関連データの構成例を示す図、図8は双対データの構成例を示す図、図9は経路探索基本データの構成例を示す図である。図中、11は点・線・面混在型データ、12は双対データ生成モジュール、13は経路探索基本データ生成モジュール、14は幾何データ合成モジュールを示す。
【0013】
図5において、双対データ生成モジュール12は、点・線・面混在型データ11から双対データを生成して中間データ1として出力し、経路探索基本データ生成モジュール13は、双対データ生成モジュール1で生成された双対データと点・線・面混在型データ11から経路探索基本データを生成して中間データ2として出力し、幾何データ合成モジュール14は、経路探索基本データ生成モジュール13で生成された経路探索基本データと点・線・面混在型データ11から経路探索用データを生成するものである。
【0014】
点・線・面混在型データ11は、3つのデータからなり、その1は幾何図形データ、その2は位相複体データ、そしてその3は幾何位相関連データである。位相複体データは、幾何図形同士の隣接関係のみを表現するデータであり、図6に示すようなフェイスデータ、エッジデータ及びノードデータからなる。隣接関係は、図形及びその境界、並びに境界及びその境界が囲む図形の関係で表現する。前者の関係は境界関係、後者の関係は双対境界関係という。例えば、線の境界は始点と終点であり、始点及び終点の双対境界はその点から出る線及びその点に入る線である。また、面の境界は線の集まりであり、線の双対境界は左右にある面である。なお、点の境界はなく、面の双対境界はない。位相複体データにおいて、点・線・面という用語を使用すると、幾何図形と混同されるので、それぞれに対応するものとしてここではノード、エッジ及びフェイスという用語を使う。
【0015】
ノードデータは、双対境界となる出入りするエッジを示すノードレコードの集まりであり、ノードレコードはノードの識別子、出るエッジ、入るエッジの組である。エッジデータは、境界である始終ノード及び双対境界である左右フェイスをもつエッジレコードの集まりであり、エッジレコードはエッジの識別子、始点ノード、終点ノード、左側フェイス及び右側フェイスの組である。フェイスデータは、境界となるエッジ列をもつフェイスレコードの集まりであり、フェイスレコードはフェイスの識別子及びエッジ列の組である。ここで、フェイスの境界は左側にフェイスの内部が来るように、左回りでエッジを並べるものとする。また、エッジの始点から終点の方向がこのエッジの順序と反対になる場合は負号をエッジにつけて表現する。例えば、フェイス識別子flにおいてe6は右側にf1を見る方向になっているので、エッジ列の中では負号をつけて表現する。なお、位相複体データの外側を1つのフェイスとして扱い、これをユニバーサルフェイスと呼ぶ。ユニバーサルフェイスの境界は位相複体データ全体の境界となる。
【0016】
幾何位相関連データは、図7に示すような幾何図形の各レコード及び位相複体データの各レコードの1対1関係を示す幾何位相関連レコードの集まりであり、幾何位相関連レコードは、幾何要素の識別子及びそれに対応する位相要素の識別子の組である。このデータによって、位相要素のグラフィックな表現が可能になる。なお、位相要素からそれに関連する幾何要素を求めることを、ここでは幾何実現という。
【0017】
双対データ生成モジュール12は、点・線・面混在型データ11を例えば外部ファイルから入力して、双対データを中間データ1として、例えばRAMに出力するモジュールである。双対データ生成モジュール12のアルゴリズムは、図6に示すように
1)位相複体データにおいて、各フェイスf1、f2に対応する新たなノードを生成する。ただし、ユニバーサルフェイスuの場合は作らない。
2)2つのフェイスがエッジを境界上で共有するときこれに対応する新たなエッジをつくる。ただし、両側ともにユニバーサルフェイスのときは対応する新たなエッジは作らない。
3)新たにできるエッジはもとのエッジの左側から右側を向く。また、新たなエッジの始点及び終点ノードはもとのフェイスから新たにできたノードとする。このようにして新たにできた位相要素は、もとの位相要素が保持していた幾何実現を引き継ぐ。
4)この処理の結果得られる双対データを中間データ1として例えばRAMに出力する。双対データは、位相複体データからフェイスデータを除いた仕様に従う。また、エッジレコードから左・右のフェイスを示す項目も削除するので、エッジレコードはエッジ識別子、始点ノード及び終点ノードの組となる。双対データでは、例えば図8に示すように、フェイスfl、f2がそれぞれ新たなノードdnl、dn2になり、両フェイスの境界は新たなエッジde10になる。また、dnl、dn2の幾何実現は図2に示したsl、s2になる。de10の幾何実現はv10である。
【0018】
経路探索基本データ生成モジュール13は、双対データの中間データ1を入力して、経路探索基本データを中間データ2として、例えばRAMに出力するモジュールである。このモジュールは、中間データ1として出力された面同士の隣接関係を示す双対データ及び、元の位相複体データ中のノード・エツジデータを結合する働きをもつ。以下、出力する中間データ2の仕様、及びモジュールが実現するアルゴリズムを説明する。
【0019】
中間データ2(経路探索基本データ)の仕様は、中間データ1に、元からあったノード・エッジ及び、このモジュールで生成されるエッジを追加することによってできあがるものであり、新たな種類のデータ項目が追加されるわけではないので、その仕様は中間データ1と同じである。
【0020】
経路探索用基本データの生成アルゴリズムは、図9に示すように
1)もとの位相複体データの中にあるノードそれぞれについて、出入りするエッジ全てがユニバーサルフェイスの境界となる場合は、そのノードのコピーを作成し(図6におけるnl、n4、n5、n6、n10)、これをノードデータに追加する。
【0021】
2)もとの位相複体データの中にあるエッジの中で、左右がユニバーサルフェイスとなるものをエッジデータにコピーし(図6におけるel、e3、e4、e5、e8)、以下の処理を行う。
2)−1.始点及び終点が接するフェイス集合を求める(図6ではe1の終点がf1及びf2、e3の始点がfl、e8の始点がf2、elの始点及び、e4、e5、e8の終点がユニバーサルフェイスに接する)。
2)−2.それらのフェイス集合の中にユニバーサルフェイスがある場合は、除去する(elの始点、e4、e5、e8の終点におけるu)。
2)−3.始点と接するフェイス集合に要素がないときは、ノードデータにある、この始点と同じ識別子をもったノードを始点ノードとする(elの始点はnl)。
2)−4.終点と接するフェイス集合に要素がないときは、ノードデータにある、この終点と同じ識別子をもったノードを終点ノードとする(e4、e5、e8についてはそれぞれn5、n6、n10)。
2)−5.始点と接するフェイス集合に要素が1つ以上あるときは、ノードデータにある、そのフェイスから生成されたノードの集合を新たな始点集合として生成する(e3、e8の始点はそれぞれdnl、dn2)。
2)−6.終点と接するフェイス集合に要素が1つ以上あるときは、ノードデータにある、フェィスから生成されたノードの集合を新たな終点集合とする(elの終点はdnl、dn2)。
2)−7.上記2)−3.から2)−6.の手続きで求められた始点集合(elの場合はnl)と終点集合(elの場合はdnl、dn2)の組み合わせを新たなエッジ集合とし、その要素全てをエッジデータに追加し、もとのエッジを削除する(elの場合は、新たにn1を始点、dnlを終点とするdell及びn1を始点、dn2を終点とするdel2が生成され、elは除かれる)。ただし、もとのエッジの幾何実現は新たなエッジに継承する(elの場合は、vlがdell及びdel2の幾何実現となる)。
【0022】
3)両方向のナビゲーションができるように、全てのエッジについて、逆方向のエッジを追加する(delll、del21、del01、de31、e41、e51、e81)。このとき、新たにできるエッジの幾何実現は、もとのエッジの幾何実現である曲線を逆方向にしたものを関連させることになる(例えばdelllの場合は、−vl)。
この手順でできるネットワークデータが経路探索基本データである。
【0023】
幾何図形データ合成モジュール14は、中間データ2を入力して、これに幾何図形データ及び幾何位相関連データを追加して、経路探索用データとして外部記憶装置に出力するモジュールである。このモジュールは、中間データ2として出力されたネットワーク及び点・線・面混在型データ中の幾何図形データを使い、経路探索で重要な働きをするノード間の距離を求める曲線の形状を合成する働きをもつ。以下、経路探索用データの仕様、及びモジュールが実現するアルゴリズムを説明する。
【0024】
経路探索用データの仕様は、経路探索基本データ、幾何図形データ及び幾何位相関連データからなる。幾何図形データは、点・線・面混合型データの中にある幾何図形データにおける点データ及び線データの組み合わせになる。幾何位相関連データの仕様は変わらない。
【0025】
幾何図形データ合成のアルゴリズムは、図3に示すように以下の手順で行われる。
【0026】
1)経路探索基本データ中の全てのエッジについて、以下のアルゴリズムを適用する。
1)−1.エッジの幾何実現としての曲線の始点について、その座標がエッジの始点ノードに一致しないときは、この曲線のはじめに始点ノードの位置を挿入する。始点ノードの幾何的な位置は、始点ノードの幾何実現としての曲面の中にある代表点を求めることによって得られる(例えば図9中、de3の幾何実現はv4でありp10が始点であったが、この操作により始点としてcplが追加され、幾何実現はcv4になる。同様の処理はde8でも行われcv9ができる)。代表点の位置は、曲面の重心を求めることによって定まるが、曲面の形状が凹の場合にはその位置が曲面の外に出ることがあるので、別の方式を用いることができる。例えば曲面の境界の内部にある点で、境界から最も遠い位置にある点(三角形では垂心に相当する)を求め、これを代表点として使うことも可能である。1)−2.エッジの幾何実現としての曲線の終点について、その位置がエッジの終点ノードに位置しないときは、この曲線の終わりに終点ノードの位置を追加する。終点ノードの幾何的な位置は、終点ノードの幾何実現としての曲面の中にある代表点を求めることによって得られる(例えば図9中、dellの幾何実現はv1でありp5が終点であったが、この操作によりcplが終点として追加され、cv11になる。同様の処理がdel2でも行われcvl2ができる)。
【0027】
図10は経路探索及びその結果を表示する装置の実施の形態を示す図、図11は最適経路探索のアルゴリズムを説明する図である。本実施形態により生成された経路探索用データを使った経路探索では、経路探索用データを外部記憶装置から入力し、経路探索用データ中の各エッジの延長(重量)を計算し、その結果並びに出発地及び到着地の地点を示す始点・終点データを入力して、その間の最適経路を求め、経路探索用データ中の幾何図形データを使ってディスプレイに表示する。この装置は、例えば図10に示すような重量計算モジュール21、最短経路探索モジュール22及び表示モジュール23からなる。
【0028】
重量計算モジュール21は、経路探索用データを入力して、経路探索基本データ中の各エッジに、その幾何実現としての曲線の延長を追加するモジュールである。また、曲線のうち、曲面の内部に位置する部分曲線には一定の係数(曲面係数)を延長に掛けて重量を求めることも可能である。これによって広場における歩行者の挙動が普通の道路と異なることに起因する歩行速度の違いを表現することができる。なお、経路探索用の重量は、曲線の延長に限るものではないので、特殊な重量を与える場合は、エッジ識別子及び重量を組にしたレコードの集合としての重量データをこのモジュールに入力して、各エッジに重量を割り振ることもできる。以下、重量計算モジュールが出力する重量付き経路探索用データの仕様及び重量計算のアルゴリズムを説明する。
【0029】
重量付き経路探索用データの仕様は、経路探索用データ中の経路探索基本データにあるエッジデータの各エッジレコードに重量項目を付加したものである。従って、エッジレコードは、エッジ識別子、始点ノード、終点ノード及び重量の組になる。
【0030】
重量計算のアルゴリズムは、
1)全てのエッジレコードについて、以下の処理を行う。
2)同一のエッジ識別子をもつレコードを幾何位相関連データから抽出し、対応する曲線レコードの識別子を得る。
3)曲線識別子をキーにして、曲線データから点列を得る。
4)点列の延長(重量)を求める。ただし、始点又は終点が曲面内にあるときは、その直後又は直前の点との距離に曲面係数を掛ける。指示がないとき、係数は1である。
5)重量を追加したエッジレコードを出力する。
【0031】
なお、曲線の延長以外のパラメタを重量として採用する場合は、全てのエッジレコードについて、以下の処理を行う。
1)エッジ識別子及び重量でできるレコードの集合としての重量データを入力する。
2)エッジレコード及び重量データの中で同一のエッジ識別子をもつものを選び、エッジレコードに重量を追加する。
3)重量を追加したエッジレコードを出力する。
【0032】
最短経路探索モジュール22では、出発点・到着点データ及び重量付き経路探索用データを入力し、出発点位置から到着点位置までの最短経路を求め、最短経路データを例えばRAMに出力する。以下、出発点・到着点データの仕様及び最短経路探索のアルゴリズムを説明する。
【0033】
出発点・到着点データの仕様は、出発点レコード及び到着点レコードの組みである。両者ともに、経路探索用データにある幾何図形データの点データ中の点レコードと同じ仕様であり、点の識別子は点データ中に存在するものの中から選ばれる。
【0034】
最短経路データの仕様は、出発点ノードから到着点ノードに至るエッジレコードの列であり、エッジデータと同じ仕様で作成される。
【0035】
最短経路探索アルゴリズムは、図11に示すように経路探索用データ中のネットワークデータを用い、以下の手順で行われる。
1)出発地に対応するノードを得る。これを出発点ノードとする。
2)出発点ノードに特別なラベル(*、0)をつけ、それ以外のノードにはラベル(φ、∞)をつける。ここでφはそのノードへの最短経路が未定義であることを示す。
3)ラベル付き・未探索のノードがなければ5)にゆく。そうでなければ、そのようなノードnを選びステップ4)にゆく。
4)ノードnを探索する。すなわち、ノードから出るエッジeに対してp(eの終点ノード)>p(n)+d(e)ならば、eの終点ノードにラベル(e、p(n)+d(e))をつけてeの終点ノードを未探索の状態にする。またノードnは既探索として3)に戻る。ここでpは、ラベルの右側の項目であり、その出発点からそのノードまでの総重量(距離)を示す。また、dはそのエッジの重量(延長)である。
5)到着地に対応するノードを得る。これを到着点ノードとする。
6)到着点ノードのラベルにある直前エッジeの識別子を得る。
7)このエッジの始点ノードのラベルにある直前エッジの識別子を得る。
8)7)の処理を、始点ノードが到着点ノードと一致するまで続ける。
9)ここまでの結果として、到着点ノードから出発点ノードまでのエッジ列が求められるので、これを逆順にすることによって、出発点から到着点までのエッジ列、つまり最短経路データが出力される。
図中の”ループ”は4)の処理の結果を示す。この例では5回の繰り返しで、dnlがらすべてのノードへの最短経路を求めている。また、到着地をn10とすると、6)から8)の処理によって、エッジ列(de8、de10)を求めることができ、その逆の列として、(de10、de8)がdnlからn10への最短経路となる。
【0036】
なお、ここで示した最短経路探索アルゴリズムは、ラベル修正法(伊理正夫監修、計算幾何学と地理情報処理、共立出版、1986、ppl52)と呼ばれる方法であるが、これ以外にも様々な方式が提案されているので、別のアルゴリズムを使う場合は、必要に応じてモジュールを入れ替えればよい。
【0037】
表示モジュール23は、最短経路データ及び経路探索用データ中にある幾何図形データを入力し、最短経路を示す幾何図形をディスプレイに表示する。以下、表示のためのアルゴリズムを説明する。
【0038】
表示のアルゴリズムは、
1)最短経路データ中の全てのエッジレコードについて、以下の処理を行う。
2)エッジの始点ノードについて、幾何実現が曲面のときは、その曲面を表示する。
3)エッジの幾何実現としての曲線を表示する。
4)2)、3)の処理を全てのエッジについて繰り返す。
5)最後のエッジの終点ノードの幾何実現が曲面のときは、その曲面を表示する。
【0039】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば上記実施の形態では、歩行者のための経路探索用として説明したが、車両用その他の経路探索用としても同様に適用してもよい。つまり、本発明による方式は、人間、自動車及びロボットを含む移動体の誘導全てについて用いることができる。
【図面の簡単な説明】
【0040】
【図1】本発明に係る経路探索装置の実施の形態を示す図である。
【図2】幾何図形データの構成例を示す図である。
【図3】経路探索用データの構成例を示す図である。
【図4】探索経路の出力例を示す図である。
【図5】経路探索用データ生成装置のモジュール構成例を示す図である。
【図6】位相複体データの構成例を示す図である。
【図7】幾何位相関連データの構成例を示す図である。
【図8】双対データの構成例を示す図である。
【図9】経路探索基本データの構成例を示す図である。
【図10】経路探索及びその結果を表示する装置の実施の形態を示す図である。
【図11】最適経路探索のアルゴリズムを説明する図である。
【符号の説明】
【0041】
1…幾何図形データ、2…経路探索用データ、3…地点入力部、4…経路探索部、5…経路出力部
【技術分野】
【0001】
本発明は、目的地までの最適経路を探索して出力する経路探索装置及び経路探索用データ生成方法に関する。
【背景技術】
【0002】
最適経路探索は、従来、車両用ナビゲーション装置において、道路を示す線、並びにその端点及び交差点を示す点の集まりで表現される道路ネットワークを使って行われてきた(例えば、特許文献1、2参照)。
【特許文献1】特開平10−239080号公報
【特許文献2】特開2004−28846号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、従来のナビゲーション装置における最適経路探索の方式は、広場や公園などの面的な空間において、移動体の自由な行動を保証するものではなく、特に歩行や車椅子による移動にとっては、不便となる場合がある。この問題を解決するためには、道路を互いに連結する複数の面の集まりとして捉え、その上を利用者の自由意志で移動できるようにすればよい。しかし郊外、山間部及び細街路まで面によって表現すると、データ作成のためのコストが実現への障壁となる。そこで、都市の中心部など歩行者等が多い空間は面とするが、その他は線及び点によってモデル化し、点・線・面混在型のデータを使って歩行者を誘導することが考えられる。しかし、これまでそのような方式はない。
【課題を解決するための手段】
【0004】
本発明は、上記課題を解決するものであって、面的な空間を含む経路の探索、点・線・面混在方式による探索経路の出力を可能にするものである。
【0005】
そのために本発明は、目的地までの最適経路を探索して出力する経路探索装置として、座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データの組み合わせからなる幾何図形データを含む点・線・面混在型データと、前記幾何図形データと合成され面データに代表点を設定して双方向にネットワークを形成する線データの組み合わせからなる経路探索用データと、前記経路探索用データに基づき経路探索を行う経路探索手段と、前記経路探索手段により探索された経路を前記幾何図形データに基づき点・線・面混在方式による経路を描画し出力する経路出力手段とを備えたことを特徴とする。
【0006】
目的地までの最適経路を探索するための経路探索用データを生成する方法として、点データ、線データ及び面データからなる幾何図形データ、前記点、線及び面に対応するノード、エッジ及びフェイスデータからなり幾何図形同士の隣接関係のみを表現する位相複体データ、幾何図形の各レコード及び位相複体データの各レコードの1対1関係を示す幾何位相関連データを入力として、前記幾何図形データの面データに対応する位相複体データのフェイスデータを新たにノードに置換してノードデータとエッジデータによりネットワークデータを経路探索基本データとして生成し、前記経路探索基本データ、幾何図形データ及び幾何位相関連データからなる経路探索用データを生成することを特徴とする。
【発明の効果】
【0007】
本発明によれば、面的な空間を含む経路を探索する場合においても、通常の最適経路探索法によって、これが可能となる。つまり、点・線・面混在型データを経路探索用データに自動的に変換することによって、データ量が多くなる面データを直接処理対象とすることなく経路探索を可能にするとともに、経路探索用データが元の点・線・面混在型データと関連をもつことによって、より現実的な表示を可能とするものである。
【発明を実施するための最良の形態】
【0008】
以下、本発明の実施の形態を図面を参照しつつ説明する。図1は本発明に係る経路探索装置の実施の形態を示す図、図2は幾何図形データの構成例を示す図、図3は経路探索用データの構成例を示す図、図4は探索経路の出力例を示す図である。図中、1は幾何図形データ、2は経路探索用データ、3は地点入力部、4は経路探索部、5は経路出力部を示す。
【0009】
図1において、幾何図形データ1は、座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データからなる。例えば図2に示すように点データは、2次元の座標をもつ点レコードの集まりであり、点レコードはそれぞれの点の識別子、x座標及びy座標の組である。線データは、点の列をもつ線レコードの集まりであり、線レコードは線の識別子及び点の列の組である。ここで、点列の第1点を始点、最終の点を終点という。面データは、その境界を左回りに廻る点の列をもつ面レコードの集まりであり、面レコードは面の識別子及び点列の組である。ここで、隣接する点列の端点は一致しなければならない。
【0010】
経路探索用データ2は、図3に示すように幾何図形データの面データs1、s2に代表点を設定してその代表点cp1、cp2を線データv1、v4、v9に付加し、その代表点を含む点列により経路探索のために双方向にネットワークを形成する線データcv11、cv111、cv12、cv121、……を定義したものである。例えば図2に示す幾何図形データでは、面データs1、s2があって、その面を回る線データv2、v3、v7〜v10が設定されているが、経路探索用データ2では、図3に示すように代表点cp1、cp2の設定に伴い、ネットワークを形成する線データとして、例えばv1に対応するcv11(cv111)、v4に対応するcv4(cv41)、cv10(cv101)、cv12(cv121)が設定される。
【0011】
地点入力部3は、経路探索を行う際の現在地や出発地、目的地、経由地などの地点を入力し、さらには最短距離経路、車道優先経路、歩道優先経路など好みの探索条件を入力するものであり、経路探索部4は、地点入力部3の入力に基づき経路探索用データ2を読み出して最適経路を探索し、経路出力部5は、その探索された経路を面データを有する幾何図形データ1を読み出して、図4(A)に示すような点・線方式ではなく、図4(B)に示すような点・線・面混在方式で表示して出力するものである。
【0012】
次に、経路探索用データを生成する装置、アルゴリズムについて説明する。図5は経路探索用データ生成装置のモジュール構成例を示す図、図6は位相複体データの構成例を示す図、図7は幾何位相関連データの構成例を示す図、図8は双対データの構成例を示す図、図9は経路探索基本データの構成例を示す図である。図中、11は点・線・面混在型データ、12は双対データ生成モジュール、13は経路探索基本データ生成モジュール、14は幾何データ合成モジュールを示す。
【0013】
図5において、双対データ生成モジュール12は、点・線・面混在型データ11から双対データを生成して中間データ1として出力し、経路探索基本データ生成モジュール13は、双対データ生成モジュール1で生成された双対データと点・線・面混在型データ11から経路探索基本データを生成して中間データ2として出力し、幾何データ合成モジュール14は、経路探索基本データ生成モジュール13で生成された経路探索基本データと点・線・面混在型データ11から経路探索用データを生成するものである。
【0014】
点・線・面混在型データ11は、3つのデータからなり、その1は幾何図形データ、その2は位相複体データ、そしてその3は幾何位相関連データである。位相複体データは、幾何図形同士の隣接関係のみを表現するデータであり、図6に示すようなフェイスデータ、エッジデータ及びノードデータからなる。隣接関係は、図形及びその境界、並びに境界及びその境界が囲む図形の関係で表現する。前者の関係は境界関係、後者の関係は双対境界関係という。例えば、線の境界は始点と終点であり、始点及び終点の双対境界はその点から出る線及びその点に入る線である。また、面の境界は線の集まりであり、線の双対境界は左右にある面である。なお、点の境界はなく、面の双対境界はない。位相複体データにおいて、点・線・面という用語を使用すると、幾何図形と混同されるので、それぞれに対応するものとしてここではノード、エッジ及びフェイスという用語を使う。
【0015】
ノードデータは、双対境界となる出入りするエッジを示すノードレコードの集まりであり、ノードレコードはノードの識別子、出るエッジ、入るエッジの組である。エッジデータは、境界である始終ノード及び双対境界である左右フェイスをもつエッジレコードの集まりであり、エッジレコードはエッジの識別子、始点ノード、終点ノード、左側フェイス及び右側フェイスの組である。フェイスデータは、境界となるエッジ列をもつフェイスレコードの集まりであり、フェイスレコードはフェイスの識別子及びエッジ列の組である。ここで、フェイスの境界は左側にフェイスの内部が来るように、左回りでエッジを並べるものとする。また、エッジの始点から終点の方向がこのエッジの順序と反対になる場合は負号をエッジにつけて表現する。例えば、フェイス識別子flにおいてe6は右側にf1を見る方向になっているので、エッジ列の中では負号をつけて表現する。なお、位相複体データの外側を1つのフェイスとして扱い、これをユニバーサルフェイスと呼ぶ。ユニバーサルフェイスの境界は位相複体データ全体の境界となる。
【0016】
幾何位相関連データは、図7に示すような幾何図形の各レコード及び位相複体データの各レコードの1対1関係を示す幾何位相関連レコードの集まりであり、幾何位相関連レコードは、幾何要素の識別子及びそれに対応する位相要素の識別子の組である。このデータによって、位相要素のグラフィックな表現が可能になる。なお、位相要素からそれに関連する幾何要素を求めることを、ここでは幾何実現という。
【0017】
双対データ生成モジュール12は、点・線・面混在型データ11を例えば外部ファイルから入力して、双対データを中間データ1として、例えばRAMに出力するモジュールである。双対データ生成モジュール12のアルゴリズムは、図6に示すように
1)位相複体データにおいて、各フェイスf1、f2に対応する新たなノードを生成する。ただし、ユニバーサルフェイスuの場合は作らない。
2)2つのフェイスがエッジを境界上で共有するときこれに対応する新たなエッジをつくる。ただし、両側ともにユニバーサルフェイスのときは対応する新たなエッジは作らない。
3)新たにできるエッジはもとのエッジの左側から右側を向く。また、新たなエッジの始点及び終点ノードはもとのフェイスから新たにできたノードとする。このようにして新たにできた位相要素は、もとの位相要素が保持していた幾何実現を引き継ぐ。
4)この処理の結果得られる双対データを中間データ1として例えばRAMに出力する。双対データは、位相複体データからフェイスデータを除いた仕様に従う。また、エッジレコードから左・右のフェイスを示す項目も削除するので、エッジレコードはエッジ識別子、始点ノード及び終点ノードの組となる。双対データでは、例えば図8に示すように、フェイスfl、f2がそれぞれ新たなノードdnl、dn2になり、両フェイスの境界は新たなエッジde10になる。また、dnl、dn2の幾何実現は図2に示したsl、s2になる。de10の幾何実現はv10である。
【0018】
経路探索基本データ生成モジュール13は、双対データの中間データ1を入力して、経路探索基本データを中間データ2として、例えばRAMに出力するモジュールである。このモジュールは、中間データ1として出力された面同士の隣接関係を示す双対データ及び、元の位相複体データ中のノード・エツジデータを結合する働きをもつ。以下、出力する中間データ2の仕様、及びモジュールが実現するアルゴリズムを説明する。
【0019】
中間データ2(経路探索基本データ)の仕様は、中間データ1に、元からあったノード・エッジ及び、このモジュールで生成されるエッジを追加することによってできあがるものであり、新たな種類のデータ項目が追加されるわけではないので、その仕様は中間データ1と同じである。
【0020】
経路探索用基本データの生成アルゴリズムは、図9に示すように
1)もとの位相複体データの中にあるノードそれぞれについて、出入りするエッジ全てがユニバーサルフェイスの境界となる場合は、そのノードのコピーを作成し(図6におけるnl、n4、n5、n6、n10)、これをノードデータに追加する。
【0021】
2)もとの位相複体データの中にあるエッジの中で、左右がユニバーサルフェイスとなるものをエッジデータにコピーし(図6におけるel、e3、e4、e5、e8)、以下の処理を行う。
2)−1.始点及び終点が接するフェイス集合を求める(図6ではe1の終点がf1及びf2、e3の始点がfl、e8の始点がf2、elの始点及び、e4、e5、e8の終点がユニバーサルフェイスに接する)。
2)−2.それらのフェイス集合の中にユニバーサルフェイスがある場合は、除去する(elの始点、e4、e5、e8の終点におけるu)。
2)−3.始点と接するフェイス集合に要素がないときは、ノードデータにある、この始点と同じ識別子をもったノードを始点ノードとする(elの始点はnl)。
2)−4.終点と接するフェイス集合に要素がないときは、ノードデータにある、この終点と同じ識別子をもったノードを終点ノードとする(e4、e5、e8についてはそれぞれn5、n6、n10)。
2)−5.始点と接するフェイス集合に要素が1つ以上あるときは、ノードデータにある、そのフェイスから生成されたノードの集合を新たな始点集合として生成する(e3、e8の始点はそれぞれdnl、dn2)。
2)−6.終点と接するフェイス集合に要素が1つ以上あるときは、ノードデータにある、フェィスから生成されたノードの集合を新たな終点集合とする(elの終点はdnl、dn2)。
2)−7.上記2)−3.から2)−6.の手続きで求められた始点集合(elの場合はnl)と終点集合(elの場合はdnl、dn2)の組み合わせを新たなエッジ集合とし、その要素全てをエッジデータに追加し、もとのエッジを削除する(elの場合は、新たにn1を始点、dnlを終点とするdell及びn1を始点、dn2を終点とするdel2が生成され、elは除かれる)。ただし、もとのエッジの幾何実現は新たなエッジに継承する(elの場合は、vlがdell及びdel2の幾何実現となる)。
【0022】
3)両方向のナビゲーションができるように、全てのエッジについて、逆方向のエッジを追加する(delll、del21、del01、de31、e41、e51、e81)。このとき、新たにできるエッジの幾何実現は、もとのエッジの幾何実現である曲線を逆方向にしたものを関連させることになる(例えばdelllの場合は、−vl)。
この手順でできるネットワークデータが経路探索基本データである。
【0023】
幾何図形データ合成モジュール14は、中間データ2を入力して、これに幾何図形データ及び幾何位相関連データを追加して、経路探索用データとして外部記憶装置に出力するモジュールである。このモジュールは、中間データ2として出力されたネットワーク及び点・線・面混在型データ中の幾何図形データを使い、経路探索で重要な働きをするノード間の距離を求める曲線の形状を合成する働きをもつ。以下、経路探索用データの仕様、及びモジュールが実現するアルゴリズムを説明する。
【0024】
経路探索用データの仕様は、経路探索基本データ、幾何図形データ及び幾何位相関連データからなる。幾何図形データは、点・線・面混合型データの中にある幾何図形データにおける点データ及び線データの組み合わせになる。幾何位相関連データの仕様は変わらない。
【0025】
幾何図形データ合成のアルゴリズムは、図3に示すように以下の手順で行われる。
【0026】
1)経路探索基本データ中の全てのエッジについて、以下のアルゴリズムを適用する。
1)−1.エッジの幾何実現としての曲線の始点について、その座標がエッジの始点ノードに一致しないときは、この曲線のはじめに始点ノードの位置を挿入する。始点ノードの幾何的な位置は、始点ノードの幾何実現としての曲面の中にある代表点を求めることによって得られる(例えば図9中、de3の幾何実現はv4でありp10が始点であったが、この操作により始点としてcplが追加され、幾何実現はcv4になる。同様の処理はde8でも行われcv9ができる)。代表点の位置は、曲面の重心を求めることによって定まるが、曲面の形状が凹の場合にはその位置が曲面の外に出ることがあるので、別の方式を用いることができる。例えば曲面の境界の内部にある点で、境界から最も遠い位置にある点(三角形では垂心に相当する)を求め、これを代表点として使うことも可能である。1)−2.エッジの幾何実現としての曲線の終点について、その位置がエッジの終点ノードに位置しないときは、この曲線の終わりに終点ノードの位置を追加する。終点ノードの幾何的な位置は、終点ノードの幾何実現としての曲面の中にある代表点を求めることによって得られる(例えば図9中、dellの幾何実現はv1でありp5が終点であったが、この操作によりcplが終点として追加され、cv11になる。同様の処理がdel2でも行われcvl2ができる)。
【0027】
図10は経路探索及びその結果を表示する装置の実施の形態を示す図、図11は最適経路探索のアルゴリズムを説明する図である。本実施形態により生成された経路探索用データを使った経路探索では、経路探索用データを外部記憶装置から入力し、経路探索用データ中の各エッジの延長(重量)を計算し、その結果並びに出発地及び到着地の地点を示す始点・終点データを入力して、その間の最適経路を求め、経路探索用データ中の幾何図形データを使ってディスプレイに表示する。この装置は、例えば図10に示すような重量計算モジュール21、最短経路探索モジュール22及び表示モジュール23からなる。
【0028】
重量計算モジュール21は、経路探索用データを入力して、経路探索基本データ中の各エッジに、その幾何実現としての曲線の延長を追加するモジュールである。また、曲線のうち、曲面の内部に位置する部分曲線には一定の係数(曲面係数)を延長に掛けて重量を求めることも可能である。これによって広場における歩行者の挙動が普通の道路と異なることに起因する歩行速度の違いを表現することができる。なお、経路探索用の重量は、曲線の延長に限るものではないので、特殊な重量を与える場合は、エッジ識別子及び重量を組にしたレコードの集合としての重量データをこのモジュールに入力して、各エッジに重量を割り振ることもできる。以下、重量計算モジュールが出力する重量付き経路探索用データの仕様及び重量計算のアルゴリズムを説明する。
【0029】
重量付き経路探索用データの仕様は、経路探索用データ中の経路探索基本データにあるエッジデータの各エッジレコードに重量項目を付加したものである。従って、エッジレコードは、エッジ識別子、始点ノード、終点ノード及び重量の組になる。
【0030】
重量計算のアルゴリズムは、
1)全てのエッジレコードについて、以下の処理を行う。
2)同一のエッジ識別子をもつレコードを幾何位相関連データから抽出し、対応する曲線レコードの識別子を得る。
3)曲線識別子をキーにして、曲線データから点列を得る。
4)点列の延長(重量)を求める。ただし、始点又は終点が曲面内にあるときは、その直後又は直前の点との距離に曲面係数を掛ける。指示がないとき、係数は1である。
5)重量を追加したエッジレコードを出力する。
【0031】
なお、曲線の延長以外のパラメタを重量として採用する場合は、全てのエッジレコードについて、以下の処理を行う。
1)エッジ識別子及び重量でできるレコードの集合としての重量データを入力する。
2)エッジレコード及び重量データの中で同一のエッジ識別子をもつものを選び、エッジレコードに重量を追加する。
3)重量を追加したエッジレコードを出力する。
【0032】
最短経路探索モジュール22では、出発点・到着点データ及び重量付き経路探索用データを入力し、出発点位置から到着点位置までの最短経路を求め、最短経路データを例えばRAMに出力する。以下、出発点・到着点データの仕様及び最短経路探索のアルゴリズムを説明する。
【0033】
出発点・到着点データの仕様は、出発点レコード及び到着点レコードの組みである。両者ともに、経路探索用データにある幾何図形データの点データ中の点レコードと同じ仕様であり、点の識別子は点データ中に存在するものの中から選ばれる。
【0034】
最短経路データの仕様は、出発点ノードから到着点ノードに至るエッジレコードの列であり、エッジデータと同じ仕様で作成される。
【0035】
最短経路探索アルゴリズムは、図11に示すように経路探索用データ中のネットワークデータを用い、以下の手順で行われる。
1)出発地に対応するノードを得る。これを出発点ノードとする。
2)出発点ノードに特別なラベル(*、0)をつけ、それ以外のノードにはラベル(φ、∞)をつける。ここでφはそのノードへの最短経路が未定義であることを示す。
3)ラベル付き・未探索のノードがなければ5)にゆく。そうでなければ、そのようなノードnを選びステップ4)にゆく。
4)ノードnを探索する。すなわち、ノードから出るエッジeに対してp(eの終点ノード)>p(n)+d(e)ならば、eの終点ノードにラベル(e、p(n)+d(e))をつけてeの終点ノードを未探索の状態にする。またノードnは既探索として3)に戻る。ここでpは、ラベルの右側の項目であり、その出発点からそのノードまでの総重量(距離)を示す。また、dはそのエッジの重量(延長)である。
5)到着地に対応するノードを得る。これを到着点ノードとする。
6)到着点ノードのラベルにある直前エッジeの識別子を得る。
7)このエッジの始点ノードのラベルにある直前エッジの識別子を得る。
8)7)の処理を、始点ノードが到着点ノードと一致するまで続ける。
9)ここまでの結果として、到着点ノードから出発点ノードまでのエッジ列が求められるので、これを逆順にすることによって、出発点から到着点までのエッジ列、つまり最短経路データが出力される。
図中の”ループ”は4)の処理の結果を示す。この例では5回の繰り返しで、dnlがらすべてのノードへの最短経路を求めている。また、到着地をn10とすると、6)から8)の処理によって、エッジ列(de8、de10)を求めることができ、その逆の列として、(de10、de8)がdnlからn10への最短経路となる。
【0036】
なお、ここで示した最短経路探索アルゴリズムは、ラベル修正法(伊理正夫監修、計算幾何学と地理情報処理、共立出版、1986、ppl52)と呼ばれる方法であるが、これ以外にも様々な方式が提案されているので、別のアルゴリズムを使う場合は、必要に応じてモジュールを入れ替えればよい。
【0037】
表示モジュール23は、最短経路データ及び経路探索用データ中にある幾何図形データを入力し、最短経路を示す幾何図形をディスプレイに表示する。以下、表示のためのアルゴリズムを説明する。
【0038】
表示のアルゴリズムは、
1)最短経路データ中の全てのエッジレコードについて、以下の処理を行う。
2)エッジの始点ノードについて、幾何実現が曲面のときは、その曲面を表示する。
3)エッジの幾何実現としての曲線を表示する。
4)2)、3)の処理を全てのエッジについて繰り返す。
5)最後のエッジの終点ノードの幾何実現が曲面のときは、その曲面を表示する。
【0039】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば上記実施の形態では、歩行者のための経路探索用として説明したが、車両用その他の経路探索用としても同様に適用してもよい。つまり、本発明による方式は、人間、自動車及びロボットを含む移動体の誘導全てについて用いることができる。
【図面の簡単な説明】
【0040】
【図1】本発明に係る経路探索装置の実施の形態を示す図である。
【図2】幾何図形データの構成例を示す図である。
【図3】経路探索用データの構成例を示す図である。
【図4】探索経路の出力例を示す図である。
【図5】経路探索用データ生成装置のモジュール構成例を示す図である。
【図6】位相複体データの構成例を示す図である。
【図7】幾何位相関連データの構成例を示す図である。
【図8】双対データの構成例を示す図である。
【図9】経路探索基本データの構成例を示す図である。
【図10】経路探索及びその結果を表示する装置の実施の形態を示す図である。
【図11】最適経路探索のアルゴリズムを説明する図である。
【符号の説明】
【0041】
1…幾何図形データ、2…経路探索用データ、3…地点入力部、4…経路探索部、5…経路出力部
【特許請求の範囲】
【請求項1】
目的地までの最適経路を探索して出力する経路探索装置であって、
座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データの組み合わせからなる幾何図形データを含む点・線・面混在型データと、
前記幾何図形データと合成され面データに代表点を設定して双方向にネットワークを形成する線データの組み合わせからなる経路探索用データと、
前記経路探索用データに基づき経路探索を行う経路探索手段と、
前記経路探索手段により探索された経路を前記幾何図形データに基づき点・線・面混在方式による経路を描画し出力する経路出力手段と
を備えたことを特徴とする経路探索装置。
【請求項2】
目的地までの最適経路を探索するための経路探索用データを生成する方法であって、
点データ、線データ及び面データからなる幾何図形データ、前記点、線及び面に対応するノード、エッジ及びフェイスデータからなり幾何図形同士の隣接関係のみを表現する位相複体データ、幾何図形の各レコード及び位相複体データの各レコードの1対1関係を示す幾何位相関連データを入力として、
前記幾何図形データの面データに対応する位相複体データのフェイスデータを新たにノードに置換してノードデータとエッジデータによりネットワークデータを経路探索基本データとして生成し、
前記経路探索基本データ、幾何図形データ及び幾何位相関連データからなる経路探索用データを生成することを特徴とする経路探索用データ生成方法。
【請求項1】
目的地までの最適経路を探索して出力する経路探索装置であって、
座標を有する点データ、点列を有する線データ及び境界を回る点列を有する面データの組み合わせからなる幾何図形データを含む点・線・面混在型データと、
前記幾何図形データと合成され面データに代表点を設定して双方向にネットワークを形成する線データの組み合わせからなる経路探索用データと、
前記経路探索用データに基づき経路探索を行う経路探索手段と、
前記経路探索手段により探索された経路を前記幾何図形データに基づき点・線・面混在方式による経路を描画し出力する経路出力手段と
を備えたことを特徴とする経路探索装置。
【請求項2】
目的地までの最適経路を探索するための経路探索用データを生成する方法であって、
点データ、線データ及び面データからなる幾何図形データ、前記点、線及び面に対応するノード、エッジ及びフェイスデータからなり幾何図形同士の隣接関係のみを表現する位相複体データ、幾何図形の各レコード及び位相複体データの各レコードの1対1関係を示す幾何位相関連データを入力として、
前記幾何図形データの面データに対応する位相複体データのフェイスデータを新たにノードに置換してノードデータとエッジデータによりネットワークデータを経路探索基本データとして生成し、
前記経路探索基本データ、幾何図形データ及び幾何位相関連データからなる経路探索用データを生成することを特徴とする経路探索用データ生成方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2006−133012(P2006−133012A)
【公開日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願番号】特願2004−320446(P2004−320446)
【出願日】平成16年11月4日(2004.11.4)
【出願人】(390023249)国際航業株式会社 (55)
【Fターム(参考)】
【公開日】平成18年5月25日(2006.5.25)
【国際特許分類】
【出願日】平成16年11月4日(2004.11.4)
【出願人】(390023249)国際航業株式会社 (55)
【Fターム(参考)】
[ Back to top ]