以下、図面を参照しながら本発明の実施形態に係る運転支援装置(以下、「本支援装置」とも称呼される。)について説明する。本支援装置は、図1に示される車両10に適用される。加えて、本支援装置のブロック図が図2に示される。本支援装置は、それぞれが電子制御ユニット(ECU:Electronic Control Unit)である「運転支援ECU20、エンジンECU31及びブレーキECU32」を含んでいる。
運転支援ECU20は、CPU、ROM及びRAMを備えている。CPUは、所定のプログラム(ルーチン)を随時実行することによってデータの読み込み、数値演算、及び、演算結果の出力等を行う。ROMは、CPUが実行するプログラム及びルックアップテーブル(マップ)等を記憶している。RAMは、データを一時的に記憶する。
エンジンECU31及びブレーキECU32のそれぞれは、運転支援ECU20と同様に、CPU、ROM及びRAMを備えている。これらのECUは、CAN(Controller Area Network)34を介して互いにデータ通信可能(データ交換可能)となっている。加えて、これらのECUは、他のECUに接続されたセンサの出力値をその「他のECU」からCAN34を介して受信することができる。
運転支援ECU20は、ミリ波レーダ41、前方カメラ42、車速センサ43、加速度センサ44、操舵角センサ45、入出力装置46及びスピーカー47と接続されている。
ミリ波レーダ41は、車両10の前方に対してミリ波(周波数が30G~300GHzに含まれる電磁波)を送信し、その反射波を受信する。ミリ波レーダ41は、送信波と反射波とに基づいて、車両10の前方にある物標の車両10に対する位置(相対位置)、車両10に対する速度(相対速度)、物標の左端の車両10に対する角度、及び、物標の右端の車両10に対する角度を物標情報として取得し、取得された物標情報を運転支援ECU20へ出力する。ミリ波レーダ41の水平方向の探索範囲は、図1に示された直線MLと直線MRとがなす角度(180°未満の角度)によって表される範囲に等しい。
前方カメラ42は、車両10の車室内上部のルームミラー(不図示)近傍の位置に配設されている。前方カメラ42は、車両10の前方領域を撮影した画像(以下、「前方画像」とも称呼される。)を取得し、前方画像を表す信号を運転支援ECU20へ出力する。前方カメラ42の水平方向の画角(視野)は、図1に示された直線OLと直線ORとがなす角度(180°未満の角度)によって表される範囲に等しい。
車速センサ43は、車両10の車速Vsを検出し、車速Vsを表す信号を運転支援ECU20へ出力する。
加速度センサ44は、車両10の前後方向の加速度As(車速Vsの単位時間あたりの変化量)を検出する。
操舵角センサ45は、車両10の操舵ハンドル51(図1を参照)に連結されたステアリングシャフト(不図示)に配設されている。操舵角センサ45は、車両10の操舵ハンドル51の回転角度である操舵角度θsを表す信号を出力する。操舵角度θsは、操舵ハンドル51が中立位置にあるときに「0」となる。操舵角度θsは、操舵ハンドル51が中立位置から右回転方向に操作されたとき正の値になり、操舵ハンドル51が中立位置から左回転方向に操作されたとき負の値になる。
入出力装置46は、車両10のダッシュボードに配設されている。入出力装置46は、表示装置(液晶ディスプレイ)を備えている。入出力装置46の表示装置に表示される文字及び図形等は、運転支援ECU20によって制御される。入出力装置46の表示装置は、タッチパネルとしても作動する。従って、運転者は表示装置に触れることによって運転支援ECU20に対して指示を送ることができる。
スピーカー47は、車両10の左右のフロントドア(不図示)のそれぞれの内側(車室内側)に配設されている。スピーカー47は、運転支援ECU20の指示に応じて警告音及び音声メッセージ等の発音を行うことができる。
エンジンECU31は、複数のエンジンセンサ61と接続され、これらのセンサの検出信号を受信するようになっている。エンジンセンサ61は、車両10の駆動源であるエンジン62の運転状態量を検出するセンサである。エンジンセンサ61は、アクセルペダル操作量センサ、スロットル弁開度センサ、機関回転速度センサ、及び、吸入空気量センサ等を含んでいる。
更に、エンジンECU31は、スロットル弁アクチュエータ及び燃料噴射弁等のエンジンアクチュエータ63、及び、トランスミッション64と接続されている。エンジンECU31は、エンジンアクチュエータ63及びトランスミッション64を制御することによってエンジン62が発生する駆動トルクTq及びトランスミッション64のギア比Rgを変更し、以て、車両10の駆動力を調整して加速度Asを制御するようになっている。更に、運転支援ECU20は、エンジンECU31に指示を送ることによってエンジンアクチュエータ63及びトランスミッション64を駆動し、それにより車両10の駆動力を変更することができる。
ブレーキECU32は、複数のブレーキセンサ65と接続され、これらのセンサの検出信号を受信するようになっている。ブレーキセンサ65は、図示しない「車両10に搭載された制動装置(油圧式摩擦制動装置)」を制御する際に使用されるパラメータを検出するセンサである。ブレーキセンサ65は、ブレーキペダル(不図示)の操作量センサ、及び、各車輪の回転速度を検出する車輪速度センサ等を含んでいる。
更に、ブレーキECU32は、ブレーキアクチュエータ66と接続されている。ブレーキアクチュエータ66は油圧制御アクチュエータである。ブレーキアクチュエータ66は、ブレーキペダルの踏力によって作動油を加圧するマスタシリンダと、各車輪に設けられる周知のホイールシリンダを含む摩擦ブレーキ装置と、の間の油圧回路(何れも、不図示)に配設される。ブレーキアクチュエータ66はホイールシリンダに供給する油圧を調整する。ブレーキECU32は、ブレーキアクチュエータ66を駆動することにより各車輪に制動力(摩擦制動力)Bfを発生させ、車両10の加速度As(この場合、負の加速度、即ち、減速度)を制御するようになっている。更に、運転支援ECU20は、ブレーキECU32に指示を送ることによってブレーキアクチュエータ66を駆動し、それにより制動力Bfを変更することができる。
(衝突回避処理)
次に、車両10が障害物と衝突する可能性が高いときに運転支援ECU20が実行する衝突回避処理について説明する。運転者は、入出力装置46に対する操作によって、衝突回避処理の実行を許容するオン状態と当該処理の実行を禁止するオフ状態との間で衝突回避処理の要求状態を切り替えることができる。
先ず、運転支援ECU20による障害物の検出方法について説明する。運転支援ECU20は、ミリ波レーダ41から受信した物標情報と、前方カメラ42から受信した前方画像と、に基づいて車両10の前方領域にある物標(n)の横距離(物標の左右方向中心のy座標値)Dy(n)、縦距離(車間距離)Dx(n)、相対横速度Vy(n)、相対縦速度Vx(n)、及び、左右幅Wd(n)を取得する。相対横速度Vy(n)は横距離Dy(n)の単位時間あたりの変化量であり、相対縦速度Vx(n)は縦距離Dx(n)の単位時間あたりの変化量である。
なお、図1に示されるように、車両10の前後方向をx軸と規定し、車両10の左右方向をy軸と規定する。車両10の前方端部であって左右方向の中心部が、x=0且つy=0となる原点である。x座標は、車両10の前方向において正の値となり、車両10の後方向において負の値となる。y座標は、車両10の右方向において正の値となり、車両10の左方向において負の値となる。加えて、(n)は、物標のそれぞれに付される識別子である。本実施形態において、「n」は自然数である。
運転支援ECU20は、物標(n)の移動軌跡に基づいて、車速Vs及び操舵角度θs並びに物標(n)の移動速度及び移動方向等が不変であると仮定した場合の、その物標(n)の縦距離Dx(n)が「0」となるときの横距離Dy(n)である接近横距離Dyr(n)を予測する。接近横距離Dyr(n)に関して下式(1)の関係が成立していれば、運転支援ECU20は、物標(n)が車両10と衝突する可能性がある障害物(a)であると判定する。(a)は、障害物であると判定された物標の識別子である(従って、「a」は自然数)。障害物であると判定された物標は、便宜上、「障害物(a)」と表記される。
|Dyr(n)|<Wo/2+Wd(n)/2+Lm ……(1)
ここで、Woは車両10の車幅(左右方向の長さ)であり、Lmは所定の長さ(衝突判定マージン)である。
より詳細に説明すると、上記式(1)に表される関係は、物標(n)に関して以下の条件(C1)及び条件(C2)が共に成立するときに成立する関係である。
条件(C1):物標(n)の縦距離Dx(n)が「0」となったときの物標(n)の左端(y座標がDyr(n)-Wd/2で表される位置)が、車両10の右端から右方に衝突判定マージンLmだけ離れた位置(y座標がWo/2+Lmで表される位置)よりも左側にある(即ち、Dyr(n)-Wd/2<Wo/2+Lm)。
条件(C2):物標(n)の縦距離Dx(n)が「0」となったときの物標(n)の右端(y座標がDyr(n)+Wd/2で表される位置)が、車両10の左端から左方に衝突判定マージンLmだけ離れた位置(y座標が-Wo/2-Lmで表される位置)よりも右側にある(即ち、-Wo/2-Lm<Dyr(n)+Wd/2)。
図3は、車両10に対して車両71が障害物(a)である場合の平面図である。車両71の識別子は、便宜上(1)とする。図3の例において、車両10と車両71との縦距離Dx(1)はDx1である。加えて、車両10と車両71との横距離Dy(1)は負の値であって、横距離Dy(1)の大きさはDy1である。実線矢印L11は、車両10の前端中央部の移動軌跡を表している。
図3に示される例において、車両10は前進(直進)しており、車両71は停止している。そのため、相対縦速度Vx(1)は負の値であって相対縦速度Vx(1)の大きさは車速Vsに等しく、相対横速度Vy(1)は「0」である。
長さDy1は車両10の車幅Woの半分よりも小さい(即ち、|Dy(1)|<Wo/2)。加えて、車両10が直進し且つ車両71が停止しているので、接近横距離Dyr(1)はDy1に等しい(即ち、横距離Dy(1)の大きさは長さDy1のまま変化しない)。従って、式(1)の関係が成立する。そのため、運転支援ECU20は、車両71が障害物であると判定する。
障害物が特定されると、運転支援ECU20は、車両10が障害物(a)と衝突するまでの予想時間である衝突時間TTCを障害物(a)の縦距離Dx(a)及び相対縦速度Vx(a)に基づいて算出する。具体的には、衝突時間TTCは、縦距離Dx(a)を相対縦速度Vx(a)により除して得られる値の符号を反転することによって算出される(即ち、TTC=-Dx(a)/Vx(a))。
図3に示される例において、衝突時間TTCは、長さDx1を車速Vsにより除して得られる値に等しい(即ち、TTC=Dx1/Vs)。
衝突時間TTCが所定の第1時間閾値Tth1よりも小さいと(具体的には、衝突時間TTCが正の値であり且つ衝突時間TTCの大きさが第1時間閾値Tth1よりも小さいと)、運転支援ECU20は、衝突時間TTCに係る障害物を衝突障害物(即ち、車両10と衝突する可能性の高い障害物)であると判定する。第1時間閾値Tth1は、衝突時間TTCが第1時間閾値Tth1よりも小さいと、障害物に気付いた運転者が通常の制動操作を行っても障害物の手前の位置に車両10を停止させることが困難となるような時間に設定されている。
衝突障害物が存在しており且つ後述される処理実行条件が成立していれば、運転支援ECU20は、衝突回避処理を実行する。衝突回避処理は、車両10の運転者への警告を行う警告処理、及び、ブレーキアクチュエータ66に制動力Bfを発生させる自動制動処理を含んでいる。警告処理の実行時、運転支援ECU20は、入出力装置46に「衝突障害物が存在していることを表す記号」を表示させ且つスピーカー47に警告音を再生させる。
自動制動処理について説明する。自動制動処理の実行時、運転支援ECU20は、目標減速度Dctgtを決定する。より具体的に述べると、車両10が走行距離Ddだけ走行したときに停止させるために必要な加速度Asである必要減速度Dcreqは、下式(2)により算出される。
Dcreq=-(1/2)・Vs2/Dd ……(2)
運転支援ECU20は、障害物(a)の縦距離Dx(a)と、所定の長さ(停止位置マージン)Lvと、の差を走行距離Ddとして式(2)に代入することによって必要減速度Dcreqを算出する(即ち、Dd=Dx(a)-Lv)。
必要減速度Dcreqの大きさ|Dcreq|が車両10の減速度の最大値である最大減速度Dcmaxの大きさ|Dcmax|よりも大きければ、運転支援ECU20は、目標減速度Dctgtの値を最大減速度Dcmaxに設定する。一方、必要減速度Dcreqの大きさ|Dcreq|が最大減速度Dcmaxの大きさ|Dcmax|以下であれば、運転支援ECU20は、目標減速度Dctgtの値を必要減速度Dcreqに設定する。最大減速度Dcmaxは、車速Vsを減少させるための制動力Bfの発生によって車両10の車輪(不図示)と路面との間にスリップが発生しない最大の減速度に設定されている。
運転支援ECU20は、実際の加速度Asが目標減速度Dctgtと等しくなるようにエンジンECU31及びブレーキECU32に対して要求信号を送信する。具体的には、運転支援ECU20は、ブレーキECU32に対して実際の加速度Asが目標減速度Dctgtと等しくなるような制動力Bfを発生させることを要求する要求信号を送信する。加えて、運転支援ECU20は、エンジンECU31に対して駆動トルクTqを「0」にすることを要求する要求信号を送信する。この結果、車速Vsが減少し、やがて「0」となる。
(衝突回避処理における処理実行条件)
次に、上記処理実行条件について説明する。衝突障害物との衝突を車両10の運転者が操舵ハンドル51を操作して回避しようとする場合がある。係る場合、運転者による衝突回避操作を優先させるため、衝突回避処理は実行されるべきではない。そこで、運転支援ECU20は、運転者が操舵ハンドル51を操作して衝突障害物との衝突を回避しようとしていないときに成立する処理実行条件が成立している場合に限り衝突回避処理を実行する。
原則として、処理実行条件は、以下の条件(A1)及び条件(B1)が共に成立しているときに成立する条件である。
条件(A1):操舵角度θsが所定の正の値である第1角度θth1よりも小さい(即ち、θs<θth1)。
条件(B1):操舵角度θsが所定の正の値である第2角度θth2に「-1」を乗じた値(-θth2)よりも大きい(即ち、-θth2<θs)。
本実施形態において、第1角度θth1及び第2角度θth2は、共に50°である。操舵角度θsが第1角度θth1であるときの操舵ハンドル51の回転位置は、便宜上、「右方基準位置」とも称呼される。一方、操舵角度θsが第2角度θth2に「-1」を乗じた値であるときの操舵ハンドル51の回転位置は、便宜上、「左方基準位置」とも称呼される。
図3の例において、車両10の走行経路が破線矢印L12と一致するように、運転者が操舵ハンドル51を操作すると、操舵角度θsが「0」である状態から操舵角度θsが第1角度θth1よりも大きい状態に遷移し、その後、操舵角度θsが「0」である状態に戻る。その結果、条件(A1)が成立しない期間が発生する。この場合、運転支援ECU20は、衝突回避処理を既に開始していても、条件(A1)が成立しなくなったときに衝突回避処理を終了する。
(右折の場合)
ところで、車両10の運転者が右折するために操舵ハンドル51を操作すると、上記条件(A1)が成立する場合がある。この場合であっても、衝突障害物が検出され且つ運転者が操舵ハンドル51の操作によって衝突障害物との衝突を回避しようとしていなければ、衝突回避処理が実行されるのが適当である。
そこで、運転支援ECU20は、車両10が右折しているとき、上記条件(A1)の代わりに以下の条件(A2)が成立していれば(即ち、条件(A2)及び上記条件(B1)が共に成立していれば)、処理実行条件が成立していると判定する。
条件(A2):操舵角度θsが第1角度θth1よりも大きい所定の第3角度θth3よりも小さい(即ち、θth1<θth3、θs<θth3)。
本実施形態において、第3角度θth3は、360°である。処理実行条件として条件(A2)及び条件(B1)が採用されるとき、上記右方基準位置が、「第1角度θth1によって表される操舵ハンドル51の回転位置」から「第3角度θth3によって表される操舵ハンドル51の回転位置」に変更されたと捉えることができる。処理実行条件の必要条件として条件(A1)の代わりに条件(A2)を採用する処理は、便宜上、「右方調整処理」とも称呼される。
運転支援ECU20は、「操舵角度θsが所定の正の右方角度閾値θRthよりも大きい状態」が現時点まで所定の第2時間閾値Tth2よりも長く継続してれば、車両10が右折をしていると判定する。右方角度閾値θRthは、車両10が交差点にて右折するとき(具体的には、操舵ハンドル51が右方向に操作され且つ操舵角度θsが略一定の状態にて維持されているとき)における一般的な操舵角度θsの範囲の最小値となるように設定されている。
第2時間閾値Tth2は、図3に示される車両71のような「車両10の進行方向上の停止車両」を回避するために操舵角度θsが大きくなる一般的な期間の長さよりも長く、且つ、車両10が右左折するために操舵角度θsが大きくなる一般的な期間の長さよりも短くなるように設定されている。車両10が右折しているか否かの判定に際して参照される第2時間閾値Tth2は、便宜上、「右方継続時間」とも称呼される。
図4は、車両10が交差点にて右折している場合の平面図である。図4の実線矢印L21は、車両10の走行経路(車両10の前端中央部の移動軌跡)を表している。破線矢印L22は、運転者が意図している車両10の予定走行経路を表している。図4に示された車両72は、車両10の走行している車線の対向車線を走行している。即ち、車両72は対向車両である。
実線矢印L23は、車両72の走行経路(車両72の前端中央部の移動軌跡)を表している。破線矢印L24は、車両72の車速及び進行方向が変化しないと仮定した場合における車両72の予想走行経路を表している。図4に示された時点にて運転支援ECU20は、車両72が衝突障害物であると判定している。換言すれば、運転支援ECU20は、図4に示された時点よりも以前においては車両72が衝突障害物であると判定していなかった。
図4に示された時点において、操舵角度θsが右方角度閾値θRthよりも大きい状態が第2時間閾値Tth2よりも長く継続している。従って、運転支援ECU20は、車両10が右折していると判定している。加えて、操舵角度θsは、第1角度θth1よりも大きく、第3角度θth3よりも小さい(即ち、θth1<θs<θth3)。そのため、条件(A1)は成立していないが、条件(A2)が成立している。更に、このとき、操舵角度θsは正の値であるので、条件(B1)が成立している。従って、図4に示された時点にて運転支援ECU20は、衝突回避処理を開始する。
その後、運転者が、車両72との衝突を回避するため、破線矢印L25によって表される経路を車両10が走行するように操舵ハンドル51を操作すれば、操舵角度θsは第3角度θth3よりも大きくなる。この場合、条件(A2)が成立しなくなり、その結果、運転支援ECU20は、衝突回避処理を終了する。
或いは、運転者が、車両72との衝突を回避するため、破線矢印L26によって表される経路を車両10が走行するように操舵ハンドル51を操作すれば、操舵角度θsは第2角度θth2に「-1」を乗じた値よりも小さくなる。この場合、条件(B1)が成立しなくなり、その結果、運転支援ECU20は、衝突回避処理を終了する。
(左折の場合)
次に、車両10が左折する場合について説明する。車両10の運転者が左折するために操舵ハンドル51を操作すると、上記条件(B1)が成立する場合がある。この場合であっても、衝突障害物が検出され且つ運転者が操舵ハンドル51の操作によって衝突障害物との衝突を回避しようとしていなければ、衝突回避処理が実行されるのが適当である。
そこで、運転支援ECU20は、車両10が左折しているとき、上記条件(B1)の代わりに以下の条件(B2)が成立していれば(即ち、上記条件(A1)及び条件(B2)が共に成立していれば)、処理実行条件が成立していると判定する。
条件(B2):操舵角度θsが第2角度θth2よりも大きい所定の第4角度θth4に「-1」を乗じた値(-θth4)よりも大きい(即ち、θth2<θth4、-θth4<θs)。
本実施形態において、第4角度θth4は、360°である。処理実行条件として条件(A1)及び条件(B2)が採用されるとき、上記左方基準位置が、「第2角度θth2に「-1」を乗じた値(-θth2)によって表される操舵ハンドル51の回転位置」から「第4角度θth4に「-1」を乗じた値(-θth4)によって表される操舵ハンドル51の回転位置」に変更されたと捉えることができる。処理実行条件の必要条件として条件(B1)の代わりに条件(B2)を採用する処理は、便宜上、「左方調整処理」とも称呼される。
運転支援ECU20は、「操舵角度θsが所定の負の左方角度閾値θLthよりも大きい状態」が現時点まで第2時間閾値Tth2よりも長く継続してれば、車両10が左折をしていると判定する。左方角度閾値θLthの大きさ|θLth|は、車両10が交差点にて左折するとき(具体的には、操舵ハンドル51が左方向に操作され且つ操舵角度θsが略一定の状態にて維持されているとき)における一般的な操舵角度θsの範囲の最小値となるように設定されている。車両10が左折しているか否かの判定に際して参照される第2時間閾値Tth2は、便宜上、「左方継続時間」とも称呼される。
図5は、車両10が交差点にて左折している場合の平面図である。図5の実線矢印L31は、車両10の走行経路(車両10の前端中央部の移動軌跡)を表している。破線矢印L32は、運転者が意図している車両10の予定走行経路を表している。実線矢印L31及び破線矢印L32から理解されるように、運転者は、交差点で左折して進入する道路の中央付近を走行しようとしている。
図5に示された車両73は、車両10が進入しようとしている道路を車両10に対向する方向に走行している。実線矢印L33は、車両73の走行経路(車両73の前端中央部の移動軌跡)を表している。破線矢印L34は、車両73の車速及び進行方向が変化しないと仮定した場合における車両73の予想走行経路を表している。
図5に示された時点にて運転支援ECU20は、車両73が衝突障害物であると判定している。換言すれば、運転支援ECU20は、図5に示された時点よりも以前においては車両73が衝突障害物であると判定していなかった。
図5に示された時点において、操舵角度θsが左方角度閾値θLthよりも小さい状態が第2時間閾値Tth2よりも長く継続している。従って、運転支援ECU20は、車両10が左折していると判定している。加えて、操舵角度θsは、第2角度θth2に「-1」を乗じた値(-θth2)よりも小さく且つ第4角度θth4に「-1」を乗じた値(-θth4)よりも大きい(即ち、-θth4<θs<-θth2)。そのため、条件(B1)は成立していないが、条件(B2)が成立している。更に、このとき、操舵角度θsは負の値であるので、条件(A1)が成立している。従って、図5に示された時点にて運転支援ECU20は、衝突回避処理を開始する。
その後、運転者が、車両73との衝突を回避するため、破線矢印L35によって表される経路を車両10が走行するように操舵ハンドル51を操作すれば、操舵角度θsは第1角度θth1よりも大きくなる。この場合、条件(A1)が成立しなくなり、その結果、運転支援ECU20は、衝突回避処理を終了する。
或いは、運転者が、車両73との衝突を回避するため、破線矢印L36によって表される経路を車両10が走行するように操舵ハンドル51を操作すれば、操舵角度θsは第4角度θth4に「-1」を乗じた値よりも小さくなる。この場合、条件(B2)が成立しなくなり、その結果、運転支援ECU20は、衝突回避処理を終了する。
(具体的作動-右左折フラグ設定ルーチン)
次に、運転支援ECU20の具体的作動について説明する。運転支援ECU20のCPU(以下、単に「CPU」とも称呼される。)は、所定の時間が経過する毎に、「右左折フラグ設定ルーチン」、「衝突回避処理開始ルーチン」及び「衝突回避処理終了ルーチン」をそれぞれ実行する。
先ず、右左折フラグ設定ルーチンについて説明する。本ルーチンにおいて、右折フラグXRの値及び左折フラグXLの値がそれぞれ設定される。より具体的に述べると、右折フラグXRは、操舵角度θsが右方角度閾値θRth以下であれば「0」に設定される。一方、右折フラグXRは、操舵角度θsが右方角度閾値θRthより大きければ「1」に設定される。左折フラグXLは、操舵角度θsが左方角度閾値θLth以上であれば「0」に設定される。一方、左折フラグXLは、操舵角度θsが左方角度閾値θLthより小さければ「1」に設定される。
右折フラグXR及び左折フラグXLのそれぞれは、運転支援ECU20の起動時(即ち、車両10の図示しないイグニッション・キー・スイッチがオフ位置からオン位置へ変更されたとき)にCPUが実行するイニシャルルーチン(不図示)において「0」に設定される。
右左折フラグ設定ルーチンは、図6にフローチャートにより表される。適当なタイミングとなると、CPUは、図6のステップ600から処理を開始してステップ605に進み、操舵角度θsが右方角度閾値θRthよりも大きいか否かを判定する。
操舵角度θsが右方角度閾値θRthよりも大きければ、CPUは、ステップ605にて「Yes」と判定してステップ610に進み、右折フラグXRの値が「0」であるか否かを判定する。右折フラグXRの値が「0」であれば、CPUは、ステップ610にて「Yes」と判定してステップ615に進み、右折フラグXRの値を「1」に設定する。次いで、CPUは、ステップ620に進む。一方、右折フラグXRの値が「1」であれば、CPUは、ステップ610にて「No」と判定してステップ620に直接進む。
ステップ620にてCPUは、左折フラグXLの値が「1」であるか否かを判定する。左折フラグXLの値が「1」であれば、CPUは、ステップ620にて「Yes」と判定してステップ625に進む。ステップ625にてCPUは、左折フラグXLの値を「0」に設定する。次いで、CPUは、ステップ695に進んで本ルーチンを終了する。一方、左折フラグXLの値が「0」であれば、CPUは、ステップ620にて「No」と判定してステップ695に直接進む。
ステップ605の判定条件が成立していなければ(即ち、操舵角度θsが右方角度閾値θRth以下であれば)、CPUは、ステップ605にて「No」と判定してステップ630に進み、右折フラグXRの値が「1」であるか否かを判定する。
右折フラグXRの値が「1」であれば、CPUは、ステップ630にて「Yes」と判定してステップ635に進み、右折フラグXRの値を「0」に設定する。次いで、CPUは、ステップ640に進む。一方、右折フラグXRの値が「0」であれば、CPUは、ステップ630にて「No」と判定してステップ640に直接進む。
ステップ640にてCPUは、操舵角度θsが左方角度閾値θLthよりも小さいか否かを判定する。操舵角度θsが左方角度閾値θLthよりも小さければ、CPUは、ステップ640にて「Yes」と判定してステップ645に進み、左折フラグXLの値が「0」であるか否かを判定する。
左折フラグXLの値が「0」であれば、CPUは、ステップ645にて「Yes」と判定してステップ650に進み、左折フラグXLの値を「1」に設定する。次いで、CPUは、ステップ695に進む。一方、左折フラグXLの値が「1」であれば、CPUは、ステップ645にて「No」と判定してステップ695に直接進む。
ステップ640の判定条件が成立していなければ(即ち、操舵角度θsが左方角度閾値θLth以上であれば)、CPUは、ステップ640にて「No」と判定してステップ620に進む。
(具体的作動-衝突回避処理開始ルーチン)
次に、衝突回避処理開始ルーチンについて説明する。衝突回避処理開始ルーチンは、図7にフローチャートにより表される。適当なタイミングとなると、CPUは、図7のステップ700から処理を開始してステップ705に進み、衝突回避処理の要求状態がオン状態であるか否かを判定する。
運転者による入出力装置46に対する操作によって衝突回避処理の要求状態がオフ状態に設定されていれば、CPUは、ステップ705にて「No」と判定してステップ795に直接進み、本ルーチンを終了する。
一方、衝突回避処理の要求状態がオン状態であれば、CPUは、ステップ705にて「Yes」と判定してステップ710に進み、障害物であると判定されている物標が存在しているか否かを判定する。
障害物であると判定されている物標が存在していれば、CPUは、ステップ710にて「Yes」と判定してステップ715に進み、衝突時間TTCを算出する。次いで、CPUは、ステップ720に進み、衝突時間TTCが正の値であり且つ第1時間閾値Tth1よりも小さいか否かを判定する。即ち、CPUは、「障害物であると判定されている物標」が衝突障害物であるか否かを判定する。
衝突時間TTCが正の値であり且つ第1時間閾値Tth1よりも小さければ、CPUは、ステップ720にて「Yes」と判定してステップ725に進み、車両10が右折しているか否かを判定するための条件である右折判定条件が成立しているか否かを判定する。右折判定条件は、以下の条件(TR)が成立していれば成立する条件である。
条件(TR):右折フラグXRが「1」である状態が現時点まで第2時間閾値Tth2よりも長く継続している。即ち、現時点よりも第2時間閾値Tth2よりも前の時点にて右折フラグXRの値が「0」から「1」に変更され、且つ、右折フラグXRが「1」である状態が現時点まで継続している。
右折判定条件が成立していれば、CPUは、ステップ725にて「Yes」と判定してステップ730に進み、操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第3角度θth3よりも小さいか否かを判定する。即ち、CPUは、車両10が右折している場合における処理実行条件(この場合、上記条件(A2)及び条件(B1)が共に成立しているときに成立する条件)が成立しているか否かを判定する。
操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第3角度θth3よりも小さければ、CPUは、ステップ730にて「Yes」と判定してステップ735に進み、衝突回避フラグXcの値を「1」に設定する。
衝突回避フラグXcの値は、上記イニシャルルーチンによって「0」に設定される。衝突回避フラグXcは、衝突回避処理が実行されているとき、「0」以外の値に設定される。より具体的に述べると、車両10が右折しているときに衝突回避処理が実行されると、衝突回避フラグXcは「1」に設定される。車両10が左折しているときに衝突回避処理が実行されると、衝突回避フラグXcは「2」に設定される(後述されるステップ755を参照)。車両10が右折及び左折をしていないときに衝突回避処理が実行されると、衝突回避フラグXcは「3」に設定される(後述されるステップ765を参照)。
次いで、CPUは、ステップ740に進み、衝突回避処理を実行する。より具体的に述べると、CPUは、入出力装置46に「衝突障害物が存在していることを表す記号」を表示させると共にスピーカー47に警告音を再生させる。加えて、CPUは、上述した処理によって決定された目標減速度DctgtをブレーキECU32に対してCAN34を介して送信する。その結果、ブレーキECU32は、図示しないルーチンを実行することによって実際の加速度Asが目標減速度Dctgtと等しくなるようにブレーキアクチュエータ66を制御し、必要となる制動力Bfを発生させる。
更に、CPUは、目標駆動トルクTqtgtの値を「0」に設定し、目標駆動トルクTqtgtをエンジンECU31に対してCAN34を介して送信する。その結果、エンジンECU31は、図示しないルーチンを実行することによって実際の駆動トルクTqが目標駆動トルクTqtgtと等しくなるようにエンジンアクチュエータ63及びトランスミッション64を制御する。その後、CPUは、ステップ795に進む。
一方、ステップ725の判定条件が成立していなければ(即ち、右折判定条件が成立していなければ、具体的には、条件(TR)が成立していなければ)、CPUは、ステップ725にて「No」と判定してステップ745に進む。
ステップ745にてCPUは、車両10が左折しているか否かを判定するための条件である左折判定条件が成立しているか否かを判定する。左折判定条件は、以下の条件(TL)が成立していれば成立する条件である。
条件(TL):左折フラグXLが「1」である状態が現時点まで第2時間閾値Tth2よりも長く継続している。即ち、現時点よりも第2時間閾値Tth2よりも前の時点にて左折フラグXLの値が「0」から「1」に変更され、且つ、左折フラグXLが「1」である状態が現時点まで継続している。
左折判定条件が成立していれば、CPUは、ステップ745にて「Yes」と判定してステップ750に進み、操舵角度θsが第4角度θth4に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さいか否かを判定する。即ち、CPUは、車両10が左折している場合における処理実行条件(この場合、上記条件(A1)及び条件(B2)が共に成立しているときに成立する条件)が成立しているか否かを判定する。
操舵角度θsが第4角度θth4に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さければ、CPUは、ステップ750にて「Yes」と判定してステップ755に進み、衝突回避フラグXcの値を「2」に設定する。次いで、CPUは、ステップ740に進む。
一方、ステップ745の判定条件が成立していなければ(即ち、左折判定条件が成立していなければ、具体的には、条件(TL)が成立していなければ)、CPUは、ステップ745にて「No」と判定してステップ760に進む。
ステップ760にてCPUは、操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さいか否かを判定する。即ち、CPUは、車両10が右折も左折もしていない場合における処理実行条件(この場合、上記条件(A1)及び条件(B1)が共に成立しているときに成立する条件)が成立しているか否かを判定する。
操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さければ、CPUは、ステップ760にて「Yes」と判定してステップ765に進み、衝突回避フラグXcの値を「3」に設定する。次いで、CPUは、ステップ740に進む。
なお、ステップ730の判定条件が成立していなければ(即ち、操舵角度θsが第2角度θth2に「-1」を乗じた値以下であるか、或いは、第3角度θth3以上であれば)、CPUは、ステップ730にて「No」と判定してステップ795に直接進む。加えて、ステップ750の判定条件が成立していなければ(即ち、操舵角度θsが第4角度θth4に「-1」を乗じた値以下であるか、或いは、第1角度θth1以上であれば)、CPUは、ステップ750にて「No」と判定してステップ795に直接進む。更に、ステップ760の判定条件が成立していなければ(即ち、操舵角度θsが第2角度θth2に「-1」を乗じた値以下であるか、或いは、第1角度θth1以上であれば)、CPUは、ステップ760にて「No」と判定してステップ795に直接進む。
加えて、ステップ710の判定条件が成立していなければ(即ち、障害物であると判定されている物標が存在していなければ)、CPUは、ステップ710にて「No」と判定してステップ795に直接進む。更に、ステップ720の判定条件が成立していなければ(即ち、衝突時間TTCが第1時間閾値Tth1以上であるか、或いは、衝突時間TTCが負の値であれば)、CPUは、ステップ720にて「No」と判定してステップ795に直接進む。
(具体系作動-衝突回避処理終了ルーチン)
次に、衝突回避処理終了ルーチンについて説明する。本ルーチンにおいて、CPUは、衝突回避処理の実行中であって且つ運転者が衝突障害物との衝突を操舵ハンドル51の操作によって回避しようとしていれば(即ち、処理実行条件が成立しなくなっていれば)、衝突回避処理を終了する。加えて、CPUは、衝突回避処理の実行中であって且つ後述する衝突回避処理の終了条件が成立していれば、衝突回避処理を終了する。
衝突回避処理終了ルーチンは、図8にフローチャートにより表される。適当なタイミングとなると、CPUは、図8のステップ800から処理を開始してステップ805に進み、衝突回避フラグXcの値が「0」でないか否かを判定する。即ち、CPUは、衝突回避処理の実行中であるか否かを判定する。
衝突回避フラグXcの値が「0」であれば(即ち、衝突回避処理の実行中でなければ)、CPUは、ステップ805にて「No」と判定してステップ895に直接進み、本ルーチンを終了する。一方、衝突回避フラグXcの値が「0」でなければ、CPUは、ステップ805にて「Yes」と判定してステップ810に進み、衝突回避処理の終了条件が成立していないか否かを判定する。
衝突回避処理の終了条件は、以下の条件(E1)及び条件(E2)の少なくとも一方が成立しているとき成立する条件である。
条件(E1):車速Vsが「0」となってから現時点まで所定時間が経過している。
条件(E2):衝突障害物(即ち、車両10と衝突する可能性が高いと判定された物標)が存在しなくなっている。
衝突回避処理の終了条件が成立していれば、CPUは、ステップ810にて「No」と判定してステップ840に進み、衝突回避処理を終了する。より具体的に述べると、CPUは、ブレーキECU32に対して「既に送信している目標減速度Dctgt」のキャンセル要求をCAN34を介して送信する。この場合、ブレーキECU32は、図示しないルーチンを実行することによってブレーキセンサ65から受信する検出信号に基づいてブレーキアクチュエータ66が発生する制動力Bfを決定する処理を開始する。
加えて、CPUは、エンジンECU31に対して「既に送信している目標駆動トルクTqtgt」のキャンセル要求をCAN34を介して送信する。この場合、エンジンECU31は、図示しないルーチンを実行することによってエンジンセンサ61から受信する検出信号に基づいてエンジン62が発生する駆動トルクTq及びトランスミッション64のギア比Rgを決定する処理を開始する。
次いで、CPUは、ステップ845に進み、衝突回避フラグXcの値を「0」に設定する。更に、CPUは、ステップ895に進む。
一方、ステップ810の判定条件が成立していれば(即ち、衝突回避処理の終了条件が成立していなければ)、CPUは、ステップ810にて「Yes」と判定してステップ815に進み、衝突回避フラグXcの値が「1」であるか否かを判定する。
衝突回避フラグXcの値が「1」であれば、CPUは、ステップ815にて「Yes」と判定してステップ820に進み、操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第3角度θth3よりも小さいか否かを判定する。即ち、CPUは、車両10が右折している場合における処理実行条件(この場合、上記条件(A2)及び条件(B1)が共に成立しているときに成立する条件)が成立しているか否かを判定する。
操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第3角度θth3よりも小さければ、CPUは、ステップ820にて「Yes」と判定してステップ895に直接進む。従って、この場合、衝突回避処理が継続される。
一方、衝突回避フラグXcの値が「1」でなければ、CPUは、ステップ815にて「No」と判定してステップ825に進み、衝突回避フラグXcの値が「2」であるか否かを判定する。
衝突回避フラグXcの値が「2」であれば、CPUは、ステップ825にて「Yes」と判定してステップ830に進み、操舵角度θsが第4角度θth4に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さいか否かを判定する。即ち、CPUは、車両10が左折している場合における処理実行条件(この場合、上記条件(A1)及び条件(B2)が共に成立しているときに成立する条件)が成立しているか否かを判定する。
操舵角度θsが第4角度θth4に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さければ、CPUは、ステップ830にて「Yes」と判定してステップ895に直接進む。従って、この場合、衝突回避処理が継続される。
一方、衝突回避フラグXcの値が「2」でなければ、CPUは、ステップ825にて「No」と判定してステップ835に進み、操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さいか否かを判定する。即ち、CPUは、車両10が右折も左折もしていない場合における処理実行条件(この場合、上記条件(A1)及び条件(B1)が共に成立しているときに成立する条件)が成立しているか否かを判定する。
操舵角度θsが第2角度θth2に「-1」を乗じた値よりも大きく且つ第1角度θth1よりも小さければ、CPUは、ステップ835にて「Yes」と判定してステップ895に直接進む。従って、この場合、衝突回避処理が継続される。
ステップ820の判定条件が成立していなければ(即ち、操舵角度θsが第2角度θth2に「-1」を乗じた値以下であるか、或いは、第3角度θth3以上であれば)、CPUは、ステップ820にて「No」と判定してステップ840に進む。加えて、ステップ830の判定条件が成立していなければ(即ち、操舵角度θsが第4角度θth4に「-1」を乗じた値以下であるか、或いは、第1角度θth1以上であれば)、CPUは、ステップ830にて「No」と判定してステップ840に進む。
更に、ステップ835の判定条件が成立していなければ(即ち、操舵角度θsが第2角度θth2に「-1」を乗じた値以下であるか、或いは、第1角度θth1以上であれば)、CPUは、ステップ835にて「No」と判定してステップ840に進む。これらの場合(即ち、ステップ820、ステップ830及びステップ835の何れかにて「No」と判定される場合)、CPUは、運転者が操舵ハンドル51の操作によって衝突障害物との衝突を回避しようとしていると判定し、衝突回避処理を終了する。
以上、説明したように、本支援装置は、衝突障害物が検出されているとき、処理実行条件が成立していなければ、車両10の運転者が操舵ハンドル51の操作によって衝突障害物との衝突を回避しようとしていると判定し、衝突回避処理を実行しない。加えて、本支援装置は、車両10の運転状況(具体的には、右折しているとき、左折しているとき、及び、右折も左折もしていないとき、の何れか)に応じて処理実行条件を変更する。そのため、本支援装置によれば、車両10が右折又は左折しているときであっても、車両10が障害物と衝突する可能性が高いときに衝突回避処理を実行するか否かの判定を運転者によるハンドル操作に基づいて適切に行うことができる。加えて、本支援装置によれば、条件(TR)及び条件(TL)に基づいて車両10が右折又は左折しているか否かを精度良く判定することができる。
以上、本発明に係る運転支援装置の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。例えば、本実施形態に係る車両10は、物標情報を取得するため、ミリ波レーダ41及び前方カメラ42を備えていた。しかし、ミリ波レーダ41及び前方カメラ42の一方は割愛されても良い。更に、車両10は、物標情報を取得するため、ミリ波レーダ41及び前方カメラ42に代わり、或いは、ミリ波レーダ41及び前方カメラ42に加えて、超音波ソナー及び/又はレーザーレーダを備えていても良い。
加えて、本実施形態に係る運転支援ECU20は、右折判定条件として条件(TR)を採用していた。同様に、運転支援ECU20は、左折判定条件として条件(TL)を採用していた。しかし、右折判定条件及び左折判定条件の何れか一方又は両方は、本実施形態と異なっていても良い。例えば、車両10がヨーレートYRを検出するヨーレートセンサを備え、ヨーレートYRが車両10の右方向の回転を表し且つヨーレートYRの大きさが所定の閾値よりも大きくなれば、運転支援ECU20は、右折判定条件が成立していると判定しても良い。同様に、ヨーレートYRが車両10の左方向の回転を表し且つヨーレートYRの大きさが所定の閾値よりも大きくなれば、運転支援ECU20は、左折判定条件が成立していると判定しても良い。
或いは、ヨーレートYRが車両10の右方向の回転を表し且つヨーレートYRの大きさが所定の閾値よりも大きい期間が所定の閾値よりも長く継続すれば、運転支援ECU20は、右折判定条件が成立していると判定しても良い。同様に、ヨーレートYRが車両10の左方向の回転を表し且つヨーレートYRの大きさが所定の閾値よりも大きい期間が所定の閾値よりも長く継続すれば、運転支援ECU20は、左折判定条件が成立していると判定しても良い。
或いは、運転支援ECU20は、操舵角度θsが右方角度閾値θRthより大きければ、右折判定条件が成立していると判定しても良い。加えて、操舵角度θsが左方角度閾値θLthより小さければ、左折判定条件が成立していると判定しても良い。
更に、運転支援ECU20は、車両10の現在位置と地図情報とに基づいて車両10が右折又は左折をしているか否かを判定しても良い。そのため、例えば、車両10は、衛星測位システム(例えば、GPS:Global Positioning System)に係る人工衛星からの信号を受信して車両10の現在位置を取得する衛星測位部と、種々の交差点及び交差点のそれぞれに流入する道路の情報(地図情報)を含む地図データベースと、を備えていても良い。具体的には、運転支援ECU20は、車両10が交差点内にあり且つ車両10がその交差点で右折して流入する道路に向かっていれば、右折判定条件が成立していると判定しても良い。同様に、運転支援ECU20は、車両10が交差点内にあり且つ車両10がその交差点で左折して流入する道路に向かっていれば、左折判定条件が成立していると判定しても良い。
更に、車両10が備えるウィンカーレバーが右折を表す方向に操作されていれば、運転支援ECU20は、右折判定条件が成立していると判定しても良い。同様に、ウィンカーレバーが左折を表す方向に操作されていれば、運転支援ECU20は、左折判定条件が成立していると判定しても良い。
加えて、本実施形態における運転支援ECU20は、車両10が右折しているとき、及び、車両10が左折しているとき、処理実行条件を変更していた。しかし、運転支援ECU20は、車両10が右折しているときに処理実行条件を変更する一方、車両10が左折しているときには処理実行条件を変更しなくても良い。同様に、運転支援ECU20は、車両10が左折しているときに処理実行条件を変更する一方、車両10が右折しているときには処理実行条件を変更しなくても良い。
加えて、本実施形態における第1角度θth1及び第2角度θth2は、共に50°であった。一方、本実施形態における第3角度θth3及び第4角度θth4は、共に360°であった。しかし、第1角度θth1及び第2角度θth2の一方又は両方は、50°以外の角度であっても良い。更に、第3角度θth3は、第1角度θth1よりも大きい角度であれば、360°以外の角度であっても良い。同様に、第4角度θth4は、第2角度θth2よりも大きい角度であれば、360°以外の角度であっても良い。
加えて、本実施形態における第1時間閾値Tth1は、固定値であった。しかし、第1時間閾値Tth1は、車両10と障害物との位置関係に応じて変化してもよい。例えば、時間閾値Tthは、車両10の車幅Woに対する「車両10が障害物と衝突したときに車両10の障害物と接触する部分の車両10の左右方向の長さ」として算出されるラップ率が大きいほど大きい値に設定されても良い。
加えて、本実施形態における第2時間閾値Tth2は、固定値であった。しかし、第2時間閾値Tth2は、車速Vsが小さくなるほど大きくなるように変化する値であっても良い。
加えて、本実施形態における最大減速度Dcmaxは、固定値であった。しかし、最大減速度Dcmaxは、状況に応じて変化しても良い。例えば、目標減速度Dctgtの値が徐々に大きくなったときに車両10の車輪と路面との間にスリップが発生すると、運転支援ECU20は、そのときの加速度As(この場合、負の値)よりも若干大きい値(絶対値の小さい負の値)を最大減速度Dcmaxとして採用しても良い。
或いは、車両10の車輪と路面との間にスリップが発生した後、目標減速度Dctgtの値が徐々に小さくなったときにスリップが解消すると、運転支援ECU20は、そのときの加速度Asよりも若干大きい値(絶対値の小さい負の値)を最大減速度Dcmaxとして採用しても良い。換言すれば、車両10は、アンチロックブレーキ機構を搭載していても良い。この場合、アンチロックブレーキ機構が作動したときに決定された車両10の目標減速度が最大減速度Dcmaxとして採用される。