以下、ナビゲーション装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、例えば、設定されていたルートとユーザが選択したルートが異なった場合に、元のルートに戻るようなルートを選択するのではなく、ユーザの意図を考慮し、適切な経路を選択するナビゲーション装置について説明する。なお、本明細書において、ルートと経路は同意義である。また、設定されていたルートとユーザが選択したルートが異なる場合は、図1に示すように、ユーザ(例えば、運転者)の種々の意図が存在し得る。
図2は、本実施の形態におけるナビゲーション装置1のブロック図である。ナビゲーション装置1は、地図情報格納部101、目的地情報格納部102、経路探索条件情報格納部103、受付部104、位置情報取得部105、経路探索部106、地図出力部107、経路情報出力部108、移動体情報取得部109、判断部110、および制御部111を具備する。
また、経路探索部106は、スコア変更手段1061、および経路探索手段1062を具備する。
地図情報格納部101は、地図情報を格納し得る。地図情報は、地図に関する情報であり、地点の位置を示す情報である位置情報を2以上有する。また、地図情報は、通常、道路の情報を含む。ここでの地図情報は経路探索に利用でき得る情報である。また、地図情報は、通常、地図の図柄情報を含む。図柄情報は、地図自体の情報であり、ビットマップ、ベクターデータ等、問わない。つまり、地図情報のフォーマット等は問わない。また、地図情報は、通常、位置情報と、当該位置情報に対応する地点が存在する道路の種類を示す道路種類情報とを対に有する地点情報を2以上有する。また、地図情報は、通常、2以上のノード(地点)と、2つのノードを接続する2以上のエッジ(枝)とを有する。また、ノードまたはエッジは、1以上の属性値を有することが好適である。属性値は、例えば、道路幅(道路の広さ)、距離、通過にかかる時間、道路の種類(道路種)、車線数などである。後述するスコアや重みもエッジの属性値である、と言える。なお、通常、ノードとエッジの組み合わせにより経路情報が構成される。また、また、地図情報は、位置情報が示す地点(ノード)の間のスコアや重み等を有する。スコアとは、地点間の通行のし易さ、または通行のし難さを示す情報である。重みとは、選択されやすさ、または選択されにくさを示す情報である。なお、スコアと重みとを同一の情報である、と捕らえても良い。また、スコアは、単純に、地点間の距離や、通過にかかる時間等でも良い。
地図情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
地図情報格納部101に地図情報が記憶される過程は問わない。例えば、記録媒体を介して地図情報が地図情報格納部101で記憶されるようになってもよく、通信回線等を介して送信された地図情報が地図情報格納部101で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された地図情報が地図情報格納部101で記憶されるようになってもよい。
目的地情報格納部102は、目的地を示す情報である目的地情報を格納し得る。目的地情報とは、地名、(緯度,経度)など、目的地を特定する情報である。目的地情報は、通常、ユーザが入力した情報であるが、外部から受信したりした情報でも良い。つまり、目的地情報格納部102に目的地情報が記憶される過程は問わない。目的地情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
経路探索条件情報格納部103は、1以上の経路探索条件情報を格納し得る。経路探索条件情報とは、再度の経路探索を行う条件を示す情報である。また、経路探索条件情報は、経路探索を行うか否かを判断するための1以上の判断要素を有する。また、経路探索条件情報は、1以上の判断要素と探索方法特定情報とを有する情報でも良い。また、経路探索条件情報は、1以上の判断要素と、移動体のユーザ(例えば、運転者)の意図を識別する意図識別子と、探索方法特定情報とを有しても良い。意図識別子は、例えば、「運転手の意志で違うルートを選択(例えば、値「1」)」、「ルート間違い(例えば、値「2」)」などである。
判断要素は、例えば、経路探索部106が取得した経路情報が示す経路を、移動体が外れることである。
また、移動体情報とは、ナビゲーション装置1が搭載されている移動体の走行に関する情報である。ここで、移動体とは、通常、自動車であるが、電車、バス、自転車、人など、移動するものであれば何でも良い。また、走行とは、移動に関する情報と捕らえても良い。走行は、人の移動(徒歩、走ることなど)も含むと考えても良い。また、移動体情報とは、移動体の速度、移動体の加速度、移動体が減速したことを示す情報、移動体が停止したことを示す情報、移動体が右折したことを示す情報、移動体が左折したことを示す情報、移動体が加速したことを示す情報、ハンドル舵角、エンジン回転数、アクセル開度、ブレーキ踏み込み量、サイドブレーキを引いているか否かの情報、ウインカー情報、ヘッドランプ点灯情報、ウインドウ開閉情報、車間距離、移動体が設定された経路から外れたこと等、移動体から取得できる情報であれば何でも良い。
経路探索条件情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。経路探索条件情報格納部103に経路探索条件情報が記憶される過程は問わない。
受付部104は、ユーザから指示やデータを受け付ける。指示とは、例えば、経路探索指示や、起動指示等である。また、データとは、例えば、目的地情報や地点検索のための入力等である。指示やデータ等の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部104は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
位置情報取得部105は、現在位置を示す位置情報を取得する。位置情報取得部105は、通常、GPS受信機である。ただし、位置情報取得部105は、外部のGPS受信機から位置情報を受信しても良い。また、位置情報は、通常、(緯度,経度)の情報である。ただし、位置情報は、位置を特定する情報であれば何でも良い。
経路探索部106は、地図情報に対して、位置情報と目的地情報を適用し、目的地までの経路を探索し、経路を示す情報である経路情報を取得する。なお、通常の経路探索処理は、公知技術である。通常の経路探索処理とは、現在地の位置情報と目的地情報とを与えた場合に、経路探索する処理である。
また、経路探索部106は、制御部111の指示に従って、経路探索部106が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得する。ここで、「経路情報を取得しないようにして、または取得しにくくなるようにして」とは、極力、直前に当該経路探索部106が取得した経路情報の全部または一部を含む経路情報を取得しないことを意味し、結果として、直前に当該経路探索部106が取得した経路情報の全部または一部を含む経路情報を取得しても良い。
また、例えば、経路探索部106は、経路探索部106が直前に取得した経路情報の全部または一部であるエッジのスコアを、他のエッジと比較して大きくし、新たな経路情報を取得する。なお、ここでは、エッジのスコアが大きくなることは、当該エッジが選択され難くなることである。なお、スコアを逆の概念とした場合(スコアを選択され易さの度合いとした場合)、経路探索部106は、経路探索部106が直前に取得した経路情報の全部または一部であるエッジのスコアを、他のエッジと比較して小さくし、新たな経路情報を取得する。
また、例えば、経路探索部106は、着目する一のエッジのスコアである第一スコアを取得する。次に、経路探索部106は、直前に当該経路探索部106が取得した経路情報に含まれるいずれかのノードであり、移動体が経路を外れる直前のノードを始点とし、直前に当該経路探索部106が取得した経路情報の全部または一部を経由して、着目する一のエッジの始点のノードを終点とする経路情報のスコアである第二スコアを取得する。なお、第二スコアは、上記の条件を満たす経路情報の中で、最小のスコアであることが好適である。次に、経路探索部106は、直前に当該経路探索部106が取得した経路情報に含まれるいずれかのノードであり、移動体が経路を外れる直前のノードを始点とし、移動体が移動した経路を経由して、着目する一のエッジの始点のノードを終点とする経路情報のスコアである第三スコアを取得する。なお、第三スコアは、上記の条件を満たす経路情報の中で、最小のスコアであることが好適である。そして、経路探索部106は、第一スコア、第二スコア、および第三スコアを用いて、経路探索部106が直前に取得した経路情報の全部または一部であるエッジのスコアを他のエッジと比較して大きくした一時的なスコアを取得する。次に、経路探索部106は、一時的なスコアを用いて、新たな経路情報を取得しても良い。
なお、「スコアを他のエッジと比較して大きくする」とは、選択され易さの度合いを小さくすることと同意義である。また、経路情報のスコアとは、1以上のエッジのスコアを用いて取得されるスコアである。つまり、経路情報が2以上のエッジを有する場合、例えば、2以上のエッジのスコアの和が経路情報のスコアである。
経路探索部106は、通常、MPUやメモリ等から実現され得る。経路探索部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
経路探索部106を構成するスコア変更手段1061は、経路探索部106が直前に取得した経路情報の全部または一部であるエッジのスコアを、他のエッジと比較して大きくする。ここで、スコア変更手段1061は、経路探索部106が直前に取得した経路情報の全部または一部であるエッジ以外のエッジのスコアを、小さくしても良い。また、スコア変更手段1061は、経路探索部106が直前に取得した経路情報の全部または一部であるエッジのスコアを大きくし、当該エッジ以外のエッジのスコアを小さくしても良い。
また、例えば、直前にノードsからノードxへの経路情報を取得したが、ユーザは、当該経路情報で示される経路を走行せずに、ノードsからノードyに走行した場合、スコア変更手段1061がノードiから先の一時的なスコアC'i→?を算出する算出式は、以下の数式1、または数式2である。なお、かかる数式1、2は、スコア変更手段1061が予め保持している、とする。また、αは係数であり、αが1よりも大きい場合は、経路変更の影響度がより大きく、「1>α>0」である場合は、経路変更の影響度がより小さいものとなる。また、αは1でも良いことは言うまでもない。さらに、例えば、Cs→y→iは、ノードsからノードyを経由してノードiに走行した場合のスコアである。
経路探索手段1062は、スコア変更手段1061が取得した一時的なスコアを用いて、新たな経路情報を取得する。経路探索手段1062は、通常、現在の位置情報から目的地までの経路探索を行う。
地図出力部107は、地図情報格納部101の地図情報を出力する。地図出力部107は、通常、位置情報取得部105が取得した位置情報を中心点として、地図情報を出力する。地図出力部107は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。地図出力部107は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置(通常、表示装置)への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
経路情報出力部108は、経路探索部106が取得した経路情報を出力する。また、経路情報出力部108は、経路探索部106が取得した新たな経路情報を出力する。経路情報出力部108は、通常、地図上に、経路探索部106が取得した経路情報が示す経路を、他の道路と視覚的に区別できる態様で出力する。経路情報出力部108は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。経路情報出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
移動体情報取得部109は、移動体の移動に関する情報である移動体情報を取得する。移動体情報は、位置情報取得部105が取得した1以上の位置情報でも良い。また、移動体情報取得部109は、移動体(例えば、車両)の制御装置等から、速度やエンジンの単位時間の回転数等の移動体情報をネットワーク経由で受信しても良い。移動体情報取得部109は、例えば、受信手段等で実現され得る。また、移動体情報取得部109は、位置情報取得部105から1以上の位置情報を取得しても良い。移動体情報取得部109は、公知技術であるので詳細な説明を省略する。
判断部110は、移動体情報取得部109が取得した移動体情報が、経路探索条件情報が有する1以上の判断要素に合致するか否かを判断する。判断要素が、「移動体が、設定された経路を外れたこと」である場合、判断部110は、例えば、移動体情報取得部109が取得した最近の1以上の位置情報と、経路探索部106が直前に取得した経路情報とから、移動体が、設定された経路を外れたか否かを判断しても良い。なお、判断要素は、実施の形態2、3等で説明する判断要素でも良い。判断部110は、通常、MPUやメモリ等から実現され得る。判断部110の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
制御部111は、判断部110が合致すると判断した場合、経路探索部106に経路情報を取得するように指示する。また、制御部111は、判断部110が合致すると判断した場合、経路探索条件情報が有する探索方法特定情報を用いて、経路探索部106に経路情報を取得するように指示しても良い。また、制御部111は、判断部110が合致すると判断した場合、経路探索条件情報が有する意図識別子を取得し、意図識別子に対応する探索方法特定情報を用いて、経路探索部106に経路情報を取得するように指示しても良い。なお、経路情報を取得する指示は、経路探索の指示である。
制御部111は、通常、MPUやメモリ等から実現され得る。制御部111の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、ナビゲーション装置1の動作について、図3のフローチャートを用いて説明する。
(ステップS301)受付部104は、ナビゲーション装置1の起動指示を受け付けたか否かを判断する。起動指示を受け付ければステップS302に行き、起動指示を受け付けなければステップS305に行く。
(ステップS302)ナビゲーション装置1の図示しない起動手段は、ナビゲーション装置1の起動処理を行う。
(ステップS303)位置情報取得部105は、現在地点の位置を示す位置情報を取得する。
(ステップS304)地図出力部107は、ステップS303で取得された位置情報が示す現在位置が表示される地図情報を地図情報格納部101が読み出し、当該地図情報を出力する。ステップS301に戻る。
(ステップS305)受付部104は、目的地情報を受け付けたか否かを判断する。目的地情報を受け付ければステップS306に行き、目的地情報を受け付けなければステップS310に行く。
(ステップS306)受付部104は、ステップS305で受け付けた目的地情報を、目的地情報格納部102に一時蓄積する。
(ステップS307)位置情報取得部105は、現在地点の位置を示す位置情報を取得する。
(ステップS308)経路探索部106は、目的地情報格納部102に格納されている目的地情報が示す地点を目的地とし、ステップS307で取得された位置情報が示す地点を現在地点として経路探索を行う。そして、経路探索部106は、経路情報を取得する。なお、エッジに、ステップS315で取得された一時的なスコアが存在する場合、経路探索部106は、当該一時的なスコアを用いて、経路探索を行い、新しい経路情報を取得する。なお、新しい経路情報が、直前に取得された経路情報と同じであることがあっても良い。
(ステップS309)経路情報出力部108は、ステップS308で取得された経路情報を、ステップS304で出力された地図情報の上に出力する。ステップS301に戻る。
(ステップS310)位置情報取得部105は、現在地点の位置を示す位置情報を取得する。
(ステップS311)移動体情報取得部109は、移動体情報を取得する。なお、移動体情報が一つの位置情報である場合、ステップS311は省略されても良い。
(ステップS312)移動体情報取得部109は、記録媒体に、ステップS311で取得した移動体情報を蓄積する。ここでの蓄積は、通常、追記である。また、情報が蓄積される記録媒体は、通常、移動体情報取得部109が具備する。
(ステップS313)判断部110は、判断処理を行う。判断処理とは、通常、移動体が経路を外れたか否かの判断である。なお、かかる場合、判断要素は、「経路を外れたこと」である。また、かかる判断処理は、公知技術であるので、詳細な説明を省略する。
(ステップS314)制御部111は、ステップS313における判断結果が「条件に合致する」との結果であるか否かを判断する。「条件に合致する」との結果である場合はステップS315に行き、「条件に合致する」との結果でない場合はステップS317に行く。
(ステップS315)制御部111は、経路探索部106に経路の再探索を行うように指示する。かかる場合、制御部111は、ステップS310で取得された位置情報が示す地点を始点とし、格納されている目的地情報が示す目的地を終点として、経路探索するように経路探索部106に指示する。
(ステップS316)経路探索部106のスコア変更手段1061は、関連するエッジのスコアを、一時的に変更する。かかるスコア変更処理について、図4のフローチャートを用いて説明する。ステップS308に戻る。
(ステップS317)経路情報出力部108は、ステップS310で取得された位置情報に応じて、経路情報の出力を変更する。ステップS301に戻る。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS316のスコア変更処理について、図4のフローチャートを用いて説明する。
(ステップS401)経路探索部106のスコア変更手段1061は、カウンタiに1を代入する。
(ステップS402)スコア変更手段1061は、現在位置に対応するノードである始点ノードを取得する。
(ステップS403)スコア変更手段1061は、始点ノードから、目的地に対応する終点ノードに進む場合に、走行する(経由する)可能性のあるエッジの中で、i番目のエッジが存在するか否かを判断する。i番目のエッジが存在すればステップS404に行き、存在しなければ上位処理にリターンする。なお、かかる判断処理は、通常、地図情報格納部101の地図情報を用いて行われる公知技術である。
(ステップS404)スコア変更手段1061は、i番目のエッジに対応するスコアである第一スコアを、地図情報格納部101から読み出す。なお、第一スコアは、i番目のエッジに与えられている元々のスコアである。
(ステップS405)スコア変更手段1061は、i番目のエッジの始点ノードを終点ノードとして取得する。
(ステップS406)スコア変更手段1061は、ステップS402で取得した始点ノードから、ステップS405で取得した終点ノードへの経路情報であり、直前に設定された経路情報の少なくとも一部を利用する経路情報であり、スコアが最小である第二スコアを取得する。なお、始点ノードと終点ノードが決まっている状況において、最小のスコアを算出する技術は、公知の経路探索における技術である。また、複数のエッジからなる経路情報のスコアは、通常、経路情報に含まれる複数の各エッジのスコアの和である。
(ステップS407)スコア変更手段1061は、ステップS402で取得した始点ノードから、ステップS405で取得した終点ノードへの経路情報であり、移動体が移動した経路を経由する経路情報であり、スコアが最小である第三スコアを取得する。
(ステップS408)スコア変更手段1061は、第一スコア、第二スコア、および第三スコアを用いて、一時的なスコアを算出する。例えば、スコア変更手段1061は、演算式「第一スコア*(第三スコア/第二スコア)」により、一時的なスコアを算出する。
(ステップS409)スコア変更手段1061は、ステップS408で算出した一時的なスコアを、i番目のエッジに対応付けて、図示しないバッファに一時蓄積する。
(ステップS410)スコア変更手段1061は、カウンタiを1、インクリメントする。ステップS403に戻る。
なお、図4のフローチャートにおいて、一時的なスコアの算出方法は問わない。スコア変更手段1061は、経路探索部106が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるように一時的なスコアを算出すれば良い。
以下、本実施の形態におけるナビゲーション装置1の具体的な動作について説明する。ここで、ナビゲーション装置1は車載用のナビゲーション装置である、とする。ただし、ナビゲーション装置1は、徒歩用や自転車用のナビゲーション装置等でも良い。
今、ナビゲーション装置1の経路探索条件情報格納部103は、経路探索条件「設定されている経路情報が示す経路から外れたこと」を格納している。
また、ナビゲーション装置1の地図情報格納部101は、例えば、図5に示すノードとエッジ、およびスコアを有する経路情報を格納している。なお、図5において、ノードは、円で示され、ノード識別子(数字)を有する。また、エッジは、ノード間を接続する線で示されている。
かかる状況において、運転者は、エンジンをかけた、とする。すると、受付部104は、ナビゲーション装置1の起動指示を受け付ける。次に、ナビゲーション装置1の図示しない起動手段は、ナビゲーション装置1の起動処理を行う。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X1,Y1)を取得する。そして、地図出力部107は、取得された位置情報(X1,Y1)が示す現在位置が表示される地図情報を地図情報格納部101が読み出し、当該地図情報を出力する。そして、ナビゲーション装置1は、図6に示す出力を得る。
次に、ユーザは、目的地情報「三ノ宮駅」を入力する。そして、受付部104は、目的地情報「三ノ宮駅」を受け付ける。そして、受付部104は、受け付けた目的地情報「三ノ宮駅」を、目的地情報格納部102に一時蓄積する。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X2,Y2)を取得する。そして、経路探索部106は、目的地情報格納部102に格納されている目的地情報「三ノ宮駅」が示す地点を目的地とし、取得された位置情報(X2,Y2)が示す地点を現在地点として経路探索を行う。そして、経路探索部106は、経路情報を取得する。ここで、経路探索部106は、図5における(1)→(3)→(9)→(12)→(15)を取得した、とする。図5において、エッジ(1)からエッジ(15)への経路情報のうち、経路情報「(1)→(3)→(9)→(12)→(15)」のスコアが「50」と最小だからである。
次に、経路情報出力部108は、取得された経路情報を、出力された地図情報の上に出力する。そして、ナビゲーション装置1は、図7に示す出力を得る。なお、図7に示す出力において選択された経路情報は、図5における「(1)→(3)→(9)→(12)→(15)」である。
かかる状況において、ユーザは、推奨された経路情報を無視し、移動体が、エッジ(1)から(2)に進んだとする。そして、位置情報取得部105は、現在地点の位置を示す位置情報(図5の(2)の位置を示す情報)を取得する。次に、移動体情報取得部109は、移動体情報(例えば、(1)から(2)への移動の軌跡の情報)を取得する。
次に、判断部110は、判断要素「経路を外れたこと」に合致するか否かを、移動体情報(例えば、(1)から(2)への移動の軌跡の情報)と、直前に取得された経路情報「(1)→(3)→(9)→(12)→(15)」とから、判断する。ここで、判断部110は、判断要素「経路を外れたこと」に合致する、と判断する。
次に、制御部111は、経路探索部106に経路の再探索を行うように指示する。そして、経路探索部106のスコア変更手段1061は、図5の(2)から(15)までの経路で、通過する可能性のあるエッジの一時的なスコアを算出する。
ここで、スコア変更手段1061は、上記の数式1に従って、各エッジの一時的なスコアを算出する、とする。スコア変更手段1061は、例えば、エッジ「(2)→(5)」の一時的なスコアを「16×(6/16)」と算出する。スコア変更手段1061は、その他のエッジに対しても、上記と同様の処理を行い、図8に示すような各エッジの一時的なスコアを算出する。
次に、経路探索手段1062は、図8に示すエッジの一時的なスコアを用いて、新しい経路情報「(2)→(5)→(11)→(15)」を得る。始点ノードと終点ノードが決まっており、各エッジのスコアが決まっている場合、最適な経路情報を取得する技術は公知技術であるので、詳細な説明を省略する。
次に、経路情報出力部108は、経路情報「(2)→(5)→(11)→(15)」を出力する。かかる出力例は、図9である。
なお、スコア変更手段1061が一時的なスコアを算出しなかった場合は、経路情報出力部108が取得する、エッジ(2)からエッジ(15)に向かう経路情報は、「(2)→(3)→(9)→(12)→(15)」となる(図10の101参照)。しかし、スコア変更手段1061が一時的なスコアを算出した場合、経路探索手段1062は、各経路情報に対するスコアを図10の102に示すように算出し、最も小さいスコアに対応する経路情報「(2)→(5)→(11)→(15)」を得る。
以上、本実施の形態によれば、設定されていたルートとユーザが選択したルートが異なった場合に、適切な経路を選択できる。
また、本実施の形態によれば、特に、経路探索部106が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得することにより、ユーザの意図を考慮した、より適切な経路を選択できる。
なお、本実施の形態によれば、経路探索部106のスコア変更手段1061は、例えば、直前に取得した経路情報を構成するエッジのスコアを無限大にするなどして、直前に取得した経路情報を構成するエッジが選択されないようにしても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるナビゲーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、地図情報と、目的地を示す情報である目的地情報と、経路探索を行うか否かを判断するための1以上の判断要素を有する1以上の経路探索条件情報とを格納しており、コンピュータを、現在位置を示す位置情報を取得する位置情報取得部と、前記地図情報に対して、前記位置情報と前記目的地情報を適用し、前記目的地までの経路を探索し、経路を示す情報である経路情報を取得する経路探索部と、前記経路情報を出力する経路情報出力部と、移動体の移動に関する情報である移動体情報を取得する移動体情報取得部と、前記移動体情報取得部が取得した移動体情報が、前記経路探索条件情報が有する1以上の判断要素に合致するか否かを判断する判断部と、前記判断部が合致すると判断した場合、前記経路探索部に経路情報を取得するように指示する制御部として機能させ、前記経路探索部は、前記制御部の指示に従って、当該経路探索部が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得し、前記経路情報出力部は、前記新たな経路情報を出力するものとして、コンピュータを機能させるためのプログラム、である。
また、上記プログラムにおいて、前記地図情報は、2以上のノードと、2つのノードを接続する2以上のエッジと、エッジの選択され難さの度合いであるスコアとを有し、前記判断要素は、前記経路探索部が取得した経路情報が示す経路を、前記移動体が外れることであり、前記経路探索部は、前記経路探索部が直前に取得した経路情報の全部または一部であるエッジのスコアを、他のエッジと比較して大きくし、新たな経路情報を取得するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記経路探索部は、着目する一のエッジのスコアである第一スコアを取得し、前記直前に当該経路探索部が取得した経路情報に含まれるいずれかのノードであり、前記移動体が前記経路を外れる直前のノードを始点とし、前記直前に当該経路探索部が取得した経路情報の全部または一部を経由して、前記着目する一のエッジの始点のノードを終点とする経路情報のスコアである第二スコアを取得し、前記直前に当該経路探索部が取得した経路情報に含まれるいずれかのノードであり、前記移動体が前記経路を外れる直前のノードを始点とし、前記移動体が移動した経路を経由して、前記着目する一のエッジの始点のノードを終点とする経路情報のスコアである第三スコアを取得し、前記第一スコア、前記第二スコア、および前記第三スコアを用いて、前記経路探索部が取得した経路情報の全部または一部であるエッジのスコアを他のエッジと比較して大きくし、新たな経路情報を取得するものとして、コンピュータを機能させることは好適である。
(実施の形態2)
本実施の形態において、設定されていたルートとユーザが選択したルートが異なった場合に、元のルートに戻るようなルートを選択するのではなく、ユーザの意図を考慮し、適切な経路を選択するナビゲーション装置について説明する。
また、本実施の形態において、直前に選択されたルートと実際に選択したルートの属性値の違いを取得し、当該属性値の違いを用いてルート探索するナビゲーション装置について説明する。
図11は、本実施の形態におけるナビゲーション装置2のブロック図である。ナビゲーション装置2は、地図情報格納部101、目的地情報格納部102、経路探索条件情報格納部103、受付部104、位置情報取得部105、経路探索部206、地図出力部107、経路情報出力部108、移動体情報取得部109、判断部110、制御部111を具備する。
経路探索部206は、属性値群取得手段2061、差異検知手段2062、属性決定手段2063、スコア変更手段2064、および経路探索手段1062を具備する。
経路探索部206は、地図情報に対して、位置情報と目的地情報を適用し、目的地までの経路を探索し、経路を示す情報である経路情報を取得する。
また、経路探索部206は、制御部111の指示に従って、経路探索部206が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得する。
また、経路探索部206は、直前に経路探索部206が取得した経路情報が有するノードまたはエッジの1以上の属性値である第一属性値群を取得し、移動体が移動した経路の経路情報が有するノードまたはエッジの1以上の属性値である第二属性値群を取得し、第一属性値群と第二属性値群との差異を検知し、当該差異が所定の条件を満たす1以上の属性を決定し、当該決定した1以上の属性の属性値が、直前に当該経路探索部206が取得した経路情報が有するノードまたはエッジの属性値により、移動体が移動した経路の経路情報が有するノードまたはエッジの属性値に近い属性値を有する新たな経路情報を取得する。
また、経路探索部206は、例えば、第一属性値群と第二属性値群を取得し、第一属性値群と第二属性値群との差異を検知し、当該差異が所定の条件を満たす1以上の属性を決定し、当該属性に対応する第一属性値群中の属性値である1以上の第一属性値を有さず、当該属性に対応する第二属性値群中の属性値である1以上の第二属性値を有するノードまたはエッジを優先的に選択して、新たな経路情報を取得しても良い。
また、経路探索部206は、例えば、第一属性値群と第二属性値群を取得し、第一属性値群と第二属性値群との差異を検知し、当該差異が所定の条件を満たす1以上の属性を決定し、当該属性に対応する第一属性値群中の属性値である1以上の第一属性値を有するエッジのスコアを大きくし、当該属性に対応する第二属性値群中の属性値である1以上の第二属性値を有するエッジのスコアを小さくするように、一時的なスコアを取得し、当該一時的なスコアを用いて、新たな経路情報を取得しても良い。
経路探索部206は、通常、MPUやメモリ等から実現され得る。経路探索部206の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
経路探索部206を構成する属性値群取得手段2061は、直前に当該経路探索部206が取得した経路情報が有するノードまたはエッジの1以上の属性値である第一属性値群を取得する。ここで、属性値群取得手段2061は、移動体が直前に取得した経路情報から外れた場合、直前に当該経路探索部206が取得した経路情報が有するエッジであり、外れた際の最初に選択されなかった一のエッジの1以上の属性値を取得することは好適であるが、当該一のエッジを含む選択されなかった2以上のエッジの1以上の属性値を取得しても良い。なお、「エッジが選択されなかった」とは、移動体が当該エッジ上を移動しなかったことである。
また、移動体が直前に取得した経路情報から外れた場合、属性値群取得手段2061は、移動体が移動した経路の経路情報が有するノードまたはエッジの1以上の属性値である第二属性値群を取得する。属性値群取得手段2061は、直前に当該経路探索部206が取得した経路情報に含まれず、かつ、選択された一のエッジの1以上の属性値を取得しても良いし、選択された2以上のエッジの1以上の属性値を取得しても良い。ここで、選択された2以上のすべてのエッジは、直前に当該経路探索部206が取得した経路情報に含まれていないことが好適であるが、2以上のエッジの中の一部のエッジは、直前に当該経路探索部206が取得した経路情報に含まれていても良い。
差異検知手段2062は、属性値群取得手段2061が取得した第一属性値群と、第二属性値群との差異を検知する。そして、差異検知手段2062は、通常、第一属性値群が有する1以上の各属性値と第二属性値群が有する1以上の各属性値とを比較し、異なる属性値の差(例えば、「5」)および属性(例えば、道路の広さ)を取得する。
属性決定手段2063は、差異検知手段2062が検知した差異が予め決められた条件を満たす属性を決定する。属性決定手段2063は、通常、予め決められた条件を満たすほど、大きな差がある属性を取得する。
スコア変更手段2064は、属性決定手段2063が決定した属性の属性値が、直前に経路探索部206が取得した経路情報が有するノードまたはエッジの属性値より、移動体が移動した経路の経路情報が有するノードまたはエッジの属性値に近い属性値を有するノードまたはエッジが選択されるようにエッジの一時的なスコアを取得する。
経路探索手段1062は、決定した1以上の属性の属性値が、直前に当該経路探索部306が取得した経路情報が有するノードまたはエッジの属性値より、移動体が移動した経路の経路情報が有するノードまたはエッジの属性値に近い属性値を有する新たな経路情報を取得する。さらに具体的には、経路探索手段1062は、例えば、スコア変更手段2064が取得したエッジの一時的なスコアを用いて、経路情報を取得する。
次に、ナビゲーション装置2の動作について、図12のフローチャートを用いて説明する。図12のフローチャートにおいて、図3のフローチャートと比較して、スコア変更処理のみ異なる。ナビゲーション装置2のスコア変更処理について、図13のフローチャートを用いて説明する。
(ステップS1301)属性値群取得手段2061は、直前に取得された経路情報を構成するエッジの中で、選択されなかった1以上のエッジの1以上の属性値を取得する。属性値群取得手段2061は、経路情報を構成するエッジの中で、最初に選択されなかった一のエッジの1以上の属性値を取得することは好適であるが、当該一のエッジを含む選択されなかった2以上のエッジの1以上の属性値を取得しても良い。なお、ここで取得された1以上の属性値は、第一属性値群である。
(ステップS1302)属性値群取得手段2061は、選択された1以上のエッジの1以上の属性値を取得する。なお、ここで取得された1以上の属性値は、第二属性値群である。
(ステップS1303)差異検知手段2062は、カウンタiに1を代入する。
(ステップS1304)差異検知手段2062は、ステップS1301またはステップS1302で取得された属性値に対応するi番目の属性が存在するか否かを判断する。i番目の属性が存在すればステップS1305に行き、i番目の属性が存在しなければステップS1310に行く。
(ステップS1305)差異検知手段2062は、i番目の属性に対応する属性値であり、第一属性値群の中の属性値である第一属性値を取得する。また、差異検知手段2062は、i番目の属性に対応する属性値であり、第二属性値群の中の属性値である第二属性値を取得する。
(ステップS1306)差異検知手段2062は、第一属性値と第二属性値との差を取得する。第一属性値と第二属性値との差は、数値であっても、差が「ある(例えば「1」)」または「ない(例えば「0」)」等であっても良い。属性値が道路幅である場合は、例えば、差は、数値である。また、属性値が道路種である場合、例えば、差は、「ある」または「ない」である。
(ステップS1307)属性決定手段2063は、ステップS1306で取得した差が、予め決められた条件を満たすほど大きいか否かを判断する。差が予め決められた条件を満たすほど大きい場合はステップS1308に行き、大きくない場合はステップS1309に行く。なお、予め決められた条件は、属性毎に異なることが好適である。例えば、属性が道路幅である場合は、予め決められた条件は「差>=2」である。また、例えば、属性が道路種である場合は、予め決められた条件は「差=ある(例えば「1」)」である。
(ステップS1308)属性決定手段2063は、i番目の属性と、ステップS1306で取得した差とを対応付けて、図示しないバッファに、少なくとも一時蓄積する。なお、ここで、属性決定手段2063は、i番目の属性に対応付けて、第一属性値と第二属性値とを、図示しないバッファに蓄積することは好適である。
(ステップS1309)差異検知手段2062は、カウンタiを1、インクリメントする。ステップS1304に戻る。
(ステップS1310)スコア変更手段2064は、カウンタiに1を代入する。
(ステップS1311)スコア変更手段2064は、現在位置に対応するノードから目的地に対応するノードに移動する際に、通過する可能性のあるエッジの中で、i番目のエッジが存在するか否かを判断する。i番目のエッジが存在すればステップS1312に行き、存在しなければ上位関数にリターンする。
(ステップS1312)スコア変更手段2064は、i番目のエッジに対応する元々のスコアである第一スコアを、地図情報格納部101の地図情報から取得する。
(ステップS1313)スコア変更手段2064は、カウンタjに1を代入する。
(ステップS1314)スコア変更手段2064は、ステップS1307で条件を満たすとされたj番目の属性が存在するか否かを判断する。j番目の属性が存在すればステップS1315に行き、存在しなければステップS1320に行く。なお、本ステップにおいて、スコア変更手段2064は、通常、ステップS1308で図示しないバッファに蓄積されたj番目の属性が存在するか否かを判断する。
(ステップS1315)スコア変更手段2064は、i番目のエッジのj番目の属性の属性値を、地図情報から取得する。
(ステップS1316)スコア変更手段2064は、選択されなかった1以上のエッジのj番目の属性の属性値(上記の第一属性値)を取得する。
(ステップS1317)スコア変更手段2064は、選択された1以上のエッジのj番目の属性の属性値(上記の第二属性値)を取得する。
(ステップS1318)スコア変更手段2064は、ステップS1315で取得した属性値、ステップS1316で取得した第一属性値、ステップS1317で取得した第二属性値を用いて、i番目のエッジのスコアを修正し、修正したスコアである一時的なスコアを得る。
(ステップS1319)スコア変更手段2064は、カウンタjを1、インクリメントする。ステップS1314に戻る。
(ステップS1320)スコア変更手段2064は、はカウンタiを1、インクリメントする。ステップS1311に戻る。
なお、図13のフローチャートのステップS1318において、スコアの修正方法は問わない。また、取得したスコアは一時的なスコアであるので、地図情報が有するエッジのスコアは修正しないことが好適である。
以下、本実施の形態におけるナビゲーション装置2の具体的な動作について説明する。ここで、ナビゲーション装置2は車載用のナビゲーション装置である、とする。ただし、ナビゲーション装置2は、徒歩用や自転車用のナビゲーション装置等でも良い。
今、ナビゲーション装置2の経路探索条件情報格納部103は、経路探索条件「設定されている経路情報が示す経路から外れたこと」を格納している。
また、ナビゲーション装置2の地図情報格納部101は、例えば、図5に示すノードとエッジ、およびスコアを有する経路情報を格納している。
また、地図情報格納部101の地図情報は、例えば、図14に示すエッジ属性管理表を保持している。エッジ属性管理表は、「ID」「エッジ」「スコア」「属性値」を有する。「ID」はレコードを識別する識別子である。「エッジ」は、エッジを特定する情報であり、ここでは、始点ノードと終点ノードとを有する情報である。「スコア」は、エッジのスコアである。このスコアは、元々、エッジに付与されている値であり、値が大きいほど、選択されにくい(通過し難い)ことを示す。また、「属性値」は、エッジの1以上の属性値であり、ここでは、道路幅(1車線あたりの道路幅)、車線数、道路種(国道、県道、市道等)などがある。
さらに、経路探索部206は、図15に示すスコア修正方法管理表を保持している。スコア修正方法管理表は、「属性」「条件」「スコア修正方法」を有する。「条件」は、スコアを修正するか否かを判断するための条件である。「スコア修正方法」は、スコアを修正するアルゴリズムを示す。「スコア修正方法」は、演算式、関数名、メソッド名等、スコアを修正するための情報であれば何でも良い。スコア修正方法管理表において、条件「道路幅>=4」は、第一属性値と第二属性値の道路幅の差(絶対値)が4以上である場合は、スコアを修正すると判断することを示す。また、条件「車線数>=2」は、第一属性値と第二属性値の車線数の差(絶対値)が2以上である場合は、スコアを修正すると判断することを示す。さらに、条件「道路種の違い=あり」は、第一属性値と第二属性値の道路種に違いがある場合は、スコアを修正すると判断することを示す。また、スコア修正方法「if(第一属性値に近い){スコア=スコア+|属性値−第二属性値|} if(第二属性値に近い){スコア=スコア−|属性値−第一属性値|}」は、エッジの属性値が、第二属性値より第一属性値に近い場合、|属性値−第二属性値|の分だけ、スコアを増加させ、第一属性値より第二属性値に近い場合、|属性値−第一属性値|の分だけ、スコアを減少させることを示す。さらに、スコア修正方法「if(第一属性値と同じ){スコア=スコア+2} if(第二属性値と同じ){スコア=スコア−2}」は、エッジの属性値が第一属性値と同じ場合はスコアを2増加させ、エッジの属性値が第二属性値と同じ場合はスコアを2減少させることを示す。なお、ここでは、経路探索部206は、属性毎に条件を保持している。
かかる状況において、ナビゲーション装置2が起動され、図6に示す出力が得られた、とする。
次に、ユーザは、目的地情報「三ノ宮駅」を入力する。そして、受付部104は、目的地情報「三ノ宮駅」を受け付ける。そして、受付部104は、受け付けた目的地情報「三ノ宮駅」を、目的地情報格納部102に一時蓄積する。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X2,Y2)を取得する。そして、経路探索部106は、目的地情報格納部102に格納されている目的地情報「三ノ宮駅」が示す地点を目的地とし、取得された位置情報(X2,Y2)が示す地点を現在地点として経路探索を行う。そして、経路探索部106は、経路情報を取得する。ここで、経路探索部106は、図5における「(1)→(3)→(9)→(12)→(15)」を取得する。
次に、経路情報出力部108は、取得された経路情報を、出力された地図情報の上に出力する。そして、ナビゲーション装置1は、図7に示す出力を得る。
かかる状況において、ユーザは、推奨された経路情報を無視し、移動体が、エッジ(1)から(2)に進んだとする。そして、位置情報取得部105は、現在地点の位置を示す位置情報(図5の(2)の位置を示す情報)を取得する。次に、移動体情報取得部109は、移動体情報(例えば、(1)から(2)への移動の軌跡の情報)を取得する。
次に、判断部110は、判断要素「経路を外れたこと」に合致するか否かを、移動体情報(例えば、(1)から(2)への移動の軌跡の情報)と、直前に取得された経路情報「(1)→(3)→(9)→(12)→(15)」とから、判断する。ここで、判断部110は、判断要素「経路を外れたこと」に合致する、と判断する。
次に、制御部111は、経路探索部206に経路の再探索を行うように指示する。そして、経路探索部206は、図5の(2)から(15)までの経路で、通過する可能性のあるエッジの一時的なスコアを算出する。
つまり、まず、経路探索部206を構成する属性値群取得手段2061は、直前に取得された経路情報「(1)→(3)→(9)→(12)→(15)」を構成するエッジの中で、選択されなかったエッジ「(1)→(3)」の1以上の属性値「道路幅:6,車線数:2,道路種:県道,・・・」を図14のエッジ属性管理表から取得する。
次に、属性値群取得手段2061は、選択されたエッジ「(1)→(2)」の1以上の属性値「道路幅:12,車線数:2,道路種:国道,・・・」を図14のエッジ属性管理表から取得する。
次に、差異検知手段2062は、エッジ「(1)→(3)」とエッジ「(1)→(2)」の属性「道路幅」の差が「12−6=6」と算出する。そして、属性決定手段2063は、差「6」が、条件「道路幅>=4」に合致する、と判断する。次に、属性決定手段2063は、「属性=道路幅,第一属性値=6,第二属性値=12,差=6」を図示しないバッファに一時蓄積する。
次に、差異検知手段2062は、エッジ「(1)→(3)」とエッジ「(1)→(2)」の属性「車線数」の差が「2−2=0」と算出する。そして、属性決定手段2063は、差「0」が、条件「車線数>=2」に合致しない、と判断する。
次に、差異検知手段2062は、エッジ「(1)→(3)」とエッジ「(1)→(2)」の属性「道路種」の差が「あり(「1」)」と判断する。そして、属性決定手段2063は、差「1」が、条件「道路種=1」に合致する、と判断する。次に、属性決定手段2063は、「属性=道路種,第一属性値=県道,第二属性値=国道,差=1(あり)」を図示しないバッファに一時蓄積する。
次に、残る属性に対しても同様の処理がなされる。そして、図示しないバッファには、「属性=道路幅,第一属性値=6,第二属性値=12,差=6」、および「属性=道路種,第一属性値=県道,第二属性値=国道,差=1(あり)」が蓄積された、とする。
次に、スコア変更手段2064は、例えば、エッジ「(2)→(5)」に対して、以下のように一時的なスコアを取得する。つまり、スコア変更手段2064は、バッファ中の1番目の属性「道路幅」を取得する。そして、スコア変更手段2064は、エッジ「(2)→(5)」の属性「道路幅」の属性値「18」を取得する。次に、スコア変更手段2064は、属性「道路幅」の第一属性値「6」と、第二属性値「12」を取得する。次に、スコア変更手段2064は、属性「道路幅」に対応するスコア修正方法「if(第一属性値に近い){スコア=スコア+|属性値−第二属性値|} if(第二属性値に近い){スコア=スコア+|属性値−第一属性値|}」を用いて、属性「道路幅」の属性値「18」が、第一属性値「6」より第二属性値「12」に近いと判断する。そして、スコア変更手段2064は、「スコア=スコア−|属性値−第一属性値|」に値を代入し、「16−|18−6|=4」と、修正されたスコアを取得する。
次に、スコア変更手段2064は、バッファ中の2番目の属性「道路種」を取得する。そして、スコア変更手段2064は、エッジ「(2)→(5)」の属性「道路種」の属性値「国道」を取得する。次に、スコア変更手段2064は、属性「道路種」の第一属性値「県道」と、第二属性値「国道」を取得する。次に、スコア変更手段2064は、属性「道路種」に対応するスコア修正方法を用いて、属性「道路種」の属性値「国道」が、第二属性値「国道」と一致すると判断する。そして、スコア変更手段2064は、「スコア=スコア−2」を用いて、「スコア=4−2=2」と、修正されたスコアを取得する。以上により、算出されたスコア「2」が、エッジ「(2)→(5)」の一時的なスコアである。
以上の処理を、経路(2)→(15)により通過する可能性のあるすべてのエッジに対して行い、各エッジの一時的なスコアを取得する。なお、一時的なスコアが元のスコアと同じエッジもあり得る。
次に、経路探索手段1062は、算出されたエッジの一時的なスコアを用いて、新しい経路情報「(2)→(5)→(11)→(15)」を得た、とする。
次に、経路情報出力部108は、経路情報「(2)→(5)→(11)→(15)」を出力する。かかる出力例は、図9である。
なお、スコア変更手段1061が一時的なスコアを算出しなかった場合は、経路情報出力部108が取得する、エッジ(2)からエッジ(15)に向かう経路情報は、「(2)→(3)→(9)→(12)→(15)」となる(図10の101参照)。
以上、本実施の形態によれば、設定されていたルートとユーザが選択したルートが異なった場合に、適切な経路を選択できる。
また、本実施の形態によれば、特に、選択されなかったエッジの属性値と選択されたエッジの属性値とから、ユーザが重視した属性を決定し、当該属性の属性値を用いて、スコアを修正することにより、ユーザの意図を考慮した、より適切な経路を選択できる。
なお、本実施の形態におけるナビゲーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、
地図情報と、目的地を示す情報である目的地情報と、経路探索を行うか否かを判断するための1以上の判断要素を有する1以上の経路探索条件情報とを格納しており、コンピュータを、現在位置を示す位置情報を取得する位置情報取得部と、前記地図情報に対して、前記位置情報と前記目的地情報を適用し、前記目的地までの経路を探索し、経路を示す情報である経路情報を取得する経路探索部と、前記経路情報を出力する経路情報出力部と、移動体の移動に関する情報である移動体情報を取得する移動体情報取得部と、前記移動体情報取得部が取得した移動体情報が、前記経路探索条件情報が有する1以上の判断要素に合致するか否かを判断する判断部と、前記判断部が合致すると判断した場合、前記経路探索部に経路情報を取得するように指示する制御部として機能させ、前記経路探索部は、前記制御部の指示に従って、当該経路探索部が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得し、前記経路情報出力部は、前記新たな経路情報を出力するものとして、コンピュータを機能させるためのプログラムである。
また、上記プログラムにおいて、前記地図情報は、2以上のノードと、2つのノードを接続する2以上のエッジと、エッジの選択され難さの度合いであるスコアとを有し、前記判断要素は、前記経路探索部が取得した経路情報が示す経路を、前記移動体が外れることであり、前記経路探索部は、前記経路探索部が直前に取得した経路情報の全部または一部であるエッジのスコアを、他のエッジと比較して大きくし、新たな経路情報を取得するものとして、コンピュータを機能させることは好適である。
また、上記プログラムにおいて、前記地図情報は、2以上のノードと、2つのノードを接続する2以上のエッジと、ノードまたはエッジの1以上の属性値を有し、前記経路探索部は、前記直前に当該経路探索部が取得した経路情報が有するノードまたはエッジの1以上の属性値である第一属性値群を取得し、前記移動体が移動した経路の経路情報が有するノードまたはエッジの1以上の属性値である第二属性値群を取得し、前記第一属性値群と前記第二属性値群との差異を検知し、前記差異が所定の条件を満たす1以上の属性を決定し、前記決定した1以上の属性の属性値が、前記直前に当該経路探索部が取得した経路情報が有するノードまたはエッジの属性値より、前記移動体が移動した経路の経路情報が有するノードまたはエッジの属性値に近い属性値を有する新たな経路情報を取得するものとして、コンピュータを機能させることは好適である。
(実施の形態3)
本実施の形態において、ナビゲーション装置に移動の状況を示す移動体情報(速度、加速度など)に応じて、選択する経路が異なるナビゲーション装置について説明する。つまり、本実施の形態において、例えば、図16に示すように、移動体情報から、運転手の意図を判断し、意図に沿ったルートを設定するナビゲーション装置について説明する。
図17は、本実施の形態におけるナビゲーション装置3のブロック図である。ナビゲーション装置3は、地図情報格納部101、目的地情報格納部102、経路探索条件情報格納部103、受付部104、位置情報取得部105、経路探索部306、地図出力部107、経路情報出力部108、移動体情報取得部109、判断部310、制御部311を具備する。また、判断部310は、経路上情報取得手段3101を具備する。
経路探索条件情報格納部103は、経路探索を行うか否かを判断するための1以上の判断要素を有する経路探索条件情報を1以上格納し得る。また、経路探索条件情報は、1以上の判断要素と探索方法特定情報とを有しても良い。
また、判断要素は、経路上情報と移動体情報とを有する情報でも良い。判断要素は、経路上情報と2以上の時間的に連続する移動体情報とを有することは好適である。ここで経路上情報とは、経路情報が有する経路上の情報である。移動体情報とは、ナビゲーション装置3が搭載されている(または、保持している)移動体の走行(または、移動)に関する情報である。
また、経路上情報と2以上の時間的に連続する移動体情報とを有する判断要素は、例えば、(1)経路情報「左折ポイント手前」移動体情報「減速」(2)経路情報「交差点」移動体情報「低速(所定以下の速度)」(3)経路情報「交差点通過後」移動体情報「加速」、という3つの情報である。かかることは、判断要素が、左折または右折の地点の手前の所定距離以内を示す経路上情報と加速度が予め決められた閾値以下であることを示す移動体情報とを有する第一の判断要素と、左折または右折の地点である交差点を示す経路上情報と速度が予め決められた閾値以下であることを示す移動体情報とを有する第二の判断要素と、左折または右折の地点から先の閾値以内の距離の地点を示す経路上情報と加速度が予め決められた閾値以上であることを示す移動体情報とを有する第三の判断要素であることを示す。かかる意義は、左折ポイント手前で一旦減速し、交差点を低速で通過し、通過後加速することである。判断要素は、例えば、左折または右折の地点を示す経路上情報と、予め決められた閾値以上の速度、または減速が予め決められた閾値以下であることを示す移動体情報とを有する。本明細書において、閾値以上とは、閾値より大も含む概念であると考える。閾値以下とは、閾値より小も含む概念であると考える。
また、経路上情報とは、経路情報が有する経路上の情報である。経路上情報とは、例えば、左折地点、右折地点、交差点、三叉路などの道路上の特異点を示す情報(特異点情報)や、特異点からの距離や範囲を示す情報などである。経路上情報は、例えば、左折地点から20m以内、交差点を過ぎてから5m以上などである。
経路探索部306は、地図情報に対して、位置情報と目的地情報を適用し、目的地までの経路を探索し、経路を示す情報である経路情報を取得する。なお、通常の経路探索処理は、公知技術である。通常の経路探索処理とは、現在地の位置情報と目的地情報とを与えた場合に、経路探索する処理である。
また、経路探索部306は、制御部311の指示に従って、経路探索部306が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得する。ここで、「経路情報を取得しないようにして、または取得しにくくなるようにして」とは、極力、直前に当該経路探索部306が取得した経路情報の全部または一部を含む経路情報を取得しないことを意味し、結果として、直前に当該経路探索部306が取得した経路情報の全部または一部を含む経路情報を取得しても良い。
また、経路探索部306は、制御部311の指示に従って、探索方法特定情報を用いて、経路情報を取得する。かかる経路探索は、経路の再探索であるとも言える。なお、経路情報は、例えば、1以上の道路情報を連結した情報である。経路情報のデータ構造は問わない。また、道路情報は、上記のノードとエッジの組み合わせである。
経路探索部306は、通常、MPUやメモリ等から実現され得る。経路探索部306の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
判断部310は、移動体情報取得部109が取得した移動体情報が、経路探索条件情報が有する1以上の判断要素に合致するか否かを判断する。また、判断部310は、経路上情報取得部301が取得した経路上情報と移動体情報取得部109が取得した移動体情報の1以上の対の情報が、経路探索条件情報が有する1以上の判断要素に合致するか否かを判断しても良い。
判断部310は、位置情報と経路情報出力部108が出力している経路情報とから経路上情報を取得し、経路上情報と移動体情報取得部109が取得した移動体情報の1以上の対の情報が、経路探索条件情報が有する1以上の判断要素に合致するか否かを判断しても良い。かかる場合、判断部310は、経路上情報取得手段3101を具備する。
経路上情報取得手段3101は、位置情報と経路情報出力部108が出力している経路情報とから経路上情報を取得する。経路上情報取得手段3101は、位置情報と地図情報とを用いて、経路上情報を取得しても良い。また、経路上情報取得手段3101は、位置情報と出力している経路情報と地図情報とを用いて、経路上情報を取得しても良い。経路上情報取得手段3101は、通常、現在の移動体の位置や状態を示す情報を取得する。移動体の位置や状態は、通常、経路上における位置や状態である。経路上情報取得手段3101は、位置情報と経路情報とから、現在、移動体が左折地点に存在することを示す情報(例えば、「左折地点」)を取得する。また、経路上情報取得手段3101は、位置情報と経路情報とから、現在、移動体が左折地点手前5mに存在することを示す情報(例えば、「左折地点手前5m」)を取得する。
判断部310は、通常、MPUやメモリ等から実現され得る。判断部310の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
制御部311は、判断部310が合致すると判断した場合、経路探索部306に経路情報を取得するように指示する。また、制御部311は、判断部310が合致すると判断した場合、合致した1以上の判断要素に対応する探索方法特定情報を用いて、経路探索部306に経路情報を取得するように指示しても良い。また、制御部311は、判断部310が合致すると判断した場合、経路探索条件情報が有する意図識別子を取得し、意図識別子に対応する探索方法特定情報を用いて、経路探索部306に経路情報を取得するように指示しても良い。経路情報を取得するように指示するとは、経路探索の指示をすることである。
制御部311は、通常、MPUやメモリ等から実現され得る。制御部311の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、ナビゲーション装置3の動作について、図18のフローチャートを用いて説明する。図18のフローチャートにおいて、図3のフローチャートと同一のステップについて、説明を省略する。
(ステップS1801)判断部310は、判断処理を行う。判断処理とは、経路上情報と移動体情報の1以上の対の情報が、経路探索条件情報が有する1以上の判断要素に合致するか否かを判断する処理である。かかる判断処理について、図19のフローチャートを用いて説明する。
(ステップS1802)制御部311は、ステップS1801において条件に合致すると判断された対象である1以上の判断要素に対応する探索方法特定情報を、経路探索条件情報格納部103から取得する。ステップS315に行く。
なお、図18のフローチャートのステップS1802において、条件に合致すると判断された対象である1以上の判断要素に対応する意図識別子を取得した後、当該意図識別子と対になる探索方法特定情報を取得しても良い。なお、探索方法特定情報と意図識別子が同じであっても良い。
また、図18のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1801の判断処理について、図19のフローチャートを用いて説明する。
(ステップS1901)判断部310は、カウンタiに1を代入する。
(ステップS1902)判断部310は、i番目の経路探索条件情報が、経路探索条件情報格納部103に存在するか否かを判断する。i番目の経路探索条件情報が存在すればステップS1903に行き、存在しなければステップS1912に行く。
(ステップS1903)判断部310は、カウンタjに1を代入する。
(ステップS1904)判断部310は、i番目の経路探索条件情報の中に、j番目の判断要素が存在するか否かを判断する。j番目の判断要素が存在すればステップS1905に行き、j番目の判断要素が存在しなければステップS1911に行く。
(ステップS1905)判断部310は、経路探索条件情報格納部103から、i番目の経路探索条件情報の中のj番目の判断要素を読み出す。
(ステップS1906)移動体情報取得部109は、j番目の判断要素に対応する移動体情報を記録媒体から読み出す。この記録媒体は、ステップS312で、移動体情報が蓄積された記録媒体である。
(ステップS1907)判断部310は、j番目の経路上情報取得部109に対応する経路上情報を取得する。
(ステップS1908)判断部310は、j番目の判断要素に合致するか否かを判断する。合致すればステップS1909に行き、合致しなければステップS1910に行く。なお、例えば、判断部310は、ステップS1906で移動体情報が読み出せ、かつ、ステップS1907で経路上情報が取得でき、かつ、当該移動体情報と当該経路上情報とが、j番目の判断要素を満たす場合に、j番目の判断要素に合致すると判断する。
(ステップS1909)判断部310は、カウンタjを1、インクリメントする。ステップS1904に戻る。
(ステップS1910)判断部310は、カウンタiを1、インクリメントする。ステップS1902に戻る。
(ステップS1911)判断部310は、変数「判断結果」に合致(例えば、「0」)を代入する。上位処理にリターンする。
(ステップS1912)判断部310は、変数「判断結果」に不合致(例えば、「−1」)を代入する。上位処理にリターンする。
以下、本実施の形態におけるナビゲーション装置3の具体的な動作について説明する。ここで、ナビゲーション装置3は車載用のナビゲーション装置である、とする。なお、ナビゲーション装置3は自転車用のナビゲーション装置でも良い。
今、経路探索条件情報格納部103は、図20に示す経路探索条件情報管理表を保持している。経路探索条件情報管理表は、複数の経路探索条件情報を管理している。また、経路探索条件情報管理表は、「ID」「判断要素」「意図識別子」「探索方法特定情報」を有するレコードを1以上、格納している。「判断要素」は「順序」「経路上情報」「移動体情報」を有する。「順序」は、一の経路探索条件情報において、適用する判断要素の順序を示す情報である。なお、「順序」は存在せず、一の経路探索条件情報の中に複数の判断要素が存在する場合、順序不問で判断要素を適用しても良い。また、「意図識別子」は、ユーザ(ここでは運転者)の意図を特定する情報である。また、「探索方法特定情報」は、経路探索を行うアルゴリズムやパラメータやプログラム等を特定する情報である。「探索方法特定情報」により、選択される経路情報が異なる場合がある。また、パラメータは、例えば、各道路の選択されやすさまたは選択されにくさを示す重みである。なお、ここでは重みが大きいほど、選択されやすい道路である、とする。なお、経路探索条件情報管理表において、「意図識別子」は無くても良い。
また、経路探索条件情報管理表の意図識別子「経路間違い(例えば「1」)」は、経路を間違えたことを示す。また、意図識別子「別経路選択(例えば「2」)」は、ユーザが意図的に別の経路を選択したことを示す。
かかる状況において、運転者は、エンジンをかけた、とする。すると、受付部104は、ナビゲーション装置3の起動指示を受け付ける。次に、ナビゲーション装置3の図示しない起動手段は、ナビゲーション装置3の起動処理を行う。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X1,Y1)を取得する。そして、地図出力部107は、取得された位置情報(X1,Y1)が示す現在位置が表示される地図情報を地図情報格納部101が読み出し、当該地図情報を出力する。そして、ナビゲーション装置3は、図6に示す出力を得る。
次に、ユーザは、目的地情報「三ノ宮駅」を入力する。そして、受付部104は、目的地情報「三ノ宮駅」を受け付ける。そして、受付部104は、受け付けた目的地情報「三ノ宮駅」を、目的地情報格納部102に一時蓄積する。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X2,Y2)を取得する。そして、経路探索部106は、目的地情報格納部102に格納されている目的地情報「三ノ宮駅」が示す地点を目的地とし、取得された位置情報(X2,Y2)が示す地点を現在地点として経路探索を行う。そして、経路探索部306は、経路情報を取得する。
次に、経路情報出力部108は、取得された経路情報を、出力された地図情報の上に出力する。そして、ナビゲーション装置1は、図7に示す出力を得る。
以下、2つの具体例について説明する。
(具体例1)
具体例1は、出力されている経路の左折地点で、運転者が迷わず直進した場合の例である。
位置情報取得部105は、現在地点の位置を示す位置情報(X3,Y3)を取得する。また、移動体情報取得部110は、移動体から移動体情報(例えば、速度「45km/h」、加速度「0」など)を取得する。次に、移動体情報取得部110は、記録媒体に、取得した移動体情報と、取得された位置情報(X3,Y3)とを対応付けて蓄積する。ここで、図示しない記録媒体には、位置情報(X3,Y3)と移動体情報((例えば、速度「45km/h」、加速度「0」など)とが対応付けて蓄積された。
次に、判断部310は、図20の経路探索条件情報管理表を用いて、判断処理を行う。そして、記録媒体の位置情報(X3,Y3)と移動体情報(例えば、速度「45km/h」、加速度「0」など)は、図20の経路探索条件情報管理表のいずれの経路探索条件をも満たさない、と判断した、とする。
次に、経路情報出力部108は、取得された位置情報(X3,Y3)に応じて、経路情報の出力を変更する。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X4,Y4)を取得する。また、移動体情報取得部110は、移動体から移動体情報(例えば、速度「45km/h」、加速度「0」など)を取得する。次に、移動体情報取得部110は、記録媒体に、取得した移動体情報と、取得された位置情報(X4,Y4)とを対応付けて蓄積する。ここで、図示しない記録媒体には、位置情報(X4,Y4)と移動体情報(例えば、速度「45km/h」、加速度「0」など)とが対応付けて蓄積された。
次に、判断部310は、図20の経路探索条件情報管理表を用いて、判断処理を行う。そして、記録媒体に格納されている位置情報と移動体情報は、図20の経路探索条件情報管理表のいずれの経路探索条件をも満たさない、と判断した、とする。
次に、経路情報出力部108は、取得された位置情報(X4,Y4)に応じて、経路情報の出力を変更する。
次に、位置情報取得部105は、現在地点の位置を示す位置情報(X5,Y5)を取得する。また、移動体情報取得部110は、移動体から移動体情報(例えば、速度「45km/h」、加速度「0」など)を取得する。次に、移動体情報取得部110は、記録媒体に、取得した移動体情報と、取得された位置情報(X5,Y5)とを対応付けて蓄積する。ここで、図示しない記録媒体には、位置情報(X4,Y4)と移動体情報(例えば、速度「45km/h」、加速度「0」など)とが対応付けて蓄積された。
以上より、記憶媒体には、図21に示す位置情報と移動体情報の対の情報群が蓄積された。
次に、判断部310は、判断処理を行う。つまり、まず、判断部310は、1番目の経路探索条件情報を、図20の経路探索条件情報管理表から読み出す。次に、判断部310は、1番目の経路探索条件情報の中の1番目の判断要素「経路上情報:左折地点から手前20m以内」「移動体情報:加速度<0」を取得する。
次に、判断部310は、現在、選択され出力されている経路情報または経路情報と地図情報とから、「経路上情報:左折地点から手前20m以内」に該当する位置情報(X3,Y3)を、図21の情報から取得した、とする。そして、判断部310は、「移動体情報:加速度<0」から、位置情報(X3,Y3)に対応する移動体情報である加速度「0」を、図21の情報から取得した、とする。そして、判断部310は、加速度「0」は、「移動体情報:加速度<0」を満たさない、と判断する。
次に、判断部310は、2番目の経路探索条件情報を、図20の経路探索条件情報管理表から読み出す。次に、判断部310は、2番目の経路探索条件情報の中の1番目の判断要素「経路上情報:左折地点」「移動体情報:速度>=30km/h」を取得する。
次に、判断部310は、現在、選択され出力されている経路情報または経路情報と地図情報とから、「経路上情報:左折地点」に該当する位置情報(X5,Y5)を、図21の情報から取得した、とする。そして、判断部310は、「移動体情報:速度>=30km/h」から、位置情報(X3,Y3)に対応する移動体情報である速度「45」を、図21の情報から取得した、とする。そして、判断部310は、速度「45」は、「移動体情報:速度>=30km/h」を満たす、と判断する。次に、2番目の経路探索条件情報は、2番目の判断要素を含まないので、判断部310は、変数「判断結果」に合致(例えば、「0」)を代入する。
次に、制御部311は、判断結果が「条件に合致する」との結果であると、判断する。
次に、制御部311は、条件に合致すると判断された対象である1以上の判断要素に対応する意図識別子「別経路選択」を取得する。そして、制御部311は、意図識別子「別経路選択」に対応する探索方法特定情報「現在の経路情報を構成する各道路の重みを小さくする。」を、図20の経路探索条件情報管理表から取得する。なお、「現在の経路情報を構成する各道路の重みを小さくする。」に対応する関数が存在する、とする。また、「現在の経路情報を構成する各道路の重みを小さくする。」は、かかる処理を行う関数名やプログラムなどでも良い。
次に、制御部311は、取得した探索方法特定情報「現在の経路情報を構成する各道路の重みを小さくする。」を用いて、始点が位置情報(X5,Y5)であり、終点が目的地情報「三ノ宮駅」である経路を探索するように、経路探索部106に指示する。
次に、経路探索部106は、目的地情報格納部102に格納されている目的地情報「三ノ宮駅」が示す地点を目的地とし、取得された位置情報(X5,Y5)が示す地点を現在地点として経路探索を行う。かかる場合、現在の経路情報を構成する各道路の重みが小さくなっており、通常、選択されない。
そして、経路探索部106は、経路の最探索を行う。そして、経路探索部106は、新しい経路情報を取得する。次に、経路情報出力部108は、取得された経路情報を出力されている地図情報の上に出力する。ここでは、ナビゲーション装置1は、図9に示すような経路情報を出力する。
(具体例2)
具体例2は、出力されている経路の左折地点で、運転者が迷いながら直進した場合の例である。
今、ナビゲーション装置3により、図7に示すような経路が選択され、出力されている、とする。
かかる状況で、運転者は、左折地点の手前で減速し、交差点を低速で通過し、通過後加速した、とする。そして、ナビゲーション装置1は、具体例1において説明した動作と同様を行い、移動体情報取得部110は、記録媒体に、図22に示す移動体情報と位置情報とを対応付けて、複数、蓄積した、とする。また、図22に示す情報の「ID=9」のレコードが蓄積された段階まで、判断部310は、図20の経路探索条件情報管理表のいずれの経路探索条件をも満たさない、と判断してきた、とする。
そして、移動体情報取得部110は、記録媒体に、図22の「ID=10」のレコードを記憶媒体に蓄積した、とする。
次に、判断部310は、判断処理を行う。つまり、まず、判断部310は、1番目の経路探索条件情報を、図20の経路探索条件情報管理表から読み出す。次に、判断部310は、1番目の経路探索条件情報の中の1番目の判断要素「経路上情報:左折地点から手前20m以内」「移動体情報:加速度<0」を取得する。
次に、判断部310は、現在、選択され出力されている経路情報または経路情報と地図情報とから、「経路上情報:左折地点から手前20m以内」に該当する位置情報(X8,Y8)、(X9,Y9)、(X10,Y10)を、図22の情報から取得した、とする。つまり、まず、判断部310は、経路情報から左折地点の位置情報(Xa,Ya)を取得する。そして、判断部310は、図22の位置情報のうち、位置情報(Xa,Ya)の手前20m以内である位置情報(X8,Y8)、(X9,Y9)、(X10,Y10)を取得する。
そして、判断部310は、「移動体情報:加速度<0」から、位置情報(X8,Y8)、(X9,Y9)、(X10,Y10)のぞれぞれに対応する移動体情報である加速度「−8」「−10」「−10」を、図22の情報から取得した、とする。そして、判断部310は、加速度「−8」「−10」「−10」は、「移動体情報:加速度<0」を満たす、と判断する。今、取得したすべての移動体情報(加速度)が「移動体情報:加速度<0」を満たしているが、例えば、取得した移動体情報のうちの一の移動体情報が「移動体情報:加速度<0」を満たしている場合、または取得した移動体情報のうちの半数以上の移動体情報が「移動体情報:加速度<0」を満たしている場合に、「移動体情報:加速度<0」を満たす、と判断しても良い。
次に、判断部310は、1番目の経路探索条件情報の中の2番目の判断要素「経路上情報:交差点内」「移動体情報:速度<=15km/h」を取得する。次に、判断部310は、経路情報または地図情報から交差点内の位置情報の範囲「(Xb,Yb)から(Xc,Yc)」を取得する。次に、判断部310は、交差点内の位置情報の範囲「(Xb,Yb)から(Xc,Yc)」に合致する位置情報(X11,Y11)(X12,Y12)を取得する。
そして、判断部310は、「移動体情報:速度<=15km/h」から、位置情報(X11,Y11)(X12,Y12)のぞれぞれに対応する移動体情報である速度「12」「12」を、図22の情報から取得した、とする。そして、判断部310は、速度「12」「12」は、「移動体情報:速度<=15km/h」を満たす、と判断する。今、取得したすべての移動体情報(速度)が条件を満たしているが、例えば、取得した移動体情報のうちの一の移動体情報が条件を満たしている場合、または取得した移動体情報のうちの半数以上の移動体情報が条件を満たしている場合に、条件を満たす、と判断しても良い。
次に、判断部310は、1番目の経路探索条件情報の中の3番目の判断要素「経路上情報:交差点から先20m以内」「移動体情報:加速度>0」を取得する。次に、判断部310は、経路情報または地図情報から交差点内の位置情報の範囲「(Xb,Yb)から(Xc,Yc)」を取得する。次に、判断部310は、交差点の終端の地点「(Xc,Yc)」から先20m以内に合致する位置情報(X13,Y13)(X14,Y14)(Y15,Y15)を取得する。
そして、判断部310は、「移動体情報:加速度>0」から、位置情報(X13,Y13)(X14,Y14)(Y15,Y15)のぞれぞれに対応する移動体情報である加速度「0」「5」「15」を、図22の情報から取得した、とする。そして、判断部310は、加速度「0」「5」「15」のうち1以上の加速度が「移動体情報:加速度>0」を満たすので、本条件を満たす、と判断する。
次に、1番目の経路探索条件情報は、4番目の判断要素を含まないので、判断部310は、変数「判断結果」に合致(例えば、「0」)を代入する。
次に、制御部311は、判断結果が「条件に合致する」との結果であると、判断する。
次に、制御部311は、条件に合致すると判断された対象である1以上の判断要素に対応する意図識別子「経路間違い」を取得する。そして、制御部311は、意図識別子「経路間違い」に対応する探索方法特定情報「現在の経路情報を構成する各道路の重みを大きくする。」を、図20の経路探索条件情報管理表から取得する。なお、「現在の経路情報を構成する各道路の重みを大きくする。」に対応する関数が存在する、とする。また、「現在の経路情報を構成する各道路の重みを大きくする。」は、かかる処理を行う関数名やプログラムなどでも良い。
次に、制御部311は、取得した探索方法特定情報「現在の経路情報を構成する各道路の重みを大きくする。」を用いて、始点が位置情報(X15,Y15)であり、終点が目的地情報「三ノ宮駅」である経路を探索するように、経路探索部106に指示する。
次に、経路探索部306は、目的地情報格納部102に格納されている目的地情報「三ノ宮駅」が示す地点を目的地とし、取得された位置情報(X15,Y15)が示す地点を現在地点として経路探索を行う。かかる場合、現在の経路情報を構成する各道路の重みが大きくなっており、早い段階で、以前の経路情報が示す経路に戻るように、経路情報が取得される。次に、経路情報出力部108は、取得された経路情報を出力されている地図情報の上に出力する。ここでは、ナビゲーション装置3は、図23に示すような経路情報を出力する。
以上、本実施の形態によれば、移動体の走行情報から、適切な経路を選択できる。本実施の形態によれば、特に、移動体の走行情報から、ユーザの意図を判断し、適切な経路を選択できる。
なお、本実施の形態において、経路探索条件情報の内容は問わないことは言うまでもない。
さらに、本実施の形態におけるナビゲーション装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、地図情報と、目的地を示す情報である目的地情報と、経路探索を行うか否かを判断するための1以上の判断要素を有する1以上の経路探索条件情報とを格納しており、コンピュータを、現在位置を示す位置情報を取得する位置情報取得部と、前記地図情報に対して、前記位置情報と前記目的地情報を適用し、前記目的地までの経路を探索し、経路を示す情報である経路情報を取得する経路探索部と、前記経路情報を出力する経路情報出力部と、移動体の移動に関する情報である移動体情報を取得する移動体情報取得部と、前記移動体情報取得部が取得した移動体情報が、前記経路探索条件情報が有する1以上の判断要素に合致するか否かを判断する判断部と、前記判断部が合致すると判断した場合、前記経路探索部に経路情報を取得するように指示する制御部として機能させ、前記経路探索部は、前記制御部の指示に従って、当該経路探索部が直前に取得した経路情報の全部または一部を含む経路情報を取得しないようにして、または取得しにくくなるようにして、新たな経路情報を取得し、前記経路情報出力部は、前記新たな経路情報を出力するものとして、コンピュータを機能させるためのプログラムである。
また、上記プログラムにおいて、前記経路探索条件情報は、経路情報が有する経路上の情報である経路上情報と前記ナビゲーション装置が搭載されている移動体の走行に関する情報である移動体情報とを有する1以上の判断要素と、探索方法特定情報とを有し、前記判断部は、前記位置情報と前記経路情報出力部が出力している経路情報とから経路上情報を取得し、当該経路上情報と前記移動体情報取得部が取得した移動体情報の1以上の対の情報が、前記経路探索条件情報が有する1以上の判断要素に合致するか否かを判断し、前記制御部は、前記判断部が合致すると判断した場合、前記合致した1以上の判断要素に対応する探索方法特定情報を用いて、前記経路探索部に経路情報を取得するように指示するものとして、コンピュータを機能させることは好適である。
また、図24は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態のナビゲーション装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図24は、このコンピュータシステム300の概観図であり、図25は、システム300のブロック図である。
図24において、コンピュータシステム300は、FD(Flexible Disk)ドライブ、CD−ROM(Compact Disk Read Only Memory)ドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304と、マイク305と、スピーカー306とを含む。
図25において、コンピュータ301は、FDドライブ3011、CD−ROMドライブ3012に加えて、CPU(Central Processing Unit)3013と、CPU3013、CD−ROMドライブ3012及びFDドライブ3011に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM(Read−Only Memory)3015と、CPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM(Random Access Memory)3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態のナビゲーション装置の機能を実行させるプログラムは、CD−ROM3101、またはFD3102に記憶されて、CD−ROMドライブ3012またはFDドライブ3011に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101、FD3102またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態のナビゲーション装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。