本発明の好適な実施形態によれば、推定装置は、地図情報を取得する取得部と、移動体の基準方位を取得する方位取得部と、第1範囲に存在する対象物までの距離及び角度(即ち、移動体と第1範囲に存在する地物との位置関係)を示す第1情報を取得する第1取得部と、前記地図情報に含まれる前記対象物の位置情報、前記移動体の基準方位及び前記第1情報に基づいて、前記移動体の位置を推定する第1推定部と、を備える。
上記推定装置は、取得部と、方位取得部と、第1取得部と、第1推定部とを有する。取得部は、地図情報を取得する。方位取得部は、移動体の基準方位を取得する。「基準方位」とは、移動体の所定の向き(例えば正面方向)を基準とした絶対的な方位を示す。第1取得部は、対象物と移動体との位置関係を示す第1情報を取得する。第1推定部は、地図情報に含まれる対象物の位置情報、移動体の基準方位及び第1情報に基づいて、移動体の位置を推定する。この態様により、推定装置は、地図情報に登録された対象物の位置情報と、取得した移動体の基準方位とを利用し、的確に移動体の位置を推定することができる。
上記推定装置の一態様では、前記第1推定部は、前記第1情報が示す距離が、前記地図情報が示す前記対象物の位置と前記第1推定部が算出すべき前記移動体の推定位置との距離と等しく、かつ、前記第1情報が示す角度が、前記地図情報が示す前記対象物の位置と前記推定位置と前記基準方位とに基づき算出した、前記移動体に対する前記対象物の角度と等しいとみなすことで、前記推定位置を算出する。この態様により、推定装置は、地図情報に登録された対象物の位置情報と、取得した移動体の基準方位とを利用し、移動体の推定位置を的確に算出することができる。
上記推定装置の他の一態様では、前記方位取得部は、地磁気センサ、方位磁石、又はGPS受信機の少なくともいずれか一つから、前記基準方位を取得する。この態様により、推定装置は、移動体の絶対的な方位を示す基準方位を好適に取得することができる。
上記推定装置の他の一態様では、前記方位取得部は、所定時間前に取得した前記基準方位と、測定された前記移動体の角速度とに基づき、現在時刻での前記基準方位を算出する。この態様により、推定装置は、移動体の絶対的な方位を示す基準方位の推定値を取得することができる。
上記推定装置の他の一態様では、前記第1取得部は、照射方向を変えながらパルス状にレーザを照射して当該レーザに対応する散乱光を測定する測定装置から前記第1情報を取得する。この態様により、第1取得部は、対象物までの距離及び角度を示す高精度な第1情報を取得することができる。
本発明の他の好適な実施形態によれば、推定装置が実行する制御方法であって、地図情報を取得する取得工程と、移動体の基準方位を取得する方位取得工程と、第1範囲に存在する対象物までの距離及び角度を示す第1情報を取得する第1取得工程と、前記地図情報に含まれる前記対象物の位置情報、前記移動体の基準方位及び前記第1情報に基づいて、前記移動体の位置を推定する第1推定工程と、を有する。情報処理装置は、この制御方法を実行することで、地図情報に登録された対象物の位置情報と、取得した移動体の基準方位とを利用し、的確に移動体の位置を推定することができる。
本発明の他の好適な実施形態によれば、コンピュータが実行するプログラムであって、地図情報を取得する取得部と、移動体の基準方位を取得する方位取得部と、第1範囲に存在する対象物までの距離及び角度を示す第1情報を取得する第1取得部と、前記地図情報に含まれる前記対象物の位置情報、前記移動体の基準方位及び前記第1情報に基づいて、前記移動体の位置を推定する第1推定部として前記コンピュータを機能させる。コンピュータは、このプログラムを実行することで、地図情報に登録された対象物の位置情報と、取得した移動体の基準方位とを利用し、的確に移動体の位置を推定することができる。好適には、上記プログラムは、記憶媒体に記憶される。
以下、図面を参照して本発明の好適な各実施例について説明する。
<第1実施例>
(1)概略構成
図1は、第1実施例に係る運転支援システムの概略構成図である。図1に示す運転支援システムは、車両に搭載され、車両の運転支援に関する制御を行う車載機1と、ライダ(Lidar:Light Detection and Ranging、または、Laser Illuminated Detection And Ranging)2と、ジャイロセンサ3と、車速センサ4とを有する。
車載機1は、ライダ2、ジャイロセンサ3、及び車速センサ4と電気的に接続し、これらの出力に基づき、車載機1が搭載される車両の位置(「自車位置」とも呼ぶ。)の推定を行う。そして、車載機1は、自車位置の推定結果に基づき、設定されたルートに沿って走行するように、車両の自動運転制御などを行う。車載機1は、道路データ及び道路付近に設けられた目印となるランドマークに関する情報(「ランドマーク情報」とも呼ぶ。)を記憶した地図データベース(DB:DataBase)10を記憶する。ランドマーク情報は、各ランドマークに割り当てられたインデックスと、ランドマークの位置情報とが少なくとも関連付けられた情報である。そして、車載機1は、このランドマーク情報に基づき、ライダ2によるランドマークの探索範囲を限定したり、ライダ2等の出力と照合させて自車位置の推定を行ったりする。以後では、車載機1が自車位置推定のために基準とするランドマークを「基準ランドマークLk」と呼び、基準ランドマークLkのインデックスを「k」とする。基準ランドマークLkは、本発明における「対象物」の一例である。
基準ランドマークLkの候補となるランドマークは、例えば、道路脇に周期的に並んでいるキロポスト、100mポスト、デリニエータ、交通インフラ設備(例えば標識、方面看板、信号)、電柱、街灯などの地物である。好適には、上述のランドマークは、安定した計測を可能とするため、人工物であることが好ましく、定期的に自車位置を補正できるように、周期的に設けられた地物であることがより好ましい。なお,その間隔は厳格に一定周期である必要はなく,ある程度の周期性を持って存在するものであれば良い(例えば電柱や街灯など)。また走行エリアごとに異なる間隔となっているものでも良い。
ライダ2は、水平方向および垂直方向の所定の角度範囲に対してパルスレーザを出射することで、外界に存在する物体までの距離を離散的に測定し、当該物体の位置を示す3次元の点群情報を生成する。この場合、ライダ2は、照射方向を変えながらレーザ光を照射する照射部と、照射したレーザ光の反射光(散乱光)を受光する受光部と、受光部が出力する受光信号に基づくスキャンデータを出力する出力部とを有する。スキャンデータは、受光部が受光したレーザ光に対応する照射方向と、上述の受光信号に基づき特定される当該レーザ光の応答遅延時間とに基づき生成される。本実施例では、ライダ2は、少なくとも車両の前方をスキャンするように車両の進行方向を向いて設置されているものとする。ライダ2、ジャイロセンサ3、車速センサ4は、それぞれ、出力データを車載機1へ供給する。なお、車載機1は、本発明における「推定装置」の一例であり、ライダ2は、本発明における「測定装置」の一例である。
図2は、車載機2の機能的構成を示すブロック図である。車載機2は、主に、インターフェース11と、記憶部12と、入力部14と、制御部15と、出力部16とを有する。これらの各要素は、バスラインを介して相互に接続されている。
インターフェース11は、ライダ2、ジャイロセンサ3、及び車速センサ4などのセンサから出力データを取得し、制御部15へ供給する。
記憶部12は、制御部15が実行するプログラムや、制御部15が所定の処理を実行するのに必要な情報を記憶する。本実施例では、記憶部12は、ランドマーク情報を含む地図DB10を記憶する。なお、地図DB10は、定期的に更新されてもよい。この場合、例えば、制御部15は、図示しない通信部を介し、地図情報を管理するサーバ装置から、自車位置が属するエリアに関する部分地図情報を受信し、地図DB10に反映させる。
入力部14は、ユーザが操作するためのボタン、タッチパネル、リモートコントローラ、音声入力装置等であり、経路探索のための目的地を指定する入力、自動運転のオン及びオフを指定する入力などを受け付ける。出力部16は、例えば、制御部15の制御に基づき出力を行うディスプレイやスピーカ等である。
制御部15は、プログラムを実行するCPUなどを含み、車載機1の全体を制御する。本実施例では、制御部15は、自車位置推定部17と、自動運転制御部18とを有する。
自車位置推定部17は、基準ランドマークLkに対するライダ2による距離及び角度の計測値と、地図DB10から抽出した基準ランドマークLkの位置情報とに基づき、ジャイロセンサ3及び車速センサ4の出力データから推定した自車位置を補正する。このとき、自車位置推定部17は、ベイズ推定に基づく状態推定手法に基づき、ジャイロセンサ3及び車速センサ4の出力データから自車位置を推定する予測ステップと、直前の予測ステップで算出した自車位置の推定値を補正する計測更新ステップとを交互に実行する。第1実施例では、ベイズ推定に基づく状態推定手法の一例として、拡張カルマンフィルタを用いた例について後述する。自車位置推定部17は、本発明における「取得部」、「方位取得部」、「第1取得部」、「第1推定部」、及びプログラムを実行するコンピュータの一例である。
自動運転制御部18は、地図DB10を参照し、設定された経路と、自車位置推定部17が推定した自車位置とに基づき、車両の自動運転を行う。自動運転制御部18は、設定された経路に基づき、目標軌道を設定し、自車位置推定部17が推定した自車位置が目標軌道から所定幅以内のずれ幅となるように、車両に対してガイド信号を送信して車両の位置を制御する。
(2)拡張カルマンフィルタを用いた自車位置推定
次に、自車位置推定部17による自車位置の推定処理について説明する。
(2−1)基本説明
以下では、自車位置推定部17が実行する処理の前提となる基本事項について説明する。以後の説明では、自車位置を状態変数ベクトル「x=(x、y、θ)」で表わす。また、予測ステップで推定された暫定的な推定値には当該推定値を表す文字の上に「−」を付し、計測更新ステップで更新された,より精度の高い推定値には当該値を表す文字の上に「^」を付す。なお、任意の記号の上に「^」または「−」が付された文字を、本明細書では便宜上、「A^」または「A−」(「A」は任意の文字)と表す。
図3は、状態変数ベクトルxを2次元直交座標で表した図である。図3に示すように、xyの2次元直交座標上で定義された平面での自車位置は、座標「(x、y)」、自車の方位「θ」により表される。ここでは、方位θは、車の進行方向とx軸とのなす角として定義されている。座標(x、y)は、例えば緯度及び経度の組合せに相当する絶対位置を示す。
図4は、予測ステップと計測更新ステップとの概略的な関係を示す図である。カルマンフィルタのようなベイズ推定に基づく状態推定手法では、上述したように、予測ステップと、計測更新ステップとを交互に実行する2ステップ処理によって推定値の算出及び更新を逐次的に実行する。よって、本実施例では、予測ステップと計測更新ステップとを繰り返すことで状態変数ベクトルxの推定値の算出及び更新を逐次的に実行する。以後では、計算対象となる基準時刻(即ち現在時刻)「t」の状態変数ベクトルを、「x− t」または「x^ t」と表記する。
予測ステップでは、自車位置推定部17は、直前の計測更新ステップで算出された時刻t−1の状態変数ベクトルx^ t−1に対し、車両の移動速度「v」と角速度「ω」(これらをまとめて「制御値ut=(vt、ωt)T」と表記する。)を作用させることで、時刻tの自車位置の推定値(「事前推定値」とも呼ぶ。)x− tを算出する。制御値utは本発明における「制御情報」の一例であり、事前推定値x− t及び事後推定値x^ tは本発明における「第1推定位置」の一例である。また、これと同時に、自車位置推定部17は、事前推定値x− tの誤差分布に相当する共分散行列(「事前共分散行列」とも呼ぶ。)「Σ− t」を、直前の計測更新ステップで算出された時刻t−1での共分散行列「Σ^ t−1」から算出する。
また、計測更新ステップでは、自車位置推定部17は、基準ランドマークLkのライダ2による計測値「zt」と、ライダ2による計測処理を事前推定値x− tからモデル化して求めた上述の基準ランドマークLkの計測推定値「z^ t」とをそれぞれ取得する。計測値ztは、後述するように、時刻tにライダ2が計測した基準ランドマークLkの距離及びスキャン角度を表す2次元ベクトルである。そして、自車位置推定部17は、以下の式(1)に示すように、計測値ztと計測推定値z^ tとの差分に別途求めるカルマンゲイン「Kt」を乗算し、これを事前推定値x− tに加えることで、更新された状態変数ベクトル(「事後推定値」とも呼ぶ。)x^ tを算出する。
また、計測更新ステップでは、自車位置推定部17は、予測ステップと同様、事後推定値x^の誤差分布に相当する共分散行列(「事後共分散行列」とも呼ぶ。)Σ^ tを事前共分散行列Σ− tから求める。
(2−2)処理概要
図5は、自車位置推定部17の機能的な構成を示すブロック図である。自車位置推定部17は、主に、状態遷移モデルブロック20と、共分散計算ブロック21と、ランドマーク抽出ブロック22と、計測モデルブロック23と、共分散計算ブロック24と、カルマンゲイン計算ブロック25と、共分散更新ブロック26と、演算ブロック31〜33と、単位遅延ブロック34,35と、を有する。
状態遷移モデル(速度動作モデル)ブロック20は、時刻t−1での事後推定値x^ t−1から、制御値ut=(vt、ωt)Tに基づき、事前推定値x− t=(x− t、y− t、θ− t)Tを算出する。図6は、基準時刻tでの事前推定値「x− t」、「y− t」、「θ− t」と時刻t−1での事後推定値「x^ t−1」、「y^ t−1」、「θ^ t−1」との関係を示す図である。図6に示す幾何学的関係によれば、事前推定値x− t=(x− t、y− t、θ− t)Tは、以下の式(2)により表される。なお、「Δt」は、時刻tと時刻t−1との時間差を表す。
よって、状態遷移モデルブロック20は、時刻t−1での事後推定値x^ t−1と、制御値ut=(vt、ωt)Tとから、式(2)に基づき、事前推定値x− tを算出する。方位「θ− t」は、本発明における「基準方位」の一例である。
共分散計算ブロック21は、制御値utの誤差分布を状態変数ベクトル(x、y、θ)の3次元空間に変換した誤差分布を示す行列「Rt」と、式(2)に示される状態遷移モデルをx^ t−1のまわりで線形化したヤコビ行列「Gt」を用いて、式(3)に基づき事前共分散行列Σ− tを算出する。
ここで、ヤコビ行列Gtは、以下の式(4)により表される。
ランドマーク抽出ブロック22は、ライダ2の出力及び事前推定値x− tから、基準ランドマークLkの地図DB10内でのxy座標での位置ベクトル「mk=(mk,x、mk,y)」を抽出する。また、ランドマーク抽出ブロック22は、抽出したインデックスkの基準ランドマークLkに対応するライダ2の計測値「zt k=(rt k、φt k)T」を、演算ブロック31へ供給する。ここで、計測値zt kは、インデックスkのランドマークに対する距離「rt k」と、車両の正面方向を0度としたときのインデックスkのランドマークに対するスキャン角度「φt k」とを要素とするベクトル値である。計測値zt kは、本発明における「第1情報」の一例である。ランドマーク抽出ブロック22が実行する基準ランドマークLkの特定方法等については後述する。
計測モデルブロック23は、インデックスkの基準ランドマークLkの位置ベクトルmk及び事前推定値x− tから、計測値zt kの推定値「z^ t k=(r^ t k、φ^ t k)T」を算出し、演算ブロック31へ供給する。ここで、「r^ t k」は、事前推定値x− tを基準とした場合のインデックスkのランドマークに対する距離を示し、「φ^ t k」は、事前推定値x− tを基準とした場合のインデックスkのランドマークに対するスキャン角度を示す。図7は、基準ランドマークLkの位置と自車位置との関係を示す図である。図7に示す幾何学的関係に基づき、距離r^ t kは以下の式(5)のように表される。
また、図7に示す関係に基づき、以下の式(6)が成立する。
よって、スキャン角度φ^ t kは以下の式(7)のように表される。
従って、計測モデルブロック23は、式(5)及び式(7)を参照し、計測値zt kの推定値z^ t k=(r^ t k、φ^ t k)Tを算出し、演算ブロック31へ供給する。推定値z^ t k=(r^ t k、φ^ t k)Tは、本発明における「第2情報」の一例である。
さらに、計測モデルブロック23は、式(5)及び式(7)に示される計測モデルを事前推定値x− tのまわりで線形化したヤコビ行列「Ht k」を算出する。ここで、ヤコビ行列Ht kは、以下の式(8)により表される。
計測モデルブロック23は、ヤコビ行列Ht kを、共分散計算ブロック24、カルマンゲイン計算ブロック25、及び共分散更新ブロック26へそれぞれ供給する。
共分散計算ブロック24は、カルマンゲインKt kの算出に必要な共分散行列「St k」を、以下の式(9)に基づき算出する。
共分散計算ブロック24は、算出した共分散行列St kをカルマンゲイン計算ブロック25へ供給する。
カルマンゲイン計算ブロック25は、カルマンゲインKt kを、以下の式(10)に基づき算出する。
共分散更新ブロック26は、共分散計算ブロック21から供給される事前共分散行列Σ− tと、計測モデルブロック23から供給されるヤコビ行列Ht kと、カルマンゲイン計算ブロック25から供給されるカルマンゲインKt kとに基づき、事後共分散行列Σ^ tを、単位行列「I」を用いて以下の式(11)に基づき算出する。
演算ブロック31は、ランドマーク抽出ブロック22から供給される計測値zt kと計測モデルブロック23から供給される推定値z^ t kとの差分(即ち「zt k−z^ t k」)を算出する。演算ブロック32は、演算ブロック31が算出した値にカルマンゲイン計算ブロック25から供給されたカルマンゲインKt kを乗じる。演算ブロック33は、以下の式(12)に示すように、事前推定値x− tに対して演算ブロック32が算出した値を加算することで、事後推定値x^を算出する。
以上のように,自車位置推定部17は、予測ステップと計測更新ステップを逐次的に繰返すことにより,高精度に状態推定を行うことが可能である。これらのステップで用いる状態推定フィルタには、拡張カルマンフィルタの他、ベイズ推定を行うように開発された様々のフィルタが利用可能である。例えば、拡張カルマンフィルタに代えて、アンセンテッドカルマンフィルタやパーティクルフィルタなどを利用してもよい。
(2−3)ランドマーク抽出ブロックの詳細
図8は、ランドマーク抽出ブロック22の機能的構成を示す図である。図8に示すように、ランドマーク抽出ブロック22は、探索候補選定ブロック41と、計測推定値計算ブロック42と、探索範囲絞込みブロック43と、抽出ブロック44とを有する。
探索候補選定ブロック41は、事前推定値x− tに基づき、ライダ2によるスキャン範囲(「スキャン範囲Rsc」とも呼ぶ。)を認識し、認識したスキャン範囲Rsc内に存在するランドマークを、地図DB10から選定する。この場合、探索候補選定ブロック41は、方位θ− tから±90°であって、位置(x− t、y− t)からライダ2の測距可能距離以内となるエリアを、スキャン範囲Rscとして設定する。そして、探索候補選定ブロック41は、インデックスkに対応する位置ベクトルmk=(mk,x、mk,y)を地図DB10から抽出する。スキャン範囲Rscは、本発明における「第1範囲」の一例である。
計測推定値計算ブロック42は、事前推定値x− tと、地図DB10から抽出したインデックスkに対応する位置ベクトルmkとに基づき、計測値zt kの推定値z^ t k=(r^ t k、φ^ t k)Tを算出する。具体的には、計測推定値計算ブロック42は、上述した式(5)及び式(7)に基づき、推定値z^ t k=(r^ t k、φ^ t k)Tを算出する。
探索範囲絞込みブロック43は、スキャン範囲Rscから、スキャン角度が角度φ^ t kから所定の探索角度幅「Δφ」以内の差であって、測距範囲が距離r^ t kから探索距離幅「Δr」となる範囲(「探索範囲Rtag」とも呼ぶ。)を設定する。探索角度幅Δφ及び探索距離幅Δrは、それぞれ、想定される計測値zt kと推定値z^ t kとの誤差を勘案して実験等に基づき予め設定される。上述の誤差は、推定値z^ t k=(r^ t k、φ^ t k)Tの算出(式5及び7参照)に必要な事前推定値x− t=(x− t、y− t、θ− t)Tの推定精度と、計測値zt kに相当するスキャンデータを出力するライダ2の精度とに依存する。よって、好適には、探索角度幅Δφ及び探索距離幅Δrは、事前推定値x− tの推定精度と、ライダ2の精度との少なくとも一方を勘案して設定される。具体的には、探索角度幅Δφ及び探索距離幅Δrは、事前推定値x− tの推定精度が高いほど短くなり、かつ、ライダ2の精度が高いほど短くなる。
抽出ブロック44は、探索範囲絞込みブロック43が設定した探索範囲Rtagに基づき、基準ランドマークLkの点群に相当する計測値zt kを、ライダ2の時刻tにおける全スキャンデータから抽出する。具体的には、抽出ブロック44は、以下の式(13)及び式(14)を満たす計測値zt i(「i」はライダ2が1回のスキャンで出射する各ビームのインデックス)が存在するか否か判定する。
そして、抽出ブロック44は、式(13)及び式(14)を満たす(rt i、φt i)の組となる計測値zt iが存在する場合に、探索候補選定ブロック41が選定したランドマークが実際に存在すると判断する。そして、抽出ブロック44は、インデックスkに対応する位置ベクトルmkを計測モデルブロック23へ供給すると共に、式(13)及び式(14)を満たす(rt i、φt i)の組となる計測値zt iを、基準ランドマークLkの点群に相当する計測値zt kとして演算ブロック31へ供給する。
この場合、好適には、抽出ブロック44は、探索範囲Rtag内のスキャンデータから、基準ランドマークLkに対応するスキャンデータを選定する処理をさらに実行し、演算ブロック31へ供給すべき計測値zt kを決定するとよい。
例えば、抽出ブロック44は、探索候補選定ブロック41が選定したランドマークの形状情報を地図DB10から取得し、探索範囲Rtag内のスキャンデータの点群が構成する3次元形状とのマッチング処理を行うことで、基準ランドマークLkの点群に相当する計測値zt kを選定する。他の例では、抽出ブロック44は、探索範囲Rtag内のスキャンデータに対応する受光強度の大きさを調べ,予め設定された閾値情報と比較することで、基準ランドマークLkの点群に相当する計測値zt kを選定する。なお、抽出ブロック44は、選定した計測値zt kが複数存在する場合には、任意の1つの計測値zt kを演算ブロック31へ供給してもよく、これらの計測値zt kから統計処理により算出又は選定した代表値を演算ブロック31へ供給してもよい。
図9は、スキャン範囲Rscと探索範囲Rtagとの関係を示す図である。図9の例では、スキャン範囲Rscは、車両の正面から左右90°の範囲であって車両から測距可能距離以内となる半円エリアとなっている。なお、図9の矢印70はスキャン方向を示す。
図9の例では、まず、探索候補選定ブロック41は、事前推定値x− tに基づきスキャン範囲Rscを特定すると共に、スキャン範囲Rsc内に存在するランドマークを基準ランドマークLkとみなし、対応する位置ベクトルmkを選定する。そして、計測推定値計算ブロック42は、基準ランドマークLkの位置ベクトルmk及び事前推定値x− tから、計測値zt kの推定値z^ t k=(r^ t k、φ^ t k)Tを算出する。探索範囲絞込みブロック43は、式(13)及び式(14)に基づき探索範囲Rtagを設定する。抽出ブロック44は、設定された探索範囲Rtag内にスキャンデータが存在する場合、位置ベクトルmkを計測モデルブロック23へ供給すると共に、探索範囲Rtag内のスキャンデータに基づく計測値zt kを演算ブロック31へ供給する。なお、設定された探索範囲Rtag内にスキャンデータが存在しない場合には、自車位置推定部17は、基準ランドマークLkがライダ2により検出できなかったと判断し、事前推定値x− tを事後推定値x^ tに設定すると共に、事前共分散行列Σ− tを事後共分散行列Σ^ tに設定する。
(3)処理フロー
(3−1)処理概要
図10は、第1実施例において自車位置推定部17が実行する処理の手順を示すフローチャートである。自車位置推定部17は、図10のフローチャートを繰り返し実行する。
まず、自車位置推定部17は、時刻t−1での事後推定値x^ t−1と事後共分散行列Σ^ t−1とを取り込むと共に、ジャイロセンサ3及び車速センサ4から時刻tにおける制御値utを取得する(ステップS101)。次に、自車位置推定部17の状態遷移モデルブロック20は、式(2)に基づき、事前推定値x− tを計算する(ステップS102)。そして、自車位置推定部17の共分散計算ブロック21は、式(3)に基づき、事前共分散行列Σー tを計算する(ステップS103)。
次に、自車位置推定部17のランドマーク抽出ブロック22は、地図DB10を参照し、後述する図11に示すランドマーク抽出処理を実行する(ステップS104)。そして、自車位置推定部17は、地図DB10に登録されたランドマークの位置ベクトルmkとライダ2のスキャンデータとの対応付けができたか否か判定する(ステップS105)。この場合、自車位置推定部17は、図11に示すランドマーク抽出処理に基づき、上述の対応付けができたことを示す所定のフラグが設定されたか否か判定する。
そして、上述の対応付けができた場合(ステップS105;Yes)、共分散計算ブロック24は、上述の式(9)に基づき、共分散行列St kを計算する(ステップS106)。次に、カルマンゲイン計算ブロック25は、カルマンゲインKt kを、上述の式(10)に基づき算出する(ステップS107)。そして、演算ブロック33は、式(12)に示すように、事前推定値x− tに対し、ランドマーク抽出ブロック22から供給される計測値zt kと計測モデルブロック23から供給される推定値z^ t kとの差分(即ち「zt k−z^ t k」)にカルマンゲインKt kを乗じた値を加算することで、事後推定値x^ tを計算する(ステップS108)。また、共分散更新ブロック26は、共分散計算ブロック21から供給される事前共分散行列Σ− tと、計測モデルブロック23から供給されるヤコビ行列Ht kと、カルマンゲイン計算ブロック25から供給されるカルマンゲインKt kとに基づき、事後共分散行列Σ^ tを、上述の式(11)に基づき計算する(ステップS109)。その後、単位遅延ブロック34は、事後推定値x^ tを事後推定値x^ t−1として状態遷移モデルブロック20に供給し、単位遅延ブロック35は、事後共分散行列Σ^ tを事後共分散行列Σ^ t−1として共分散計算ブロック21に供給する。
一方、上述の対応付けができなかった場合(ステップS105;No)、自車位置推定部17は、事前推定値x− tを事後推定値x^ tに設定すると共に、事前共分散行列Σ− tを事後共分散行列Σ^ tに設定する(ステップS110)。
(3−2)ランドマーク抽出処理
図11は、図10のステップS104のランドマーク抽出処理の詳細を示すフローチャートである。
まず、ランドマーク抽出ブロック22の探索範囲絞込みブロック43は、ライダ2のスキャンデータを取り込む(ステップS201)。ここでは、ライダ2は、1周期分のスキャンにより出射角度を徐々に変化させた「n」本のビームを出射するものとし、各ビームの反射光の受光強度及び応答時間を計測することで、それぞれ計測値zt 1〜zt nを出力するものとする。
次に、探索候補選定ブロック41は、ライダ2のスキャン範囲Rscに存在するランドマークの位置ベクトルmkを地図DB10から選定する(ステップS202)。この場合、探索候補選定ブロック41は、スキャン範囲Rscとして、方位θ− tから±90°であって位置(x− t、y− t)からライダ2の測距可能距離以内となるエリアを特定し、特定したエリア内の位置を示す位置ベクトルmkを、地図DB10から抽出する。
その後、計測推定値計算ブロック42は、事前推定値x− tから位置ベクトルmkを計測した場合の計測値zt kの推定値z^ t k=(r^ t k、φ^ t k)Tを算出する(ステップS203)。具体的には、計測推定値計算ブロック42は、上述した式(5)及び式(7)に基づき、推定値z^ t k=(r^ t k、φ^ t k)Tを算出する。
次に、探索範囲絞込みブロック43は、式(13)を満たすスキャン角度φt i(i=1〜n)を絞り込む(ステップS204)。抽出ブロック44は、式(13)を満たすスキャン角度φt iとなる計測値zt iのうち、距離r^ t iが式(14)に示す範囲となるものが存在するか否か判定する(ステップS205)。そして、式(13)を満たすスキャン角度φt iとなる計測値zt iのうち、距離rt iが式(14)に示す範囲となるものが存在する場合(ステップS205;Yes)、抽出ブロック44は、この探索範囲に含まれる計測値zt iの中から、基準ランドマークLkに対応する計測値を特定する処理(公知の形状・特徴抽出処理,受光強度の利用など)をさらに実行し,最終的に選定された計測値をzt kとみなして抽出する(ステップS206)。そして、抽出ブロック44は、抽出した位置ベクトルmk及び当該位置ベクトルmkに対応するスキャンデータである計測値zt kを出力すると共に、対応付けができた旨を示すフラグをセットする(ステップS207)。このフラグは、前述した図10のステップS105の判定処理において参照される。
一方、抽出ブロック44は、式(13)を満たすスキャン角度φt iとなる計測値zt iのうち、距離r^ t iが式(14)に示す範囲となるものが存在しない場合(ステップS205;No)、対応付けができた旨のフラグをセットしない(ステップS208)。
<第2実施例>
図12は、第2実施例に係る運転支援システムのブロック構成図である。図12の例では、車載機1は、方位センサ5と電気的に接続されている。方位センサ5は、例えば地磁気センサ、方位磁石、又はGPSコンパス等であって、車両の進行方向に対応する方位の情報を車載機1へ供給する。車載機1は、第1実施例と同様に図2に示す構成を有し、地図DB10に登録されたランドマーク情報と、ライダ2、ジャイロセンサ3、車速センサ4、及び方位センサ5の各出力データとに基づき、自車位置の推定を行う。以後では、第1実施例と同一の構成要素については、適宜同一の符号を付し、その説明を省略する。
図13は、第2実施例における車載機1の自車位置推定部17Aの概略構成を示す。図13の例では、自車位置推定部17Aは、ランドマーク抽出ブロック22と、位置推定ブロック28とを有する。以後において、方位センサ5が出力する基準時刻tでの車両の方位を「θt」と表記し、位置推定ブロック28が出力する基準時刻tでの自車位置の推定値を「x− t=(x− t、y− t)」と表記する。なお、方位センサ5が出力する方位θtは、本発明における「基準方位」の一例である。
ランドマーク抽出ブロック22は、探索候補選定ブロック41、計測推定値計算ブロック42、探索範囲絞込みブロック43、抽出ブロック44を有し、基準ランドマークLkの位置ベクトルmkと、基準ランドマークLkに対するライダ2のスキャンデータである計測値zt kとを出力する。
具体的には、探索候補選定ブロック41は、第1実施例では、状態遷移モデルブロック20から供給される事前推定値x− tに基づきスキャン範囲Rscを特定していた。これに代えて、第2実施例では、探索候補選定ブロック41は、まず、第1実施例の状態遷移モデルブロック20と同様に、図6に示す幾何学的関係に基づき、自車位置のxy座標の仮の推定値を算出する。具体的には、探索候補選定ブロック41は、一時刻前に位置推定ブロック28が推定した自車位置の推定値x− t−1及び一時刻前に測定された方位θt−1と、制御値ut=(vt、ωt)Tとに基づき、式(2)に従い、自車位置のxy座標の仮の推定値を算出する。そして、探索候補選定ブロック41は、算出した自車位置のxy座標の仮の推定値と方位θtに基づき、スキャン範囲Rscを特定する。具体的には、探索候補選定ブロック41は、方位θtから±90°であって、算出した自車位置のxy座標からライダ2の測距可能距離以内となるエリアをスキャン範囲Rscとして特定する。そして、探索候補選定ブロック41は、特定したエリア内の位置を示すランドマークの位置ベクトルmkを、地図DB10から抽出する。
計測推定値計算ブロック42は、探索候補選定ブロック41が算出した自車位置のxy座標の仮の推定値(第1実施例の事前推定値x− tに相当)と、地図DB10から抽出した位置ベクトルmkとに基づき、式(5)及び式(7)を参照し、計測値zt kの推定値z^ t k=(r^ t k、φ^ t k)Tを算出する。なお、計測推定値計算ブロック42は、式(5)及び式(7)を参照する場合、事前推定値x− t=(x− t、y− t)の代わりに、探索候補選定ブロック41が算出した自車位置のxy座標の仮の推定値を用い、方位θ− tの代わりに方位θtを用いる。そして、探索範囲絞込みブロック43は、式(13)及び式(14)に示す探索範囲Rtagを設定し、抽出ブロック44は、式(13)及び式(14)を満たす(rt i、φt i)の組となる計測値zt i(ここではzt kとする)が存在する場合に、当該計測値と位置ベクトルmkを位置推定ブロック28に供給する。この場合、好適には、抽出ブロック44は、第1実施例と同様に、探索範囲Rtag内のスキャンデータから、基準ランドマークLkに対応するスキャンデータを選定する処理をさらに実行し、供給すべき計測値zt kを決定してもよい。
位置推定ブロック28は、抽出ブロック44から供給される位置ベクトルmk及び計測値zt k=(rt k、φt k)Tと、方位センサ5が出力する方位θtとから、自車位置の推定値x− t=(x− t、y− t)を算出する。具体的には、位置推定ブロック28は、絶対値|θt+φt k|が90°未満の場合には、以下の式(15)及び式(16)に基づき、推定値x− t=(x− t、y− t)を算出する。
一方、位置推定ブロック28は、絶対値|θt+φt k|が90°より大きい場合には、以下の式(17)と上述の式(16)とに基づき、推定値x− t=(x− t、y− t)を算出する。
また、位置推定ブロック28は、絶対値|θt+φt k|が90°の場合には、以下の式(18)と上述の式(16)とに基づき、推定値x− t=(x− t、y− t)を算出する。
ここで、式(15)〜式(18)の導出方法について説明する。
まず、距離rt k及びスキャン角度φt kは、距離r^ t k及びスキャン角度φ^ t kと同様に、前述した図7に示す幾何学的関係を有することから、推定値x− t=(x− t、y− t)と方位θtとの間で、それぞれ上述した式(5)及び式(6)と同様の関係が成立する。ここで、以下の式(19)は式(6)を変形した式に相当し、式(20)は式(5)を変形した式に相当する。
そして、式(19)を式(20)に代入して整理すると、以下の式(21)が得られる。
式(21)には、符号「±」が含まれるため、推定値x− tのx座標値「x− t」と位置ベクトルmkのx座標値「mk、x」との大小関係に基づき場合分けする必要がある。図14(A)〜(C)は、推定値x− tのx座標値「x− t」と位置ベクトルmkのx座標値「mk、x」との大小関係を示す図である。具体的には、図14(A)は、推定値x− tのx座標値「x− t」よりも位置ベクトルmkのx座標値「mk、x」が大きい場合を示す。また、図14(B)は、推定値x− tのx座標値「x− t」と位置ベクトルmkのx座標値「mk、x」とが等しい場合を示し、図14(C)は、推定値x− tのx座標値「x− t」よりも位置ベクトルmkのx座標値「mk、x」が小さい場合を示す。
図14(A)に示すように、「θt+φt k」が90°未満の場合には、「x− t<mk、x」が成立する。また、図14(B)に示すように、「θt+φt k」が90°の場合には、「x− t=mk、x」が成立する。さらに、図14(C)に示すように、「θt+φt k」が90°より大きい場合には、「x− t>mk、x」が成立する。
従って、「θt+φt k」が負値になる場合を含めると、
(a)|θt+φt k|<90° → x− t<mk、x
(b)|θt+φt k|=90° → x− t=mk、x
(c)|θt+φt k|>90° → x− t>mk、x
となる。そして、上記(a)の場合には、式(21)の左辺は正値になることから、右辺の符号は「+」となるため、上述の式(15)が導出される。また、上記(b)の場合には、式(18)に示す関係「x− t=mk、x」が成立する。さらに、上記(c)の場合には、式(21)の左辺は負値になることから、右辺の符号は「−」となるため、上述の式(17)が導出される。また、推定値x− tのy座標値「y− t」は、式(19)を変形することで、式(16)のように表される。
以上のように、第2実施例によれば、自車位置推定部17Aは、方位センサ5から得られる方位θtを利用することで、地図DB10に登録されているランドマークの位置ベクトルmk及び計測値zt k=(r^ t k、φ^ t k)Tから、自車位置の推定値x− t=(x− t、y− t)を好適に算出することができる。
なお、地図DB10に登録されたランドマークの位置ベクトルmkとライダ2のスキャンデータとの対応付けができなかった場合には、自車位置推定部17Aは、探索候補選定ブロック41が算出した自車位置のxy座標の仮の推定値を、自車位置の推定値x− t=(x− t、y− t)として設定する。即ち、この場合、自車位置の推定値x− t=(x− t、y− t)は、一時刻前に位置推定ブロック28が推定した自車位置の推定値x− t−1と、車速センサ4及びジャイロセンサ5が基準時刻tに測定した制御値utと、一時刻前に測定された方位θt−1とに基づき算出された推定値となる。
<変形例>
以下では、第1及び第2実施例に好適な変形例について説明する。
(変形例1)
第1及び第2実施例において、探索候補選定ブロック41は、スキャン範囲Rsc内に存在する複数のランドマークの位置ベクトルを地図DB10から抽出し、ライダ2のスキャンデータとの照合処理を行ってもよい。
一般に、車両の走行時には、自車前方や側方に他の車両などの障害物が存在するため、地図DB10から選定した基準ランドマークLkのスキャンデータがライダ2から得られない状況(即ちオクルージョン)が発生する。以上を勘案し、本変形例では、探索候補選定ブロック41は、スキャン範囲Rsc内に存在する複数のランドマークの位置ベクトルを地図DB10から抽出することで、いずれかのランドマークに対してオクルージョンが発生した場合であっても、オクルージョンが発生していないランドマークを基準として自車位置推定を行う。これにより、自車位置推定に必要な基準ランドマークLkをより高確率で検出することができる。また,複数のランドマークを抽出することができて,それらの全てを利用できる場合は,計測更新ステップを複数回行うことができる(複数のランドマークを使って事前推定値の補正を行うことができる)。この場合,自車位置の推定精度を統計的に向上させることが出来る。
本変形例の処理を、図11を参照して補足説明する。ランドマーク抽出ブロック22は、ステップS202において、地図DB10を参照し、スキャン範囲Rsc内に複数のランドマークが存在すると判断した場合には、少なくとも2つ以上のランドマークの位置ベクトルを地図DB10から選定する。そして、S203では、ランドマーク抽出ブロック22は、選定した位置ベクトルに対し、計測推定値を計算する。そして、ランドマーク抽出ブロック22は、ステップS204及びS205において、計算した各計測推定値に対して式(13)及び式(14)に示す探索範囲Rtagを設定し、それぞれの探索範囲の中で先に選定したランドマークに対応するスキャンデータの抽出を試みる。この対応付けが成功した場合,当該スキャンデータに相当する計測値と位置ベクトルをステップS207で出力する。
また,複数のランドマークの抽出がなされ,それらの全ての利用できる場合の処理を図10を参照して補足説明する。この場合は,S104に示すランドマーク抽出処理で複数のランドマークが抽出されており,ステップS105がYesと判断された状態になっている。その先で行われるS106からS109の一連の処理が,抽出された個々のランドマークに対して行われるべき処理であり,個々のランドマークに対応するデータ(ステップS207の出力に対応)を入力として,これら一連の処理が抽出されたランドマークの数の分,ループ的に処理される。
(変形例2)
第2実施例において、自車位置推定部17Aは、方位センサ5の出力に基づき方位θtを特定する代わりに、ジャイロセンサ3の出力に基づき方位θtを推定してもよい。
この場合、自車位置推定部17Aは、図6及び式(2)と同様に、一時刻前に算出した方位θt−1に対し、角速度ωtに時刻t−1と時刻tとの時間幅Δtを乗じた値(ωtΔt)を加算することで、基準時刻における方位θtの推定値を算出する。この例によっても、第2実施例と同様に、拡張カルマンフィルタなどのベイズ推定によらずに自車位置の推定値x− tを好適に算出することができる。
(変形例3)
ライダ2によるインデックスkのランドマークに対する計測値zt kは,距離「rt k」と、車両の正面方向を0度としたときのインデックスkのランドマークに対するスキャン角度「φt k」とを要素とするベクトル値であるとして上記の説明を記載したが,ライダ製品によっては,ターゲットまでの距離と角度を3次元空間上の座標値に変換した上で出力がなされるものもある。例えば2次元でスキャンを行うライダの場合,rt kとφt kと用いて,xt k=rt kcosφt k,yt k=rt ksinφt kという直行座標形式で出力がなされる。このような出力が得られるライダ製品については,例えば,単純にxt k,yt kの値からrt k,φt kの値を逆算した上で,本発明で説明した手法を適用すれば良い。
(変形例4)
車載機1は、地図DB10を記憶部12に記憶する構成に代えて、図示しないサーバ装置が地図DB10を有してもよい。この場合、車載機1は、図示しない通信部でサーバ装置と通信することにより、必要なランドマーク情報を取得する。