<全体の構成>
以下、本発明の実施形態の一例について図を用いて説明する。図1に、本発明が適用された物体検出システム100の構成の一例を示す。図1に示す物体検出システム100は、車両5に搭載され、車両5の左右前後など全方位に存在する物体との距離を検出する。物体検出システム100は、レーザレーダ1及びECU(Electronic Control Unit)2を備えている。
また、図1中の運転支援システム3は、物体検出システム100の検出結果を利用する機能の一例である。運転支援システム3は、物体検出システム100の検出結果に基づいて、ドライバの運転を支援する種々の制御を実施する(詳細は後述)。もちろん、運転支援システム3に限らず、車両に搭載される種々のシステムが、物体検出システム100の検出結果を利用することができる。
レーザレーダ1は、モータなどからなる回転機構を備え、当該回転機構を回転させることによって、車両高さ方向から見た時の、車両5の前後方向に対するレーザ光の照射方向を変化させる。すなわち、レーザレーダ1は、この回転機構を回転させることによって、車両周囲360°(すなわち、全方位)に向けてレーザ光を照射する。回転機構の回転軸は、レーザレーダ1の中心軸とも称する。また、回転軸方向は、高さ方向と一致する。なお、ここでの一致とは、完全な一致だけでなく、略一致も含む。これは、後述するように路面6に対するレーザレーダ1の姿勢によって、ずれが生じるためである。
また、回転機構が中立位置(すなわち、回転角度が0°)となっている場合の照射方向をレーザレーダ1の正面方向とし、レーザレーダ1の前後方向とも称する。また、レーザレーダ1の前後方向及び回転軸方向のそれぞれと直交する方向を、レーザレーダ1の左右方向とする。すなわち、レーザレーダ1の左右方向は、回転機構の回転角度が90°(および270°)となっている場合の照射方向と一致する。
一例として本実施形態では、レーザレーダ1の正面方向と車両5の正面方向とを一致(前述と同様に略一致を含む)させる構成とするが、もちろん、他の態様として、回転機構の回転角度が180°となる方向を車両5の正面方向と一致させても良い。
ここで、レーザレーダ1の構成及び作動について説明する前に、その取付位置や路面6に対するレーザレーダ1の姿勢(これを取付姿勢とする)について、路面6に対する車両5の姿勢に基づいて定まる路面座標系を適宜用いて説明する。
路面座標系は、レーザレーダ1の取り付け位置の中心を、路面6に正射影した点を原点とし、車幅方向にX軸を、車両前後方向にY軸を、高さ方向にZ軸を、それぞれ直交するように備えている。したがって、路面座標系のXY平面は、路面6に相当する。
レーザレーダ1は、図2及び図3に示すように、例えば車両ルーフの上面に、所定の取付姿勢となるように設置されている。ここでいう取付姿勢とは、レーザレーダ1の路面6に対するピッチ角θp、ロール角θr、ヨー角θy、及び搭載高さhを指す。搭載高さhとは、路面6からのレーザレーダ1(厳密には発光部11)までの高さhを指す。
ピッチ角θpとは、レーザレーダ1の中心軸が、路面座標系のYZ平面においてZ軸との為す角を指し、ロール角θrとは、レーザレーダ1の回転軸がXZ平面においてZ軸との為す角を指す。また、ヨー角θyとは、レーザレーダ1の正面方向がXY平面においてY軸との為す角を指す。
また、ピッチ角θpは、Z軸方向からY軸方向への回転方向を正の値にとり、ロール角θrは、Z軸方向からX軸方向への回転方向を正の値にとる。また、ヨー角θyは、照射方位角βと同様の回転方向を正の値とする。なお、路面座標系におけるレーザレーダ1の位置は、(0,0,h)で表される。
再び図1に戻って、レーザレーダ1の構成及び作動について説明する。レーザレーダ1は、発光部11、受光部12、及びTOF(Time of Flight)算出部13を備えている。
発光部11は、レーザダイオードを備えており、ECU2からの駆動信号に従って、回転軸方向において所定角度の範囲(これを回転軸方向照射範囲とする)で不連続にレーザ光を照射する。より具体的には、回転軸方向照射範囲をL個(Lは正の整数)の照射方向に分割してなるレイヤ毎に、パルス状のレーザ光を照射する。この回転軸方向が請求項に記載の垂直方向に相当し、回転軸方向に垂直な方向が請求項に記載の水平方向に相当する。
本実施形態において、発光部11の回転軸方向照射範囲は、回転軸に垂直な方向(すなわち光軸の方向)に対して−10°から+30°の範囲とし、当該回転軸方向照射範囲をL=32個のレイヤに分割してレーザ光を照射する。すなわちレーザ光は、レイヤ毎に、高さ方向において1.25°ずつずれて照射される。各レイヤの番号は、回転軸方向において光軸と為す角度αが小さい順に0,1,2,…,31とする。
なお、回転軸方向においてレーザ光が光軸と為す角度(これを照射仰俯角とする)は、回転軸方向からy軸方向への回転角度を正の値で表すものとする。照射仰俯角αは、レイヤ毎に定まっており、例えばレイヤ0であればα=−10°であり、レイヤ31であれば、α=30°である。
そして、発光部11は、回転機構が一定角度(例えば0.1°)回転する毎に、各レイヤのレーザ光を逐次照射することによって、レーザレーダ1は、レイヤ毎に、車両全方位に向けてレーザ光を掃引照射する。なお、各レイヤの回転軸方向の照射角度の概念を図2に、また、360°スキャンした際に、各レイヤのレーザ光が路面6上の点を検出した場合の測距点の軌跡を図3に示している。測距点とは、レーザ光を反射した点であり、レーザレーダ1によって検出された点を指す。
受光部12は、発光部11から照射されたレーザ光が測距点で反射された反射光を、受光レンズで受光し、受光素子(フォトダイオード)に与える。受光素子は、反射光の強度に対応する電圧を出力する。この受光素子の出力電圧は、増幅器にて増幅された後にコンパレータに出力される。コンパレータは増幅器の出力電圧を基準電圧と比較し、出力電圧が基準電圧よりも大きくなったとき、所定の受光信号をTOF算出部13へ出力する。
TOF算出部13には、ECU2から発光部11へ出力される駆動信号も入力されている。このTOF算出部13は、駆動信号を出力してから受光信号が発生するまでの時間、すなわちレーザ光を出射した時刻と反射光を受光した時刻との時間差(既出のTOFを意味する)を計測し、この時間差を示す信号(以下、TOF信号)をECU2に入力する。
発光部11がレーザ光を照射する際には、レーザ光を照射角度毎に異なるパターンで照射するように、ECU2から発光部11に駆動信号が出力される。すなわち、レーザ光のパターンは、照射角度毎に定められているので、反射光を受光した場合には、その反射光のパターンから、その反射光の元となっているレーザ光の照射角度を特定することができる。
レーザ光の照射角度とは、照射仰俯角αと、照射方位角βで表される。照射仰俯角αは前述の通り、回転軸方向においてレーザ光が光軸と為す角度であって、レイヤ毎に定まっている。照射方位角βとは、回転機構の中立位置からの回転角度である。照射方位角βは、図3に示すように時計回りの角度を正の値で表す。
ECU2は、CPU、ROM、RAM、バックアップRAM等よりなるマイクロコンピュータを主体として構成され、入力される情報をもとに、ROMに記憶された各種の制御プログラムを実行することで各種の処理を実行する。このECU2が、請求項の物体検出装置に相当する。より具体的にECU2は、図1に示すように種々の処理を実施するための機能ブロックとして、記憶部20、距離算出部21、位置算出部22、車両情報取得部23、及び取付姿勢推定部24を備えている。
記憶部20は、書き換え可能な不揮発性の記憶媒体で構成されている。記憶部20には、レーザレーダ1の取付姿勢の初期値(これを初期取付姿勢とする)が登録されているとともに、後述する取付姿勢推定部24で推定される取付姿勢など種々のデータを記憶する。記憶部20が記憶している取付姿勢のうち、後述する位置算出部22で用いられる取付姿勢は、第1取付姿勢更新処理(図4 ステップS8)及び第2取付姿勢更新処理(S12)で更新されていく。
初期取付姿勢は、例えば製造ラインなど、乗員がおらず、かつ、各タイヤの空気圧が規定値となっている状態において計測した結果を用いればよい。本実施形態では、初期取付姿勢として、ピッチ角θp、ロール角θr、ヨー角θyは何れも、ずれが生じていない(すなわち0°)と設定する。また、初期取付姿勢としての搭載高さhは、予め設計されている値を用いる構成とする。
なお、搭載高さhについては、ピッチ角θp、ロール角θrともに0°として、任意のレーザ光の照射仰俯角αと、当該レーザ光で検出した測距点とレーザレーダ1との距離rとから、h=r×sinαとして算出した値を用いてもよい。さらに、初期取付姿勢は、比較的ラフに手で計測した結果を用いても良い。初期取付姿勢を従来よりもラフに設定しても良い理由は、測距点の相対位置を算出する際に用いられる取付姿勢は、後述する取付姿勢推定処理によって更新されるからである。
距離算出部21は、TOF算出部13からTOF信号(つまり、レーザ光の出射時刻と反射光の受光時刻との時間差)が入力された場合、その時間差に基づいてレーザ光の反射点(これを測距点とする)までの距離r(図3参照)を算出する。
位置算出部22は、距離算出部21が算出した測距点までの距離rと反射光が得られたレーザ光の照射角度と、記憶部20に記憶されている取付姿勢と、をもとにして、測距点の位置データを作成する。ここでの位置データは、次に述べるセンサ座標系で表される。
センサ座標系は、互いに直交するようにx軸、y軸、z軸を備え、当該センサ座標系におけるレーザレーダ1の位置が(0,0,h)となるように原点を備えている。ECU2は、y軸方向が車両前後方向に、x軸方向が車幅方向に、z軸方向が高さ方向に、それぞれ対応するものと認識する。
位置算出部22は、現在の取付姿勢を考慮して求めた測距点の相対位置をセンサ座標系の座標(x、y、z)で表す。言い換えれば、センサ座標系の各軸および原点は、現在位置算出部22で採用されている取付姿勢に基づいて設定されるものである。
このセンサ座標系は、レーザレーダ1の検出結果に基づいてECU2が認識する、レーザレーダ1が検出した測距点(すなわち物体)の車両5に対する相対的な位置を表している。これに対し、路面座標系は、レーザレーダ1が検出した物体の、車両に対する実際の相対位置を表す。
これらセンサ座標系と路面座標系とは、レーザレーダ1が正確に(設計通りに)車両5に設置されてあって、かつ、路面6に対する車両5の姿勢も規定値通りである場合には一致するものである。すなわち、レーザレーダ1の中心軸(すなわちz軸)は、車両5の高さ方向と一致し、レーザレーダ1の正面方向(すなわちy軸)は、車両5の前後方向における前方と一致する。もちろん、x軸とX軸についても一致する。
しかしながら、課題欄でも言及した通り、車両5に対して正確にレーザレーダ1を設置するためには、リフレクタなどを用いて厳密な光軸調整が必要となる。また、光軸調整のための試験環境(リフレクタなどの設置位置)自体の精度も要求されるため、製造ラインにおいて、光軸調整に要する時間や人員、試験環境などのコストがかかってしまう。
また、正確に車両5にレーザレーダ1が設置されている場合であっても、タイヤの空気圧の変化や、夏タイヤ/冬タイヤの交換によって、例えば車体の傾きなどといった、路面6に対する車両5の姿勢(これを車両姿勢とする)は変化する。さらには、乗員の乗車位置や、積載物などによっても車両姿勢は変化する。車両姿勢が変化してしまうと、路面6に対するレーザレーダ1の姿勢(すなわち取付姿勢)も変化する。
そして、実際の車両5の利用環境においては、乗員数や積載物の変化は大きく、タイヤの状態もまた変動することが想定されるため、路面座標系とセンサ座標系とが一致しない場合が多いことが考えられる。これに伴って、レーザレーダ1の検出結果には、レーザレーダ1の取付姿勢による誤差が含まれてしまう。言い換えれば、レーザレーダ1の取付姿勢による誤差とは、センサ座標系と路面座標系とのずれに相当する。
以降では、説明簡略化のため、初期取付姿勢に基づいて、センサ座標系が設定されているものとして説明する。すなわち、本実施形態の初期取付姿勢では、ピッチ角θp、ロール角θr、ヨー角θyは何れも0°であるため、y軸はレーザレーダ1の正面方向に、x軸はレーザレーダ1の左右方向に、z軸はレーザレーダ1の回転軸方向に備えられる。また、原点は当該センサ座標系において、レーザレーダ1の位置が(0,0,h)となる点である。
車両情報取得部23は、自車両5の情報を検出するセンサ群からなる車両情報検出部4と、図示しない車内LANで接続されている。車両情報検出部4は、例えば自車の走行速度を検出する車速センサ、自車に作用するヨーレートの大きさを検出するヨーレートセンサ、及びステアリングホイールの操舵角を検出する操舵角センサ(何れも図示略)を備えている。車両情報取得部23は、これらのセンサからのセンサ信号を用いて、自車両5の走行速度、ヨーレートの大きさ、移動量などを算出する。
取付姿勢推定部24は、レーザレーダ1の検出結果から、レーザレーダ1の取付姿勢を推定する。この取付姿勢推定部24の作動については、図4に示すフローチャートを用いて後で詳細に説明する。
運転支援システム3は、物体検出システム100の検出結果に基づいて、例えば公知のACC(Adaptive Cruise Control)や、衝突被害軽減ブレーキ機能、レーンキープアシスト(LKA:Lane Keeping Assist)などを実施する。例えばACCであれば、物体検出システム100が検出する先行車との距離に基づいて、車間距離を一定に保つように、駆動系及び制動系システムを制御する。
また、本実施形態における運転支援システム3は、上述した機能に加えて、車両5を自動で走行させる自動運転機能や、駐車位置に車両5を自動で駐車させる自動駐車機能を実施する。
<取付姿勢推定処理>
次に、図4に示すフローチャートを用いて、取付姿勢推定部24が実施する取付姿勢推定処理の流れを説明する。図4に示すフローチャートは、例えば図示しないイグニッションスイッチがオンになって、物体検出システム100に電力が供給されている場合において、逐次(例えば100ミリ秒毎に)実施される。
まず、ステップS1では、取付姿勢読み出し処理を実施してステップS2に移る。ステップS1の取付姿勢読み出し処理では、記憶部20に格納されている取付姿勢のうち、位置算出部22で用いるための取付姿勢を読み出す。なお、イグニッションスイッチがオンとなってから本フローを初めて実施する場合には、一例として初期取付姿勢を読み出すものとする。また、後述するステップS8やS12で取付姿勢が更新されている場合には、その更新された取付姿勢を読み出す。
ステップS2では、スキャン処理を実施してステップS3に移る。ステップS2のスキャン処理では、レーザレーダ1に駆動信号を出力し、全てのレイヤにおいてレーザ光を360°スキャンさせる。そして、距離算出部21が、TOF算出部13から入力される時間差データに基づいて、各測距点に対する距離rを算出するとともに、照射方位角βと測距点との距離rとを対応付けた、照射方位角−距離データを生成する。位置算出部22は、測距点毎に、距離算出部21が算出した距離r、そのレーザ光の照射角度、及びステップS1で読みだした取付姿勢から相対位置を算出する。
なお、本実施形態におけるレーザレーダ1は、車両全周囲を0°から360°まで0.1°ずつレーザ光を照射するため、1つのレイヤにおいて3601回レーザ光を照射することになる。また、レイヤ数Lは32であるから、レーザレーダ1が360°スキャニングすることによって、ECU2は最大115232点の測距点を得ることになる。なお、ここで最大値として表現している理由は、発光部11から照射されたレーザ光のうち、受光部12で反射光を受光できず、測距点を取得できない場合があるためである。
ステップS3では、路面候補点抽出処理を実施してステップS4に移る。このステップS3の路面候補点抽出処理の作動については、別途図5に示すフローチャート及び図6に示す概念図を用いて後述する。この路面候補点抽出処理を実施することで、ステップS2で取得した全ての測距点のうち、路面6を検出したと推定される測距点(これを路面候補点とする)を抽出する。このステップS3を実施するECU2が、路面候補点抽出部に相当する。
ステップS4では、路面推定処理を実施してステップS5に移る。このステップS4の路面推定処理の作動については、別途図7に示すフローチャート及び図8に示す概念図を用いて後述する。この路面推定処理を実施することで、センサ座標系における路面6に相当する平面(これを路面平面とする)Sを推定する。路面平面Sは、センサ座標系において、S=ax+by+cz+e=0(a、b、c、eは、路面推定処理で定まる係数)で表される。もちろん、センサ座標系と路面座標系とが一致する場合には、この路面平面Sは、z=0の平面と一致するものである。このステップS4を実施するECU2が、請求項に記載の路面平面算出部に相当する。
ステップS5では、第1取付姿勢推定処理を実施してステップS6に移る。このステップS5の第1取付姿勢推定処理では、前ステップS4で推定した路面平面Sを用いて、取付姿勢のうち、ピッチ角θp、ロール角θr、及び搭載高さhについて以下の方法によって推定する。
まず、ピッチ角θpを推定する方法について、図9及び図10を用いて説明する。図9は、センサ座標系のyz平面の概念図である。図9は、z=0とする面(これを基準面とする)が、便宜上、路面6(路面座標系においてZ=0)と一致するように示しており、また、図中における一点鎖線は、路面平面Sとyz平面とが交差してなる直線(Syzとする)を表している。この直線Syzは、路面平面Sにおいてx=0とすればよく、Syz=by+cz+e=0となる。
ここで、路面平面Sは、路面候補点から算出された平面であるため、本来、路面平面Sと路面6とは一致するはずである。路面平面Sを路面6と一致するようにセンサ座標系を回転させた図を、図10に示す。図10に示すように、y軸と路面平面Sとが為す角度、すなわち、y軸と直線Syzとが為す角度が、レーザレーダ1のピッチ角θpに相当する。ピッチ角θp(−90°≦θp≦90°)は、直線Syz=0をzについて変形することで、
式2のように求めることができる。
次に、ロール角θrを推定する方法について、図11及び図12を用いて説明する。ロール角θrは、前述のピッチ角θpの導出方法と同様の考え方に基づいて導出できるため、一部省略して説明する。
図11は、センサ座標系のxz平面の概念図である。基準面z=0と路面6(Z=0)とが一致するように示しており、図中における一点鎖線が、路面平面Sとxz平面とが交差してなる直線(Sxz)を表している。直線Sxzは、路面平面Sにおいてy=0とすればよく、Sxz=ax+cz+e=0となる。
また、路面6と路面平面Sとが一致するようにセンサ座標系を回転させた図を、図12に示す。図12に示すように、x軸と路面平面Sとが為す角度、すなわち、x軸と直線Sxzとが為す角度が、レーザレーダ1のロール角θrに相当する。ここで、直線Sxz=0をzについて式変形することで、ロール角θr(−90°≦θr≦90°)は、
式4のように求めることができる。
搭載高さhについては、例えば照射方位角β=0における任意の路面候補点との距離rと、その路面候補点を検出したレーザ光の照射仰俯角αと、ピッチ角θpとを用いて算出する。具体的は、照射方位角β=0となっている場合には、図13に示すように、当該路面候補点を検出したレーザ光と路面6とが為す角度の大きさは、レーザ光の照射仰俯角αと、ピッチ角θpとの和で表される。したがって、搭載高さhは、下記の式5で求める事ができる。
以上のようにして求めた、ピッチ角θp、ロール角θr、及び搭載高さhは、これらを求めた時刻を表すタイムスタンプを付与して記憶部20に格納する。なお、タイムスタンプは、時刻を表すものにかぎらず、各推定結果の時系列が識別できるものであればよく、番号などであってもよい。この第1取付姿勢推定処理を実施するECU2が、請求項に記載の第1取付姿勢推定処理部に相当する。
ステップS6では、安定性評価処理を実施する。このステップS6の安定性評価処理の詳細な作動については、別途図14に示すフローチャート及び図15に示す概念図を用いて後述する。ここでは、この安定性評価処理の概要について述べる。安定性評価処理では、これまでの取付姿勢の推定結果を時系列に並べた時系列データから、推定結果のばらつき(すなわち分散)σを算出し、ステップS5で求めた推定結果の尤もらしさ(信頼性ともいうことができる)を評価する。
安定性評価処理では、分散σが所定の閾値Σよりも小さい場合には、推定結果が安定していると判定する。また、分散σが閾値Σ以上となっている場合には、推定結果が安定してないと判定する。
一般に、レーザレーダ1の検出結果は、車両状態や走行環境の影響を受ける。ここでの車両状態とは、急な加減速や急な旋回操作などのユーザ操作が為されているか否かを指し、走行環境とは、路面6の凹凸や段差の有無などを指す。例えば、車両状態が安定していない例として、急なブレーキ操作によって前輪において急な制動を実施した場合には、慣性に従って後輪が浮き上がり、車両姿勢が変化する。また、走行環境が安定していない例として、車両が段差を乗り上げた前後においては、車両姿勢は振動する。
このように車両状態や走行環境が安定していない場合には、車両姿勢は時間変動するため、レーザレーダ1の検出結果には、車両姿勢に起因する誤差が含まれる。これに伴って、ステップS5での推定結果もまた、時間変動する。一方、車両状態及び走行環境が安定している場合には、車両姿勢の変化は相対的に小さいため、推定結果も安定する。
すなわち、ステップS6で、推定結果が安定しているということは、車両状態及び走行環境の両方が安定している状態においてレーザレーダ1の取付姿勢を推定していることを意味する。また、推定結果が安定していないということは、車両状態及び走行環境の少なくとも何れか一方が安定していない状態においてレーザレーダ1の取付姿勢を推定していることを意味する。
ステップS6において、推定結果が安定していると判定した場合には、ステップS7がYESとなってステップS8に移る。一方、ステップS6において、推定結果が安定していないと判定した場合には、ステップS7がNOとなって、本フローを終了する。
ステップS8では、第1取付姿勢更新処理を実施してステップS9に移る。このステップS8では、取付姿勢のうち、ステップS5で推定したピッチ角θp、ロール角θr、及び搭載高さhを用いて、位置算出部22で用いられる取付姿勢を更新する。このステップS8を実施するECU2が、請求項に記載の第1取付姿勢更新部に相当する。
ステップS9では、直進性評価処理を実施する。このステップS9では車両5が一定時間(例えば5秒)過去の時点から現在までの間、直進しているか否かを判定する。車両5が直進しているか否かは、車両情報取得部23が車両情報検出部4から取得する車両情報から判定すればよい。例えば、車速が0よりも大きく、かつ、ヨーレートが0であれば、直進していると判定する。一方、それ以外の場合には、直進していないと判定する。なお、ヨーレートが0である場合とは、完全に0である場合だけでなく、所定の閾値以下であれば0と見なす場合も含む。
ステップS9において直進していると判定した場合には、ステップS10がYESとなってステップS11に移る。一方、ステップS9において直進していないと判定した場合にはステップS10がNOとなって、本フローを終了する。
ステップS11では、第2取付姿勢推定処理を実施してステップS12に移る。この第2取付姿勢推定処理では、取付姿勢のうちのヨー角θyを推定する。この第2取付姿勢推定処理について、図16を用いて説明する。この第2取付姿勢推定処理を実施するECU2が、請求項に記載の第2取付姿勢推定処理部に相当する。
図16に示す表8の左列は、路面座標系のXY平面におけるレーザレーダ1の位置(すなわち路面座標系の原点)と、任意の測距点Pyとの位置関係を表しており、図中の一点鎖線は、センサ座標系のy軸の位置を仮想的に表している。Y軸とy軸とが為す角がヨー角θyに相当する。また、表8の右列は、センサ座標系のxy平面におけるレーザレーダ1の位置(すなわちセンサ座標系の原点)と、測距点Pyとの位置関係を表している。
また、図16に示す表8の上段は時刻T−Tcにおけるレーザレーダ1に対する測距点Pyの相対位置を表しており、下段は、時刻Tにおけるレーザレーダ1に対する測距点Pyの相対位置を表している。Tcは予め設計される時間であって、例えば、500ミリ秒とする。
本来、自車両5の前後方向とレーザレーダ1の正面方向(すなわちy軸方向)とが一致している場合には、左列と右列の図は一致するものである。しかしながら、ヨー角θyが0°ではない場合には、実際には車両5にとって表8の左列に示す位置にある測距点Pyは、ECU2にとっては表8の右列の位置にあると認識される。
したがって、ECU2が認識する測距点Pyの相対位置は、図16の表8の外側に示すような軌跡(これを相対測距点軌跡とする)γで移動していくように認識される。ここで、センサ座標系のy軸方向と、相対測距点軌跡γとの為す角度θvの大きさは、車両5の進行方向(すなわち路面座標系のZ軸方向)とレーザレーダ1の為す角度、すなわちヨー角θyの大きさと等しい。また、角度θvと、ヨー角θyとは符号が逆である。
したがって、取付姿勢推定部24は、周知の追跡(トラッキング)手法を用いて任意の測距点Pyを追跡し、当該測距点Pyの軌跡γとy軸方向とが為す角度θvを算出することによって、ヨー角θy(=−θv)を算出することができる。ここで、測距点Pyは、静止物から取得すればよく、静止物であるか否かの判定方法は、周知の方法を用いればよい。以上のようにして求めたヨー角θyは、ステップS5で求めたピッチ角θpなどと同様に、これを求めた時刻を表すタイムスタンプを付与して記憶部20に格納する。
ステップS12では、ステップS11で推定したヨー角θyを用いて、位置算出部22が用いるヨー角θyを更新して、本フローを終了する。このステップS12を実施するECU2が、請求項に記載の第2取付姿勢更新部に相当する。
以上では、センサ座標系が初期取付姿勢に基づいて設定されている場合を例にとって説明したが、もちろん、ステップS8やステップS12によって更新された取付姿勢を用いて、繰り返し上述の取付姿勢推定処理を実施してもよい。
なお、本実施形態では、路面平面Sを算出する際に用いる路面候補点の位置として、位置算出部22がレーザレーダ1の取付姿勢を考慮して算出した位置を用いる構成としている。このため、上述の取付姿勢推定処理を実施して新たに算出される取付姿勢(例えばピッチ角θpなど)は、現在採用している取付姿勢との差分を表すことになる。
したがって、ステップS8やステップS12において取付姿勢を更新する際には、現在採用している取付姿勢に、新たに算出した取付姿勢を加算した値を、路面6に対する取付姿勢として更新する必要がある。また、同様に、取付姿勢の時系列データを生成する際にも、各時点での取付姿勢は、その時点において採用されている取付姿勢に、新たに算出した取付姿勢を加えた値を用いる必要がある。
もちろん、他の構成として、路面平面Sを算出する際に用いる路面候補点の位置として、位置算出部22がピッチ角θp、ロール角θr、ヨー角θyを何れも0として算出した値を用いる場合(これを変形例1とする)には、新たに算出される取付姿勢が、そのまま現在の取付姿勢を表す。したがって、変形例1の場合には、時系列データなども、算出したそのままの値を用いれば良い。
<路面候補点抽出処理>
図5に示すフローチャートを用いて、取付姿勢推定部24が実施する路面候補点抽出処理の流れを説明する。図5に示すフローチャートは、図4に示す取付姿勢推定処理において、ステップS3に移ったときに実施される。
本処理の説明で用いるLは、前述のとおり、レーザレーダ1が備えるレイヤ数であり、本実施形態では32である。また、lyrは、整数であって、以下の処理を実施する上で用いる変数である。lyrは、レーザレーダ1が備える全レイヤのうち、現在処理の対象としているレイヤを特定するためのものであって、現在処理の対象としているレイヤの番号を表す。
まず、ステップS301では、lyrを0に設定(すなわち、lyrの初期化)し、ステップS302に移る。ステップS302では、変数lyrがレイヤ数Lよりも小さいか否かを判定する。lyrがレイヤ数Lよりも小さい場合には、ステップS302がYESとなってステップS303に移る。一方、lyrがレイヤ数L以上となっている場合には、ステップS302がNOとなって本フローを終了する。
ステップS303では、スキャン処理の結果、距離算出部21が生成した照射方位角−距離データから、レイヤ番号がlyrとなっているレイヤが検出した測距点を抽出して、一次元信号を生成する。すなわち、当該一次元信号は、レイヤ番号がlyrとなっているレイヤにおける、照射方位角βと、測距点との距離rの対応関係を示す。このステップS303を実施するECU2が、請求項に記載の一次元信号生成部に相当する。
ステップS304では、ステップS303で生成した一次元信号に対して、周知の高速フーリエ変換(FFT:Fast Fourier Transform)を施すことで、周波数解析する。なお、本実施形態では、一次元信号を周波数成分毎に分解するための方法として、FFTを用いるが、もちろんその他の手法であってもよく、例えば離散ウェーブレット変換(DWT:Discrete Wavelet Transform)などであってもよい。
ステップS305では、ステップS304で周波数分解された一次元信号を、周知のローパスフィルタ(LPF:low Pass Filter)に通すことで、低周波成分を抽出する。ローパスフィルタが通過させる周波数の最大値(いわゆるカットオフ周波数)は、適宜設計されればよい。ステップS306では、ステップS305で得られた低周波成分に対して、周知の逆フーリエ変換(IFFT:Inverse FFT)を施す。
ステップS304〜306の処理を施すことによって、ステップS302で生成した(すなわち、元の)一次元信号から低周波成分を抽出する。ここで、図6を用いて、一次元信号の低周波成分を抽出することの意義について説明する。
図6は、一次元信号における照射方位角βと距離rとの対応関係を表したグラフである。図6に示すグラフにおいて、横軸が照射方位角βを表し、縦軸がレーザレーダ1から測距点までの距離rを表している。また、図6中の実線部分(厳密には0.1°ずつ離れた点の列)が照射方位角毎の測距点を表し、点線は、LPFを通して得られる一次元信号の低周波成分を表している。
通常、発光部11から照射されたレーザ光は、そのレーザ光の進行方向に先行車両や人、輪止めなどの立体物などが存在しない場合には、路面6まで到達する。一方、立体物がレーザ光の進行方向上に存在する場合には、レーザ光は路面6まで到達せず、当該立体物で反射されて返ってくる。したがって、立体物を検出している場合の距離rは、路面6を検出している場合の距離rよりも小さくなる。
また、路面6を検出している場合には、その検出結果(すなわち距離r)は、その隣接する照射方位角においてもほぼ等しい距離rとなる一方、路面6を検出している状態から照射方位角βが変化して立体物を検出した場合には、距離rは急激に変化する。すなわち、図6に示すグラフにおいて、距離rが急激に変化している部分は立体物を検出していることを意味する。また、距離rが急激に変化している部分は一次元信号の周波数成分において高周波成分として表れる。
したがって、一次元信号の周波数成分における高周波成分は、立体物を検出している部分に相当し、相対的に低周波成分は路面6を検出している部分に相当することになる。すなわち、ステップS304〜306の処理を施すことによって、ステップS302で生成した(すなわち、元の)一次元信号から低周波成分を抽出することは、路面6を検出している測距点、すなわち路面候補点を抽出することに相当する。
再び図5に戻って路面候補点抽出処理についての説明を続ける。ステップS307では、ステップS306で得られた路面候補点を記憶部20に保存してステップS308に移る。記憶部20には、例えば路面候補点を保存するための配列を用意しておき、路面候補点は算出される順番に当該配列に格納していけば良い。
ステップS308では、lyrに1を加算してステップS302に戻る。すなわち、これまで処理の対象となっていたレイヤよりも、そのレイヤ番号が1つ大きいレイヤ(すなわち、次のレイヤ)を、以降での処理の対象に設定して、ステップS303〜307を実施する。
そして、以上の処理をlyrがL以上となるまで繰り返すことで、全てのレイヤにおける路面候補点を抽出することができる。
<路面推定処理>
図7に示すフローチャートを用いて、取付姿勢推定部24が実施する路面推定処理の流れを説明する。図7に示すフローチャートは、図4に示す取付姿勢推定処理において、ステップS4に移ったときに実施される。以降において、Nは路面候補点抽出処理で取得した全ての路面候補点の数を表し、整数M(M≧1)は、予め設定された繰り返し回数であって、例えば10とする。また、m、nは整数であって、以下の処理を実施する上で用いる変数である。
まず、ステップS401では、m=0(すなわち、mの初期化)としてステップS402に移る。ステップS402では、変数mが繰り返し回数Mよりも小さいか否かを判定する。mが繰り返し回数Mよりも小さい場合には、ステップS402がYESとなってステップS403に移る。一方、mが繰り返し回数M以上となっている場合には、ステップS402がNOとなってステップS430に移る。
ステップS403では、全ての路面候補点の中からランダムに3点を選択して、ステップS404に移る。このステップS403で選択した路面候補点を、Pa(xa,ya,za)、Pb(xb,yb,zb)、Pc(xc,yc,zc)とする。各点Pa、Pb、Pcの位置を表す座標は、位置算出部22がそれぞれの路面候補点に対して算出した値を用いればよい。
ステップS404では、ステップS403で選択されている3つの路面候補点Pa、Pb、Pcから仮路面平面Stを算出する。このステップS404を実施するECU2が、請求項に記載の仮路面平面算出部に相当する。なお、m=0のときに求めた仮路面平面StをSt(0)と表し、m=1のとき求めた仮路面平面StはSt(1)と表す。すなわち、平面St(m)は、任意のmのときに算出された仮路面平面Stを表す。
仮路面平面Stは、路面候補点Pa、Pb、Pcの3点を通る平面であるため、図8に示すように、PaからPbへ向かうベクトルTと、PaからPcへ向かうベクトルUの外積から算出する事ができる。より具体的には、ベクトルTの各成分を(Tx,Ty,Tz)とし、ベクトルUの各成分を(Ux,Uy,Uz)とすると、それぞれ式6、式7となる。
そして、センサ座標系における仮路面平面Stを表す式を係数a,b,c,eを用いてax+by+cz+e=0と表すと、係数a,b,cは、ベクトルTとベクトルUの外積を計算した結果得られる式8で求めることができる。また、係数eは、式8で算出されたa,b,cと、Paの座標(x
a,y
a,z
a)を用いて式9となる。
再び図7に戻り、路面推定処理の説明を続ける。ステップS405では、n=0としてステップS410に移る。ステップS410では、変数nが路面候補点の数Nよりも小さいか否かを判定する。nが路面候補点の数Nよりも小さい場合には、ステップS410がYESとなってステップS411に移る。一方、nが路面候補点の数N以上となっている場合には、ステップS410がNOとなってステップS420に移る。
ステップS411では、記憶部20に格納されている路面候補点と、ステップS404で算出した仮路面平面St(m)との距離dを算出する。なお、先頭からn+1個目に記憶されている路面候補点をP(n+1)と表し、路面候補点P(n)と仮路面平面St(m)との距離dをd(n)と表す。例えば、P(0)は、記憶部20の設けられている配列において先頭に格納されている路面候補点を指し、d(0)は、P(0)と仮路面平面St(m)との距離を表す。
路面候補点P(n)と、ステップS404で算出した仮路面平面St(m)との距離d(n)は、図8に示すように、P(n)から仮路面平面St(m)に降ろした垂線の長さであって、次に式10で求めることができる。ここでは便宜上、路面候補点P(n)の座標は、(x
n,y
n,z
n)で表すが、位置算出部22が算出した座標を用いれば良い。
ステップS412では、ステップS411で算出した距離d(n)を記憶部20に格納してステップS413に移る。ステップS413では、nに1を加算してステップS410に戻る。これによって、次に実施するステップS411では、次に記憶されている路面候補点P(n+1)と、ステップS404で算出した仮路面平面St(m)との距離d(n+1)を算出する。
すなわち、ステップS410〜S413をnがN以上(ステップS410がNO)となるまで繰り返すことで、全ての路面候補点P(0)〜P(N−1)と、仮路面平面St(m)との距離d(0)〜d(N−1)を算出する。
ステップS420では、以上の処理で得られたd(0)〜d(N−1)の中央値d_medを求めてステップS421に移る。仮路面平面St(m)に対して求めた中央値d_medをd_med(m)で表す。中央値d_med(m)を求める方法は、周知の方法を求めればよい。本実施形態では、d(0)〜d(N−1)を小さい順にソートした配列を生成し、その配列の中央に格納されている値を中央値d_med(m)とする。ソートは、バブルソートやクイックソートなど周知の手法を適用すればよい。
仮に、全ての路面候補点P(0)〜P(N−1)が、誤差なく同一平面上の点を検出している場合には、距離d(0)〜d(N−1)は何れも0となり、中央値d_med(m)も0となる。しかしながら、実際には、レーザレーダ1自体の検出精度の影響を受けることに加えて、ステップS3の路面候補点抽出処理において、路面6以外を検出している測距点も一部、路面候補点として選択してしまう。このため、距離d(0)〜d(N−1)は必ずしも0とはならない。
また、仮路面平面St(m)を算出するために選択された3点Pa,Pb,Pcが相対的に誤差の大きい路面候補点であった場合には、距離d≠0となる路面候補点が増えるとともに、各路面候補点との距離dは相対的に大きい値となる。
路面候補点は、いずれも路面6を検出している点として選択されているため、全ての路面候補点を代表する平面は、センサ座標系において路面6に相当する平面、すなわち路面平面Sである。
また、ステップS420で求めた中央値d_med(m)は、仮路面平面St(m)と全ての路面候補点との距離を代表する値であるため、中央値d_med(m)は、仮路面平面St(m)と全ての路面平面Sとの距離(すなわち誤差)を表していることになる。したがって、中央値d_med(m)が小さいほど、路面平面Sに近い平面であることを表す。このステップS420を実施するECU2が、請求項に記載の路面尤度評価部に相当する。
ステップS421では、ステップS420で求めた中央値d_med(m)と仮路面平面St(m)とを対応付けて保存して、ステップS422に移る。ステップS422では、mに1を加算してステップS402に戻る。そして、ステップS402からステップS422を繰り返すことによって、M個の仮路面平面St、及び、各仮路面平面Stに対する中央値d_medを得る。
ステップS430では、以上の処理で得られたM個の仮路面平面Stのうち、その仮路面平面Stに対応付けられている中央値d_medが最小となっている仮路面平面Stを、路面平面Sに設定して、本フローを終了する。
なお、本実施形態では、M=10とするが、その他の値であってもよく、例えばM=50などであってもよい。Mが大きいほど、生成される仮路面平面Stの数は増えるため、より適切な仮路面平面Stを路面平面Sに設定できるようになる。また、他の構成としてステップS420で中央値d_med(m)を求めたがこれに限られるものではなく、d(0)〜d(N−1)の平均値を求め、利用しても良い。さらに、本実施形態では、仮路面平面の、路面平面Sとしての尤もらしさを距離dの中央値d_medで評価したが、距離dの二乗の和で評価してもよい。
<安定性評価処理>
図14に示すフローチャートを用いて、取付姿勢推定部24が実施する安定性評価処理の流れを説明する。図14に示すフローチャートは、図4に示す取付姿勢推定処理において、ステップS6に移ったときに実施される。以降において、整数Iは、予め設定された読み出しフレーム数であって、例えば10とする。ここでの読み出しフレーム数とは、現時点から過去に遡って読み出す取付姿勢の推定結果の数を指す。また、iは整数であって、以下の処理を実施する上で用いる変数である。
取付姿勢の推定結果としては、少なくともピッチ角θp、ロール角θr、及び搭載高さhがあるが、ここでは簡単のため、安定性を評価するために用いる取付姿勢の推定結果としては、ピッチ角θpのみを用いる。もちろん、他の構成として、他のロール角θr、及び搭載高さhも用いて以降の安定性評価処理を実施してもよい。
まず、ステップS601では、i=0として、ステップS602に移る。ステップS602では、変数iが読み出しフレーム数Iよりも小さいか否かを判定する。変数iが読み出しフレーム数Iよりも小さい場合には、ステップS602がYESとなってステップS603に移る。一方、変数iが読み出しフレーム数I以上となっている場合には、ステップS602がNOとなってステップS610に移る。
ステップS603では、現時点よりもiフレーム過去に算出したピッチ角θpを読み出してステップS604に移る。i=0の場合には、現時点よりも0フレーム過去に算出したピッチ角θpを読み出すことになるが、これは今回の取付姿勢推定処理のステップS5で算出したピッチ角θpを指す。また、i=1の場合には、前回の取付姿勢推定処理で算出したピッチ角θpを読み出す。
ステップS604では、iに1を加算してステップS602に戻って、変数iが読み出しフレーム数I以上となるまで、ステップS603及びステップS604を繰り返す。すなわち、ステップS602がNOと判定された場合には、今回の取付姿勢推定処理で算出したピッチ角θpも含めて合計I=10個のピッチ角θpを読み出していることを意味する。
ステップS610では、直近I個のピッチ角θpの分散σを算出してステップS611に移る。ステップS611では、ステップS610で算出した分散σが、予め設定した閾値Σよりも小さいか否かを判定する。分散σが、予め設定した閾値Σよりも小さい場合には、ステップS611がYESとなってステップS612に移る。一方、分散σが、予め設定した閾値Σ以上となっている場合には、ステップS611がNOとなってステップS613に移る。
ステップS612では、推定結果が安定していると判定して本フローを終了する。また、ステップS613では、推定結果が不安定であると判定して本フローを終了する。本実施形態では、推定結果が安定しているか否かを、分散σを用いて判定するが、その他、標準偏差などによって判定しても良い。また、他の構成として、前時刻における推定結果との差分が所定の閾値以下である場合に安定していると判定しても良い。
ここで、図15を用いて、推定結果が安定している状態と、安定していない状態とを説明する。推定結果としてピッチ角θpについてここでは述べるが、ロール角θrなどの他の要素についても同様である。図15は、ピッチ角θpの時系列データを表したグラフであって、縦軸はピッチ角θpの角度を、横軸は時間を表している。なお、図15中のθp0及びΔθpについては、応用例2で説明する。
現在時刻をTとすると、1フレーム前のピッチ角θpは、時刻T−1において推定されたピッチ角である。すなわち、読み出しフレーム数I=10であるから、図14に示す安定性評価処理のステップS601〜S604では、時刻Tから時刻T−9までのピッチ角θpが読み出される。そして、これらのピッチ角θpを母集団として分散σを計算して安定性を評価する(ステップS610、S611)。
ここで、分散σは、ピッチ角θpのばらつきを評価してものであるため、分散σが閾値Σよりも小さい場合とは、図15において、縦軸の変化が比較的小さく、安定した状態が継続していることを表す。例えば、時刻TからT−10までの区間は、安定している状態を示している。
一方、車両5が段差を乗り上げたりするなどした場合には、ピッチ角θpは、例えば図15の時刻T−13やT−14のように大きく変動する。これらの変動量(請求項に記載の時間変動幅)が大きい要素を母集団に含んでいる場合には、分散σもまた閾値Σ以上となる可能性が高い。すなわち、分散σが閾値Σ以上となる場合には、分散σの母集団としている時系列データにおいて、車両5が段差を乗り上げたりするなど、車体の路面6に対する姿勢の変動があったことを意味する。
また、砂利道など、舗装されていない道路を走行している場合には、定常的に車両5が振動するため、ピッチ角θpの時系列データの振幅も大きくなるため、分散σは大きくなる。
したがって、前述の安定性評価処理を実施することによって、今回の取付姿勢推定処理で推定した結果が、車両5(レーザレーダ1)の路面6に対する相対位置が安定している状態で推定されたものであるか否かを判定することができる。
(実施形態のまとめ)
以上の構成では、レーザレーダ1がスキャン処理することによって得られる複数の測距点から、路面候補点を抽出する(図4 ステップS3)。そして、ランダムに選択した路面候補点Pa、Pb、Pcから算出される路面平面Sと、z=0とする基準面とが為す角度から、レーザレーダ1のピッチ角θp、ロール角θr、及び搭載高さhを推定する。
また、ステップS11では、任意の測距点Py(ただし、静止物)の相対測距点軌跡γを算出し、当該相対測距点軌跡yとy軸とが為す角度から、ヨー角θyも求めることができる。
そして、取付姿勢推定部が推定した取付姿勢の時間変動が所定の閾値より小さい場合は、推定された取付姿勢を実際の取付姿勢として採用(ステップS8、S12)し、相対位置の算出に用いる。言い換えれば、設計値や工場出荷時の取付姿勢ではなく、実際の取付姿勢を推定した値を用いて測距点の相対位置を算出する。
したがって、記憶部20に記憶されている初期取付姿勢と、設計値との間に誤差があった場合でも、測距点の相対位置をより正確に取得することができる。すなわち、当該初期取付姿勢の誤差に起因する相対位置の誤差を低減することができる。このため、製造ラインでの厳密な取付姿勢の調整を簡略化することができるとともに、試験環境の精度の要件を緩和することができる。したがって、取付姿勢の調整に伴うコストを低減することができる。
また、以上の取付姿勢推定処理は、リフレクタなどの試験用の設備を用いずに実施することができるため、例えば、走行中において実施することができる。このため、タイヤの空気圧の変化や、車内における乗員や積載物の位置などによって、車両姿勢は変化した場合であっても、その車両姿勢が変化した状態における取付姿勢を推定することができる。
そして、位置算出部は、その推定された取付姿勢を用いて相対位置を算出するため、相対位置の算出における車両姿勢の変化の影響を低減できる。したがって、本実施形態によれば、車両姿勢が工場出荷時などの基準とする姿勢と異なる姿勢となっている場合でも、より精度良く、相対位置を算出することができる。本実施形態は、乗員や積載量の変化が発生しやすいレンタカーやカーシェアリングに用いられる車両に対して、より効果的に作用すると言える。
また、設計値と、実際の取付姿勢との誤差に起因する測距点の検出位置の誤差は、レーザレーダ1からの距離が大きくなるほど大きくなる。このため、本実施形態は、遠方(例えば40m〜70m)の物体検出時に、より一層の効果を奏することになる。
さらに、以上の本実施形態によれば、レーザレーダ1の取付姿勢を高精度に推定することができるため、測距点の相対位置もより精度良く算出でき、その結果、路面6と非路面を高精度に分離することができる。
従来は、ACCやPCSなどへの適用を想定しており、車両のような比較的大きい物体の検出に主眼を置いてきたため、上述したような車両姿勢の動的な変化に起因する誤差は、問題とされてこなかった。
しかしながら、今後、自動運転や自動駐車などのアプリケーションへの適用を想定すると、走行路の両側にある縁石や、駐車場の輪留めのような相対的に小さい物体まで、検出できることが好ましい。
本実施形態によれば、路面6と非路面を高精度に分離することができるため、ACCやPCSだけでなく、自動運転や自動駐車などといった、より検出精度が要求されるアプリケーションにも応用することができる。また、本実施形態は、以下に示す応用例1〜3のように応用することで、さらなる効果を奏することができる。
(応用例1)
以上で述べた実施形態によれば、取付姿勢がずれない状態において、取付姿勢の更新を少なくとも一度実施し、S2のスキャン処理で得られる測距点から、路面6の前後方向の勾配の変化量、及び車幅方向の勾配の変化量を推定することができる。以下、この応用例1について、図17を用いて説明する。なお、取付姿勢がずれない状態とは、レーザレーダ1が車両5に十分に固定されており、車両5に対するレーザレーダ1の姿勢が変化しない状態を指す。
図17は、物体検出システム100による検出範囲を、前方領域Fr、後方領域Rr、右側方領域Rt、及び左側方領域Lfの4つの領域に分割した図である。前方領域Frは、車両5の前方(真正面だけでなく斜め前を含む)に広がる検出エリアを指しており、ここでは一例として照射方位角βが−45°〜+45°の範囲とする。また、後方領域Rrは、車両5の後方(背面だけでなく斜め後ろを含む)に広がる検出エリアを指しており、照射方位角βが135°〜225°の範囲とする。
右側方領域Rtは、車両5の右側方に広がる検出エリアを指しており、照射方位角βが45°〜135°の範囲とする。左側方領域Lfは、車両5の左側方に広がる検出エリアを指しており、照射方位角βが225°〜315°の範囲とする。
以上のように車両周囲を複数に分割した領域を用いて、まず、前後方向の勾配の変化量を推定する方法について説明する。ECU2において勾配の変化量を推定する処理部を勾配推定部とすると、勾配推定部は、路面候補点抽出処理(図4 ステップS3)によって得られる路面候補点のうち、前方領域Frに属する路面候補点を抽出する。そして、前方領域Frに属する路面候補点を母集団とする路面推定処理(ステップS4)を実施することによって、前方領域Frの路面平面(これを前方平面とする)Sfrを推定する。
また、勾配推定部は、路面候補点抽出処理によって得られる路面候補点から後方領域Rrに属する路面候補点を抽出し、同様の処理によって、後方領域Rrの路面平面(これを後方平面とする)Srrを推定する。
ここで、前方平面Sfrと後方平面Srrとがyz平面において為す角度を求めることによって、車両前後方向における勾配の変化量を推定することができる。例えば、後方平面Srrに対して、前方平面Sfrのyz平面上の傾きが大きい場合には、図18のように、上り勾配が始まる地点差し掛かったことを意味し、その後方平面Srrと前方平面Sfrとがyz平面において為す角度が、勾配の変化量である。
また、車両5が上り勾配を登っている途中の場合には、車両5の前方後方ともに、路面候補点を取得することができる一方、上り勾配の頂点に近づくにつれて、前方領域Frに照射したレーザ光に対する路面6からの反射光は取得しにくくなる。すなわち、前方領域Frに属する路面候補点の数が減少する。したがって、例えば、後方領域Rrにおいて後方平面を算出できた一方、前方領域Frにおける路面候補点の不足から、前方平面が算出できなかった場合には、上り勾配の頂点付近に差し掛かったと推定することができる。
また、上り勾配の頂点付近においては、レーザ光の照射仰俯角αが小さいほど(レイヤ番号が小さいほど)、反射光は取得しにくくなるため、前方領域Frにおけるレイヤ毎の路面候補点の数は減少する。すなわち、前方領域Frにおけるレイヤ毎の路面候補点の数の時間推移からも、車両5が上り勾配の頂点に差し掛かっているか否かを判定することができる。
また、上り勾配を登り切った地点においては、後方領域Rrにおいても、路面6に対するレーザ光の入射角が大きくなる為、路面6からの反射光を取得しにくくなる。すなわち、後方領域Rrに属する路面候補点の数が減少する。
したがって、前方平面Sfrを算出できる一方、後方領域Rrにおける路面候補点の不足から、後方平面Srrが算出できなかった場合には、上り勾配の頂点に到達したと推定することができる。なお、路面候補点の不足から、前方平面Sfr及び後方平面Srrの両方を算出できなかった場合には、上り勾配の道路と下り勾配の道路の間に位置することと推定してもよい。
以上のようにして、各領域に属する路面候補点を分母とする平面推定処理を実施することで、路面6の前後方向における勾配を推定することができる。また、更には、前方領域Fr及び後方領域Rrのそれぞれにおける路面候補点の数や、各領域におけるレイヤ毎の路面候補点の数から、車両前後方向の勾配が存在する路面6に対する車両5の位置を推定することができる。そして、勾配推定部が推定した道路勾配の情報は、様々なアプリケーションに利用することができる。
例えば、物体検出システム100が、車両5が上り勾配に差し掛かったことを検出した場合には、運転支援システム3は、当該検出結果を受けて、駆動力をアシストする制御を実施してもよい。
また、従来の物体検出システムでは、車両前方に存在する急な上り勾配となっている道路を立体物と誤認識してしまう場合もある。物体検出システムが、車両前方に存在する急な上り勾配となっている道路を立体物と誤認識した場合には、運転支援システム3が、衝突を回避するための制動処理(すなわち衝突被害軽減ブレーキ機能)を実施させてしまう。一方、本応用例1の物体検出システム100によれば、路面上の立体物と、道路勾配とを区別することができるので、上述したような、誤認識及び誤制動を抑制することができる。
さらに、スタート地点の勾配を基準として、例えば前後方向の勾配の変化量を積算していくことで、現在走行している道路の、スタート地点に対する勾配を推定することができる。特に、スタート地点が水平面である場合には、実際の道路の勾配を推定できるようになる。
車幅方向の勾配を推定する方法についても、前述の前後方向における勾配を推定する方法と同様である。すなわち、勾配推定部は、路面候補点抽出処理によって得られる路面候補点のうち、右側方領域Rtに属する路面候補点を母集団とする路面推定処理を実施することによって、右側方領域Rtの路面平面(これを右側方平面とする)Srtを推定する。
さらに、勾配推定部は、路面候補点抽出処理によって得られる路面候補点のうち、左側方領域Lfに属する路面候補点を母集団とする路面推定処理を実施することによって、左側方領域Lfの路面平面(これを左側方平面とする)Slfを推定する。
そして、右側方平面Srtと左側方平面Slfとがxz平面において為す角度を求めることによって、車幅方向における勾配の変化量を推定する。例えば、xz平面において時計回りの回転角を正の値とした時に、左側方平面Slfに対して右側方平面Srtが正の角度を為している場合には、車両前後方向から見た路面6の断面が凸状になっている、または右肩下がり路面6であると推定することができる。また、左側方平面Slfに対して右側方平面Srtが負の角度を為している場合には、路面6が車幅方向においては凹状、または右肩上がりであると推定することができる。
なお、上述した各領域が指す範囲は一例であって、適宜設計されればよい。例えばその他形態として、各領域の間に所定の間隙が生じるように設定してもよい。すなわち、照射方位角βが−20°〜+20°の範囲を前方領域Fr、160°〜200°の範囲を後方領域Rr、60°〜120°の範囲を右側方領域Rt、240°〜300°の範囲を左側方領域Lfとしてもよい。
(応用例2)
さらに、前述の実施形態で求めるレーザレーダ1の取付姿勢、又は前述の応用例1で求める路面6の勾配の時系列データから、車両姿勢の急激な変化(ピッチングとする)を推定することができる。ピッチングは、車両5が路面6上の段差を乗り越えたり、ドライバが急なブレーキ操作をする等した場合に生じる。以下、この応用例2について、図15を用いて説明する。ここでは簡単のため、レーザレーダ1のピッチ角θpの時系列データから、車両前後方向におけるピッチングを検出する構成について説明するが、ロール角θrや路面勾配を用いた場合であっても同様である。
図15は、前述の通りピッチ角θpの時系列データを表したグラフであって、時刻T−14及びT−13において急激にピッチ角θpが変動している。すなわち、これらの時刻においてピッチングが発生したことを表している。また、θp0は、安定性評価処理で安定していると判定された状態におけるピッチ角θpの平均値を表している。
ピッチングが発生したか否かの判定方法としては、ピッチ角θpの変動量が所定の閾値を超えた場合とすればよい。例えば、ある時刻(ここではT−14、T−13)において推定されたピッチ角θpが、ピッチ角θp0の一定倍(例えば2倍)以上となった場合に、ピッチングが発生したと判定すればよい。また、ピッチングが発生したか否かの判定に用いる閾値は、θp0に所定の倍数を乗算した数に限らず、θp0に一定値(例えば1°)を加えたであってもよい。図15中のΔθpは、ピッチ角θp0と時刻T−14におけるピッチ角θpの差分を示す。
以上のようにして、ピッチングの発生を検出し、及びピッチングの度合いΔθpを検出することで、これらの情報を様々なアプリケーションに提供することができる。
例えば、既存の運転支援システム3として、図示しない車載カメラが撮影した画像に画像処理を施すことによって、歩行者を検出し、当該歩行者までの距離を検出するシステムがある。車載カメラは、一例として、車両前方の適宜設計された範囲(撮影範囲とする)を撮影するように、ルーフミラー付近に取り付けられているものとする。
一般に、このような運転支援システム3では、画像処理を実施するCPUの処理負荷を軽減するために、撮影範囲の中でも画像処理を実施する範囲(これを処理範囲とする)が予め設定されている。そして、処理範囲中に歩行者を検出した場合には、予め設計されているカメラの取付姿勢(設置位置や撮影方向)と、撮影画像中における歩行者の足元の位置と、に基づいて、歩行者までの距離を推定する。
より具体的には、図19の左側に示すように、カメラの撮影範囲における車両5に近い側の端部(車両側端部とする)から、歩行者の足元までの撮影画像中の距離から、車両5の前端から歩行者までの距離を推定する。図19の左側に示す例は、車両5にピッチングが生じておらず、車載カメラも路面6に対して予め設計された取付姿勢となっている場合を表している。すなわち、車両5の前端から歩行者までの距離を精度よく検出できている場合を表しており、このときの歩行者までの距離を仮に10mとする。
しかしながら、ピッチングが生じた場合には、歩行者が処理範囲から外れて、歩行者を検出できなくなったり、或いは、推定される歩行者までの距離が実際の距離と乖離したりしてしまう可能性がある。
例えば、車両5が前傾姿勢となるようにピッチングが生じた場合の図19の右側に示す。図19右側に示すように、前傾姿勢となっている場合には、車載カメラの視野角の中心線が水平面と為す角度は、予め設計された値よりも大きくなり(すなわち、視野角の中心線が路面6の方を向き)、撮影範囲は設計値よりも進行方向手前側に寄ってしまう。
このとき、撮影範囲における車両側端部から、歩行者の足元までの撮影画像中の距離は、ピッチングが起きていない場合に比べて長くなるため、車両5から歩行者までの距離は、実際の値(10m)よりも長く推定されてしまう(例えば30m)。
このような誤検出をしてしまった場合には、本当は歩行者に接近しているにも関わらず、衝突被害軽減ブレーキ機能が作動しない可能性が生じる。
本応用例2によれば、車両5のピッチングを検出することができるため、ピッチングが生じている場合には、車載カメラの撮影画像に基づく歩行者の検出処理をキャンセルすることによって、歩行者との距離を誤検出してしまう可能性を低減することができる。または、車載カメラの取付姿勢をピッチング角Δθpで補正することによって、ピッチングが生じている場合の検出距離の精度を向上させることができる。
(応用例3)
さらに、前述の応用例1で求める路面6の勾配の時系列データから、推定した路面勾配の時間変化と、車両情報を同時に観察することで、急な加減速時や、コーナー走行時の車両姿勢を推定することができる。
例えば、安定して走行している時刻の路面勾配を記憶しておき、車両情報検出部4から入力されている車速が急変した際に、当該時刻において推定した路面勾配と、記憶部20に記憶しておいた前時刻における路面勾配との差を算出する。なお、この算出された差は、前述のとおり、ピッチングによる車両5の傾きに相当する。言い換えれば、この算出された路面勾配の前時刻との差は、路面6に対する車両姿勢の変化量に相当する。
以上のようにして、急な加減速時やコーナー走行時の車両姿勢を推定することによって、例えば、路面6に対する車両姿勢に応じて、図示しないサスペンションなどを制御し、乗員の乗り心地や操縦安定性などを向上させることができる。
(特許文献1との比較)
なお、特許文献1には、光軸の垂直方向のずれ(すなわちピッチ角)を調整する方法として、次に述べる方法が開示されている。すなわち、特許文献1では、予め正確な取付姿勢となっていることが確認されているレーザレーダを用いて、所定の照射方位角で照射した複数のレイヤの測距点間の距離を登録しておく。なお、これら複数のレイヤは何れも路面を検出する照射仰俯角となっているレイヤである。
そして、調整時には、対応するレイヤの測距点間の距離と、予め登録されてある値とを比較することで、レーザレーダの光軸の垂直方向のずれ度合いを評価することで、当該ずれ度合いが0となるようにピッチ角を調整する。なお、ヨー角については、背景技術欄で述べたようにリフレクタなど試験用の設備を用いて調整する。
この特許文献1では、ピッチ角とヨー角のずれにしか言及されておらず、搭載高さやロール角のずれについては考慮されていない。しかしながら、複数のレイヤの測距点間の距離は、実際にはピッチ角だけではなく、搭載高さやロール角のずれによっても変化する。そして、ピッチ角、搭載高さ、及びロール角それぞれのずれは、相互に作用しあった和となって、各レイヤの測距点間の距離として表れる。
したがって、特許文献1の方法では、搭載高さやロール角がずれていた場合には、正しい取付姿勢に調整する事ができない。また、ヨー角については、やはりリフレクタを用いないと調整できない。すなわち、ヨー角の誤差を評価するためには、修理工場などに車両を持ち込む必要がある。
これに対し、本実施形態では、ピッチ角θp、ロール角θr、及び搭載高さhのそれぞれに対して誤差を評価することができる。また、ヨー角θyについてもリフレクタなどの試験用の設備を用いずに誤差を評価することができるため、ヨー角θyの誤差を評価する場合にも、修理工場などに持ち込む必要はない。
(変形例2)
前述の実施形態における路面候補点抽出処理では、FFTやLPF、IFFTを用いて測距点から路面候補点を抽出する例を示したがこれに限らない。図4のステップS2で取得した全ての測距点を母集団として、図20に示す処理を実施することによって路面候補点を求めても良い。図20に示すフローチャートは、図4に示す取付姿勢推定処理において、ステップS3に移ったときに実施される。
本処理の説明で用いるKは、照射方位角βが取りうる角度の数であって、ここではレーザ光を0.1°ずつ360°照射するため、3601となる。また、整数k(0≦k<K)は、照射方位角β=0のときに照射したレーザ光を0番とした時に、何番目に照射されたレーザ光かを表す変数である。すなわち、変数kと照射方位角βとは、β=0.1×kの関係を満たす。ここで、任意のk(すなわちβ=0.1×k)のときに照射されたレーザ光によって検出された測距点との距離rをr(k)と表す。例えば、k=0(すなわちβ=0)のときに照射されたレーザ光によって検出された測距点との距離rは、r(0)と表す。
まず、ステップT301では、lyr=0としてステップT302に移る。ステップT302では、変数lyrがレイヤ数Lよりも小さいか否かを判定する。lyrがレイヤ数Lよりも小さい場合には、ステップT302がYESとなってステップT303に移る。一方、lyrがレイヤ数L以上となっている場合には、ステップT302がNOとなって本フローを終了する。
ステップT303では、k=1として、ステップT310に移る。ステップT310では、変数kが照射方位角数Kよりも小さいか否かを判定する。kがKよりも小さい場合には、ステップT310がYESとなってステップT311に移る。一方、kがK以上となっている場合には、ステップT310がNOとなってステップT320に移る。
ステップT311では、現在処理の対象としている(すなわち、レイヤ番号がlyrの)レイヤにおいて、k番目の測距点との距離r(k)と、k−1番目の測距点との距離r(k−1)との差分(これを距離変化量とする)fを算出してステップT312に移る。
ステップT312では、距離変化量fが、予め設定されている閾値(例えば0.2m)Thresよりも小さいか否かを判定する。距離変化量fが閾値Thresよりも小さい場合には、ステップT312がYESとなって、ステップT313に移る。一方、距離変化量fが閾値Thresより以上となっている場合には、ステップT312がNOとなって、ステップT314に移る。
ステップT313では、k番目の測距点を仮路面候補点として記憶部20に格納してステップT314に移る。ステップT314では、Kに1を加算してステップT310に戻る。ステップT310からステップT314を、ステップT310においてNOと判定されるまで繰り返すことで、レイヤ番号がlyrのレイヤにおける測距点から、仮路面候補点を抽出することができる。
ステップT320では、複数の仮路面候補点を母集団とする距離rの分布を評価することで、路面6を検出している仮路面候補点を抽出してステップT321に移る。より具体的は、図6に示すように、路面6を検出している仮路面候補点はそれぞれ比較的近い値を取るため、距離rの分布において1つのグループにまとめることができる。また、同一の立体物を検出している仮路面候補点もまた、比較的近い値を取るため、グルーピングすることができる。
ここで、図5の説明でも述べた通り、路面6を検出している測距点は、立体物を検出している測距点よりも距離rが大きくなる。したがって、距離rの分布において形成される複数のグループのうち、その中央値が最も大きい値となっているグループが路面6を検出している仮路面候補点からなるグループであると推定することができる。このステップT320では、複数のグループのうち、距離rの中央値が最も大きい値となっているグループに属する仮路面候補点を抽出する。
ステップT321では、前ステップT320で抽出された仮路面候補点を路面候補点として保存してステップT322に移る。ステップT322では、lyrに1を加算してステップT302に戻る。ステップT302からステップT320を、ステップT302においてNOと判定されるまで繰り返すことで、全てのレイヤにおける路面候補点を抽出することになる。
なお、以上では、レーザレーダ1として、全方位360°に向けてレーザ光を掃引照射するものを用いたが、もちろん、水平方向において一定の角度範囲(例えば図17に示す前方領域Frのみ)に向けてレーザ光を掃引照射するものであってもよい。また、レーザレーダとして垂直方向に32ライン照射するものを用いたが、これに限定するものではなく、最低1ラインあれば良い。