以下、本発明の道路情報の修正装置を車両搭載型のナビゲーション装置に適用した一実施形態を、図1〜図18に基づいて説明する。
まず、本実施形態に係るナビゲーション装置20の構成を図1に基づいて説明する。
図1に示すように、ナビゲーション装置20は、車両50に搭載可能なもので、主に、CPU21、メモリ22、データベース(道路情報記憶手段)23、入出力インタフェイス24、入力装置25、ディスプレィ26、音源ユニット28、GPSセンサ31、車速センサ32、ジャイロセンサ33、地磁気センサ34、通信装置35等から構成されている。なお図1には、当該車両50が実際の道路90を走行している様子が示されている。
このナビゲーション装置20は、CPU21、プログラムメモリ22、ワークメモリ23、地図データベース24、入出力インタフェイス25、入力装置26、ディスプレィ27等によりコンピュータとしての機能を実現可能に構成されており、ハードウェアは次のように構成されている。
CPU21は、ナビゲーション装置20を制御する中央演算処理装置で、システムバスを介してメモリ22、データベース23、入出力インタフェイス24等と接続されている。このメモリ22には、CPU21を制御するシステムプログラム22aのほか、各種制御プログラム22b〜22g等が格納されており、CPU21はこれらのプログラムをメモリ22から読み出して逐次実行している。なお、このCPU21には、現在の時刻を計時する機能を有する時計21aが内蔵されている。
メモリ22は、システムバスに接続されている記憶装置であり、CPU21が使用する主記憶空間を構成するもの(ROM、RAM等)、である。このメモリ22には、システムプログラム22aをはじめとして、入力プログラム22b、経路探索プログラム22c、マップ・マッチングプログラム22d、データベース修正プログラム22e、経路案内プログラム22f、出力プログラム22g等が予め書き込まれている。
データベース23は、CPU21が使用する補助記憶空間を構成するハードディスク、コンパクトディスクやディジタルバーサティルディスク等で、システムバスを介してCPU21に接続されている。このデータベース23には、地図情報23aや道路情報23bが格納されている。ここで「道路情報」とは、道路や河川等の地形、道路リンク(番号、リンク長、リンク旋回角等)、ノード(番号、座標等)等の各種情報のことをいう。また「道路リンク」とは、実際の道路を短い線分の集合としてモデル化する際の一つひとつの線分のことをいい、実際の道路を折れ線近似したときの個々の直線部分のことである。この道路リンクは、通常、その直線部分の両端の、実際の道路に対応する経度・緯度(東経北緯)で一義的に定められており、距離の長短に応じた大小の距離コストによる重み付け情報等が付加されている。
入出力インタフェイス24は、入力装置25、ディスプレィ26、音源ユニット28、GPSセンサ31、車速センサ32、ジャイロセンサ33、地磁気センサ34、通信装置35等の入出力装置とCPU21等とのデータのやり取りを仲介する装置で、システムバスに接続されている。
入力装置25は、ナビゲーション装置20の操作パネルに設けられている入力装置で、入出力インタフェイス24を介してシステムバスに接続されている。この入力装置25は、当該車両50の運転者や乗員(以下、単に「利用者」という。)が経路探索を希望する目的地や出発地等に関する情報を入力プログラム22bを介して入力するものである。一般に、押圧式のスイッチを所定数並べた構成を採るが、入力操作の簡便化を考慮してディスプレィ26の表面に設けられたタッチパネル式のものや、あるいは利用者の声を認識してナビゲーション装置20への入力情報に変換する、マイクロフォンと音声認識装置とで構成されているものもある。
ディスプレィ26は、出発地から目的地までの案内経路や車両50の現在位置あるいは道路交通情報等を出力プログラム22hを介して出力し得る表示装置で、ナビゲーション装置20の操作パネルに設けられている。このディスプレィ26も、入出力インタフェイス24を介してシステムバスに接続されており、例えば、液晶表示器、CRT表示器やプラズマ表示器により構成されている。また表示面に、入力装置25を構成するタッチパネルを備えているものもある。
なお、本実施形態では、入力装置25とディスプレィ26は、ナビゲーション装置20の操作パネルに設けたが、これに限られることはなく、ナビゲーション装置20とは、別個の筐体に、入力装置25とディスプレィ26とを構成しても良い。また入力装置25とディスプレィ26とが互いに物理的に分離された構成を採っても良い。
音源ユニット28は、所定の音声データに基づくディジタル信号をアナログ信号に変換した後、当該アナログ信号によりアンプを介してスピーカから可聴音を発生させ得るもので、入出力インタフェイス24を介してシステムバスに接続されている。これにより、スピーカからは経路案内等が音声により出力され、利用者に通知される。
GPSセンサ31は、経度・緯度により車両の現在位置データを出力するためのもので、入出力インタフェイス24を介してシステムバスに接続されている。このGPSセンサ31は、複数のGPS衛星からの信号を受信して利用者の絶対位置を計測するGPS受信機等から構成されている。
車速センサ32、ジャイロセンサ33および地磁気センサ34は、車両の相対位置や車両の進行方向を計測するためのもので、それぞれ入出力インタフェイス24を介してシステムバスに接続されている。これらのセンサは、自律航法等に使用されるもので、車速センサ32およびジャイロセンサ33により得られる車両の相対位置情報は、GPS受信機が衛星からの電波を受信できないトンネル内等において位置を得たり、GPS受信機によって計測された絶対位置の測位誤差を補正する等に利用される。また、ジャイロセンサ33や地磁気センサ34により得られる車両の進行方向情報は、車両の相対位置情報とともに、後述するようにデータベース23の道路情報23bを修正するのに利用される。
なお、図示されていないが、車両50の操舵装置には、操舵輪の舵角を検出可能な舵角センサが取り付けられ、入出力インタフェイス24を介して当該舵角センサから出力される舵角信号を、CPU21に入力可能に構成している。これにより、CPU21は、運転者による当該車両50の操舵方向を舵角情報として得ることができる。
通信装置35は、道路交通情報配信システムセンタ(VICS)等の図略の情報センタとの間で無線通信回線によるデータの送受信を行うための無線通信機器で、入出力インタフェイス24を介してシステムバスに接続されている。例えば、携帯電話機、PHS等の無線通信システムを利用している。なお、VICSは、財団法人道路交通情報通信システムセンターの登録商標である。
なお、車速センサ32は、車両50の走行速度を検出可能に構成されるものであるから、この車速センサ32から入出力インタフェイス24を介してCPU21に入力される車両速度データをCPU21によって積分演算することにより、車両50の走行距離を得ることができる。また、ジャイロセンサ33は、車両50の回転角速度を検出可能に構成されることから、このジャイロセンサ33から入出力インタフェイス24を介してCPU21に入力される回転角速度データをCPU21によって積分演算することにより、車両50の旋回角を得ることができる。これにより、車速センサ32およびCPU21により得られた距離と、地磁気センサ34およびジャイロセンサ33により検出された方位とを組み合わせることによって、GPSセンサ31によらなくても、現在位置を検出することができる。また車速センサ32およびCPU21により得られた距離と図略の舵角センサにより検出された舵角とを組み合わせることによっても現在位置を検出することができる。
ここで、メモリ22に格納されている、入力プログラム22b、経路探索プログラム22c、マップ・マッチングプログラム22d、データベース修正プログラム22e、経路案内プログラム22f、出力プログラム22gの概要を説明する。
システムプログラム22aは、ナビゲーション装置20の起動から停止までの基本動作を制御する機能を有するもので、例えば、図2に示す基本制御処理を行う。この処理は、後述するように、ナビゲーション装置20の利用者により、一旦、目的地が設定されると、当該目的地までの経路が探索された後、マップ・マッチング処理(S107)→データベース修正処理(S109)→経路案内処理(S111)を繰り返し継続的に実行するもので、次の目的地の設定あるいはイグニッションスイッチのオフによって当該処理を終了するものである。これにより、この間において、データベース23の道路情報23bに対して必要な修正処理が継続的に行われるため、道路情報23bによる地図上の道路と車両50が走行する実道路とが一致してない場合には、当該道路情報23bを適宜修正することができる。なお、この修正処理はデータベース修正プログラム22eにより行われる。
入力プログラム22bは、ナビゲーション装置20の利用者が経路案内を希望する目的地、その出発地等に関する情報等その他、ナビゲーション機能を利用する上で必要な各種情報等を、利用者に対し入力装置25を介して入力させ、他のプログラムや処理等に受け渡す機能を有するものである。また入力プログラム22bは、GPSセンサ31から出力される現在位置データ、車速センサ32から出力される車速データ、ジャイロセンサ33から出力される回転角速度データ、地磁気センサ34から出力される方位データ、またはCPU21の時計21aから出力される現在時刻データ等を入力し、他のプログラムや処理等に受け渡す機能も有する。
経路探索プログラム22cは、入力装置25により入力された目的地をデータベース23に記憶された地図情報23aに基づいて検索する機能と、入力装置25により入力された出発地あるはGPSセンサ31等により検出される車両の現在地から当該希望目的地に至るまでの最短距離経路をデータベース23に記録されている道路情報23bに基づいて探索する機能と、を有するものである。なお、「最短距離経路」とは、出発地(または現在地)から目的地に到るまでの総距離が最短である経路のことである。
マップ・マッチングプログラム22dは、ディスプレィ26に表示させる車両50の現在位置に関する情報を、データベース23の地図情報23aや道路情報23bあるいは各種センサ等から取得し、走行状態データとして出力する機能を有するもので、例えば、図3に示すマップ・マッチング処理を行う。
データベース修正プログラム22eは、データベース23に記憶されている道路情報23bを、マップ・マッチングプログラム22dにより出力された走行状態データに基づいて修正する機能を有するもので、例えば、図4に示すデータベース修正処理を行う。なお、このデータベース修正プログラム22eは、特許請求の範囲に記載の「道路カーブ特定手段およびカーブ区間修正手段」に相当するものである。
経路案内プログラム22fは、経路探索プログラム22cにより探索された経路に関する情報(例えば、右左折等の進行方向の説明や道路交通情報等)を、利用者に対してディスプレィ26に表示される画像や音源ユニット28により出力される合成音声等によって行う機能を有するものである。
出力プログラム22gは、各種画面情報をディスプレィ26に線図として描画する機能や各種案内情報を音源ユニット28によりスピーカを鳴動させる機能を有するものである。例えば、データベース23の地図情報23aや道路情報23bをもとに、地図や経路探索プログラム22cにより探索された最短距離経路等をディスプレィ26に表示させたり、また経路案内等に必要なメッセージ音や音声を所定の音声データに基づいて音源ユニット28により鳴らせるものである。
次に、本ナビゲーション装置20のCPU21により実行される基本制御処理の流れを図2〜図12に基づいて説明する。なお、この基本制御処理は、システムプログラム22aにより実行されるものである。
[図2:基本制御処理]
図2に示すように、基本制御処理では、まずステップS101により初期化処理が行われる。この初期化処理では、例えば、メモリ22に所定のワーク領域を確保したり、あるいは各種フラグ等を初期値に設定する処理を行う。
続いてステップS103より目的地設定処理が行われる。この処理では、例えば、利用者の操作によって、入力装置25を介し目的地や必要に応じて目的地までの通過地点あるいは一般道路/有料道路のいずれを優先するか等の経路探索条件等に関する情報を、入力する処理を行う。なおこの処理により設定された目的地は、データベース23の地図情報23aに基づいて、例えば、経度・緯度(東経北緯)等による座標情報により一義的に定められる。
次のステップS105では経路探索処理が行われる。この処理は、経路探索プログラム22cにより行われるものである。具体的には、例えばGPSセンサ31によって取得される当該車両50の現在位置からステップS103により設定された目的地に至るまでの最短距離経路を、データベース23の地図情報23aや道路情報23bに基づいてダイクストラ法等の探索アルゴリズムにより経路探索する処理が行われる。
このようにステップS105により経路探索されると、続くステップS107では、マップ・マッチング処理が行われる。具体的には、図3に示すように、ステップS111による経路案内処理によりディスプレィ26に表示される案内画面上の現在位置をリアルタイムに変化させて当該車両50の走行に伴って案内経路を追跡し得るために必要な経路案内データや走行状態データを出力する処理が行われる。
[図3:マップ・マッチング処理]
ここで、図3を参照して、マップ・マッチング処理の概要を説明する。
図3に示すように、マップ・マッチング処理では、まずステップS201によりセンサ信号を読み込む処理が行われる。この処理では、GPSセンサ31、車速センサ32、ジャイロセンサ33および地磁気センサ34から出力される各種センサ信号(センサデータ)を入出力インタフェイス24を介して読み込むことによって、続くステップS203による所定の演算処理により車両50の現在位置を含む現在地付近のデータを取得する。
続くステップS205により、車両50の走行に伴う現在位置の変化に対応させて経路を案内するための経路案内データを出力するとともに、ステップS207により車両50の走行状態を表す走行状態データを出力した後、図2に示すシステムプログラム22aによる基本制御処理に復帰する。なお、この走行状態データとしては、例えば、現在時刻、ジャイロ旋回角、車速、マッチング・データ(走行道路番号、走行ノード番号、分岐点通過フラグ)、DBデータ(道路番号、ノード番号、座標、リンク長さ、リンク角)等が挙げられる。またこれらデータは、例えば、メモリ22のワーク領域を介して、次述するデータベース修正プログラム22e等に対して出力される。
[図2:基本制御処理(続き)]
図2に戻って、ステップS107によりマップ・マッチング処理が行われると、続くステップS109では、データベース修正処理が行われる。この処理は、データベース修正プログラム22eにより行われるもので、特許請求の範囲に記載の「道路カーブ特定手段、カーブ区間修正手段」に相当するものである。具体的には、図4〜図11に詳細に説明されているので、ここで図4を参照して説明する。
[図4:データベース修正処理(S301:走行データ記憶処理)]
図4に示すように、データベース修正処理では、まずステップS301により走行データ記憶処理が行われる。この処理の詳細は、図5(A) に図示されているため、ここでは、図5を参照して走行データ記憶処理を説明する。
[図5:走行データ記憶処理]
図5(A) に示すように、走行データ記憶処理では、ステップS401により走行データを計算する処理が行われる。この走行データは、特許請求の範囲に記載の「走行軌跡情報」に相当するものである。具体的には、図5(B) に概念的に示される走行データに対して以下の各処理が行われる。なお、図5(B) は、図3に示すマップ・マッチング処理により出力された走行状態データ等に基づいて、車両50の走行に応じて取得されるデータを表す走行データを説明したものであり、同図に示す×(バツ)はノード番号のあるノードを表し、これらのノード同士を結ぶ直線は道路リンクを表す。また×(バツ)が□(白四角)によって囲まれたノードは(図5(B) に示すノード番号-13 )、そのノードが分岐点でもあることを表している。この分岐点は、当該分岐点に接続される他の隣接した道路等が存在することを示すもので、この図5(B) に示す例では、当該分岐点を境界に、道路番号-345の道路と道路番号-346の道路とが接続されている。図5(B) には、走行軌跡として道路が図示されている。リンク上に図示されている○(白丸)は、あるタイミングにおけるマッチング・データによる現在位置を表すマッチングポイントを示す。
まず、ステップS401では、走行データを計算する処理として、走行距離および走行軌跡座標の算出、ならびにノード通過点フラグの設定が行われる。具体的には、マッチングタイミングt(i) における車速V(i) および各マッチングタイミングt(i) 間で車両50が走行する時間(走行時間)に基づいて、走行軌跡長さDL(i) が算出され、また、車両50の旋回角θ(i) および走行軌跡長さDL(i) に基づいて走行軌跡座標(X(i) ,Y(i) )が算出される。さらに、走行ノード番号NN(i) が変化したかどうか、即ち、一つ前のマッチングタイミングt(i-1) での走行ノード番号NN(i-1) と、現在のマッチングタイミングt(i) での走行ノード番号NN(i) とが一致するか否かを判断することによって、車両50がノードNj を通過したかどうかを表すノード通過フラグを設定する。例えば、走行ノード番号NN(i-1) と走行ノード番号NN(i) とが一致する場合には、車両50はノードNj を通過していないことになるので、ノード通過フラグにフラグのオフを示す0(ゼロ)を設定する。一方、走行ノード番号NN(i-1) と走行ノード番号NN(i) とが一致しない場合には、車両50はノードNj を通過したことになるので、フラグのオンを示す1をノード通過フラグに設定する。
次に、ステップS403では、走行データを記憶する処理として、ステップS401により算出等された走行軌跡長さDL(i) 、軌跡座標(X(i),Y(i)) およびノード通過フラグを、他の走行データとともにメモリ22の所定領域に記憶する処理が行われる。ここで、メモリ22に記憶される走行データは、マッチングタイミングt(i) 、マッチングデータ、走行路データ、走行軌跡データ等からなり、またマッチングデータは、走行道路番号RN(i) 、走行ノード番号NN(i) 、分岐点通過フラグ、ノード通過フラグ等からなる。さらに走行路データは、道路番号Rn(j) 、ノード番号Nn(j) 、ノード座標(x(j),y(j)) 、リンク長さLL(j) 、リンク角α(j) 等からなり、走行軌跡データは、軌跡座標(X(i),Y(i)) 、旋回角θ(i) 、走行軌跡長さDL(i) 等からなる。このようにして走行データ記憶処理が行われると、図4に示すデータベース修正処理に復帰し、ステップS301の次のステップS303に処理を移行する。なお、上記走行軌跡データの記憶は、所定の間隔、例えばマップマッチングタイミングごとに行われるので、その結果、走行軌跡データは時系列データとして記憶されることになる(以上の処理は、特許請求の範囲に記載の「走行軌跡情報取得手段」に相当する)。
[図4:データベース修正処理(S303:DB修正範囲特定処理)]
図4に戻るとステップS303では、DB修正範囲特定処理が行われる。この処理は、データベース23の道路情報23bに基づいて修正の対象となる道路のカーブ区間を特定するもので、特許請求の範囲に記載の「道路カーブ特定手段」に相当する。この処理の詳細は図6に図示されており、また道路情報23bによる道路リンクの概念が図12に図示されているので、ここでは図6および図12を参照してDB修正範囲特定処理を説明する。なお「DB」はデータベースを意味する。また図12に示す×(バツ)はノードを表し、これらのノード同士を結ぶ直線は道路リンクを表す。
[図6:DB修正範囲特定処理]
図6に示すように、DB修正範囲特定処理では、まずステップS501によりリンク旋回角α(i) の添字iを0(ゼロ)に設定し初期化する処理が行われる。ここで、リンク旋回角α(i) はi番目の道路リンクのリンク旋回角を示す。また「リンク旋回角α」とは、道路情報23bを構成する道路リンクデータに基づく値で、隣接する2つの道路リンクがなす角により定義される。例えば、図12に示す道路リンクの概念例(実際の道路90を道路リンクの集合としてモデル化した道路情報23bの例)では、修正区間始点のノードから車両進行方向に延びる道路リンクに対して、この道路リンクに隣接する次の道路リンクは、車両進行方向右側に湾曲するコーナー(以下「右コーナー」という。)の方向に32度のリンク旋回角をもっていることが同図中の数値「−32」からわかる。なお、図12においては、車両進行方向左側に湾曲するコーナー(以下「左コーナー」という。)の方向のリンク旋回角には「+」(プラス)が、また車両進行方向に対して右コーナー方向のリンク旋回角には「−」(マイナス)が、それぞれ付されている。なお「コーナー」と「カーブ」は同義である(以下、同じ)。
続くステップS503では、リンク旋回角αの符号が反転するノードを判断する処理が行われる。即ち、α(i) ×α(i-1) を演算することにより、隣接する両道路リンクの符号が一致しない場合には、当該演算結果が負(マイナス)になることから、符号の不一致、つまり符号の反転を当該演算結果が0以下になるか否かによって判断を行っている(α(i) ×α(i-1) ≦0)。例えば、図12に示す道路リンクの概念例では、この符号の反転箇所に該当するノードのリンク旋回角を四角枠内に表示している(図12に示す+16度、−32度、+15度、−10度、+11度)。
そして、リンク旋回角αの符号が反転すると判断されない場合には(S503でNo)、ステップS505によりリンク旋回角α(i) の添字iをインクリメント(i=i+1)することによって、次のノードのリンク旋回角αについて符号反転の判断を行う(S503)。一方、リンク旋回角αの符号が反転すると判断された場合には(S503でYes)、次ステップS507に処理を移行する。なお、図6には図示されていないが、道路情報23bの道路リンクデータの最後を示す値まで、リンク旋回角α(i) の添字iを増加させても、ステップS503によりコーナーの入口を検出できない場合には、本DB修正範囲特定処理を終了し、図4に示すデータベース修正処理に復帰する。
次のステップS507では、(i-1) 番目のノードをコーナー入口のノードとして特定して記憶する処理が行われる。具体的には、例えば、当該ノードのノード番号をメモリ22の所定領域に記憶する。例えば、図12に示す道路リンクの概念例では、右旋回と表示されている旋回角−32度のj=1コーナーα2(1) がこれに相当する。なお、このステップS507により特定されて記憶されるノード番号は、特許請求の範囲に記載の「第1地点」に相当するものである。
ステップS507によりコーナー入口のノードとして特定されるノードを記憶すると、次にステップS509によりリンク旋回角α(i) の添字iをインクリメント(i=i+1)する。そして、ステップS511により、ステップS503と同様、リンク旋回角αの符号が反転するノードを判断する処理が行われる。このステップS511により、リンク旋回角αの符号が反転すると判断されない場合には(S511でNo)、再びステップS509によりリンク旋回角α(i) の添字iをインクリメント(i=i+1)することによって、次のノードのリンク旋回角αについて符号反転の判断を行う(S511)。一方、リンク旋回角αの符号が反転すると判断された場合には(S511でYes)、次ステップS513に処理を移行する。
次のステップS513では、i番目のノードをコーナー出口のノードとして特定して記憶する処理が行われる。具体的には、例えば、ステップS507と同様、当該ノードのノード番号をメモリ22の所定領域に記憶する。例えば、図12に示す道路リンクの概念例では、左旋回と表示されている旋回角+15度のj=2コーナーα2(2) がこれに相当する。なお、このステップS513により特定されて記憶されるノード番号は、特許請求の範囲に記載の「第2地点」に相当するものである。なお、コーナ入口判断時は、(i-1) のノードを入口として特定し(S507)、コーナー出口判断時はiのノードを出口として特定するのはコーナー全体を含むようにコーナー入口、出口のノードを特定するためである。このステップS513による処理を終了すると、図4に示すデータベース修正処理に復帰し、ステップS303の次のステップS305に処理を移行する。
このように本DB修正範囲特定処理では、コーナー入口、出口を特定しそれをメモリ22に記憶するので、データベース23の道路情報23bを構成する道路リンクデータに対して、右コーナーの入り出口あるいは左コーナーの入り出口を特定することができる。つまり、地図上の道路におけるコーナーの入り出口を正確に把握することが可能となる。
図6に示すDB修正範囲特定処理は、右コーナーまたは左コーナーに対してその入り出口を特定可能にする処理であるが、ここで、複数(2以上)のコーナーに対してその入り出口を特定可能にする「複数コーナー対応のDB修正範囲特定処理」を図7に基づいて説明する(なお、図7では、単に「DB修正範囲特定処理」と表記されている。)。
[図7:複数コーナー対応のDB修正範囲特定処理]
図7に示すように、複数コーナー対応のDB修正範囲特定処理では、まずステップS521によりリンク旋回角α(i) およびノード番号P(i) の添字iを0(ゼロ)、またコーナー数nを0(ゼロ)に設定し初期化する処理が行われる。
続くステップS523では、図6を参照して説明したDB修正範囲特定処理のステップS503と同様に、リンク旋回角αの符号が反転するノードを判断する処理が行われる。そして、リンク旋回角αの符号が反転すると判断されない場合には(S523でNo)、ステップS525によりリンク旋回角α(i) の添字iをインクリメント(i=i+1)することによって、次のノードのリンク旋回角αについて符号反転の判断を行う(S523)。一方、リンク旋回角αの符号が反転すると判断された場合には(S523でYes)、次ステップS527に処理を移行する。なお、図7には図示されていないが、道路情報23bの道路リンクデータの最後を示す値まで、リンク旋回角α(i) の添字iを増加させても、ステップS523によりコーナーの入口を検出できない場合には、本DB修正範囲特定処理を終了し、図4に示すデータベース修正処理に復帰する。
次のステップS527では、(i-1) 番目のノードを第1コーナー入口のノードとして特定して記憶する処理が行われる。具体的には、例えば、当該ノードのノード番号をメモリ22の所定領域に記憶する。例えば、図12に示す道路リンクの概念例では、右旋回と表示されている旋回角−32度のj=1コーナーα2(1) がこれに相当する。なお、このステップS527により特定されて記憶されるノード番号は、特許請求の範囲に記載の「第1地点」に相当するものである。
ステップS527によりコーナー入口のノードとして特定されるノードを記憶すると、次にステップS529により第1コーナー入口からP(i) 番目のノードまでの距離が所定値以内であるか否かの判断処理が行われる。即ち、第1コーナー入口から現在検出したノードまでの距離を算出しその距離、つまり連続したコーナー(例えばS字カーブ)の全長が所定距離(例えば500m)を超える場合には(S529でNo)、ジャイロセンサ33によるジャイロデータの積算誤差が大きくならない程度の距離でデータベース23の道路情報23bを修正するため、複数コーナー対応のDB修正範囲特定処理を終了して図4に示すデータベース修正処理に復帰する。一方、第1コーナー入口からの連続したコーナーの全長が所定距離以内である場合には(S529でYes)、ステップS531に移行する。
続くステップS531では、リンク旋回角α(i) とノード番号P(i) の添字iをインクリメント(i=i+1)する。そして、ステップS533により、ステップS523と同様、リンク旋回角αの符号が反転するノードを判断する処理が行われる。このステップS533により、リンク旋回角αの符号が反転すると判断されない場合には(S533でNo)、再びステップS529により第1コーナー入口からP(i) 番目のノードまでの距離が所定値以内であるか否かの判断処理が行われる。一方、リンク旋回角αの符号が反転すると判断された場合には(S533でYes)、次ステップS535に進む。
ステップS535では、各コーナーの入口から出口までのリンク旋回角α(i) を積算し、その積算値が所定の値以上でない場合、即ち当該コーナーがうねり程度の道路の湾曲である場合には(S535でNo)、データベース23の道路情報23bを修正するほどのコーナーではないので、次のステップS537、S539による各処理を行うことなく、ステップS541に処理を移行して、それまでのコーナーを修正対象から除外する。一方、第nコーナー入口からP(i) までの旋回角の積算値が所定値以上である場合には(S535でYes)、図6を参照して説明したDB修正範囲特定処理のステップS513と同様に、ステップS537によりi番目のノードを第nコーナー出口のノードと特定して記憶する処理が行われる。具体的には、例えば、当該ノードのノード番号をメモリ22の所定領域に記憶する。例えば、図12に示す道路リンクの概念例では、旋回角−10度のj=3コーナーα2(3) がこれに相当する。なお、このステップS537により特定されて記憶されるノード番号は、特許請求の範囲に記載の「第2地点」に相当するものである。
続くステップS539では、次のコーナーに備えてnの値をインクリメント(n=n+1)する処理が行われ、さらにステップS541により(i-1) 番目のノードを第nコーナー入口のノードと特定して記憶する処理が行われる。具体的には、例えば、当該ノードのノード番号をメモリ22の所定領域に記憶する。例えば、図12に示す道路リンクの概念例では、左旋回と表示されている旋回角+15度のj=2コーナーα2(2) がこれに相当する。なお、このステップS541により特定されて記憶されるノード番号は、特許請求の範囲に記載の「中間地点」に相当するものである。ここで、コーナーの入口、出口はコーナー全体を含むように特定する。即ち、コーナー入口では(i-1) を、またコーナー出口ではiを用いるので、連続コーナーではコーナー出口のノードと、次のコーナー入口のノードが交差することとなる。
ステップS541による処理が完了すると、ステップS529に処理を移行して、再び第1コーナー入口からP(i) 番目のノードまでの距離が所定値以内であるか否かの判断処理が行われる。そして、ステップS529〜S541の各処理を繰り返して連続コーナーを検出し、連続コーナー全体の長さが所定値以上となった時点で(S529でNo)、前述したように、複数コーナー対応のDB修正範囲特定処理を終了して図4に示すデータベース修正処理に復帰する。
このように図7に示す複数コーナー対応のDB修正範囲特定処理では、連続コーナーを検出することができるので、これらの連続コーナーを、右コーナーと左コーナーとに分解しそれぞれの左右のコーナーを個々に特定した場合に比べ、長距離区間においてコーナー形状を特定できる。そのため、実道路の形状と、データベース23の道路情報23bによる当該実道路の形状とを一致させる際に、両者間の整合誤差範囲(ズレが発生し得る範囲)を狭くすることができる。
[図4:データベース修正処理(S305:修正用軌跡データ取得処理)]
図4に戻ってステップS305では、修正用軌跡データ取得処理が行われる。この処理は、データベース23の道路情報23bを修正するのに必要となる実道路を走行する当該車両50の軌跡データを取得するもので、特許請求の範囲に記載の「カーブ区間修正手段」に相当する。この処理の詳細は図8に図示されており、またジャイロセンサ33等により取得される旋回角のサンプルデータ例が図13に、さらにこの軌跡データと道路情報23bによる道路リンクと対応関係が図14に、それぞれ図示されているので、ここでは図8、図13および図14を参照して修正用軌跡データ取得処理を説明する。また必要に応じて図12も参照する。
[図8:修正用軌跡データ取得処理]
図8に示すように、修正用軌跡データ取得処理では、まずステップS601によりノード点N(i) の添字iをNS-2に設定し、またジャイロセンサ33により取得される軌跡データ(旋回角データ)のデータ番号kを1に設定する初期化処理が行われる。この添字iに設定されるNS-2は、図12に示すように、□(白四角)によって囲まれた×(バツ)のノード点、即ち軌跡データの取得開始点を表す値で、データベース23の道路情報23bに基づいて与えられる。
続くステップS603では、軌跡データを取得している当該車両50がその走行により、軌跡データの取得開始点に相当するノード点N(NS-2)を通過したか否かの判断処理が行われる。この処理により当該車両50がノード点N(NS-2)を通過したと判断できない場合には(S603でNo)、次のデータを取得するため、ステップS605によりデータ番号kをインクリメント(k=k+1)する処理が行われる。一方、当該車両50がノード点N(NS-2)を通過したと判断できる場合には(S603でYes)、次ステップS607に処理に移行する。
次のステップS607では、ノード点N(i) の添字iをNS+2に設定する処理と、当該車両50がノード点N(NS-2)を通過したときのデータ番号kをk1に記憶(k1=k)する処理とが行われる。この添字iに設定されるNS+2は、図12に示すように、□(白四角)によって囲まれた×(バツ)のノード点、即ち軌跡データの取得終了点を表す値で、データベース23の道路情報23bに基づいて与えられる。
続くステップS609では、ジャイロセンサ33により取得された軌跡データをメモリ22の所定領域に保存する処理が行われ、さらに次のデータを取得するため、ステップS611によりデータ番号kをインクリメント(k=k+1)する処理が行われる。そして、次のステップS613により当該車両50が軌跡データの取得終了点に相当するノード点N(NS+2)を通過したか否かを判断する処理が行われる。
このステップS613により、当該車両50がノード点N(NS+2)を通過したと判断できない場合には(S613でNo)、取得した次のデータをメモリ22に保存するため、ステップS609に処理を移行する。一方、当該車両50がノード点N(NS+2)を通過したと判断できる場合には(S609でYes)、次のステップS615に処理を移行し、当該車両50がノード点N(NS+2)を通過したときのデータ番号kをk2に記憶(k2=k)する。そして、このステップS615による処理を終了すると、図4に示すデータベース修正処理に復帰し、ステップS305の次のステップS307に処理を移行する。
これにより、ジャイロセンサ33からCPU21に入力される回転角速度データをCPU21により積分演算することによって、当該車両50の旋回角データを得られるので、個々の位置における当該車両50の旋回角データを、所定方向を中心(ゼロ)に左方向の旋回角を+(プラス)、右方向の旋回角を−(マイナス)にプロットすると、図13に示すように表すことができる。なお、図13に示す中黒二重丸((イ)〜(ホ))は、前述したコーナーの入口や出口を表す。
また、この旋回角データに基づいて軌跡データを演算することによって、図14に示すように、当該軌跡データと道路情報23bによる道路リンクとの対応関係を得ることができる。この図14では、図13に示す軌跡データ取得開始点における通過軌跡データ■(黒四角)を図12に示す道路情報23bによる道路リンクの軌跡データ取得開始点□(白四角)に重ね合わせ、さらにその座標(X(1),Y(1) )をゼロ(X(1)=0、Y(1)=0)に設定することによって、この座標を原点に、各軌跡データ(旋回角データ)とその走行距離とに基づいてデータ番号kごとに順次プロットする。これにより、図14に示すように、貼付前軌跡データ(X(k),Y(k) (k=k1〜k2))による走行軌跡を、・(黒点)の線状を呈する集まりとして得ることができる。なお、図14に示す×(バツ)は、後述する回転角計算処理(図10)において算出されるリンク長対応点を表し、またこのリンク長対応点を結ぶ直線は、軌跡リンク(長さG(1) 〜G(5) )を表す。また、図14に示す中黒二重丸((イ)〜(ホ))は、前述したコーナーの入口、出口を表し、さらに○(白丸)は、後述する回転角計算処理(図10)において算出される後方リンク長対応点を表す。
また、図12と図13との対応関係は次の通りである。図12に示す軌跡データ取得開始点□(白四角)に対応する旋回角データとして、図13に示す軌跡データ取得開始点の通過軌跡データ■(黒四角)がジャイロセンサ33によって取得されて保存される(S609)。同様に、図12に示す修正区間始点△(白三角)と図13に示す修正区間始点の通過軌跡データ▲(黒三角)とが、また図12に示す修正区間終点△(白三角)と図13に示す修正区間終点の通過軌跡データ▲(黒三角)とが、さらに図12に示す軌跡データ取得終了点□(白四角)と図13に示す軌跡データ取得終了点の通過軌跡データ■(黒四角)とが、それぞれ対応している。また、この修正区間始点から修正区間終点までの間の各ノード点についても、図12に示す×(バツ)と図13に示す●(黒丸)とがそれぞれ対応している。
[図4:データベース修正処理(S307:軌跡データ貼付処理)]
図4に戻ってステップS307では、軌跡データ貼付処理が行われる。この処理では、図14に示した貼付前軌跡データ(X(k),Y(k) (k=k1〜k2))による走行軌跡の修正区間始点▲(黒三角)に対して、データベース23の地図情報23aから取得した経度・緯度(東経北緯)を与えることにより基点を定め、さらにこの基点(修正区間始点▲(黒三角))を中心に軌跡データ(X(k),Y(k) )による走行軌跡を回転させることによって、軌跡データ(X(k),Y(k) )の貼り付けを行う。なお、この軌跡データ貼付処理は、特許請求の範囲に記載の「カーブ区間修正手段」に相当するものである。この軌跡データ貼付処理の詳細は、図9に図示されており、またこの処理の概念例が図15、図16に図示されているので、ここでは図9、図15、図16を参照して軌跡データ貼付処理を説明する。
[図9:軌跡データ貼付処理]
図9に示すように、軌跡データ貼付処理では、まずステップS701により、ノード点の東経座標ED(i) および北緯座標ND(i) の添字iをNS-1に設定し(i=NS-1)、リンク番号kkをデータ番号k1に設定し(kk=k1)、対応点間距離L1を初期値L4に設定する(L1(kk-1)=L4)、初期化処理がそれぞれ行われる。なお、このデータ番号k1は、当該車両50がノード点N(NS-2)を通過したときにジャイロセンサ33によって取得されたの軌跡データ(旋回角データ)の番号である(図12参照)。
続くステップS703では、始点座標貼付処理が行われる。即ち、ステップS701により、kkにk1、iにNS-1が設定されているので、この処理では、ジャイロセンサ33により取得される軌跡データ(旋回角データ)のデータ番号kに、データ番号k1が設定されたkkを設定することによって、始点座標として、東経座標EG0(k1) にED(NS-1)、北緯座標NG0(k1) にND(NS-1)が、それぞれ設定される。これにより、図15に示すように、修正区間始点▲(黒三角)に対し経度・緯度の座標(東経座標ED(NS-1)、北緯座標ND(NS-1))が与えられる。
次のステップS705では、始点の東経座標EG0(k)、北緯座標NG0(k)の添字kをインクリメント(k=k+1)する処理が行われ、さらにステップS707により回転前の軌跡座標計算処理が行われる。この座標計算は、図14を参照して説明したように、始点の座標(ED(NS-1)、ND(NS-1))を原点に、各軌跡データ(旋回角データ)とその走行距離とに基づいて、ステップS705によりインクリメントされるデータ番号kをごとに積算して算出される(ステップS709でNo)。そして、インクリメントされたデータ番号kがデータ番号k2に一致するとステップS709により判断されると(S709でYes)、データ番号k1〜k2について回転前の軌跡座標計算が終了したことになるので、続くステップS711に処理を移行する。なお、データ番号k2は、当該車両50がノード点N(NS+2)を通過したときにジャイロセンサ33によって取得された軌跡データ(旋回角データ)の番号である(図12参照)。
次のステップS711では、回転角計算処理が行われる。この処理は、図15に示すように、修正区間始点▲(黒三角)(ED(NS-1)、ND(NS-1))を中心に回転前軌跡(EG0(k)、NG0(k))を回転させた場合における回転角α0 を計算する処理で、その詳細は図10に図示されている。そのため、ここでは、図9、図15、図16に加えて、図10も参照して回転角計算処理を説明する。
[図10:回転角計算処理]
図10に示すように、回転角計算処理では、まずステップS801により、回転角α0 を0(ゼロ)に設定し(α0 =0)、またデータ番号kをリンク番号kkに設定し(k=kk)、さらに軌跡リンクG(i) および道路リンクL(i) の添字iをNS-1に設定する(i=NS-1)、初期化処理がそれぞれ行われる。
続くステップS803では、軌跡リンク長を計算する処理が行われる。即ち、図15、図16に示すように、軌跡データ上のリンク長対応点(EGL(i),NGL(i)) を結んで得られる軌跡リンクG(i) の長さを所定のアルゴリズムによって算出する処理が行われる。そして、次のステップS805によるkのインクリメント処理(k=k+1)、その次のステップS805による判断処理(G(i) =L(i) ?)と相俟って、ステップS803により計算された軌跡リンクG(i) の長さが道路リンクL(i) の長さと一致するまでステップS803による軌跡リンク長計算処理が行われ(ステップS803でNoの場合)、ステップS805により軌跡リンクG(i) の長さと道路リンクL(i) の長さとが一致するデータ番号kが見つかると(S805でYes)、ステップS809に処理を移行する。
ステップS809では、リンク長対応点計算処理が行われる。この処理は、ステップS805により軌跡リンクG(i) の長さと道路リンクL(i) の長さとが一致するデータ番号kが検出されているので、このデータ番号kに基づいて回転前軌跡の座標(EG0(k)、NG0(k))を、図15に×(バツ)で図示されるリンク長対応点(EGL(i),NGL(i)) の座標として設定する(EGL(i)=EG0(k)、NGL(i)=NG0(k))。これによりリンク長対応点(EGL(i),NGL(i)) の座標が得られる。
続くステップS811では、軌跡リンクG(i) および道路リンクL(i) の添字iが修正区間終点(NE+1)に一致しているか否かの判断処理が行われる。即ち、ステップS809によるリンク長対応点計算処理が、図12に示す修正区間終点△(白三角)まで行われているか否かをこのステップS811により行う。そして、当該添字iが修正区間終点(NE+1)に一致していると判断した場合には(S811でYes)、全てのリンク長対応点の座標計算が完了していることになるので、次ステップS815により回転角α0 の計算処理を行う。一方、当該添字iが修正区間終点(NE+1)に一致していると判断できな場合には(S811でNo)、まだ座標計算が済んでいないリンク長対応点が存在するので、ステップS813に移行して当該添字iおよびデータ番号kをそれぞれインクリメントする(i=i+1、k=k+1)。ステップS815による回転角α0 の計算処理が終了すると、図9に示す軌跡データ貼付処理に復帰し、ステップS711の次のステップS713に処理を移行する。
再び図9に戻ると、次のステップS713では、回転後座標計算処理が行われる。即ち、前述した回転角計算処理により回転角α0 が算出されているので、この回転角α0 を回転前軌跡(EG0(k),NG0(k) (k=k1〜k2))に加算することによって、回転後軌跡座標(EG1(k)、NG1(k))を計算する。
続くステップS715では、対応点間距離計算処理が行われる。この処理では、図16に示すように、道路リンクL(i) の各々ノード点×(バツ)(ED(i),ND(i)) に対して最短距離に位置する回転後軌跡の対応点(EGN(i),NGN(i)) を求め(EGN(i)=EG2(i),NGN(i)=NG2(i))、ノード点(ED(i),ND(i)) と対応点(EGN(i),NGN(i))との間の距離、つまり対応点間距離L1(i) を算出し、その総和ΣL1(i)(i=NS-1〜NS+1))をL1(kk)として求める(L1(kk)=ΣL1(i))。これにより、リンク番号kkにおける対応点間距離L1(i) の積算値が得られる。
次のステップS717では、所定のアルゴリズムに従って回転角の微調整を行い、さらにステップS719によりステップS715により得られた対応点間距離L1(i) の積算値L1(kk)がその一つ前のリンク番号(kk-1)における積算値L1(kk-1)よりも小さいか否かについて判断処理を行い、もし小さければ(S719でYes)、ステップS721によりリンク番号kkをインクリメント(kk=kk+1)してステップS703に処理を戻す。一方、ステップS719により、対応点間距離L1(i) の積算値L1(kk)がその一つ前のリンク番号(kk-1)における積算値L1(kk-1)よりも小さいと判断できない場合には(S719でNo)、本軌跡データ貼付処理を終了して、図4に示すデータベース修正処理に復帰し、ステップS309のコーナー情報書込処理に処理を移行する。
[図4:データベース修正処理(S309:コーナー情報書込処理)]
図4に戻ってステップS309では、コーナー情報書込処理が行われる。この処理は、コーナー情報として、コーナーの入口座標や出口座標を特定したり、あるいは当該コーナーの旋回角や最小曲率半径を算出するものである。なお、このコーナー情報書込処理は、特許請求の範囲に記載の「カーブ区間修正手段」に相当するものである。このコーナー情報書込処理の詳細は、図11に図示されており、またこの処理に関連した説明図が図13および図17に図示されているので、ここでは図11、図13、図17を参照してコーナー情報書込処理を説明する。
[図10:コーナー情報書込処理]
図10に示すように、コーナー情報書込処理では、まずステップS901により、コーナー番号jを1に初期設定(j=1)する処理が行われる。続いてステップS903より、コーナー入口座標を特定する処理が行われる。この処理では、図17にコーナー入口(イ)の座標(Eθ1(j),Nθ1(j)) を、ジャイロセンサ33により取得された軌跡データ(旋回角データ)に基づいて特定する。
即ち、図13に示すように、ジャイロセンサ33の回転角速度データをCPU21により積分演算して得られる旋回角データは、当該車両50が左方向に旋回した場合には+(プラス)の値をとり、右方向に旋回した場合には−(マイナス)の値をとることから、例えば、旋回角データの極性が+(プラス)からマイナス(−)に変化した場合には、当該車両50のハンドルがその中立点に対して左切りから右切りに切り換えられたことがわかる。同様に、旋回角データの極性がマイナス(−)から+(プラス)に変化した場合には、当該車両50のハンドルがその中立点に対して右切りから左切りに切り換えられたことになる。したがって、旋回角データの極性が+(プラス)からマイナス(−)あるいはマイナス(−)から+(プラス)に変化した地点(以下「ゼロクロス地点」という。)には、コーナーの入口または出口が存在する可能性が高いため、図13に示すように、旋回角が0(ゼロ)になるゼロクロス地点((ハ)〜(ホ))をコーナーの入り出口として検出することによって、このゼロクロス地点における座標をステップS307により貼付した軌跡データから特定することができる。
なお、このようなゼロクロス地点の特定は、図6を参照して既に説明したDB修正範囲特定処理のアルゴリズムを用いて行うことができる。即ち、図6に示すリンク旋回角α(i) をジャイロセンサ33により得られた旋回角データに、またその添字iを旋回角データのサンプリング周期に、それぞれ置き換えることによって図6および図7に示すDB修正範囲特定処理を、本コーナー情報書込処理におけるコーナー入口座標特定処理(S903)やコーナー入口座標特定処理(S911)に利用することができる。
また、図13に示す記号(イ)は、図17に示す1つ目の右コーナーの入口に相当し、図13に示す記号(ロ)は、同右コーナーの出口に相当する。そして、(ロ)から(ハ)までの直線部分(図13に示すゼロ値部分)を挟んで、図13に示す記号(ハ)、(ニ)、(ホ)は、順番に、図17に示すように左コーナーの入口(ハ)に相当し、同左コーナーの出口でもありながら次の右コーナーの入口でもある(ニ)に相当し、同右コーナーの出口(ホ)に相当するため、この連続コーナーは、左コーナーから始まって右コーナーで終わる正S字カーブに該当することになる。
図11に戻って、続くステップS905では、ノード点積算旋回角を計算する処理が行われる。この処理は、ジャイロセンサ33により取得された旋回角をノード点間において積算することによって、例えば図13に示すように、記号(イ)のコーナー入口のノード点から−32度の旋回角を有するノード点まではのノード点積算旋回角(θ(j,i)=Σθk )は、「右上がりのハッチング範囲」として算出することができる。同様に、図13において、−32度の旋回角を有するノード点から−27度の旋回角を有するノード点までのノード点積算旋回角(θ(j,i)=Σθk )は、「左上がりのハッチング範囲」として算出することができる。
次のステップS907では、コーナー積算旋回角を計算する処理が行われる。この積算旋回角計算は、図17に示すように、旋回角の積算範囲をコーナーの入口から出口まで拡張したもので、基本的なアルゴリズムはステップS905による積算計算と同様である。図17の例では、例えば、最初の右コーナー(入口(イ)→出口(ロ))のコーナー積算旋回角はCθ(1) として、次の左コーナー(入口(ハ)→出口(ニ))のコーナー積算旋回角はCθ(2) として、最後の右コーナー(入口(ニ)→出口(ホ))のコーナー積算旋回角はCθ(3) として、それぞれ算出される。
続くステップS909では、コーナー最小曲率半径を計算する処理が行われる。この最小曲率半径計算は、図17の例では、例えば、最初の右コーナーの最小曲率半径はR(1) として、次の左コーナーの最小曲率半径はR(2) として、最後の右コーナーの最小曲率半径はR(3) として、それぞれ算出される。そして、ステップS911では、ステップS903と同様に、コーナー出口座標を特定する処理が行われる。特定のアルゴルズムは、ステップS903によるコーナー入口座標の特定と同様であるので、ここでは省略する。
ステップS913では、コーナー番号jがコーナー数jjに一致しているか否かの判断処理が行われる。即ち、データベース23の地図情報23aからコーナー数jjが取得できるので、このコーナー数jjぶんステップS903〜S911の各処理が行われたか否かを確認する処理がこの判断処理の目的である。したがって、コーナー番号jがコーナー数jjに一致していると判断できない場合には(S913でNo)、ステップS915によりコーナー番号jをインクリメント(j=j+1)してから、ステップS903に戻って再度、ステップS903〜S911の各処理が次のコーナーについて行われる。
ステップS913によりコーナー番号jがコーナー数jjに一致していると判断された場合には(S913でYes)、ステップS917により、コーナー入口座標(Eθ1(j),Nθ1(j))、コーナー出口座標(Eθ2(j),Nθ2(j)) 、ノード点積算旋回角θ(j,i)、コーナー積算旋回角はCθ(j) およびコーナー最小曲率半径R(j) の書込みがメモリ22の所定領域に対して行われる。これにより、本コーナー情報書込処理が終了するので、図4に示すデータベース修正処理に復帰して、ステップS311のDB修正データ書込処理に処理を移行する。
。
[図4:DB修正データ書込処理(S311)]
図4に戻るとステップS311により、DB修正データ書込処理が行われる。この処理は、特許請求の範囲に記載の「カーブ区間修正手段」に相当するもので、例えば、出力プログラム22gによってデータベース23に対する道路情報23bの書込処理が行われる。具体的には、図18に示すように、例えば、道路情報23bを構成していた修正前ノード点やその道路リンク(図18に示す破線による修正前データ)を、修正後のノード点およびそれを結ぶ道路リンクに置き換える処理を行う。なお、修正範囲は、修正区間始点▲(黒三角)から修正区間終点▲(黒三角)までで、図18に示す修正前DBは図12に示す道路リンクに該当する。このようなDB修正データ書込処理が終了すると、図4に示すデータベース修正処理が終了するので、図2に示す基本制御処理に復帰する。
[図2:基本制御処理(S111:経路案内処理)]
図2に戻って、ステップS109によるデータベース修正処理が終了すると、次のステップS111により経路案内処理が行われる。この処理は、経路案内プログラム22fにより行われるもので、通常のナビゲーション処理におけるものと同様、例えば、ステップS105による経路探索プログラム22cにより探索された経路に関する情報(例えば、右左折等の進行方向の説明や道路交通情報等)を、利用者に対してディスプレィ26に表示される画像や音源ユニット28により出力される合成音声等によって行う。このときに参照されるデータベース23の道路情報23bは、これまでに説明したステップS107やステップS109によって、ジャイロセンサ33等による実道路に即した道路情報に修正されているので、走行中の当該車両50の位置とディスプレィ26の画面表示上の現在位置とを正確にマップマッチングさせることができる。そのため、当該車両50の利用者(運転者等)に違和感を与え難い。また、データベース23の道路情報23bが、車両制御装置に利用されていた場合には、当該車両制御装置に対して、精度の高い道路情報23を提供することができるので、信頼性の高い舵取制御、駆動制御や制動制御等を実現可能にすることができる。
以上説明したように、本実施形態に係るナビゲーション装置20によると、データベース修正プログラム22e(走行データ記憶処理(S301))により、実際の道路90を走行して得られる車両50の位置および旋回角を含む走行データを取得し、データベース修正プログラム22e(DB修正範囲特定処理(S303))により、データベース23に記憶された道路情報23bに対応する走行データに基づいて、「車両の旋回角が右旋回から左旋回(道路形状が右カーブから左カーブ)に変化した第1A地点」より「車両の旋回角が左旋回から右旋回(道路形状が左カーブから右カーブ)に変化した第2A地点」まで、または「車両の旋回角が左旋回から右旋回(道路形状が左カーブから右カーブ)に変化した第1B地点」より「車両の旋回角が右旋回から左旋回(道路形状が右カーブから左カーブ)に変化した第2B地点」まで、を道路情報におけるカーブ区間として特定する。そして、データベース修正プログラム22e(修正用軌跡データ取得処理(S305)、軌跡データ貼付処理(S307)、コーナー情報書込処理(S309)、DB修正データ書込処理(S311))により、道路情報23bのうち特定されたカーブ区間の道路形状を、当該カーブ区間の走行データに基づいて修正する。これにより、左コーナー(左カーブ)の入口を第1A地点によって特定することができ、また当該左コーナー(左カーブ)の出口を第2A地点によって特定することができる。右コーナー(右カーブ)の入口を第1B地点によって特定することができ、また当該右コーナー(右カーブ)の出口を第2B地点によって特定することができる。したがって、地図上の道路あるいは実道路におけるコーナー(カーブ)の入り出口を正確に把握することができるので、実道路の形状と、データベース23に記憶された道路情報23bによる当該実道路の形状とを一致させることができる。
また、本実施形態に係るナビゲーション装置20によると、左コーナー(左カーブ)の入口を「車両の旋回角が右旋回から左旋回(道路形状が右カーブから左カーブ)に変化した第1A地点」によって特定することができ、また当該左コーナー(左カーブ)の出口を「車両の旋回角が左旋回から右旋回(道路形状が左カーブから右カーブ)に変化した中間A地点」によって特定することができ、さらにこの左コーナー(左カーブ)に連続する右コーナー(右カーブ)の出口を「車両の旋回角が右旋回から左旋回(道路形状が右カーブから左カーブ)に変化した第2A地点」によって特定することができる。また、右コーナー(右カーブ)の入口を「車両の旋回角が左旋回から右旋回(道路形状が左カーブから右カーブ)に変化した第1B地点」によって特定することができ、また当該右コーナー(右カーブ)の出口を「車両の旋回角が右旋回から左旋回(道路形状が右カーブから左カーブ)に変化した中間B地点」によって特定することができ、さらにこの右コーナー(右カーブ)に連続する左コーナー(左カーブ)の出口を「車両の旋回角が左旋回から右旋回(道路形状が左カーブから右カーブ)に変化した第2B地点」によって特定することができる。このため、これらのS字カーブ(正S字カーブ、逆S字カーブ)を、右コーナー(右カーブ)と左コーナー(左カーブ)とに分解しそれぞれの左右のコーナ(カーブ)を個々に特定した場合に比べ、長距離区間においてコーナー形状(カーブ形状)を特定できるため、実道路の形状と、当該形状に関しデータベース23に記憶された道路情報23bとを一致させる際に、両者間の整合誤差範囲(ズレが発生し得る範囲)を狭くすることができる。したがって、地図上の道路あるいは実道路におけるコーナー(カーブ)の入り出口を正確に把握することができるうえに、実道路の形状とデータベース23に記憶された道路情報23bによる当該実道路の形状とを、より高精度に一致させることができる。
以上の実施形態では、本発明をナビゲーション装置20のコンピュータを用いて処理した例を示した。上記実施形態の他に、例えば、経路探索や各種情報の提供などを車両とは別個の情報センタで行い、無線通信により各車両のナビゲーション装置へ送信する、いわゆる通信型ナビゲーションシステムであっても本発明は成立する。そのような場合には、情報センタは複数の車両から走行軌跡情報を収集(各車両のナビゲーション装置から走行軌跡データを無線通信により受信する)して道路データベースの修正が可能となるので、より効果的に道路データを修正することが可能になる。この場合、本発明の実施には『情報センタにあるコンピュータを、実際の道路を走行して得られる車両の位置および旋回角を含む走行軌跡情報を複数の車両から無線通信により取得する走行軌跡情報取得手段と、前記情報センタが有する道路情報記憶手段(データベース)に記憶された各道路の道路形状についての道路情報に対応する前記走行軌跡情報に基づいて、「車両の旋回角が右旋回から左旋回に変化した第1地点」より「車両の旋回角が左旋回から右旋回に変化した第2地点」まで、または「車両の旋回角が左旋回から右旋回に変化した第1地点」より「車両の旋回角が右旋回から左旋回に変化した第2地点」まで、を前記道路情報におけるカーブ区間として特定する道路カーブ特定手段と、前記道路情報のうち前記特定されたカーブ区間の道路形状を、当該カーブ区間の走行軌跡情報に基づいて修正するカーブ区間修正手段と、して機能させる、道路情報を修正するプログラム』を情報センタのコンピュータに実装することで実現することができる。また、当然に既存の車載のナビゲーション装置のコンピュータであっても、上記と同様なプログラムを実装することで、既存のナビゲーション装置においても本発明を実施させることが可能となる。
なお、車両の走行制御を行う車両制御部を有する車両制御装置は、GPSセンサ31、車速センサ32、ジャイロセンサ33、地磁気センサ34、CPU21等から出力される各種のデータに基づいて、車両の前方の道路形状を読み出し、それに対応した走行制御として、エンジン制御、変速機制御等を行って車両を走行させることができる。また当該車両制御装置においては、ナビゲーション装置20が設備されなくても、少なくともGPSセンサ31、車速センサ32、ジャイロセンサ33、地磁気センサ34、CPU21、メモリ22等からなるコンピュータを備えることによって、走行制御を行うことができ、本発明を適用することができる。