以下、本発明の実施の形態に係る案内経路探索装置および案内経路探索方法を、図面に基づいて説明する。案内経路探索装置は、カーナビゲーションシステムの一部として説明する。案内経路探索方法は、カーナビゲーションシステムの動作の一部として説明する。
実施の形態1.
図1は、本発明の実施の形態1に係るカーナビゲーションシステムを示す構成図である。カーナビゲーションシステムは、現在地あるいは出発地から、経由地あるいは立ち寄り点などを経由して、目的地へ向かう車両の案内経路を探索し、その案内経路で車両が移動するように経路を案内するものである。
カーナビゲーションシステムは、メインコンピュータ1を有する。メインコンピュータ1は、プログラムを実行するCPU2(中央処理装置)と、CPU2が実行しているプログラムやデータを記憶するRAM3(ランダムアクセスメモリ)と、周辺機器が接続される入出力ポート4と、これらを接続するシステムバス5と、を有する。
入出力ポート4には、液晶デバイス11と、タッチパネル12と、GPS(Global Positioning System)受信機13と、VICS(Vehicle Information and Communication System)受信機14と、コスト情報記憶手段、優先係数記憶手段および劣後係数記憶手段としての記憶デバイス15と、が接続される。
液晶デバイス11は、液晶ディスプレイパネルなどといった表示部を有する。液晶デバイス11は、表示データに基づき、表示部に画像を表示する。
タッチパネル12は、透明なスクリーンを有する。透明なスクリーンは、液晶デバイス11の表示部に重ねて配設される。タッチパネル12は、透明なスクリーン内の指が触れた位置を検知し、検出位置の位置情報を出力する。
GPS受信機13は、GPS衛星からのGPS電波を受信する。GPS電波は、GPS衛星の位置情報と時間情報とを有する。GPS受信機13は、たとえば3つ以上のGPS衛星からのGPS電波を受信すると、それら複数のGPS衛星に対するGPS受信機13の相対位置を演算し、その相対位置に基づいてGPS受信機13の地球上の位置情報を生成する。地球上の位置情報は、たとえば世界測地系での緯度経度の値として表現される。GPS受信機13は、生成したGPS受信機13の位置情報を出力する。
VICS受信機14は、電波ビーコン、光ビーコンあるいはFM多重放送により送信される交通情報を受信する。交通情報には、道路の混雑度を示す渋滞情報や、道路の通行止め時間帯などを示す交通規制情報が含まれる。VICS受信機14は、受信した交通情報を出力する。
記憶デバイス15は、たとえばハードディスクドライブなどにより構成される。図2は、図1中の記憶デバイス15が記憶する内容を示す説明図である。記憶デバイス15は、ナビゲーションプログラムと、ナビゲーションデータとを記憶する。ナビゲーションプログラムは、案内経路生成プログラム21と、経路案内プログラム22と、を有する。ナビゲーションデータは、地点データ群24と、リンクデータ群25と、ノードデータ群2626と、コスト計算条件リスト27と、地図データ28と、を有する。
なお、記憶デバイス15に記憶されるナビゲーションプログラムとナビゲーションデータとは、たとえばDVD(デジタル・バーサタイル・ディスク)−ROM(リード・オンリィ・メモリ)などのコンピュータ読み取り可能な記録媒体や伝送媒体を介して、記憶デバイス15に保存されるようにしてもよい。また、ナビゲーションプログラムとナビゲーションデータとは、コンピュータ読み取り可能な記録媒体に記憶されていてもよい。この場合、記憶デバイス15は、この記録媒体のデータを読み取るドライブなどにより構成される。
地点データ群24は、複数のレコードを有する。地点データ群24の各レコードは、1つの地点のデータを有する。各レコードは、その地点にある建物、店舗、施設などの名称、その地点の位置情報などとともに、その地点にある施設情報を有する。施設情報には、その施設が分類されるジャンル(たとえばレストラン、デパートなど)、敷地内の駐車場の有無、施設内の周回道路の有無などの情報が含まれる。地点データ群24の複数の地点は、目的地35、経由地あるいは出発地などとして選択可能な地点である。
リンクデータ群25およびノードデータ群26は、カーナビゲーションシステムが、車両の経路探索や経路案内において使用するデータである。車両は、道路を移動する。道路には、交差点などの道路の分岐点がある。ナビゲーションシステムでは、この道路の分岐点などをノードとして取り扱う。2つの分岐点の間の道路などをリンクとして取り扱う。リンクの両端は、ノードに接続される。ノードには、1つ以上のリンクが接続される。
図3は、ある地域の道路と、リンクおよびノードとの関係を説明する図である。図3(A)は、ある地域の道路を示す図である。図3(B)は、その地域に対応付けられるノードおよびリンクを示す図である。図3(B)において、各ノードは、四角形で示され、リンクは、矢印で示される。
図3(A)に示す地域は、第一の国道31と、第二の国道32と、第一の細街路33と、第二の細街路34と、を有する。第一の国道31は、図の横方向に沿って形成される。第二の国道32は、図の横方向に沿って形成され、第一の国道31に突き当たる。第一の細街路33は、第二の国道32と略並行に、図において第二の国道32の左側に形成される。第一の細街路33の一端は、第一の国道31に突き当たる。第二の細街路34は、第一の国道31と略並行に、第一の細街路33の他端と、第二の国道32との間に形成される。
このような地域の道路は、図3(B)に示すように、複数のリンクおよび複数のノードとしてデータ化される。ノードは、第一の国道31と第二の国道32との交差点36、第一の国道31と第一の細街路33との交差点37、第一の細街路33と第二の細街路34との接続点38、および、第二の細街路34と第二の国道32との交差点39に対応付けて設けられる。この地域のノードは、合計4つになる。
また、このような地域の道路と対応づけて、リンクは、交差点(あるいは接続点)と交差点(あるいは接続点)との間の区間毎に設けられる。具体的には、第一の国道31は、2つのノードを有する。したがって、この片側二車線(計4車線)の道路は、6本のリンクで構成される。同様に、第二の国道32は、4本のリンクで構成される。第一の細街路33は、2本のリンクで構成される。第二の細街路34は、2本のリンクで構成される。この地域のリンクは、合計14本となる。
なお、図3(A)では、第一の細街路33沿いに経由地が設定されている。以下、この経由地の前の道路である第一の細街路33を、経由地前道路とよぶ。第一の細街路33は、図3(B)に示すように、2つのリンクL3およびL4を有する。リンクL3およびL4は、逆向きのリンクである。第一の細街路33は、双方向に通行可能な道路である。
リンクデータ群25は、複数のレコードを有する。リンクデータ群25の各レコードは、1つのリンクのデータを有する。各レコードは、そのリンクに関する交通規制情報や、そのリンクの距離、そのリンクを通過するコスト情報、そのリンクが対応する道路種別(たとえば幹線道路、有料道路、細街路など)、そのリンクに固有の識別番号、そのリンクが接続されるノードの識別番号などを有する。リンクに関する交通規制情報には、たとえば、一方通行路、時間帯通行禁止、右折禁止、Uターン禁止、道幅(幅員)などの情報がある。なお、各レコードには、1つのリンクではなく、1つの道路のすべてのリンクが対応付けられていてもよい。
ノードデータ群26は、複数のレコードを有する。ノードデータ群26の各レコードは、1つのノードのデータを有する。各レコードは、そのノードの位置情報、そのノードに関する交通規制情報、そのノードを通過するコスト情報、そのノードに固有の識別番号、そのノードに接続されるリンクの識別番号などを有する。ノードに関する交通規制情報としては、たとえば、信号機の有無、右折禁止、Uターン禁止などの情報がある。
ノードを通過するコスト情報およびリンクを通過するコスト情報は、それらの通過し易さあるいは通過し難さに応じた値を有する。これらのコスト情報は、通過し難いほど大きな値を有する。
なお、実際に演算に使用するコスト情報そのものは、記憶デバイス15においてたとえば道路種別などと対応付けて記憶され、これらノードデータ群26およびリンクデータ群25の各レコードは、この種別の指定情報を有するデータ構造になっていてもよい。また、コスト情報の値は、通過し易さのみに応じた値ではなく、たとえば、道路の有料無料に応じた値、道路の走りやすさに応じた値、道路の景観の良否に応じた値、道路の交通量に応じた値、あるいはそれらを組み合わせた値などになっていてもよい。
図2に戻り、記憶デバイス15に記憶されるコスト計算条件リスト27は、経路のコストを計算するときの計算条件を有する。具体的にはたとえば、コスト計算条件リスト27は、渋滞係数、道なり直進優先係数などの各種の係数を記憶する。
渋滞係数は、渋滞しているリンクおよびノードのコスト情報に乗算される係数である。道なり直進優先係数は、1より大きい値を有する。これにより、渋滞しているリンクおよびノードの通過コストを上げることができる。
道なり直進優先とは、たとえばある経由地に向かう第一の経路が生成された状態で、その経由地から出発する第二の経路を探索する場合に、経由地前道路において道なりに直進する経路が、たとえばその経由地前道路において戻る経路などに比べて、案内経路として相対的に選択され易くすることである。別な言い方をすれば、経由地の前を通過する経路が第二の経路として選択され易くすることである。図3の経由地の例でいえば、経由地に向かう第一の経路における経由地前道路のリンクがリンクL3である場合、第二の経路における経由地前道路のリンクとして、リンクL4よりリンクL3が選択され易くすることである。道なり直進優先係数は、その道なり直進の道路に対応するリンクのコスト情報に乗算される係数である。道なり直進優先係数は、1より小さい値を有する。これにより、道なりに直進する道路の通過コストを下げることができる。
地図データ28は、液晶ディスプレイに地図を表示するために使用するデータである。このような地図データ28としては、たとえば、二次元あるいは三次元のベクトル地図データ28がある。ベクトル地図データ28は、地図の背景画像となる背景データと、その背景画像の上に描画されるベクトルデータと、を有する。背景画像は、たとえば公園、河川、池などを色分けした画像データである。ベクトルデータは、たとえば道路毎の描画データである。なお、地図データ28は、この他にも、ランドマーク用の三次元のポリゴンデータや、各地点に対応付けられたアイコンデータなどを備えていてもよい。
案内経路生成プログラム21は、CPU2に実行されることで、メインコンピュータ1に、案内経路を生成するための各種の機能を実現する。図4は、図1中のCPU2が案内経路生成プログラム21を実行することで、カーナビゲーションシステムに実現される機能を示すブロック図である。図1中のCPU2が案内経路生成プログラム21を実行することで、地点設定部41と、判断手段としてのコスト計算条件設定部42と、候補経路生成部43と、コスト計算手段としてのコスト計算部44と、選択手段としての案内経路選択部45と、が実現される。
地点設定部41は、地点データ群24に記憶されている施設情報などを液晶デバイス11に表示し、その表示に基づいてタッチパネル12により選択された地点を、出発地、経由地あるいは目的地として選択する。地点設定部41は、地図データ28に基づく地図を液晶デバイス11に表示し、その表示のうちからタッチパネル12により選択された立ち寄り点を、出発地、経由地あるいは目的地として選択する。地点設定部41は、選択した出発地、経由地あるいは目的地を、記憶デバイス15に記憶させる。
コスト計算条件設定部42は、コスト計算条件リスト27に基づいて、探索時の車両の状況などに応じたコスト計算条件46を生成し、記憶デバイス15に記憶させる。コスト計算条件46は、たとえば、道なり直進優先にて探索する状況下では、道なり直進優先係数を有する。
候補経路生成部43は、リンクデータ群25およびノードデータ群26を使用して、探索の起点から終点までの経路を探索し、記憶デバイス15に記憶させる。探索した経路は、探索の起点と終点とを1または複数のリンクおよびノードで繋いだものとなる。候補経路生成部43は、その探索した経路のデータを、候補経路として記憶デバイス15に記憶させる。複数の候補経路により、記憶デバイス15には、候補経路リスト47が記憶される。
コスト計算部44は、候補経路生成部43により探索された候補経路のコストを、設定されたコスト計算条件46の下で計算する。
案内経路選択部45は、コストが最も低い候補経路を案内経路48として選択し、記憶デバイス15に記憶させる。
経路案内プログラム22は、CPU2に実行されることで、メインコンピュータ1に、経路を案内するための各種の機能を実現する。図5は、図1中のCPU2が経路案内プログラム22を実行することで、カーナビゲーションシステムに実現される機能を示すブロック図である。図1中のCPU2が経路案内プログラム22を実行することで、経路案内手段としての経路案内部56が実現される。
経路案内部56は、記憶デバイス15に記憶されている案内経路48および地図データ28を読み込み、これらを用いて、液晶デバイス11に案内経路48および現在地の周辺地図などを表示させる。なお、経路案内部56は、必要に応じて図示外のスピーカから音声案内を出力させるようにしてもよい。
次に、以上の構成を有する実施の形態1に係るカーナビゲーションシステムの動作を説明する。まず、図3および図4を参照しながら、現在地あるいは出発地から、経由地あるいは立ち寄り点などの通過点を経由して、目的地へ向かう車両の案内経路48を探索する探索処理について説明する。
図6は、図4に示すカーナビゲーションシステムの経路探索時の全体の動作を示すフローチャートである。
地点設定部41は、出発地、通過点あるいは目的地の選択画面として、地図データ群24に記憶される施設情報や、地図データ28に基づく地図を液晶デバイス11に表示する。地点設定部41は、タッチパネル12からの検出位置の位置情報に基づいて、液晶デバイス11に表示した施設あるいは地図のうちから、施設あるいは地図上の地点を、出発地、通過点あるいは目的地として選択する(ステップST1)。図3でいえば、地点設定部41は、第一の国道31の右遠方に出発地を選択し、第一の細街路33(経由地前道路)沿いに経由地を選択し、さらに、第一の国道31の左遠方に目的地を選択している。
地点設定部41は、出発地、通過点および目的地を選択すると、コスト計算条件設定部42に、探索開始を指示する。コスト計算条件設定部42は、最初の区間の経路の探索処理を開始する(ステップST2)。
図7は、図6中の最初の区間の経路の探索処理(ステップST2)の詳細なステップを示すフローチャートである。最初の区間の経路の探索処理(ステップST2)において、コスト計算条件設定部42は、地点設定部41により選択された出発地あるいは現在地を探索の起点として選択し、通過点を探索の終点として選択する。複数の通過点がある場合には、その最初の通過点を探索の終点として選択する。図3でいえば、コスト計算条件設定部42は、出発地を探索の起点として選択し、経由地を探索の終点として選択する。
探索の起点および終点を選択した後、コスト計算条件設定部42は、最初の区間の経路の探索のための経路探索条件を設定する(ステップST11)。具体的には、コスト計算条件設定部42は、コスト計算条件リスト27に記憶されている渋滞係数を、コスト計算条件46として記憶デバイス15に記憶させる。
コスト計算条件46の設定処理が終了すると、コスト計算条件設定部42は、候補経路生成部43に候補経路の生成を指示する。なお、コスト計算条件設定部42は、コスト計算条件46の設定処理の開始前に、候補経路生成部43に候補経路の生成を指示するようにしてもよい。
候補経路生成部43は、リンクデータ群25およびノードデータ群26を使用して、候補経路を生成する(ステップST12)。具体的には、候補経路生成部43は、ノードの位置情報やリンクのノードに対する接続情報を用いてリンクをノードに繋ぎ、探索の起点から終点までのリンクの鎖を生成する。候補経路生成部43は、この探索の起点から終点までのリンクの鎖を、候補経路として生成する。
この候補経路の生成処理において、候補経路生成部43は、リンクデータ群25、ノードデータ群26、渋滞・交通規制情報51などの情報を参照し、走行可能な経路を探索する。たとえば、仮に図3(A)の第一の国道31上でUターン禁止や交差点以外での右折禁止などの交通規制情報がある場合、候補経路生成部43は、この第一の国道31においてUターンしたり、右折したりする候補経路は生成しない。
なお、探索の起点あるいは終点が地図上で指定されるなどして、候補経路生成部43が経路探索に使用する道路(以下、探索道路とよぶ。)から離れている場合、候補経路生成部43は、その探索の起点あるいは終点の替わりに探索に使用する引き込み点を特定する必要がある。
引き込み点は、単にその起点あるいは終点に最も近い探索道路の最も近い地点としてもよいが、現実的には単に距離のみで決定するのではなく、引き込み点の使われ方(出発地・目的地・通過点など)や、引き込み点の属性や引き込み点を置こうとする探索道路の種類などに応じて決定するようにするとよい。具体的にはたとえば、候補経路生成部43は、まず、起点あるいは終点を中心として所定の範囲(たとえば50m)内となる探索道路を抽出し、それぞれの探索道路上の引き込み点の候補を特定する。引き込み点は、たとえば探索道路と、起点あるいは終点に続く細街路とが接続される地点である。通常はこの特定処理により、複数の引き込み点の候補が特定される。なお、その所定の範囲内に探索道路が無い場合には、候補経路生成部43は、さらに探索する範囲を広げればよい。所定の範囲は、たとえば出発地を起点とするような場合には、楕円の範囲としてもよい。
複数の引き込み点の候補が特定された場合、候補経路生成部43は、引き込み点の候補を絞り込む。具体的にはたとえば、候補経路生成部43は、起点あるいは終点から最も近い引き込み点の候補を特定し、その最も近い引き込み点の候補までの距離に所定の短い距離(たとえば50m)を加えた範囲内の引き込み点の候補を、探索に使用する引き込み点として選択する。また、候補経路生成部43は、その引き込み点の候補を置く探索道路のリンク情報における道路種別(たとえば高速道路、国道など)やリンク種別(たとえば上下線非分離、上下線分離(道路で言えばたとえば中央分離帯がある道路)、側道、ダミーリンク)などに基づいて、たとえばダミーリンクでない場合にはその引き込み点として残すようにすることで、探索に使用する引き込み点を絞り込む。そして、探索に使用する引き込み点が複数残っている場合、候補経路生成部43は、それぞれの引き込み点について候補経路を探索する。
候補経路生成部43は、生成した候補経路を記憶デバイス15に記憶させる。これにより、記憶デバイス15には、候補経路リスト47が記憶される。
記憶デバイス15に候補経路が記憶されると、コスト計算部44は、各候補経路のコストを計算する(ステップST13)。コスト計算部44は、まず、候補経路のリンクの鎖に含まれる各リンクおよび各ノードについて、1つ1つの個別の通過コストを計算する。
このとき、渋滞・交通規制情報51において渋滞が発生している道路のリンクについては、コスト計算部44は、そのリンクについて渋滞係数を乗算する。渋滞係数は、1以上の係数である。これにより、渋滞している経路の通過コストは高くなる。
コスト計算条件46に係数が設定されていないリンクおよびノードについては、コスト計算部44は、そのリンクあるいはノードのリンクデータ群25あるいはノードデータ群26におけるコスト情報をそのまま、そのリンクあるいはノードの個別の通過コストとする。
候補経路に含まれるすべてのリンクおよびすべてのノードの個別の通過コストを計算したら、コスト計算部44は、そのすべての個別の通過コストを加算し、その演算結果をその候補経路のコストとする。なお、コスト計算部44は、リンクあるいはノード毎の個別の通過コストを乗算したり、所定の演算式にて計算したりすることで、候補経路のコストを計算するようにしてもよい。
記憶デバイス15に記憶される各候補経路のコストが計算されると、案内経路選択部45は、その記憶デバイス15に記憶される複数の候補経路(候補経路リスト47)の中から、コストが最も低い候補経路を選択する(ステップST14)。
案内経路選択部45は、選択した1つの候補経路を、案内経路48として記憶デバイス15に記憶させる。以上の案内経路48の探索処理により、記憶デバイス15には、最初の区間の案内経路48が記憶される。図3の場合、第一の国道31から第一の細街路33に入る経路、図3(B)で言えば、「L1→N1→L2→N2→L3」という経路が案内経路として、記憶デバイス15に記憶される。
最初の区間の案内経路48が記憶デバイス15に記憶されると、図6に戻り、コスト計算条件設定部42は、地点設定部41により選択された出発地あるいは現在地からすべての通過点を通過して目的地に至る経路の探索が完了したか否かを判断する(ステップST3)。コスト計算条件設定部42は、たとえば、最後の探索における終点が目的地である場合には、すべての通過点を通過する経路の探索が完了したと判断すればよい。
図3の場合のように、最初の区間の案内経路48の終点が通過点である場合、コスト計算条件設定部42は、次の区間の経路の探索処理を開始する(ステップST4)。
図8は、図6中の次の区間の経路の探索処理(ステップST4)の詳細なステップを示すフローチャートである。
次の区間の経路の探索処理(ステップST4)において、コスト計算条件設定部42は、前回の探索の終点を探索の起点として選択し、次の通過点を探索の終点として選択する。次の通過点が無い場合には、目的地を探索の終点として選択する。図3の場合、経由地を探索の起点として選択し、目的地を探索の終点として選択する。次の区間の経路の探索処理のための探索の起点および終点を選択した後、コスト計算条件設定部42は、次の区間の経路の探索のための経路探索条件の設定を開始する。
経路探索条件の設定処理において、コスト計算条件設定部42は、まず、コスト計算条件リスト27に記憶されている渋滞係数を、コスト計算条件46として記憶デバイス15に記憶させる(ステップST21)。
また、コスト計算条件設定部42は、地点データ群24に基づいて、起点においてUターンが可能であるか否かを判断する(ステップST22)。地点データ群24は、地点毎の施設情報として、ジャンル(たとえばレストラン、デパートなど)、敷地内の駐車場の有無、施設内の周回道路の有無などを記憶する。
したがって、コスト計算条件設定部42は、地点データ群24に参照し、たとえば探索の起点にある施設がデパートなどの大型店舗である場合、探索の起点においてUターンが可能であると判断する。この他にもたとえば、コスト計算条件設定部42は、地点データ群24に参照し、探索の起点にある施設が、駐車場、チェーン店などの駐車場があると推定可能な所定のジャンルの施設である場合、探索の起点においてUターンが可能であると判断する。
また、コスト計算条件設定部42は、地点データ群24に参照し、探索の起点にある施設の情報として、敷地内の駐車場もしくは周回道路が得られる場合に、探索の起点においてUターンが可能であると判断する。
そして、コスト計算条件設定部42は、探索の起点においてUターンが可能であると判断しなかった場合、道なり直進優先係数を、コスト計算条件46として設定する(ステップST23)。
探索の起点においてUターンが可能であると判断した場合、コスト計算条件設定部42は、さらに、探索の起点前の道路を戻ることが可能か否かを判断する。コスト計算条件設定部42は、リンクデータ群25およびノードデータ群26に基づいて、起点前の道路を戻ることができるか否かを判断する(ステップST24)。リンクデータ群25は、道路の進行方向ごとにリンクを有する。また、1つの道路において対向車線となる複数のリンクは、一般的に識別番号に共通部分を有する。
したがって、コスト計算条件設定部42は、たとえば、まず、リンクデータ群25を探索して、起点までの区間の案内経路の最後のリンクと所定の共通部分を有する識別番号のリンクがあるか否かを判断する。その条件に該当する対向車線のリンクがある場合、コスト計算条件設定部42は、探索の起点前の道路は、戻ることができる道路であると判断する。
図3において、経由地から目的地への経路を探索する場合、経由地前道路がこの探索の起点前の道路となる。そして、経由地までの区間の案内経路の最後のリンクとしてリンクL3が選択されている場合、コスト計算条件設定部42は、リンクL4をその対向車線のリンクとして抽出する。この対向車線のリンクの抽出に基づいて、コスト計算条件設定部42は、起点前の道路は、戻ることができる道路であると判断する。
そして、コスト計算条件設定部42は、探索の起点前の道路を戻ることが可能な道路であると判断しなかった場合、道なり直進優先係数を、コスト計算条件46として設定する(ステップST23)。
以上のコスト計算条件46の設定処理により、探索の起点においてUターンが可能でない場合には、コスト計算条件設定部72は、コスト計算条件46として、渋滞係数および道なり直進優先係数を設定する。また、探索の起点においてUターンが可能であっても、探索の起点前の道路が戻ることが可能な道路でない場合には、コスト計算条件設定部72は、コスト計算条件46として、渋滞係数および道なり直進優先係数を設定する。これに対して、探索の起点においてUターンが可能であり、且つ、探索の起点前の道路が戻ることが可能な道路である場合、コスト計算条件設定部72は、コスト計算条件46として、渋滞係数を設定する。
コスト計算条件46の設定処理が終了すると、コスト計算条件設定部42は、候補経路生成部43に候補経路の生成を指示する。候補経路生成部43は、リンクデータ群25およびノードデータ群26を使用して、探索の起点から終点までのリンクの鎖で構成される候補経路を生成する(ステップST25)。候補経路生成部43は、生成した候補経路を記憶デバイス15に記憶させる。これにより、記憶デバイス15には、候補経路リスト47が記憶される。
記憶デバイス15に候補経路が記憶されると、コスト計算部44は、各候補経路のコストを計算する(ステップST26)。コスト計算部44は、まず、候補経路のリンクの鎖に含まれる各リンクおよび各ノードについて、1つ1つの個別の通過コストを計算する。
このとき、渋滞・交通規制情報51において渋滞が発生している道路のリンクについては、コスト計算部44は、そのリンクについて渋滞係数を乗算する。渋滞係数は、1以上の係数である。これにより、渋滞しているリンクの通過コストは高くなる。
また、コスト計算条件46として道なり直進優先係数が設定されている場合、コスト計算部44は、前回の区間の探索経路における最後のリンクの向きを基準として、その最後のリンクの方向に沿って進む経路のリンクについて道なり直進優先係数を乗算する。道なり直進優先係数は、1以下の係数である。これにより、道なり直進優先に該当するリンクの通過コストは低くなる。ここでは、最後のリンクの方向に沿って進む経路のリンクのコストを道なり優先係数で相対的に低くしているが、その代わりに、1より大きい値の道なり優先係数を、最後のリンクの方向とは逆方向へ進む経路のリンクのコストへ適用するようにしてもよい。
なお、コスト計算部44は、基本的には、候補経路の最初のリンクのみについて、そのコスト情報に、道なり直進優先係数を乗算すればよい。この他にもたとえば、コスト計算部44は、候補経路の最初のリンクから所定数(たとえば10本)の複数のリンクについて、そのコスト情報に道なり直進優先係数を乗算したり、探索の起点から所定の距離範囲(たとえば2kmなど)内にある複数のリンクについて、そのコスト情報に道なり直進優先係数を乗算したり、探索の起点から幹線道路に戻るまでの複数のリンクについて、そのコスト情報に道なり直進優先係数を乗算したり、探索の起点の前の道路のリンクとは異なる道路種別となるまでの複数のリンクについて、そのコスト情報に道なり直進優先係数を乗算したりするようにしてもよい。
コスト計算条件46に係数が設定されていないリンクおよびノードについては、コスト計算部44は、そのリンクあるいはノードのリンクデータ群25あるいはノードデータ群26におけるコスト情報をそのまま、そのリンクあるいはノードの個別の通過コストとする。
候補経路に含まれるすべてのリンクおよびすべてのノードの個別の通過コストを計算したら、コスト計算部44は、そのすべての個別の通過コストを加算し、その演算結果をその候補経路のコストとする。なお、コスト計算部44は、リンクあるいはノード毎の個別の通過コストを乗算したり、所定の演算式にて計算したりすることで、候補経路のコストを計算するようにしてもよい。
記憶デバイス15に記憶される各候補経路のコストが計算されると、案内経路選択部45は、その記憶デバイス15に記憶される複数の候補経路(候補経路リスト47)の中から、コストが最も低い候補経路を選択する(ステップST27)。
案内経路選択部45は、選択した1つの候補経路を、案内経路48として記憶デバイス15に記憶させる。以上の案内経路48の探索処理により、記憶デバイス15には、次の区間の案内経路48が記憶される。図3の場合、経由地から目的地までの区間の案内経路48が記憶デバイス15に記憶される。
記憶デバイス15に次の区間の案内経路48が記憶されると、図6に戻り、コスト計算条件設定部42は、最後の探索における終点が目的地であるか否かに基づいて、地点設定部41により選択された出発地あるいは現在地からすべての通過点を通過して目的地に至る経路の探索が完了したか否かを判断する(ステップST3)。
図3のように、最後の探索における終点が目的地である場合には、コスト計算条件設定部42は、探索処理を終了する。最後の探索における終点が目的地でない場合には、コスト計算条件設定部42は、最後の探索における終点が目的地となるまで、上述した次の区間の経路の探索処理(ステップST4)を繰り返し実行する。
以上の処理により、すべての区間の探索処理が終了した時点では、記憶デバイス15には、現在地あるいは出発地から、経由地あるいは立ち寄り点などの通過点を経由して、目的地へ向かう車両の案内経路48が記憶される。
次に、図5を参照しながら、案内経路48を用いた経路案内について説明する。
経路案内部56は、GPS受信機13からの位置情報を読み込む。経路案内部56は、GPS受信機13からの位置情報を自車の位置情報として、自車の周辺の案内経路48および地図データ28を記憶デバイス15から読み込む。経路案内部56は、読み込んだ案内経路48および地図データ28から表示データを生成する。経路案内部56は、自車位置マークを含む表示データを生成する。経路案内部56は、生成した表示データを液晶デバイス11へ出力する。液晶デバイス11は、表示データに基づき、表示部に地図および案内経路48を表示する。
経路案内部56は、周期的に、GPS受信機13からの位置情報を読み込む。経路案内部56は、GPS受信機13からの位置情報により特定される自車の位置が、液晶デバイス11に表示させている自車位置マークの位置から移動したか否かを判断する。
自車の位置が移動したと判断したら、経路案内部56は、その新たな自車の位置を基準として、自車の周辺の案内経路48および地図データ28を記憶デバイス15から読み込み、表示データを生成する。液晶デバイス11は、経路案内部56により生成された表示データを表示する。
なお、経路案内部56は、GPS受信機13からの位置情報を読み込んだら、自車位置の移動を判断することなく、新たな表示データを生成するようにしてもよい。経路案内部56は、図示外のジャイロセンサからの移動量および移動方向に関する情報に基づいて、自車の現在地を判断するようにしてもよい。
このように、経路案内において、カーナビゲーションシステムは、GPS受信機13からの位置情報を自車の位置情報として用い、その自車の位置の周辺の地図および案内経路48を、液晶デバイス11に表示し続ける。したがって、車両の運転手が、液晶デバイス11に表示される案内経路48にそって自車位置マークが移動するように車両を運転することで、車両は、現在地などから目的地あるいは経由地に移動する。
以上のように、この実施の形態1に係るカーナビゲーションシステムは、出発地あるいは現在地から、経由地あるいは立ち寄り点を経由して、目的地へ向かう案内経路48を探索し、車両が、その案内経路48に沿って移動するように経路を案内することができる。
特に、経由地や立ち寄り点においてUターンが可能であり、且つ、その経由地や立ち寄り点の前の道路が戻ることができる道路である場合には、この実施の形態1に係るカーナビゲーションシステムは、その経由地や立ち寄り点においてUターンする経路を案内経路48として生成することができる。
たとえば、図3(A)では、第一の細街路33沿いに経由地が設定され、第一の国道31の右遠方に出発地が設定され、且つ、第一の国道31の左遠方に目的地が設定されている。このような地点の設定の下で、出発地から経由地までの区間の案内経路48が、図3(A)の破線に示すように、第一の国道31から第一の細街路33に入る経路(図3(B)で言えば、「L1→N1→L2→N2→L3」という経路)とされている場合、経由地に駐車場があると、道なり優先直進が禁止され、図3(A)の一点鎖線に示すように、経由地においてUターンをして、第一の細街路33から第一の国道31へ直接に戻る経路(図3(B)で言えば、「L4→N2→L5」という経路)が、経由地から目的地への区間の経路として生成される。
また、この実施の形態1では、経由地においてUターンできるか否かの判断に基づいて、道なり直進優先係数をコスト計算条件46として設定するか否かを制御し、コストの低い候補経路が最終的に各区間の案内経路48として選択されるようにしている。したがって、経由地においてUターンができると判断された場合であっても、経路コストの高低によっては、道なりに直進する候補経路が案内経路48として選択され得る。たとえば、図3(A)において二点鎖線で示す経路、すなわち第一の細街路33から、第二の細街路34および第二の国道32を経由して、第一の片側二車線の道路32に戻る経路(図3(B)で言えば、「L3→N3→L6→N4→L7→N1→L2→N2→L5」という経路)が案内経路48として選択され得る。
実施の形態2.
図9は、本発明の実施の形態2に係るカーナビゲーションシステムにおいて、案内経路の探索時に実現される機能を示すブロック図である。
記憶デバイス15に記憶されるコスト計算条件リスト61は、渋滞係数、道なり優先係数、Uターン優先係数などの各種の係数を記憶する。
Uターン優先とは、たとえばある経由地に向かう第一の経路が生成された状態で、その経由地から出発する第二の経路を探索する場合に、経由地前道路において戻る経路が、たとえばその経由地前道路において道なりに直進する経路などに比べて、案内経路として相対的に選択され易くすることである。別な言い方をすれば、経由地で折り返す経路が第二の経路として選択され易くすることである。図3の経由地の例でいえば、経由地に向かう第一の経路における経由地前道路のリンクがリンクL3である場合、第二の経路における経由地前道路のリンクとして、リンクL3よりリンクL4が選択され易くすることである。Uターン優先係数は、そのUターンの道路に対応するリンクのコスト情報に乗算される係数である。Uターン優先係数は、1より小さい値を有する。これにより、Uターンの道路の通過コストを下げることができる。
コスト計算条件設定部62は、コスト計算条件リスト61に基づいて、探索時の車両の状況などに応じたコスト計算条件46を生成し、記憶デバイス15に記憶させる。コスト計算条件46は、たとえば、Uターン優先にて探索する状況下では、Uターン優先係数を有する。コスト計算条件設定部62は、判断手段として機能する。
コスト計算部63は、候補経路リスト47として記憶デバイス15に記憶される各候補経路のコストを計算する。コスト計算部63は、コスト計算手段として機能する。
図9に示すこれ以外の構成要素は、実施の形態1に係る同名の構成要素と同じ機能を有するものであり、実施の形態1と同名の構成と同一の符号を付してその説明を省略する。また、実施の形態2に係るカーナビゲーションシステムにおいて、経路の案内時に実現される機能は、実施の形態1と同様であり、その説明を省略する。
なお、このコスト計算条件設定部62およびコスト計算部63は、記憶デバイス15に記憶される案内経路生成プログラムがCPU2に実行されることで、地点設定部41、候補経路生成部43および案内経路選択部45とともに、実現される。
次に、以上の構成を有する実施の形態2に係るカーナビゲーションシステムの動作を説明する。
実施の形態2に係るカーナビゲーションシステムは、出発地、通過点および目的地が設定された後、実施の形態1のカーナビゲーションシステムと同様に、図6に示す経路探索時のフローチャートにしたがって、案内経路48の生成処理を実行する。そして、実施の形態2に係るカーナビゲーションシステムは、最初の区間の案内経路48が完了すると(ステップST3)、経路の探索が完了したか否かを判断する(ステップST3)。経路の探索が完了していない場合には、実施の形態2に係るカーナビゲーションシステムは、次の区間の経路の探索処理を開始する(ステップST4)。図3のように出発地、経由地および目的地が設定されている場合には、実施の形態2に係るカーナビゲーションシステムは、経由地から目的地までの区間の経路の探索処理を開始する。
図10は、実施の形態2に係るカーナビゲーションシステムにおける、次の区間の経路の探索処理(ステップST4)の詳細なステップを示すフローチャートである。
次の区間の経路の探索処理(ステップST4)において、コスト計算条件設定部62は、前回の探索の終点を探索の起点として選択し、次の通過点を探索の終点として選択する。次の通過点が無い場合には、目的地を探索の終点として選択する。次の区間の経路の探索処理のための探索の起点および終点を選択した後、コスト計算条件設定部62は、次の区間の経路の探索のための経路探索条件の設定を開始する。
経路探索条件の設定処理において、コスト計算条件設定部62は、まず、コスト計算条件リスト61に記憶されている渋滞係数を、コスト計算条件46として記憶デバイス15に記憶させる(ステップST21)。
また、コスト計算条件設定部62は、地点データ群24に基づいて、探索の起点においてUターンが可能であるか否かを判断する(ステップST22)。そして、コスト計算条件設定部62は、探索の起点においてUターンが可能であると判断しなかった場合、道なり直進優先係数を、コスト計算条件46として設定する(ステップST23)。
図3の場合のように、探索の起点においてUターンが可能であると判断した場合、コスト計算条件設定部62は、さらに、探索の起点前の道路を戻ることが可能か否かを判断する。コスト計算条件設定部42は、リンクデータ群25およびノードデータ群26に基づいて、起点前の道路を戻ることができるか否かを判断する(ステップST24)。そして、コスト計算条件設定部62は、探索の起点前の道路を戻ることが可能な道路であると判断しなかった場合、道なり直進優先係数を、コスト計算条件46として設定する(ステップST23)。
探索の起点前の道路を戻ることが可能な道路であると判断した場合、コスト計算条件設定部62は、Uターン優先係数を、コスト計算条件46として設定する(ステップST31)。
以上のコスト計算条件46の設定処理により、探索の起点においてUターンが可能でない場合には、コスト計算条件設定部72は、コスト計算条件46として、渋滞係数および道なり直進優先係数を設定する。また、探索の起点においてUターンが可能であっても、探索の起点前の道路を戻ることが可能な道路でない場合には、コスト計算条件設定部72は、コスト計算条件46として、渋滞係数および道なり直進優先係数を設定する。これに対して、探索の起点においてUターンが可能であり、且つ、探索の起点前の道路を戻ることが可能な道路である場合、コスト計算条件設定部72は、コスト計算条件46として、渋滞係数およびUターン優先係数を設定する。
コスト計算条件46の設定処理が終了すると、コスト計算条件設定部62は、候補経路生成部43に候補経路の生成を指示する。候補経路生成部43は、リンクデータ群25およびノードデータ群26を使用して、探索の起点から終点までのリンクの鎖で構成される候補経路を生成する(ステップST25)。候補経路生成部43は、生成した候補経路を記憶デバイス15に記憶させる。これにより、記憶デバイス15には、候補経路リスト47が記憶される。
記憶デバイス15に候補経路が記憶されると、コスト計算部63は、各候補経路のコストを計算する(ステップST26)。コスト計算部63は、まず、候補経路のリンクの鎖に含まれる各リンクおよび各ノードについて、1つ1つの個別の通過コストを計算する。
このとき、渋滞・交通規制情報51において渋滞が発生している道路のリンクについては、コスト計算部63は、そのリンクについて渋滞係数を乗算する。渋滞係数は、1以上の係数である。これにより、渋滞しているリンクの通過コストは高くなる。
また、コスト計算条件46として道なり直進優先係数が設定されている場合、コスト計算部63は、前回の区間の探索経路における最後のリンクの向きを基準として、その最後のリンクの方向に沿って進む経路のリンクについて道なり直進優先係数を乗算する。道なり直進優先係数は、1以下の係数である。これにより、道なり直進優先に該当するリンクの通過コストは低くなる。
さらに、コスト計算条件46としてUターン優先係数が設定されている場合、前回の区間の探索経路における最後のリンクの向きとは反対向きを基準として、その反対向きに進む経路のリンクについて道なり直進優先係数を乗算する。Uターン優先係数は、1以下の係数である。これにより、Uターン優先に該当するリンクの通過コストは低くなる。ここでは、最後のリンクの向きとは反対向きに進む経路のリンクのコストをUターン優先係数で相対的に低くしているが、その代わりに、1より大きい値のUターン優先係数を、最後のリンクの方向に沿って進む経路のリンクのコストへ適用するようにしてもよい。
なお、コスト計算部44は、基本的には、候補経路の最初のリンクのみについて、そのコスト情報に、Uターン優先係数を乗算すればよい。この他にもたとえば、コスト計算部44は、候補経路の最初のリンクから所定数(たとえば10本)の複数のリンクについて、そのコスト情報にUターン優先係数を乗算したり、探索の起点から所定の距離範囲(たとえば2kmなど)内にある複数のリンクについて、そのコスト情報にUターン優先係数を乗算したり、探索の起点から幹線道路に戻るまでの複数のリンクについて、そのコスト情報にUターン優先係数を乗算したり、探索の起点の前の道路のリンクとは異なる道路種別となるまでの複数のリンクについて、そのコスト情報にUターン優先係数を乗算したりするようにしてもよい。
コスト計算条件46に係数が設定されていないリンクおよびノードについては、コスト計算部63は、そのリンクあるいはノードのリンクデータ群25あるいはノードデータ群26におけるコスト情報をそのまま、そのリンクあるいはノードの個別の通過コストとする。
候補経路に含まれるすべてのリンクおよびすべてのノードの個別の通過コストを計算したら、コスト計算部63は、そのすべての個別の通過コストを加算し、その演算結果をその候補経路のコストとする。
記憶デバイス15に記憶される各候補経路のコストが計算されると、案内経路選択部45は、その記憶デバイス15に記憶される複数の候補経路(候補経路リスト47)の中から、コストが最も低い候補経路を選択する(ステップST27)。
案内経路選択部45は、選択した1つの候補経路を、案内経路48として記憶デバイス15に記憶させる。以上の案内経路48の探索処理により、記憶デバイス15には、次の区間の案内経路48が記憶される。図3の場合、経由地から目的地までの区間の案内経路48が記憶デバイス15に記憶される。
記憶デバイス15に次の区間の案内経路48が記憶されると、図6に戻り、コスト計算条件設定部62は、最後の探索における終点が目的地であるか否かに基づいて、地点設定部41により選択された出発地あるいは現在地からすべての通過点を通過して目的地に至る経路の探索が完了したか否かを判断する(ステップST3)。
図3のように、最後の探索における終点が目的地である場合には、コスト計算条件設定部62は、探索処理を終了する。最後の探索における終点が目的地でない場合には、コスト計算条件設定部62は、最後の探索における終点が目的地となるまで、上述した次の区間の経路の探索処理(ステップST4)を繰り返し実行する。
なお、この案内経路48を用いた経路案内は、実施の形態1に係るカーナビゲーションシステムと同様であり、その説明を省略する。
以上のように、この実施の形態2に係るカーナビゲーションシステムは、出発地あるいは現在地から、経由地あるいは立ち寄り点を経由して、目的地へ向かう案内経路48を探索し、車両が、その案内経路48に沿って移動するように経路を案内することができる。
特に、経由地や立ち寄り点においてUターンが可能であり、且つ、その経由地や立ち寄り点の前の道路が戻ることができる道路である場合には、この実施の形態2に係るカーナビゲーションシステムは、その経由地や立ち寄り点においてUターンする経路のコストを低くする。その結果、この実施の形態2に係るカーナビゲーションシステムでは、その経由地や立ち寄り点においてUターンする経路が、案内経路48として選択され易い。
また、この実施の形態2では、経由地においてUターンできるか否かの判断に基づいて、道なり直進優先係数やUターン優先係数をコスト計算条件46として設定するか否かを制御し、コストの低い候補経路が最終的に各区間の案内経路48として選択されるようにしている。したがって、経由地においてUターンができると判断された場合であっても、道なりに直進する候補経路が案内経路48として選択され得る。
以上の各実施の形態は、本発明の好適な実施の形態の例であるが、本発明はこれに限定されるものではなく、発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
たとえば上記各実施の形態では、コスト計算条件設定部42,62は、区間ごとの探索の起点となる通過点においてUターンが可能であるか否かと、その通過点の前の道路が折り返すことが可能な道路であるか否かとに基づいて、通過点でのUターンが可能か否かを判断し、コスト計算条件46として設定する係数を選択している。この他にもたとえば、コスト計算条件設定部42,62は、通過点においてUターンが可能であるかのみに基づいて、通過点でのUターンが可能か否かを判断し、コスト計算条件46として設定する係数を選択したりするようにしてもよい。
上記各実施の形態では、コスト計算条件設定部42,62は、記憶デバイス15に記憶される地点データ群24の施設情報に基づいて、通過点においてUターンが可能であるか否かを判断している。この他にもたとえば、コスト計算条件設定部42,62は、たとえば無線通信ネットワークなどを介して取得したその通過点にある施設に関する情報などに基づいて、通過点においてUターンが可能であるか否かを判断するようにしてもよい。
上記各実施の形態では、コスト計算条件設定部42,62は、区間ごとの探索の起点となる通過点においてUターンが可能であり、且つ、その通過点の前の道路が折り返すことが可能な道路である場合に、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりしている。この他にもたとえば、コスト計算条件設定部42,62は、その道路へ曲がった道路の道路種別が、通過点の前の道路の道路種別より、より幹線の道路である場合には、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりするようにしてもよい。たとえば図3で言えば、コスト計算条件設定部42,62は、経由地前道路である第一の細街路33の道路種別と、その第一の細街路33へ左折した第一の国道31の道路種別との比較に基づいて、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりするようにすればよい。さらに他にもたとえば、コスト計算条件設定部42,62は、経由地前道路である第一の細街路33へ左折した第一の国道31の道路種別が幹線道路を意味するものである場合には、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりするようにしてもよい。
この他にもたとえば、コスト計算条件設定部42,62は、探索の起点を基準とした終点の方向と、起点前の道路における折り返しのリンクの方向とを比較し、それらの方向のなす角度が所定の角度(たとえば90度、60度、45度など)以下である場合には、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりするようにしてもよい。たとえば図3で言えば、コスト計算条件設定部42,62は、経由地を基準とした目的地の方向と、経由地前道路である第一の細街路33の折り返しのリンクであるリンクL4の方向とを比較し、それらの方向のなす角度が60度以下である場合、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりするようにすればよい。さらに他にもたとえば、コスト計算条件設定部42,62は、探索の起点と終点との間に、経由地前道路である第一の細街路33へ左折した第一の国道31が通過している場合には、道なり直進優先係数の設定を止めたり、Uターン優先係数を設定したりするようにしてもよい。
上記各実施の形態では、リンクあるいはノードごとに個別に係数を乗算し、それを加算することで候補経路のコストを計算している。この他にもたとえば、リンクデータ群およびノードデータ群のコスト情報のみに基づいて得られる経路全体のコストに、係数を乗算し、その演算結果を、候補経路のコストとして計算するようにしてもよい。
上記各実施の形態では、コスト計算部44,63は、各候補経路のコストを1つ計算している。この他にもたとえば、コスト計算部44,63は、各候補経路について、複数のコストを計算するようにしてもよい。この場合、案内経路選択部45は、各候補経路の複数のコストに基づいて総合的に判断し、最適と思われるものを案内経路として選択するようにすればよい。
上記各実施の形態は、本発明を、カーナビゲーションシステムに適用した場合の例である。この他にもたとえば、本発明を、自転車、自動二輪などの経路を案内するナビゲーションシステムにおいて、適用することができる。また、ナビゲーションシステムは、携帯電話端末と、それと無線通信回線を介して接続されるナビゲーション用サーバとで構成されていてもよい。