JP3573526B2 - 現在位置算出装置 - Google Patents
現在位置算出装置 Download PDFInfo
- Publication number
- JP3573526B2 JP3573526B2 JP14356195A JP14356195A JP3573526B2 JP 3573526 B2 JP3573526 B2 JP 3573526B2 JP 14356195 A JP14356195 A JP 14356195A JP 14356195 A JP14356195 A JP 14356195A JP 3573526 B2 JP3573526 B2 JP 3573526B2
- Authority
- JP
- Japan
- Prior art keywords
- vehicle
- road
- difference
- distance
- traveling
- 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
Links
- 238000000034 method Methods 0.000 description 81
- 230000010354 integration Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005415 magnetization Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000005389 magnetism Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Instructional Devices (AREA)
- Navigation (AREA)
- Traffic Control Systems (AREA)
Description
【産業上の利用分野】
本発明は、車両等の移動体に搭載され、走行距離や進行方位等を測定して、これらより当該車両の現在位置を算出する現在位置算出装置に関するものであり、特に、走行距離の測定誤差を補正する技術に関するものである。
【0002】
【従来の技術】
従来、車両の現在位置は、ジャイロ等の方位センサにより測定した車両の進行方向と、車速センサまたは距離センサにより測定した車両の走行距離に基づいて算出することが行われている。
【0003】
また、車両の走行距離は、一般的には、トランスミッションの出力軸、または、タイヤの回転数を計測して、その回転数に、タイヤ1回転あたりに車両が進む距離である距離係数を乗ずることにより求められている。
【0004】
また、このように車両の進行方向と走行距離から求めた現在位置の誤差を補正するために、特公平6−13972号記載の技術のように、道路データに整合するように、求められた車両の現在位置を修正する、いわゆる、マップマッチングの技術が知られている。このマップマッチングの技術によれば、位置算出の精度を高めることができる。
【0005】
ところで、走行時には、タイヤの磨耗や、温度変化による膨張等により、タイヤの直径、すなわち、距離係数が時事刻々と変化する。このため、走行距離の算出において誤差が発生し、現在位置の算出が高精度に行えなくなる。たとえば、タイヤ1回転あたりの走行距離係数に、1%の誤差が存在すると、100km走行した場合、1kmの誤差が発生してしまう。
【0006】
このような走行距離の測定誤差は、通常の道路を走行している場合は、前述したマップマッチングの技術により、ある程度修正できる。しかし、高速道路等の道路を走行する際には、マップマッチングで利用できるカーブや交差点等の特徴が道路にないため、充分に誤差を修正することができなくなる。
【0007】
さらに、一旦、測定した現在位置と真の現在位置との間に1km程度の誤差が発生してしまうと、マップマッチングの技術によっては、正しい位置に補正することが困難になる。
【0008】
【発明が解決しようとする課題】
そこで、このような走行距離の測定の誤差を無くすために、道路地図上の道路と、車両の進行方位との整合性によって、タイヤ1回転あたりの距離係数を補正することが考えられる。
【0009】
しかし、方位センサにより測定した車両の進行方位は、常に正確であるとは限らない。たとえば、車体の着磁等により、測定値に一定のオフセットが生じることがある。また、これとは逆に、道路地図上の道路の方位も常に正確であるとは限らず、道路地図上での道路の描き方により、一定のオフセット角分、実際の道路の方位と異なる場合がある。
【0010】
そこで、本発明は、道路地図上の道路と、車両の進行方位との整合性を、より正しく評価し、距離係数を適正に補正することのできる現在位置算出装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
前記目的達成のために、本発明は、車輪の回転に伴い移動する車両に搭載され、当該車両の現在位置を算出する現在位置算出装置であって、
道路地図を表す地図データを記憶する手段と、
車両の進行方位を検出する手段と、
車輪の回転速度を検出する手段と、
検出された車輪の回転速度と、設定された距離係数に応じて車両の走行距離を算出する走行距離算出手段と、
検出された車両の走行距離と検出された車両の進行方位と前記地図データの表す道路地図に応じて、車両が存在する道路と当該道路上の車両の存在する位置を推定する手段と、
前記地図データが表す地図情報と車両の進行方位とに基づき、過去所定距離車両が走行する間の、車両の進行方位と推定された車両の存在する道路の方位との差の平均と、現在の車両の進行方位と推定された車両の存在する道路の方位との差とを求める方位差算出手段と、
前記現在の差から前記差の平均を減じた値に基づき、前記走行距離算出手段に設定された距離係数を補正する距離係数補正手段とを有することを特徴とする現在位置算出装置を提供する。
【0012】
【作用】
本発明に係る現在位置算出装置によれば、前記地図データが表す地図情報と車両の進行方位とに基づき、過去所定距離車両が走行する間の、車両の進行方位と推定された車両の存在する道路の方位との差の平均と、現在の車両の進行方位と推定された車両の存在する道路の方位との差とを求め、前記現在の差から前記差の平均を減じた値に基づき、前記走行距離算出手段に設定された距離係数を補正する。
【0013】
この差の平均には、前述した方位センサや道路地図上の道路のオフセット値を反映する。したがい、この差の平均を減ずることにより、オフセット値をキャンセルした道路と車両の方位差を、より正しく求めることができる。
【0014】
【実施例】
以下、本発明に係る現在位置算出装置の一実施例について説明する。
【0015】
図1に本実施例に係る現在位置算出装置の構成について説明する。
【0016】
すなわち、本実施例に係る現在位置算出装置は、車両のヨーレイトを検出することで進行方位変化を検出する角速度センサ201と、地磁気を検出することで車両の進行方位を検出する地磁気センサ等の方位センサ202と、車両のトランスミッションの出力軸の回転速度に比例した時間間隔でパルスを出力する車速センサ203を備えている。
【0017】
また、現在位置周辺の地図や現在位置を示すマーク等を表示するディスプレイ207と、ディスプレイ207に表示する地図の縮尺切り替えの指令をユーザ(運転者)から受け付けるスイッチ204と、デジタル地図データを記憶しておくCD−ROM205と、そのCD−ROM205から地図データを読みだすためのドライバ206とを備えている。また、以上に示した各周辺装置の動作の制御を行うコントローラ208を備えている。
【0018】
次に、コントローラ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とを有する。
【0019】
また、コントローラ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とを含んでいる。
【0020】
以下、本実施例に係る現在位置算出装置の動作について説明する。
【0021】
本現在位置算出装置は、車両の進行方位及び走行距離を算出する処理、算出された進行方位及び距離から車両の現在位置を決定し、道路と車両の方位差を求める処理、得られた車両位置および方位を表示する処理、距離係数を補正する処理の三つの処理を行う。
【0022】
図3に、車両の進行方位及び走行距離を算出する処理の流れを説明する。
【0023】
この処理は、一定周期、たとえば100mS毎に起動され実行されるマイクロプロセッサ214のルーチンである。
【0024】
このルーチンでは、最初、A/D変換器209から角速度センサ201の出力値を読み込む(ステップ301)。この角速度センサ201の出力値には、方位変化が出力されるので、車両の進行方向の相対的な値しか検出できない。このため、次に、A/D変換器210から方位センサ202の出力値を読み込み(ステップ302)、この方位センサ202の出力値により算出された絶対方位と角速度センサ201から出力される方位変化(角速度出力)とを用いて、車両の推定方位を決定する(ステップ303)。
【0025】
この方位の決定は、たとえば、長い時間、車速が低い時には、角速度センサ201の誤差が大きいので、一定時間以上車速が低い場合には、方位センサ202の出力する方位のみを利用するという方法により行う。
【0026】
次に、車速センサ203の出力するパルス数を、0.1秒毎に、カウンタ216で計数して、その計数値を読み込む(ステップ304)。この読み込んだ値に、距離係数Rを乗算することで、0.1秒間に進んだ距離を求める(ステップ405)。この距離係数Rの求め方については後述する。
【0027】
次に、このようにして求められた0.1秒間あたりの走行距離値を、前回得られた値に積算して、車両の走行距離が20mとなったかどうかを調べ(ステップ306)、20mに満たない場合(ステップ306でNo)、今回の処理を終了して、新たな処理を開始する。
【0028】
走行距離算出処理の結果、積算された走行距離が一定距離、例えば20mとなった場合(ステップ306でYes)、その時点での進行方向と走行距離(20m)とを出力する(ステップ307)。ステップ307では、さらに、積算距離を初期化して、新たに走行距離の積算を開始する。
【0029】
次に、算出された進行方位および走行距離に基づいて、車両の現在位置を求め、車両の方位と道路の方位との方位差を求める処理について説明する。
【0030】
図4に、この処理の流れを示す。
【0031】
本処理は、図3からの進行方位および走行距離が出力されるのを受けて起動され、実行されるマイクロプロセッサ214のルーチンである。すなわち、本処理は、車両が20m進む毎に起動される。
【0032】
さて、この処理では、まず、ステップ307で出力された進行方位と走行距離とを読み込む(ステップ401)。次に、地図データを、CD−ROM205から、ドライバ206およびDMAコントローラ213を介して読み込む(ステップ402)。そして、現在位置を求めるためのマップマッチング処理を行う(ステップ403)
図5に、このマップマッチング処理(ステップ403)の処理手順を示す。
【0033】
図示するように、この処理では、ステップ401で読み込んだ進行方位と走行距離それらの値に基づいて、車両の移動量を緯度経度方向、別々に、それぞれ求める。さらに、これらの各方向における移動量を、前回の処理で求められた車両の現在位置に加算して、現在位置(A)を求める(ステップ502)。
【0034】
もし、装置の始動直後など、前回求められた位置がない場合には、別途設定された位置を前回求められた位置として用いて現在位置(A)を求める。
【0035】
次に、ステップ402で読みだした地図データから、現在位置(A)を中心とする予め設定された距離D内にある道路データ(線分)を抜き出す(ステップ503)。
【0036】
なお、道路データとしては、たとえば、図6に示すように、2点間を結ぶ複数の線分81〜86で近似し、それら線分を、その始点と終点の座標によって表したもの等を用いることができる。たとえば、線分83は、その始点(x3、y3)と終点(x4、y4)によって表現するようにする。
【0037】
次に、ステップ503で抜き出された線分の中から、その線分の方位が、求められている進行方向と、所定値以内にある線分だけを抜き出す(ステップ504)。さらに、抜き出されたすべての線分に対し、現在位置(A)から垂線をおろし、その垂線の長さを求める(ステップ505)。
【0038】
次に、それら垂線の長さを用いて、ステップ504で抜き出されたすべての線分に対して、以下に定義されるエラーコスト値を算出する。
【0039】
エラーコスト=α×|進行方向−線分方位|+β×|垂線の長さ|
ここで、α、βは、重み係数である。これら係数の値は、進行方向と道路の方位のずれと現在位置と道路のずれのどちらを、現在位置が、その上にある道路を選択する上で重視するかによって変化させてよい。たとえば、進行方向と方位が近い道路を重視する場合は、αを大きくするようにする。
【0040】
そして、各線分のエラーコストが算出されたならば、エラーコストが算出された線分のうち、エラーコスト値が最も小さい線分を選び(ステップ506)、その選択された線分と垂線との交差する点(線分の垂線のあし)を、修正された現在位置(B)とし、出力する(ステップ507、508)。
【0041】
ところで、前述したステップ503では、現在位置(A)を中心とする予め設定された距離D内にある道路データ(線分)を抜き出したが、この距離Dは、前回行ったステップ506で選択した道路のエラーコストの値に基づいて決定する値でもよい。
【0042】
ここで、エラーコストに基づいて、検索範囲を求める理由は、エラーコストのが大きい場合は、前回求めた現在位置(B)の精度に対する信憑性が低いと考えられるので、より広い範囲を検索して道路を探す方が、正しい現在位置を求める上で適当であるからである。
【0043】
さて、このようにして求められた現在位置は後述する表示処理によって表示されることになる。
【0044】
さて、図4に戻り、マップマッチング処理(ステップ403)が終了すると、フラグfが0か否かを判定(ステップ404)、0であれば、、後述する距離係数を補正する処理において用いる車両と道路の方位差の平均θaveを求める処理(ステップ405〜411)を行う。
【0045】
一方、フラグfが0でなければ、θaveを求める処理(ステップ405〜411)を初期化するために、ステップ405〜411で用いる変数nとiを0に初期化して処理を終了する。フラグfは、後述する距離係数を補正する処理で値が制御されるフラグであり、値が1のときは、後述するように正確な現在位置が先のマップマッチング処理(ステップ403)で求まることができない。そこで、フラグfが0でなければ、車両と道路の方位差の平均θaveを求める処理(ステップ405〜411)を行わないようにしているのである。
【0046】
以下、車両と道路の方位差の平均θaveを求める処理(ステップ405〜411)について説明する。
【0047】
ステップ405では、図4の処理が実行されるたびに、その時点の車両方位とマップマッチング処理403で求めた仮想現在位置(B)が位置する道路の方位(車両の進行方位に近い方の方位)との差θdを、θd(n)に蓄積している。また、同様に、マップマッチング処理403で求めた仮想現在位置(B)が位置する道路の方位θlを、θlst(n)に蓄積している。nは0から19の値をサイクリックに取るカウンタ値であり、ステップ407において図4の処理が実行される度に1インクリメントされる。すなわち、図4の処理が実行される度に1づつ0から19まで増加し、19に達したら、また、0から増加する動作を繰り返す。
【0048】
次に、ステップ407でnとiを1インクリメントする。iは、車両と道路の方位差の平均θaveを求めるために用いることのできるθd(n)の個数を表すパラメ−タであり、初期値は0をとる。
【0049】
次のステップ408では、iが6に達したか否かを判定し、達していなければ、車両と道路の方位差の平均θaveを求めるために最低限必要な個数(6個)、車両と道路の方位差θdが蓄積されていないので、車両と道路の方位差の平均θaveを求めずに処理を終了する。
【0050】
一方、iが6以上の場合は、車両と道路の方位差θdが6個以上蓄積されたら、その時点nの値を参照し、θd(n)から最近蓄積された順にi個のθd(*)を読みだして、その平均を求め、これを車両と道路の方位差の平均θaveとする。たとえば、iが7でnが4であれば、θd(4)、θd(3)θd(2)、θd(1)、θd(0)、θd(19)、θd(18)の平均を取る。
【0051】
ただし、iの値(平均算出に用いる道路と車両の方位差の個数)には上限を設ける。ここで、この上限は、単調な直線上の道路を走行していない場合は、単調な直線上の道路を走行している場合に比べ低い値に制限することが好ましい。これは、単調な直線上の道路を走行していない場合は、道路形状も刻々変化していることより、一定以上過去の道路と車両の方位の差は、現在と異なる状況において発生したものであると考えることができるので、あまり過去の道路と車両の方位の差を、その平均の算出に用いることは適当でないと考えられるからである。
【0052】
一方、単調な直線上の道路を走行している場合には、より長い走行距離の間の道路と車両の方位の差を、その平均の算出に用いることが望ましい。前述したオフセット値を適正に算出することができるからである。
【0053】
そこで、本実施例では、iの値が16に達したら(ステップ409)、単調な直線上の道路を車両が走行しているかを判定し、走行している間はiの上限を20とし、走行していないiの上限を15に限定する。このiの値の上限を設定する処理を行うのが道路形状判定処理(ステップ410)である。
【0054】
図7に、この道路形状判定処理の処理手順を示す。
【0055】
図示するように、この処理では、現在の道路方位θlを求め(ステップ601)最近蓄積された順にi−1個のθlst(*)の各々と、現在の道路方位θlとの差の絶対値をそれぞれ求め、その値が最大であるものが1deg以下であるかを判定する(ステップ602)。
【0056】
そして、1deg以下であれば、単調な直線の道路を走行していると考え、iの上限を20にする(ステップ603、604)。一方、1degを超えていれば、単調な直線の道路を走行していないと考え、iの上限を15にする(ステップ605)。
このようにして、道路と車両の方位差の平均を求めるために用いられる、道路と車両の方位差は、6から20の間で変化することになる。
【0057】
以上、現在位置を求め、道路と車両の方位差の平均を求める処理について説明した。
【0058】
次に、距離係数を補正する処理について説明する。
【0059】
この処理は、図3の処理ステップ305において距離の算出に用いた距離係数Rを求める処理である。
【0060】
さて、前述したように車両の走行距離は、車速センサ203の出力するパルス数に距離係数Rを乗じて求める。しかし、タイヤの摩耗等によりタイヤ1回転あたりの車両の進行距離は変化するので、距離係数Rを固定値とすると、走行に伴い距離が正確に求まらなくなってくる。そこで本実施例では、逐次、図4の処理で得られた現在位置(B)(ステップ403)と、CD−ROM205からドライバ206を介して読みだした地図データから求まる道路方位と、図3の処理で得られた車両方位(ステップ303)とを比較することにより、現在位置(B)が、実際の位置に対して進んでいるか遅れているかを判断し、距離係数Rを動的に修正する。
【0061】
このような距離係数Rの修正は、たとえば、次のようにして行うことができる。
【0062】
すなわち、短期的に距離係数Rを補正するための補正変数Rshと長期的に距離係数Rを補正するための補正変数Raを導入する。そして、距離係数R=R0×(1+Ra+Rsh)に従い、動的に距離係数Rを修正する。なお、ここでR0は、予め定めた距離係数Rの初期値を示している。
【0063】
そして、マイクロプロセッサ214が、補正変数Rsh、補正変数Raを、図8、図9、図10に示した処理により逐次変更する。以下では、まず、図8、図9、図10に示した各処理の内容について個別に説明し、その後に、実際の車両の走行において、これらの処理によって、どのように変数Rsh、変数Raが変更されていくかを説明する。
【0064】
まず、本装置が起動されると初期化処理として、以下に説明する図8、図9、図10の処理で用いる各種変数やフラグ(f、Σθ、Σ20θ、Σφ、D、Rsh、Ra、ΣA、F1〜F10)を全て0に初期化する。
【0065】
さて、図8に示した処理は、図4の処理の終了を受けて起動され実行されるマイクロプロセッサ214のル−チンである。すなわち、本処理は、車両が20m進む毎に起動される。
【0066】
この処理では、まず、フラグfが0か否かを判定し、0でなければ処理を終了する。一方、フラグfが0であれば、図4のステップ404で出力された現在位置(B)と、CD−ROM205からドライバ206に読み出された地図データより求まる、現在位置(B)が位置する道路方位と、図3のステップ303で出力された車両方位(推定方位)とを読み込む(ステップ702、703、704)。
【0067】
次に、それらの値に基づいて、現在位置(B)が位置する道路方位と車両方位の差から図4のステップ411で求めた道路と車両の方位差の平均θaveを減じた値である道路車両方位差θと、前回の処理のステップ703で求めた道路方位と今回の処理のステップ703で求めた道路方位との差である道路方位差φを求める(ステップ705)。
【0068】
ここで、道路方位差φの値の正負は、今回求めた道路方位が前回の道路方位を基準として左側にある場合を正とし、右側にある場合を負とする。また、道路車両方位差θの値の正負は、たとえば、道路方位を基準として、車両方位が、左側にある場合を正とし、右側にある場合を負とする。
【0069】
次に、ステップ705より得られた道路車両方位差θの絶対値が、3deg未満かどうかを調べ(ステップ706)、3deg以上の場合(ステップ706でNoの場合)、前回の処理で求めた道路車両方位差積分値Σθに道路車両方位差θを加算した値を新たなΣθの値とし、前回の処理で求めた走行距離重み付け道路車両方位差積分値Σ20θに道路車両方位差θに前回の処理から今回の処理までの間の走行距離20mを乗じた値を加算した値を新たなΣ20θの値とし、前回の処理で求めた道路方位差積分値Σφに今回求めた道路方位差φを加算した値を新たなΣφ値とし(ステップ712)、処理を終了する。
【0070】
一方、道路車両方位差θが、3deg未満の場合(ステップ706でYesの場合)、現在の道路車両方位差積分値Σθの絶対値が5deg以上かどうかを調べ(ステップ707)、5deg未満であった場合(ステップ707でNoの場合)は、道路車両方位差積分値Σθ、走行距離重み付け道路車両方位差積分値Σ20θ、道路方位差積分値Σφを全て0に初期化し処理を終了する。
【0071】
ここで、ステップ706でYesとなる場合は、3degを超える道路車両方位差θの2回以上の連続が途絶えた場合である。
【0072】
一方、道路車両方位差積分値が5deg以上であった場合(ステップ707でYesの場合)には、ステップ708、709、710で前述したRshを変更するための処理を行う。
【0073】
ステップ708では、その時点のΣAの値に、Ra+Rshに距離変数Dを乗じた値を加算した値を新たなΣAとし、距離変数Dを0に初期化する。ΣAは、各Ra+Rshの値に、当該Ra+Rshの値で走行した距離を重み付けした値となる。距離変数Dは、常に、距離変数Dが0に初期化された後に車両が走行した距離を表す。この距離は、やはり車速センサ203の出力するパルス数に距離係数Rを乗じて求める。また、ステップ708では、その時点のRshをRshpとして保存する。
【0074】
つぎに、ステップ709において、道路方位差積分値Σφから、3degを超える道路車両方位差θが連続していた間の走行道路が右折であったか左折であったかを判定する。この判定は、道路方位差積分値Σφが正である場合は左折、負である場合は右折と判定する。
【0075】
次に、ステップ710において、走行距離重み付け道路車両方位差積分値Σ20θと、ステップ709で判定した右左折に応じて補正変数Rshを修正する。
【0076】
この修正の方法について説明する。
【0077】
図11は、3degを超える道路車両方位差θが連続していた間の走行道路が左折である場合と、右折である場合にそれぞれについて、走行距離重み付け道路車両方位差積分値Σ20θが正となる場合と、負となる場合の、道路と現在位置(B)と道路車両方位差θを表したものである。
【0078】
ここで、図11の状態1は、左折で、走行距離重み付け道路車両方位差積分値Σ20θが正の場合すなわち道路車両方位差積分値Σθが正の場合を示しており、この場合には、現在位置(B)は、実際の位置より遅れている。なぜならば、現在位置(B)が左折の位置に達する前に、実際には車両が左折しているからである。また、状態2は、左折で、走行距離重み付け道路車両方位差積分値Σ20θが負である場合を示しており、この場合には、現在位置(B)は、実際の位置より進んでいる。なぜならば、現在位置(B)が左折の位置に達しているのに、実際には車両が左折していないからである。
【0079】
右折の場合も同様に考えることができ、状態3の走行距離重み付け道路車両方位差積分値Σ20θが負であるときは、現在位置(B)は、実際の位置より遅れている。また、状態4の走行距離重み付け道路車両方位差積分値Σ20θが正の場合は、現在位置(B)は、実際の位置より進んでいる。
【0080】
そこで、走行距離重み付け道路車両方位差積分値Σ20θの正負と、ステップ709で判定した右左折に応じて、図12に示すように、補正変数Rshを修正するための変数Taの正負を定める。そして、走行距離重み付け道路車両方位差積分値Σ20θの絶対値の大きさに応じて変数Taの絶対値の大きさを定める。変数Taの絶対値の大きさは、予め用意しておいたテ−ブルAに従い定める。テ−ブルAは、走行距離重み付け道路車両方位差積分値Σ20θの絶対値の大きさと、変数Taの絶対値の大きさとの対応を記述したテ−ブルである。ステップ710では、このようにして求めた変数Taの絶対値の大きさと変数Taの正負より、変数Taの値を決定する。そして、ステップ708で保存しておいたRshp、すなわち今までの補正変数Rshに変数Taの値を加算したものを新たなRshとする。また、Rshを修正したならば、フラグfを1に設定する。
【0081】
ステップ710が終了したならば、ステップ711において、道路車両方位差積分値Σθ、走行距離重み付け道路車両方位差積分値Σ20θ、道路方位差積分値Σφを全て0に初期化し処理を終了する。
【0082】
次に、図9に示す処理も、図4の処理によって現在位置(B)が出力されるのを受けて起動される実行されるマイクロプロセッサ214のル−チンである。すなわち、本処理は、車両が20m進む毎に起動される。
【0083】
この処理では、まず、ステップ800でフラグfが1かを判定し、1でなければ処理を終了する。また、次に、ステップ801で、距離変数Dが300mを超えているか否かを判定する。距離変数Dは、図8のステップ708でDが0に初期化された後車両が300m以上走行した場合に、300mを超えることになる。超えていなければ処理を終了する。一方、300mを超えている場合は、その時点のΣAの値に、Ra+Rshに距離変数Dを乗じた値を加算した値を新たなΣAとし(ステップ802)、Rshを、あらかじめ用意したテ−ブルBを用いて修正する。すなわち、変数Tbの絶対値を、テ−ブルBに従い求め、変数Taの正負と変数Tbの正負が一致するように変数Tbの正負を定める。テ−ブルBには、変数Taの絶対値と変数Tbの絶対値の対応が記述されている。この対応は、変数Taの絶対値の大きさが所定の割合で小さくなった値が変数Tbの絶対値となるように定めている。具体的には、変数Taは対応する変数Tbより一桁程度大きい値とする。そして、図7のステップ708で保存しておいたRshp、すなわちステップ710でRshが修正される前の補正変数Rshに変数Tbの値を加算したものを新たなRshとする。
【0084】
そして、最後に、フラグfと距離変数Dを0に初期化し処理を終了する。
【0085】
次に、図10の処理は、車両が10km進む毎に起動され実行されるマイクロプロセッサ214のル−チンである。この10kmは、車速センサ203の出力するパルス数に距離係数Rを乗じて求める。
【0086】
この処理では、まず、その時点のΣAの値に、Ra+Rshに距離変数Dを乗じた値を加算した値を新たなΣAとする(ステップ901)。そして、9つの変数F1からF9を、一つづつずらし、変数F2からF10とし(ステップ902)、変数F1を、以下の式に従い求める(ステップ903)。
【0087】
F1={(ΣA+10km)/10km}−1
そして、ステップ904で、変数F1からF10の値の平均をとり、この値を以降の補正変数Raとする。
【0088】
そして、最後に各変数ΣA、Σ20θ、Σφ、Rsh、Σθ、D、フラグfを全て0に初期化し処理を終了する(ステップ905)。
【0089】
以上、距離係数を求める処理の内容について説明した。以下では、実際の車両の走行において、これらの処理によって、どのように変数Rsh、変数Raが変更されていくかを説明する。
【0090】
いま、図13の道路上を車両が走行するものとする。
【0091】
図中のaの地点において、図10の処理が実行され、補正変数Raが変更され、各変数ΣA、Σ20θ、Σφ、Rsh、Σθ、D、フラグfの全てが0に初期化されたものとする。そして、その後、aからbの地点までは、20m毎に起動される図8の処理のステップ705で算出される道路車両方位差θが3deg未満であるとする。そうすると、aからbの地点までは、図8のステップ706で道路車両方位差θが3deg未満であると判定され、かつ、ステップ707によってΣθが5deg未満であると判定されるので、変数ΣA、Σ20θ、Σφ、Rsh、Σθ、フラグfはステップ711で再度0に初期化される。したがい、これらの変数は何ら変更されない。一方、距離変数Dは、この間も走行距離に応じて増加する。次にbからcの地点までの20mの区間において道路車両方位差θが4degとなり、cからdの地点までの20mの区間は道路車両方位差θが3deg未満となったものとする。この場合、bから20m走行したcの地点で実行される図8の処理のステップ706において道路車両方位差θが3deg以上と判定され、ステップ712において、変数Σ20θ、Σφ、Σθが、その20m区間の道路車両方位差θ、道路方位差φに応じて更新される。しかし、その後20m走行したdの地点で実行される図8の処理において、道路車両方位差θが3deg未満、道路車両方位差積分値Σθが5deg以下と判定されるので、変数ΣA、Σ20θ、Σφ、Rsh、Σθ、フラグfはステップ711で再度0に初期化される。
【0092】
このように、図8の処理では、道路車両方位差θが3deg未満で道路車両方位差積分値Σθが5deg以下の場合には、単に変数ΣA、Σ20θ、Σφ、Rsh、Σθ、フラグfを初期化する。これは、3deg未満の道路車両方位差θや、連続せずに一度だけ3deg以上5deg未満となった道路車両方位差θは、距離係数Rの誤り以外の要因による誤差である可能性があると考え、これらの道路車両方位差が、後の処理で行われる補正変数Rsh、Raを修正に関して無視されるようにするためである。
【0093】
次に、dからeの地点まで、2回以上連続して道路車両方位差θが3deg以上となったものとする。この場合は、この地点間で実行される図7の処理のステップ712において、順次、変数Σ20θ、Σφ、Σθが更新される。結果、eの地点では、Σφはdからeの地点間で求められた道路方位差φの積分値を表し、Σθはdからeの地点間で求められた各道路車両方位差θの積分値を表し、Σ20θはdからeの地点間で求められた各道路車両方位差θに走行距離を重み付けした値の積分値を表していることになる。
【0094】
次に、eの地点からfの地点までの20mの区間における道路車両方位差θが3deg以下であったものとする。
【0095】
この場合は、eの地点から20m走行したfの地点で実行される図8の処理のステップ706において道路車両方位差θが3deg以下と判定され、ステップ707において道路車両方位差積分値Σθが5deg以上と判定されるので、ステップ708において前述したようにΣ20θ、Σφに応じてRshが更新される。また、ステップ708において距離変数Dが初期化されたaの地点からfの地点までの距離を、この時点において表している距離変数Dに、この間用いられた補正変数RaとRshの和(Ra+Rsh)を乗じた値をΣA(この時点では0)に加算する。また、距離変数Dを0に初期化する。このΣAは、後に図9の処理でRaを求めるために用いられる。そして、ステップ711でRshを求めるために求めておいたΣ20θ、Σθ、Σφを0に初期化する。また、フラグfをステップ710において1に設定する。この結果、この後300m走行したgの時点で図8の処理が実行されフラグfが0に解除されるまで、図7の処理がステップ701の判定に従い実質的にスキップされることになる。
【0096】
次に、fの地点で距離変数Dが0に初期化されてから300m走行したgの地点では、図9のステップ801において、距離変数Dが300m以上と判定される。そして、fの地点でRshが変更されてから、現在まで用いられた補正変数RaとRshの和(Ra+Rsh)を距離変数Dに乗じた値をΣAに加算し、ステップ803において前述したようにRshを修正する。この結果、fの地点からgの地点までの300mは、fの地点で求めたRshを用いて走行距離が求められ、gの地点以降はgの地点で求めたRshより小さな値がRshとして用いられることになる。
【0097】
これにより、始めの300mは補正変数Rshを適当と思われる値より大きくすることにより距離係数Rを正しいと思われる値より意図的に大きくして、cからdの間に蓄積された現在位置(B)のずれを、この300mを進む間に少しずつ修正し、その後に、補正変数Rshを小さくして距離係数Rを正しいと思われる値に設定し直すことができる。300mかけて現在位置のずれを少しずつ修正するのは、現在位置の表示位置がジャンプ等すること無くスム−ズに移動するようにするためである。また、この300mの間、図8の処理が実質的に実行されなくするのは、正しいと思われる値より意図的に大きくした距離係数Rで走行している間は、図7の処理は適当なRshを求めるように動作しないからである。
【0098】
また、この間は、正しい位置が求めることが期待できないので、図4の車両と道路の方位差の平均を求める処理も行わないようにしている。
【0099】
この後、図9の処理ではステップ804で、フラグfと距離変数Dを0に初期化する。フラグfが0に初期化されることにより、図8の処理は再度aからの区間と同様に道路車両方位差θに従って動作できるようになる。
【0100】
さて、この後、aの地点から10km走行したhの地点に達すると図10の処理が実行される。
【0101】
この処理では、まず、現在まで用いられた補正変数RaとRshの和(Ra+Rsh)を距離変数D(最後にステップ708または802でΣAを求めてからの距離を表す)に乗じた値をΣAに加算する(ステップ901)。結果、ΣAはaからfまでの10kmの間に用いられた各(Ra+Rsh)に、その(Ra+Rsh)が有効であった走行距離を重み付けした値の積算値となる。
【0102】
次に、初期値としてF(1)からF(10)までの全ての要素データが0である配列データFの要素データF(9)をF(10)に、F(8)をF(9)に、...、F(1)をF(2)にといったようにF(n)を一つづつずらす(ステップ902)。そして、ステップ903で、{(ΣA+10km)/10km)−1をF(1)とする。ここで、{(ΣA+10k)/10k}−1は、aからfまでに測定した10km中に含まれる、RaおよびRshの影響によって補正された距離の割合に、近似的に比例した値となる。したがい、ステップ904で求める、F(10)からF(1)の値の平均は、過去100km中に含まれる、RaおよびRshの影響によって補正された距離の割合に、近似的に比例した値となる。そこで、この平均をとった値を新たなRaとする。または、この平均をとった値に適当な定数を乗じた値を新たなRaとし、各変数ΣA、Σ20θ、Σφ、Rsh、Σθ、D、フラグfを全て0に初期化する。
【0103】
以下、aの地点からの処理と同じように処理が繰り返されることになる。
【0104】
なお、前述したように変数Taは対応する変数Tbより一桁程度大きい値としているので、ステップ710で求められる変数Taは、それまでのRshに比べ一桁程度大きい値となる。したがい、ステップ710では変数Ta自体を新たなRshとして処理するようにしてもよい。
【0105】
以上、距離係数を求める処理について説明した。
【0106】
最後に残る現在位置を表示する表示処理について説明する。
【0107】
図14に、この処理の処理手順を示す。
【0108】
本処理は、1秒毎に起動され実行されるマイクロプロセッサ214のルーチンである。
【0109】
この処理では、最初、スイッチ204が押圧により地図の縮尺の変更を指示されているかを、パラレルI/O211の内容を見て判断する(ステップ1001)。もし、押されていれば(ステップ1001でYes)、それに対応して、所定の縮尺フラグを設定する(ステップ1002)。
【0110】
次に、図4のステップ403のマップマッチング処理で求められた現在位置(B)を読み出し(ステップ1003)、ステップ602で切り替えられた縮尺フラグの内容に応じた縮尺の地図をディスプレイ207に、例えば、図2に示すような状態で表示する(ステップ1004)。
【0111】
そして、地図に重畳して、車両の現在位置(B)と車両の進行方位を、たとえば、先に示した図2のように、矢印記号“↑”を用いて表示する(ステップ1005)。そして最後に、これらに重畳して、北を示す北マークと、縮尺に対応した距離マークとを、図2のように表示する(ステップ1006)。
【0112】
なお、本実施例においては、上記のように矢印記号を用いて車両位置および方向を示したが、車両位置および方向の表示形態は、位置および進行方向が、表示状態が明確に示されるものであれば、その形態は任意でよい。また、北マーク等も同様である。
【0113】
以上、本発明の実施例について説明した。
【0114】
以上、説明してきたように、本実施例では、道路方位と車両方位との差より、走行距離を求めるために用いる距離係数Rの誤差を見積り、これを補正するが、この道路と車両の方位差としては、現在の道路と車両の方位差より、過去所定距離走行する間の道路と車両の方位差の平均値を減じた値を用いる。したがい、車体の着磁や道路地図の誤差等による車両と道路との方位差のオッフセットとして働く誤差をキャンセルした上で、走行距離を求めるために用いる距離係数Rの誤差を、より正しく見積もることができる。
【0115】
また、この道路と車両の方位差の平均値を取る走行距離を、走行している道路が単調な直線の道路では長くすることにより、このような道路を走行している間は、より正確に、車体の着磁や道路地図の誤差等による車両と道路との方位差のオッフセットとして働く誤差をキャンセルすることができる。また、通常は、適正な平均を求めるために最適値と考える個数(実施例では15個または20個)の道路と車両の方位差を用いて平均を求めるが、これだけの数が蓄積されていない場合には、求まるまで、求まった分の方位差を用いて平均を求めるように動作する。一方、平均を求めるために適していない数(実施例では6個)以下であれば、平均を求めない。すなわち、平均を用いた処理の実行が極力行われるようにすることと、適正に平均を求めることとの両立を図ることができる。
【0116】
【発明の効果】
以上のように、本発明によれば、道路地図上の道路と、車両の進行方位との整合性を、より正しく評価し、距離係数を適正に補正することのできる現在位置算出装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係る現在位置算出装置の構成を示すブロック図である。
【図2】本発明の一実施例において行う地図および現在位置の表示例を示す図である。
【図3】本発明の一実施例において行う進行方位および距離の算出処理の手順を示すフローチャートである。
【図4】本発明の一実施例において行う現在位置の算出と道路と車両の方位差の平均を求める処理の手順を示すフローチャートである。
【図5】本発明の一実施例において行うマップマッチング処理の手順を示すフローチャートである。
【図6】本発明の一実施例において用いる地図データにおける道路の表現形式を示す図である。
【図7】本発明の一実施例において行う道路と車両の方位差の平均を求めるために用いるデータの個数の上限値を変更する処理の手順を示すフローチャートである。
【図8】本発明の一実施例において行う距離係数を補正する処理の手順を示す第1のフロチャ−トである。
【図9】本発明の一実施例において行う距離係数を補正する処理の手順を示す第2のフロチャ−トである。
【図10】本発明の一実施例において行う距離係数を補正する処理の手順を示す第3のフロチャ−トである。
【図11】本発明の一実施例において判定する道路車両方位差を示す図である。
【図12】本発明の一実施例において算出する変数Taの正負の定め方を示した図である。
【図13】本発明の一実施例の説明において距離係数を補正する処理を適用した道路を表す図である。
【図14】本発明の一実施例において行う現在位置を表示する処理の手順を示すフロチャ−トである。
【符号の説明】
201 角速度センサ
202 方位センサ
203 車速センサ
204 スイッチ
205 CD−ROM
206 CD−ROMドライバ
207 ディスプレイ
208 コントローラ
214 マイクロプロセッサ
Claims (3)
- 車輪の回転に伴い移動する車両に搭載され、当該車両の現在位置を算出する現在位置算出装置であって、
道路地図を表す地図データを記憶する手段と、
車両の進行方位を検出する手段と、
車輪の回転速度を検出する手段と、
検出された車輪の回転速度と、設定された距離係数に応じて車両の走行距離を算出する走行距離算出手段と、
検出された車両の走行距離と検出された車両の進行方位と前記地図データの表す道路地図に応じて、車両が存在する道路と当該道路上の車両の存在する位置を推定する手段と、
前記地図データが表す地図情報と車両の進行方位とに基づき、過去所定距離車両が走行する間の、車両の進行方位と推定された車両の存在する道路の方位との差の平均と、現在の車両の進行方位と推定された車両の存在する道路の方位との差とを求める方位差算出手段と、
前記現在の差から前記差の平均を減じた値に基づき、前記走行距離算出手段に設定された距離係数を補正する距離係数補正手段とを有することを特徴とする現在位置算出装置。 - 請求項1記載の現在位置算出装置であって、
前記方位差算出手段は、過去所定距離車両が走行する間における、車両の存在する道路の方位の変化が少ない場合には、車両の進行方位と推定された車両の存在する道路の方位との差の平均を求める前記所定距離を、より大きい距離に設定することを特徴とする現在位置算出装置。 - 請求項1記載の現在位置算出装置であって、
前記方位差算出手段は、車両の進行方位と推定された車両の存在する道路の方位との差を車両が予め定めた距離走行する毎に順次求め、差がn以上m(但し、n<m)以下の個数求まった場合に、当該求まった全ての差の平均を求め、差がmを超える個数求まった場合には、最も最近求まったm個の差の平均を求めることを特徴とする現在位置算出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14356195A JP3573526B2 (ja) | 1995-06-09 | 1995-06-09 | 現在位置算出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14356195A JP3573526B2 (ja) | 1995-06-09 | 1995-06-09 | 現在位置算出装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08334339A JPH08334339A (ja) | 1996-12-17 |
JP3573526B2 true JP3573526B2 (ja) | 2004-10-06 |
Family
ID=15341609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14356195A Expired - Lifetime JP3573526B2 (ja) | 1995-06-09 | 1995-06-09 | 現在位置算出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3573526B2 (ja) |
-
1995
- 1995-06-09 JP JP14356195A patent/JP3573526B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08334339A (ja) | 1996-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3578512B2 (ja) | 現在位置算出装置およびその距離係数補正方法 | |
JP3578511B2 (ja) | 現在位置算出装置 | |
JP3545839B2 (ja) | 現在位置算出装置 | |
JP3634006B2 (ja) | 現在位置算出装置 | |
JP3596939B2 (ja) | 現在位置算出装置 | |
JP3573526B2 (ja) | 現在位置算出装置 | |
JP3679456B2 (ja) | 現在位置算出装置 | |
JP3545838B2 (ja) | 現在位置算出装置 | |
JP3545798B2 (ja) | 現在位置算出装置 | |
JP3599420B2 (ja) | 現在位置算出装置 | |
JP3545837B2 (ja) | 現在位置算出装置 | |
JP3679450B2 (ja) | 現在位置算出装置および現在位置算出方法 | |
JP3656662B2 (ja) | 現在位置算出装置 | |
JP3596941B2 (ja) | 現在位置算出装置 | |
JP3569028B2 (ja) | 現在位置算出装置 | |
JP3679451B2 (ja) | 現在位置算出装置 | |
JP3732548B2 (ja) | 現在位置算出装置およびその距離係数補正方法 | |
JP3596943B2 (ja) | 現在位置算出システムおよび現在位置算出方法 | |
JP3599423B2 (ja) | 現在位置算出装置 | |
JP3679449B2 (ja) | 現在位置算出装置における現在位置の表示位置の修正方法および現在位置算出装置 | |
JP3672351B2 (ja) | 現在位置算出装置およびその距離係数補正方法 | |
JP3764508B2 (ja) | 現在位置算出システムおよび現在位置算出方法 | |
JP3764507B2 (ja) | 現在位置算出装置 | |
JP3545836B2 (ja) | 現在位置算出装置 | |
JP3599421B2 (ja) | 現在位置算出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040609 |
|
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: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040629 |
|
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: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 9 |
|
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: 20130709 Year of fee payment: 9 |
|
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: 20130709 Year of fee payment: 9 |
|
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: 20130709 Year of fee payment: 9 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |