説明

推定装置

【課題】前方車両の形状及び運動状態を正確に推定する。
【解決手段】推定装置は、レーダ波によって、前方車両表面の複数地点の位置座標を計測し(S110)、この複数地点を単一線分及び二線分で近似する(S120,S1300)。そして、各線分毎に、求めた線分長さ及び近似誤差に基づき、線分が車両前後面、側面を近似した線分である事前確率を算出する(S1400)。一方、過去において推定された前方車両の位置、向き、速さ、進行方向及び角速度の情報を基に、尤度を算出する(S1500)。そしてベイズ推定により、既に求めた事前確率と尤度とから、各線分毎に、線分が車両前後面、側面を近似した線分である事後確率を算出し(S1600)、前方車両のサイズ、位置及び向きを推定する(S1700)。また、これらの情報を基に、アンセンテッドカルマンフィルタにより、車両の速さ、進行方向及び角速度も合わせて推定する(S1800)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、前方に位置する車両の状態を推定する推定装置に関する。
【背景技術】
【0002】
従来、車両の状態を推定する装置としては、レーダ波を用いて、離れた位置にある車両の状態を推定するレーダ装置が知られており、この種のレーダ装置としては、例えば、直線道路上に設置され、レーダ波としてのミリ波を所定の範囲に向けて周期的に照射するものが知られている(例えば、特許文献1参照)。
【0003】
このレーダ装置は、レーダ波が車両に反射して戻ってくる反射波を捉えて、反射波の受波結果に従い、車両の状態を推定する。具体的には、車両が直線運動していると仮定して、線形運動モデルに基づき設計されたカルマンフィルタを用いて、車両の速度や加速度を求め、車両の運動状態を予測する。このレーダ装置によれば、道路を走行する車両の現在位置を知ることができると共に、道路上の車両が運動していれば、車両の未来の運動状態を予測することができる。
【0004】
従って、このレーダ装置を用いれば、観測値と未来の予測値とを用いて、道路上に車両などが停止しているか否かの判断の精度や、車両速度の算出精度等を高めることができ、車両同士の衝突を予測して、これを回避するための処理を実行することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2002−99986号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来では、次のような二つの問題があった。
一つ目の問題は、前方に位置する車両の大きさや向きを正確に検出する技術がないため、前方に位置する車両の大きさや向きなどの情報を、衝突回避に必要十分な程度、得ることができないという問題である。車両の形状がわからなければ、正確に衝突を予測することは困難である。このため、従来技術では、レーダ装置の検出結果に基づいて、衝突回避のための車両制御を実行することに関し、精度的な限界があった。
【0007】
二つ目の問題は、車両の旋回時の運動を予測する技術がないという問題である。つまり、従来技術では、車両の未来の状態を予測するに際し、車両が直線運動していると仮定して、線形運動モデルに基づき、カルマンフィルタにより車両運動を予測するので、車両が旋回運動している場合等には、その旋回運動を正確に捉えて、車両運動を予測することができないといった問題あった。
【0008】
本発明は、こうした問題に鑑みなされたものであり、車両の状態を精度良く推定することが可能な推定装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
かかる目的を達成するためになされた請求項1に記載の推定装置は、レーダ波を発射し、発射波が前方に位置する車両に反射して戻ってくる反射波を受波して、レーダ波を反射した車両表面の複数地点の位置座標を計測する測位手段を備え、この測位結果に従って、前方に位置する車両の運動状態を推定する推定装置であって、測位手段により計測された車両表面の複数地点の位置座標に基づき、推定手段により、車両の角速度を含む車両の運動状態を、所定の非線形運動モデルに従って推定する構成にされたものである。
【0010】
従来では、線形運動モデルを用いて車両の運動状態を推定していたため、車両が旋回運動しているときには、車両の運動状態を正確に推定することができないといった問題があったが、本装置では、非線形運動モデルに基づいて、車両の角速度を含む車両の運動状態を推定するので、車両の旋回運動を正確に捉えることができる。従って、この推定装置は、車両の衝突回避に係る車両制御を行う際に、大変役立つ。
【0011】
尚、推定手段は、上記車両の運動状態として、車両の角速度以外に、車両の位置、車両の向き、車両の速さ、及び、車両の進行方向の内、少なくとも一つを推定する構成にすることができる(請求項2)。このように、推定装置を構成すれば、車両の旋回運動を詳細に知ることができて、衝突回避に係る車両制御を行う際に、大変役立つ。
【0012】
また、請求項3に記載の推定装置は、推定手段が、非線形運動モデルが採用されたカルマンフィルタを用いて、車両の状態を推定する構成にされたものである。カルマンフィルタを用いて、車両の運動状態を推定するようにすれば、観測誤差の影響を抑えて、高精度に車両の運動状態を推定することができるといった利点がある。
【0013】
この他、請求項4に記載の推定装置は、カルマンフィルタが、アンセンテッドカルマンフィルタであることを特徴とするものである。アンセンテッドカルマンフィルタは、非線形運動の運動状態を推定するのに大変優れている。従って、アンセンテッドカルマンフィルタを用いて、車両の運動状態を推定するように推定装置を構成すれば、高精度に運動状態を推定することができる。
【0014】
また、上記推定装置に採用する非線形運動モデルとしては、等速円運動モデルを挙げることができる(請求項5)。等速円運動モデルを採用してカルマンフィルタを設計し、これに基づいて、車両の運動状態を推定するように上記推定装置を構成すれば、簡単な運動モデルで、高精度に、車両の旋回運動の状態を推定することができる。
【0015】
また、請求項6に記載の推定装置は、前回推定した角速度がゼロである場合には、車両状態の推定に用いる運動モデルを、非線形運動モデルから所定の線形運動モデルに切り替えて、当該線形運動モデルに従い、車両の状態を推定するように構成されたものである。このように推定装置を構成すれば、旋回運動だけでなく、直進運動についての運動状態をも、正確に推定することができ、広範囲の車両運動を、高精度に推定することができる。
【図面の簡単な説明】
【0016】
【図1】推定装置1の構成を表すブロック図である。
【図2】CPU25aが実行する車両状態推定処理を表すフローチャートである。
【図3】レーダ波による距離の測定原理及び位置座標の求め方を示した説明図である。
【図4】反射点の分布についての具体例を表した説明図である。
【図5】CPU25aが実行する二線分算出処理を表すフローチャートである。
【図6】二線分算出処理の具体例を表す図である。
【図7】反射点に対する、単一線分及び二線分による近似の具体例を表す図である。
【図8】CPU25aが実行する事前確率算出処理を表すフローチャートである。
【図9】事前確率算出のための関数データの具体例を表す図である。
【図10】尤度算出処理のフローチャートを表す図である。
【図11】尤度算出のための関数データの具体例を表す図である。
【図12】CPU25aが実行する個別尤度算出処理を表すフローチャートである。
【図13】CPU25aが実行する事後確率算出処理を表すフローチャートを表す図である。
【図14】CPU25aが実行する選択処理を表すフローチャートを表す図である。
【図15】カルマンフィルタを用いた演算の手法を表す説明図である。
【図16】車両の中心点の位置座標の算出方法を示した説明図である。
【図17】CPU25aが実行する状態推定処理を表すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施例について図面と共に説明する。図1は、本発明が適用された推定装置1の構成を表すブロック図であり、四輪自動車の前方部に搭載されている。
本実施例の推定装置1は、図1に示すように、レーザ光を発射するレーザダイオード11と、レーザダイオードから発射されたレーザ光を平行光線にするコリメータレンズ12と、レーザダイオード11を駆動させるレーザダイオード駆動回路13と、レーザダイオード11から発射されたレーザ光を反射するミラー15と、ミラー15を回転させるモータ17と、レーザ光を集光する集光レンズ19と、集光レンズ19によって集光されたレーザ光を受光して電気信号を発生するフォトダイオード21と、フォトダイオード21からの電気信号を増幅する増幅器22と、レーザダイオード駆動信号及び増幅器22から出力された信号を取得し、レーザダイオード11から発射されたレーザ光が反射してフォトダイオード21によって検出されるまでの時間を検出する検出回路23と、上述したレーザダイオード駆動回路13に対するレーザダイオード駆動信号及びモータ17を駆動させるためのモータ駆動信号を出力して、レーザ光の発射及びモータ17の回転を制御する共に、モータ17から入力されるモータ回転位置の情報及び検出回路23から入力されるレーザ光の飛行時間ΔTの情報に基づき、各種処理を実行する制御部25と、から構成されている。
【0018】
レーザダイオード11は、前方車両を検知するためのレーダ波として、レーザ光を発射するための装置である。レーザ光は指向性が高いので、本装置によれば、高い空間分解能を得ることができる。また、コリメータレンズ12は、レーザダイオード11から発射され発散するレーザ光を、平行光線になるように、レーザ光を屈折させるものである。
【0019】
ミラー15は、光を反射するための六角形状の反射面を備えるポリゴンミラーとして構成され、モータ17は、CPU25aからのモータ駆動信号に従って、ミラー15を回転させる構成にされている。本実施例の推定装置1は、この構成により、コリメータレンズ12を通過してきたレーザ光を、任意の方向へ発射することができる。
【0020】
また、制御部25は、CPU25a、ROM25b及びRAM25c等から構成され、CPU25aにて、ROM25bに記憶された各種プログラムを実行することにより、レーザダイオード11及びモータ17を制御すると共に、モータ回転位置の情報及びレーザ光の飛行時間ΔTの情報を基に、ROM25bに記憶されたプログラムによって、レーザ光を反射した物体の状態を推定する。
【0021】
図2は、CPU25aが主体となって繰り返し実行する車両状態推定処理を表すフローチャートである。本装置では、レーザ光により検知された前方物体を四輪自動車とみなして以降の処理を行う。
【0022】
当該車両状態推定処理を開始すると、CPU25aは、レーザ光を発射してレーザ光の反射点を測位し、その位置座標を求める(S110)。具体的には、レーザレーダ駆動回路13及びモータ17を駆動して、ミラー15を回転させながら、レーザダイオード11から断続的にパルス光を発射させる。このようなレーザレーダ駆動回路13及びモータ17の制御により、前方に位置する車両に向けて、水平方向に照射角度を変化させながら、レーザ光を発射する。
【0023】
前方物体によって反射されたレーザ光は、集光レンズ19を通り、フォトダイオード21に集光される。そして、集光されたレーザ光は、フォトダイオード21によって電気信号に変換され、増幅器22によって増幅された後、検出回路23に送られる。
【0024】
検出回路23は、CPU25aから出力されるレーザダイオード駆動回路13の駆動信号としてのレーザダイオード駆動信号を取得可能に構成されており、この駆動信号の入力タイミングと、反射光の受光タイミングとから、図3(a)に示すように、レーザ光の飛行時間ΔTとして、レーザ光の発光から受光までの時間(遅延時間:ΔT)を検出する。
【0025】
CPU25aは、パルス光が発射される度、検出回路23から入力される遅延時間ΔTに基づき、レーザ光の速さvを用いて、反射点までの距離DをD=v・ΔT/2として求める。そして、算出した距離Dと、当該距離Dが計測される原因となったパルス光の発射角度Φとから、反射点の位置座標(x,y)として、(x,y)=(Dsinφ、Dcosφ)を求める。尚、ここで、用いるxy座標系は、車両に固定された推定装置1を基準とした相対座標系である。以下、この座標系を、「座標系A」と表現する。
【0026】
パルス光の発射角度Φは、モータ回転位置から一意に求めることができる。ここでは、図3(b)に示すように、車両の前後方向の軸線上に、推定装置1が設置されているものとして、当該軸線から前方にy軸を設定し、y軸を基準とした角度をφとして定義し、反射点の位置座標(x,y)=(Dsinφ、Dcosφ)を求めている。
【0027】
この測位によって位置座標(x,y)が得られる反射点の具体例を表したのが図4である。図4(a)は前方車両50が推定装置1に対して傾いている場合の反射点の分布を表す図であり、図4(b)は前方車両50の後面50aが推定装置1に対して正対している場合の反射点の分布を表す図である。尚、車両側面50bまたは前面50cが推定装置1に正対している場合にも、反射点の分布は、図4(b)に示すようになる。
【0028】
S110にて、前方物体表面の複数地点の位置座標を求めると、CPU25aは、次に、S110で得られた複数地点の位置座標(各反射点の位置座標)で表される前方物体の輪郭パターンを、最小二乗法を用いて、一本の直線でフィッティングする。そして、近似直線の端点を求めることで、上記前方物体の輪郭パターンを、単一の線分で近似する。以下では、この近似線分を、線分L1と呼ぶ。また、前方物体の輪郭パターンを、一本の線分で近似すると、得られた線分L1について、その長さ及び中点の位置座標、及び、近似誤差を求める(S120)。尚、ここでいう近似誤差は、得られた線分L1と上記輪郭パターンを構成する各反射点との距離の総和である。
【0029】
但し、S110で、反射点の位置座標として、4点以上の位置座標を求めることができなかった場合、CPU25aは、S120に移行することなく、当該車両状態推定処理を一旦終了して、再度、S110の処理を実行することにより、測位をやり直す。
【0030】
一方、S120での処理を終えると、CPU25aは、L字型の二線分算出処理を実行する(S1300)。即ち、複数の反射点で表される上記前方物体の輪郭パターンを、最小二乗法を用いて、互いに直交するL字型の二本の直線で、フィッティングする。
【0031】
そして、各直線の端点を求めることで、上記前方物体の輪郭パターンを、車両の前後面及び側面をモデル化した互いに直交する一対の線分を端点で接続して成るL字状の図形パターンで近似する。そして、上記座標系Aにて、この近似図形パターンを構成する各線分の長さと、各線分の向き(上記座標系Aのx軸と線分がなす角度)と、各線分の中点の位置座標と、を求める。
【0032】
尚、図5は、CPU25aがS1300で実行するL字型の二線分算出処理を表すフローチャートである。
この二線分算出処理を開始すると、CPU25aは、S110で求められた反射点の数をn個(n>3)として、角度φが大きい順に、反射点に番号Nを割り当てる(S1310)。具体的に、S1310では、データとして保持する反射点の位置座標に、番号Nを関連付ける処理を行う。
【0033】
ここでの番号Nの割り当て方法は、図6(a)に示す通りである。即ち、角度φが大きい反射点の順に、番号Nを連番でN=1,2,3,…,n−1,nのように割り当てる。一番目の点に、N=1を割り当て、二番目の点にN=2を割り当てるといった具合である。
【0034】
また、このようにしてS1310での処理を終えると、CPU25aは、変数mの値を2(m=2)に設定する(S1320)。その後、N=1からN=mまでの番号が割り当てられた反射点をセグメントSEG1、N=m+1からN=nまでの番号が割り当てられた反射点をセグメントSEG2に設定する(S1330)。
【0035】
S1330での処理を終えると、CPU25aは、セグメントSEG1に属する反射点の一群を、最小二乗法により、直線で近似して、セグメントSEG1に属する反射点の一群の近似直線L21を算出すると共に、セグメントSEG1に属する各反射点から、上記近似直線L21までの距離を求めて、各反射点から近似直線L21までの距離の総和を、近似誤差として求める(S1340)。
【0036】
図6(b)は、近似直線L21と反射点との距離の求め方を示した説明図である。図6(b)では、セグメントSEG1に属する反射点の分布の具体例と共に、近似直線L21を表す。S1340では、例えば、セグメントSEG1に属する反射点が、図6(b)に示す分布となっている場合、図中、矢印で表した近似直線L21と各反射点との距離を求める。そして、その総和をセグメントSEG1の近似誤差として求める。
【0037】
また、S1340の処理を終えると、CPU25aは、セグメントSEG2に属する反射点の一群を、最小二乗法により、S1340で求めた直線と直交する直線で近似し、セグメントSEG2に属する反射点の一群の近似直線L22を算出すると共に、セグメントSEG2に属する各反射点から、算出した近似直線L22までの距離を求めて、各反射点から近似直線L22までの距離の総和を、近似誤差として求める(S1350)。
【0038】
図6(a)は、n=12及びm=6のときの近似直線L21,L22の求め方を示した説明図である。図6(a)に示すように、本実施例では、まず、セグメントSEG1の反射点である1番目から6番目までの反射点に対して、最小二乗法で近似直線を求める。ここで求められた近似直線がy=ax+bであるとすると、セグメントSEG2の反射点群に対して近似する直線は、セグメントSEG1との直交が条件なので、y=−(1/a)x+cとなる。従って、S1340では、パラメータa,bを算出し、S1350では、パラメータcを算出する。
【0039】
そして、算出した一対の近似直線L21,L22の端点の位置座標を求めることで、近似直線を線分化し、上記前方物体の輪郭パターンに対応する近似図形パターンとして、近似直線L21,L22から抽出した線分を接続してなるL字状の図形パターンを求める。そして、この近似図形パターンを構成する各線分の長さ、向き、及び、中点の位置座標を、上記座標系Aで算出する(S1360)。
【0040】
尚、端点の位置座標の求め方は、次の通りである。まず、直交する各直線L21,22の端点の位置座標として、直線L21,L22の交点の位置座標を求める。そして、図6(b)に示すように、N=1が割り当てられた反射点から直線L21への垂線と直線L21との交点の位置座標を、直線L21のもう一方の端点の位置座標として求める。同様に、N=nが割り当てられた反射点から直線L22への垂線と直線L22との交点の位置座標を、直線L22のもう一方の端点の位置座標として求める。このようにして、本実施例では、端点の位置座標を求めて、近似直線L21,L22を線分化し、これら各線分の長さ、向き、及び、中点の位置座標を算出する(S1360)。
【0041】
また、S1360での処理を終えると、m=n−2であるか否かを判断する(S1370)。そして、m=n−2でないと判断すると(S1370:N)、S1380に移行して、mを1加算し(m←m+1)、その後、S1330に戻る。
【0042】
一方、m=n−2であると判断すると(S1370:Y)、これまでに算出したn−3組の一対の線分L21,L22のなかから、セグメントSEG1の近似誤差及びセグメントSEG2の近似誤差の総和が最も小さい一対の線分L21,L22を選び、選んだ一対の線分L21,L22からなるL字状の図形パターンを、S110で測位された反射点群(前方物体の輪郭パターン)に対するL字状の近似図形パターンとして最終決定する(S1390)。その後、当該二線分算出処理を終了する。
【0043】
このようにして、本実施例では、S110で測位された反射点群にて表される前方物体の輪郭パターンを、車両の一面をモデル化した単一の線分から成る図形パターンと、車両の前後面及び側面をモデル化した互いに直交する一対の線分を端点で接続して成るL字状の図形パターンと、で近似し、その近似図形パターン(具体的には、各線分の長さ、向き、及び、中点の位置座標)を求める。
【0044】
図7は、S120で求められる単一線分の近似図形パターン(線分L1)、及び、S1300で求められるL字状の近似図形パターン(線分L21,L22)の具体例を表した図である。
【0045】
具体的に、図7(a)左図は、測位の結果、図4(a)に示す反射点の分布が得られたときに、S120で求められる単一線分の近似図形パターン(線分L1)を表すものであり、図7(a)右図は、測位の結果、図4(a)に示す反射点の分布が得られたときに、S1300で求められるL字状の近似図形パターン(線分L21,L22)を表すものである。
【0046】
また、図7(b)左図は、測位の結果、図4(b)に示す反射点の分布が得られたときに、S120で求められる単一線分の近似図形パターン(線分L1)を表すものであり、図7(b)右図は、測位の結果、図4(b)に示す反射点の分布が得られたときに、S1300で求められるL字状の近似図形パターン(線分L21,L22)を表すものである。
【0047】
S1300での二線分算出処理を終えると、CPU25aは、S1400に移行して、図8に示す事前確率算出処理を実行する。図8は、CPU25aが実行する事前確率算出処理を表すフローチャートである。
【0048】
本実施例では、ベイズ推定の手法を用いて、S120,S1300で求めた各線分L1、L21、L22の夫々が、車両前後面を近似した線分である蓋然性、車両側面を近似した線分である蓋然性、及び、側面を近似した線分でも前後面を近似した線分でもない線分(以下、その他の線分)である蓋然性、を求めるが、S1400では、これらの蓋然性を求めるに当って、ベイズ推定の入力に用いる、各線分L1、L21、L22の夫々が、車両前後面を近似した線分である事前確率、車両側面を近似した線分である事前確率、及び、その他の線分である事前確率を、ROM25bに記録された関数データ(マップ等)に従って算出する。
【0049】
従って、図8を用いて事前確率算出処理を説明する前に、ここでは、事前確率算出処理で用いられる関数データの構成を、図9を用いて説明する。図9は、ROM25bに記録された関数データの構成を、グラフとして視覚化して表した図である。
【0050】
具体的に、図9(a)は、線分長さを入力とし、入力された長さの線分が車両前後面を近似した線分である確率、入力された上記長さの線分が車両側面を近似した線分である確率、及び、入力された上記長さの線分がその他の線分である確率、を出力とする関数データの構成を、グラフとして視覚化して表した図である。
【0051】
また、図9(b)は、線分の近似誤差を入力とし、入力された近似誤差を有する線分が車両前後面を近似した線分である確率、入力された上記近似誤差を有する線分が車両側面を近似した線分である確率、及び、入力された上記近似誤差を有する線分がその他の線分である確率、を出力とする関数データの構成をグラフとして視覚化して表した図である。
【0052】
図9(a)に示すグラフは、具体的に、縦軸が確率、横軸が長さのグラフであり、図9(b)に示すグラフは、縦軸が確率、横軸が線分の近似誤差のグラフである。また、図9(a)、(b)の夫々は、点線が「側面」、実線が「前後面」、一点鎖線が「その他」の確率の変化を表すものである。
【0053】
この関数データは、設計者が自由に設計できるものであるが、縦軸が確率であるので、図9(a)に示す関数データ及び図9(b)に示す関数データの夫々は、車両前後面を近似した線分である確率、車両側面を近似した線分である確率、及び、その他の線分である確率の和が、一定になるように設計される。但し、ここでは、和を1に設定する必要はない。和を1としなくても、和を一定にしておけば、規格化処理を付加することで、後述するベイズ推定において、和を1とする狭義の確率と同様の演算が可能であるからである。
【0054】
図9(a)に示すように、本実施例においては、車両の形状を考慮して、線分長さが短い場合に、当該線分が車両前後面を近似した線分である確率が高くなり、線分長さが長い場合に、当該線分が車両側面を近似した線分である確率が高くなるように、関数データが設計されている。また、線分長さが通常考えられる車両の全長より長い場合には、その他の線分である確率が高くなるように、関数データが設計されている。
【0055】
具体的に、線分が車両前後面を近似した線分である確率は、線分長さが、一般的な車両の全幅に対応した長さになったときにピークを迎えるように設定されており、線分が車両側面を近似した線分である確率は、線分長さが、一般的な車両の全長に対応した長さになったときにピークを迎えるように設定されている。
【0056】
また、図9(b)に示すように、本実施例においては、近似誤差が小さいほど、該当する線分が車両前後面を近似した線分である確率及び車両側面を近似した線分である確率が高くなり、近似誤差が大きいほど、該当する線分がその他の線分である確率が高くなるように、関数データが設計されている。
【0057】
本実施例のCPU25aは、ROM25bから、このような関数データを読み出して、各線分L1,L21,L22毎に、線分長さ及び近似誤差に基づき、線分が車両前後面を近似した線分である事前確率、線分が車両側面を近似した線分である事前確率、及び、線分がその他の線分である事前確率を求める。
【0058】
続いて、CPU25aがS1400で実行する事前確率算出処理の内容を、図8を用いて説明する。
この事前確率算出処理を開始すると、CPU25aは、まず以降の計算対象となる線分(以下、「対象線分」と称する。)を、S120で求めた線分L1に設定する(S1405)。更に、以降の計算対象となる車両部位(以下、「対象部位」と称する。)を「側面」に設定する(S1410)。
【0059】
そして、図9(a)に示す関数データを用いて、対象線分の長さに基づき、この対象線分が対象部位を近似した線分である確率P(1415)を導出する(S1415)。次に、図9(b)に示す関数データを用いて、対象線分の近似誤差に基づき、この対象線分が対象部位を近似した線分である確率P(1420)を導出する(S1420)。そして、確率P(1425)=P(1415)×P(1420)を計算する(S1425)。
【0060】
次に、現在の対象線分について、「前後面」を対象部位とした確率P(1425)を導出したかを判断し(S1430)、現在の対象線分について、まだ、「前後面」を対象部位とした確率P(1425)を導出していなければ(S1430:N)、対象部位を「前後面」に変更して(S1435)、S1415に戻る。
【0061】
一方、既に「前後面」を対象部位とした確率P(1425)を導出していれば(S1430:Y)、現在の対象線分について、「その他」を対象部位とした確率P(1425)を導出したか否かを判断し(S1440)、現在の対象線分について、まだ、「その他」を対象部位とした確率P(1425)を導出していなければ(S1440:N)、対象部位を「その他」に変更して(S1445)、S1415に戻る。尚、対象部位が「その他」である場合には、対象線分がその他の線分である確率を求めることになる。
【0062】
これに対し、既に「その他」を対象部位とした確率P(1425)を導出していれば(S1440:Y)、現在の対象線分について、「側面」を対象部位とした確率P(1425)、「前後面」を対象部位とした確率P(1425)、及び、「その他」を対象部位とした確率P(1425)の和が値1となるように、規格化して、対象線分が車両「前後面」を近似した線分である事前確率P(1425)、対象線分が車両「側面」を近似した線分である事前確率P(1425)、及び、対象線分がその他の線分である事前確率P(1425)を求める(S1450)。
【0063】
即ち、本実施例では、このようにして求めた「前後面」を対象部位とした確率P(1425)の規格化後の値を、対象線分が車両「前後面」を近似した線分である事前確率P(1425)として後続の処理で取り扱う。同様に、「側面」を対象部位とした確率P(1425)の規格化後の値を、対象線分が車両「側面」を近似した線分である事前確率P(1425)として取り扱い、「その他」を対象部位とした確率P(1425)の規格化後の値を、対象線分がその他の線分である事前確率P(1425)として取り扱う。
【0064】
また、S1450での処理を終えると、CPU25aは、対象線分として線分L21を設定して、確率P(1425)を求めたか否かを判断し(S1455)、まだ線分L21についての確率P(1425)を求めていなければ(S1455:N)、対象線分を線分L21に変更して(S1460)、S1410に戻る。
【0065】
一方、既に線分L21の確率P(1425)を求めていれば(S1455:Y)、対象線分として線分L22を設定して、確率P(1425)を求めたか否かを判断し(S1465)、まだ線分L22についての確率P(1425)を求めていなければ(S1465:N)、対象線分を線分L22に変更して(S1470)、S1410に戻る。
【0066】
そして、既に線分L22の確率P(1425)を求めている場合には(S1465:Y)、当該事前確率算出処理を終える。
以下では、このようにして事前確率算出処理で求めた線分L1が車両側面を近似した線分である事前確率P(1425)を、事前確率P(1側)と表記する。また、線分L1が車両前後面を近似した線分である事前確率P(1425)を、事前確率P(1前後)と表記し、線分L1がその他の線分である事前確率P(1425)を、事前確率P(1その他)と表記する。
【0067】
また、線分L21,L22についても同様に、線分L21が車両側面を近似した線分である事前確率P(1425)を、事前確率P(21側)と表記し、線分L21が車両前後面を近似した線分である事前確率P(1425)を、事前確率P(21前後)と表記し、線分L21がその他の線分である事前確率P(1425)を、事前確率P(21その他)と表記し、線分L22が車両側面を近似した線分である事前確率P(1425)を、事前確率P(22側)と表記し、線分L22が車両前後面を近似した線分である事前確率P(1425)を、事前確率P(22前後)と表記し、線分L22がその他の線分である事前確率P(1425)を、事前確率P(22その他)と表記する。
【0068】
また、S1400にて上記事前確率算出処理を終えると、CPU25aは、S1500に移行し、図10に示す尤度算出処理を実行する。図10は、CPU25aが実行する尤度算出処理を表すフローチャートである。
【0069】
本実施例では、この尤度算出処理にて、ベイズ推定の入力に用いる、各事前確率P(1側),P(1前後),P(1その他)P(21側),P(21前後),P(21その他),P(22側),P(22前後),P(22その他)に対応する尤度L(1側),L(1前後),L(1その他),L(21側),L(21前後),L(21その他),L(22側),L(22前後),L(22その他)を求めるが、この際には、ROM25bに記録された尤度導出のための関数データを用いる。従って、尤度算出処理を説明するに先立っては、図11を用いて、ROM25bに記録された尤度導出のための関数データの構成について説明する。
【0070】
尚、図11は、尤度導出のためにROM25bに記録された関数データの構成を、グラフにより視覚化して表した図である。図11(a)〜(f)に示すグラフは全て、縦軸に尤度が設定されたものであり、点線が「側面」、実線が「前後面」、一点鎖線が「その他」の尤度の変化を表すものである。この関数データは、設計者が自由に設計できる。
【0071】
具体的に、図11(a)は、線分の中点位置座標と車両側面の予測位置(詳細後述)との距離を入力とし、入力された距離に対応する線分が車両前後面を近似した線分である尤度、入力された上記距離に対応する線分が車両側面を近似した線分である尤度、及び、入力された上記距離に対応する線分がその他の線分である尤度を出力とする関数データの構成を、グラフとして視覚化して表した図である。図11(a)に示すように、この関数データは、上記距離が小さい線分ほど、車両側面を近似した線分である尤度が大きくなるように設計されている。
【0072】
また、図11(b)は、線分の中点位置座標と車両前後面の予測位置との距離を入力とし、入力された距離に対応する線分が車両前後面を近似した線分である尤度、入力された上記距離に対応する線分が車両側面を近似した線分である尤度、及び、入力された上記距離に対応する線分がその他の線分である尤度を出力とする関数データの構成を、グラフとして視覚化して表した図である。図11(b)に示すように、この関数データは、上記距離が小さい線分ほど、車両前後面を近似した線分である尤度が大きくなるように設計されている。
【0073】
また、図11(c)は、線分長さと車両側面長さ(車両全長)の予測値との差(但し、絶対値)を入力とし、入力された差に対応する線分が車両前後面を近似した線分である尤度、入力された上記差に対応する線分が車両側面を近似した線分である尤度、及び、入力された上記差に対応する線分がその他の線分である尤度を出力とする関数データの構成を、グラフとして視覚化して表した図である。図11(c)に示すように、この関数データは、上記差が小さい線分ほど、車両側面を近似した線分である尤度が大きくなるように設計されている。
【0074】
この他、図11(d)は、線分長さと車両前後面長さ(車両全幅)の予測値との差(但し、絶対値)を入力とし、入力された差に対応する線分が車両前後面を近似した線分である尤度、入力された上記差に対応する線分が車両側面を近似した線分である尤度、及び、入力された上記差に対応する線分がその他の線分である尤度を出力とする関数データの構成を、グラフとして視覚化して表した図である。この関数データは、上記差が小さい線分ほど、車両前後面を近似した線分である尤度が大きくなるように設計されている。
【0075】
また、図11(e)は、線分の向きと車両の向きの予測値との差を入力とし、入力された差に対応する線分が車両前後面を近似した線分である尤度、入力された上記差に対応する線分が車両側面を近似した線分である尤度、及び、入力された上記差に対応する線分がその他の線分である尤度を出力とする関数データの構成を、グラフとして視覚化して表した図である。この関数データは、上記差が90度に近い線分ほど、車両前後面を近似した線分である尤度が大きくなるように設計され、上記差が0度又は180度に近い線分ほど、車両側面を近似した線分である尤度が大きくなるように設計されている。
【0076】
また、図11(f)は、線分の向きと車両の進行方向の予測値との差を入力とし、入力された差に対応する線分が車両前後面を近似した線分である尤度、入力された上記差に対応する線分が車両側面を近似した線分である尤度、及び、入力された上記差に対応する線分がその他の線分である尤度を出力とする関数データの構成を、グラフとして視覚化して表した図である。この関数データは、上記差が90度に近い線分ほど、車両前後面を近似した線分である尤度が大きくなるように設計され、上記差が0度又は180度に近い線分ほど、車両側面を近似した線分である尤度が大きくなるように設計されている。
【0077】
続いて、図10を用いて、CPU25aがS1500にて実行する尤度算出処理について説明する。この尤度算出処理を開始すると、CPU25aは、最初に、当該推定装置1に接続された、自車両の運動状態を検出するためのセンサ群からの入力に基づき、前回車両状態推定処理実行時に対する自車両の変位量(δx,δy,δθ)を求める(S1505)。δxは、前回車両状態推定処理実行時(S1505実行時)の座標系Aの原点位置を基準として、前回車両状態推定処理実行時の座標系Aのx方向に、今回の座標系Aの原点がどれだけ移動した位置にあるかを評価したものであり、δyは、前回車両状態推定処理実行時(S1505実行時)の座標系Aの原点位置を基準として、前回車両状態推定処理実行時の座標系Aのy方向に、今回の座標系Aの原点がどれだけ移動した位置にあるかを評価したものであり、δθは、今回の座標系Aのy軸が、前回車両状態推定処理実行時(S1505実行時)の座標系Aのy軸に対し、どれだけ回転した位置にあるかを、前回車両状態推定処理実行時(S1505実行時)の座標系Aで評価したものである。
【0078】
また、この処理を終えると、CPU25aは、対象線分を線分L1に設定する(S1510)。更に、対象部位を「側面」に設定する(S1515)。次に、対象線分が対象部位を近似した線分である尤度L(3000)を、図12に示す個別尤度算出処理にて求める(S3000)。尚、図12を用いた個別尤度算出処理の詳細な説明は、後述する。
【0079】
また、個別尤度算出処理を終えると、CPU25aは、次に、現在の対象線分について、「前後面」を対象部位とした尤度L(3000)を求めたか否かを判断し(S1530)、「前後面」を対象部位とした尤度L(3000)を求めていないと判断すると(S1530:N)、対象部位を「前後面」に変更して(S1535)、S3000に戻り、この対象部位について個別尤度算出処理を実行する。
【0080】
一方、現在の対象線分について、「前後面」を対象部位とした尤度L(3000)を求めたと判断すると(S1530:Y)、現在の対象線分について、「その他」を対象部位とした尤度L(3000)を求めたか否かを判断する(S1540)。
【0081】
そして、「その他」を対象部位とした尤度L(3000)を求めていないと判断すると(S1540:N)、対象部位を「その他」に変更して(S1545)、S3000に戻る。そして、この対象部位について個別尤度算出処理を実行する。尚、対象部位が「その他」である場合には、個別尤度算出処理で、対象線分がその他の線分である尤度L(3000)を求めることになる。
【0082】
また、「その他」を対象部位とした尤度L(3000)を求めたと判断すると(S1540:Y)、CPU25aは、対象線分として線分L21を設定して、尤度L(3000)を求めたか否かを判断し(S1555)、線分L21を対象線分として尤度L(3000)を求めていなければ(S1555:N)、対象線分を線分L21に変更して(S1560)、S1515に戻る。
【0083】
一方、線分L21を対象線分として尤度L(3000)を既に求めていれば(S1555:Y)、線分L22を対象線分として尤度L(3000)を求めたか否かを判断する(S1565)。そして、線分L22を対象線分として尤度L(3000)を求めていなければ(S1565:N)、対象線分を線分L22に変更して(S1570)、S1515に戻る。一方、線分L22を対象線分として尤度L(3000)を求めていれば(S1565:Y)、当該尤度算出処理を終了する。
【0084】
以下では、このようにして尤度算出処理で求めた線分L1が車両側面を近似した線分である尤度L(3000)を、尤度L(1側)と表記する。また、線分L1が車両前後面を近似した線分である尤度L(3000)を、尤度L(1前後)と表記し、線分L1がその他の線分である尤度L(3000)を、尤度L(1その他)と表記する。
【0085】
また、線分L21,L22についても同様に、線分L21が車両側面を近似した線分である尤度L(3000)を、尤度L(21側)と表記し、線分L21が車両前後面を近似した線分である尤度L(3000)を、尤度L(21前後)と表記し、線分L21がその他の線分である尤度L(3000)を、尤度L(21その他)と表記し、線分L22が車両側面を近似した線分である尤度L(3000)を、尤度L(22側)と表記し、線分L22が車両前後面を近似した線分である尤度L(3000)を、尤度L(22前後)と表記し、線分L22がその他の線分である尤度L(3000)を、尤度L(22その他)と表記する。
【0086】
続いて、S3000でCPU25aが実行する個別尤度算出処理について説明する。図12は、CPU25aが実行する個別尤度算出処理を表すフローチャートである。
個別尤度算出処理を開始すると、CPU25aは、まず、前サイクル(前回車両状態推定処理実行時)のS1800の処理で求め、S190でRAM25cに記憶した車両状態の予測値を取得する(S3010)。尚、S1800の処理の詳細は後述するが、S1800では、アンセンテッドカルマンフィルタを用いて、次サイクルでの車両側面の中点の位置座標(x1,y1)、車両前後面の中点の位置座標(x2,y2)、車両側面の長さ=N1、車両前後面の長さ=N2、車両の向き(角度)=Θ1、及び、車両の進行方向(角度)=Θ2を予測する。また、S190では、これらの予測値を、その時の座標系AでRAM25cに記憶する。
【0087】
従って、S3010では、車両状態の予測値として、上記車両側面の中点の位置座標(x1,y1)、車両前後面の中点の位置座標(x2,y2)、車両側面の長さ=N1、車両前後面の長さ=N2、車両の向き(角度)=Θ1、及び、車両の進行方向(角度)=Θ2の情報を、RAM25cから読出し、取得する。
【0088】
このようにして、S3010での処理を終えると、CPU25aは、次に、予めS1505で求めた変位量(δx,δy,δθ)に基づき、前回車両状態推定処理実行時の座標系Aで表される上記車両状態の予測値を、今回の座標系Aに射影して、予測値を座標変換する(S3015)。
【0089】
また、このようにして、S3015での処理を終えると、CPU25aは、前サイクルで(前回車両状態推定処理実行時に)予測した車両側面の中点の位置座標(x1,y1)と、今回S120又はS1300で算出した対象線分の中点の位置座標との距離を算出し、算出した距離を入力として、図11(a)に示す関数データを用いて、対象線分が対象部位を近似した線分である尤度L(3020)を導出する(S3020)。
【0090】
また、前サイクルで予測した車両前後面の中点の位置座標(x2,y2)と、今回S120又はS1300で算出した対象線分の中点の位置座標との距離を計算し、算出した距離を入力として、図11(b)に示す関数データを用いて、対象線分が対象部位を近似した線分である尤度L(3030)を導出する(S3030)。
【0091】
S3030での処理を終えると、CPU25aは、前サイクルで予測した車両側面の長さN1と、対象線分の長さとの差の絶対値を算出し、その差(絶対値)を入力として、図11(c)に示す関数データを用いて、対象線分が対象部位を近似した線分である尤度L(3040)を導出する(S3040)。
【0092】
また、前サイクルで予測した車両前後面の長さN2と、対象線分の長さとの差の絶対値を算出し、その差(絶対値)を入力として、図11(d)に示す関数データを用いて、対象線分が対象部位を近似した線分である尤度L(3050)を導出する(S3050)。
【0093】
また、前サイクルで予測した車両の向きΘ1と、対象線分の向きとの差(角度)を算出し、その差を入力として、図11(e)に示す関数データを用いて、対象線分が対象部位を近似した線分である尤度L(3060)を導出(S3060)し、更に、前サイクルで予測した車両の進行方向Θ2と、対象線分の向きとの差(角度)を算出し、その差を入力として、図11(f)に示す関数データを用いて、対象線分が対象部位を近似した線分である尤度L(3070)を導出する(S3070)。
【0094】
そして、以上の処理を終えると、S3020〜S3070で算出した各尤度を互いに掛け合わせて、最終的な尤度L(3000)を算出する(S3080)。
L(3000)=L(3020)×L(3030)×L(3040)
×L(3050)×L(3060)×L(3070)
その後、CPU25aは、当該個別尤度算出処理を終了する。また、このような個別尤度算出処理を実行して、S1500での尤度算出処理を終えると、CPU25aは、S1600に移行し、図13に示す事後確率算出処理を実行する。尚、図13は、CPU25aが実行する事後確率算出処理を表すフローチャートである。
【0095】
本実施例では、この事後確率算出処理を実行することにより、S1400で求めた事前確率及びS1500で求めた尤度を用いて、ベイズ推定の手法により、各線分L1,L21,L22毎に、当該線分が車両側面を近似した線分である蓋然性(事後確率)、当該線分が車両前後面を近似した線分である蓋然性(事後確率)、及び、当該線分がその他の線分である蓋然性(事後確率)を求める。
【0096】
続いて、この事後確率算出処理の内容について、図13を用いて詳述する。事後確率算出処理を開始すると、CPU25aは、まず、対象線分を線分L1に設定する(S1605)。続いて、対象部位を「側面」に設定する(S1610)。
【0097】
次に、対象線分が対象部位を近似した線分である事前確率P(1425)と、対象線分が対象部位を近似した線分である尤度L(3000)とを用いて、ベイズ推定の式により、対象線分が対象部位を近似した線分である事後確率P(1615)を求める(S1615)。
【0098】
S1615では、対象線分が線分L1であり対象部位が「側面」である場合、事後確率P(1615)を次式に従って算出する。尚、ここでは、対象線分が線分L1であり対象部位が「側面」である場合の事後確率P(1615)、即ち、線分L1が車両側面を近似した線分である事後確率P(1615)を、特にPo(1側)と表記する。
【0099】
【数1】

