(58)【調査した分野】(Int.Cl.,DB名)
前記走行制御手段は、前記影エッジから横方向に所定距離だけ離間し、走行路の中央に近い位置に目標横位置を変更することを特徴とする請求項1に記載の車両走行支援装置。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。
【0012】
本発明の実施形態として示す車両走行支援装置は、例えば
図1に示すように構成される。この車両走行支援装置は、車両の前方を撮像した画像から、車両進行方向に伸びる影により生ずる影エッジを検出し、影エッジの長さが所定値よりも長い場合に、当該影エッジから離れた領域を走行するように車両の走行を制御するものである。この影エッジは、例えば、走行可能領域の前方の横方向中央付近に生じている影により現れる車両の進行方向成分を含み、長さが所定値以上の車両進行方向に伸びる影が挙げられる。車両走行支援装置は、例えば、カメラ1、画像認識部2、センサ部3、走行制御部4、及び、ステアリングアクチュエータ5を含む。
【0013】
カメラ1は、例えば、車幅方向における中央位置の車室内のフロントウィンドウの上部に取り付けられる。カメラ1は、
図2及び
図3に示すように、車両10の前方数m〜数10m先の路面を撮影する。カメラ1は、撮影した画像データを画像認識部2に供給する。
【0014】
画像認識部2は、白線認識部21、影エッジ検出部22を有する。白線認識部21は、カメラ1により撮影された画像データに基づいて、車両10と走行中の車線区分線(白線)との相対的な位置関係を検出する。影エッジ検出部22は、車両10に前方に影により現れる影エッジを検出する。影エッジ検出部22は、抽出した影エッジの位置を算出する。
【0015】
白線認識部21は、カメラ1により撮影された画像データを処理することにより道路上の白線を検出する。次いで、白線認識部21は、道路形状と車両挙動を表す複数のパラメータ(以後、道路パラメータと呼ぶ。)を用いて道路白線の形状を数学的に表現した白線モデルと、道路白線の検出結果とが一致するように道路パラメータを時間と共に更新する。これによって、白線認識部21は、走行路上の白線を検出して道路形状及び車両挙動を推定する。
【0016】
道路パラメータは、走行路に描かれた車線中心線に対する車両10の重心点横変位yr、車線中心線に対する自車のヨー角φr(
図2(a)、
図3参照)、車両10のピッチ角η、カメラの路面からの高さh(
図2(b)参照)、道路曲率(曲率半径の逆数)ρ、走行車線幅w等である。白線認識部21により推定されたこれらの道路パラメータは、走行制御部4に供給される。
【0017】
影エッジ検出部22は、白線認識部21により検出した道路パラメータに基づいて走行可能領域を特定する。影エッジ検出部22は、少なくとも走行可能領域における車両進行方向に伸びる影による影エッジを抽出する。影エッジ検出部22は、影エッジの位置を、影エッジ情報として走行制御部4に供給する。影エッジは、カメラ画像に基づいて取得する。なお、影エッジ検出部22はナビゲーション情報に基づいて道路に近い防音壁等の道路に沿って伸びる建物情報に基づいて影エッジを判定してもよい。
【0018】
センサ部3は、車両10の状態を検出する。センサ部3は、例えば、車速センサ、操舵角センサ、ステアリングアクチュエータ5の電流センサにより構成される。また、センサ部3は、付加的にヨーレートセンサを用いてもよい。車速センサは、例えば、変速機の出力側の回転数や車輪の回転数を計測することにより車速を検出する。操舵角センサは、ステアリングシャフトの回転変位を直接又はギヤ機構等により増幅した後、ロータリエンコーダやポテンショメータ等の角度検出機構によって操舵角検出信号として操舵角を検出する。これらのセンサ信号は、走行制御部4に供給される。
【0019】
走行制御部4は、車両走行支援装置における全体の制御を行う。走行制御部4は、所定値以上の長さの影エッジから離れた横位置を選択して走行するように車両を制御をする。走行制御部4は、走行位置設定部41、操舵制御部42を含む。
【0020】
走行位置設定部41は、画像認識部2から入力される道路パラメータ及び影エッジ情報に基づいて、車両10の目標走行位置を設定する。この目標走行位置は、走行路における横方向の走行可能領域内の横位置である。次いで、走行位置設定部41は、センサ部3より入力される車速、操舵角、及びステアリングアクチュエータ5の電流を含むセンサ信号に基づいて、操舵制御量を算出する。
【0021】
操舵制御部42は、操舵制御量に応じてステアリングアクチュエータ5に電流指令を送る。これにより、走行制御部4は、車両10が目標走行位置を走行するように制御を行う。通常において、操舵制御部42は、例えば単眼カメラによる白線認識に基づいて、白線に沿って車両10が走行するように支援をする。影エッジが存在する場合、操舵制御部42は、後述するように車両10の走行位置を制御する。
【0022】
[道路パラメータの演算処理]
つぎに、上述した車両走行支援装置において、白線認識部21による道路パラメータの演算処理について
図4を参照して説明する。
【0023】
先ずステップS1において、白線認識部21は、道路形状や車両挙動を表す道路パラメータを初期設定する。例えば
図5に示すような前方画像100の画面座標系上において、白線モデルを、道路パラメータを用いて次のように式1で表す。
【数1】
【0024】
上記式1において、a〜eは道路パラメータである。路面からのカメラ1の高さhを一定とすると、それぞれの道路パラメータは、次のような道路及び白線の形状又は車両挙動を表す。すなわち、aは車線内の自車両の横変位量y
crに対応する。bは道路曲率ρに対応する。cは自車両(カメラ1の光軸)の道路に対するヨー角φ
rに対応する。dは自車両(カメラ1の光軸)の道路に対するピッチ角ηに対応する。eは道路の車線幅Wに対応する。なお、初期状態では道路及び白線の形状や車両挙動が不明であるので、各道路パラメータは、例えば、中央値に相当する値を初期値として設定する。例えば、走行可能領域内の車両10の横変位量に対応する道路パラメータには車線中央を設定する。道路曲率に対応する道路パラメータには直線を設定する。車線にするヨー角に対応する道路パラメータには零度を設定する。車線に対するピッチ角度に対応する道路パラメータには停止状態の度分を設定する。車線幅に対応する道路パラメータには一般的な道路の車線幅を設定する。
【0025】
式1の詳細な説明については以下で与えられる。車両に固定された実座標系X(車両の左右方向)、Y(車両の上下方向)、Z(車両の前後方向)上の任意の点を画面座標系x、yに投影すると、下記の式2のように、
【数2】
【0026】
となる。ただし、fはレンズパラメータである。このレンズパラメータはレンズの焦点距離に対応した係数である。ここで、道路曲率ρがあまり大きくなく、かつ道路面は平面であるという仮定をおく。これにより、Z[m]前方における車両中心線(カメラ中心線)に対する道路白線の座標は、横方向において下記の式4となり、上下方向において下記の式5となる。ただし、この仮定はモデルの簡略化のために設定したものであり、モデルの次数を大きくすればより一般的な条件でも成立するようになる。
【数3】
【0027】
上記の式2,式3よりX、Y、Zを消去することにより、下記の式4が得られる。
【数4】
【0028】
各変数の中で最も変動の小さいカメラ1の高さを一定として下記の式5を用いて道路パラメータを正規化することにより上記式1を得る。
【数5】
【0029】
次いで、ステップS2において、白線認識部21は、
図6に示すように、道路白線101L,101Rの候補点を検出するための小領域としての白線候補点検出領域102L,102Rの初期設定を行う。初期状態においては、道路パラメータに初期値を設定した白線モデルと、実際の前方画像100上の道路白線101L,101Rとの間には大きな開きがあると予想される。したがって、白線候補点検出領域102L,102Rはできる限り大きな領域を設定することが望ましい。
図6に示す例では、左右の道路白線101L,101Rに5個ずつ計10個の白線候補点検出領域102L,102Rを設定する。なお、前回の処理までに道路白線101L,101Rが既に検出されている場合には、実際の道路白線と白線モデルとの差は小さいと考えられる。この場合には、
図7に示すように、なるべく小さい白線候補点検出領域102L,102Rを設定する方が、白線以外のものを誤検出する可能性が低く、しかも処理速度を向上させることができる。
【0030】
次いで、ステップS3において、白線認識部21は、カメラ1により撮像された画像データを入力する。
次いで、ステップS4において、白線認識部21は、ステップS3でカメラ1から入力した画像データの前方画像100上に、白線候補点検出領域102L,102Rを設定する。このとき、ステップS2で算出した白線候補点検出領域102L,102RとステップS1又は後述のステップS9で補正した道路パラメータによる白線モデルとに基づいて、
図8に示すように、前回の処理で求めた白線モデルが領域の中心となるように新たな白線候補点検出領域102L,102Rを設定する。
図8に示す例では、左右の白線に5個ずつ計10個の白線候補点検出領域102L,102Rを設定する。なお、過去の白線モデルの変化の様子から、白線モデルの変化方向にオフセットした位置に白線候補点検出領域102L,102Rを設定してもよい。
【0031】
次いで、ステップS5において、白線認識部21は、白線候補点検出領域102L,102Rにおいて前方画像100のエッジから白線候補点の検出を行う。
【0032】
次いで、ステップS6において、白線認識部21は、全ての白線候補点検出領域102L,102Rから検出した白線候補点の点数が所定値以上か否かを判定する。白線候補点が所定値より少なければ、白線候補点検出領域102L,102R内に道路白線101L,101Rが含まれていなかったと判断し、ステップS2に処理を戻す。一方、白線候補点が所定値以上検出された場合にはステップS7に処理を進める。
【0033】
ステップS7において、白線認識部21は、
図9に示すように、今回に検出した白線候補点103と前回の処理で求めた白線モデル上の点101とのずれ量を各点毎に算出する。
【0034】
次いで、ステップS8において、白線認識部21は、ステップS7にて求めたずれ量に基づいて道路パラメータの変動量△a〜△eを算出する。この変動量は、例えば、特開平8−5388号公報に示されるような公知の最小二乗法により算出される。
【0035】
次いでステップS9において、白線認識部21は、ステップS8にて算出した道路パラメータの変動量△a〜△eにより道路パラメータa〜eを補正する。例えば、上記の式1に示す白線モデルの場合には、式5により道路パラメータa〜eの補正を行う。
【0036】
そして、補正した道路パラメータa〜eを、新たな白線モデルの道路パラメータとして所定の記憶領域に記憶すると共に、下記の式6を用いて道路パラメータa〜eを実際の物理量に変換した値も記憶する。そして、ステップS3へ戻り、上記処理を繰り返し行う。
【数6】
【0037】
以上のように、白線認識部21は、カメラ1で撮像した前方画像100から検出された白線モデルの道路パラメータa〜eに基づいて、車両10と道路白線101L,101Rとの相対的な位置関係を検出する。
【0038】
[影エッジの演算処理]
つぎに、上述した車両走行支援装置において、影エッジ検出部22による影エッジの演算処理について、
図10を参照して説明する。
【0039】
先ずステップS11において、影エッジ検出部22は、カメラ1により撮影された画像データを取り込む。
【0040】
次のステップS12において、影エッジ検出部22は、白線認識部21により算出された道路パラメータを入力する。また、影エッジ検出部22は、走行制御部4により算出される前方注視点距離Ls(
図11を参照)を入力する。なお、前方注視点距離Lsの算出方法については後述する。なお、前方注視点距離を使用しない場合には、ステップS12において道路パラメータのみを入力すればよい。
【0041】
次のステップS13において、影エッジ検出部22は、道路パラメータに基づいて道路中央ライン201から所定の幅tの位置を表す下記の式7を算出し、影エッジ探索範囲202を設定する。
図11及び
図12に示すように、影エッジ探索範囲202は、2つの線の内側の車線と平行な領域となる。影エッジ探索範囲202は、目標横位置としての道路中央ライン201を中心として、設定されている。
【数7】
【0042】
次のステップS14において、影エッジ検出部22は、ステップS13にて設定した影エッジ探索範囲202内における影301により生じている縦方向の車両進行方向に伸びる画像エッジ(影エッジ302)を検出する。この縦方向は、前方画像100の縦方向であって、車両10の進行方向に相当する。影エッジ検出部22は、検出した影エッジ302に対して、クラスタリング処理を行う。これにより、影エッジ検出部22は、連結している進行方向の影エッジ302を特定する。また、影エッジ検出部22は、複数個の影が存在する場合には、それぞれの影エッジ302の区別をする。
【0043】
次のステップS25において、影エッジ検出部22は、ステップS14にて影エッジ302が検出された場合に、
図11に示すように、各々の影エッジ302の横位置yss及び進行方向長さxssを算出する。ここで、影エッジ302の横位置yssは、前方注視点距離Lsにおける道路中央ライン201と影エッジ302との横方向距離を表す。影エッジ302の長さxssは、前方注視点距離Lsから先の影エッジ302の長さを表す。
【0044】
このような影エッジの演算処理は、道路中央ライン201から幅方向に影エッジ探索範囲202を絞って影エッジ302を検出し、影エッジ302の長さを算出する。これにより、道路中央ライン201と影エッジ302との傾きの偏差を間接的に評価する。
【0045】
なお、影エッジ検出部22は、道路中央ライン201と影エッジ302との傾きの偏差を直接的に算出してもよい。
【0046】
[走行位置設定部41による走行位置の設定処理]
つぎに、上述した車両走行支援装置において、走行位置設定部41による走行位置の設定処理について
図13を参照して説明する。
【0047】
先ずステップS21において、走行位置設定部41は、画像認識部2により算出された道路パラメータと、影エッジ検出部22により算出された影エッジ302の長さxss、影エッジ302の横位置yssを入力する。
【0048】
次のステップS22において、走行位置設定部41は、前回の影エッジの演算処理にて検出された影エッジ302に基づいて、車両10の目標横位置を道路中央ライン201から修正していないか否かを判定する。車両10の目標横位置を修正していない場合にはステップS23に処理を進め、車両10の目標横位置を修正した場合にはステップS25に処理を進める。
【0049】
ステップS23において、走行位置設定部41は、車両10の進行方向において所定値(距離)以上の長さを有する車両進行方向に伸びる影エッジ302が検出されたか否かを判定する。所定値以上の長さの影エッジ302が存在する場合にはステップS24に処理を進め、存在しない場合にはステップS29に処理を進める。この所定値の長さ(距離)は、車両10が影エッジ302の付近を走行すると、車両10の横方向のブレによってカメラ画像に日向と日陰が繰り返して現れうる長さが設定される。すなわち、ほぼ影エッジ302に沿って車両10が走行することにより、画像認識部2による画像認識(例えば白線認識)にハンチングが起こるような影エッジ302の長さが設定されている。
【0050】
ステップS24において、走行位置設定部41は、所定値以上の長さの影エッジ302から道路中央ライン201により近い方に所定距離だけ離間した横位置を、目標横位置に設定する。具体的には、
図11及び
図12に示す場面において、走行位置設定部41は、影エッジ302が道路中央ライン201よりも車両進行方向の右側に存在するので、影エッジ302から道路中央ライン201側の左方向に所定距離だけ離間した位置を、目標横位置に設定する。このように、走行位置設定部41は、所定値以上の長さの影エッジ302が存在する場合には、当該影エッジ302から離れた領域を走行するよう目標横位置を修正する。
【0051】
なお、所定値以上の長さの影エッジ302が横方向に並んで複数検出された場合、走行位置設定部41は、両方の影エッジ302から所定距離だけ横方向に離間した位置に目標横位置を設定する。目標横位置の設定可能な横位置の範囲は、走行路の幅及び車両10の幅に基づいて算出し、白線から一定のマージンを確保して走行可能な範囲に収めることが望ましい。また、車両10の急激な挙動を抑制するため、目標横位置を変更する所用時間又は車両10が進む距離に応じて徐々に目標横位置を移動させるよう、目標横位置を変更することが望ましい。
【0052】
ステップS29において、走行位置設定部41は、所定値以上の長さの影エッジ302がないので、道路中央ライン201を目標横位置に設定する。
【0053】
ステップS22にて前回に目標横位置を修正した場合のステップS25において、走行位置設定部41は、車両10の前方に影エッジ302が存在し続けているために影エッジ302が継続して検出されているか否かを判定する。影エッジ302が存在し続けている場合にはステップS26に処理を進める。影エッジ302が存在し続けていない場合、ステップS29において、目標横位置を道路中央ライン201に設定する。
【0054】
ステップS26において、走行位置設定部41は、前回の目標横位置と影エッジ302の横位置yssとの離間距離を算出し、当該離間距離が所定値以上であるか否かを判定する。離間距離が所定値以上である場合には、ステップS27に処理を進める。一方、離間距離が所定値以上ではない場合には、ステップS28に処理を進める。
【0055】
ステップS27において、走行位置設定部41は、前回の目標横位置を保持する。これにより、影エッジ302があまり変化していない場合には頻繁に車両10の目標横位置が修正されることを抑制する。
【0056】
ステップS28において、走行位置設定部41は、目標横位置を、影エッジ302から所定値だけ離間した横位置に修正する。これにより、一度目標横位置を修正した場合には、細かく横位置を修正せずに、影エッジ302との距離を一定間隔以上保っている間は、設定した横位置を保持する。一方、影エッジ302と目標横位置との間隔が一定以上に狭まった時のみ、目標横位置の修正を加える。これにより、不要な細かな軌道修正の繰り返しを抑制する。
【0057】
なお、上述したステップS23においては、影エッジ302と目標横位置との傾きの差を算出してもよい。走行位置設定部41は、傾きの偏差が少ない場合にはステップS24に処理を進めて、影エッジ302から離れるよう目標横位置を設定する。一方、傾きの偏差が大きい場合には、ステップS29にて、道路中央ライン201を目標横位置に設定する。
【0058】
また、ステップS24において、走行位置設定部41は、進行方向が同じ他車線に車線変更するよう目標横位置を修正してもよい。車線変更を行うようにする場合、車両走行支援装置は、影エッジ探索範囲202を複数の車線に亘って設定する必要がある。
【0059】
[操舵制御部42による操舵制御処理]
つぎに、上述した車両走行支援装置において、操舵制御部42による操舵制御処理について、
図14を参照して説明する。
【0060】
先ずステップS31において、操舵制御部42は、センサ部3から各種のセンサ信号を取得する。具体的には、操舵制御部42は、車速センサ、操舵角センサ、ステアリングアクチュエータ5の電流センサの信号を取得する。
【0061】
次のステップS32において、操舵制御部42は、ステップS31にて取得した車速に応じた前方注視点距離を算出する。操舵制御部42は、車速が高いほど、前方注視点距離が車両10よりも遠くなるよう算出を行う。なお、操舵制御部42は、画像認識部2で算出される道路曲率を用いて前方注視点距離を算出してもよい。
【0062】
次のステップS33において、操舵制御部42は、上述した処理により演算された目標走行位置を走行位置設定部41から入力する。
【0063】
次のステップS34において、操舵制御部42は、前方注視点距離で道路中央ライン201から目標横位置だけ離れた目標走行位置と車両10の横位置とを一定曲率で結ぶ目標曲線を算出する。
【0064】
次のステップS35において、操舵制御部42は、ステップS34にて算出された目標曲線に応じた操舵制御量を算出する。
【0065】
次のステップS36において、操舵制御部42は、ステップS35にて算出された操舵制御量に基づいてステアリングアクチュエータ5を駆動する。
【0066】
このように操舵制御部42によって操舵制御処理を行うことによって、車両走行支援装置は、車両10の横位置を目標走行位置となるよう制御できる。具体的には、
図15に示すように、道路中央ライン201よりも左側を走行するような軌跡400に沿って車両10の横位置を目標走行位置となるよう制御できる。これにより、車両走行支援装置は、走行可能領域202のうち車両進行方向に伸びる影エッジ302から離れた領域を走行するよう車両10の走行を制御できる。
【0067】
[実施形態の効果]
以上説明したように、車両進行方向に伸びる影により生ずる影エッジ302の長さが所定値よりも長い場合に、当該影エッジ302から離れた領域を走行するように車両10の走行を制御する。これにより、車両10が走行しているときに影エッジ302の境界付近を避けることができ、走行環境の不認識を抑制することができる。すなわち、影の境界付近を避けて走行することにより、走行位置がゆらいだり影の境界位置が微妙に変動したりする場合にも、光環境を一定に保つことができ、不認識状態を起こさずに高精度な認識状態を持続することができる。また、影エッジ302の長さが所定距離以上である場合のみ目標横位置を修正するので、細かな軌道修正を抑制できる。
【0068】
また、この車両走行支援装置は、影エッジ302と目標横位置との傾きの差を算出し、傾きの差に応じて目標横位置を修正するので、影エッジ302が目標経路に対して平行に伸びているか否かを判定し、平行の場合のみ目標横位置を変更することができる。すなわち、影エッジ302と走行経路とが接近するのが一時的で、影エッジ302付近を長い時間に亘り走行する恐れがない場合には、目標横位置を変更しないようにすることができる。これにより、車両10の挙動の発生を抑制し、滑らかな走行が可能となる。
【0069】
更に、この車両走行支援装置によれば、影エッジ302から横方向に所定距離だけ離間し、道路中央ライン201に近い位置に目標横位置を修正するので、影エッジ302から横方向に所定距離だけ離間した位置を通る2つの経路のうち、道路中央ライン201に近い方を通る目標横位置を選択することができる。したがって、道路中央ライン201から車両10が離れることを抑制できる。
【0070】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【0071】
すなわち、上述した車両走行支援装置は、白線を検出して当該白線内を走行する車両10について説明したが、これに限られないことは勿論である。