JP3764507B2 - Current position calculation device - Google Patents

Current position calculation device Download PDF

Info

Publication number
JP3764507B2
JP3764507B2 JP9721495A JP9721495A JP3764507B2 JP 3764507 B2 JP3764507 B2 JP 3764507B2 JP 9721495 A JP9721495 A JP 9721495A JP 9721495 A JP9721495 A JP 9721495A JP 3764507 B2 JP3764507 B2 JP 3764507B2
Authority
JP
Japan
Prior art keywords
vehicle
distance
current position
value
road
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP9721495A
Other languages
Japanese (ja)
Other versions
JPH08292047A (en
Inventor
裕幸 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xanavi Informatics Corp
Original Assignee
Xanavi Informatics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xanavi Informatics Corp filed Critical Xanavi Informatics Corp
Priority to JP9721495A priority Critical patent/JP3764507B2/en
Publication of JPH08292047A publication Critical patent/JPH08292047A/en
Application granted granted Critical
Publication of JP3764507B2 publication Critical patent/JP3764507B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Instructional Devices (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、車両等の移動体に搭載され、走行距離や進行方位等を測定して、これらより当該車両の現在位置を算出する現在位置算出装置に関するものであり、特に、走行距離の測定誤差を補正する技術に関するものである。
【0002】
【従来の技術】
従来、車両の現在位置は、ジャイロ等の方位センサにより測定した車両の進行方向と、車速センサまたは距離センサにより測定した車両の走行距離に基づいて算出することが行われている。
【0003】
また、車両の走行距離は、一般的には、トランスミッションの出力軸、または、タイヤの回転数を計測して、その回転数に、タイヤ1回転あたりに車両が進む距離である距離係数を乗ずることにより求められている。
【0004】
また、このように車両の進行方向と走行距離から求めた現在位置の誤差を補正するために、特公平6−13972号記載の技術のように、道路データに整合するように、求められた車両の現在位置を修正する、いわゆる、マップマッチングの技術が知られている。このマップマッチングの技術によれば、位置算出の精度を高めることができる。
【0005】
ところで、走行時には、タイヤの磨耗や、温度変化による膨張等により、タイヤの直径、すなわち、距離係数が時事刻々と変化する。このため、走行距離の算出において誤差が発生し、現在位置の算出が高精度に行えなくなる。たとえば、タイヤ1回転あたりの走行距離係数に、1%の誤差が存在すると、100km走行した場合、1kmの誤差が発生してしまう。
【0006】
このような走行距離の測定誤差は、通常の道路を走行している場合は、前述したマップマッチングの技術により、ある程度修正できる。しかし、高速道路等の道路を走行する際には、マップマッチングで利用できるカーブや交差点等の特徴が道路にないため、充分に誤差を修正することができなくなる。
【0007】
さらに、一旦、測定した現在位置と真の現在位置との間に1km程度の誤差が発生してしまうと、マップマッチングの技術によっては、正しい位置に補正することが困難になる。
【0008】
そこで、走行距離の測定の誤差を無くすために、従来は、(1)交差点を曲がった時(始点)から、次の交差点を曲がる(終点)までの道路データと、計測した回転数より得られる走行距離とを比較することにより、タイヤ1回転あたりの距離係数を補正することが行われていた。また、(2)特公平6−27652号公報に記載のように、2つのビーコンの間の地図上の距離と、走行して計測した距離を比較することにより、前述した距離係数を補正する技術も知られている。また、(3)特開平2−107958号公報記載のように、GPS衛星よりの信号を用いて現在位置を算出するGPS受信装置を利用して車速を求め、それと検出されたタイヤの回転数とを比較して前述した距離係数を補正する技術も知られている。
【0009】
【発明が解決しようとする課題】
しかし、前述した(1)の技術では、交差点間の道路が少しでも曲がっていたり、車両が蛇行運転したりすると、正確な補正を行うことができなくなる。また、前述した始終点を正確に特定するのが難しいという問題もある。たとえば、交差点内に複数車線がある場合、どちらの車線を通って曲がるかによって始終点は異なってくるが、このような車線まで特定することは容易ではない。
【0010】
また、前述した(2)の技術でも、道路が直線でないと正確な補正を行うことができないし、また、車両が利用できるビーコン設備を設けなければならないという問題点がある。
【0011】
また、前述した(3)の技術では、車両の速度が低い場合に、正確な速度情報を得ることができない場合があり、また、車両の速度変化が大きい場合には処理に時間がかかり、算出した速度に誤差が生じる。このため、正確な補正を行えない場合があるという問題がある。また、車両に利用できるGPS受信装置やGPSアンテナを設ける必要がある。また、車両がトンネルや高架下、建物の影等GPS信号が受信できない走行状態の場合には、GPS衛星を利用できないため補正を行うことができなくなるという問題もある。
【0012】
そこで、本発明は、走行する道路の特徴の多少や、車両の走行速度にかかわらず、また、格別の設備を必要することなしに正確に距離係数を補正し、高精度に車両位置を求めることができる現在位置算出装置を提供することを目的とする。
【0013】
【課題を解決するための手段】
前記目的達成のために、本発明は、車輪の回転に伴い移動する車両に搭載され、当該車両の現在位置を算出する現在位置算出装置であって、
道路地図を表す地図データを記憶する手段と、
車両の進行方位を検出する手段と、
車輪の回転速度を検出する手段と、
逐次、検出された車輪の回転速度と、設定された距離係数に応じて車両の走行距離を算出する走行距離算出手段と、
逐次、検出された車両の走行距離と検出された車両の進行方位と前記地図データの表す道路地図に応じて、車両が存在する道路と当該道路上の車両の存在する位置を推定する手段と、
推定された道路上の車両の存在する位置を車両が走行している場合の走行状況と、検出された進行方位、もしくは、検出された進行方位および算出された走行距離が表す車両の走行状況とのずれ量に応じて求まる補正量、前記走行距離算出手段に設定された距離係数を補正する距離係数補正手段とを有し
前記距離係数補正手段は、前回推定した車両の存在する位置と連続的でない位置が車両の存在する位置として推定された場合、もしくは、車両が略直角に右左折した場合に、前記走行距離算出手段に設定された距離係数を、それまで当該距離係数に施された補正の補正量がキャンセルされるように変更すると共に、それまで当該距離係数に施された各補正のうち前記ずれ量を解消するために所定の程度以上有効であった各補正の補正量に応じて求まる量補正することを特徴とする現在位置算出装置を提供する。
【0014】
【作用】
本発明に係る現在位置算出装置では、推定された道路上の車両の存在する位置を車両が走行している場合の走行状況と、検出された進行方位、もしくは、検出された進行方位および算出された走行距離が表す車両の走行状況とのずれ量に応じて求まる補正量、前記走行距離算出手段に設定された距離係数を補正する。
【0015】
また、さらに、車両が存在する位置と連続的でない位置が車両の存在する位置として推定された場合、もしくは、車両が略垂直に右左折した場合には、前記走行距離算出手段に設定された距離係数を、それまで当該距離係数に施された補正の補正量がキャンセルされるように変更すると共に、それまで当該距離係数に施された各補正のうち前記ずれ量を解消するために所定の程度以上有効であった各補正の補正量に応じて求まる量補正する。
【0016】
【実施例】
以下、本発明に係る現在位置算出装置の一実施例について説明する。
【0017】
図1に本実施例に係る現在位置算出装置の構成について説明する。
【0018】
すなわち、本実施例に係る現在位置算出装置は、車両のヨーレイトを検出することで進行方位変化を検出する角速度センサ201と、地磁気を検出することで車両の進行方位を検出する地磁気センサ等の方位センサ202と、車両のトランスミッションの出力軸の回転速度に比例した時間間隔でパルスを出力する車速センサ203を備えている。
【0019】
また、現在位置周辺の地図や現在位置を示すマーク等を表示するディスプレイ207と、ディスプレイ207に表示する地図の縮尺切り替えの指令をユーザに(運転者)から受け付けるスイッチ204と、デジタル地図データを記憶しておくCD−ROM205と、そのCD−ROM205から地図データを読みだすためのドライバ206とを備えている。また、以上に示した各周辺装置の動作の制御を行うコントローラ208を備えている。
【0020】
次に、コントローラ208は、角速度センサ201の信号(アナログ)をデジタル信号に変換するA/D変換器209と、方位センサ202の信号(アナログ)をデジタル信号に変換するA/D変換器210と、車速センサ203から出力されるパルス数を0.1秒毎にカウントするカウンタ216と、スイッチ204の押圧の有無を入力するパラレルI/O211と、CD−ROM205から読みだされた地図データを転送するDMA(Direct Memory Access)コントローラ212と、ディスプレイ207に地図画像を表示する表示プロセッサ213とを有する。
【0021】
また、コントローラ208は、さらに、マイクロプロセッサ214と、メモリ215とを有する。マイクロプロセッサ214は、A/D変換器209を介して得た角速度センサ201の信号、A/D変換器210を介して得た方位センサ202の信号、カウンタ216がカウントした車速センサ203の出力パルス数、パラレルI/O211を介して入力するスイッチ204の押圧の有無、DMAコントロ−ラ212を介して得たCD−ROM205からの地図データを受け入れて、それら信号に基づいて処理を行い、車両の現在位置を算出して、それを表示プロセッサ213を介してディスプレイ207に表示させる。この車両位置の表示は、図2に示すように、すでにディスプレイ207に表示している地図上に矢印マ−ク等を重畳して表示することにより行う。これにより、ユーザは、地図上で車両の現在位置を知ることができる。メモリ215は、このような動作を実現するための処理(後述)の内容を規定するプログラムや、後述する各種テ−ブル等を格納したROMと、マイクロプロセッサ214が処理を行う場合にワ−クエリアとして使用するRAMとを含んでいる。
【0022】
以下、本実施例に係る現在位置算出装置の動作について説明する。
【0023】
まず、車両の進行方位及び走行距離を算出する処理、算出された進行方位及び距離から車両の現在位置を決定する処理、得られた車両位置および方位を表示する処理の三つの処理について説明する。
【0024】
図3に、車両の進行方位及び走行距離を算出する処理の流れを説明する。
【0025】
この処理は、一定周期、たとえば100mS毎に起動され実行されるマイクロプロセッサ214のルーチンである。
【0026】
このルーチンでは、最初、A/D変換器209から角速度センサ201の出力値を読み込む(ステップ401)。この角速度センサ201の出力値には、方位変化が出力されるので、車両の進行方向の相対的な値しか検出できない。このため、次に、A/D変換器210から方位センサ202の出力値を読み込み(ステップ402)、この方位センサ202の出力値により算出された絶対方位と角速度センサ201から出力される方位変化(角速度出力)とを用いて、車両の推定方位を決定する(ステップ403)。
【0027】
この方位の決定は、たとえば、長い時間、車速が低い時には、角速度センサ201の誤差が大きいので、一定時間以上車速が低い場合には、方位センサ202の出力する方位のみを利用するという方法により行う。
【0028】
次に、車速センサ203の出力するパルス数を、0.1秒毎に、カウンタ216で計数して、その計数値を読み込む(ステップ404)。この読み込んだ値に、距離係数Rを乗算することで、0.1秒間に進んだ距離を求める(ステップ405)。この距離係数Rの求め方については後述する。
【0029】
次に、このようにして求められた0.1秒間あたりの走行距離値を、前回得られた値に積算して、車両の走行距離が20mとなったかどうかを調べ(ステップ406)、20mに満たない場合(ステップ406でNo)、今回の処理を終了して、新たな処理を開始する。
【0030】
走行距離算出処理の結果、積算された走行距離が一定距離、例えば20mとなった場合(ステップ406でYes)、その時点での進行方向と走行距離(20m)とを出力する(ステップ407)。ステップ407では、さらに、積算距離を初期化して、新たに走行距離の積算を開始する。
【0031】
次に、算出された進行方位および走行距離に基づいて、車両の現在位置を求める処理について説明する。
【0032】
図4に、この処理の流れを示す。
【0033】
本処理は、図3からの進行方位および走行距離が出力されるのを受けて起動され、実行されるマイクロプロセッサ214のルーチンである。すなわち、本処理は、車両が20m進む毎に起動される。
【0034】
さて、この処理では、まず、ステップ407で出力された進行方位と走行距離とを読み込む(ステップ501)。次に、それらの値に基づいて、車両の移動量を緯度経度方向、別々に、それぞれ求める。さらに、これらの各方向における移動量を、前回の処理で求められた車両の現在位置に加算して、現在位置(A)を求める(ステップ502)。
【0035】
もし、装置の始動直後など、前回求められた位置がない場合には、別途設定された位置を前回求められた位置として用いて現在位置(A)を求める。
【0036】
次に、求めた現在位置(A)の周辺の地図を、CD−ROM205から、ドライバ206およびDMAコントローラ213を介して、読み出し、現在位置(A)を中心とする予め設定された距離D内にある道路データ(線分)を抜き出す(ステップ503)。
【0037】
なお、道路データとしては、たとえば、図6に示すように、2点間を結ぶ複数の線分81〜85で近似し、それら線分を、その始点と終点の座標によって表したもの等を用いることができる。たとえば、線分83は、その始点(x3、y3)と終点(x4、y4)によって表現するようにする。
【0038】
次に、ステップ503で抜き出された線分の中から、その線分の方位が、求められている進行方向と、所定値以内にある線分だけを抜き出す(ステップ504)。さらに、抜き出されたすべての線分に対し、現在位置(A)から垂線をおろし、その垂線の長さを求める(ステップ505)。また、各線分と垂線との交差する点(線分の垂線のあし)を候補点とする
次に、それら垂線の長さを用いて、ステップ504で求められたすべての候補点に対して、以下に定義されるエラーコスト値を算出する。
【0039】
エラーコスト=α×|進行方向−線分方位|+β|垂線の長さ|
ここで、α、βは、重み係数である。これら係数の値は、進行方向と道路の方位のずれと現在位置と道路のずれのどちらを、現在位置が、その上にある道路を選択する上で重視するかによって変化させてよい。たとえば、進行方向と方位が近い道路を重視する場合は、αを大きくするようにする。
【0040】
そして、各線分のエラーコストが算出されたならば、エラーコストが算出された線分のうち、エラーコスト値が最も小さい候補点を選び(ステップ506)、その選択された候補点を、修正された現在位置(B)とする(ステップ507)。
【0041】
ところで、前述したステップ503では、現在位置(A)を中心とする予め設定された距離D内にある道路データ(線分)を抜き出したが、この距離Dは、前回行ったステップ506で選択した道路のエラーコストの値に基づいて決定する値でもよい。
【0042】
ここで、エラーコストに基づいて、検索範囲を求める理由は、エラーコストのが大きい場合は、前回求めた現在位置(B)の精度に対する信憑性が低いと考えられるので、より広い範囲を検索して道路を探す方が、正しい現在位置を求める上で適当であるからである。
【0043】
なお、現在位置(B)の求め方は、次のようにしてもよい。
【0044】
すなわち、まず、ある位置から、前述したように候補点を求める。そして、各候補点のうちから前述したように現在位置(B)を求める。そして、次回の現在位置(B)は、前回求めた各候補点を、それぞれ前回求めた位置として、それぞれに対する候補点を求め、求めた全ての候補点のうちから現在位置(B)を求める。以下、同様に、前回求めた各候補点を、それぞれ前回求めた位置として、それぞれに対する現在位置(A)を求め、求めた各現在位置(A)より候補点を求め、求めた全ての候補点のうちから現在位置(B)を求める処理を繰り返す。したがい、このようにする場合には、前回現在位置(B)として選択された候補点とは異なる候補点をも基準に、次回の各候補点が求まることになる。また、前回現在位置(B)として選択された候補点とは異なる候補点を基準にして次回の現在位置(B)が求まることがある。
【0045】
次に、得られた車両位置および方位を表示する処理について説明する。
【0046】
図5に、この処理の流れを示す。
【0047】
本処理は、1秒毎に起動され実行されるマイクロプロセッサ214のルーチンである。
【0048】
最初、スイッチ204が押圧により地図の縮尺の変更を指示されているかを、パラレルI/O211の内容を見て判断する(ステップ601)。もし、押されていれば(ステップ601でYes)、それに対応して、所定の縮尺フラグを設定する(ステップ602)。
【0049】
次に、図4の処理で求められた現在位置(B)を読み出し(ステップ603)、ステップ602で切り替えられた縮尺フラグの内容に応じた縮尺の地図をディスプレイ207に、例えば、図2に示すような状態で表示する(ステップ604)。
【0050】
そして、地図に重畳して、車両の現在位置(B)と車両の進行方位を、たとえば、先に示した図2のように、矢印記号“↑”を用いて表示する(ステップ605)。そして最後に、これらに重畳して、北を示す北マークと、縮尺に対応した距離マークとを、図2のように表示する(ステップ606)。
【0051】
なお、本実施例においては、上記のように矢印記号を用いて車両位置および方向を示したが、車両位置および方向の表示形態は、位置および進行方向が、表示状態が明確に示されるものであれば、その形態は任意でよい。また、北マーク等も同様である。
【0052】
次に、図3の処理ステップ405において距離の算出に用いた距離係数Rの求め方について説明する。
【0053】
さて、前述したように車両の走行距離は、車速センサ203の出力するパルス数に距離係数Rを乗じて求める。しかし、タイヤの摩耗等によりタイヤ1回転あたりの車両の進行距離は変化するので、距離係数Rを固定値とすると、走行に伴い距離が正確に求まらなくなってくる。そこで、本実施例では、逐次、図4の処理で得られた現在位置(B)(ステップ508)と、CD−ROM205からドライバ206を介して読み出した地図データから求まる道路方位と、図3の処理で得られた車両方位(ステップ403)とを比較することにより、現在位置(B)が、実際の位置に対して進んでいるか遅れているかを判断し、距離係数Rを動的に修正する。
【0054】
このような距離係数Rの修正は、たとえば、次のようにして行うことができる。
【0055】
すなわち、3つの補正変数Rsh,Ra,Rshcbを導入する。そして、距離係数R=R0×(1+Ra+Rsh+Rshcb)に従い、動的に距離係数Rを修正する。なお、ここでR0は、予め定めた距離係数Rの初期値を示している。また、Rshは、短期的に距離係数Rを補正するためのものである。補正変数Raは、10km走行する間に求められたRshに応じて長期的に距離係数Rを補正するためのものである。また、Rshcbは、いままで求められたRshがRaを求めるために、そのまま用いるのが適当でないと判断される場合に、求められたRshの確からしさに応じた分のみRを補正するためのものである。
【0056】
さて、これらの補正変数Rsh,Rshcb,Raは、マイクロプロセッサ214が、次に示す処理を実行することにより逐次変更する。
【0057】
以下では、まず、この処理の内容について個別に説明し、その後に、実際の車両の走行において、これらの処理によって、どのように補正変数Rshcb、補正変数Rsh、補正変数Raが変更されていくかを説明する。
【0058】
まず、補正変数Rshの求め方の概要を説明する。
【0059】
補正変数Rshは、道路のカーブの個所の車両の実際の曲がり方に応じて決定する。
【0060】
たとえば、図4のステップ508で出力された現在位置(B)が、図7の道路Aを進行するものであったとする。一方、たとえば、逐次出力される現在位置(B)のうちの、走行上カーブ開始点oより所定距離だけ前のa点を基準に、車両の進行方位の走行距離から求めた車両の現在位置の軌跡が、図中に破線で示したようにo点をオーバした地点から曲がり始めた軌跡であったとする。
【0061】
この場合には、距離係数Rが真の値より大きかったものと推定することができる。なぜならば、車両がカーブに達したと距離係数Rを用いて推定された時点では、車両は曲がり初めていないので実際には車両はカーブに達していないと考えられるからである。また、距離係数Rが真の値より大きい度合いは、車両が実際に曲がり始めた地点とカーブ開始点oとの距離を表す図中の距離dより推定することができる。
【0062】
また、逆に、車両の進行方位の走行距離から求めた車両の現在位置の軌跡が、交差点oに到る前に曲がり始めた軌跡である場合には、距離係数Rが真の値より小さかったものと推定することができる。なぜならば、車両がカーブoに達したと距離係数Rを用いて推定される前に、車両は曲がり始めているので実際には車両は既にカーブoに達していると考えられるからである。また、この場合も、距離係数Rが真の値より小さい度合いは、車両が実際に曲がり始めた地点とカーブoとの距離を表す図中の距離誤差dより推定することができる。
【0063】
したがい、図中のdより距離係数が真値よりのずれの方向と、その度合いを判定し、これを打ち消すように補正変数Rshを定めることができる。
【0064】
または、車両方位と道路の方位差から、車両がカーブoに達したと距離係数Rを用いて推定されるより前に、車両が曲がり始めたか、車両がカーブoに達したと距離係数Rを用いて推定された時点より後に車両が曲がり始めたかを判定するようにしてもよい。この場合には、車両方位と道路の方位差の積分値より、距離係数Rが真の値よりずれている度合いを求めることができる。
【0065】
本実施例では、このようにして、距離誤差dが検出された場合に距離誤差dの値に応じて補正変数Rshを求め距離係数Rを補正する。
【0066】
また、補正変数Rshによる距離係数Rの補正は次のように行う。
【0067】
すなわち、まず、300m走行する間は、Rshの絶対値を正しいRを得るための値より大きくすることにより、この300m走行する間に、現在位置(B)として漸次正しい値が求まるようにする。これは、距離誤差dが求まった時点では、それまでの距離係数が誤差によって、誤った現在位置(B)が求まっていると推定される。しかし、ここで、現在位置(B)を一時に正しい位置に修正すると、前述した現在位置の表示マークは、走行方向と逆方向に移動したり、一気に離れた位置に移動してしまい、運転者に混乱を与えることになる。そこで、300m走行する間に、Rshの絶対値を正しいRを得るための値より大きくし、この300m走行する間に、現在位置(B)のマークの表示位置が少しづつ正しい位置に修正されていくようにするのである。
【0068】
そして、この300m走行した後は、再度RshをRshの絶対値を正しいRを得るための値に修正し、その後は正しい距離係数Rで、現在位置(B)が求まるようにするのである。また、さらに本実施例では、求まったRshが2km以上走行間有効であった場合(新たにRshが求められなかった場合)には、このRshを漸減する。2km以上走行間有効であった場合とは、2km以上、カーブがなく、したがい、Rshの適正さが2km以上評価されていない場合であるからである。すなわち、このような場合には、Rshの適正さの信頼度が低いので、その影響が少なくなるように、その値を漸減するのである。
【0069】
以下では、説明の理解を容易にするために、この300m走行する間に用いられるRshをRsh300と、その後に求められるRshをRsh1と表すことにする。
【0070】
次に、補正変数Raは、10km走行する毎に、その10km間に求められたRsh1,Rsh300に応じて、距離係数Rを補正するための補正変数である。補正変数Raは、10kmの間に逐次変化するRa+Rsh+Rshcbの各値に、その値が有効であった走行距離を重み付けした値Lcomを用いて、
Ra={(10km+Lcom)/10km}−1によって算出する。
【0071】
なお、Raが求めたら、その時点まで有効であったRsh1または、Rsh300,Rshcbは0に初期化する。
【0072】
このように、Raは、10km毎に、その10km間に用いた各Rの値を近似的に平均した値に距離係数Rを補正するために用いる。しかし、図4の処理で現在位置(B)として、それまで現在位置(B)が存在してた道路と異なる道路上の位置が求まる等、前回推定した車両が存在する位置と連続的でない位置が車両の存在する位置として推定された場合には、それまでに求めたRsh1やRsh300は正しくないと推定することができる。なぜなら、実際には走行していない道路の曲がりとの間で求めた距離誤差dによってRsh1やRsh300を求めている可能性があるからである。
【0073】
また、前述したように、現在位置(B)を、各候補点のうちから現在位置(B)を求め、次回の現在位置(B)を、前回求めた各候補点を、それぞれ前回求めた位置として、それぞれに対して候補点を求め、求めた全ての候補点のうちから現在位置(B)を求めるようにした場合には、今回求めた現在位置(B)と成った候補点が、前回求めた現在位置(B)を前回求めた位置として算出された候補点でなかった場合に、前回推定した車両が存在する位置では無い位置を基準として求めた位置が車両の存在する位置として推定されたことになる。したがい、このような場合もまた、前回推定した車両が存在する位置と連続的でない位置が車両の存在する位置として推定されたことになるので、それまでに求めたRsh1やRsh300は正しくないと推定することができる。
【0074】
また、同様に、車両が略90度(たとえば、70度から110度)を曲がった場合には、Rsh1やRsh300が、正しい距離係数Rを得るための値と大きく異なった値として求まることがある。なぜならば、たとえば、複数車線を有する交差点等では、どの車線を走行して曲がったかによって、大きく異なる距離誤差dが求まってしまうため、この曲がりによっては大きく誤ったRsh1やRsh300が求められてしまうからである。なお、車両が略90度より小さい角度曲がった場合にも、複数車線を有する道路では、どの車線を走行して曲がったかによって、異なる距離誤差dが求まってしまうが、そのずれ、影響は略90度曲がった場合に比べ小さい。そこで、本実施例では、車両が略90度より小さい角度曲がった場合のずれ、影響は許容する。
【0075】
そこで、本実施例では、図4の処理で現在位置(B)として、前回求めた現在位置(B)と連続的でない位置が求まった場合(位置飛びがあった場合)や、略90度曲がった場合には、前回Raを求めてから、その時点まで求めたLcom(Ra+Rsh+Rshcb)の各値に、その値が有効であった走行距離を重み付けした値や、その時点におけるRsh1もしくはRsh300を初期化すると共に、その時点から10kmを計測し直す。
【0076】
しかし、このようにすると、前回Raを求めてから、前回求めた現在位置(B)と連続的でない位置が現在位置(B)として求まった時点もしくは略90度曲がった時点までに求めた、Rsh1やRsh300の情報が全て失われてしまう。したがい、このようにすると、たとえば、図8に示すように、途中まで、せっかく正しいRsh,Rsh300が求まっていた場合にでも、この経験を以降の距離係数Rに反映することができなくなる図8aは、道路の分岐点以降、誤って実際には走行していない道路上現在位置(B)を推定した後実際に走行している道路上に現在位置(B)を推定することができるようになった例であり、図8bは滑らかにカーブする道路上をしばらく走行した後に交差点を右折した例である。
【0077】
そこで、本実施例では、さらに補正変数Rshcbを導入し、交差点を曲がったか、それまで現在位置(B)が存在していた道路と異なる道路上の位置が求まったために、Lcomと、Rsh1もしくはRsh300を初期化する場合には、前回Raを求めてから、その時点までに求めたRsh300のうち、そのRsh300を求めた後、少なくとも2km走行するまでの間に次のRsh300が求められなかったRsh300については、このRsh300に比例し、かつこのRsh300より充分に小さい値を求め、この和をRshcbとし、この値によって距離係数Rを補正する。
【0078】
以下、このように各補正変数Ra,Rsh1,Rsh300,Rshcbを算出していくために、マイクロプロセッサ214が行う処理の詳細について説明する。
【0079】
まず、図9に、装置が起動されたとき等に行う初期化処理を示す。
【0080】
この処理では、以降の処理で用いる各種変数d,La,Rsh(Rsh1/Rsh300),Ra,Rshcb,l,lcom,i,Rshcb_dt(i),Rsh0を全て0に初期化する。
【0081】
次に、このような初期化処理の後、車両が20m走行する毎に実行される処理を図10に示す。
【0082】
この処理では、各センサ201,202,203を用いて算出した走行距離や進行方位をセンサデータとして読み込む(ステップ801)。そして次に、CD−ROM205からドライバ206に読み出された地図データを読み込む(ステップ802)。
【0083】
次に、前回補正変数Raが求まってからの走行距離を表す変数La、前回補正変数Rsh300が求まってからの走行距離を表す変数Lshcb(i−1)の値を、その時点の値に20mを加算することにより更新する。
【0084】
次に、flagが0か否かを判定する(ステップ804)。flagは、Rsh300が有効である期間、すなわち、距離誤差dが求められRsh300が算出されてから300m走行する間のみ値1となるフラグである。
【0085】
そして、フラグが0であれば、前述した距離誤差dを求める。そして、前回補正変数Rsh1が求まってからの走行距離を表す変数Lshの値を、その時点の値に20m加算することにより更新する(ステップ806)。
【0086】
一方、flagが1である場合には、Rsh300が有効である期間、すなわち、距離誤差dが求められRsh300が算出されてから300m走行していない期間であるので、ステップ805,806は行わない。
【0087】
次に、ステップ805で求めた距離誤差dが0か否かを判定する(ステップ807)。今回ステップ805で求めた距離誤差dが0でない場合、および、Rsh300が有効である期間は、距離誤差dが0ではないので、ステップ808のRsh算出処理を行う。なお、Rsh300が有効である期間は、このRsh300を求めるために用いた距離誤差dが維持されつづけるので距離誤差dは0とならない。Rsh算出処理(ステップ808)では、後述するように、Rsh300の算出、或いはRsh300からのRsh1への算出を行う。また、前述したRshcbを後に求めるために、算出したRsh300の応じた値を配列Rshcb_dtに保存していく処理を行う。
【0088】
次に、ステップ809では、前回補正変数Rsh1が変更されてからの走行距離を表す変数Lshの値が2kmを超えたか否かを判定し超えていれば、前回補正変数Rsh1の値が変更されてから今までの走行距離を表すLshに、その時点のRa+Rsh+Rshcbの値を乗じた値を、その時点のLcomに加算した値を新たなLcomとする。このLcomは、前述したように10km毎の補正係数Raの算出に用いられる。
【0089】
次に、先に述べたように、有効であった走行距離が2kmを超えたRsh1の値を漸減するRsh削減処理を行う。Rsh削減処理は、Rsh1から正の定数nを、Rsh1が正の場合には減じ、Rsh1が負の場合には加算することにより行う。ただし、正のRsh1から定数nを減じた値が負の値となった場合には、Rsh1を0とする。また、負のRsh1から定数nを減じた値が正の値となった場合には、Rsh1を0とする。また、Rsh1の値が0の場合は0のままとする。
【0090】
そして、再び、削減処理を施したRshの有効距離を管理するためにLshを0にリセットする(ステップ812)。
【0091】
一方、ステップ809では、前回補正変数Rsh1が変更されてからの走行距離を表す変数Lshの値が2kmを超えていないと判定されていない場合には、ステップ810から812の処理は行わない。
【0092】
次に、ステップ813では、図4の処理で現在位置(B)として、前回推定した車両が存在する現在位置(B)と連続的でない位置が推定されたか(位置飛びがあったか)、それとも、略90度を曲がったかを判定する。そして、どちらでもなければ、処理を終了する。
【0093】
一方、ステップ813の処理で現在位置(B)として、現在位置(B)として、前回推定した車両が存在する現在位置(B)と連続的でない位置が推定されたか、それとも、略90度曲がったかしていると判定された場合には、前述したように、その時点まで求めたLcom(Rの各値に、その値が有効であった走行距離を重み付けした値)や、その時点におけるRsh1もしくはRsh300を初期化すると共に、その時点から10kmを計測し直すLaリセット処理を行う(ステップ814)。また、この処理では、前述したように、Rshcbを求め、距離係数Rを補正する処理を行う。
【0094】
以下、各処理の詳細について説明する。
【0095】
まず、ステップ805の距離誤差dの算出処理について説明する。
【0096】
図11に、この処理の手順を示す。
【0097】
図示するように、この処理では、まず、車両が右左折したか否かを判定し(ステップ1101)、距離誤差が存在するか否かを判定し(ステップ1102)、距離誤差があれば、先に説明した距離誤差dを算出する(ステップ1103)。ただし、このとき、車両がカーブを内回りしたときに距離誤差dの符号は負とし、車両がカーブを外回りしたときに距離誤差dの符号は正とする。
【0098】
一方、車両が右左折していない場合、または、距離誤差が存在しない場合には、そのまま処理を終了する。
【0099】
次に、図10のステップ808の補正変数Rshの算出処理について説明する。
【0100】
図12に、この補正変数Rshの算出処理の処理手順を示す。
【0101】
この処理では、まず、flagが0か否かを判定する(ステップ1201)。flagが0であるときは、Rsh300が有効でなく、かつ、0でない距離誤差dが求められたときであるので(図10参照)、距離誤差dに応じて補正変数Rsh300を求める(ステップ1203)。ただし、Rshが変更される前に、前回補正変数Rsh1の値が変更されてから今までの走行距離を表すLshに、その時点のRa+Rsh+Rshcbの値を乗じた値を、その時点Lcomに加算した値を新たなLcomとしておく。また、その時点のRsh1をRsh0として記憶しておく(ステップ1202)。補正変数Rsh300は、距離誤差dより次のようにして求める。
【0102】
すなわち、補正変数Rshに与える変化dRshの正負を図13に示す対応によって定め、補正変数Rshに与える変化dRshの絶対値を距離誤差dの絶対値に、予め定めた係数jを乗じて求める。そして、Rsh300=Rsh0+dRshに従いRsh300を求める。
【0103】
そして、さらに、算出したRsh300の大きさの応じた値を、Rshcb_dt(i)として登録し(ステップ1204)、前述したflagを1に、Rsh300が算出されてからの走行距離を表す変数lを0に設定し(ステップ1205)、処理を終了する。変数lは、Rsh300が算出されてから300m走行したか否かを判定するために用いる。
【0104】
ここで、ステップ1205の登録は、図14に示す処理によって行う。すなわち、現在のiが、配列Rshcb_dtの要素数を超えているか否かを判定し(ステップ1301)、超えていれば配列中にこの値を登録する余地がないので処理を終了する。一方、もし、超えていなければ配列Rshcb_dtのi番目の要素Rshcb_dt(i)として、Rsh300の所定の定数を乗じた値を登録し(ステップ1303)、このRsh300を求めてから次のRsh300が求まるまでの走行距離を表すための配列Lshcbのi番目の要素Lshcb(i)を0に設定する(ステップ1303)。そして、次回の処理のためにiを1進めて処理を終了する。
【0105】
この後、今回登録されたRshcb_dt(i−1)に対応するLshcb(i−1)は、図10のステップ803で、iが、この次1進められるまで、逐次更新されることになる。
【0106】
さて、このような処理によって、配列Rshcb_dtには、求められた各Rsh300に比例した値が順次蓄積される。また、配列Lshcbには、配列Rshcb_dtの各要素に対応して、その要素が比例するRsh300を求めてから次のRsh300が求まるまでの走行距離が順次蓄積されることになる。
【0107】
さて、図12に戻り、ステップ1201でflagが0でないと判定された場合には、まだ、Rsh300が有効な期間であるので、Rsh300が算出されてからの走行距離を表すlが300mを超えているかを判定し(ステップ1206)、超えていなければlは、Rsh300が算出されてから現在までの走行距離を表すよう更新し(ステップ1207)、処理を終了する。
【0108】
一方、lが300mを超えていれば、補正変数Rsh300が算出されてから今までの走行距離を表すlに、その時点のRa+Rsh+Rshcbの値を乗じた値を、その時点のLcomに加算した値を新たなLcomとし(ステップ1208)、距離誤差d、l、flagを0にリセットし(ステップ1209)、Rsh1をRsh300より求める。Rsh1は、Rsh300にlより小さな正の定数を乗じた値を、記憶しておいたRsh0(前回求めたRsh1)に加算することにより求める(ステップ1210)。この処理により、Rshは、Rsh300よりRsh1に変更されることになる。
【0109】
なお、dRshとしてRsh1より充分に大きな値を用いることとし、Rsh300を求めてから300m間は、Rsh300=dRshとするようにしてもよい。
【0110】
次に、図10のステップ814のLaリセット処理について説明する。
【0111】
図15に、この処理の処理手順を示す。
【0112】
図示するように、この処理では、i=0からimax(並列データLshcb dtの要素数)までの各iについて(ステップ1501,1505,1506)、Lshcb(i)が2kmを超えているか否かを判定し(ステップ1502)、超えている場合のみ対応するRshcb dt(i)の値を、その時点のRshcbに加算する(ステップ1503)処理を行い、その後、Rshcb dt(i)を0に初期化する。
【0113】
そして、その後、i,Rsh,La,Lcomを0にリセットし(ステップ1507)、処理を終了する。
【0114】
ステップ1507の処理によって、図4の処理で現在位置(B)として、前回推定した車両が存在する現在位置(B)と連続的でない位置が推定された場合や、交差点等で略90度を曲がった場合に、前回Raを求めてから、その時点まで求めたLcom(Ra+Rsh+Rshcbの各値に、その値が有効であった走行距離を重み付けした値)や、その時点におけるRshが初期化されると共に、その時点から走行距離10kmがLaを用いて計測し直されることになる。
【0115】
また、ステップ1501からステップ1506までの処理によって、配列Rshcb dtに蓄積された各Rsh300に比例した値のうち、2km以上走行したものの値を反映したRshcbが求められることになる。
【0116】
以上、図10に示した20m走行する毎に起動される処理について説明した。
【0117】
以下では、残る補正変数Raを求める処理について説明する。
【0118】
この処理は、前回Raが求められた後10km走行したとき、もしくは、現在位置(B)として、前回推定した車両が存在する現在位置(B)と連続的でない位置が推定されたか、略90度を曲がったかした後に、10km走行したときに実行される。
【0119】
すなわち、図10のステップ803で更新される変数Laが10kmを超えたときに実行される。
【0120】
図16に、この処理の手順を示す。
【0121】
図示するように、この処理では、前述したようにRaを、10kmの間にRsh1,Rsh300,Rshcbによって逐次変化するRの各値に、その値が有効であった走行距離を重み付けした値Lcomを用いて、
Ra={(10km+Lcom)/10km}−1
によって算出する(ステップ1601)。
【0122】
そして、Raが求めたら、Rsh1,Rsh300,Rshcb,Lcom,La,Lsh,iは0に初期化し(ステップ1602)、処理を終了する。
【0123】
以上、本発明の一実施例を説明した。
【0124】
以上のように、本実施例では、推定した現在位置を走行していると仮定した場合の走行状況と、センサの測定値が表す実際の走行状況との差に応じて、距離係数Rの誤差を見積り、これを補正する。したがい、距離係数Rを補正するための外部の格別の設備は不要であり、また、走行状態にかかわらずに適正な補正を行うことができると共に、交差点等の特徴が少ない道路を走行した場合でも補正を行うことができる。したがい、常に、より良い精度で走行距離を算出し、より高精度に車両の現在位置を求めることが可能となる。また、さらに、現在位置(B)として、前回求めた現在位置(B)と連続的でない位置が求まった場合や、交差点等で略90度を曲がった場合等の距離係数Rの誤差の見積りを求めることが困難な場合にも、それ以前に見積もった距離係数Rの誤差を、その信頼性に応じた程度で距離係数Rに反映することができる。
【0125】
【発明の効果】
以上のように、本発明によれば、車両の走行速度にかかわらず、また、格別の設備を必要することなしに、特徴が少ない道路を走行した場合でも、正確に、走行距離を求めるために用いる距離係数を補正することにより高精度に車両位置を求めることができる現在位置算出装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る現在位置算出装置の構成を示すブロック図である。
【図2】本発明の一実施例において行う地図および現在位置の表示例を示す図である。
【図3】本発明の一実施例において行う進行方位および距離の算出処理の手順を示すフローチャートである。
【図4】本発明の一実施例において行う現在位置の算出処理の手順を示すフローチャートである。
【図5】本発明の一実施例において行う現在位置表示処理の手順を示すフローチャートである。
【図6】本発明の一実施例において用いる地図データにおける道路の表現形式を示す図である。
【図7】本発明において用いる距離誤差dを示す図である。
【図8】本発明の一実施例において表示される現在位置の履歴の例を示した図である。
【図9】本発明の一実施例において行う距離係数を補正する処理の手順を示す第1のフローチャートである。
【図10】本発明の一実施例において行う距離係数を補正する処理の手順を示す第2のフローチャートである。
【図11】本発明の一実施例において行う距離係数を補正する処理の手順を示す第3のフローチャートである。
【図12】本発明の一実施例において行う距離係数を補正する処理の手順を示す第4のフローチャートである。
【図13】本発明の一実施例において用いる距離誤差dと補正変数Rchとの正負の対応関係を示した図である。
【図14】本発明の一実施例において行う距離係数を補正する処理の手順を示す第5のフローチャートである。
【図15】本発明の一実施例において行う距離係数を補正する処理の手順を示す第6のフローチャートである。
【図16】本発明の一実施例において行う距離係数を補正する処理の手順を示す第7のフローチャートである。
【符号の説明】
201 角速度センサ
202 方位センサ
203 車速センサ
204 スイッチ
205 CD−ROM
206 CD−ROMドライバ
207 ディスプレイ
208 コントローラ
[0001]
[Industrial application fields]
The present invention relates to a current position calculation device that is mounted on a moving body such as a vehicle, measures a travel distance, a traveling direction, and the like, and calculates a current position of the vehicle from these, and in particular, a travel distance measurement error. It is related with the technique which corrects.
[0002]
[Prior art]
Conventionally, the current position of a vehicle has been calculated based on the traveling direction of the vehicle measured by an orientation sensor such as a gyro and the travel distance of the vehicle measured by a vehicle speed sensor or a distance sensor.
[0003]
The vehicle travel distance is generally measured by measuring the output shaft of the transmission or the rotation speed of the tire, and multiplying the rotation speed by the distance coefficient that is the distance the vehicle travels per rotation of the tire. It is demanded by.
[0004]
Further, in order to correct the error of the current position obtained from the traveling direction and the travel distance of the vehicle in this way, the vehicle that is obtained so as to be consistent with the road data as in the technique described in Japanese Patent Publication No. 6-13972. A so-called map matching technique for correcting the current position of the image is known. According to this map matching technique, the accuracy of position calculation can be increased.
[0005]
By the way, during running, the tire diameter, that is, the distance coefficient changes every moment due to tire wear, expansion due to temperature change, and the like. For this reason, an error occurs in the calculation of the travel distance, and the current position cannot be calculated with high accuracy. For example, if there is an error of 1% in the travel distance coefficient per one rotation of the tire, an error of 1 km occurs when the vehicle travels 100 km.
[0006]
Such a measurement error of the travel distance can be corrected to some extent by the above-described map matching technique when traveling on a normal road. However, when driving on a road such as an expressway, since the road does not have features such as curves and intersections that can be used for map matching, the error cannot be corrected sufficiently.
[0007]
Furthermore, once an error of about 1 km occurs between the measured current position and the true current position, it is difficult to correct the position correctly depending on the map matching technique.
[0008]
Therefore, in order to eliminate the measurement error of the travel distance, conventionally, it is obtained from (1) road data from the time when the intersection is turned (start point) to the next intersection (end point) and the measured rotation speed. The distance coefficient per one rotation of the tire has been corrected by comparing with the travel distance. Also, as described in (2) JP-B-6-27652, a technique for correcting the above-described distance coefficient by comparing the distance on the map between the two beacons and the distance measured by running. Is also known. Further, (3) as described in Japanese Patent Laid-Open No. 2-107958, the vehicle speed is obtained using a GPS receiver that calculates a current position using a signal from a GPS satellite, and the detected tire rotation speed and A technique for correcting the above-described distance coefficient by comparing the above is also known.
[0009]
[Problems to be solved by the invention]
However, with the technique (1) described above, if the road between the intersections is slightly bent or the vehicle is meandering, accurate correction cannot be performed. There is also a problem that it is difficult to accurately specify the start and end points described above. For example, when there are a plurality of lanes in an intersection, the start and end points differ depending on which lane the vehicle turns through, but it is not easy to specify such lanes.
[0010]
In the technique (2) described above, there is a problem that accurate correction cannot be performed unless the road is straight, and a beacon facility that can be used by the vehicle must be provided.
[0011]
In the technique (3) described above, when the vehicle speed is low, accurate speed information may not be obtained, and when the vehicle speed change is large, the processing takes time and the calculation is performed. An error occurs in the speed. For this reason, there is a problem that accurate correction may not be performed. In addition, it is necessary to provide a GPS receiver and a GPS antenna that can be used in the vehicle. In addition, when the vehicle is in a traveling state where GPS signals cannot be received, such as under tunnels, overpasses, and shadows of buildings, there is also a problem that correction cannot be performed because GPS satellites cannot be used.
[0012]
Therefore, the present invention accurately corrects the distance coefficient and obtains the vehicle position with high accuracy regardless of the characteristics of the road on which the vehicle travels and the traveling speed of the vehicle, and without requiring special equipment. An object of the present invention is to provide a current position calculation device capable of
[0013]
[Means for Solving the Problems]
To achieve the above object, the present invention is a current position calculation device that is mounted on a vehicle that moves with the rotation of a wheel and calculates the current position of the vehicle,
Means for storing map data representing a road map;
Means for detecting the traveling direction of the vehicle;
Means for detecting the rotational speed of the wheel;
Sequentially, travel distance calculation means for calculating the travel distance of the vehicle according to the detected wheel rotation speed and the set distance coefficient,
Means for estimating a road where the vehicle exists and a position where the vehicle exists on the road according to the road map represented by the travel distance of the detected vehicle, the detected traveling direction of the vehicle, and the map data,
The driving situation when the vehicle is traveling on the estimated position of the vehicle on the road, and the detected traveling direction or the traveling state of the vehicle represented by the detected traveling direction and the calculated traveling distance A correction amount determined according to the amount of deviation, and a distance coefficient correction means for correcting the distance coefficient set in the travel distance calculation means.
The distance coefficient correcting means is the travel distance calculating means when a position that is not continuous with the previously estimated position of the vehicle is estimated as a position where the vehicle exists, or when the vehicle turns right and left substantially at a right angle. Is changed so that the correction amount of the correction applied to the distance coefficient is cancelled, and the deviation amount among the corrections applied to the distance coefficient is canceled. Therefore, there is provided a current position calculating apparatus characterized by correcting an amount obtained according to a correction amount of each correction that is effective for a predetermined degree or more.
[0014]
[Action]
In the present position calculation device according to the present invention, the traveling state when the vehicle is traveling on the estimated position on the road and the detected traveling direction or the detected traveling direction and the calculated position are calculated. The correction amount obtained in accordance with the amount of deviation from the traveling state of the vehicle represented by the traveling distance, and the distance coefficient set in the traveling distance calculation means are corrected.
[0015]
Further, when a position that is not continuous with the position where the vehicle exists is estimated as the position where the vehicle exists, or when the vehicle turns right and left substantially vertically, the distance set in the travel distance calculation means The coefficient is changed so that the correction amount of the correction applied to the distance coefficient so far is canceled, and a predetermined degree to eliminate the deviation amount among the corrections applied to the distance coefficient until then The amount obtained according to the correction amount of each correction that has been effective as described above is corrected.
[0016]
【Example】
Hereinafter, an embodiment of a current position calculation apparatus according to the present invention will be described.
[0017]
FIG. 1 illustrates the configuration of the current position calculation apparatus according to the present embodiment.
[0018]
That is, the current position calculation device according to the present embodiment includes an angular velocity sensor 201 that detects a change in traveling azimuth by detecting the yaw rate of the vehicle, and an azimuth such as a geomagnetic sensor that detects the traveling azimuth of the vehicle by detecting geomagnetism. A sensor 202 and a vehicle speed sensor 203 that outputs pulses at time intervals proportional to the rotational speed of the output shaft of the vehicle transmission are provided.
[0019]
Further, a display 207 that displays a map around the current position, a mark indicating the current position, and the like, a switch 204 that receives a command to switch the scale of the map displayed on the display 207 from the driver, and stores digital map data A CD-ROM 205 and a driver 206 for reading map data from the CD-ROM 205. Further, a controller 208 that controls the operation of each peripheral device described above is provided.
[0020]
Next, the controller 208 includes an A / D converter 209 that converts the signal (analog) of the angular velocity sensor 201 into a digital signal, and an A / D converter 210 that converts the signal (analog) of the azimuth sensor 202 into a digital signal. The counter 216 that counts the number of pulses output from the vehicle speed sensor 203 every 0.1 second, the parallel I / O 211 that inputs whether or not the switch 204 is pressed, and the map data read from the CD-ROM 205 are transferred. A direct memory access (DMA) controller 212 and a display processor 213 for displaying a map image on the display 207.
[0021]
The controller 208 further includes a microprocessor 214 and a memory 215. The microprocessor 214 outputs signals from the angular velocity sensor 201 obtained through the A / D converter 209, signals from the direction sensor 202 obtained through the A / D converter 210, and output pulses from the vehicle speed sensor 203 counted by the counter 216. Number, whether or not the switch 204 is input via the parallel I / O 211, the map data from the CD-ROM 205 obtained via the DMA controller 212 is received, and processing based on these signals is performed. The current position is calculated and displayed on the display 207 via the display processor 213. The vehicle position is displayed by superimposing an arrow mark or the like on the map already displayed on the display 207, as shown in FIG. Thereby, the user can know the current position of the vehicle on the map. The memory 215 includes a program that defines the contents of processing (to be described later) for realizing such operations, a ROM that stores various tables to be described later, and a work area when the microprocessor 214 performs processing. RAM to be used.
[0022]
Hereinafter, the operation of the current position calculation apparatus according to the present embodiment will be described.
[0023]
First, three processes will be described: a process for calculating the traveling direction and travel distance of the vehicle, a process for determining the current position of the vehicle from the calculated traveling direction and distance, and a process for displaying the obtained vehicle position and direction.
[0024]
FIG. 3 illustrates the flow of processing for calculating the traveling direction and travel distance of the vehicle.
[0025]
This process is a routine of the microprocessor 214 that is activated and executed at a constant cycle, for example, every 100 ms.
[0026]
In this routine, first, the output value of the angular velocity sensor 201 is read from the A / D converter 209 (step 401). Since a change in direction is output as the output value of the angular velocity sensor 201, only a relative value in the traveling direction of the vehicle can be detected. Therefore, next, the output value of the azimuth sensor 202 is read from the A / D converter 210 (step 402), and the absolute azimuth calculated based on the output value of the azimuth sensor 202 and the azimuth change output from the angular velocity sensor 201 ( The estimated azimuth of the vehicle is determined using (angular velocity output) (step 403).
[0027]
For example, when the vehicle speed is low for a long time, the angular velocity sensor 201 has a large error. Therefore, when the vehicle speed is low for a certain time or more, only the direction output by the direction sensor 202 is used. .
[0028]
Next, the number of pulses output from the vehicle speed sensor 203 is counted by the counter 216 every 0.1 second, and the counted value is read (step 404). By multiplying the read value by a distance coefficient R, a distance advanced in 0.1 seconds is obtained (step 405). A method for obtaining the distance coefficient R will be described later.
[0029]
Next, the travel distance value per 0.1 second obtained in this way is added to the previously obtained value to check whether the travel distance of the vehicle has reached 20 m (step 406). If not (No in step 406), the current process is terminated and a new process is started.
[0030]
As a result of the travel distance calculation process, when the accumulated travel distance becomes a certain distance, for example, 20 m (Yes in Step 406), the traveling direction and the travel distance (20 m) at that time are output (Step 407). In step 407, the accumulated distance is further initialized, and accumulation of the travel distance is newly started.
[0031]
Next, processing for obtaining the current position of the vehicle based on the calculated traveling direction and travel distance will be described.
[0032]
FIG. 4 shows the flow of this process.
[0033]
This processing is a routine of the microprocessor 214 that is activated and executed in response to the output of the traveling direction and travel distance from FIG. That is, this process is started every time the vehicle travels 20 meters.
[0034]
In this process, first, the traveling direction and the travel distance output in step 407 are read (step 501). Next, based on these values, the movement amount of the vehicle is obtained separately in the latitude and longitude directions. Further, the movement amount in each direction is added to the current position of the vehicle obtained in the previous process to obtain the current position (A) (step 502).
[0035]
If there is no previously obtained position, such as immediately after the start of the device, the current position (A) is obtained using the separately set position as the previously obtained position.
[0036]
Next, a map around the obtained current position (A) is read from the CD-ROM 205 via the driver 206 and the DMA controller 213, and within a preset distance D centered on the current position (A). Some road data (line segment) is extracted (step 503).
[0037]
As the road data, for example, as shown in FIG. 6, a plurality of line segments 81 to 85 that connect two points are approximated, and those line segments are expressed by the coordinates of the start point and the end point. be able to. For example, the line segment 83 is expressed by its start point (x3, y3) and end point (x4, y4).
[0038]
Next, from the line segments extracted in step 503, only those line segments whose azimuth is within the predetermined traveling direction and predetermined value are extracted (step 504). Further, a perpendicular is drawn from the current position (A) for all the extracted line segments, and the length of the perpendicular is obtained (step 505). In addition, a point where each line segment intersects with a perpendicular line (line segment perpendicular) is a candidate point.
Next, error cost values defined below are calculated for all candidate points obtained in step 504 using the lengths of the perpendicular lines.
[0039]
Error cost = α × | Advance direction−Line segment direction | + β | Length of perpendicular |
Here, α and β are weighting factors. The values of these coefficients may be changed depending on whether the current position is important in selecting the road on which the current position or the road is shifted, or the current position or the road is shifted. For example, when importance is attached to a road whose direction is close to the traveling direction, α is increased.
[0040]
If the error cost of each line segment is calculated, the candidate point with the smallest error cost value is selected from the line segments for which the error cost has been calculated (step 506), and the selected candidate point is corrected. The current position (B) is set (step 507).
[0041]
Incidentally, in step 503 described above, road data (line segment) within a preset distance D centered on the current position (A) is extracted. This distance D was selected in the previous step 506. It may be a value determined based on the value of the road error cost.
[0042]
Here, the reason for obtaining the search range based on the error cost is that if the error cost is large, the reliability of the accuracy of the current position (B) obtained last time is considered to be low. This is because searching for a road is more appropriate for finding the correct current position.
[0043]
The method for obtaining the current position (B) may be as follows.
[0044]
That is, first, candidate points are obtained from a certain position as described above. Then, the current position (B) is obtained from among the candidate points as described above. Then, for the next current position (B), each candidate point obtained last time is set as the position obtained last time, the candidate point for each is obtained, and the current position (B) is obtained from all the obtained candidate points. Hereinafter, similarly, each candidate point obtained last time is set as the position obtained last time, the current position (A) for each is obtained, candidate points are obtained from each obtained current position (A), and all the obtained candidate points are obtained. The process for obtaining the current position (B) is repeated. Therefore, in this case, each next candidate point is obtained based on a candidate point different from the candidate point selected as the previous current position (B). Further, the next current position (B) may be obtained based on a candidate point different from the candidate point selected as the previous current position (B).
[0045]
Next, processing for displaying the obtained vehicle position and direction will be described.
[0046]
FIG. 5 shows the flow of this process.
[0047]
This process is a routine of the microprocessor 214 that is activated and executed every second.
[0048]
First, it is determined by checking the contents of the parallel I / O 211 whether the switch 204 is instructed to change the scale of the map (step 601). If it has been pressed (Yes in step 601), a predetermined scale flag is set correspondingly (step 602).
[0049]
Next, the current position (B) obtained in the process of FIG. 4 is read (step 603), and a map of a scale corresponding to the contents of the scale flag switched in step 602 is displayed on the display 207, for example, FIG. The screen is displayed in such a state (step 604).
[0050]
Then, the current position (B) of the vehicle and the traveling direction of the vehicle are displayed using, for example, the arrow symbol “↑” as shown in FIG. 2 (step 605). Finally, a north mark indicating north and a distance mark corresponding to the scale are displayed as shown in FIG. 2 so as to be superimposed on these (step 606).
[0051]
In the present embodiment, the vehicle position and direction are indicated by using the arrow symbols as described above. However, in the display form of the vehicle position and direction, the display state is clearly shown for the position and the traveling direction. If it exists, the form may be arbitrary. The same applies to the north mark and the like.
[0052]
Next, how to obtain the distance coefficient R used for calculating the distance in the processing step 405 of FIG. 3 will be described.
[0053]
As described above, the travel distance of the vehicle is obtained by multiplying the number of pulses output from the vehicle speed sensor 203 by the distance coefficient R. However, since the traveling distance of the vehicle per one rotation of the tire changes due to tire wear or the like, if the distance coefficient R is set to a fixed value, the distance cannot be obtained accurately as the vehicle travels. Therefore, in this embodiment, the current position (B) (step 508) obtained by the processing of FIG. 4 sequentially, the road direction obtained from the map data read from the CD-ROM 205 via the driver 206, and FIG. By comparing the vehicle direction (step 403) obtained by the processing, it is determined whether the current position (B) is advanced or delayed with respect to the actual position, and the distance coefficient R is dynamically corrected. .
[0054]
Such correction of the distance coefficient R can be performed as follows, for example.
[0055]
  That is, three correction variables Rsh, Ra, and Rshcb are introduced. Then, the distance coefficient R is dynamically corrected according to the distance coefficient R = R0 × (1 + Ra + Rsh + Rshcb). Here, R0 indicates an initial value of a predetermined distance coefficient R. Also, Rsh is shortTo correct the distance coefficient R periodicallyThe The correction variable Ra isThis is for correcting the distance coefficient R in the long term according to Rsh obtained while traveling 10 km. Rshcb is used to correct R by the amount corresponding to the probability of Rsh obtained when it is determined that Rsh obtained so far is not suitable for use as it is to obtain Ra. It is.
[0056]
Now, these correction variables Rsh, Rshcb, Ra are sequentially changed by the microprocessor 214 executing the following processing.
[0057]
In the following, first, the contents of this process will be described individually, and then how the correction variable Rshcb, the correction variable Rsh, and the correction variable Ra are changed by these processes during actual vehicle travel. Will be explained.
[0058]
First, an outline of how to obtain the correction variable Rsh will be described.
[0059]
The correction variable Rsh is determined in accordance with the actual way of turning of the vehicle at the location of the road curve.
[0060]
For example, it is assumed that the current position (B) output in step 508 in FIG. 4 travels on the road A in FIG. On the other hand, for example, the current position of the vehicle obtained from the traveling distance of the traveling azimuth of the vehicle with reference to point a of the current position (B) that is sequentially output a predetermined distance before the starting point o on the traveling curve. Assume that the trajectory is a trajectory that starts to bend from a point that exceeds the point o as indicated by a broken line in the figure.
[0061]
In this case, it can be estimated that the distance coefficient R is larger than the true value. This is because at the time when the vehicle has estimated that the vehicle has reached the curve using the distance coefficient R, it is considered that the vehicle has not actually reached the curve because the vehicle has not bend. Further, the degree that the distance coefficient R is larger than the true value can be estimated from the distance d in the figure that represents the distance between the point where the vehicle actually starts to bend and the curve start point o.
[0062]
Conversely, when the trajectory of the current position of the vehicle obtained from the travel distance in the traveling direction of the vehicle is a trajectory that starts to bend before reaching the intersection o, the distance coefficient R is smaller than the true value. It can be estimated. This is because the vehicle starts to bend before it is estimated using the distance coefficient R that the vehicle has reached the curve o, so that it is actually considered that the vehicle has already reached the curve o. Also in this case, the degree that the distance coefficient R is smaller than the true value can be estimated from the distance error d in the drawing that represents the distance between the point where the vehicle actually starts to turn and the curve o.
[0063]
Accordingly, it is possible to determine the direction and degree of deviation of the distance coefficient from the true value from d in the figure, and to determine the correction variable Rsh so as to cancel it.
[0064]
Alternatively, from the difference between the direction of the vehicle and the road, the vehicle starts to turn before it is estimated using the distance coefficient R that the vehicle has reached the curve o, or the distance coefficient R is calculated if the vehicle has reached the curve o. You may make it determine whether the vehicle started to bend after the time estimated using it. In this case, the degree by which the distance coefficient R deviates from the true value can be determined from the integrated value of the difference between the vehicle direction and the road direction.
[0065]
In the present embodiment, when the distance error d is detected in this way, the correction variable Rsh is obtained according to the value of the distance error d, and the distance coefficient R is corrected.
[0066]
Further, the correction of the distance coefficient R by the correction variable Rsh is performed as follows.
[0067]
That is, first, while traveling 300 m, by making the absolute value of Rsh larger than the value for obtaining the correct R, a correct value is gradually obtained as the current position (B) while traveling 300 m. This is presumed that when the distance error d is obtained, the erroneous current position (B) is obtained due to the error of the distance coefficient so far. However, here, if the current position (B) is corrected to a correct position at a time, the display mark of the current position described above moves in the direction opposite to the traveling direction or moves to a position away from the driver at once. Will be confusing. Therefore, while traveling 300 m, the absolute value of Rsh is made larger than the value for obtaining the correct R, and while traveling 300 m, the mark display position of the current position (B) is gradually corrected to the correct position. To go.
[0068]
Then, after traveling 300 m, Rsh is corrected again to a value for obtaining the correct Rsh, and thereafter the current position (B) is obtained with the correct distance coefficient R. Furthermore, in this embodiment, when the obtained Rsh is valid for 2 km or more (when no new Rsh is obtained), this Rsh is gradually decreased. The case where the vehicle is effective for 2 km or more is because there is no curve for 2 km or more, and accordingly, the appropriateness of Rsh is not evaluated for 2 km or more. That is, in such a case, since the reliability of the appropriateness of Rsh is low, the value is gradually decreased so that the influence thereof is reduced.
[0069]
In the following, in order to facilitate understanding of the explanation, Rsh used while traveling 300 m is represented as Rsh300, and Rsh obtained thereafter is represented as Rsh1.
[0070]
  Next, the correction variable Ra is a correction variable for correcting the distance coefficient R in accordance with Rsh1 and Rsh300 obtained during 10 km every time the vehicle travels 10 km. Correction variableRaIs a value Lcom obtained by weighting the mileage for which the value was effective to each value of Ra + Rsh + Rshcb that sequentially changes during 10 km,
Ra = {(10 km + Lcom) / 10 km} −1.
[0071]
When Ra is obtained, Rsh1 or Rsh300 and Rshcb that have been valid up to that point are initialized to zero.
[0072]
Thus, Ra is used to correct the distance coefficient R to a value obtained by approximately averaging the values of each R used during the 10 km every 10 km. However, the current position (B) in the process of FIG. 4 is a position that is not continuous with the position where the previously estimated vehicle exists, such as a position on a road different from the road where the current position (B) has existed so far. Can be estimated that Rsh1 and Rsh300 obtained so far are not correct. This is because there is a possibility that Rsh1 or Rsh300 may be obtained from the distance error d obtained between the bend of the road that is not actually traveling.
[0073]
Further, as described above, the current position (B) is obtained from among the candidate points, the current position (B) is obtained, and the next current position (B) is obtained last time for each candidate point obtained last time. If the candidate point is obtained for each, and the current position (B) is obtained from all the obtained candidate points, the candidate point that is the current position (B) obtained this time is If the obtained current position (B) is not the candidate point calculated as the previously obtained position, the position obtained based on the position that is not the position where the previously estimated vehicle exists is estimated as the position where the vehicle exists. That's right. Therefore, also in such a case, since the position where the vehicle estimated last time and the position which is not continuous are estimated as the position where the vehicle exists, it is estimated that Rsh1 and Rsh300 obtained so far are not correct. can do.
[0074]
Similarly, when the vehicle bends approximately 90 degrees (for example, from 70 degrees to 110 degrees), Rsh1 and Rsh300 may be obtained as values significantly different from the values for obtaining the correct distance coefficient R. . This is because, for example, at an intersection having a plurality of lanes, a greatly different distance error d is obtained depending on which lane the vehicle has been turned on, so that a greatly incorrect Rsh1 or Rsh300 may be obtained depending on the turn. It is. Even when the vehicle bends at an angle smaller than approximately 90 degrees, on a road having a plurality of lanes, a different distance error d is obtained depending on which lane the vehicle travels and bends. It is smaller than the case where it bends. Therefore, in this embodiment, the deviation and influence when the vehicle is bent at an angle smaller than approximately 90 degrees are allowed.
[0075]
Therefore, in the present embodiment, when the current position (B) obtained in the process of FIG. 4 is not continuous with the previously obtained current position (B) (when there is a position jump), the current position (B) is bent by approximately 90 degrees. In this case, the value of Lcom (Ra + Rsh + Rshcb) obtained up to that time after the previous Ra is obtained is weighted with the distance traveled by that value, or Rsh1 or Rsh300 at that time is initialized. At the same time, 10 km is measured again.
[0076]
  However, if this is done, Rsh1 obtained from the time when Ra was obtained last time until the time when the current position (B) obtained last time is determined as the current position (B) or when the current position (B) is bent is approximately 90 degrees. And all information of Rsh300 is lost. Therefore, when this is done, for example, as shown in FIG. 8, even when the correct Rsh and Rsh300 are obtained halfway, this experience cannot be reflected in the distance coefficient R thereafter..Figure 8a shows a road that has not been accidentally driven after the road junction.InAfter estimating the current position (B),This is an example in which the current position (B) can be estimated on the road that is actually running, and FIG. 8b is an example in which the intersection is turned right after running on a smoothly curved road for a while.
[0077]
Therefore, in the present embodiment, the correction variable Rshcb is further introduced and the intersection is turned or the position on the road different from the road where the current position (B) has existed so far is obtained. Therefore, Lcom and Rsh1 or Rsh300 are obtained. In the case of initializing Rsh300, the Rsh300 that has been obtained up to that point in time from the time when Ra is obtained, and after the Rsh300 has been obtained, the next Rsh300 has not been obtained before traveling at least 2 km. Finds a value proportional to the Rsh300 and sufficiently smaller than the Rsh300, and sets the sum as Rshcb, and corrects the distance coefficient R by this value.
[0078]
Hereinafter, details of processing performed by the microprocessor 214 in order to calculate the correction variables Ra, Rsh1, Rsh300, and Rshcb in this manner will be described.
[0079]
First, FIG. 9 shows an initialization process performed when the apparatus is activated.
[0080]
In this process, all variables d, La, Rsh (Rsh1 / Rsh300), Ra, Rshcb, l, lcom, i, Rshcb_dt (i), and Rsh0 used in the subsequent processes are all initialized to zero.
[0081]
Next, FIG. 10 shows a process executed every time the vehicle travels 20 m after such an initialization process.
[0082]
In this process, the travel distance and travel direction calculated using each sensor 201, 202, 203 are read as sensor data (step 801). Next, the map data read from the CD-ROM 205 to the driver 206 is read (step 802).
[0083]
Next, a variable La representing the travel distance since the previous correction variable Ra was obtained, a variable Lshcb (i-1) representing the travel distance since the previous correction variable Rsh300 was obtained, and 20 m as the value at that time. Update by adding.
[0084]
Next, it is determined whether or not flag is 0 (step 804). The flag is a flag having a value of 1 only during a period in which the Rsh 300 is valid, that is, during a distance of 300 m after the distance error d is obtained and the Rsh 300 is calculated.
[0085]
If the flag is 0, the distance error d described above is obtained. Then, the value of the variable Lsh representing the travel distance since the previous correction variable Rsh1 was obtained is updated by adding 20 m to the value at that time (step 806).
[0086]
On the other hand, when the flag is 1, since it is a period in which Rsh300 is valid, that is, a period in which the distance error d is obtained and Rsh300 is calculated and the vehicle has not traveled 300 m, steps 805 and 806 are not performed.
[0087]
  Next, it is determined whether or not the distance error d obtained in step 805 is 0 (step 807). If the distance error d obtained in step 805 is not 0 and the distance error d is not 0 during the period when the Rsh 300 is valid, the Rsh calculation process in step 808 is performed. Note that the distance error d does not become zero during the period in which the Rsh 300 is valid because the distance error d used to obtain the Rsh 300 is maintained. In the Rsh calculation process (step 808), as described later, Rsh300 is calculated or Rsh1 is calculated from Rsh300. Further, in order to obtain Rshcb described above later, the value corresponding to the calculated Rsh300 is set to the array Rsh.cbThe process of saving in _dt is performed.
[0088]
Next, in step 809, it is determined whether or not the value of the variable Lsh representing the travel distance since the previous correction variable Rsh1 was changed exceeds 2 km. If the value is exceeded, the value of the previous correction variable Rsh1 is changed. A value obtained by multiplying Lsh representing the travel distance from the current value by Ra + Rsh + Rshcb at that time to Lcom at that time is defined as a new Lcom. This Lcom is used to calculate the correction coefficient Ra every 10 km as described above.
[0089]
Next, as described above, Rsh reduction processing is performed to gradually reduce the value of Rsh1 when the effective travel distance exceeds 2 km. The Rsh reduction process is performed by subtracting a positive constant n from Rsh1 when Rsh1 is positive and adding it when Rsh1 is negative. However, when the value obtained by subtracting the constant n from the positive Rsh1 becomes a negative value, Rsh1 is set to 0. Further, when the value obtained by subtracting the constant n from negative Rsh1 becomes a positive value, Rsh1 is set to 0. Further, when the value of Rsh1 is 0, it remains 0.
[0090]
Then, Lsh is reset to 0 again in order to manage the effective distance of Rsh subjected to the reduction process (step 812).
[0091]
On the other hand, in step 809, if it is not determined that the value of the variable Lsh representing the travel distance since the previous correction variable Rsh1 was changed does not exceed 2 km, the processing of steps 810 to 812 is not performed.
[0092]
Next, in step 813, a position that is not continuous with the current position (B) where the previously estimated vehicle exists is estimated as the current position (B) in the process of FIG. Determine if you have turned 90 degrees. If it is neither, the process is terminated.
[0093]
On the other hand, in the process of step 813, the current position (B) as the current position (B) is estimated as a position that is not continuous with the current position (B) where the previously estimated vehicle is present, or has it been bent approximately 90 degrees? As described above, the Lcom obtained up to that time (the value obtained by weighting the mileage for which the value was effective), or Rsh1 or Rsh300 at that time, as described above. Is initialized, and La reset processing is performed again to measure 10 km from that point (step 814). In this process, as described above, Rshcb is obtained and the distance coefficient R is corrected.
[0094]
Details of each process will be described below.
[0095]
First, the process for calculating the distance error d in step 805 will be described.
[0096]
FIG. 11 shows the procedure of this process.
[0097]
As shown in the figure, in this process, first, it is determined whether or not the vehicle has made a right or left turn (step 1101), it is determined whether or not a distance error exists (step 1102). The distance error d described in (1) is calculated (step 1103). However, at this time, the sign of the distance error d is negative when the vehicle goes inside the curve, and the sign of the distance error d is positive when the vehicle goes outside the curve.
[0098]
On the other hand, if the vehicle is not turning right or left, or if there is no distance error, the process is terminated.
[0099]
Next, the correction variable Rsh calculation process in step 808 of FIG. 10 will be described.
[0100]
FIG. 12 shows a processing procedure for calculating the correction variable Rsh.
[0101]
In this process, it is first determined whether or not flag is 0 (step 1201). When flag is 0, Rsh300 is not valid, and a non-zero distance error d is obtained (see FIG. 10), so that a correction variable Rsh300 is obtained according to the distance error d (step 1203). . However, before Rsh is changed, a value obtained by multiplying Lsh representing the distance traveled up to now by the value of Ra + Rsh + Rshcb after the value of correction variable Rsh1 was changed last time is added to that time Lcom. Is a new Lcom. Further, Rsh1 at that time is stored as Rsh0 (step 1202). The correction variable Rsh300 is obtained from the distance error d as follows.
[0102]
That is, the sign of the change dRsh given to the correction variable Rsh is determined by the correspondence shown in FIG. 13, and the absolute value of the change dRsh given to the correction variable Rsh is obtained by multiplying the absolute value of the distance error d by a predetermined coefficient j. And Rsh300 is calculated | required according to Rsh300 = Rsh0 + dRsh.
[0103]
  Further, a value corresponding to the calculated size of Rsh300 is set., Rshcb_dt (i)(Step 1204), the above-mentioned flag is set to 1, and the variable l representing the travel distance after Rsh300 is calculated is set to 0 (step 1205), and the process is terminated. The variable l is used to determine whether or not the vehicle has traveled 300 m after Rsh300 is calculated.
[0104]
  Here, the registration in step 1205 is performed by the processing shown in FIG. That is, it is determined whether or not the current i exceeds the number of elements of the array Rshcb_dt (step 1301). If it exceeds, there is no room for registering this value in the array, and the process is terminated. On the other hand, if not exceeded, the i-th element of the array Rshcb_dtRshcb_dt (i)As a result, a value obtained by multiplying a predetermined constant of Rsh300 is registered (step 1303), and the i-th element Lshcb (i) of the array Lshcb for representing the travel distance from when this Rsh300 is obtained until the next Rsh300 is obtained is obtained. It is set to 0 (step 1303). Then, i is incremented by 1 for the next process and the process is terminated.
[0105]
Thereafter, Lshcb (i-1) corresponding to Rshcb_dt (i-1) registered this time is sequentially updated until i is advanced by 1 in step 803 of FIG.
[0106]
By such a process, values proportional to the obtained Rsh300 are sequentially accumulated in the array Rshcb_dt. Further, in the array Lshcb, corresponding to each element of the array Rshcb_dt, the travel distance from when the Rsh300 in which the element is proportional to when the next Rsh300 is determined is sequentially accumulated.
[0107]
Now, returning to FIG. 12, if it is determined in step 1201 that the flag is not 0, since Rsh300 is still valid, l indicating the travel distance after Rsh300 is calculated exceeds 300 m. (Step 1206), if not exceeded, l is updated to represent the travel distance from the time Rsh300 is calculated to the present (step 1207), and the process ends.
[0108]
On the other hand, if l exceeds 300 m, a value obtained by multiplying l representing the travel distance from when the correction variable Rsh300 is calculated by the value of Ra + Rsh + Rshcb at that time to the value of Lcom at that time is added. A new Lcom is set (step 1208), distance errors d, l, and flag are reset to 0 (step 1209), and Rsh1 is obtained from Rsh300. Rsh1 is obtained by adding a value obtained by multiplying Rsh300 by a positive constant smaller than 1 to the stored Rsh0 (Rsh1 obtained last time) (step 1210). By this processing, Rsh is changed from Rsh300 to Rsh1.
[0109]
Note that a value sufficiently larger than Rsh1 may be used as dRsh, and Rsh300 = dRsh may be set for 300 m after Rsh300 is obtained.
[0110]
Next, the La reset process in step 814 in FIG. 10 will be described.
[0111]
FIG. 15 shows the processing procedure of this processing.
[0112]
As shown in the figure, in this process, i = 0 to imax (parallel data Lshcb For each i up to dt (the number of elements of dt) (steps 1501, 1505, 1506), it is determined whether or not Lshcb (i) exceeds 2 km (step 1502). A process of adding the value of dt (i) to Rshcb at that time (step 1503) is performed, and then Rshcb dt (i) is initialized to 0.
[0113]
Thereafter, i, Rsh, La, and Lcom are reset to 0 (step 1507), and the process is terminated.
[0114]
In the process of step 1507, the current position (B) in the process shown in FIG. In this case, Lcom (value obtained by weighting the mileage for which the value was effective to each value of Ra + Rsh + Rshcb) obtained from the previous time Ra is initialized, and Rsh at that time is initialized. From that point on, the travel distance of 10 km is measured again using La.
[0115]
In addition, by the processing from step 1501 to step 1506, the array Rshcb Of the values proportional to each Rsh300 accumulated in dt, Rshcb reflecting the value of the vehicle that has traveled 2 km or more is obtained.
[0116]
In the above, the process activated every 20 m shown in FIG. 10 has been described.
[0117]
Hereinafter, a process for obtaining the remaining correction variable Ra will be described.
[0118]
This process is performed when the vehicle travels 10 km after the previous Ra is obtained, or the current position (B) where the previously estimated vehicle is present is estimated as a position that is not continuous with the current position (B), or approximately 90 degrees. This is executed when you travel 10 km after making a turn.
[0119]
That is, it is executed when the variable La updated in step 803 in FIG. 10 exceeds 10 km.
[0120]
FIG. 16 shows the procedure of this process.
[0121]
As shown in the figure, in this process, as described above, Ra is set to a value Lcom obtained by weighting the mileage for which the value was effective to each value of R that is sequentially changed by Rsh1, Rsh300, and Rshcb during 10 km. make use of,
Ra = {(10 km + Lcom) / 10 km} −1
(Step 1601).
[0122]
When Ra is obtained, Rsh1, Rsh300, Rshcb, Lcom, La, Lsh, i are initialized to 0 (step 1602), and the process ends.
[0123]
The embodiment of the present invention has been described above.
[0124]
As described above, in this embodiment, the error of the distance coefficient R depends on the difference between the traveling state when it is assumed that the vehicle is traveling at the estimated current position and the actual traveling state represented by the sensor measurement value. Estimate and correct this. Therefore, no special external equipment for correcting the distance coefficient R is necessary, and appropriate correction can be performed regardless of the driving condition, and even when driving on a road with few features such as an intersection. Correction can be performed. Accordingly, it is possible to always calculate the travel distance with better accuracy and obtain the current position of the vehicle with higher accuracy. In addition, when the current position (B) is determined to be a position that is not continuous with the current position (B) obtained last time, or when an approximately 90 degrees turn at an intersection or the like, the error of the distance coefficient R is estimated. Even when it is difficult to obtain, the error of the distance coefficient R estimated before that can be reflected in the distance coefficient R to the extent corresponding to the reliability.
[0125]
【The invention's effect】
As described above, according to the present invention, in order to accurately determine the travel distance even when traveling on a road with few features, regardless of the traveling speed of the vehicle and without requiring special equipment. It is possible to provide a current position calculation device that can determine the vehicle position with high accuracy by correcting the distance coefficient to be used.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a current position calculation apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram showing a display example of a map and a current position performed in one embodiment of the present invention.
FIG. 3 is a flowchart showing a procedure for calculating a traveling direction and a distance performed in an embodiment of the present invention.
FIG. 4 is a flowchart showing a procedure of a current position calculation process performed in an embodiment of the present invention.
FIG. 5 is a flowchart showing a procedure of a current position display process performed in an embodiment of the present invention.
FIG. 6 is a diagram showing a road expression format in map data used in an embodiment of the present invention.
FIG. 7 is a diagram showing a distance error d used in the present invention.
FIG. 8 is a diagram showing an example of a current position history displayed in an embodiment of the present invention.
FIG. 9 is a first flowchart showing a procedure of processing for correcting a distance coefficient performed in an embodiment of the present invention.
FIG. 10 is a second flowchart showing a procedure of processing for correcting a distance coefficient performed in an embodiment of the present invention.
FIG. 11 is a third flowchart showing a procedure of processing for correcting a distance coefficient performed in an embodiment of the present invention.
FIG. 12 is a fourth flowchart showing a procedure of processing for correcting a distance coefficient performed in an embodiment of the present invention.
FIG. 13 is a diagram showing a positive / negative correspondence relationship between a distance error d and a correction variable Rch used in one embodiment of the present invention.
FIG. 14 is a fifth flowchart showing a procedure of a process for correcting the distance coefficient performed in the embodiment of the present invention.
FIG. 15 is a sixth flowchart showing a procedure of processing for correcting a distance coefficient performed in an embodiment of the present invention.
FIG. 16 is a seventh flowchart showing a procedure of processing for correcting a distance coefficient performed in an embodiment of the present invention.
[Explanation of symbols]
201 Angular velocity sensor
202 Direction sensor
203 Vehicle speed sensor
204 switches
205 CD-ROM
206 CD-ROM driver
207 display
208 controller

Claims (3)

車両の現在位置を算出する現在位置算出装置であって、
道路地図を表す地図データを記憶する手段と、
車両の進行方位を検出する手段と、
逐次、車両に搭載された車速センサから取得したパルス数および設定された距離係数を用いて車両の走行距離を算出する走行距離算出手段と、
逐次、算出された車両の走行距離、検出された車両の進行方位、および前記地図データの表す道路地図を用いて、車両が存在する道路と当該道路上の車両の存在する位置とを推定する手段と、
前記推定された道路上の車両の存在する位置を車両が走行している場合の走行状況と、前記検出された進行方位および前記算出された走行距離から求まる車両の走行状況とのずれ量を算出する誤差算出手段と、
前記誤差算出手段がずれ量を算出した場合、当該算出したずれ量に応じて定まる補正量を求めて、
当該補正量と所定の関係を有する値を求めて、該求めた値を、該補正量を求めてから次に該補正量を算出するまでの間の車両の走行距離に対応付けて記憶して、
前回推定した車両が存在する位置と連続的でない位置が車両の存在する位置として推定された場合に、前記補正量を0に初期化すると共に、前記記憶している値の中の所定距離以上の走行距離に対応付けられている値の合計値を求めて、該求めた合計値を用いて前記距離係数を補正する距離係数補正手段と、を備える
ことを特徴とする現在位置算出装置。
A current position calculation device for calculating a current position of a vehicle,
Means for storing map data representing a road map;
Means for detecting the traveling direction of the vehicle;
Sequentially, travel distance calculation means for calculating the travel distance of the vehicle using the number of pulses acquired from the vehicle speed sensor mounted on the vehicle and the set distance coefficient;
Means for sequentially estimating the road where the vehicle exists and the position where the vehicle exists on the road using the calculated travel distance of the vehicle, the detected traveling direction of the vehicle, and the road map represented by the map data. When,
Calculates the amount of deviation between the traveling state when the vehicle is traveling on the estimated position of the vehicle on the road and the traveling state of the vehicle obtained from the detected traveling direction and the calculated traveling distance Error calculating means for
When the error calculating means calculates the deviation amount, a correction amount determined according to the calculated deviation amount is obtained,
Seeking value with the correction amount and the predetermined relationship, the determined value, stored in association with the travel distance of the vehicle until then calculates the correction amount from seeking the correction amount ,
If the continuous non positions as there are vehicles in which the previously estimated is estimated as the position of presence of the vehicle, the correction amount is initialized to 0, the predetermined distance or more in the value that the memory A current position calculation comprising: a distance coefficient correction unit that calculates a total value of values associated with the travel distance and corrects the distance coefficient using the calculated total value. apparatus.
車両の現在位置を算出する現在位置算出装置であって、
道路地図を表す地図データを記憶する手段と、
車両の進行方位を検出する手段と、
逐次、車両に搭載された車速センサから取得したパルス数および設定された距離係数を用いて車両の走行距離を算出する走行距離算出手段と、
逐次、算出された車両の走行距離、検出された車両の進行方位、および前記地図データの表す道路地図を用いて、車両が存在する道路と当該道路上の車両の存在する位置とを推定する手段と、
前記推定された道路上の車両の存在する位置を車両が走行している場合の走行状況と、前記検出された進行方位および前記算出された走行距離から求まる車両の走行状況とのずれ量を算出する誤差算出手段と、
前記誤差算出手段がずれ量を算出した場合、当該算出したずれ量に応じて定まる補正量を求めて、
当該補正量と所定の関係を有する値を求めて、該求めた値を、該補正量を求めてから次に該補正量を算出するまでの間の車両の走行距離に対応付けて記憶して、
車両が略直角に右折もしくは左折した場合に、前記補正量を0に初期化すると共に、前記記憶している値の中の所定距離以上の走行距離に対応付けられている値の合計値を求めて、該求めた合計値を用いて前記距離係数を補正する距離係数補正手段と、を備える
ことを特徴とする現在位置算出装置。
A current position calculation device for calculating a current position of a vehicle,
Means for storing map data representing a road map;
Means for detecting the traveling direction of the vehicle;
Sequentially, travel distance calculation means for calculating the travel distance of the vehicle using the number of pulses acquired from the vehicle speed sensor mounted on the vehicle and the set distance coefficient;
Means for sequentially estimating the road where the vehicle exists and the position where the vehicle exists on the road using the calculated travel distance of the vehicle, the detected traveling direction of the vehicle, and the road map represented by the map data. When,
Calculates the amount of deviation between the traveling state when the vehicle is traveling on the estimated position of the vehicle on the road and the traveling state of the vehicle obtained from the detected traveling direction and the calculated traveling distance Error calculating means for
When the error calculating means calculates the deviation amount, a correction amount determined according to the calculated deviation amount is obtained,
Seeking value with the correction amount and the predetermined relationship, the determined value, stored in association with the travel distance of the vehicle until then calculates the correction amount from seeking the correction amount ,
If the vehicle has a substantially right angle turn right or left, with initializing the correction amount to 0, obtains the sum of values associated with the predetermined distance or more travel distance in the value that the memory Te, the current position calculating apparatus according to claim <br/> to and a distance factor correcting means for correcting the distance factor with the total value obtained said.
請求項1または2記載の現在位置算出装置であって、
前記誤差算出手段は、
前記ずれ量を車両が走行上曲がった場合に算出すること
を特徴とする現在位置算出装置。
The current position calculation device according to claim 1 or 2,
The error calculation means includes
A current position calculating device, wherein the amount of deviation is calculated when the vehicle bends due to running.
JP9721495A 1995-04-21 1995-04-21 Current position calculation device Expired - Lifetime JP3764507B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9721495A JP3764507B2 (en) 1995-04-21 1995-04-21 Current position calculation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9721495A JP3764507B2 (en) 1995-04-21 1995-04-21 Current position calculation device

Publications (2)

Publication Number Publication Date
JPH08292047A JPH08292047A (en) 1996-11-05
JP3764507B2 true JP3764507B2 (en) 2006-04-12

Family

ID=14186380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9721495A Expired - Lifetime JP3764507B2 (en) 1995-04-21 1995-04-21 Current position calculation device

Country Status (1)

Country Link
JP (1) JP3764507B2 (en)

Also Published As

Publication number Publication date
JPH08292047A (en) 1996-11-05

Similar Documents

Publication Publication Date Title
JP3578512B2 (en) Current position calculating device and distance coefficient correcting method thereof
JP3578511B2 (en) Current position calculation device
US5839087A (en) Current position calculating system for a vehicle having a function for correcting a vehicle direction
JP3634006B2 (en) Current position calculation device
JP3764507B2 (en) Current position calculation device
JP3596939B2 (en) Current position calculation device
JP3679456B2 (en) Current position calculation device
JP3545798B2 (en) Current position calculation device
JP3732548B2 (en) Current position calculation device and distance coefficient correction method thereof
JP3545838B2 (en) Current position calculation device
JP3596943B2 (en) Current position calculation system and current position calculation method
JP3672351B2 (en) Current position calculation device and distance coefficient correction method thereof
JP3599420B2 (en) Current position calculation device
JP3679451B2 (en) Current position calculation device
JP3545837B2 (en) Current position calculation device
JP3587904B2 (en) Current position calculation device
JP3599423B2 (en) Current position calculation device
JP3596941B2 (en) Current position calculation device
JP3569028B2 (en) Current position calculation device
JP3599421B2 (en) Current position calculation device
JP3679449B2 (en) Method for correcting display position of current position in current position calculation device and current position calculation device
JPH08334360A (en) Present location calculating device
JP3573526B2 (en) Current position calculation device
JP3596944B2 (en) Current position calculation system and current position calculation method
JP3545836B2 (en) Current position calculation device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060120

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090127

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140127

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140127

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140127

Year of fee payment: 8

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140127

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140127

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term