また、この処理を終えると、現在の対象線分について、当該対象線分が車両前後面を近似した線分である事後確率P(1615)を既に算出したか否かを判断し(S1630)、対象線分が車両前後面を近似した線分である事後確率P(1615)をまだ算出していなければ(S1630:N)、対象部位を「前後面」に変更して(S1635)、S1615に戻る。そして、対象線分が車両「前後面」を近似した線分である事後確率P(1615)を求める。
【0100】
対象線分が線分L1であり対象部位が「前後面」である場合には、ここで、事後確率P(1615)を次式に従って算出する。尚、本実施例では、対象線分が線分L1であり対象部位が「前後面」である場合の事後確率P(1615)、即ち、線分L1が車両前後面を近似した線分である事後確率P(1615)を、特にPo(1前後)と表記する。
【0101】
【数2】

一方、現在の対象線分について、当該対象線分が車両前後面を近似した線分である事後確率P(1615)を既に算出したと判断すると(S1630:Y)、CPU25aは、現在の対象線分について、当該対象線分がその他の線分である事後確率P(1615)を既に算出したか否かを判断し(S1640)、現在の対象線分について、対象線分がその他の線分である事後確率P(1615)をまだ算出していなければ(S1640:N)、対象部位を「その他」に変更して(S1645)、S1615に戻る。そして、対象線分がその他の線分である事後確率P(1615)を求める。
【0102】
対象線分が線分L1であり対象部位が「その他」である場合には、ここで、事後確率P(1615)を次式に従って算出する。尚、本実施例では、対象線分が線分L1であり対象部位が「その他」である場合の事後確率P(1615)、即ち、線分L1がその他の線分である事後確率P(1615)を、特にPo(1その他)と表記する。
【0103】
【数3】

