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