(57)【特許請求の範囲】
【請求項１】
車両に搭載され、前記車両の現在位置を算出する現在位置算出装置であって、
道路を表す道路データを含む地図データを記憶する記憶手段と、
前記車両の進行方位を検出する進行方位検出手段と、
前記車両が有する車輪の回転数に、短期補正係数および長期補正係数に基づいて算出された距離係数を乗ずることにより前記車両の走行距離を算出する走行距離算出手段と、
前記車両の走行距離、前記車両の進行方位、および前記地図データに基づいて、前記車両が存在する前記道路および前記車両が存在する前記道路上の位置を算出する車両位置算出手段と、
前記道路データに含まれる前記道路の湾曲を示す情報、前記走行距離、前記進行方位、および前記地図データに基づいて、当該走行距離の誤差を求める誤差算出手段と、
前記誤差検出手段が前記誤差を検出した場合に、前記短期補正係数を生成する短期補正係数生成手段と、
前記誤差検出手段が前記誤差を検出した場合で、前記車両が第１の所定距離を走行した場合に、前記短期補正係数に前記長期補正係数を加算した値に前記第１の所定距離を乗じてから、前回算出した補正距離を加算することにより、前記補正距離を算出する補正距離算出手段と、
前記第１の所定距離よりも長い第２の所定距離を、前記車両が走行した場合に、前回算出した前記長期補正係数に、前記短期補正係数生成手段が生成した最新の前記短期補正係数を加算した仮補正係数を算出し、
前記補正距離を前記第２の所定距離で除することにより、前記長期補正係数を生成し、
前記仮補正係数から前記長期補正係数を差し引いた値を新たな前記短期補正係数とする長期補正係数生成手段とを備える
ことを特徴とする現在位置算出装置。
【請求項２】
請求項１記載の現在位置算出装置であって、
前記誤差算出手段は、
マップマッチングを行わずに、前記車両の進行方位および走行距離に基づいて算出した前記車両の位置を逐次記録して車両軌跡を算出し、前記道路データを参照して、前記道路の湾曲を示す情報から前記道路の湾曲点を算出し、前記算出した前記車両軌跡の湾曲点と前記道路の湾曲点との位置のずれに応じて前記誤差を算出することを特徴とする現在位置算出装置。
【請求項３】
請求項１または２に記載の現在位置算出装置であって、
前記短期補正係数生成手段は、
前記短期補正係数の生成時にその絶対値を適正と思われる値よりも大きく設定し、該設定後に前記第１の所定距離より短い第３の所定距離走行した時点で当該短期補正係数の設定値を前記適正と思われる値に変更することを特徴とする現在位置算出装置。
【請求項４】
請求項３記載の現在位置算出装置であって、
前記短期補正係数生成手段は、
前記第１の所定距離走行した後、さらに前記第１の所定距離走行するまでの間に、前記短期補正係数が新たに設定し直されない場合には、当該短期補正係数の絶対値を０に近づく方向へ低減することを特徴とする現在位置算出装置。
【請求項５】
車両に搭載され、前記車両の現在位置を算出する現在位置算出装置における現在位置算出方法であって、
前記現在位置算出装置は、
道路を表す道路データを含む地図データを記憶手段に記憶する記憶ステップと、
前記車両の進行方位を検出する進行方位検出ステップと、
前記車両が有する車輪の回転数に、短期補正係数および長期補正係数に基づいて算出された距離係数を乗ずることにより前記車両の走行距離を算出する走行距離算出ステップと、
前記車両の走行距離、前記車両の進行方位、および前記地図データに基づいて、前記車両が存在する前記道路および前記車両が存在する前記道路上の位置を算出する車両位置算出ステップと、
前記道路データに含まれる前記道路の湾曲を示す情報、前記走行距離、前記進行方位、および前記地図データに基づいて、当該走行距離の誤差を求める誤差算出ステップと、
前記誤差検出ステップにおいて前記誤差を検出した場合に、前記短期補正係数を生成する短期補正係数生成ステップと、
前記車両が第１の所定距離を走行した場合に、前記短期補正係数に前記長期補正係数を加算した値に前記第１の所定距離を乗じてから、前回算出した補正距離を加算することにより、前記補正距離を算出する補正距離算出ステップと、
前記第１の所定距離よりも長い第２の所定距離を、前記車両が走行した場合に、前回算出した前記長期補正係数に、前記短期補正係数生成ステップが生成した最新の前記短期補正係数を加算した仮補正係数を算出し、
前記補正距離を前記第２の補正距離で除することにより、前記長期補正係数を生成し、
前記仮補正係数から前記長期補正係数を差し引いた値を新たな前記短期補正係数とする長期補正係数生成ステップとを備える
ことを特徴とする現在位置算出方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、車両等の移動体に搭載され、進行距離や進行方位等を測定して、これらより当該車両の現在位置を算出する現在位置算出装置に関するものであり、特に、進行距離の測定誤差を補正する技術に関するものである。
【０００２】
【従来の技術】
従来、車両の現在位置は、ジャイロ等の方位センサにより測定した車両の進行方向と、車速センサまたは距離センサにより測定した車両の進行距離に基づいて算出することが行われている。
【０００３】
また、車両の進行距離は、一般的には、トランスミッションの出力軸、または、タイヤの回転数を計測して、その回転数に、タイヤ１回転あたりに車両が進む距離である距離係数を乗ずることにより求められている。
【０００４】
また、このように車両の進行方向と進行距離から求めた現在位置の誤差を補正するために、特公平６−１３９７２号公報記載の技術のように、道路データに整合するように、求められた車両の現在位置を修正する、いわゆる、マップマッチングの技術が知られている。このマップマッチングの技術によれば、位置算出の精度を高めることができる。
【０００５】
ところで、走行時には、タイヤの磨耗や、温度変化による膨張等により、タイヤの直径、すなわち、距離係数が時事刻々と変化する。このため、進行距離の算出において誤差が発生し、現在位置の算出が高精度に行えなくなる。たとえば、タイヤ１回転あたりの進行距離係数に、１％の誤差が存在すると、１００ｋｍ走行した場合、１ｋｍの誤差が発生してしまう。
【０００６】
このような進行距離の測定誤差は、通常の道路を走行している場合は、前述したマップマッチングの技術により、ある程度修正できる。しかし、高速道路等の道路を走行する際には、マップマッチングで利用できるカーブや交差点等の特徴が道路にないため、充分に誤差を修正することができなくなる。
【０００７】
さらに、一旦、測定した現在位置と真の現在位置との間に１ｋｍ程度の誤差が発生してしまうと、マップマッチングの技術によっては、正しい位置に補正することが困難になる。
【０００８】
そこで、進行距離の測定の誤差を無くすために、従来は、（１）交差点を曲がった時（始点）から、次の交差点を曲がる（終点）までの道路データと、計測した回転数より得られる進行距離とを比較することにより、タイヤ１回転あたりの距離係数を補正することが行われていた。また、（２）特公平６−２７６５２号公報に記載のように、２つのビーコンの間の地図上の距離と、走行して計測した距離を比較することにより、前述した距離係数を補正する技術も知られている。また、（３）特開平２−１０７９５８号公報記載のように、ＧＰＳ衛星よりの信号を用いて現在位置を算出するＧＰＳ受信装置を利用して車速を求め、それと検出されたタイヤの回転数とを比較して前述した距離係数を補正する技術も知られている。
【００１０】
また、前述した（２）の技術でも、道路が直線でないと正確な補正を行うことができないし、また、車両が利用できるビーコン設備を設けなければならないという問題点がある。
【００１１】
また、前述した（３）の技術では、車両の速度が低い場合に、正確な速度情報を得ることができない場合があり、また、車両の速度変化が大きい場合には処理に時間がかかり、算出した速度に誤差が生じる。このため、正確な補正を行えない場合があるという問題がある。また、車両に利用できるＧＰＳ受信装置やＧＰＳアンテナを設ける必要がある。また、車両がトンネルや高架下、建物の影等ＧＰＳ信号が受信できない走行状態の場合には、ＧＰＳ衛星を利用できないため補正を行うことができなくなるという問題もある。
【００１２】
そこで、本発明は、走行する道路の交差点等の多少や、車両の走行速度にかかわらず、また、格別の設備を必要することなしに適正に距離係数を補正し、高精度に車両位置を求めることができる現在位置算出装置を提供することを目的とする。
【００１３】
本発明の他の目的は、距離係数を補正するために長期補正係数および短期補正係数を採用する場合に、長期補正係数の設定時に距離係数の不連続な変化を防止することができる現在位置算出装置を提供することにある。
【００１４】
【課題を解決するための手段】
前記目的達成のために、本発明は、車両に搭載され、前記車両の現在位置を算出する現在位置算出装置であって、道路を表す道路データを含む地図データを記憶する記憶手段と、前記車両の進行方位を検出する進行方位検出手段と、前記車両が有する車輪の回転数に、短期補正係数および長期補正係数に基づいて算出された距離係数を乗ずることにより前記車両の走行距離を算出する走行距離算出手段と、前記車両の走行距離、前記車両の進行方位、および前記地図データに基づいて、前記車両が存在する前記道路および前記車両が存在する前記道路上の位置を算出する車両位置算出手段と、前記道路データに含まれる前記道路の湾曲を示す情報、前記走行距離、前記進行方位、および前記地図データに基づいて、当該走行距離の誤差を求める誤差算出手段と、前記誤差検出手段が前記誤差を検出した場合に、前記短期補正係数を生成する短期補正係数生成手段と、前記車両が第１の所定距離を走行した場合に、前記短期補正係数に前記長期補正係数を加算した値に前記第１の所定距離を乗じてから、前回算出した補正距離を加算することにより、前記補正距離を算出する補正距離算出手段と、前記第１の所定距離よりも長い第２の所定距離を、前記車両が走行した場合に、前回算出した前記長期補正係数に、前記短期補正係数生成手段が生成した最新の前記短期補正係数を加算した仮補正係数を算出し、
前記補正距離を前記第２の所定距離で除することにより、前記長期補正係数を生成し、
前記仮補正係数から前記長期補正係数を差し引いた値を新たな前記短期補正係数とする長期補正係数生成手段とを備えることを特徴とする現在位置算出装置を提供する。
【００１５】
本発明は、また、車両に搭載され、当該車両の現在位置を算出する現在位置算出装置において、車軸の回転速度に基づき車両の走行距離を求めるための距離係数を補正する方法であって、
道路の湾曲部において、算出された車両の走行距離と検出された車両の進行方位と道路地図を表す地図データに応じて、当該走行距離の誤差を求め、
該求められた誤差に基づいて、前記距離係数を短期的に補正するための短期補正係数を生成するとともに、前記距離係数の補正の実績に基づいて、前記距離係数を長期的に補正するための長期補正係数を生成し、
前記短期補正係数および前記長期補正係数により、車両の走行中、逐次、前記距離係数を補正するようにし、
前記長期補正係数の新たな値の設定時には、前記距離係数の値が変化しないように前記短期補正係数を修正する
ことを特徴とする現在位置算出装置の距離係数補正方法を提供する。
【００１６】
【作用】
本発明の現在位置算出装置では、道路の湾曲部を利用して進行距離の誤差を求め、これに応じて距離係数を補正するようにしたので、走行する道路に交差点等の特徴が無くても、また、ＧＰＳ等に格別の設備がなくとも、距離係数を補正することができる。また、このような距離係数の補正の方法によれば、車両の走行速度に直接依存することもない。
【００１７】
さらに、距離係数を補正するために、長期補正係数と短期補正係数を採用したので、より高精度の現在位置算出が行える。また、長期補正係数の新たな値の決定時に、前記距離係数の値が変化しないように短期補正係数を修正するようにしたので、長期補正係数の不連続な変化による距離係数の不連続な変化を防止することができ、その結果、表示画面上での現在位置の進行速度の不自然な変化を防止することができる。
【００１８】
【実施例】
以下、本発明に係る現在位置算出装置の一実施例について説明する。
【００１９】
まず図１により、本実施例に係る現在位置算出装置の構成について説明する。
【００２０】
本実施例に係る現在位置算出装置は、車両のヨーレイトを検出することで進行方位変化を検出する角速度センサ２０１と、地磁気を検出することで車両の進行方位を検出する方位センサ２０２と、車両のトランスミッションの出力軸の回転速度に比例した時間間隔でパルスを出力する車速センサ２０３を備えている。
【００２１】
また、現在位置周辺の地図や現在位置を示すマーク等を表示するディスプレイ２０７と、ディスプレイ２０７に表示する地図の縮尺切り替えの指令をユーザに（運転者）から受け付けるスイッチ２０４と、デジタル地図データを記憶しておくＣＤ−ＲＯＭ２０５と、そのＣＤ−ＲＯＭ２０５から地図データを読みだすためのドライバ２０６とを備えている。また、以上に示した各周辺装置の動作の制御を行うコントローラ２０８を備えている。
【００２２】
次に、コントローラ２０８は、角速度センサ２０１の信号（アナログ）をデジタル信号に変換するＡ／Ｄ変換器２０９と、方位センサ２０２の信号（アナログ）をデジタル信号に変換するＡ／Ｄ変換器２１０と、車速センサ２０３から出力されるパルス数を０．１秒毎にカウントするカウンタ２１６と、スイッチ２０４の押圧の有無を入力するパラレルＩ／Ｏ２１１と、ＣＤ−ＲＯＭ２０５から読みだされた地図データを転送するＤＭＡ（Direct Memory Access）コントローラ２１２と、ディスプレイ２０７に地図画像を表示する表示プロセッサ２１３とを有する。
【００２３】
また、コントローラ２０８は、さらに、マイクロプロセッサ２１４と、メモリ２１５とを有する。マイクロプロセッサ２１４は、Ａ／Ｄ変換器２０９を介して得た角速度センサ２０１の信号、Ａ／Ｄ変換器２１０を介して得た方位センサ２０２の信号、カウンタ２１６がカウントした車速センサ２０３の出力パルス数、パラレルＩ／Ｏ２１１を介して入力するスイッチ２０４の押圧の有無、ＤＭＡコントローラ２１２を介して得たＣＤ−ＲＯＭ２０５からの地図データを受け入れて、それら信号に基づいて処理を行い、車両の現在位置を算出して、それを表示プロセッサ２１３を介してディスプレイ２０７に表示させる。この車両位置の表示は、図２に示すように、すでにディスプレイ２０７に表示している地図上に矢印マーク等を重畳して表示することにより行う。これにより、ユーザは、地図上で車両の現在位置を知ることができる。メモリ２１５は、このような動作を実現するための処理（後述）の内容を規定するプログラムや、後述する各種テーブル等を格納したＲＯＭと、マイクロプロセッサ２１４が処理を行う場合にワークエリアとして使用するＲＡＭとを含んでいる。
【００２４】
以下、本実施例に係る現在位置算出装置の動作について説明する。
【００２５】
まず、車両の進行方位及び進行距離を算出する処理、算出された進行方位及び距離から車両の現在位置を決定する処理、得られた車両位置および方位を表示する処理の三つの処理について説明する。
【００２６】
図３に、車両の進行方位及び進行距離を算出する処理の流れを説明する。
【００２７】
この処理は、一定周期、たとえば１００ｍＳ毎に起動され実行されるマイクロプロセッサ２１４のルーチンである。
【００２８】
このルーチンでは、最初、Ａ／Ｄ変換器２０９から角速度センサ２０１の出力値を読み込む（ステップ４０１）。この角速度センサ２０１は、その出力値に方位変化が出力されるので、車両の進行方向の相対的な値しか検出できない。このため、次に、Ａ／Ｄ変換器２１０から方位センサ２０２の出力値を読み込み（ステップ４０２）、この方位センサ２０２の出力値により算出された絶対方位と角速度センサ２０１から出力される方位変化（角速度出力）とを用いて、車両の推定方位を決定する（ステップ４０３）。
【００２９】
この方位の決定は、たとえば、長い時間、車速が低い時には、角速度センサの誤差が大きいので、一定時間以上車速が低い場合には、方位センサ方位のみを利用するという方法により行う。
【００３０】
次に、車速センサ２０３の出力するパルス数を、０．１秒毎に、カウンタ２１６で計数して、その計数値を読み込む（ステップ４０４）。この読み込んだ値に、距離係数Ｒを乗算することで、０．１秒間に進んだ距離を求める（ステップ４０５）。この距離係数Ｒの求め方については後述する。
【００３１】
次に、このようにして求められた０．１秒間あたりの進行距離値を、前回得られた値に積算して、車両の進行距離が２０ｍとなったかどうかを調べ（ステップ４０６）、２０ｍに満たない場合（ステップ４０６でＮｏ）、今回の処理を終了して、新たな処理を開始する。
【００３２】
進行距離算出処理の結果、積算された進行距離が一定距離、例えば２０ｍとなった場合（ステップ４０６でＹｅｓ）、その時点での進行方向と進行距離（２０ｍ）とを出力する（ステップ４０７）。ステップ４０７では、さらに、積算距離を初期化して、新たに進行距離の積算を開始する。
【００３３】
次に、算出された進行方位および進行距離に基づいて、車両の現在位置を求める処理について説明する。
【００３４】
図４に、この処理の流れを示す。
【００３５】
本処理は、図３からの進行方位および進行距離が出力されるのを受けて起動され、実行されるマイクロプロセッサ２１４のルーチンである。すなわち、本処理は、車両が２０ｍ進む毎に起動される。
【００３６】
さて、この処理では、まず、ステップ４０７で出力された進行方位と進行距離とを読み込む（ステップ５０１）。次に、それらの値に基づいて、車両の移動量を緯度経度方向、別々に、それぞれ求める。さらに、これらの各方向における移動量を、前回の処理で求められた車両の現在位置（Ｂ）に加算して、現在位置（Ａ）を求める（ステップ５０２）。
【００３７】
もし、装置の始動直後など、前回求められた位置がない場合には、別途設定された位置を前回求められた位置として用いて現在位置（Ａ）を求める。
【００３８】
次に、求めた現在位置（Ａ）の周辺の地図を、ＣＤ−ＲＯＭ２０５から、ドライバ２０６およびＤＭＡコントローラ２１３を介して、読み出し、現在位置（Ａ）を中心とする予め設定された距離Ｄ内にある道路データ（線分）を抜き出す（ステップ５０３）。
【００３９】
なお、道路データとしては、たとえば、図６に示すように、２点間を結ぶ複数の線分８１〜８５で近似し、それら線分を、その始点と終点の座標によって表したもの等を用いることができる。たとえば、線分８３は、その始点（ｘ３、ｙ３）と終点（ｘ４、ｙ４）によって表現するようにする。
【００４０】
次に、ステップ５０３で抜き出された線分の中から、その線分の方位が、求められている進行方向と、所定値以内にある線分だけを抜き出す（ステップ５０４）。さらに、抜き出されたすべての線分に対し、現在位置（Ａ）から垂線をおろし、その垂線の長さを求める（ステップ５０５）。
【００４１】
次に、それら垂線の長さを用いて、ステップ５０４で抜き出されたすべての線分に対して、以下に定義されるエラーコスト値を算出する。
【００４２】
エラーコスト＝α×｜進行方位−線分方位｜＋β×｜垂線の長さ｜
ここで、α、βは、重み係数である。これら係数の値は、現在位置の存する道路を選択する上で、進行方位と道路の方位のずれと現在位置と道路の距離のずれのどちらを重視するかによって変化させてよい。たとえば、進行方位と方位が近い道路を重視する場合は、αを大きくするようにする。
【００４３】
そして、各線分のエラーコストが算出されたならば、エラーコストが算出された線分のうち、エラーコスト値が最も小さい線分を選び（ステップ５０６）、その選択された線分と垂線との交差する点（線分の垂線のあし）を、修正された現在位置（Ｂ）とする（ステップ５０７）。
【００４４】
また、前述したステップ５０３では、現在位置（Ａ）を中心とする予め設定された距離Ｄ内にある道路データ（線分）を抜き出したが、この距離Ｄは、前回行ったステップ５０６で選択した道路のエラーコストの値に基づいて決定する値でもよい。
【００４５】
ここで、エラーコストに基づいて、検索範囲を求める理由は、エラーコストのが大きい場合は、前回求めた現在位置（Ｂ）の精度に対する信憑性が低いと考えられるので、より広い範囲を検索して道路を探す方が、正しい現在位置を求める上で適当であるからである。
【００４６】
次に、得られた車両位置および方位を表示する処理について説明する。
【００４７】
図５に、この処理の流れを示す。
【００４８】
本処理は、１秒毎に起動され実行されるマイクロプロセッサ２１４のルーチンである。
【００４９】
最初、スイッチ２０４が押圧により地図の縮尺の変更を指示されているかを、パラレルＩ／Ｏ２１１の内容を見て判断する（ステップ６０１）。もし、押されていれば（ステップ６０１でＹｅｓ）、それに対応して、所定の縮尺フラグを設定する（ステップ６０２）。
【００５０】
次に、図４の処理で求められた現在位置（Ｂ）を読み出し（ステップ６０３）、ステップ６０２で切り替えられた縮尺フラグの内容に応じた縮尺の地図をディスプレイ２０７に、例えば、図２に示すような状態で表示する（ステップ６０４）。
【００５１】
そして、地図に重畳して、車両の現在位置（Ｂ）と車両の進行方位を、たとえば、先に示した図２のように、矢印記号“↑”を用いて表示する（ステップ６０５）。そして最後に、これらに重畳して、北を示す北マークと、縮尺に対応した距離マークとを、図２のように表示する（ステップ６０６）。
【００５２】
なお、本実施例においては、上記のように矢印記号を用いて車両位置および方向を示したが、車両位置および方向の表示形態は、位置および進行方向が、表示状態が明確に示されるものであれば、その形態は任意でよい。また、北マーク等も同様である。
【００５３】
さて、前述したように車両の走行距離は、車速センサ２０３の出力するパルス数に距離係数Ｒを乗じて求める。しかし、タイヤの摩耗等によりタイヤ１回転あたりの車両の進行距離は変化するので、距離係数Ｒを固定値とすると、走行に伴い距離が正確に求まらなくなってくる。そこで本実施例では、逐次、図４の処理で得られた現在位置（Ｂ）（ステップ５０８）と、ＣＤ−ＲＯＭ２０５からドライバ２０６を介して読みだした地図データから求まる道路方位と、図３の処理で得られた車両方位（ステップ４０３）とを比較することにより、現在位置（Ｂ）が、実際の位置に対して進んでいるか遅れているかを判断し、距離係数Ｒを動的に修正する。
【００５４】
このような距離係数Ｒの修正は、たとえば、次のようにして行うことができる。すなわち、短期的に距離係数Ｒを補正するための補正係数Ｒｓｈと長期的に距離係数Ｒを補正するための補正係数Ｒａｃｃを導入する。そして、距離係数Ｒ＝Ｒ０×（１＋Ｒａｃｃ＋Ｒｓｈ）に従い、動的に距離係数Ｒを修正する。なお、ここでＲ０は、予め定めた距離係数Ｒの初期値を示している。長期的な補正係数Ｒａｃｃは、本実施例では１０ｋｍ走行する毎にそれまでの補正量の実績値に応じて距離係数Ｒを補正するものである。一方、短期的な補正係数Ｒｓｈは１０ｋｍの中で逐次生じた走行距離の誤差を道路のカーブ（湾曲部）等を利用して検出し、これに基づいて距離係数Ｒをきめ細かに補正しようとするものである。
【００５５】
マイクロプロセッサ２１４が、補正係数Ｒｓｈ、補正係数Ｒａｃｃを、後述する処理により逐次変更する。以下、本実施例の処理の具体的な手順について説明する。
【００５６】
先ず、本装置が起動されると、初期化処理において、以下に説明する処理で用いる各種変数やフラグ、すなわち、距離誤差量ｄ、短距離距離補正係数Ｒｓｈ、短距離距離補正実施距離Ｌｓｈ、３００ｍ間短距離距離補正実施距離ｌ、短距離距離補正実施フラグｆｌａｇ、補正距離Ｌｃｏｍ、累積距離補正係数Ｒａｃｃ、累積距離補正実施距離Ｌａｃｃをすべて０に初期化する。
【００５７】
図８に示した処理は、図４の処理によって現在位置（Ｂ）が出力されるのを受けて起動され実行されるマイクロプロセッサ２１４のルーチンである。すなわち、本処理は、車両が２０ｍ進む毎に起動される。この処理では、図４の処理で先に読み込んだ各種センサデータおよび地図データを用いる。勿論、この時点で再度読み込みを行ってもよい。
【００５８】
図８において、まず、累積距離補正実施距離Ｌａｃｃを更新する（７０１）。この距離Ｌａｃｃは、車両の１０ｋｍまでの走行距離を計数するための変数であり、次のステップ７０２でこの距離Ｌａｃｃが１０ｋｍ以上となったか否かを判定する（ステップ７０２）。１０ｋｍ以上でなければステップ７０４へ移行し、１０ｋｍ以上であれば、ステップ７０３において長期的に距離係数Ｒを補正するための累積距離補正係数Ｒａｃｃの算出処理（後述する図９の処理）を行い、この処理の中でＬａｃｃは０にリセットされる。後述するが、ステップ７０３では、Ｒａｃｃの更新を行うとともに、このＲａｃｃ更新に伴う短距離距離補正係数Ｒｓｈの修正を行う。次に、短距離距離補正実施フラグｆｌａｇが０か否かを調べ（ステップ７０４）、０でなければステップ７０７へ飛び、０であれば距離誤差量ｄを算出する（ステップ７０５）。後の説明で分かるように、このｆｌａｇは、Ｒｓｈの算出後３００ｍ走行するまでの間”１”となる。距離誤差量ｄは、距離定数Ｒの適正な値からのずれに伴って生じる走行距離の誤差に相当する量であり、この算出方法については後述する。ついで、距離Ｌｓｈの更新を行う（ステップ７０６）。距離Ｌｓｈは、後述する図１１のステップ９０８でリセットされ、Ｒｓｈの算出２の後の走行距離を示し、後続のステップ７０９において２ｋｍ以上に達したか否かが調べられる。
【００５９】
ステップ７０７で、距離誤差量ｄをチェックする。ｄが０ならばステップ７０９へジャンプし、０でなければ図１１で後述するＲｓｈ算出処理を行う（ステップ７０８）。
【００６０】
ステップ７０９では、ステップ７０６で更新された距離Ｌｓｈが２ｋｍ以上か否かがチェックされ、２ｋｍ未満であればこの処理を終了する。２ｋｍ以上であれば、ステップ７１０で補正距離Ｌｃｏｍを次式で算出する。Ｌｃｏｍは、１０ｋｍ毎に、その間の補正係数Ｒａｃｃおよび補正係数Ｒｓｈが走行距離に寄与した補正距離を累積したものであり、Ｒａｃｃ算出処理（図１０で後述）において補正係数Ｒａｃｃの算出に用いられる。
【００６１】
Ｌｃｏｍ＝（Ｒａｃｃ＋Ｒｓｈ）×Ｌｓｈ＋Ｌｃｏｍ
この式の右辺のＬｃｏｍはＬｃｏｍの旧値である。したがって、左辺のＬｃｏｍは、距離Ｌｓｈに補正係数Ｒａｃｃ、Ｒｓｈの和を乗じて得られる新たな補正距離をＬｃｏｍの旧値に加算したものである。このステップ７１０の処理は距離Ｌｓｈが２ｋｍに達する毎に行われる。ついで補正係数Ｒｓｈの削減処理を行う（ステップ７１１）。この削減処理は、補正係数Ｒｓｈの値を０に近づける方向へ低減させるものであり、その具体的な方法については後述する。削減処理を行う理由は次のようなことによる。すなわち、例えば高速道路のように長い距離にわたり直線的な道路が継続する場合において、ステップ７０５での距離誤差量ｄが長期間にわたり算出されない（ｄ＝０）場合がある。本実施例では、Ｒｓｈは短期的に更新され続けて初めて信頼できるものと考えており、一旦算出された補正係数Ｒｓｈが更新される機会がない場合には、そのＲｓｈがある期間で正しい値であったとしても、続く期間において必ずしも正しいとは言えない。したがって、そのようなＲｓｈの値を長期間使用し続けるような事態を回避するために本削減処理を行う。最後に、ステップ７１２で距離Ｌｓｈを０にリセットしてこの処理を終了する。
【００６２】
図９に、ステップ７０３のＲａｃｃ算出処理の手順を示す。まず、その時点の補正係数ＲａｃｃとＲｓｈの和を変数Ｒｐに代入する（ステップ８０１）。次に、次式により、補正係数Ｒａｃｃを算出する（ステップ８０２）。
【００６３】
Ｒａｃｃ＝｛（１０ｋｍ＋Ｌｃｏｍ）／（１０ｋｍ）｝−１
次に、このＲａｃｃの値を先の変数Ｒｐの値から減算した値を新たな補正係数Ｒｓｈとする（ステップ８０３）。このステップ８０３の処理は、２つの補正係数Ｒａｃｃ、Ｒｓｈの和すなわちＲｐ（ひいては距離係数Ｒ）がＲａｃｃの更新に伴って不連続に変化することのないようにするためのものである。Ｒａｃｃの変更に伴い、距離係数Ｒが不連続に変化すると、車両が一定速度で走行しているにも拘わらず、表示画面上での走行速度が突然変化するという事態が生じる。ステップ８０３の処理は、この問題を解決する。なお、このとき設定するＲｓｈは無意味なものであるが、いずれ短期的に修正されるので問題ない。Ｌｓｈの変更に伴っても距離係数Ｒの不連続変化が生じうるが、後述するようにＲｓｈには上限および下限を設けており、その変化は比較的小さくて済む。また、図１１のステップ９０５（後述）における基準距離３００ｍをさらに長くすれば（例えば５００ｍ）、Ｒｓｈの変化量をさらに低減することができる。
【００６４】
ステップ８０４で、距離Ｌａｃｃ、Ｌｓｈ、Ｌｃｏｍを０にリセットして本処理を終了する。
【００６５】
次に、距離誤差量ｄの具体的な算出方法について説明する。
【００６６】
本実施例において距離誤差量ｄは、道路のカーブの個所の車両の実際の曲がり方に応じて決定する。
【００６７】
たとえば、図４のステップ５０８で出力された現在位置（Ｂ）が、図１０の道路Ａを進行するものであったとする。一方、たとえば、逐次出力される現在位置（Ｂ）のうちの、走行上カーブ開始点ｏより所定距離だけ前のａ点を基準に、車両の進行方位の走行距離から求めた車両の現在位置の軌跡（ａ点以降、マップマッチングを適用せずに逐次の方位および移動量を積算して得られる軌跡）が、図中に破線で示したようにｏ点をオーバした地点から曲がり始めた軌跡であったとする。
【００６８】
この場合には、距離係数Ｒが真の値より大きかったものと推定することができる。なぜならば、車両がカーブｏに達したと距離係数Ｒを用いて推定された時点では、車両は曲がり始めていないので実際には車両はカーブに達していないと考えられるからである。また、距離係数Ｒが真の値より大きい度合いは、車両が実際に曲がり始めた地点とカーブ開始点ｏとの距離を表す図中の距離ｄより推定することができる。
【００６９】
また、逆に、車両の進行方位の走行距離から求めた車両の現在位置の軌跡が、点ｏに到る前に曲がり始めた軌跡である場合には、距離係数Ｒが真の値より小さかったものと推定することができる。なぜならば、車両がカーブｏに達したと距離係数Ｒを用いて推定される前に、車両は曲がり始めているので実際には車両は既にカーブｏに達していると考えられるからである。また、この場合も、距離係数Ｒが真の値より小さい度合いは、車両が実際に曲がり始めた地点とカーブｏとの距離を表す図中の距離ｄより推定することができる。
【００７０】
したがって、図中のｄに基づいて距離係数の真値よりのずれと、その度合いを判定し、これを打ち消すように補正係数Ｒｓｈを定めることができる。Ｒｓｈの設定方法については、後述する。
【００７１】
距離誤差量ｄの他の求め方として、車両方位と道路の方位差から、車両がカーブｏに達したと距離係数Ｒを用いて推定されるより前に、車両が曲がり始めたか、車両がカーブｏに達したと距離係数Ｒを用いて推定された時点より後に車両が曲がり始めたかを判定し、カーブの曲がりの方向と、車両方位と道路の方位差の積分値より、距離係数Ｒが真の値よりずれている度合いを求めることもできる。
【００７２】
図１１により、ステップ７０８のＲｓｈ算出処理の具体的な手順の例を示す。
【００７３】
まず、ｆｌａｇが０か否かを調べる（ステップ９０１）。０であれば、距離誤差量ｄに基づく補正係数Ｒｓｈを算出するためのルート（ステップ９０２〜９０４）へ進み、０でなければステップ９０５へ進む。
【００７４】
ステップ９０２では、先のステップ７１０と同様に補正距離Ｌｃｏｍの算出を行う。次のステップ９０３において、距離誤差量ｄに基づく補正係数Ｒｓｈの算出１を行う。本実施例では、このステップ９０３のＲｓｈの算出時にはその絶対値を、適正と思われる値よりも過大な値とする。このようにＲｓｈの値を意図的に過大な値とするのは、次のような理由による。すなわち、距離誤差ｄが確認された時点では既に現在位置のずれが蓄積した状態にあり、単にＲｓｈを適正な値に補正しただけでは現在位置のずれはそのまま保存されることになる。本実施例では、Ｌｓｈの補正を行ってから所定距離（本実施例では３００ｍ）の間は補正係数Ｒｓｈ（絶対値）を適当と思われる値より大きくすることにより距離係数Ｒをその真値より意図的にずらして、それまでに蓄積された現在位置（Ｂ）のずれを、この３００ｍを進む間に少しずつ修正し、その後、補正係数Ｒｓｈを小さくして距離係数Ｒを正しいと思われる値に設定し直す。このように３００ｍかけて現在位置のずれをすこしずつ補正することにより、現在位置の表示位置をずれたまま維持したり、新たな位置にジャンプさせたりすることなく、スムーズに移動させることができる。具体的なＲｓｈの符号および大きさについては図１２により後述する。
【００７５】
ついでステップ９０４においてｆｌａｇを１に設定してこの処理を終了する。
【００７６】
先のステップ９０１において、ｆｌａｇが０でなければ（すなわち、ｆｌａｇが１であれば）、ステップ９０５でｆｌａｇを１に設定した後の走行距離である距離ｌが３００ｍ以下か否かをチェックする。３００ｍ以下であれば、ステップ９０６で距離ｌを更新してこの処理を終了する。
【００７７】
ステップ９０５において距離ｌが３００を越えた場合、ステップ９０７において、距離ｌについて前述と同様に距離Ｌｃｏｍが更新される。ついで各種変数ｄ，Ｌｓｈ，ｌ，ｆｌａｇがすべて０にリセットされる（ステップ９０８）。その後、Ｒｓｈの算出２の処理が行われる（ステップ９０９）。この処理は、前述したように、ステップ９０３において算出した過大なＲｓｈを、適正と思われる値に設定し直す作業に相当する。このステップにおける具体的なＲｓｈの算出法については、図１３で後述する。
【００７８】
図１１の処理において、距離誤差量ｄに基づくＲｓｈの変更後、距離ｌが３００ｍ以下の間は、ｆｌａｇが１のままであり、前述のように図８の処理においてステップ７０５、７０６が迂回されるようにしている。これは、距離係数Ｒを適正と思われる値から意図的にずらして走行している間は、新たなＲｓｈを求める動作をしないようにするためである。
【００７９】
図１２に示すように、Ｒｓｈの算出１におけるＲｓｈの変更量Ｒｓｈ３００の符号は、ｄが正ならば負とし、ｄが負ならば正とする。これにより、前述のように距離係数Ｒを適正な値の方向へ補正することができる。ただし、ｄの値は、図９に示したように道路のカ−ブを外回りしたとき（オ−バ−シュ−トしたとき）に正とし、道路のカ−ブを内回りしたとき（アンダ−シュ−トしたとき）に負とする。ｄＲｓｈの大きさは、ｄの絶対値に正の定数ｋを掛けた値とする。このｋの値は、補正後の距離係数Ｒが適正な値と思われる値を通り越してしまう程度に、意図的に過大な値とする。ただし、極端に大きな値は誤動作によるものと判断して、Ｒｓｈ３００の値に上限および下限を設ける。そして、Ｒｓｈ＝Ｒｓｈ０＋Ｒｓｈ３００によってＲｓｈを求める。なお、Ｒｓｈ０は距離誤差量発生前のＲｓｈである。
【００８０】
なお、図１２（ｂ）に示したＲｓｈの大きさの決定方法の他に、予めｄの大きさ区分に応じて所定の数値を格納したテーブルを用いる方法を採用してもよい。
【００８１】
３００ｍに達した後に補正係数Ｒｓｈを低減する際のその符号および大きさの具体例を図１３により説明する。Ｒｓｈの変化量の符号は、Ｒｓｈ３００の符号が正であれば正、負であれば負とする。また、その大きさは、
｜Ｒｓｈ｜＝ｍ×｜Ｒｓｈ３００｜＋Ｒｓｈ０
とする。ここに、ｍは１より小さい正の定数であり、Ｒｓｈ０は距離誤差量発生前のＲｓｈである。
【００８２】
最後に、図８のステップ７１１に示したＲｓｈの削減処理について説明する。
【００８３】
前述のように、この削減処理は、補正係数Ｒｓｈの値をさらに０に近づける方向へ低減させるものであり、次のように実行する。
【００８４】
（１）Ｒｓｈ＞０のとき、
Ｒｓｈ＝Ｒｓｈ−ｎ
ここに、ｎは任意の正の定数である。算出したＲｓｈが負になった場合にＲｓｈ＝０とする。
【００８５】
（２）Ｒｓｈ＜０のとき、
Ｒｓｈ＝Ｒｓｈ＋ｎ
ここに、ｎは（１）と同じ任意の正の定数である。算出したＲｓｈが正になった場合にＲｓｈ＝０とする。
【００８６】
前述のように、この低減処理により、例えば高速道路のように長い距離にわたり直線的な道路が継続する場合において、一旦算出された補正係数Ｒｓｈが更新される機会がなく、それを長期間使用し続けるような事態を回避できる。
【００８７】
以上、本発明の一実施例についてのみ説明したが、種々の変形・変更を行うことが可能である。例えば、上記説明中の各種の時間や距離の数値（１００ｍｓ，１ｓ，２０ｍ，３００ｍ，２ｋｍ，１０ｋｍ）は必ずしも厳密にこれらの値に限るものではない。
【００８８】
【発明の効果】
以上のように、本発明によれば、走行する道路の交差点等の多少や、車両の走行速度にかかわらず、また、格別の設備を必要することなしに適正に距離係数を補正し、高精度に車両位置を求めることができる現在位置算出装置を提供することができる。また、距離係数を補正するために長期補正係数および短期補正係数を採用する場合に、長期補正係数の設定時に距離係数の不連続な変化を防止することができる。
【図面の簡単な説明】
【図１】本発明の一実施例に係る現在位置算出装置の構成を示すブロック図である。
【図２】本発明の一実施例において行う地図および現在位置の表示例を示す図である。
【図３】本発明の一実施例において行う進行方位および距離の算出処理の手順を示すフローチャートである。
【図４】本発明の一実施例において行う現在位置の算出処理の手順を示すフローチャートである。
【図５】本発明の一実施例において行う現在位置表示処理の手順を示すフローチャートである。
【図６】本発明の一実施例において用いる地図データにおける道路の表現形式を示す図である。
【図７】本発明の一実施例において行う初期化処理を示すフローチャートである。
【図８】本発明の一実施例において行う補正係数算出処理の手順を示すフローチャートである。
【図９】図８に示したＲａｃｃ算出処理の手順を示すフローチャートである。
【図１０】図８に示した距離誤差量ｄの算出処理を説明するための図である。
【図１１】図８に示したＲｓｈ算出処理の手順を示すフローチャートである。
【図１２】図１１に示したＲｓｈの算出１の処理内容を示す図である。
【図１３】図１１に示したＲｓｈの算出２の処理内容を示す図である。
【符号の説明】
２０１    角速度センサ
２０２    方位センサ
２０３    車速センサ
２０４    スイッチ
２０５    ＣＤ−ＲＯＭ
２０６    ＣＤ−ＲＯＭドライバ
２０７    ディスプレイ
２０８    コントローラ
【図１】
0003732548.tif 000002
【図２】
0003732548.tif 000003
【図３】
0003732548.tif 000004
【図４】
0003732548.tif 000005
【図５】
0003732548.tif 000006
【図６】
0003732548.tif 000007
【図７】
0003732548.tif 000008
【図８】
0003732548.tif 000009
【図９】
0003732548.tif 000010
【図１０】
0003732548.tif 000011
【図１１】
0003732548.tif 000012
【図１２】
0003732548.tif 000013
【図１３】
0003732548.tif 000014