また、現在の対象線分について、当該対象線分がその他の線分である事後確率P(1615)を既に算出したと判断すると(S1640:Y)、CPU25aは、対象線分として線分L21を設定して、事後確率P(1615)を算出したか否かを判断し(S1655)、事後確率P(1615)を算出していないと判断すると(S1655:N)、対象線分を線分L21に変更して(S1660)、S1610に戻る。
【0104】
そして、S1615の処理を上述した手順で繰り返し実行することにより、線分L21が車両側面を近似した線分である事後確率P(1615)=Po(21側)、線分L21が車両前後面を近似した線分である事後確率P(1615)=Po(21前後)、線分L21がその他の線分である事後確率P(1615)=Po(21その他)を算出する。
【0105】
【数4】

また、対象線分として線分L21を設定して事後確率P(1615)を算出したと判断すると(S1655:Y)、対象線分として線分L22を設定して事後確率P(1615)を算出したか否かを判断する(S1665)、そして、対象線分として線分L22を設定して事後確率P(1615)を算出していないと判断すると(S1665:N)、対象線分を線分L22に変更して(S1670)、S1610に戻る。
【0106】
そして、S1615の処理を上述した手順で繰り返し実行することにより、線分L22が車両側面を近似した線分である事後確率P(1615)=Po(22側)、線分L22が車両前後面を近似した線分である事後確率P(1615)=Po(22前後)、線分L22がその他の線分である事後確率P(1615)=Po(22その他)を算出する。
【0107】
【数5】

