(第1実施形態)
以下、本発明の第1実施形態について説明する。図1に示すように、本実施形態の車両用ナビゲーション装置1(推奨ルート探索装置の一例に相当する)は、車両に搭載され、位置検出器11、表示装置12、操作部13、音声出力装置14、地図データ取得装置15、交通情報受信器16、および制御回路17を有する。
位置検出器11は、GPS受信機、車速センサ、加速度センサ、ジャイロセンサ等、車両の現在位置を特定するための信号を制御回路17に出力するセンサである。表示装置12は、制御回路17の制御に従って文字や画像をドライバーに表示する液晶ディスプレイ等の装置である。操作部13は、ドライバーの操作を受け付け、受け付けた操作に応じた信号を制御回路17に出力する装置である。音声出力装置14は、車内のドライバーに聞かせるための音声を出力する装置である。地図データ取得部15は、制御回路17の制御に従って地図データを取得して制御回路17に出力する装置である。交通情報受信器16は、無線通信で車外から交通情報を取得する装置であり、例えば、VICS受信機(VICSは登録商標)を用いて実現可能である。
制御回路17は、CPU、RAM、ROM、フラッシュメモリ等を備えた装置(例えばマイクロコントローラ)であって、ROMまたはフラッシュメモリに記録されたプログラムをCPUが実行することで、各種処理を実現するようになっている。
制御回路17がプログラムを実行することによって行う具体的な処理としては、現在位置特定処理、地図表示処理、ルート探索処理、ルート案内処理等がある。現在位置特定処理は、位置検出器11からの信号に基づいて、周知のマップマッチング等の技術を用いて車両の現在位置や向きを特定する処理である。
地図表示処理は、車両の現在位置の周辺等の特定の領域の地図を、画像表示装置12に表示させる処理である。この際、地図表示のために用いる情報は、地図データ取得部15を用いて地図データから取得する。
ルート探索処理は、操作部13からドライバーによる目的地および経由地の入力を受け付け、現在地(出発地)から当該目的地までの最適なルートを算出して表示する処理である。本実施形態のルート探索処理には、後述する両天秤ルート探索処理および通常ルート探索処理の2種類がある。
ルート案内処理は、車両の走行中等において、ルート探索処理によって表示された推奨ルートに沿った走行を案内する処理である。制御回路17は、ルート案内処理において、推奨ルートと自車位置との位置関係を逐次監視する。そして、推奨ルート上の右左折交差点等の案内ポイントの手前に自車両が到着したときに、右左折等を指示する案内音声を音声出力装置14に出力させ、当該案内ポイントの拡大図を表示装置12に表示させることで、推奨ルートに沿った車両の運転を案内する。
以下、両天秤ルート探索処理の詳細について説明する。制御回路17は、ドライバーが操作部13に対して所定のルート探索開始操作を行ったことに基づいて、制御回路17のROM等に記録されている所定のプログラムを実行することで、図2の両天秤ルート探索処理を実現する。
そしてまずステップ110では、目的地G0、経由地ペア(地点のペアの一例に相当する)、経由地ペアの優先順位、および、到着条件等の情報を決定する。具体的には、ドライバーが操作部13を操作して上記情報を入力し、制御回路17が、入力された当該情報を受け付ける。またステップ110では、出発地Sも決定する。出発地Sについては、位置検出器11を用いて特定した自車両の現在位置を出発地Sとして決定してもよいし、ドライバーが操作部13を用いて入力した出発地を出発地Sとしてもよい。
ここで、経由地ペア、経由地ペアの優先順序、および到着条件について説明する。経由地ペアは、2つの経由地候補(地点)である。この経由地ペアには、経由地候補間で優先順位がある。
例えば、あるドライバーが、図3に示すように、自分の家族と友人を連れて車で三重県の海水浴場Sに出かけ、夜まで遊んだ後、海水浴場Sを出発地として自宅G0(愛知県刈谷市内)に戻ろうとする。このときドライバーは、友人が電車で友人宅G2(名古屋市内)に帰る予定なので、自宅の最寄駅G1(刈谷駅)まで車で友人を送り、その後自宅G0に車で向かうことを考える。
しかし、走行中に道路状況が変化する等の原因で、刈谷駅G1の名古屋行きの終電車に間に合うように友人を送れなくなる可能性もあり、そうなった場合、車で友人宅G2まで友人を送り、その後自宅G0に車で向かう可能性もある。ドライバーは、このようなことを想定し、現在位置である出発地(海水浴場)Sにおいて、目的地として自宅G0を入力し、経由地ペアに含まれる2つの経由地候補として、刈谷駅G1と友人宅G2を入力する。更に、優先順序として、刈谷駅G1の方が友人宅G2よりも優先することを入力し、到着条件として、「刈谷駅G1に名古屋行きの終電車の時刻までに到着する」という条件を入力する。なお、名古屋行きの終電車の時刻は、例えば操作部13を用いてドライバーが入力する。
このように、経由地ペアに含まれる2つの経由地候補G1(第1の地点の一例に相当する)および経由地候補G2(第2の地点の一例に相当する)は、最終的にはどちらか1つのみが経由地となる2者択一の経由地候補である。また、経由地候補G1、G2は、入力された時点では、最終的にどちらが経由地になるかは、明確に確定できない。ただし、一方(刈谷駅G1)が他方(友人宅G2)に対して条件(到着条件)付きで優先する関係にある。
続いてステップ120では、ステップ110で決定した出発地S(現在の自車両の位置)を最初の計算対象ノードに設定する。続いてステップ130では、最新の計算対象ノード(この時点では、最初の計算対象ノードである出発地S)にリンクを一本だけ介して繋がっており且つ経由地候補G1(優先順位の高い方の経由地候補)に近づく全ノードを、地図データから抽出する。
ここで、あるノードが経由地候補G1に近づくか否かは、最新の計算対象ノードから経由地候補G1までの直線距離をD1とし、当該ノードから経由地候補G1までの直線距離をD2としたとき、D1とD2の関係がD1>D2となるか否かで判定する。あるノードが経由地候補G1に近づくということは、当該ノードが最新の計算対象ノードよりも経由地候補G1に近づくことをいう。
例えば、簡単のため、出発地S、経由地候補G1、経由地候補G2の間にあるノードB0〜B3、A1、A2およびリンク(ノード間の直線で表す)の接続構造が、図4のようになっていたとする。各リンクの長さは、図に記載した通りである。この場合、本時点においては、最新の計算対象ノードSにリンクを一本だけ介して繋がっているノードは、B0、B1、B2、B3である。そして、これらのノードB0、B1、B2、B3のうち、経由地候補G1に近づくノードは、ノードB0を除くノードB1、B2、B3となる。ノードB0については、経由地候補G1から遠ざかるノードである。したがって、本時点のステップ130では、ノードB1、B2、B3が抽出される。
続いてステップ140では、直前のステップ130で抽出したノードの中に経由地候補G1が含まれるか否かを判定する。本時点のステップ140では、直前に抽出したノードB1、B2、B3に経由地候補G1が含まれていないので、含まれていないと判定してステップ150に進む。
ステップ150では、直前のステップ130で抽出したノードの各々から、経由地候補G1への最短のルートおよび経由地候補G2への最短のルートを算出し、算出した各ルートの長さを算出する。
本時点のステップ150では、ノードB1からノードG1までの最短のルートの長さが8kmであると計算され、ノードB1からノードG2までの最短のルートの長さが11kmであると計算される。また、ノードB2からノードG1までの最短のルートの長さが11kmであると計算され、ノードB2からノードG2までの最短のルートの長さが9kmであると計算される。また、ノードB3からノードG1までの最短のルートの長さが14kmであると計算され、ノードB3からノードG2までの最短のルートの長さが11kmであると計算される。
続いてステップ160では、直前のステップ150の計算結果に基づいて、直前のステップ130で抽出したノードの各々について、ノードG1までの最短ルートの長さとノードG2までの最短ルートの長さの差分の絶対値を算出する。更にステップ160では、直前のステップ130で抽出したノードのうち、上記のように算出した絶対値が最小となるノードを選択する。
本時点のステップ160では、ノードB1におけるノードG1までの最短ルートの長さとノードG2までの最短ルートの長さの差分の絶対値は|8km−11km|=3kmと計算される。また、ノードB2におけるノードG1までの最短ルートの長さとノードG2までの最短ルートの長さの差分の絶対値は|11km−9km|=2kmと計算される。また、ノードB3におけるノードG1までの最短ルートの長さとノードG2までの最短ルートの長さの差分の絶対値は|14km−11km|=3kmと計算される。この結果、制御回路17は、算出した絶対値が最小となるノードB2を選択する。
続いてステップ170では、直前のステップ160で選択したノードを新しい計算対象ノードに設定する。本時点のステップ170では、ノードB2を新しい計算対象とする。
ステップ170に続いては、ステップ130に戻り、既に説明した通り、最新の計算対象ノードにリンクを一本だけ介して繋がっており且つ経由地候補G1に近づく全ノードを、地図データから抽出する。
本時点では、最新の計算対象ノードは、直前のステップ170で新たに設定されたノードB2である。このノードB2にリンクを一本だけ介して繋がっているノードは、ノードS、B1、B3、A1、A2であり、それらのうち、経由地候補G1に近づくノードは、ノードA1、A2のみである。したがって、ノードA1、A2が抽出される。
続いてステップ140では、既に説明した通り、直前のステップ130で抽出したノードの中に経由地候補G1が含まれるか否かを判定する。本時点では、含まれていない(ノードA1、A2しかない)と判定し、ステップ150に進む。
ステップ150では、既に説明した通り、直前のステップ130で抽出したノードの各々から、経由地候補G1への最短のルートおよび経由地候補G2への最短のルートを算出し、算出した各ルートの長さを算出する。
本時点のステップ150では、ノードA1からノードG1までの最短のルートの長さが4kmであると計算され、ノードA1からノードG2までの最短のルートの長さが5kmであると計算される。また、ノードA2からノードG1までの最短のルートの長さが6kmであると計算され、ノードA2からノードG2までの最短のルートの長さが3kmであると計算される。
続いてステップ160では、既に説明した通り、直前のステップ150の計算結果に基づいて、直前のステップ130で抽出したノードの各々について、ノードG1、G2までの最短ルートの長さの差分の絶対値を算出し、絶対値が最小となるノードを選択する。
本時点のステップ160では、ノードA1におけるノードG1までの最短ルートの長さとノードG2までの最短ルートの長さの差分の絶対値は|4km−5km|=1kmと計算される。また、ノードA2におけるノードG1までの最短ルートの長さとノードG2までの最短ルートの長さの差分の絶対値は|6km−3km|=3kmと計算される。
続いてステップ170では、既に説明した通り、直前のステップ160で選択したノードを新しい計算対象ノードに設定する。本時点のステップ170では、ノードA1を新しい計算対象とする。
ステップ170に続いては、ステップ130に戻り、既に説明した通り、最新の計算対象ノードにリンクを一本だけ介して繋がっており且つ経由地候補G1に近づく全ノードを、地図データから抽出する。
本時点では、最新の計算対象ノードは、直前のステップ170で新たに設定されたノードA1である。このノードA1にリンクを一本だけ介して繋がっているノードは、ノードB1、B2、A2、G1、G2であり、それらのうち、経由地候補G1に近づくノードは、ノードG1のみである。したがって、ノードG1が抽出される。
続いてステップ140では、既に説明した通り、直前のステップ130で抽出したノードの中に経由地候補G1が含まれるか否かを判定する。本時点では、含まれていると判定し、ステップ180に進む。
ステップ180では、ステップ110を実行して以降に設定されたすべての計算対象ノードS、B2、A1、および、経由地候補G1を、この順に、1本のリンクのみを隣り合う2つのノード間に入れて繋ぐルートを作成する。そして、作成したルートを、出発地Sから経由地候補G1までの推奨ルートとする。
続いてステップ190では、経由地候補G1から目的地G0までの推奨ルートを算出する。経由地候補G1から目的地G0までの推奨ルートの算出方法は、例えば、G1からG0までの移動距離が最短となるようなルートを選択してもよいし、G1からG0までの移動時間が最短となるようなルートを選択してもよい。より広く言えば、G1からG0までの経路コストが最小となるようなルートを選択してもよい。
なお、ルートの経路コストは、例えば、ルートに含まれる各リンクの長さ、リンク旅行時間、幅員等に応じてあらかじめ定められている。例えば、ルートの経路コストは、当該ルートの長さに比例してもよいし、当該ルートの移動時間(旅行時間)に比例してもよい。以下で説明する経路コストについても同じである。
なお、G1からG0までの推奨ルートの算出結果は、もう1つの経由地候補G2の位置に影響されない。
ステップ180で得られた出発地Sから経由地候補G1までの推奨ルートと、ステップ190で得られた経由地候補G1から目的地G0までの推奨ルートと、を繋げたルートが、出発地Sから目的地G0までの推奨ルートとなる。
このように、制御回路17は、出発地Sから経由地候補G1までの推奨ルートを算出するために、最新の計算対象ノードにリンクを1本だけ介して接続すると共に経由地候補G1に近づくノードを1つ以上抽出する(ステップ130)。そして、抽出したノードから経由地候補G1までの距離と経由地候補G2までの距離の差分の絶対値が最も小さいノードB2、A1を新しい計算対象ノードに設定する(ステップ150〜170)。
なお、ステップ130では、最新の計算対象ノードにリンクを一本だけ介して繋がっており且つ経由地候補G1に近づくノードが存在する場合は、上述の通りの作動でよいが、そのようなノードが存在しない場合もあり得る。つまり、最新の計算対象ノードにリンクを一本だけ介して繋がっているノードの中に、経由地候補G1に近づくノードが存在しない場合があり得る。そのような場合、制御回路17は、最新の計算対象ノードにリンクを一本だけ介して繋がっているノードのうち、経由地候補G1までの直線距離が最短の経路のみを抽出するようになっていてもよい。
制御回路17は、このようなステップ130、150〜170の処理を、抽出したノード中に経由地候補G1が含まれるまで繰り返す。この繰り返しの回数は、図4のような簡単な例では2回であったが、出発地S、経由地候補G1、G2の間に多数(例えば数十個から数百個)のノードがある場合には、もっと多数回繰り返すことになる。そして、抽出したノード中に経由地候補G1が含まれた時点で(ステップ140)、それまでの計算対象ノードおよび経由地候補G1を順に繋げたルートを推奨ルートとする(ステップ180)。
このようにして算出された出発地Sから経由地候補G1までの推奨ルートの特徴は、経由地候補G2を通過しないルートであるにもかかわらず、経由地候補G2の位置に構成が大きく影響されることである。つまり、出発地Sから経由地候補G1までの推奨ルートは、経由地候補G2を通過しないにもかかわらず、経由地候補G1に近づく範囲内でできるだけ経由地候補G1、G2までの距離差(または時間差)の絶対値が小さくなるように、算出されている。その意味で、出発地Sから経由地候補G1までの推奨ルートは経由地候補G1、G2を両天秤にかけた両天秤ルートである。
ステップ190に続いては、ステップ210で、到着条件を満足するか否かを判定する。この到着条件は、ステップ110でドライバーによって入力された到着条件である。したがって、制御回路17は、現在位置から推奨ルートを通って経由地候補G1に到達する場合の経由地候補G1への到達時刻を、推奨ルート中のリンクのリンク旅行時間等を用いた周知の方法で算出する。そして、到着条件として入力された入力された終電時刻から、乗り換えにかかる所定時間(例えば10分)だけ戻した時刻を、基準時刻とする。そして、上記到達時刻が上記基準時刻よりも前か否かで、到着条件を満足するか否かを判定する。
上記到達時刻が上記基準時刻よりも前である場合は、現在の推奨ルートを維持したままステップ220に進み、道路状況等の変化を確認する。ここで、変化を確認する道路状況等は、経由地候補G1への到着時刻(つまり到着条件を満たすか否か)に影響する情報であり、例えば、リンク旅行時間の変動に影響する渋滞情報、現在時刻、自車両の現在位置等である。なお、渋滞情報は、交通情報受信器16を用いて最新の情報を取得することができる。ステップ220に続いては、ステップ210に戻る。このように、制御回路17は、両天秤ルート探索処理において、到着条件を満足すると判定し続ける限り、ステップ210、220のループ処理を一定周期で繰り返す。
ここで、上記のように出発地Sから目的地G0までの推奨ルートが決定した後に、ドライバーが車両を発進させると、制御回路17は、両天秤ルート探索処理を続けながら、ルート案内処理も同時並行的に実行する。このルート案内処理において制御回路17は、既に説明した通りの方法で、現在の推奨ルートに沿った走行を案内する。これにより、ドライバーは、推奨ルートに沿った案内を受けながら走行することができる。
その後も、制御回路17が両天秤ルート探索処理のステップ210で到着条件を満足すると判定し続けていれば、推奨ルートが変化しないまま、車両が経由地候補G1に到着し、友人が車両から降りる。そしてその後、推奨ルートに沿って経由地候補G1から目的地G0(自宅)まで車両が走行し、目的地G0に到着した時点で、制御回路17がルート案内処理を終了する。
しかし、図5に例示するように、車両が出発地Sから経由地候補G1を経て目的地G0に向かう推奨ルートS1+S2のうち、ルートS1aの部分までを走行した時点で、上記到達時刻が上記基準時刻以後になったとする。この場合、制御回路17はその時点で、両天秤ルート探索処理のステップ210において、到着条件を満足しないと判定してステップ230に進み、推奨ルートを変更する。
具体的には、今までの出発地Sから目的地G0までの推奨ルートが、経由地候補G1を通る両天秤ルートS1a+S1b+S2であったのに対し、変更後の推奨ルートはルートSx+Syとする。つまり、変更後の推奨ルートは、現在地Mおよび経由地候補G2を通り、かつ経由地候補G1を通らず、目的地G0に至るルートとする。このような新たな推奨ルートSx+Syの算出方法は、MからG2までの移動距離が最短となると共にG2からG0までの移動距離が最短となるルートを選択してもよい。あるいは、MからG2までの移動時間が最短となると共にG2からG0までの移動時間が最短となるルートを選択してもよい。より広く言えば、MからG2までの経路コストが最小となると共にG2からG0までの経路コストが最小となるようなルートを選択してもよい。この場合、ルートの経路コストは、例えば、ルートに含まれる各リンクの長さ、リンク旅行時間、幅員等に応じてあらかじめ定められていてもよい。なお、MからG2を通ってG0に至る推奨ルートの算出結果は、もう1つの経由地候補G1の位置に影響されない。ステップ230の後、両天秤ルート探索処理は終了する。
このように推奨ルートが変更されると、制御回路17は、ルート案内処理において、既に説明した通りの方法で、変更後の推奨ルートに沿った走行を案内する。これにより、ドライバーは、変更後の推奨ルートに沿った案内を受けながら走行することができる。このような場合、車両は、ルートS1a、Sx、Syをこの順に通ることになる。
仮に制御回路17が上記のような両天秤ルートを算出せず、単に出発地Sから経由地候補G1までの経路コストが最小となると共に経由地候補G1から目的地G0までの経路コストが最小となるような通常ルートを推奨ルートにしたとする。なお、この通常ルートの算出結果は、経由地候補G2の位置に影響されない。このような通常ルートは、図3のL1a、L1b、L2を繋げたルートになる。
実際、本実施形態の制御回路17も、図2の両天秤ルート探索処理とは別の通常ルート探索処理において、出発地と、経由地G1と目的地G0の3つがドライバーによって入力され、経由地候補G2が入力されない場合は、上述の通常ルートを算出して推奨ルートとする。なお、制御回路17が、この通常ルート探索処理を実行することで、通常ルート探索手段の一例として機能する。
このような通常ルート中のルートL1aを車両が走行した時点で、ドライバーが経由地を経由地候補G1から経由地候補G2に変更して、車両のルートをLxとLyを繋げたルートに変更したとする。なお、ルートL1aの長さとルートS1aの長さは同じであるとする。この場合、出発地から地点G2へのルート(L1aとLxを繋げたルート)の長さは、図5の出発地から地点G2へのルート(S1aとSxを繋げたルート)の長さに比べて、長くなってしまう。つまり、大回りなルートとなってしまう。
このようになるのは、図5の両天秤ルートS1a+S1bの両端部S、G1以外の全体が、経由地候補G2に到達しないにも関わらず、図3の通常ルートL1a+L1bに比べて、経由地候補G2寄りに位置しているからである。
このようになっていることで、本実施形態の推奨ルートである両天秤ルートS1a+S1b+S2は、経由地候補G1に近づきながらも、経由地候補G2からもなるべく遠ざからないようになっている。また、通常ルートL1a+L1bに比べても、経由地候補G2からなるべく遠ざからないようになっている。したがって、推奨ルート上を移動中に、到着条件を満たした上で経由地候補G1に到着することができなくなり、経由地候補G2に向かうことになったとしても、出発地Sから経由地候補G2までのルートが従来よりも短くなる。
(第2実施形態)
次に、本発明の第2実施形態について説明する。本実施形態は、第1実施形態に対して、以下のような変更を加えたものである。本実施形態に係る車両用ナビゲーション装置1のハードウェア構成は、第1実施形態と同じである。
また、本実施形態の制御回路17は、第1実施形態と同様、図2に示す両天秤ルート探索処理を行うが、経由地ペアの取り扱いが第1実施形態とは異なっており、推奨ルートは、経由地ペアに含まれる2つの経由地候補の両方を通過するように計算される。このために、ステップ110、ステップ190、ステップ210、ステップ230の内容が、第1実施形態とは異なっている。
以下、第1実施形態とは異なる部分を中心に説明する。制御回路17は、まずステップ110で、目的地G0、経由地ペア(地点のペアの一例に相当する)、経由地ペアの優先順位、および、到着条件等の情報を決定する。具体的には、ドライバーが操作部13を操作して、経由地ペア、到着条件を入力する。また、経由地ペアの優先順位については、ドライバーが操作部13を操作して入力してもよいし、入力しなくてもよい。そして、制御回路17が、入力された情報を受け付ける。またステップ110では、制御回路17は、出発地Sも第1実施形態と同様に決定する。
なお、経由地ペアの優先順位については、第1実施形態と同じ方法で、目的地G0、経由地ペア(地点のペアの一例に相当する)、経由地ペアの優先順位、および、到着条件等の情報を決定する。
本実施形態においては、例えば、あるドライバーが、2人の友人を各々の居宅まで送ろうとするとき、ドライバーは、車で先に着きそうな友人宅G1にまず行き、その後に友人宅G2に行き、その後に自宅G0に向かうことを考える。
しかし、走行中に道路状況が変化する等の原因で、友人宅G1に向かっている途中で、友人宅G2に向かった方が先に着く状況になる可能性もある。ドライバーは、このようなことを想定し、現在位置である出発地Sにおいて、目的地として自宅G0を入力し、経由地ペアに含まれる2つの経由地候補として、友人宅G1と友人宅G2を入力する。更に、優先順序として、友人宅G1の方が友人宅G2よりも優先することを入力し、到着条件として、「友人宅G1に向かった方が友人宅G2に向かった場合よりも早く友人宅に着く」という条件を入力する。
このように、経由地ペアに含まれる2つの経由地候補G1(第1の地点の一例に相当する)および経由地候補G2(第2の地点の一例に相当する)は、両方とも経由地となるが、到着順序が入れ替わる可能性がある。また、一方(友人宅G1)が他方(友人宅G2)に対して条件(到着条件)付きで優先する関係にある。
ステップ120、130、140、150、160、170、180の内容については、第1実施形態と同じである。したがって、第1実施形態と同様に、ステップ120〜ステップ180の処理により、出発地Sから経由地候補G1までの両天秤ルートが、出発地Sから経由地候補G1までの推奨ルートとなる。
続いてステップ190では、制御回路17は、経由地候補G1から経由地候補G2を通って目的地G0に到着する推奨ルートを算出する。経由地候補G1から経由地候補G2までの推奨ルートの算出方法は、第1実施形態のステップ190における経由地候補G1から目的地G0までの推奨ルートの算出方法と同様である。つまり、G1からG2までの経路コスト(例えば移動時間)が最小となるようなルートを選択する。経由地候補G2から目的地G0までの推奨ルートの算出方法は、第1実施形態のステップ190における経由地候補G1から目的地G0までの推奨ルートの算出方法と同様である。つまり、G2からG0までの経路コスト(例えば移動時間)が最小となるようなルートを選択する。
そして、ステップ180で得られた出発地Sから経由地候補G1までの推奨ルートと、ステップ190で得られた経由地候補G1から経由地候補G2を通って目的地G0に到着する推奨ルートと、を繋げたルートが、出発地Sから目的地G0までの推奨ルートとなる。このようにして算出された出発地Sから経由地候補G1までの推奨ルートの特徴は、第1実施形態と同じである。
続くステップ210では、制御回路17は、到着条件を満足するか否かを判定する。この到着条件は、第1実施形態と同様、ステップ110でドライバーによって入力された到着条件であるが、その具体的内容は第1実施形態とは異なり、「友人宅G1に向かった方が友人宅G2に向かった場合よりも早く友人宅に着く」である。
したがって、制御回路17は、ステップ210では、現在位置から経由地候補G1までの移動時間が最低となるルートを算出すると共に当該ルートの移動時間H1を特定する。また、現在位置から経由地候補G2までの移動時間が最低となるルートを算出すると共に当該ルートの移動時間H2を特定する。そして、移動時間H1と移動時間H2とが、H1<H2の関係にあるか否かで、到着条件を満足するか否かを判定する。
到着条件を満足すると判定した場合は、ステップ220に進み、1実施形態と同様に、道路状況等の変化を確認し、ステップ210に戻る。ここで、変化を確認する道路状況等は、上述の移動時間H1、H2(つまり到着条件を満たすか否か)に影響する情報であり、例えば、リンク旅行時間の変動に影響する渋滞情報、現在時刻、自車両の現在位置等である。このように、制御回路17は、両天秤ルート探索処理において、到着条件を満足すると判定し続ける限り、ステップ210、220のループ処理を一定周期で繰り返す。
その後も、制御回路17が両天秤ルート探索処理のステップ210で到着条件を満足すると判定し続けていれば、推奨ルートが変化しないまま、車両が経由地候補G1に到着し、友人F1が車両から降りる。そしてその後、推奨ルートに沿って経由地候補G1から経由地候補G2まで車両が走行し、経由地候補G2に到着すると友人F2が車両から降りる。更にその後、推奨ルートに沿って経由地候補G2から目的地G0(自宅)まで車両が走行し、目的地G0に到着した時点で、制御回路17がルート案内処理を終了する。
しかし、図6に例示するように、車両が出発地Sから経由地候補G1、G2をこの順に経て目的地G0に向かう推奨ルートS11a+S11b+S12+S13のうち、ルートS1aの部分までを走行した時点で、友人宅G2に向かった方が友人宅G1に向かった場合よりも早く友人宅に着く状況になったとする。この場合、制御回路17はその時点で、両天秤ルート探索処理のステップ210において、到着条件を満足しないと判定してステップ230に進み、推奨ルートを変更する。
具体的には、今までの出発地Sから目的地G0までの推奨ルートが、経由地候補G1を通る両天秤ルートS11a+S11b+S12+S13であったのに対し、変更後の推奨ルートはルートS21+S22+S23とする。つまり、変更後の推奨ルートは、現在地Mおよび経由地候補G2、G1をこの順に通り、目的地G0に至るルートとする。
このような新たな推奨ルートS21+S22+S23の算出方法は、MからG2までの移動距離が最短となり、G2からG1までの移動距離が最短となると共に、G1からG0までの移動距離が最短となるルートを選択してもよい。あるいは、MからG2までの移動時間が最短となり、G2からG1までの移動時間が最短となると共に、G1からG0までの移動時間が最短となるルートを選択してもよい。より広く言えば、MからG2までの経路コストが最小となり、G2からG1までの経路コストが最小となると共にG1からG0までの経路コストが最小となるようなルートを選択してもよい。この場合、ルートの経路コストは、例えば、ルートに含まれる各リンクの長さ、リンク旅行時間、幅員等に応じてあらかじめ定められていてもよい。ステップ230の後、両天秤ルート探索処理は終了する。
このように推奨ルートが変更されると、制御回路17は、ルート案内処理において、既に説明した通りの方法で、変更後の推奨ルートに沿った走行を案内する。これにより、ドライバーは、変更後の推奨ルートに沿った案内を受けながら走行することができる。このような場合、車両は、ルートS21、S22、S23をこの順に通ることになる。
ここで、仮に制御回路17が上記のような両天秤ルートS11a+S11b+S12+S13を算出しなかったとする。そして単に出発地Sから経由地候補G1までの経路コストが最小となり、経由地候補G1から経由地候補G2までの経路コストが最小となると共に共に経由地候補G1から目的地G0までの経路コストが最小となるような通常ルートを推奨ルートにしたとする。この通常ルート中の出発地Sから経由地候補G1までの経路は、経由地候補G2の位置に影響されない。このような通常ルートは、図7のL1a、L1b、L12、L13を繋げたルートになる。
実際、本実施形態の制御回路17も、本実施形態の両天秤ルート探索処理とは別の通常ルート探索処理において、出発地と、経由地G1と、経由地G2と、目的地G0の4つがドライバーによって入力され、到着条件が入力されず、経由地G1と経由地G2の到着順が確定させる入力をドライバーが行っている場合は、上述の通常ルートを算出して推奨ルートとする。なお、制御回路17が、この通常ルート探索処理を実行することで、通常ルート探索手段の一例として機能する。
このような通常ルート中のルートL1aを車両が走行した時点で、ドライバーが最初の経由地を経由地候補G1から経由地候補G2に変更して、車両のルートをL21とL22とL23を繋げたルートに変更したとする。なお、ルートL11aの長さとルートS11aの長さは同じであるとする。この場合、出発地から地点G2へのルート(L11aとL21を繋げたルート)の長さは、図6の出発地から地点G2へのルート(S11aとS21を繋げたルート)の長さに比べて、長くなってしまう。つまり、大回りなルートとなってしまう。
このようになるのは、図6の両天秤ルートS11a+S11bの両端部S、G1以外の全体が、経由地候補G2に到達しないにも関わらず、図3の通常ルートL11a+L11bに比べて、経由地候補G2寄りに位置しているからである。
このようになっていることで、本実施形態の推奨ルートである両天秤ルートS11a+S11bは、経由地候補G1に近づきながらも、経由地候補G2からもなるべく遠ざからないようになっている。また、通常ルートL11a+L11bに比べても、経由地候補G2からなるべく遠ざからないようになっている。したがって、推奨ルート上を移動中に、到着条件を満たした上で経由地候補G1に到着することができなくなり、経由地候補G2に向かうことになったとしても、出発地Sから経由地候補G2までのルートが従来よりも短くなる。
(第3実施形態)
次に、本発明の第3実施形態について説明する。本実施形態は、第1実施形態に対して、以下のような変更を加えたものである。本実施形態に係る車両用ナビゲーション装置1のハードウェア構成は、第1実施形態と同じである。
また、本実施形態の制御回路17は、図2の両天秤ルート探索処理に処理を追加した両天秤ルート探索処理を実行することで、第1実施形態で説明した両天秤ルートを算出するか否かを判定するようになっている。そのため、本実施形態では、制御回路17は、図2のステップ110の後に、図8に示す処理を実行するようになっている。それ以外は、第1実施形態と同じである。
以下、図8の処理内容について説明する。制御回路17は、図2のステップ110で、目的地G0、経由地ペアG1、G2、経由地ペアG1、G2の優先順位、および、到着条件等の情報を決定した後、図8のステップ111に進み、ルートL0の長さを算出する。
ルートL0は、図9に示すルートL1とルートL2を繋いだルートである。ここで、ルートL1は、第1実施形態のルートL1a+L1bと同じであり、ルートL2は第1実施形態のルートL2と同じである。したがって、ルートL0は、出発地Sから目的地G0までの通常ルートである。すなわち、ルートL0は、単に出発地Sから経由地候補G1までの経路コストが最小となると共に経由地候補G1から目的地G0までの経路コストが最小となるようなルートであり、かつ、経由地候補G2の位置に影響されない。
続いてステップ113では、ルートL1、ルートL3、ルートL4を繋いだルートLLの長さを算出する。ルートL3は、経由地候補G1から経由地候補G2までの経路コストが最小となるルートである。ルートL4は、経由地候補G2から経由地候補G0までの経路コストが最小となるルートであり、経由地候補G1の位置に影響されない。
続いてステップ115では、ルートLLの長さをルートL0の長さで除算した値Kを算出する。続いてステップ117では、直前のステップ117で算出した値Kが所定の下限値K1より大きく所定の上限値K2より小さいか否かを判定する。ここで判定される「値Kが下限値K1より大きく上限値K2より小さい」という条件は、限定条件の一例であるである。下限値K1および上限値K2につきましては、例えば、それぞれ1.5および2とする。
値Kが下限値K1より大きく限値K2より小さい場合、図2のステップ120に進んで第1実施形態と同様に出発地Sから経由地候補G1までの両天秤ルートおよび経由地候補G1から目的地G0までのルートを繋いで推奨ルートとする。また、値Kが下限値K1以下または限値K2以上の場合、ステップ119に進んで、通常ルートL0を推奨ルートとする。
ここで、値Kが下限値K1以下となる例について、図10を参照して説明する。図10の例では、出発地S(現在位置)、経由地候補G1、G2および目的地G0が、この順で概ね直線状に並んでいる。この場合、仮に経由地候補G1まで移動した後に経由地候補G2に向かった場合と、最初から経由地候補G2に向かった場合とでは、走行距離は大きく変わらない。このような場合、例えば値Kは下限値K1より小さくなる。このような場合、ルートL0の長さとルートLLの長さの違いが大きくないので、両天秤ルートを推奨ルートとすることの利益が少ないので、両天秤ルートを算出しない。
また、値Kが下限値K1より大きく上限値K2よりも小さくなる例について、図11を参照して説明する。図11の例では、経由地候補G1と経由地候補G2がある程度離れており、出発地Sから見た経由地候補G1の方向と経由地候補G2の方向がある程度ずれている。このような場合は、値Kが下限値K1より大きく上限値K2よりも小さくなり、その結果、両天秤ルートを算出して推奨ルートの一部とする。
また、値Kが上限値K2以上となる例について、図12を参照して説明する。図12の例では、経由地候補G2が経由地候補G1からも目的地G0からもかなり離れている。このような場合、例えば値Kは上限値K2より大きくなる。このような場合、ルートLLの長さが過大になり、その結果、ルートL0の長さとの違いが非常に大きい。このような場合、両天秤ルートを推奨ルートの一部とすると、最終的に経由地候補G1を通って経由地候補G2を通る必要がない場合には、走行距離が無駄に大きくなってしまうので、両天秤ルートを算出しない。
(第4実施形態)
次に、本発明の第4実施形態について説明する。本実施形態は、第1、第3実施形態に対して、以下のような変更を加えたものである。本実施形態に係る車両用ナビゲーション装置1のハードウェア構成は、第1実施形態と同じである。
また、本実施形態の制御回路17は、図2の両天秤ルート探索処理に処理を追加した両天秤ルート探索処理を実行することで、第1、第3実施形態で説明した両天秤ルートを算出するか否かを判定するようになっている。そのため、本実施形態では、制御回路17は、図2のステップ110の後に、図8に示す処理を実行するようになっている。それ以外は、第1実施形態と同じである。
以下、図11の処理内容について説明する。制御回路17は、図2のステップ190の後、図13のステップ193に進み、限定条件を満たすか否かを判定する。限定条件は、車両の累計走行距離を○○km以内にしたい、最終目的地点に○○時までに帰りたい等のドライバーの要求に応じた条件であり、例えば、両天秤ルート探索処理の開始時に、ドライバーが操作部13を用いて入力する。
ここで、限定条件の第1の例について説明する。例えば、ドライバーが、友人を遠くまでは送りたくないと思っている場合、ドライバーは、操作部13に対して、限定条件として、(S1p+S2+L4)/L0<K3という条件、および、基準値K3の具体的な値を入力する。
この場合、制御回路17は、ステップ193では、ルートS1p、ルートS2、ルートL4を繋いだルートの長さを、ルートL0の長さで除算した値が、基準値K3(例えば2)以下であるか否かで、限定条件を満たすか否かを判定する。
ここで、ルートL0は、図14に示すルートL1とルートL2を繋いだルートである。ここで、ルートL1は、第1実施形態のルートL1a+L1bと同じであり、ルートL2は第1実施形態のルートL2と同じである。したがって、ルートL0は、出発地Sから目的地G0までの通常ルートである。また、ルートL4は、経由地候補G2から経由地候補G0までの経路コストが最小となるルートである。
また、ルートS1pは、直前のステップ180で出発地Sから経由地候補G1までの推奨ルートとされた両天秤ルートのうち、出発地Sから中継点Mまでのルートであり、ルートS1qは、当該両天秤ルートのうち、中継点Mから経由地候補G1までのルートである。また、ルートS2は、中継点Mから経由地候補G2までの経路コストが最小となるルートであり、経由地候補G1の位置には影響しない。
ここで、両天秤ルートS1p+S1q上の中継点Mの位置については、制御回路17が自動的に決定する。例えば制御回路17は、両天秤ルートS1p+S1qに沿って出発地Sと経由地候補G1から等距離にある地点を中継点Mとしてもよい。中継点Mは、車両が両天秤ルートから外れて経由地候補G2に向かう可能性がある点である。
このような関係になっているので、例えば基準値K3として2が入力された場合は、ドライバーは、自宅G0までまっすぐ(最もコストの低いルートで)帰ることに比べ、2倍以上の距離は走りたくないと考えていることになる。
また、限定条件の第2の例について説明する。例えば、ドライバーが、現在時刻からT時間以内に自宅G0に到着したいと思っている場合、ドライバーは、操作部13に対して、限定条件として、(S1p+S2+L4)/V<Tという条件、および、基準時間Tの具体的な値を入力する。
この場合、制御回路17は、ステップ193では、ルートS1p、ルートS2、ルートL4を繋いだルートの長さを、平均車速Vで除算した値が、基準時間T(例えば2時間)以下であるか否かで、限定条件を満たすか否かを判定する。なお、平均車速は、一定値(例えば時速30km)でもよいし、ドライバーが操作部13を用いて入力するようになっていてもよい。
ステップ193で限定条件を満たすと判定した場合は、ステップ180、190で設定された現在の推奨ルート(両天秤ルートを含んでいる)を維持したまま、図2のステップ210に進み、それ以降の作動は、第1、第3実施形態と同じである。
ステップ193で限定条件を満たさないと判定した場合は、ステップ195に進み、現在の推奨ルートに代えて、通常ルートL0を推奨ルートとし、図2のステップ210に進む。ステップ210以降の制御回路17の処理内容は、既に第1実施形態で説明した通りである。すなわち、到着条件が満足する限り、通常ルートL0が推奨ルートとして案内され、到着条件が満足しなくなると、推奨ルートが、現在地および経由地候補G2を通り、かつ経由地候補G1を通らず、目的地G0に至るルートに変更される。
なお、上記の第2の例の限定条件のように、限定条件に時間の条件が含まれる場合、制御回路17は、ステップ180で算出した両天秤ルートが限定条件に当てはまるか否かを、すなわち、ステップ193で限定条件を満たすと判定したか否かを、表示してもよい。表示方法は、例えば図示しない車載ディスプレイに表示させるようになっていてもよい。
なお、上記各実施形態において、制御回路17が、ステップ110を実行することで地点決定手段の一例として機能し、ステップ120〜190を実行することで両天秤ルート探索手段の一例として機能し、ステップ120を実行することで初期設定手段の一例として機能し、ステップ130〜170を実行することで繰り返し設定手段の一例として機能し、ステップ111〜119、180、190、193、195を実行することでルート決定手段の一例として機能する。
(他の実施形態)
本発明は上記した実施形態に限定されるものではなく、特許請求の範囲に記載した範囲内において適宜変更が可能である。また、上記各実施形態は、互いに無関係なものではなく、組み合わせが明らかに不可な場合を除き、適宜組み合わせが可能である。また、上記各実施形態において、実施形態を構成する要素は、特に必須であると明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、上記各実施形態において、実施形態の構成要素の個数、数値、量、範囲等の数値が言及されている場合、特に必須であると明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。また、上記各実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に特定の形状、位置関係等に限定される場合等を除き、その形状、位置関係等に限定されるものではない。例えば、以下のような変形例も許容される。なお、以下の変形例は、それぞれ独立に、上記実施形態に適用および不適用を選択できる。すなわち、以下の変形例のうち任意の組み合わせを、上記実施形態に適用することができる。
(変形例1)
例えば、上記各実施形態では、推奨ルート探索装置の一例として、車両に搭載される車両用ナビゲーション装置1が例示されている。しかし、本発明の推奨ルート探索装置は、車両に搭載されていなくともよく、車外のサーバに設置されおり、サーバと通信する端末(例えば車載端末、携帯端末)に対して推奨ルート(両天秤ルート等)を送信するようになっていてもよい。また、本発明の推奨ルート探索装置は、車両用に限らず、例えば、人の歩行用の推奨ルートを算出するものであってもよい。
(変形例2)
両端部は、端点S、G1のみに限られない。端点Sに続く1個または複数のリンクおよび1個または複数のノードも両端部に含まれていてもよい。また、端点G1に続く1個または複数のリンクおよび1個または複数のノードも両端部に含まれていてもよい。
(変形例3)
また、上記各実施形態の両天秤ルートの算出アルゴリズムは、あくまでも一例であって、他のアルゴリズムを用いて出発地S0から経由地候補G1までの両天秤ルートを算出してもよい。例えば、経由地G1と経由地G2を繋ぐ直線上にあり、かつ経由地G1と経由地G2からの直線距離が同じとなる地点Xを選ぶ。そして、出発地Sから地点Xまで経路コストが最小となるルートX1と、地点Xから経由地候補G1まで経路コストが最小となるルートX2とを算出する。そして、算出したルートX1、X2を繋いだルートを、両天秤ルートとしてもよい。このような両天秤ルートも、両端部S、G1以外は、通常ルートに比べて、経由地候補G2寄りに位置している。