以下、本発明の実施形態について、図面を参照して説明する。図面の記載において同一部分には同一符号を付して説明を省略する。
[周囲環境情報生成装置の構成]
図1を参照して、本発明の実施形態に係る周囲環境情報生成装置の構成を説明する。図1に示すように、周囲環境情報生成装置1は、カメラ2と、レーザレンジファインダー3と、GPS受信機4と、ジャイロセンサ5と、地図データベース6と、コントローラ10と、通信機7を備える。また、周囲環境情報生成装置1は車両に搭載されており、搭載される車両は自動運転機能を備え、走行支援を行う車両である。
カメラ2は、CCD(charge-coupled device)やCMOS(complementary metal oxide semiconductor)などの撮像素子を有する。カメラ2は、自車両に搭載され、自車両の周囲を撮影する。カメラ2は、画像処理機能を有しており、撮影した画像から道路構造や物標などを検出する。道路構造とは、道路の構成物であり、例えば白線や黄色線等の道路の区画線や停止線の他に道路端部や縁石、中央分離帯等である。物標とは、道路や歩道に設けられた物体であり、例えば信号機や電柱、交通標識等である。カメラ2は、検出したデータをコントローラ10に出力する。なお、道路構造や物標は、静止している物体であればよく、例えば、建物、建物の特徴部位などでもよい。
レーザレンジファインダー3は、自車両の周囲の道路構造や物標を検出するセンサである。具体的に、レーザレンジファインダー3は、レーザ光をある角度範囲内で走査し、その時の反射光を受光して、レーザ発射時点と反射光の受光時点との間の時間差を検出する。レーザレンジファインダー3は、自車両に対する道路構造や物標の相対距離や方向などを検出し、検出したデータをコントローラ10に出力する。レーザレンジファインダー3は、ボンネット、バンパー、ナンバープレート、ヘッドライト、サイドミラー等の周辺に設置される。
GPS受信機4は、人工衛星からの電波を受信することにより、地上における自車両の現在地を検出する。GPS受信機4は、検出したデータをコントローラ10に出力する。
ジャイロセンサ5は、自車両の重心の鉛直軸周りのヨーレート(回転角速度)を検出し、検出したデータをコントローラ10に出力する。
また、周囲環境情報生成装置1は、車両に搭載されたセンサ群(図示せず)に接続されている。例えば、アクセルセンサ、ステアリングセンサ、ブレーキセンサ、車速センサ、加速度センサ、車輪速センサ等に接続されて、これらのセンサ群から出力されるセンサ値を取得することができる。
地図データベース6は、カーナビゲーション装置等に記憶されているデータベースであり、道路構造情報、施設情報など経路案内に必要となる各種データが記憶されている。地図データベース6は、高精度な地図であり、道路の車線数、道路境界線等の道路構造情報、物標などの情報が記憶されている。地図データベース6は、コントローラ10の要求に応じて地図情報をコントローラ10に出力する。また、地図データベース6には、環境情報として生成された道路構造データ、物標データ、走行軌跡データ、トラジェクトリデータ等の情報も記憶されている。
なお、道路構造データや物標データ等の各種データは必ずしも地図データベース6から取得するものに限定する必要はなく、自車両が備えるセンサによって取得したものでもよい。また、車車間通信、路車間通信を用いて取得してもよい。例えば、道路構造データや物標データなどの各種データがサーバ25に記憶されている場合には、コントローラ10は、通信により随時これらのデータを取得することができる。また、コントローラ10は、サーバ25から定期的に最新の地図情報を入手して、保有する地図情報を更新することができる。なお、本実施形態では、地図データベース6として第一地図(高精度地図、車両のルート案内に用いる地図)を備えており、第一地図を補足するものとして、第二地図を備えていてもよい。この第二地図は、第一地図だけでは不完全な場合や、より詳細な地図情報が必要な場合に、車両や外部のサーバ25で作成される。
コントローラ10は、カメラ2、レーザレンジファインダー3、GPS受信機4、ジャイロセンサ5、地図データベース6から取得したデータを処理する回路であり、例えばIC、LSI等によって構成される。コントローラ10は、これを機能的に捉えた場合、走行軌跡モデル作成部11と、道路構造モデル作成部12と、トラジェクトリ算出部13と、道路構造推定部14と、道路構造算出部15と、物標位置算出部16と、トラジェクトリ補正部17と、道路構造補正部18と、マッチング部19と、自己位置推定部20に分類することができる。
なお、コントローラ10は、マイクロコンピュータ、マイクロプロセッサ、CPUを含む汎用の電子回路とメモリ等の周辺機器から構成されている。そして、特定のプログラムを実行することにより、周囲環境情報生成装置1として動作する。このようなコントローラ10の各機能は、1または複数の処理回路によって実装することができる。処理回路は、例えば電気回路を含む処理装置等のプログラムされた処理装置を含み、また実施形態に記載された機能を実行するようにアレンジされた特定用途向け集積回路(ASIC)や従来型の回路部品のような装置も含んでいる。
走行軌跡モデル作成部11は、自車両の走行データを用いて走行軌跡モデルを作成する。走行軌跡モデルは、自車両のオドメトリにより得られた走行軌跡データが入力されると、オドメトリにより得られた走行軌跡データを予め定めたモデルにより調整し、調整した結果を自車両のトラジェクトリデータとして出力する。オドメトリは、車両の単位時間当たりの移動量であり、車両に搭載されたセンサ群から得られる各種センサ値を用いて算出することができる。また、走行軌跡モデルは、図2に示すように、所定区間(図2に示す1点鎖線で囲まれた区間)における走行軌跡上の複数の点Xi(i=1~n)で構成される。各点Xiは、座標(x,y)と車両の向きθ(進行方向)とから成る。
走行軌跡モデル作成部11は、自車両の走行軌跡から座標(x,y)と車両の向きθを多数取得し、取得した走行データを用いて各点Xiの走行軌跡を学習してモデル化し、走行軌跡が再現可能となるように走行軌跡モデルを作成する。また、走行軌跡モデルは、自車両の走行支援を実行する前に自車両の走行軌跡を学習して生成される。なお、所定区間は、所定の走行時間や走行シーンで区切られる区間である。走行時間は、例えば3~4秒である。また、走行シーンは、例えば交差点の入口から出口までのシーン、右折または左折のシーンである。このように走行時間または走行シーンで区切る理由は、走行時間が長い場合や走行シーンが複雑な場合には、様々なデータが入り込むため走行軌跡モデルの精度が低下するおそれがあるためである。
走行軌跡モデル作成部11は、所定の走行時間や走行シーンで区切られた区間の走行軌跡モデルを作成することで、高精度な走行軌跡モデルを生成することができる。なお、走行軌跡モデル作成部11は、必ずしも自車両の走行データを用いる必要はなく、サーバ25に集められた自車両以外の他車両の走行データを用いてもよく、走行データを使わずに予め作成されたモデルを用いてもよい。また、走行軌跡モデル作成部11は、自車両の走行支援を実行する前にモデルを作成してもよく、また、自車両の走行支援を実行している過程で得られた走行データを用いてモデルを作成してもよい。さらに、走行軌跡モデル作成部11は、走行している過程で得られた走行データを用いてリアルタイムにモデルを更新してもよい。
具体的に、走行軌跡モデル作成部11は、取得したデータから所定区間の各点Xi毎の平均位置を求める。次に、走行軌跡モデル作成部11は、取得した走行データから分散共分散行列を計算し、主成分ベクトルを求める。このとき、走行軌跡モデル作成部11は、主成分ベクトルの本数として走行軌跡を十分に表現できるだけの本数を求める。次に、走行軌跡モデル作成部11は、主成分ベクトルを列に並べ、行列Aを作成する。行列Aは、軌跡制御係数である。走行軌跡モデル作成部11は、モデル各点の平均位置と、行列A及び行列Aの制御パラメータであるqとを足し合わせて走行軌跡モデルXを作成する。走行軌跡モデルXは、式(1)、(2)を用いて次のように表される。
走行軌跡モデル作成部11は、作成した走行軌跡モデルXをサーバ25に保存してもよいし、自車両に保存してもよい。なお、走行軌跡モデルXは、一つだけ生成してもよいし、複数生成してもよい。また、所定区間は、5秒間、10秒間などの時間で区切ってもよいし、動作で区切ってもよい。動作で区切る場合の例としては、交差点に進入してから出るまでを1つの区間とする。なお、走行軌跡モデル作成部11は、車車間通信を使って他車両に走行軌跡モデルXを保存してもよい。
道路構造モデル作成部12は、自車両の周囲の物標を検出した物標データを用いて道路構造モデルを作成する。道路構造モデルは、自車両のセンサにより得られた道路構造や物標に関する物標データが入力されると、センサにより得られた物標データを予め定めたモデルにより調整し、調整した結果を自車両の周囲の道路構造データとして出力する。また、道路構造モデルは、図3に示すように、所定区間(図3に示す1点鎖線で囲まれた区間)における白線上の複数の点Li(i=1~n)で構成される。なお、図3では道路構造の一例として白線(道路境界線)を用いている。各点Liは、座標(x,y)と白線の方向φとから成る。なお、道路構造は、交差点、カーブなどを含んでもよい。また、道路構造は、信号機、電柱、交通標識などを含んでもよい。
道路構造モデル作成部12は、道路構造データから座標(x,y)と白線の方向φを多数取得し、取得したデータを用いて各点Liの白線を学習してモデル化し、白線が再現可能となるように道路構造モデルを作成する。また、道路構造モデルは、自車両の走行支援を実行する前に自車両周囲の道路構造を学習して生成される。なお、点Li=(x,y)は、一定区間の白線を、例えば10cm間隔で分割したi番目の白線の位置である。
具体的に、道路構造モデル作成部12は、取得したデータから所定区間の各点Li毎の平均位置を求める。次に、道路構造モデル作成部12は、取得したデータから分散共分散行列を計算し、主成分ベクトルを求める。このとき、道路構造モデル作成部12は、主成分ベクトルの本数として道路構造を十分に表現できるだけの本数を求める。次に、道路構造モデル作成部12は、主成分ベクトルを列に並べ、行列Bを作成する。行列Bは、軌跡制御係数である。道路構造モデル作成部12は、モデル各点の平均位置と、行列B及び行列Bの制御パラメータであるpとを足し合わせて道路構造モデルLを作成する。道路構造モデルLは、式(1)、(2)の走行軌跡モデルと同様に、式(3)、(4)を用いて次のように表される。
道路構造モデル作成部12は、作成した道路構造モデルLをサーバ25に保存してもよいし、自車両に保存してもよい。なお、道路構造モデルLは、一つだけ生成してもよく、複数生成してもよい。また、所定区間は、5秒間、10秒間などの時間で区切ってもよい。なお、道路構造モデル作成部12は、車車間通信を使って他車両に道路構造モデルLを保存してもよい。また、道路構造モデル作成部12は、自車両の走行支援を実行する前にモデルを作成してもよく、また、自車両の走行支援を実行している過程で得られた物標データを用いてモデルを作成してもよい。さらに、道路構造モデル作成部12は、走行している過程で得られた物標データを用いてリアルタイムにモデルを更新してもよい。
ここで、車両は道路上の白線に沿って走行するので、走行軌跡と白線の形状との間には相関があり、近似したものとなる。したがって、走行軌跡モデルと道路構造モデルとの間にも相関があり、近似したものとなる。そのため、走行軌跡モデルの制御係数Aと道路構造モデルの制御係数Bとの間には相関があり、走行軌跡モデルの制御パラメータqと道路構造モデルの制御パラメータpとの間にも相関がある。
トラジェクトリ算出部13は、サーバ25に記憶されている走行軌跡モデルXを用いてトラジェクトリデータを算出する。トラジェクトリとは、走行軌跡モデルXを用いて算出される自車両の走行軌跡である。トラジェクトリ算出部13は、車両の向きθと制御パラメータqを所定値(例えば、0)で初期化し、走行軌跡モデルXに入力してトラジェクトリを算出する。また、制御パラメータqについては、オドメトリの軌跡から逆算した値で初期化してもよい。自車両の走行軌跡は、オドメトリを使用して取得することも可能である。オドメトリとはタイヤの回転角と回転角速度に応じて移動体の移動距離と方向を求める方法である。しかし、オドメトリを使用した場合、タイヤスリップなどによる誤差を回避できない可能性があり、走行軌跡の推定精度が低下するおそれがある。本実施形態では走行軌跡モデルXを用いたトラジェクトリを使用するので、走行軌跡の推定精度が低下することを抑制することができる。
なお、トラジェクトリ算出部13は、物標を取得する前のトラジェクトリについて、オドメトリを用いて算出してもよい。すなわち、自車両のオドメトリにより得られた走行軌跡データに基づいてトラジェクトリデータを算出してもよい。また、トラジェクトリ算出部13は、オドメトリから算出したトラジェクトリを用いて物標を取得してもよく、物標を取得した後のトラジェクトリを、走行軌跡モデルを用いて算出してもよい。
物標位置算出部16は、トラジェクトリ算出部13によって算出されたトラジェクトリを用いて地図上における物標の位置を算出する。物標位置算出部16は、トラジェクトリ上の各点から物標までの距離を取得し、この距離を取得した時の自車両の向きθを取得する。この各点とは、複数の位置であればよく、同じ位置であっても複数回、物標までの距離及び車両の向きを取得できればよい。物標位置算出部16は、物標までの距離、及び車両の向きθを用いて物標の位置を算出する。
トラジェクトリ補正部17は、物標位置算出部16によって算出された物標の位置と地図情報に記録されている物標の位置が一致するようにトラジェクトリを補正する。例えば、ガウスニュートン法等の最適化手法を使用して、車両の向きθと制御パラメータqを調整しながら繰り返し計算の中で徐々に真値に近づけていく方法を用いて、トラジェクトリを補正する。
トラジェクトリ補正部17は、算出された物標の位置から、各点で取得した物標までの距離及び車両の向きを拘束条件として与え、走行軌跡モデルXを用いて、トラジェクトリを補正する。これにより、物標までの距離及び車両の向きを取得した各点の位置に誤差が生じていたとしても(例えば、GPS誤差やオドメトリ誤差)、トラジェクトリ補正部17はトラジェクトリを正確に算出することができる。そのため、ひいては車両の自己位置を正確に算出できるようになる。さらに、トラジェクトリ補正部17は、この処理を繰り返すことによって、さらにトラジェクトリを正確に算出することができる。
また、トラジェクトリ補正部17は、トラジェクトリ上の各点から算出した物標の位置の分散を求め、分散が閾値よりも大きい場合に車両の向きθと制御パラメータqを調整してトラジェクトリを補正してもよい。分散とは、散らばり具合を示す指標であり、一般的な手法を用いて求めることができる。分散が閾値より大きい場合には、平均値から遠く離れたデータが多く、散らばりが大きいことを意味する。一方、分散が閾値以下の場合には、平均値に近いデータが多く、散らばりが小さいことを意味する。換言すれば、分散が閾値以下の場合、物標の位置を精度よく推定できたことを意味する。一方、分散が閾値より大きい場合には、物標の位置を精度よく推定できていないことを意味する。なお、閾値は、実験やシミュレーションを通じて求めてもよく、また任意に設定してもよい。そして、トラジェクトリ補正部17は、分散が閾値以下になるまで車両の向きθと制御パラメータqを繰り返し調整してトラジェクトリを補正する。
そして、トラジェクトリ補正部17は、上述したトラジェクトリの補正を行った結果、算出された物標の位置と、地図情報に記録された物標の位置が一致したと判定すると、トラジェクトリの補正を終了する。一致したか否かの判定方法としては、ガウスニュートン法等の最適化手法を用いる場合には、収束して真値に近づいたと判定した場合に、算出された物標の位置と地図情報に記録された物標の位置が一致したと判定する。また、分散を用いる場合には、分散が閾値以下となった場合に、算出された物標の位置と地図情報に記録された物標の位置が一致したと判定する。
道路構造算出部15は、サーバ25に記憶されている道路構造モデルLを用いて道路構造を算出する。道路構造算出部15は、車両の向きθと制御パラメータpを所定値(例えば、0)で初期化し、道路構造モデルLに入力して道路構造を算出する。また、道路構造算出部15は、自車両のセンサにより得られた物標データに基づいて道路構造データを算出してもよい。そして、道路構造算出部15は、算出された道路構造データを、自車両のオドメトリにより得られた走行軌跡データを基準にして地図上に配置して、道路構造の位置を算出する。
道路構造補正部18は、道路構造算出部15によって算出された道路構造の位置と地図情報に記録されている道路構造の位置が一致するように、道路構造データを補正する。例えば、ガウスニュートン法等の最適化手法を使用して、車両の向きθと制御パラメータpを調整しながら繰り返し計算の中で徐々に真値に近づけていく方法を用いて、道路構造データを補正する。道路構造補正部18は、トラジェクトリを拘束条件として与え、道路構造モデルLを用いて、道路構造データを補正する。
また、道路構造補正部18は、道路構造の位置の分散を求め、分散が閾値よりも大きい場合に制御パラメータpを調整して道路構造の位置を補正してもよい。なお、閾値は、実験やシミュレーションを通じて求めてもよく、また任意に設定してもよい。そして、道路構造補正部18は、分散が閾値以下になるまで制御パラメータpを繰り返し調整して道路構造の位置を補正する。また、車両の向きθと制御パラメータpの両方を調整して道路構造の位置を補正してもよい。
そして、道路構造補正部18は、上述した道路構造の位置の補正を行った結果、算出された道路構造の位置と、地図情報に記録された道路構造の位置が一致したと判定すると、道路構造の位置の補正を終了する。一致したか否かの判定方法としては、ガウスニュートン法等の最適化手法を用いる場合には、収束して真値に近づいたと判定した場合に、算出された道路構造の位置と地図情報に記録された道路構造の位置が一致したと判定する。また、分散を用いる場合には、分散が閾値以下となった場合に、算出された道路構造の位置と地図情報に記録された道路構造の位置が一致したと判定する。
マッチング部19は、道路構造の位置の補正が終了すると、道路構造補正部18によって補正された道路構造の位置を地図情報とマッチングし、マッチング度合いが所定値以上となるまでトラジェクトリの補正と道路構造の位置の補正を繰り返し行うように制御する。このとき、補正された道路構造の位置だけではなく、補正されたトラジェクトリについても地図情報とのマッチングを行ってもよい。
具体的に、マッチング部19は、補正された道路構造の位置を地図情報と重ね合わせて、地図情報に記録されている道路構造の位置と一致するか否かをマップマッチングによって判定する。例えば、補正された白線の位置の座標と地図情報に記録されている白線の位置の座標の差分を求め、その差分が所定値以下となるか否かによって判定する。そして、マッチング部19は、補正された道路構造の位置と、地図情報に記録されている道路構造の位置が一致せずにマッチング度合いが所定値未満であると判定した場合には、トラジェクトリの補正と道路構造の位置の補正が繰り返し行われるように制御する。一方、補正された道路構造の位置と、地図情報に記録されている道路構造の位置が一致してマッチング度合いが所定値以上であると判定した場合には、地図情報とのマッチングを終了する。マッチングを終了すると、マッチング部19は、地図データベース6へリンクして、補正後の道路構造の位置を記録する。
自己位置推定部20は、マッチング部19によって地図データベース6に記録された道路構造の位置を用いて自己位置を推定する。本実施形態において地図上の道路構造の位置は精度よく推定されているため、自車両から道路構造までの距離と方向を用いることにより、自己位置推定部20は自己位置を精度よく推定することができる。なお、道路構造の位置を用いて車両の自己位置を推定する場合とは、道路構造の周辺を走行した場合に、道路構造までの距離と方向をセンサにより検出し、検出した距離と方向、及び取得していた道路構造の位置から、自車両の位置を推定することを意味する。
通信機7は、サーバ25と通信するための装置である。
[トラジェクトリの補正処理]
次に、図4~6を参照してトラジェクトリの補正方法を説明する。図4は、トラジェクトリの補正処理を示すフローチャートである。
図4に示すように、ステップS1において、トラジェクトリ算出部13は、物標までの距離Lと物標の方向φとオドメトリを取得する。
ステップS2において、トラジェクトリ算出部13は、車両の向きθと制御パラメータqを所定値(例えば、0)で初期化する。
ステップS3において、トラジェクトリ算出部13は、初期化された車両の向きθと制御パラメータqを、走行軌跡モデルXに入力してトラジェクトリを算出する。図5に示すトラジェクトリ21は、初期のトラジェクトリである。
図5において点線で示す座標はマップ座標系であり、実線で示す座標は車両座標系である。車両座標系におけるy軸は自車両の進行方向を示し、x軸は進行方向に直交する横方向を示す。図5に示す座標(x1,y1)~座標(x5,y5)は、トラジェクトリ21上の自己位置である。図5に示す車両の向きθ1~θ5は、マップ座標系からのヨー角を示す。角度Φ1~Φ5は、車両座標系から見た自車両進行方向に対する物標30の方向を示す角度である。距離L1~L5は、車両座標系から見た自車両から物標30までの距離である。なお、本実施形態では、所定の座標系を用いて説明しているが、マップ座標系や車両座標系に限定する必要はなく、その他の座標系を用いてもよく、また一つの座標系を用いてもよい。
図5に示すように、自車両は、座標(x1,y1)~座標(x5,y5)の区間を走行中にカメラ2やレーザレンジファインダー3を用いて自車両から物標30までの距離L1~L5を計測する。自車両は、距離L1~L5を計測した時刻と同時刻にジャイロセンサ5を用いて車両の向きθ1~θ5を検出する。図5に示す例では、異なる5つの走行地点から物標30までの距離と物標30の方向を取得する様子を示しているが、5点に限定する必要はない。なお、角度Φ1~Φ5についてもジャイロセンサ5を用いて取得することができる。
ステップS4において、物標位置算出部16は、ステップS3で算出されたトラジェクトリデータを基準にして物標データを地図上に配置して、物標の位置を算出する。このとき、物標データとして、道路構造モデルにより出力された道路構造データを用いてもよい。トラジェクトリ21上において、i番目の時刻の自己位置をXiとすると、自己位置Xiは、式(5)を用いて次のように表される。
物標30の位置を(Cxi,Cyi)とすると、物標30の位置(Cxi,Cyi)は、式(6)を用いて次のように表される。
式(6)における(Lxi,Lyi)は、i番目の時刻における自車両から物標30までの距離であり、角度Φの要素を含む。式(6)に示すように物標位置算出部16は、自車両から物標30までの距離(Lxi,Lyi)を、車両の向きθiだけ回転させる。そして、物標位置算出部16は、トラジェクトリ21上の座標(xi,yi)に距離を加算し、座標(xi,yi)分平行移動してマップ座標系に変換することで各点毎に物標30の位置を算出する。
ステップS5において、トラジェクトリ補正部17は、ステップS4で算出された物標の位置と地図情報に記録されている物標の位置の差分を求める。すなわち、ステップS4でトラジェクトリデータを基準にして配置された物標データと地図情報との差分を算出する。なお、差分ではなく、物標の位置の分散を求めてもよい。
ステップS6において、トラジェクトリ補正部17は、ステップS5で算出された差分が所定値以下であるか否かを判定する。差分が所定値以下である場合にはトラジェクトリの補正処理は終了し、トラジェクトリデータを環境情報として出力する。一方、差分が所定値より大きい場合にはステップS7に進む。
ステップS7において、トラジェクトリ補正部17は、差分が小さくなるようにトラジェクトリデータを予め定めたモデルによって調整し、差分が所定値より小さくなるまでトラジェクトリデータの調整を繰り返し行う。すなわち、ステップS4で算出された物標の位置と地図情報に記録されている物標の位置が一致するようにトラジェクトリの補正を繰り返し行う。例えば、ガウスニュートン法等の最適化手法を使用して、車両の向きθと制御パラメータqを調整しながら繰り返し計算の中で徐々に真値に近づけていく方法でトラジェクトリ21を補正する。その結果、図5に示すトラジェクトリ21は、図6に示すように補正される。図5ではトラジェクトリ21が左右にずれて算出されていたが、図6ではトラジェクトリ21が滑らかな線に補正されている。
ここで、制御パラメータqを調整する際に、制御パラメータqは制御パラメータpと相関があるため、制御パラメータpの値に基づいて制御パラメータqの値を設定し、調整していくようにする。これにより、トラジェクトリを補正する処理に要する時間を短縮することができる。さらに、制御パラメータqを調整する範囲を絞ることができるので、ロバスト性を高めることができる。
[道路構造の補正処理]
次に、図7~9を参照して道路構造の補正方法を説明する。図7は、道路構造の補正処理を示すフローチャートである。
図7に示すように、ステップS10において、道路構造算出部15は、自車両のセンサにより得られた物標までの距離Lと物標の方向φと、トラジェクトリを取得する。トラジェクトリは、トラジェクトリ補正部17によって補正されたものであってもよく、その他のトラジェクトリであってもよい。
ステップS20において、道路構造算出部15は、車両の向きθと制御パラメータpを所定値(例えば、0)で初期化する。
ステップS30において、道路構造算出部15は、初期化された車両の向きθと制御パラメータpを、道路構造モデルLに入力して道路構造を算出する。図8では、道路構造の一例として白線40を示しており、白線40は初期の白線である。
図8に示すように、自車両は、座標(x1,y1)~座標(x5,y5)の区間を走行中にカメラ2やレーザレンジファインダー3を用いて自車両から白線40までの距離L1~L5を計測する。自車両は、距離L1~L5を計測した時刻と同時刻にジャイロセンサ5を用いて車両の向きθ1~θ5を検出する。図8に示す例では、異なる5つの走行地点から白線40までの距離と白線40の方向を取得する様子を示しているが、5点に限定する必要はない。なお、角度Φ1~Φ5についてもジャイロセンサ5を用いて取得することができる。
ステップS40において、道路構造算出部15は、自車両のオドメトリにより得られた走行軌跡データを基準にして道路構造データを地図上に配置して、道路構造の位置を算出する。このとき、走行軌跡データとして、走行軌跡モデルにより出力されたトラジェクトリデータを用いてもよい。白線40上において、i番目の時刻の白線の位置をLiとすると、白線の位置Liは、式(7)を用いて次のように表される。
白線40の位置を(Cxi,Cyi)とすると、白線40の位置(Cxi,Cyi)は、式(8)を用いて次のように表される。
式(8)における(Lxi,Lyi)は、i番目の時刻における自車両から白線40までの距離であり、角度Φの要素を含む。式(8)に示すように道路構造算出部15は、自車両から白線40までの距離(Lxi,Lyi)を、車両の向きθiだけ回転させる。そして、道路構造算出部15は、トラジェクトリ21上の座標(xi,yi)に距離を加算し、座標(xi,yi)分平行移動してマップ座標系に変換することで各点毎に白線40の位置を算出する。
ステップS50において、道路構造補正部18は、ステップS40で算出された道路構造の位置と地図情報に記録されている道路構造の位置の差分を求める。すなわち、ステップS40で走行軌跡データを基準にして配置された道路構造データと地図情報との差分を算出する。なお、差分ではなく、物標の位置の分散を求めてもよい。
ステップS60において、道路構造補正部18は、ステップS50で算出された差分が所定値以下であるか否かを判定する。差分が所定値以下である場合には道路構造の補正処理は終了し、道路構造データを環境情報として出力する。一方、差分が所定値より大きい場合にはステップS70に進む。
ステップS70において、道路構造補正部18は、差分が小さくなるように道路構造データを予め定めたモデルによって調整し、差分が所定値より小さくなるまで道路構造データの調整を繰り返し行う。すなわち、ステップS40で算出された道路構造の位置と地図情報に記録されている道路構造の位置が一致するように道路構造の補正を繰り返し行う。例えば、ガウスニュートン法等の最適化手法を使用して、車両の向きθと制御パラメータpを調整しながら繰り返し計算の中で徐々に真値に近づけていく方法で白線40を補正する。その結果、図8に示す白線は、図9に示すように補正される。図8では白線40が左右にずれて算出されていたが、図9では白線40が滑らかな線に補正されている。
ここで、制御パラメータpを調整する際に、制御パラメータpは制御パラメータqと相関があるため、制御パラメータqの値に基づいて制御パラメータpの値を設定し、調整していくようにする。これにより、道路構造の位置を補正する処理に要する時間を短縮することができる。さらに、制御パラメータpを調整する範囲を絞ることができるので、ロバスト性を高めることができる。
[環境情報の生成処理の手順]
次に、図10のフローチャートを参照して、本実施形態に係る周囲環境情報生成装置1による環境情報の生成処理の処理手順を説明する。
ステップS101において、カメラ2またはレーザレンジファインダー3は、図5に示すようにそれぞれ異なる走行地点から物標30までの距離Liと車両の向きθiを取得する。本実施形態において、iは時刻を示し、その値は1~5である。
ステップS102において、トラジェクトリ算出部13は、車両の向きθと制御パラメータqを所定値で初期化する。
本実施形態では、ステップS103~105の処理は、同時に行われる。ステップS103において、トラジェクトリ算出部13は、走行軌跡モデルXを用いてトラジェクトリデータを算出する。具体的に、トラジェクトリ算出部13は、ステップS102で設定した初期値を走行軌跡モデルXに入力し、図5に示すような初期のトラジェクトリ21を算出する。また、トラジェクトリ算出部13は、自車両のオドメトリにより得られた走行軌跡データに基づいてトラジェクトリデータを算出してもよい。さらに、トラジェクトリ算出部13は、後述する道路構造モデルにより出力された道路構造データを、走行軌跡モデルの入力としてもよい。
ステップS104では、道路構造推定部14は、ステップS103で算出されたトラジェクトリデータを用いて、道路構造データの変化量を推定する。ステップS105では、道路構造算出部15は、道路構造データの変化量と道路構造モデルとを用いて道路構造データを算出する。上述の通り、ステップS103~105の処理は、同時に行われる。この同時処理の詳細について図11~図13を参照して説明する。
図11Aに示すY(Y1~n)は、地図座標系における物標の位置を示す。Yは、式(9)を用いて次のように表される。
図11Bに示すU(U1~n)は、車両座標系における物標の位置(道路構造データ)を示す。Uは、式(10)を用いて次のように表される。
図11Cに示すV(V1~m)は、地図座標系における自車両の角度θと位置Tx、Ty(トラジェクトリデータ)を示す。Vは、式(11)を用いて次のように表される。
通常、Yは、U×Vとして表現されるが、本実施形態では、UとVの要素を並べ変えてYを表現する。UとVの要素を並べ変えて表現されたYをY’と定義した場合、Y’は、U’×V’として表現される。U’とは、Uの要素を並び変えた行列である。同様に、V’とは、Vの要素を並び変えた行列である。
図12及び図13に示すように、U’は、ブロック行列を含む。ブロック行列はブロック部分のみの組み合わせで計算される。またU’に含まれる多くの要素は0である。本実施形態において、トラジェクトリデータと道路構造データとが同時に算出されるが、トラジェクトリデータと道路構造データとが交互に算出される場合もある。ここでは、比較のため、トラジェクトリデータと道路構造データとが交互に算出される例を説明する。この方法は、ニュートン法と呼ばれることもある。下記の式(12)、(13)は、道路構造データが算出された後に、道路構造データを入力としてトラジェクトリデータが算出されることを示す。その後、トラジェクトリデータを入力として道路構造データが算出される。そして、これが繰り返される。
上記式(12)、(13)に示す方法では、交互に計算が繰り返されるため、計算回数が多くなる。そこで、本実施形態にかかる周囲環境情報生成装置1は、トラジェクトリデータと道路構造データとを同時に算出する。同時に計算するための式(14)を下記に示す。
式(14)に示すように、トラジェクトリ算出部13がトラジェクトリデータを算出すると同時に、道路構造推定部14が算出されたトラジェクトリデータを用いて道路構造データの変化量を推定し、かつ、道路構造算出部15が道路構造データの変化量と道路構造モデルとを用いて道路構造データを算出する。道路構造推定部14によって算出される道路構造データの変化量とは、式(14)の一部であり、具体的には式(15)に表される。
式(15)に示すように、トラジェクトリデータを用いて道路構造データの変化量を推定することは、トラジェクトリデータを道路構造データの関数として扱うことを意味する。式(14)に示すように、本実施形態にかかる周囲環境情報生成装置1は、トラジェクトリデータと道路構造データとを同時に算出することができる。これにより、上述した交互に計算する方法と比較して、計算回数が減少する。これにより、コンピュータの計算負荷が軽減する。
処理は、ステップS106に進み、物標位置算出部16は、ステップS103で算出されたトラジェクトリ21を用いて地図上の物標30の位置を算出する。まず、物標位置算出部16は、トラジェクトリ21上の各点から物標30までの距離Liを取得し、この距離を取得した時の車両の向きθiを取得する。そして、物標位置算出部16は、物標30までの距離Li及び車両の向きθiを用いて各点毎に物標30の位置を算出する。すなわち、トラジェクトリデータを基準にして物標データを地図上に配置して物標30の位置を算出する。このとき、同時に出力される道路構造データを、物標データとして用いてもよい。
ステップS107において、トラジェクトリ補正部17は、ステップS106で算出された物標30の位置と地図情報に記録されている物標の位置が一致しているか否かを判定する。判定方法としては、算出された物標30の位置と地図情報に記録されている物標の位置の差分を求め、その差分が所定の閾値以下であるか否かによって判定すればよい。また、算出された物標30の位置の分散を算出し、分散が所定の閾値以下であるか否かによって判定してもよい。トラジェクトリ補正部17は、算出された物標30の位置と地図情報に記録されている物標の位置が一致していないと判定した場合には処理はステップS108へ進む。一方、算出された物標30の位置と地図情報に記録されている物標の位置が一致していると判定された場合にはトラジェクトリの補正は終了し、処理はステップS109へ進む。
ステップS108において、トラジェクトリ補正部17は、車両の向きθと制御パラメータqを調整してトラジェクトリ21を補正する。以後、ステップS103~S107において、トラジェクトリ補正部17は、ガウスニュートン法等の最適化手法を使用して、車両の向きθと制御パラメータqを調整しながら繰り返し計算の中で徐々に真値に近づけていく方法を用いてトラジェクトリを補正する。例えば、物標30の位置と地図情報に記録されている物標の位置の差分が小さくなるように、予め定めたモデルによってトラジェクトリデータを調整する。
ステップS109において、道路構造算出部15は、自車両のオドメトリにより得られた走行軌跡データを基準にして道路構造データを地図上に配置して、道路構造の位置を算出する。このとき、走行軌跡データとして、同時に出力されるトラジェクトリデータを用いてもよい。例えば、図8に示すように、トラジェクトリ21を基準にして地図上に白線40を配置し、白線40の位置を算出する。
ステップS110において、道路構造補正部18は、算出された白線40の位置と地図情報に記録されている白線の位置が一致しているか否かを判定する。判定方法としては、算出された白線40の位置と地図情報に記録されている白線の位置の差分を求め、その差分が所定値以下であるか否かによって判定する。また、算出された白線40の位置の分散を算出し、分散が所定の閾値以下であるか否かによって判定してもよい。道路構造補正部18は、算出された白線40の位置と地図情報に記録されている白線の位置が一致していないと判定した場合にはステップS111へ進む。一方、算出された白線40の位置と地図情報に記録されている白線の位置が一致していると判定された場合には白線の位置の補正は終了し、処理はステップS112へ進む。
ステップS111において、道路構造補正部18は、制御パラメータpを調整して白線40を補正する。以後、ステップS103~ステップS110において、道路構造補正部18は、ガウスニュートン法等の最適化手法を使用して、制御パラメータpを調整しながら繰り返し計算の中で徐々に真値に近づけていく方法を用いて白線40の位置を補正する。例えば、白線40の位置と地図情報に記録されている白線の位置の差分が小さくなるように、予め定めたモデルによって道路構造データを調整する。
ステップS112において、マッチング部19は、補正された白線の位置を地図情報とマッチングし、マッチング度合いが所定値以上であるか否かを判定する。具体的に、マッチング部19は、補正された白線の位置を地図情報と重ね合わせて、地図情報に記録されている白線と一致するか否かを判定する。そして、補正された白線が地図情報と一致せずにマッチング度合いが所定値未満であると判定された場合には、ステップS103に戻ってトラジェクトリの補正と白線の位置の補正を繰り返し行う。一方、補正された白線が地図情報と一致してマッチング度合いが所定値以上であると判定された場合には、地図情報とのマッチングは終了し、処理はステップS113に進む。
ステップS113において、マッチング部19は、地図データベース6へリンクして、補正後の白線の位置を記録する。また、白線の位置が補正されたことにより、その他の道路構造や物標の位置を補正する必要がある場合には、それらの位置についても補正して記録する。
ステップS114において、自己位置推定部20は、ステップS113で地図データベース6に記録された白線40の位置を用いて自己位置を推定し、本実施形態に係る環境情報の生成処理を終了する。本実施形態の環境情報の生成処理では、地図上の白線40の位置を精度よく推定しているので、自車両から白線40までの距離と方向を用いることにより、自己位置推定部20は自己位置を精度よく推定することができる。
[実施形態の効果]
以上詳細に説明したように、本実施形態に係る周囲環境情報生成装置1では、走行軌跡モデルと道路構造モデルとを用いて走行軌跡と道路構造の位置を算出するので、走行軌跡及び道路構造の位置を精度よく推定することができる。さらに周囲環境情報生成装置1は、トラジェクトリデータを算出すると同時に、算出されたトラジェクトリデータに基づく道路構造データの変化量を推定し、かつ、道路構造データの変化量と道路構造モデルとを用いて道路構造データを算出する。これにより、上述したトラジェクトリデータと道路構造データを交互に計算する方法と比較して、計算回数が減少する。これにより、コンピュータの計算負荷が軽減する。なお、周囲環境情報生成装置1は、トラジェクトリデータに基づく道路構造データの変化量を用いると説明したが、これに限定されない。周囲環境情報生成装置1は、トラジェクトリデータと道路構造データとを同時に算出する際に、道路構造データに基づくトラジェクトリデータの変化量を用いてもよい。つまり、周囲環境情報生成装置1は、道路構造データを算出すると同時に、算出された道路構造データの入力に基づくトラジェクトリデータの変化量を推定し、かつ、トラジェクトリデータの変化量と走行軌跡モデルとを用いてトラジェクトリデータを算出してもよい。この方法は、上記の式(14)の代わりに、式(16)で表される。
式(16)を用いた場合でも、式(14)を用いた場合と同様の効果が得られる。
図14に示すように、実際の道路上の白線91と地図情報に記録された白線93との間には数cm、例えば10cm程度の位置ずれが存在する場合がある。したがって、実際の道路環境において、地図情報をそのまま適用して白線の位置を推定し、車両の自己位置を算出すると、自己位置と実際の道路との間には誤差が発生することになる。加えて、地図によっては、道路構造情報が不足しており、道路構造との相対的な位置関係が分からず、自車両の位置を正確に推定することができない場合がある。
しかしながら、本実施形態に係る周囲環境情報生成装置1では、道路構造の位置、ひいては自車両の位置を正確に推定することができるので、地図情報に誤差がある場合や地図情報が不足している場合でも、自車両の位置を算出することができる。
さらに、自己位置を精度よく算出できることにより、例えば、自動運転制御や運転支援制御を実行する場合に、車両の位置を正確に制御できるので、実際の道路構造に合った適切な位置制御を実行できるようになる。したがって、実際の道路構造に合った適切な走行支援を実行できるようになるため、乗員に与える違和感を抑制した自動運転制御や運転支援制御を実行することができる。
また、本実施形態に係る周囲環境情報生成装置1では、車両の走行軌跡を学習してモデル化した走行軌跡モデルと、車両周囲の道路構造を学習してモデル化した道路構造モデルを用いている。各モデルは行列によって表されているので、処理するデータ量を削減することができ、処理速度を速くすることができる。
さらに、本実施形態に係る周囲環境情報生成装置1では、自車両のオドメトリにより得られた走行軌跡データに基づいてトラジェクトリデータを算出し、算出されたトラジェクトリデータを基準にして物標データを地図上に配置する。そして、配置された物標データと予め記憶された地図情報との差分を算出し、差分が小さくなるようにトラジェクトリデータを予め定めたモデルにより調整し、調整されたトラジェクトリデータを出力する。これにより、物標の位置が地図情報と一致するように調整されたトラジェクトリデータを出力できるので、自己位置を算出するための正確な環境情報を生成することができる。
さらに、本実施形態に係る周囲環境情報生成装置1では、差分が所定値より小さくなるまでトラジェクトリデータの調整を繰り返している。これにより、トラジェクトリの補正を繰り返し行って正確なトラジェクトリデータを算出することができるので、自己位置を算出するための正確な環境情報を生成することができる。
また、本実施形態に係る周囲環境情報生成装置1では、自車両のセンサにより得られた物標データに基づいて道路構造データを算出し、算出された道路構造データを、自車両のオドメトリにより得られた走行軌跡データを基準にして地図上に配置する。そして、配置された道路構造データと予め記憶された地図情報との差分を算出し、差分が小さくなるように道路構造データを予め定めたモデルにより調整し、調整された道路構造データを出力する。これにより、道路構造の位置が地図情報と一致するように調整された道路構造データを出力できるので、自己位置を算出するための正確な環境情報を生成することができる。
また、本実施形態に係る周囲環境情報生成装置1では、差分が所定値より小さくなるまで道路構造データの調整を繰り返している。これにより、道路構造の位置の補正を繰り返し行って正確な道路構造データを算出することができるので、自己位置を算出するための正確な環境情報を生成することができる。
さらに、本実施形態に係る周囲環境情報生成装置1では、自車両の走行支援を実行する前に、自車両の走行軌跡を学習して走行軌跡モデルを生成する。これにより、走行軌跡モデルが予め生成されているので、自車両の走行支援に活用することができる。
また、本実施形態に係る周囲環境情報生成装置1では、自車両の走行支援を実行する前に、自車両周囲の道路構造を学習して道路構造モデルを生成する。これにより、道路構造モデルが予め生成されているので、自車両の走行支援に活用することができる。
さらに、本実施形態に係る周囲環境情報生成装置1では、走行軌跡モデルと道路構造モデルをサーバに記憶し、通信機を介して取得する。これにより、車両に多くのデータを格納する必要がなくなるので、システムリソースを節約することが可能となる。
また、本実施形態に係る周囲環境情報生成装置1では、走行軌跡モデルを自車両及び他車両の走行データを用いて作成する。これにより自車両の走行データだけではなく他車両の走行データも加えて走行軌跡モデルを作成できるので、多くの道路に対応できる走行軌跡モデルを作成することができる。また、他車両の走行データを加えることにより多くの走行軌跡モデルを作成することができる。
さらに、本実施形態に係る周囲環境情報生成装置1では、走行軌跡モデルを所定時間または走行シーンで区切られた区間で作成する。これにより、様々なデータの入り込みを防止できるので、高精度な走行軌跡モデルを生成することができる。
また、補正した道路構造、物標を記録して、次回もしくは次回以降の走行支援に用いるようにすることもできる。これにより、補正した道路構造データを用いて走行支援を実行することができるようになるため、次回もしくは次回以降の走行支援を実行したときに、実際の道路構造に合った適切な走行支援を実行することができるようになる。また、補正した道路構造データを記録することにより、同じ道路を走行した時の道路構造推定が不要になるため、計算負荷を低減することができる。
上述の実施形態に記載される各機能は、1または複数の処理回路により実装され得る。処理回路は、電気回路を含む処理装置等のプログラムされた処理装置を含む。処理回路は、また、記載された機能を実行するようにアレンジされた特定用途向け集積回路(ASIC)や回路部品等の装置を含む。また、周囲環境情報生成装置1は、コンピュータの機能を改善しうる。
上記のように、本発明の実施形態を記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。