また、対象線分として線分L22を設定して事後確率P(1615)を算出したと判断すると(S1665:Y)、当該事後確率算出処理を終了する。また、S1600で、このようにして事後確率算出処理を終了すると、CPU25aは、図14に示す選択処理を実行する(S1700)。図14は、CPU25aが実行する選択処理を表すフローチャートである。
【0108】
選択処理を開始すると、CPU25aは、S1600で求められた事後確率Po(1側)、又は、事後確率Po(1前後)、又は、事後確率Po(21側)及び事後確率Po(22前後)の両方、又は、事後確率Po(21前後)及び事後確率Po(22側)の両方、が所定の閾値Th以上であるか否かを判定する(S1710)。即ち、ここでは、条件式「Po(1側)≧Th」、条件式「Po(1前後)≧Th」、条件式「Po(21側),Po(22前後)≧Th」、条件式「Po(21前後),Po(22側)≧Th」の計四つの条件式の内、少なくとも一つが満足されているか否かを判定する。尚、閾値Thは、0<Th<1を満足する範囲内で設計者が自由に設定すればよい。
【0109】
そして、閾値Th以上ではないと判定すると(S1710:N)、S1720〜S1780の処理を実行することなく、当該選択処理を終了する。
一方、閾値Th以上であると判定すると(S1710:Y)、CPU25aは、事後確率Po(1側)が、事後確率Po(1側),Po(1前後),Po(21側),Po(22前後),Po(21前後),Po(22側)の集合の中で、最大であるか否かを判断する(S1720)。
【0110】
そして、事後確率Po(1側)が最大であると判断すると(S1720:Y)、線分L1が車両側面を近似した線分であると判定して、当該単一線分からなる近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択する(S1730)。その後、当該選択処理を終了する。
【0111】
一方、事後確率Po(1側)が最大ではないと判断すると(S1720:N)、CPU25aは、事後確率Po(1前後)が上記集合の中で最大であるか否かを判断する(S1740)。そして、事後確率Po(1前後)が最大であると判断すると(S1740:Y)、線分L1が車両前後面を近似した線分であると判定し、当該単一線分からなる近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択する(S1750)。その後、当該選択処理を終了する。
【0112】
この他、事後確率Po(1前後)が最大ではないと判断すると(S1740:N)、事後確率Po(21側)及び事後確率Po(22前後)のいずれか一方が上記集合の中で最大であるか否かを判断する(S1760)。
【0113】
そして、事後確率Po(21側)及び事後確率Po(22前後)のいずれか一方が最大であると判断すると(S1760:Y)、線分L21が車両側面を近似した線分であり、線分L22が車両前後面を近似した線分であると判定し、L字状の近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択する(S1770)。その後、当該選択処理を終了する。
【0114】
一方、事後確率Po(21側)及び事後確率Po(22前後)のいずれとも上記集合の中で最大ではないと判断すると(S1760:N)、CPU25aは、線分L21が車両前後面を近似した線分であり、線分L22が車両側面を近似した線分であると判定し、L字状の近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択する(S1780)。その後、当該選択処理を終了する。
【0115】
このようにしてS1700で選択処理を終了すると、CPU25aは、S1800に移行して、図17に示す状態推定処理を実行する。
本実施例では、この現在過去状態推定処理を実行することにより、S110での測位結果に基づき、現在の車両状態及び次回の車両状態推定処理実行時(即ち、次サイクル)の車両状態を推定する。以下では、この現在過去状態推定処理を、図17を用いて詳細に説明する前に、その概略について説明する。
【0116】
状態推定処理では、まず、S1700で実行した選択処理の判定結果と、S120,S1300で算出した各線分L1,L21,L22の中点の位置座標、向き、及び長さの算出結果とに従い、前方物体を車両とみなして、上記座標系Aで、その前方車両の中心点の位置座標(x0m,y0m)、車両の向き(車両前後方向軸線の座標系Ax軸とのなす角度)θm、車両の全長Lm及び全幅Wmを求める。
【0117】
そして、これらの観測値z
【0118】
【数6】

