以下、本発明の道路情報の修正装置を車両搭載型のナビゲーション装置に適用した一実施形態を、図1〜図17に基づいて説明する。
まず、本実施形態に係るナビゲーション装置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等によりコンピュータとしての機能を実現可能に構成されており、ハードウェアは次のように構成されている。
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が格納されている。ここで「道路情報」とは、道路や河川等の地形、道路リンク(番号、リンク長、リンク旋回角等)、ノード(番号、座標等)等の各種情報のことをいう。また「道路リンク」とは、実際の道路を短い線分の集合としてモデル化する際の一つひとつの線分のことをいい、実際の道路を折れ線近似したときの個々の直線部分のことである。この道路リンクは、通常、その直線部分の両端の、実際の道路に対応する経度・緯度(東経北緯)で一義的に定められており、距離の長短に応じた大小の距離コストによる重み付け情報等が付加されている。なお。このデータベース23は、特許請求の範囲に記載の「道路情報記憶手段」に相当し得るものである。
入出力インタフェイス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〜図15に基づいて説明する。なお、この基本制御処理は、システムプログラム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〜図12に詳細に説明されているので、ここで図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による道路リンクの概念が図13に図示されているので、ここでは図6および図13を参照してDB修正範囲特定処理を説明する。なお「DB」はデータベースを意味する。また図13に示す×(バツ)はノードを表し、これらのノード同士を結ぶ直線は道路リンクを表す。
[図6:DB修正範囲特定処理]
図6に示すように、DB修正範囲特定処理では、まずステップS501によりリンク旋回角α(i) の添字iを0(ゼロ)に設定し初期化する処理が行われる。ここで、リンク旋回角α(i) はi番目の道路リンクのリンク旋回角を示す。また「リンク旋回角α」とは、道路情報23bを構成する道路リンクデータに基づく値で、隣接する2つの道路リンクがなす角により定義される。例えば、図13に示す道路リンクの概念例(実際の道路90を道路リンクの集合としてモデル化した道路情報23bの例)では、修正区間始点のノードから車両進行方向に延びる道路リンクに対して、この道路リンクに隣接する次の道路リンクは、車両進行方向右側に湾曲するカーブ(以下「右曲がりカーブ」という。)の方向に32度のリンク旋回角をもっていることが同図中の数値「−32」からわかる。なお、図13においては、車両進行方向左側に湾曲するカーブ(以下「左曲がりカーブ」という。)の方向のリンク旋回角には「+」(プラス)が、また車両進行方向に対して右曲がりカーブ方向のリンク旋回角には「−」(マイナス)が、それぞれ付されている。
続くステップS503では、リンク旋回角αの符号が反転するノードを判断する処理が行われる。即ち、α(i) ×α(i-1) を演算することにより、隣接する両道路リンクの符号が一致しない場合には、当該演算結果が負(マイナス)になることから、符号の不一致、つまり符号の反転を当該演算結果が0以下になるか否かによって判断を行っている(α(i) ×α(i-1) ≦0)。例えば、図13に示す道路リンクの概念例では、この符号の反転箇所に該当するノードのリンク旋回角を四角枠内に表示している(図13に示す+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の所定領域に記憶する。例えば、図13に示す道路リンクの概念例では、右旋回と表示されている旋回角−32度のj=1カーブα2(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の所定領域に記憶する。例えば、図13に示す道路リンクの概念例では、左旋回と表示されている旋回角+15度のj=2カーブα2(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の所定領域に記憶する。例えば、図13に示す道路リンクの概念例では、右旋回と表示されている旋回角−32度のj=1カーブα2(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の所定領域に記憶する。例えば、図13に示す道路リンクの概念例では、旋回角−10度のj=3カーブα2(3) がこれに相当する。
続くステップS539では、次のカーブに備えてnの値をインクリメント(n=n+1)する処理が行われ、さらにステップS541により(i-1) 番目のノードを第nカーブ入口のノードと特定して記憶する処理が行われる。具体的には、例えば、当該ノードのノード番号をメモリ22の所定領域に記憶する。例えば、図13に示す道路リンクの概念例では、左旋回と表示されている旋回角+15度のj=2カーブα2(2) がこれに相当する。ここで、カーブの入口、出口はカーブ全体を含むように特定する。即ち、カーブ入口では(i-1) を、またカーブ出口ではiを用いるので、連続カーブではカーブ出口のノードと、次のカーブ入口のノードが交差することとなる。
ステップS541による処理が完了すると、ステップS529に処理を移行して、再び第1カーブ入口からP(i) 番目のノードまでの距離が所定値以内であるか否かの判断処理が行われる。そして、ステップS529〜S541の各処理を繰り返して連続カーブを検出し、連続カーブ全体の長さが所定値以上となった時点で(S529でNo)、前述したように、複数カーブ対応のDB修正範囲特定処理を終了して図4に示すデータベース修正処理に復帰する。
このように図7に示す複数カーブ対応のDB修正範囲特定処理では、連続カーブを検出することができるので、例えば、右曲がりカーブと左曲がりカーブとの組合せによるS字カーブ等を、右曲がりカーブと左曲がりカーブとに分解しそれぞれの左右のカーブを個々に特定した場合に比べ、長距離区間においてカーブ形状を特定できる。そのため、実道路の形状と、データベース23の道路情報23bによる当該実道路の形状とを一致させる際に、両者間の整合誤差範囲(ズレが発生し得る範囲)を狭くすることができる。
[図4:データベース修正処理(S305:修正用軌跡データ取得処理)]
図4に戻ってステップS305では、修正用軌跡データ取得処理が行われる。この処理は、データベース23の道路情報23bを修正するのに必要となる実道路を走行する当該車両50の軌跡データを取得するもので、特許請求の範囲に記載の「走行軌跡情報取得手段」に相当する。この処理の詳細は図8に図示されており、またジャイロセンサ33等により取得される旋回角のサンプルデータ例が図14に、さらにこの軌跡データと道路情報23bによる道路リンクと対応関係が図15に、それぞれ図示されているので、ここでは図8、図14および図15を参照して修正用軌跡データ取得処理を説明する。また必要に応じて図13も参照する。
[図8:修正用軌跡データ取得処理]
図8に示すように、修正用軌跡データ取得処理では、まずステップS601によりノード点N(i) の添字iをNS-2に設定し、またジャイロセンサ33により取得される軌跡データ(旋回角データ)のデータ番号kを1に設定する初期化処理が行われる。この添字iに設定されるNS-2は、図13に示すように、□(白四角)によって囲まれた×(バツ)のノード点、即ち軌跡データの取得開始点を表す値で、データベース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は、図13に示すように、□(白四角)によって囲まれた×(バツ)のノード点、即ち軌跡データの取得終了点を表す値で、データベース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の旋回角データを、所定方向を中心(ゼロ)に左方向の旋回角を+(プラス)、右方向の旋回角を−(マイナス)にプロットすると、図14に示すように表すことができる。なお、図14に示す中黒二重丸((イ)〜(ホ))は、前述したカーブの入口や出口を表す。
また、この旋回角データに基づいて軌跡データを演算することによって、図15に示すように、当該軌跡データと道路情報23bによる道路リンクとの対応関係を得ることができる。この図15では、図14に示す軌跡データ取得開始点における通過軌跡データ■(黒四角)を図13に示す道路情報23bによる道路リンクの軌跡データ取得開始点□(白四角)に重ね合わせ、さらにその座標(X(1),Y(1) )をゼロ(X(1)=0、Y(1)=0)に設定することによって、この座標を原点に、各軌跡データ(旋回角データ)とその走行距離とに基づいてデータ番号kごとに順次プロットする。これにより、図15に示すように、貼付前軌跡データ(X(k),Y(k) (k=k1〜k2))による走行軌跡を、・(黒点)の線状を呈する集まりとして得ることができる。なお、図15に示す×(バツ)は、リンク長対応点を表し、またこのリンク長対応点を結ぶ直線は、軌跡リンク(長さG(1) 〜G(5) )を表す。また、図15に示す中黒二重丸((イ)〜(ホ))は、前述したカーブの入口、出口を表し、さらに○(白丸)は後方リンク長対応点を表す。
また、図13と図14との対応関係は次の通りである。図13に示す軌跡データ取得開始点□(白四角)に対応する旋回角データとして、図14に示す軌跡データ取得開始点の通過軌跡データ■(黒四角)がジャイロセンサ33によって取得されて保存される(S609)。同様に、図13に示す修正区間始点△(白三角)と図14に示す修正区間始点の通過軌跡データ▲(黒三角)とが、また図13に示す修正区間終点△(白三角)と図14に示す修正区間終点の通過軌跡データ▲(黒三角)とが、さらに図13に示す軌跡データ取得終了点□(白四角)と図14に示す軌跡データ取得終了点の通過軌跡データ■(黒四角)とが、それぞれ対応している。また、この修正区間始点から修正区間終点までの間の各ノード点についても、図13に示す×(バツ)と図14に示す●(黒丸)とがそれぞれ対応している。
[図4:データベース修正処理(S307:類似判断値算出処理)]
図4に戻ってステップS307では類似判断値算出処理が行われる。この処理は、「カーブ区間の道路情報から得られる道路形状」および「カーブ区間の走行軌跡情報から得られる走行軌跡形状」の類似の有無を判断するものである。即ち、ステップS303により特定された修正の対象となり得るカーブ区間の道路情報23bから得られる道路形状(道路リンクと同義)と、ステップS305により取得される当該カーブ区間の軌跡データによる走行軌跡形状と、の間において対応点間距離の平均値が最小となるもの(類似判断値のことで、以下「LM値」という。)を算出する処理を行うもので、次のステップS309とともに、特許請求の範囲に記載の「形状類似判断手段」に相当するものである。この類似判断値算出処理の詳細は、図9〜図11に図示されており、またこの処理の概念例が図16に図示されているので、ここでは図9〜図11、図16を参照して類似判断値算出処理を説明する。
[図9:類似判断値算出処理]
図9に示すように、類似判断値算出処理では、ステップS701により仮配置処理が行われる。この処理は、「カーブ区間の道路情報から得られる道路形状」および「カーブ区間の走行軌跡情報から得られる走行軌跡形状」を同一の仮想平面上に仮に配置する処理を行うもので、具体的には、ステップS303により特定されたカーブ区間の道路情報23bの座標平面(仮想平面)上の座標位置に、ステップS305により取得された軌跡データを概ね合わせて配置する処理を行う。この処理の詳細は図10に図示されているので、ここでは、図10を参照して仮配置処理を説明する。
[図10:仮配置処理]
図10に示すように、仮配置処理では、まずステップS801により、ノード点の東経座標ED(i) および北緯座標ND(i) の添字iをNS-2に設定し(i=NS-2)、リンク番号kkを初期値1に設定する(kk=1)、初期化処理がそれぞれ行われる。
続くステップS803では、始点座標仮配置処理が行われる。即ち、ステップS801により、kkに1、iにNS-2が設定されているので、この処理では、ジャイロセンサ33により取得される軌跡データ(旋回角データ)のデータ番号kに、データ番号1が設定されたkkを設定することによって、始点座標として、東経座標EG0(1) にED(NS-2)、北緯座標NG0(1) にND(NS-2)が、それぞれ設定される。
次のステップS805では、始点の東経座標EG0(k)、北緯座標NG0(k)の添字kをインクリメント(k=k+1)する処理が行われ、さらにステップS807により仮の軌跡座標計算処理が行われる。この座標計算は、図15を参照して説明したように、始点の座標(ED(NS-1)、ND(NS-1))を原点に、各軌跡データ(旋回角データ)とその走行距離とに基づいて、ステップS805によりインクリメントされるデータ番号kをごとに積算して算出される(ステップS809でNo)。そして、インクリメントされたデータ番号kがデータ番号k2に一致するとステップS809により判断されると(S809でYes)、データ番号k1〜k2について仮の軌跡座標計算が終了する。これにより、道路情報23bのノード位置に対応した走行軌跡上の地点(対応点)の座標が求められ、当該カーブ区間の軌跡データが道路情報23bに対して仮決めされる。なお、道路情報23bによるノードの座標値は(ED(k),ND(k))であり、また仮配置された走行軌跡上の対応点の座標値は(EG0(k),NG0(k))である。
ステップS809によりデータ番号kがデータ番号k2に一致したと判断されると(S809でYes)、仮の軌跡座標計算が終了するので、本仮配置処理を終了して図9に示す類似判断値算出処理に復帰する。なお、データ番号k2は、当該車両50がノード点N(NS+2)を通過したときにジャイロセンサ33によって取得された軌跡データ(旋回角データ)の番号である(図13参照)。
[図9:類似判断値算出処理(続き)]
図9に示すように、ステップS701の次は、ステップS703によるLM値算出処理が行われる。この処理は、図16に示すように、道路情報23bの道路形状(図16に示す破線)上に設定される複数のノード点(道路情報23bに含まれる、道路の位置を表すための座標点;この座標点の列により道路形状が表される)☆(白星),★(黒星)と、カーブ区間両端の★(黒星)間の当該複数の所定点に対応して設定される走行軌跡形状(図16に示す実線)上の対応する道路情報23b上の各ノード点に最も近い複数の対応点×(バツ)との距離(対応点間距離LL(K) )の平均値(又は二乗和平均値)を所定値以下にする処理を行うもので、具体的には、軌跡データによる走行軌跡を座標平面(仮想平面)上で、東経方向および北緯方向、更に回転方向に徐々にずらしていき、道路情報23bによる道路形状との差(対応点間距離LL(K) )の平均値(又は二乗和平均値)が所定値以下で最小となる配置を求める処理を行う。なお、LM値とは、対応点間距離の平均値が所定値以下で最小となるもののことで、類似判断値のことである。この処理の詳細は図11に図示されているので、ここでは図11を参照してLM値算出処理を説明する。
[図11:LM値算出処理]
図11に示すように、LM値算出処理では、まずステップS901により、LM値を初期値100に設定(LM=100)するとともに、シフト量ΔE、ΔNをそれぞれ初期値−100に設定(ΔE=−100、ΔN=−100)する、初期化処理が行われる。なお、ΔEは東経方向のシフト量、ΔNは北緯方向のシフト量で、後述するステップS915によりそれぞれ徐々に例えば1秒づつ加算される。
続くステップS903では、走行軌跡上の対応点をシフトさせる処理が行われる。例えば、図16に示すように、ステップS701により座標平面上に仮配置された走行軌跡上の対応点×(バツ)の座標値(EG0(k),NG0(k))に対して、シフト量ΔE、ΔNを加えて東経方向および北緯方向にそれぞれずらしたときの座標(東経座標EG(k)、北緯座標NG(k))を求める処理が行われる(EG(k)=EG0(k)+ΔE,NG(k)=NG0(k)+ΔN)。
次のステップS905では、対応点間距離を算出する処理が行われる。即ち、ステップS803により走行軌跡の配置をシフト量ΔE、ΔN分だけ東経方向および北緯方向にずらしたので、このずれた状態における走行軌跡形状と道路情報23bによる道路形状との両形状間の距離(対応点間距離LL(K) )を各対応点間において算出する処理を行う。具体的には、図16に示すように、ステップS701の仮配置処理により、道路情報23bのノード位置☆(白星),★(黒星)(ED(k),ND(k))が求められているので、このノード位置(ED(k),ND(k))とステップS903により求めたシフト後の走行軌跡座標×(バツ)(EG(k)、NG(k))との差から、各ノードごとの対応点間距離LL(K) を算出する(LL(k)=√{(EG(k)−ED(k))2 +(NG(k)−ND(k))2 },k1≦k≦k2)。なお、kはリンク番号で、その範囲は、ステップS305により取得された当該カーブ区間のデータ番号k1以上データ番号k2以下である。例えば、図16に示す例では、始点変曲点★(黒星)から終点変曲点★(黒星)までS字カーブ区間である。
続くステップS907では、ステップS905により算出された対応点間距離の平均値を算出する処理が行われる。即ち、道路情報23bによる道路形状とシフトされた走行軌跡形状との類似度合いを評価するため、ここではステップS905により求められた各ノードごとの対応点間距離LL(K) の総和ΣLL(k)を当該カーブ区間のノード数nで割って対応点間距離の平均値L_AVR を算出する処理を行う(L_AVR =ΣLL(k)/n ,k1≦k≦k2)。
ステップS909では、ステップS907により求められた対応点間距離の平均値L_AVR がLM値以下であるか否かを判断する処理が行われる(L_AVR ≦LM)。即ち、対応点間距離の平均値L_AVR がLM値以下である場合には(S909でYes)、ステップS903によりシフトされた走行軌跡形状の配置は、道路情報23bによる道路形状との類似度合いが高いと評価することができるため、次のステップS911で、LM値等を更新する。一方、対応点間距離の平均値L_AVR がLM値以下でない場合には(S909でNo)、ステップS903によりシフトされた走行軌跡形状の配置は、道路情報23bによる道路形状との類似度合いが高いとは評価することができない。そのため、LM値等を更新することなく、ステップS913によりシフト量ΔE、ΔNの両方についてステップS903〜S911の各処理が終了したか否かを判断する。
ステップS911は、シフトされた走行軌跡形状の配置が道路情報23bによる道路形状と類似度合いが高いと評価された場合に行われるもので、LM値の更新する処理(LM=L_AVR )およびこのときのシフト量ΔE、ΔNをそれぞれΔEM、ΔNMとして記憶する処理が行われる。
続くステップS913では、シフト量ΔE、ΔNがそれぞれ所定値(例えば+100)まで加算されているか否かを判断する処理が行われる。即ち、シフト量ΔE、ΔNは、ステップS915により、例えば、道路情報23bの最小分解値(例えば1秒相当)ずつ加算されていくので、この加算が当該所定値(+100)まで終わっているか否かを判断する。なお、ステップS915によるシフト量ΔE、ΔNの加算は、両者が総当たり的に行われるため、実際には、いわゆる入れ子の関係をもつ二重ループ内で前述したステップS903〜S911が処理されるように、シフト量ΔE、ΔNの加算処理が行われる。ところが、各処理の流れを説明する上で、また図面のフローチャート表現上で、記載が冗長となるので、図11ではこのような入れ子関係になる二重ループ処理の終了判断をステップS913でまとめて表現し、またシフト量ΔE、ΔNの加算処理もステップS915においてまとめて表現したので、この点に留意されたい。
このように図11に示すLM値算出処理が終了すると、道路情報23bによる道路形状との差(対応点間距離LL(K) )の平均値L_AVR がLM値以下で最小となる軌跡データによる走行軌跡の配置が得られるので、このときのLM値、ΔEMおよびΔNMからなるオフセット値を戻り値として、図9に示す類似判断値算出処理を終了して、図4に示すデータベース修正処理に戻る。
[図4:類似判断処理(S309)]
図4に戻るとステップS309により類似判断処理が行われる。この処理は、「カーブ区間の道路情報から得られる道路形状」と「カーブ区間の走行軌跡情報から得られる走行軌跡形状」とが類似しているか否かを判断するもので、前述したステップS307とともに、特許請求の範囲に記載の「形状類似判断手段」に相当し得るものである。具体的には、前述したステップS307により算出されたLM値(類似判断値)に基づいて当該LM値が所定値(例えば50)以上であるか否かを判断する。そして、LM値が所定値(例えば50)以上である場合には、両形状は類似していないと判断し(S309でYes)、続くステップS311に処理を移行する。
一方、LM値が所定値以上でない場合には、両形状は類似していないとは判断できないので(S309でNo)、本データベース修正処理を終了する。即ち、LM値が所定値未満である場合には、これらの両形状は類似している判断できるので、当該カーブ区間をあえて修正する必要はない。そのため、続くステップS311やステップS313による各処理を行うことなく、本データベース修正処理を終了する。このように本データベース修正処理では、これらの両形状があえて修正する必要のない程度に類似している場合には当該道路情報23bを修正しないので、不要な道路情報23bの修正によって修正前よりも却って当該カーブ区間の道路形状とその前後の区間の道路形状との繋ぎ目の滑らかさが損なわれるといった事態も防止することができる。
なお、両形状が類似していると判断(S309でNo)された区間は、データベース23に記憶された道路情報23bによる道路形状が実道路の形状とよく一致していることが確認されたことになる。ここで、形状がよく一致するということは、元々のデータベース上の道路データは、その東経・北緯の値も精度がよいということが言える(形状が走行軌跡とよく一致するが、東経・北緯で表現される絶対位置が間違っているということは想定しにくいからである)。従って、次に述べる軌跡データの貼付け処理(S311)において、修正対象となるカーブ区間を修正して貼り付ける際の基準となる、当該カーブ区間に隣接する道路の道路形状は、この実道路の形状とよく一致していることが確認された道路区間が利用されることになる。即ち、東経・北緯の値を含め実道路とよく一致していることが確認された道路の道路形状が、修正の際の基準となるので、修正の精度がその形状だけでなく、東経・北緯の値としてもより確実に確保される、という効果が得られる。
[図4:軌跡データ貼付処理(S311)]
ステップS309により両形状は類似していないと判断された場合には(S309でYes)、ステップS311により軌跡データ貼付処理が行われる。この処理では、ステップS309により両形状が類似していないと判断された場合、軌跡データによる走行軌跡形状の一端点とこの走行軌跡形状に隣接した道路情報23bによる道路形状の端点で一端点に接続されるべきものとが滑らかに接続されるように軌跡データを変換する。なお、この処理は、特許請求の範囲に記載の「走行軌跡情報変換手段」に相当し得るものである。この軌跡データ貼付処理の詳細は、図12に示されており、またこの処理の概念例が図17に図示されているので、ここでは図12および図17を参照して軌跡データ貼付処理を説明する。
図12に示すように、軌跡データ貼付処理では、ステップS1001により軌跡データの始点配置処理が行われる。この処理では、図17に示すような座標系において、修正対象となる当該カーブ区間(以下「修正区間」という。)の軌跡データによる走行軌跡の始点p(走行軌跡形状の一端点)における接線と、この走行軌跡の始点p側に隣接する道路形状の端点、即ち修正区間の始点Pにおける接線と、が同一方向を向くように、両点p、Pを重ねて配置する。つまり、走行軌跡の始点pにおける進行方向の方位と修正区間の始点Pにおける進行方向の方位とが同一となるように、修正区間の始点Pに走行軌跡の始点pを配置する。なお、図17においては、これらの始点p、Pは★(黒星)により表されている。これにより、変換前の走行軌跡は、図17に示す細実線のように配置される。このように軌跡データによる走行軌跡と道路情報23bによる道路形状とは、始点p、Pにおいて両形状の接線が同一となるように配置すると、それぞれの終点q、Qでは互いに一致しないことが多い。そこで、当該修正区間の走行軌跡とこれに近接した道路形状(当該修正区間の前後の道路形状)との繋ぎ目が滑らかになるように、次ステップS1003、S1005による軌跡データの変換処理を行う。
次のステップS1003では、軌跡データの変換に係る各パラメータを算出する処理が行われる。即ち、続くステップS1005において、次式(1) による角θcxを算出する処理が行われるため、この演算処理に必要な各パラメータを算出する。具体的には、走行軌跡の始点における接線(図17に示す走行軌跡始点接線)および走行軌跡の終点における接線(図17に示す走行軌跡終点接線)により形成される角θB、走行軌跡の始点側に隣接する道路形状の端点における接線および走行軌跡の終点側に隣接する道路形状の端点における接線により形成される角αB、走行軌跡の始点から走行軌跡上の任意点rまでの走行軌跡上の距離Lgx、当該修正区間における走行軌跡距離の全長LB、当該任意点の接線と走行軌跡始点接線とにより形成される角θxである。なお、任意点rは、図17において◎(二重丸)により表されている。
θcx = θx × (αB/θB) × (Lgx/LB) …(1)
続くステップS1005では、走行軌跡上の各対応点における方位差を補正する処理が行われる。例えば、上式(1) に基づいて、当該修正区間における走行軌跡距離の全長LBに対する任意点rまでの走行軌跡上の距離Lgxの割合(距離比(Lgx/LB))に応じて、任意点rにおける角θxに角度比(αB/θB)を乗じる処理を行う。この処理により任意点rにおける修正された新たな角度がθcxとなる。
これにより、始点p、Pから走行軌跡上の各対応点までの距離Lgxの比率(距離比(Lgx/LB))に応じて当該角度比(αB/θB)を分配し、その分配された角度をこれらの各対応点における方位として吸収するので、それぞれの方位の補正値に準じて走行軌跡が変化する。その結果、走行軌跡の終点q(走行軌跡形状の他端点)における接線と、この走行軌跡の終点q側に隣接する道路形状の端点、即ち修正区間の終点Qにおける接線と、が同一方向を向くように、両点q、Qを一致させることができる(図17に示す一点鎖線による矢印)。なお、図17においては、これらの終点p、Pは☆(白星)により表されている。つまり、走行軌跡の終点qにおける進行方向の方位と修正区間の終点Qにおける進行方向の方位とが同一となる。したがって、軌跡データによる走行軌跡とこれに隣接した道路情報23bによる道路形状との繋ぎ目を滑らかにすることができるので、データベース23に記憶された道路情報23bによる道路形状と実道路の形状とを一致させることができる。ステップS1005による処理が終わると、軌跡データの変換処理が終了するので、図4に示すデータベース修正処理に復帰する。なお、上述したステップS1001では、軌跡データの始点を配置したが、このステップS1001において軌跡データの終点を配置しても良い。この場合、その後のステップS1003、S1005において、当該終点q、Qを基準に、走行軌跡上の任意点までの距離Lgxや当該任意点の接線と成すθxやθcxを算出する。これにより、上述と同様の作用・効果を得ることができる。
[図4:DB修正データ書込処理(S313)]
図4に戻るとステップS313によりDB修正データ書込処理が行われる。この処理は、特許請求の範囲に記載の「カーブ区間修正手段」に相当するもので、例えば、出力プログラム22gによってデータベース23に対する道路情報23bの書込処理が行われる。具体的には、前述のステップS311により軌跡データが変換されているので、このように変換された当該軌跡データを当該カーブ区間(S字カーブ区間)の道路の新たな道路情報23bとして旧来の道路情報23bに上書きすることにより、データベース23に記憶された道路情報23bを修正する。このようなDB修正データ書込処理が終了すると、図4に示すデータベース修正処理が終了するので、図2に示す基本制御処理に復帰する。
[図2:基本制御処理(S111:経路案内処理)]
図2に戻って、ステップS109によるデータベース修正処理が終了すると、次のステップS111により経路案内処理が行われる。この処理は、経路案内プログラム22fにより行われるもので、通常のナビゲーション処理におけるものと同様、例えば、ステップS105による経路探索プログラム22cにより探索された経路に関する情報(例えば、右左折等の進行方向の説明や道路交通情報等)を、利用者に対してディスプレィ26に表示される画像や音源ユニット28により出力される合成音声等によって行う。このときに参照されるデータベース23の道路情報23bは、これまでに説明したステップS107やステップS109によって、ジャイロセンサ33等による実道路に即した道路情報に修正されているので、走行中の当該車両50の位置とディスプレィ26の画面表示上の現在位置とを正確にマップマッチングさせることができる。そのため、当該車両50の利用者(運転者等)に違和感を与え難い。また、データベース23の道路情報23bが、車両制御装置に利用されていた場合には、当該車両制御装置に対して、精度の高い道路情報23bを提供することができるので、信頼性の高い舵取制御、駆動制御や制動制御等を実現可能にすることができる。
以上説明したように、本実施形態に係るナビゲーション装置20によると、CPU21により実行されるデータベース修正プログラム22eによって次の各処理が行われる。即ち、DB修正範囲特定処理(S303)により、データベース23に記憶された道路情報23bから得られる道路形状がカーブしている区間を当該道路情報23bにおいてカーブ区間として特定し、修正用軌跡データ取得処理(S305)により、実際の道路90を走行して得られる軌跡データをカーブ区間について取得する。そして、類似判断値算出処理等(S307、S309)により、「カーブ区間の道路情報23bから得られる道路形状」および「カーブ区間の軌跡データから得られる走行軌跡形状」の類似の有無を判断し、両形状が類似していないと判断された場合(S309でYes)、当該走行軌跡形状の一端点p、qとこの走行軌跡形状に隣接した道路形状の端点P、Qで当該一端点p、qに接続されるべきものとが滑らかに接続されるように軌跡データを軌跡データ貼付処理(S311)により変換し、この変換された軌跡データに基づいてカーブ区間の道路情報23bをDB修正データ書込処理(S313)により修正する。これにより、カーブ区間の道路情報23bから得られる道路形状とカーブ区間の軌跡データから得られる走行軌跡形状とが類似していないと判断された場合に(S309でYes)、両形状の端点同士が滑らかに接続されるように、軌跡データを変換するので、当該走行軌跡形状とこれに隣接した道路形状との繋ぎ目を滑らかにすることができる。したがって、データベース23に記憶された道路情報23bによる道路形状と実道路の形状とを一致させることができる。
また、軌跡データ貼付処理(S311)では、走行軌跡終点接線(または走行軌跡始点接線)と走行軌跡の終点側に隣接する道路形状の接線(または走行軌跡の始点側に隣接する道路形状の接線)とが同一方向を向くように軌跡データを変換する(図17参照)。具体的には、走行軌跡に対応する道路区間に隣接する両側の道路区間の道路形状の端点の接線による角αBと走行軌跡形状の接線(走行軌跡始点接線と走行軌跡終点接線)による角θBとの角度比(αB/θB)が、走行軌跡形状に沿った距離Lgxに比例して走行軌跡形状上の任意点の接線(走行軌跡上任意点接線)とこの走行軌跡始点接線とによる角θxに加算するように軌跡データを変換する(S1003、S1005)。したがって、データベース23に記憶された道路情報23bによる道路形状と実道路の形状とを一致させることができる。
さらに、類似判断値算出処理(S307)では、カーブ区間の道路形状と当該カーブ区間の走行軌跡形状とを同一の座標系(仮想平面上)に配置し、この道路形状上の複数の所定点とこれらに対応した走行軌跡形状上の複数の対応点間距離LL(K) の平均値L_AVR が所定値LM以上である場合、両形状は類似していないと判断する。そのため、類似判断処理(S309)では、両形状があえて修正する必要のない程度に類似している場合には、両形状は類似していると判断され(S309でNo)、当該道路情報は修正されない。したがって、修正前よりも却って繋ぎ目の滑らかさが損なわれるといった事態も防止することができる。
なお、本発明は、技術的思想の創作として把握すると、次のように表現することもできる。即ち、(1) 本発明は、「道路の形状を一連の座標値で表す道路データを記憶する道路データ記憶手段と、前記道路データに基づいて道路がカーブしている区間(当該区間を「カーブ区間」という。)を抽出するカーブ区間抽出手段と、前記カーブ区間に対応した実際の道路を走行した際の走行軌跡を取得する走行軌跡取得手段と、前記走行軌跡の形状および前記カーブ区間の道路データの座標列による道路形状とが類似しているか否かを判断する形状類似判断手段と、両形状が類似していないと判断された場合に前記走行軌跡の両端と前記カーブ区間の道路データの両端とが滑らかに接続されるように前記道路データと同一の座標系において前記走行軌跡を変換する走行軌跡変換手段と、前記カーブ区間の道路データにおける道路の座標値を、前記変換された走行軌跡の座標値で置き換えるカーブ区間修正手段と、を備える道路データの修正装置」として表現することができる。
また、(2) 本発明は、「前記(1) において、走行軌跡変換手段は、前記カーブ区間の道路データの端点における接線と前記走行軌跡の端点における接線とが同一となるように、前記走行軌跡を変換する道路データの修正装置」として表現することができる。
さらに、(3) 本発明は、「前記(1) において、走行軌跡変換手段は、前記走行軌跡の両端点における接線が成す角と前記カーブ区間の道路データの両端における接線が成す角との角度比を求め、前記走行軌跡の一端点における接線と前記走行軌跡上の任意の点における接線との成す角に、前記角度比を前記走行軌跡の一端点から前記任意の点までの前記走行軌跡に沿った距離に比例させて乗じる変換を行う道路データの修正装置」として表現することができる。
さらにまた、(4) 本発明は、「前記(1) 〜(3) のいずれか1において、形状類似判断手段は、前記走行軌跡を前記道路データと同一座標系に、前記走行軌跡と前記カーブ区間の道路データの座標値との平均距離が所定値以上である場合に、これらの両形状は類似していないと判断する道路データの修正装置」として表現することができる。
これら(1) 〜(4) によると、カーブ区間抽出手段により道路データに基づいて道路がカーブ区間を抽出し、走行軌跡取得手段によりカーブ区間に対応した実際の道路を走行した際の走行軌跡を取得し、形状類似判断手段により、走行軌跡の形状およびカーブ区間の道路データの座標列による道路形状とが類似しているか否かを判断する。そして、両形状が類似していないと判断された場合に走行軌跡の両端とカーブ区間の道路データの両端とが滑らかに接続されるように走行軌跡変換手段により道路データと同一の座標系において走行軌跡を変換し、カーブ区間修正手段により、カーブ区間の道路データにおける道路の座標値を変換された走行軌跡の座標値で置き換える。例えば、走行軌跡変換手段として、カーブ区間の道路データの端点における接線と走行軌跡の端点における接線とが同一となるように走行軌跡を変換したり、また、走行軌跡の両端点における接線が成す角とカーブ区間の道路データの両端における接線が成す角との角度比を求め、走行軌跡の一端点における接線と走行軌跡上の任意の点における接線との成す角に、走行軌跡の一端点から任意の点までの走行軌跡に沿った距離に比例させて前記角度比を乗じる変換を行う。これにより、当該座標系では、走行軌跡の形状と道路形状とが類似していないと判断された場合には、当該カーブ区間の道路データが、走行軌跡の両端と当該カーブ区間の道路データの両端とが滑らかに接続されるように変換された走行軌跡の座標値に置き換えられる。したがって、当該カーブ区間の道路データの両端と当該走行軌跡との繋ぎ目を滑らかにすることができ、道路データ記憶手段に記憶された道路データによる道路形状と実道路の形状とを一致させることができる。
また、形状類似判断手段は、走行軌跡を道路データと同一座標系に、走行軌跡とカーブ区間の道路データの座標値との平均距離が所定値以上である場合に、これらの両形状は類似していないと判断するので、両形状があえて修正する必要のない程度に類似している場合には、当該平均距離が所定値未満となるため、両形状は類似していると判断され、当該道路データは修正されない。したがって、修正前よりも却って繋ぎ目の滑らかさが損なわれるといった事態も防止することができる。
なお、これら(1) 〜(4) において、上述したナビゲーション装置20等との対応は次の通りである。ナビゲーション装置20は「道路データの修正装置」、データベース23は「道路データ記憶手段」、道路情報23bは「道路データ」、CPU21は「カーブ区間抽出手段、走行軌跡取得手段、形状類似判断手段、走行軌跡変換手段、カーブ区間修正手段」、データベース修正プログラム22eは「カーブ区間抽出手段、走行軌跡取得手段、形状類似判断手段、走行軌跡変換手段、カーブ区間修正手段」、ステップS303は「カーブ区間特定手段」、ステップS305は「走行軌跡取得手段」、ステップS307、S309は「形状類似判断手段」、ステップS311は「走行軌跡変換手段」、ステップS313「カーブ区間修正手段」、にそれぞれ相当し得る。