を、後述する座標系Bに置換した後、この座標変換後の観測値zを、カルマンフィルタへの入力とし、座標系Bでの前方車両の状態量xs
【0119】
【数7】

を、カルマンフィルタの出力として、得る。ここでx0は、前方車両中心点の座標系Bx軸上の座標値、vxは前方車両の速度x軸成分、y0は、前方車両中心点の座標系By軸上の座標値、vyは前方車両の速度y軸成分、θは、x軸と車両側面(若しくは車両前後方向軸線)とのなす角度(但し、0≦θ<πになるように規格化される。)、ωは、角度θの時間微分(つまり角速度)、Wは、前方車両全幅、Lは、前方車両全長を示す。
【0120】
具体的に、本実施例では、カルマンフィルタとして、非線形運動モデルに適用可能なアンセンテッドカルマンフィルタ(UKF)を用いて、前方車両の状態量xsを求める。図15は、観測値zから状態量xsの推定手順を、示した説明図である。
【0121】
本実施例の推定装置1は、このアンセンテッドカルマンフィルタとしての機能をCPU25aに実現させるためのプログラムを、ROM25bに備え、S1800にて、CPU25aにより、このプログラムを実行することによって、状態量xsを求める。
【0122】
尚、ここで用いられるアンセンテッドカルマンフィルタは、周知の理論に基づいて構築されるものであり、設計者が設定する運動モデル及び観測モデルによって定まる伝達関数により、入力に対する出力を演算するものである。
【0123】
従って、以下では、カルマンフィルタ及びアンセンテッドカルマンフィルタの原理についての説明は省略し、アンセンテッドカルマンフィルタ(UKF)の説明として、本実施例の推定装置1の動作を実現するに当って、アンセンテッドカルマンフィルタの設計に必要な運動モデル、観測モデル、及び、アンセンテッドカルマンフィルタに入出力されるパラメータについて説明する。
【0124】
図15に示すように、本実施例のアンセンテッドカルマンフィルタには、最新サイクルtの測位結果に基づいて算出された上述の観測値z(t)と、前サイクルt−1にて観測値z(t−1)に基づきアンセンテッドカルマンフィルタが演算し出力した状態量xs(t,t−1)が入力される。そして、この入力に基づいた演算によりアンセンテッドカルマンフィルタからは、現在の車両状態を示す状態量xs(t,t)と、次サイクルt+1の車両状態を示す状態量xs(t+1,t)と、が出力される。但し、本実施例では、時刻(サイクル)t2での観測値z(t2)の入力に基づいて求められる時刻(サイクル)t1での車両の状態量xsを、特に、xs(t1,t2)と表記する。
【0125】
このアンセンテッドカルマンフィルタから出力される現在の車両状態を表す状態量xs(t,t)は、CPU25aの動作により、推定装置1の制御部25に接続された車内ネットワークに送出される。また、現在の車両状態を表す状態量xs(t,t)及び次サイクルの車両状態を表すxs(t+1,t)は、RAM25cに保存される。そして、次サイクルの車両状態を表すxs(t+1,t)は、上述したように、次サイクルの状態推定処理実行時に用いられる。この他、RAM25cに保存された状態量xs(t,t)は、次サイクル推定処理実行時に、入力とする観測値z(t)を座標系Bに置換する際に用いられる。
【0126】
尚、アンセンテッドカルマンフィルタで用いられる座標系Bは、前サイクルの前方車両の位置及び向きを基準にして設定されるxy座標系であり、原点が、前サイクルt−1の状態推定処理にて推定された状態量xs(t−1,t−1)が示す車両中心点の位置座標(x0,y0)に、設定され、y軸が、前サイクルt−1の状態推定処理にて推定された状態量xs(t−1,t−1)が示す車両の向きに(車両の前後方向軸線に沿って)設定され、x軸が、y軸とは直交するように設定されるxy座標系である。座標系Aから座標系Bへの変換に際しては、時刻t−1からtまでの自車両の変位量のパラメータが必要になるが、このパラメータについては、S1505で求めたパラメータ(δx,δy,δθ)を用いる。また、座標変換に際しては、ヘルマート変換を用いる。なお今回は、前方車両50を基準として座標系を設定したが、任意の位置を基準として構わない。
【0127】
以上には、アンセンテッドカルマンフィルタの入出力について説明したが、次には、本実施例の推定装置1が備えるアンセンテッドカルマンフィルタの運動モデルについて説明する。本実施例の推定装置1は、後述する非線形運動モデルに基づいて設計されたアンセンテッドカルマンフィルタ(以下、「UKF1」と表記する。)と、後述する線形運動モデルに基づいて設計されたアンセンテッドカルマンフィルタ(以下、「UKF2」と表記する。)と、を備え、UKF1及びUKF2を切り替えて用いて、車両状態を推定する。
【0128】
UKF1は、非線形運動モデルとしての等速円運動モデルに基づいて設計されたものであり、前方車両が旋回運動していると想定される際に用いられる。具体的に、UKF1は、次の運動モデルに基づいて設計され、推定装置1に搭載される。尚、等速円運動を用いる理由は、旋回運動を捉えるのに好適だからである。
【0129】
【数8】

上式の修飾記号*は、繰り返し実行される上記車両状態推定処理の一周期Ts後の状態を示し、Tsは、当該繰り返し周期である。尚、ここで用いるパラメータx,yは、前方車両50の中心位置であり、アンセンテッドカルマンフィルタへの入力x0m,y0mに対応する。
【0130】
上式に示されるx*、y*、vx*、vy*、θ*及びω*と、x、y、vx、vy、θ及びωとの関係は、等速円運動という条件から当然に求められる。また、車両の全幅W及び全長Lは、時間に無関係であると考えて、時間が経っても変化しないと定義する。
【0131】
但し、この運動モデルでは、分母にωがあるので、ωがゼロである時は計算ができない。そこで、ωがゼロのときは、状態量xsの推定にUKF2を用いて、運動モデルを、等速円運動モデルから等速直線運動モデルに変更して、状態量xsを推定する。
【0132】
即ち、本実施例のUKF2は、線形運動モデルとしての等速直線運動モデルに基づいて設計されたものであり、前方車両が直線運動していると想定される際に用いられる。具体的に、UKF1は、次の運動モデルに基づいて設計され、推定装置1に搭載される。
【0133】
【数9】

また、本実施例のUKF1及びUKF2における観測モデルは、z(t)に対して、θmを0°≦θm<180°になるように規格化したものである。なお、観測モデルは、これに限らず、設計者が自由に設計できる。
【0134】
本実施例では、このような構成のUKF1,UKF2を用いて、前方車両の状態量Xsを推定する。
続いて、これらのアンセンテッドカルマンフィルタの入力に用いる観測値z(t)の設定方法について簡単に説明する。尚、この設定処理は、具体的に、状態推定処理のS1805からS1842の処理にて実現される。
【0135】
上述したように、状態推定処理では、z(t)を設定するために、選択処理の判定結果と、S120,S1300で算出した各線分L1,L21,L22の中点の位置座標、向き、及び長さの算出結果とに従い、前方物体を車両とみなして、前方車両の中心点の位置座標(x0m,y0m)、車両の向き(車両前後方向軸線の座標系Ax軸とのなす角度)θm、車両の全長Lm及び全幅Wmを求めるが、前方車両が、図4(a)に示す状態であるか、図4(b)に示す状態にあるかによって測位できる車両の部位が変わるため、当然に、測位結果に従って、前方車両の中心点の位置座標(x0m,y0m)を求める際の処理手順が変わる。そこで、ここでは、具体例を挙げて、z(t)の設定方法を説明する。
【0136】
図16は、選択処理にて線分L21が車両側面を近似した線分であると判定され、線分L22が車両前後面を近似した線分であると判定された場合のz(t)の導出方法を示した説明図である。
【0137】
図16に示すように、この場合には、線分L21の長さを、車両の全長Lmに設定し、線分L22の長さを、車両の全幅Wmに設定する。また、x軸と線分L21とがなす角度を車両の向きθmに設定する。そして、線分L22と接続されない線分L21の端点と、線分L21と接続されない線分L22の端点とを結んでできる線分L3の中点の位置を、前方車両の中心点とし、その中心点のx軸の座標値をxm、そのy軸の座標値をymに設定する。このようにして、z(t)を設定する。
【0138】
また、選択処理にて線分L21が車両側面を近似した線分であると判定され、線分L22が車両前後面を近似した線分であると判定された場合には、上述した「線分L21が車両側面を近似した線分であると判定され、線分L22が車両前後面を近似した線分であると判定された場合」のz(t)の設定に関する説明において、線分L21を、線分L22に読み替え、線分L22を線分L21に読み替えて解釈される手法で、xm,ym,θm,Wm,Lmを設定する。
【0139】
一方、選択処理にて、線分L1が車両側面又は車両前後面を近似した線分であると判定された場合には、S1805で肯定判断して、次のように、xm,ym,θm,Wm,Lmを設定する。続いて、図17を用いてS1800でCPU25aが実行する状態推定処理について詳細に説明する。
【0140】
この状態推定処理を開始すると、CPU25aは、S1700において単一線分からなる近似図形パターンが、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択されたか否かを判断し(S1805)、単一線分からなる近似図形パターンが選択されたと判断すると(S1805:Y)、S1810に移行する。一方、S1700においてL字状の近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択している場合には(S1805:N)、S1810〜S1840の処理を実行することなく、S1842に移行する。
【0141】
S1810に移行すると、CPU25aは、現在対象としている前方車両50について現サイクルより過去のサイクルの選択処理で、L字状の近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択したことがあるか否かを判断する(S1810)。
【0142】
そして、L字状の近似図形パターンを選択したことがあれば(S1810:Y)、今回の選択処理にて、線分L1が車両前後面を近似した線分であると判定されているか否かを判断する(S1815)。そして、線分L1が車両前後面を近似した線分であると判定されている場合には(S1815:Y)、上記過去において推定された当該車両についての車両側面の長さを、Lmに設定し、線分L1の長さを、Wmに設定して、これらの値Lm,Wmがz(t)に用いられるようにする(S1820)。その後、S1842に移行する。
【0143】
一方、線分L1が車両側面を近似した線分であると判定されている場合には(S1815:N)、上記過去において推定された当該車両についての車両前後面の長さを、Wmに設定し、線分L1の長さを、Lmに設定する(S1825)。その後、S1842に移行する。
【0144】
これに対し、現在対象としている前方車両50について現サイクルより過去のサイクルの選択処理で、L字状の近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択したことがなければ(S1810:N)、S1830に移行し、今回の選択処理にて、線分L1が車両前後面を近似した線分であると判定されているか否かを判断する(S1830)。
【0145】
そして、線分L1が車両前後面を近似した線分であると判定されている場合には(S1830:Y)、線分L1の長さを、Wmに設定すると共に、車両側面の長さLmに、所定長さ(例えば、図9(a)で側面の確率がピークになる長さ)を設定する(S1835)。その後、S1842に移行する。
【0146】
また、線分L1が車両側面を近似した線分であると判定されている場合には(S1830:N)、線分L1の長さを、Lmに設定すると共に、車両前後面の長さWmに、所定長さ(例えば、図9(a)で前後面の確率がピークになる長さ)を設定する(S1840)。その後、S1842に移行する。
【0147】
また、S1842に移行すると、CPU25aは、アンセンテッドカルマンフィルタに入力するための観測値z(t)を設定する。
具体的に、S1700の選択処理で、L字状の近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択している場合(即ち、選択処理にて線分L21が車両側面を近似した線分であると判定し、線分L22が車両前後面を近似した線分であると判定した場合、又は、線分L21が車両側面を近似した線分であると判定し、線分L22が車両前後面を近似した線分であると判定した場合)には、上述した手法で、観測値z(t)を設定する。
【0148】
一方、S1700の選択処理で、単一線分からなる近似図形パターンを、前方に位置する車両の輪郭として最も確からしい図形パターンとして選択した場合(即ち、選択処理にて線分L1が車両側面又は車両前後面を近似した線分であると判定した場合)には、S1820、S1825、S1835及びS1840のいずれかにて設定したWm,Lmの情報と線分L1の情報とに基づき、前方車両の中心点の位置座標(x0m,y0m)を含むz(t)を算出し、観測値z(t)を設定する(S1842)。具体的には、線分L1の中点を基点に、線分L1と直交方向で座標系A(xy座標系)におけるyの値が大きくなる向きに沿って、車両全幅Wm又は車両全長Lmの半分の長さを移動した位置を、前方車両の中心点とみなして、前方車両の中心点の位置座標(x0m,y0m)を算出する。そして、更に、車両の向きθmを求めて、観測値z(t)を設定する。
【0149】
また、S1842にて座標系Aでの観測値z(t)を設定すると、この観測値z(t)を上述した座標系Bに座標変換する。即ち、座標系Aの観測値z(t)を、前回の車両状態推定処理によって推定された状態量xs(t−1,t−1)が示す車両中心点の座標(x0,y0)が原点となる座標系Bに射影する(S1845)。
【0150】
また、前回の車両状態推定処理によって推定された現在の車両状態の予測値である状態量xs(t,t−1)を、前回の座標系B(即ち、状態量xs(t−2,t−2)が示す車両中心点の座標(x0,y0)が原点となる座標系B)から今回の座標系B(即ち、状態量xs(t−1,t−1)が示す車両中心点の座標(x0,y0)が原点となる座標系B)に座標変換する(S1847)。
【0151】
次に、前回の車両状態推定処理における推定結果である状態量xs(t−1,t−1)が示す角速度ωがゼロであるかを判断し(S1850)、角速度ωがゼロであったなら(S1850:Y)、S1865で用いる運度モデルを等速直線運動モデルに(換言すると、用いるカルマンフィルタをUKF2に)設定し(S1860)、角速度ωがゼロでなかったなら(S1850:N)、S1865で用いる運動モデルを等速円運動モデルに(換言すると、用いるカルマンフィルタをUKF1に)設定する(S1855)。その後、
S1865に移行する。
【0152】
また、S1865では、設定した運動モデルに基づいて設計されたアンセンテッドカルマンフィルタに、座標系Bへの変換後の観測値Z(t)及び状態量xs(t,t−1)を入力して、アンセンテッドカルマンフィルタから現在の車両状態を表す状態量xs(t,t)及び次サイクルの車両状態を表す状態量xs(t+1,t)を得る。
【0153】
即ち、角速度ωがゼロであると判断した場合(S1850:Y)には、UKF2を用いて状態量xs(t,t)及び状態量xs(t+1,t)を算出し、角速度ωがゼロでないと判断した場合(S1850:N)には、UKF1を用いて状態量xs(t,t)及び状態量xs(t+1,t)を算出する。
【0154】
また、S1865では、算出した座標系Bでの状態量xs(t,t)及び状態量xs(t+1,t)をRAM25cに保存する。その後、当該状態推定処理を終了する。
そして、S1800に移行すると、S190に移行し、次回の尤度算出処理で用いる車両状態の予測値を、状態量xs(t+1,t)に基づき算出して、同じく、RAM25cに保存する。
【0155】
即ち、状態量xs(t+1,t)が示す車両全長Lを、パラメータN1に設定し、状態量xs(t+1,t)が示す車両全幅Wを、パラメータN2に設定すると共に、状態量xs(t+1,t)が示す車両の向きθを、今回の座標系Aに置換して、座標系Aでの車両の向きθを、パラメータΘ1に設定し、状態量xs(t+1,t)が示す車両の速度ベクトル(vx,vy)を、座標系Aに置換し、その座標系Aでの速度ベクトル(vx,vy)が座標系Aのx軸となす角度を、パラメータΘ2に設定する。
【0156】
また、状態量xs(t+1,t)が示す車両の中心点の位置座標(x0,y0)を、今回の座標系Aに置換して、次サイクルでの車両側面の中点の位置座標(x1,y1)、車両前後面の中点の位置座標(x2,y2)を次のように求める。
【0157】
即ち、座標系Aでの車両の中心点(x0,y0)を基点とし、車両の前後方向軸線に沿って、座標系Aにおけるyの値が減少する向きに、車両全長Lの半分の距離を移動した位置の座標を、車両前後面の中点の位置座標(x2,y2)として求める。また、座標系Aでの車両の中心点(x0,y0)を基点とし、車両の前後方向軸線とは垂直な直線に沿って、座標系Aにおけるyの値が減少する向きに、車両全幅Wの半分の距離を移動した位置の座標を、車両側面の中点の位置座標(x1,y1)として求める。但し、どちらの向きに進んでもyの値が変わらなければ、任意の向きに進めばよい。
【0158】
そして、これらの値(x1,y1)、(x2,y2)、N1、N2、Θ1、及び、Θ2を車両状態の予測値として、RAM25cに保存する。そして、最後にS1800で得た前方車両50の現在の情報であるxs(t,t)を車内ネットワークに出力する(S200)。そして、一連の処理を終える。
【0159】
上述したように、本実施例の車両状態推定処理は、旋回運動に対応できるような構成なので、従来技術に比べて使用範囲が格段に広くなっている。よって、車両に搭載すれば衝突回避のための情報として活用できるし、道路に設置する場合でも、従来ではできなかったカーブ付近での設置も可能となる。
【0160】
尚、上記実施例では、四点以上の反射点が計測されることが後続の処理を実行する条件であった。しかし、計測した反射点の数が二点又は三点でも、推定装置1が前方車両50の状態を推定できるように、推定装置1を構成してもよい。その方法を説明すると、二点の場合、CPU25aは、S120の処理では、最小二乗法ではなく、この二点を結んだ線分の長さ、向き及び中点の位置を求める。そして、CPU25aは、二線分算出処理(S1300)を行わず、事前確率算出処理(S1400)から選択処理(S1700)までの処理で、二線分算出処理の結果に基づいて行う処理も行わない。つまり、S120で求めた線分が、車両前後面又は側面のどちらを近似しているかのみを選択する。その後の処理は、上述した処理と同様である。
【0161】
また、三点の場合、CPU25aは、二線分算出処理に代えて次の処理をする。その処理とは、まず、その三点のうちの二点を結んでできる線分は三本あるので、その三本の線分を算出する。そして、その三本の線分のなかから二本を選ぶことで、二線分を算出する。三本の線分のなかから二本を選ぶ方法は、例えば、二線分が作る角度のうちの劣角が、最も90度に近い二線分の組み合わせにする方法が考えられる。その後のS1400以降の処理は上述した処理と同様である。
【0162】
また、S1710でNoと判断した場合の後続の処理内容について、上では説明しなかったが、この場合には、車両状態推定処理を中断し、前方物体が車両ではないとして、測位をやり直しても良いし、前回の車両状態推定処理で保存したxs(t,t−1)を、現在の車両状態を表す状態量xs(t,t)として出力するように構成されてもよい。
【0163】
また、S1845及びS1847の処理は、xs(t,t−1)の値がRAM25cに保存されていなければ、行うことができない。従って、その場合には、以降の処理を行わずに、観測値z(t)の情報を、RAM25cに保存した後に一連の処理を終えるように構成されるとよい。そうすれば次回の車両状態推定処理では、S1845及びS1847の処理が実行可能になる。尚、アンセンテッドカルマンフィルタによる初回演算処理実行時には、速度vx,vy、角速度ωとして所定の初期値を設定すると共に、必要な予測値を観測値で代替して、状態量xsを求めればよい。
【0164】
この他、尤度算出処理では、車両状態の予測値が必要になるが、車両状態の予測値がRAM25cに記録されていない場合には、尤度算出処理及び事後確率算出処理を実行することなく、事前確率Pをそのまま事後確率Poとして設定して、選択処理に移行すればよい。
【0165】
尚、特許請求の範囲に記載の推定手段は、本実施例のS120からS1865までの処理にて実現されている。この他、測位手段は、本実施例のS110の処理にて実現されている。また、本発明は、上記実施例に限定されることなく、種々の態様を採ることができることは言うまでもない。
【符号の説明】
【0166】
1…推定装置、11…レーザダイオード、12…コリメータレンズ、13…レーザダイオード駆動回路、15ミラー…、17モータ…、19…集光レンズ、21…フォトダイオート、22…増幅器、23…検出回路、25…制御部、25a…CPU、25b…ROM、25c…RAM、50…前方車両

【特許請求の範囲】
【請求項1】
前方に位置する車両の運動状態を推定する推定装置であって、
レーダ波を発射し、発射波が前方に位置する車両に反射して戻ってくる反射波を受波して、前記レーダ波を反射した前記車両表面の複数地点の位置座標を計測する測位手段と、
前記測位手段により計測された前記車両表面の複数地点の位置座標に基づき、前記車両の角速度を含む前記車両の運動状態を所定の非線形運動モデルに従って推定する推定手段と、
を備えることを特徴とする推定装置。
【請求項2】
前記推定手段は、前記車両の運動状態として、前記車両の角速度以外に、前記車両の位置、前記車両の向き、前記車両の速さ、及び、前記車両の進行方向の内、少なくとも一つを推定する構成にされていること
を特徴とする請求項1に記載の推定装置。
【請求項3】
前記推定手段は、前記非線形運動モデルが採用されたカルマンフィルタを用いて、前記車両の状態を推定する構成にされていること
を特徴とする請求項又は請求項2に記載の推定装置。
【請求項4】
前記カルマンフィルタは、アンセンテッドカルマンフィルタであること
を特徴とする請求項3に記載の推定装置。
【請求項5】
前記非線形運動モデルは、等速円運動モデルであること
を特徴とする請求項又は請求項に記載の推定装置。
【請求項6】
前記推定手段は、前回推定した角速度がゼロである場合には、前記車両の状態の推定に用いる運動モデルを、前記非線形運動モデルから、所定の線形運動モデルに切り替えて、当該線形運動モデルに従い、前記車両の状態を推定する構成にされていること
を特徴とする請求項から請求項の何れか1項に記載の推定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図16】
image rotate


【公開番号】特開2009−288255(P2009−288255A)
【公開日】平成21年12月10日(2009.12.10)
【国際特許分類】
【出願番号】特願2009−210703(P2009−210703)
【出願日】平成21年9月11日(2009.9.11)
【分割の表示】特願2007−210275(P2007−210275)の分割
【原出願日】平成19年8月10日(2007.8.10)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】