以下、添付図面を参照して本発明の実施形態について説明する。なお、添付図面は本発明の原理に則った具体的な実施形態を示しているが、これらは本発明を理解するための例あり、本発明を限定的に解釈するために用いられるべきでない。
<構成>
本発明の実施形態に係る運転支援装置(以下、「本実施装置」と称呼される場合がある。)は、車両(自動車)に適用される。本実施装置が適用される車両は、他の車両と区別するために「自車両」と称呼される場合がある。
図1に示したように、本実施装置は、マイクロコンピュータを主要部として備えた運転支援ECU10を備えている。このマイクロコンピュータは、CPU10a、RAM10b、ROM10c及びインターフェース(I/F)10d等を含む。CPU10aはROM10cに格納されたインストラクション(プログラム、ルーチン)を実行することにより各種機能を実現するようになっている。なお、本明細書において、ECUは電気制御装置(Electric Control Unit)を意味する。従って、以降で説明する他のECUは、CPU、RAM、ROM及びインターフェース等を含むマイクロコンピュータを含む。CPUはROMに格納されたインストラクションを実行することにより各種機能を実現するようになっている。
本実施装置は、エンジンECU20、ブレーキECU30、電動パワーステアリングECU(以下、「EPS・ECU」と称呼する。)40、及び、メータECU50を備えている。これらのECU及び運転支援ECU10は、CAN(Controller Area Network)90を介して相互に情報を送信可能及び受信可能に接続されている。従って、特定のECUに接続されたセンサの検出値は他のECUにも送信されるようになっている。
エンジンECU20は、エンジンアクチュエータ21に接続されている。エンジンアクチュエータ21は、内燃機関22のスロットル弁の開度を変更するスロットル弁アクチュエータを含む。エンジンECU20は、エンジンアクチュエータ21を駆動することによって、内燃機関22が発生するトルクを変更することができる。従って、エンジンECU20は、エンジンアクチュエータ21を制御することによって、車両の駆動力を制御することができる。なお、車両が、ハイブリッド車両である場合、エンジンECU20は、車両駆動源としての「内燃機関及び電動機」の何れか一方又は両方によって発生する車両の駆動力を制御することができる。更に、車両が電気自動車である場合、エンジンECU20は、車両駆動源としての電動機によって発生する車両の駆動力を制御することができる。
ブレーキECU30は、ブレーキアクチュエータ31に接続されている。ブレーキアクチュエータ31は、ブレーキECU30からの指示に応じてブレーキキャリパ32bに内蔵されたホイールシリンダに供給する油圧を調整し、その油圧によりブレーキパッドをブレーキディスク32aに押し付けて摩擦制動力を発生させる。従って、ブレーキECU30は、ブレーキアクチュエータ31を制御することによって、車両の制動力を制御することができる。
EPS・ECU40は、アシストモータ(M)41に接続されている。アシストモータ41は、車両の「操舵ハンドル、操舵ハンドルに連結されたステアリングシャフト及び操舵用ギア機構等を含むステアリング機構」に組み込まれている。EPS・ECU40は、ステアリングシャフトに設けられた操舵トルクセンサ(図示省略)によって、運転者が操舵ハンドルに入力した操舵トルクを検出し、この操舵トルクに基いてアシストモータ41を駆動する。EPS・ECU40は、アシストモータ41を駆動することによってステアリング機構に操舵トルク(操舵アシストトルク)を付与し、これにより、運転者の操舵操作をアシストすることができる。
加えて、EPS・ECU40は、以降で説明する運転支援制御の実行中にCAN90を介して運転支援ECU10から操舵指令を受信したとき、操舵指令で特定される操舵制御量に基いてアシストモータ41を駆動する。操舵制御量は、車両の操舵角を決定付けるパラメータ(例えば、目標操舵角)である。これにより、車両の転舵輪の舵角(即ち、操舵角)が変更される(転舵輪が転舵される)。
メータECU50は、表示器51及び車速センサ52に接続されている。表示器51は、運転席の正面に設けられたマルチインフォーメーションディスプレイである。車速センサ52は車両の速度(車速)を検出し、その車速を示す信号をメータECU50に出力する。なお、車速センサ52が検出した車速は、運転支援ECU10に対しても送信される。表示器51は、車速及びエンジン回転速度等の計測値の表示に加えて、各種の情報を表示する。メータECU50は、運転支援ECU10から送信された表示指令に従って、運転支援制御に関する情報(例えば、運転支援制御のモード及び洗浄処理のステータス等)を表示する。表示器51は、マルチインフォーメーションディスプレイに限定されない。表示器51として、ヘッドアップディスプレイが採用されてもよい。
運転支援ECU10には、複数のレーダセンサ61a~61e、複数の第1カメラシステム62a~62d、複数の第2カメラシステム63a~63c、複数のディスプレイ64a~64c、洗浄装置65、タッチセンサ66、視線センサ67、走行支援スイッチ68、洗浄スイッチ69及びスピーカ70に接続されている。複数のレーダセンサ61a~61eは「レーダセンサ61」と総称される。複数の第1カメラシステム62a~62dは「第1カメラシステム62」と総称される。複数の第2カメラシステム63a~63cは「第2カメラシステム63」と総称される。複数のディスプレイ64a~64cは「ディスプレイ64」と総称される。
レーダセンサ61は、レーダ送受信部と信号処理部(何れも図示略)とを備えている。レーダ送受信部は、ミリ波帯の電波(以下、「ミリ波」と称呼する。)を放射し、放射範囲内に存在する物標によって反射されたミリ波(即ち、反射波)を受信する。信号処理部は、送信したミリ波と受信した反射波との位相差、反射波の減衰レベル及びミリ波を送信してから反射波を受信するまでの時間等に基いて、物標の有無及び自車両と物標との相対関係(即ち、自車両と物標との距離、物標の方位、及び、自車両と物標との相対速度等)を表す情報を取得して運転支援ECU10に出力するようになっている。なお、自車両と物標との相対関係を表す情報は、「物標情報」と称呼される。
図2に示すように、レーダセンサ61aは、車体200の前部の中央部に設けられ、自車両の前方領域に存在する物標を検出する。レーダセンサ61bは、車体200の前部の右側のコーナー部に設けられ、主に自車両の右前方領域に存在する物標を検出する。レーダセンサ61cは、車体200の前部の左側のコーナー部に設けられ、主に自車両の左前方領域に存在する物標を検出する。レーダセンサ61dは、車体200の後部の右側のコーナー部に設けられ、主に自車両の右後方領域に存在する物標を検出する。レーダセンサ61eは、車体200の後部の左側のコーナー部に設けられ、主に自車両の左後方領域に存在する物標を検出する。
図1に示した第1カメラシステム62は、カメラ及び画像処理部(何れも図示略)を備えている。カメラは、自車両の周囲の風景を撮影して画像データを取得(生成)する。画像処理部は、取得された画像データに基いて、物標情報を取得する。第1カメラシステム62は、その物標情報を運転支援ECU10に出力するようになっている。この場合、運転支援ECU10は、レーダセンサ61によって得られた物標情報と、第1カメラシステム62によって得られた物標情報と、を合成することにより、合成後の物標情報(自車両と物標との相対関係を表すパラメータ)を取得する。
更に、第1カメラシステム62は、取得した画像データに基いて、道路の左及び右の区画線(白線)を認識し、その認識した区画線に基いて「道路の形状、及び、道路と自車両との位置関係(例えば、自車両が走行しているレーンの左端又は右端から自車両の車幅方向の中心位置までの距離)等」を含む「レーン情報」を演算し、演算したレーン情報を運転支援ECU10に出力するようになっている。
図2に示すように、第1カメラシステム62aは、フロントバンパー201の車幅方向の略中央部に設けられ、車両の前方の画像データを取得する。第1カメラシステム62bは、車体200の後部のリアトランク203の壁部に設けられ、車両の後方の画像データを取得する。第1カメラシステム62cは、右側のドアミラー204に設けられ、車両の右方の画像データを取得する。第1カメラシステム62dは、左側のドアミラー205に設けられており、車両の左方の画像データを取得する。
上述したように、運転支援ECU10は、レーダセンサ61及び第1カメラシステム62からの「物標情報及びレーン情報」を含む車両の周辺状況に関する情報を「車両周辺情報」として取得する。更に、レーダセンサ61及び第1カメラシステム62は、「車両周辺情報を検出する検出部(検出手段)」とまとめて称呼される場合がある。
図1に示した第2カメラシステム63は、電子ミラー用のカメラシステムであり、カメラ及び画像処理部(何れも図示略)を備えている。カメラは、自車両の周囲の風景を撮影して画像データを取得(生成)する。画像処理部は、その取得された画像データから「一般的なドアミラーにより視認可能な領域に相当する領域の画像データ」を切り出す。第2カメラシステム63は、その切り出した画像データを運転支援ECU10に出力するようになっている。
図2に示すように、第2カメラシステム63aは、右フェンダー部分に設けられ、車両の右後方領域の画像データを取得する。第2カメラシステム63bは、左フェンダー部分に設けられ、車両の左後方領域の画像データを取得する。第2カメラシステム63cは、リヤウインドガラス202の上方付近に設けられ、車両の後方領域の画像データを取得する。
図1に示したディスプレイ64は、電子ミラー用のディスプレイであって、第2カメラシステム63によって取得された画像データを表示するディスプレイである。図3に示すように、ディスプレイ64aが車室内のダッシュボード301の右端の位置に設けられ、ディスプレイ64bがダッシュボード301の左端の位置に設けられ、ディスプレイ64cがダッシュボード301の中央位置に設けられている。運転支援ECU10は、第2カメラシステム63aによって取得された画像データをディスプレイ64aに表示させる。運転支援ECU10は、第2カメラシステム63bによって取得された画像データをディスプレイ64bに表示させる。運転支援ECU10は、第2カメラシステム63cによって取得された画像データをディスプレイ64cに表示させる。運転者は、これらのディスプレイ64a乃至64cを視認することにより、ドアミラー及びバックミラーを用いずに、車両の左後方、右後方及び後方に存在する物標を確認することができる。なお、電子ミラー用ディスプレイとして、図示しないナビゲーション装置のディスプレイが利用されてもよい。この場合、運転支援ECU10は、ナビゲーション装置のディスプレイの領域を3つの領域に分割して、各領域に第2カメラシステム63a乃至63cの画像データを表示させてもよい。
図1に示した洗浄装置65は、洗浄液と圧縮空気との混合体を「レーダセンサ61、第1カメラシステム62及び第2カメラシステム63の後述する保護窓(図4の411a乃至411lを参照。)」に対して噴射することによって、保護窓を洗浄するようになっている。保護窓の洗浄を行うことは、「洗浄処理を実行する」とも表現される。保護窓は「窓部」とも称呼される。従って、レーダセンサ61は、その窓部を通過する電波(ミリ波)を利用して物標情報を検出する。第1カメラシステム62は、その窓部を通過する光を利用して物標情報及びレーン情報を取得する。洗浄装置65は、運転支援ECU10からの指令(洗浄指令信号)に応じて、後述する「電動式空気ポンプ504、電磁式開閉弁503及び電動式洗浄液ポンプ402」を作動させることによって、洗浄処理を実行する。
図1に示したタッチセンサ66は、図3に示すように、操舵ハンドル302のグリップ部に設けられている。タッチセンサ66は、運転者の手が操舵ハンドル302に触れているか否かを示す信号を運転支援ECU10に出力するようになっている。具体的には、タッチセンサ66は、運転者の手が操舵ハンドル302に置かれている(触れている)ときにON信号を出力し、運転者の手が操舵ハンドル302から離れている(触れていない)ときにOFF信号を出力するようになっている。運転支援ECU10は、タッチセンサ66からの信号に基いて、運転者の手が操舵ハンドル302に触れているか否かを判定するようになっている。
図1に示した視線センサ67は、図3に示すように、ダッシュボード301における運転席の近傍の位置に設けられている。視線センサ67の検出面は運転席に向けられている。視線センサ67は、運転者の視線を検出するようになっている。具体的には、視線センサ67はカメラ(図示略)を備える。視線センサ67はカメラによって運転者の顔を撮像して顔画像データを生成する。運転支援ECU10は、視線センサ67から顔画像データを取得し、その顔画像データに基いて運転者の瞳孔反射から運転者の視線方向を推定することにより、推定した視線方向を示す視線データを取得するようになっている。視線データの値は、例えば、運転者が運転席にて真っすぐ前方を見たときの状態を基準として、当該状態から視線方向が水平方向及び垂直方向にそれぞれ何度回転しているかを表す「視線の角度(水平方向視線角度及び垂直方向視線角度)」の情報である。
このように、運転支援ECU10は、タッチセンサ66及び視線センサ67からの情報に基いて、「運転者の手が操舵ハンドル302に触れているか否かについての情報、及び、運転者の視線方向についての情報」(以下、これらの運転者の状態に関する情報を「運転者状態情報」と称呼する場合がある。)を取得する。
図1に示した走行支援スイッチ68は、運転者により操作されるスイッチである。運転者は、走行支援スイッチ68を操作することにより、後述する追従車間距離制御を実行するか否かを選択することができる。更に、運転者は、走行支援スイッチ68を操作することにより、後述する車線維持制御(操舵支援制御)を実行するか否かを選択することができる。
洗浄スイッチ69は、運転者が運転支援ECU10に対して「洗浄処理の実行」を要求する際(洗浄要求を発生させる際)に運転者により操作されるスイッチである。洗浄スイッチ69は、操作されたときに、その洗浄要求を表す信号(洗浄要求信号)を発生する。
スピーカ70は、車両の左右のフロントドア(不図示)のそれぞれの内側(車室内側)に配設されている。スピーカ70は、運転支援ECU10の指示に応じて音声メッセージ及び警告音等の発音を行うことができる。
次に、洗浄装置65についてより具体的に説明する。図4に示すように、レーダセンサ61、第1カメラシステム62及び第2カメラシステム63のそれぞれの設置位置には、それらの検出面(センシング面)を泥、埃及び塵等から保護するための保護窓411a乃至保護窓411lが設けられている。以下、保護窓411a乃至保護窓411lは「保護窓411又は窓部411」と総称される場合がある。保護窓411は、透光性の板部材(例えば、透明なガラス又は透明な樹脂等の窓)である。なお、レーダセンサ61の検出面とは、物標によって反射された反射波を受けるレンズの面を意味する。第1カメラシステム62及び第2カメラシステム63のそれぞれの検出面とは、被写体からの光を受光するレンズの面を意味する。
洗浄装置65は、洗浄液タンク401と、電動式洗浄液ポンプ402と、複数の洗浄部403a乃至403lと、を含む。洗浄液タンク401と複数の洗浄部403a乃至403lのそれぞれとの間は、配管404によって接続される。電動式洗浄液ポンプ402は、配管404において洗浄液タンク401と複数の洗浄部403a乃至403lとの間に設けられている。
洗浄液タンク401には洗浄液が貯留される。本例において、洗浄液は水である。なお、洗浄液は、凍結防止用にアルコールが含まれている液体であってもよく、洗剤が含まれている液体であってもよい。電動式洗浄液ポンプ402は作動したときに洗浄液タンク401に貯留された洗浄液を汲み上げ、洗浄液を複数の洗浄部403a乃至403lに圧送(供給)する。電動式洗浄液ポンプ402は、運転支援ECU10からの指令に応じて自身を作動又は停止させる。
複数の洗浄部403a乃至403lは互いに同様の構成を有する。よって、以下では、洗浄部403aについて説明し、他の洗浄部403b乃至403lの詳細な説明は省略する。
図5(a)及び図5(b)に示すように、洗浄部403aは、ノズル部501、合流ジョイント502、電磁式開閉弁503、電動式空気ポンプ504及び配管505を有する。
運転支援ECU10は、洗浄処理を実行する際、電動式空気ポンプ504を作動させ、電磁式開閉弁503を開け、電動式洗浄液ポンプ402(図4を参照。)を作動させる。この結果、圧縮空気が配管505を通り、合流ジョイント502内の流路502aに流入する。洗浄液は、配管404から、流路502bを通って流路502aに流入する。これによって、流路502aにて洗浄液と圧縮空気とが混合し、洗浄液と圧縮空気とが混合した混合体がノズル部501内の流路501bを通り、その後、噴射口501aから保護窓411aに向けて噴射される。
運転支援ECU10は、洗浄要求が発生し、且つ、以降で説明する洗浄開始条件が成立したときに、洗浄処理を実行する。なお、洗浄要求は、洗浄スイッチ69が運転者に操作された場合、及び、保護窓411a乃至保護窓411lのうちの少なくとも1つにおいて汚れが検出された場合に発生する。
運転支援ECU10は、保護窓411a乃至保護窓411lのうちの少なくとも1つにおいて汚れが検出された場合、その汚れのレベルに応じて洗浄処理の実行時間(以下、「洗浄実行期間」と称呼する場合がある。)を制御するようになっている。汚れのレベルは、第1レベルLV1(汚れ低レベルLV1)と、第1レベルLV1よりも高いレベルの第2レベルLV2(汚れ高レベルLV2)とを含む。第1レベルLV1は、後述する車線維持制御(操舵支援制御)に対する影響が比較的低い小さな汚れであることを意味する。汚れのレベルが第1レベルLV1である場合、車線維持制御が不安定になる可能性が比較的低いことから、車両の周辺状況及び車両の走行状態に応じて(後述する図10のルーチンで設定される状況フラグF4の値に応じて)、洗浄処理を実行する。第2レベルLV2は、車線維持制御(操舵支援制御)に対する影響が第1レベルLV1に比べて高い大きな汚れであることを意味する。汚れのレベルが第2レベルLV2である場合、車線維持制御が不安定になる可能性が高いことから、より早く洗浄処理が実行される。
汚れのレベルが第1レベルLV1である場合、運転支援ECU10は、第1洗浄時間Tm1に渡り洗浄処理を実行する。これに対して、汚れのレベルが第2レベルLV2である場合、運転支援ECU10は、第1洗浄時間Tm1よりも長い第2洗浄時間Tm2に渡り洗浄処理を実行する。汚れのレベルが第1レベルLV1である場合、洗浄処理に使用される洗浄液の量が少なくなる。従って、洗浄液タンク401に洗浄液を補充する頻度を抑えることができる。汚れのレベルが第2レベルLV2である場合、洗浄時間を長くすることにより、保護窓411a乃至保護窓411lの汚れを確実に落とすことができる。
なお、本実施形態において、洗浄処理を実行する際、運転支援ECU10は、総ての保護窓411に対して洗浄処理を実行する。これは、保護窓411のうちの1つに汚れが検出された場合、他の保護窓も同じ環境に曝されていることから、他の保護窓も汚れている可能性があるためである。
更に、本実施形態において、第2カメラシステム63に対応する保護窓411j乃至411lの汚れは車線維持制御(操舵支援制御)に影響しない。しかし、レーダセンサ61及び第1カメラシステム62に対応する保護窓411a乃至411iも同じ環境に曝されているので、保護窓411j乃至411lの汚れが検出された場合、保護窓411a乃至411iも汚れている可能性がある。更に、運転者は、電子ミラー用のディスプレイ64の画面を視認するので、その画面から保護窓411j乃至411lが汚れていると判断し、洗浄スイッチ69を操作する。従って、第2カメラシステム63に対応する保護窓411j乃至411lに汚れが検出されたことによって洗浄要求が発生した場合、及び、洗浄スイッチ69が操作されることにより洗浄要求が発生した場合、の何れの場合であっても、運転支援ECU10は、総ての保護窓411に対して洗浄処理を実行する。
次に、保護窓の汚れの検出方法について簡単に説明する。レーダセンサ61に対応する保護窓の汚れは、様々な既知の方法の一つにより検出され得る(例えば、特開2003-320866号公報を参照。)。例えば、運転支援ECU10は、レーダセンサ61の反射波の強度(以下、「反射強度」と称呼する。)を求める。具体的には、運転支援ECU10は、レーダセンサ61の受信信号の周波数スペクトルを求め、その周波数スペクトル中に現れるピークの高さを反射強度として求める。反射強度が所定の第1反射閾値RTh1より小さい場合、運転支援ECU10は、レーダセンサ61に対応する保護窓の汚れが第1レベル(低レベル)LV1であると判定する。更に、反射強度が、第1反射閾値RTh1より小さい第2反射閾値RTh2より小さい場合、運転支援ECU10は、レーダセンサ61に対応する保護窓の汚れが第2レベル(高レベル)LV2であると判定する。
更に、カメラシステム62及び63に対応する保護窓の汚れは、様々な既知の方法の一つにより検出され得る(例えば、特開2008-060874号公報を参照。)。例えば、運転支援ECU10は、連続する二回の演算タイミングにて特定のカメラシステムにより取得された画像データを取得し、取得した画像データを用いて次の演算タイミングでのオプティカルフローを推定する。オプティカルフローとは、画像中のある点(以下、「画像点」と称呼する。)が次の瞬間にどの方向へ、どの程度の距離を移動するかを示すベクトルである。運転支援ECU10は、次の演算タイミングにて、推定されたオプティカルフローと実際のオプティカルフローとを比較する。運転支援ECU10は、「推定されたオプティカルフローと実際のオプティカルフローとが大きく異なる画像点(以下、「異常点」と称呼する。)」があるか否かを判定する。画像全体における異常点の数が第1閾値NTh1よりも大きい場合、運転支援ECU10は、保護窓の汚れが第1レベル(低レベル)LV1であると判定する。更に、上記の異常点の数が、第1閾値NTh1よりも大きい第2閾値NTh2よりも大きい場合、運転支援ECU10は、保護窓の汚れが第2レベル(高レベル)LV2であると判定する。
上述したように、運転支援ECU10は、機能上、CPUにより実現される「レーダセンサ61、第1カメラシステム62及び第2カメラシステム63の各々の保護窓411の汚れを検出する汚れ検出部(汚れ検出手段)10X」を有している。
<追従車間距離制御(ACC)>
次に、運転支援ECU10が実行する運転支援制御について説明する。運転支援制御の1つである追従車間距離制御は、物標情報に基いて、自車両の直前を走行している先行車と自車両との車間距離を所定の距離に維持しながら、自車両を先行車に追従させる制御である。追従車間距離制御自体は周知である(例えば、特開2014-148293号公報、特開2006-315491号公報、特許第4172434号明細書、及び、特許第4929777号明細書等を参照。)。従って、以下、簡単に説明する。
運転支援ECU10は、追従車間距離制御が要求されている場合、物標情報に基いて追従対象車両を選択する。運転支援ECU10は、追従対象車両と自車両との車間距離が目標車間距離Dtgtとなるように自車両の目標加速度Gtgtを求める。運転支援ECU10は、車両の加速度が目標加速度Gtgtに一致するように、エンジンECU20を用いてエンジンアクチュエータ21を制御するとともに、必要に応じてブレーキECU30を用いてブレーキアクチュエータ31を制御する。
このように、運転支援ECU10は、機能上、CPUにより実現される「追従車間距離制御(ACC)を実行するACC制御部10Y」を有している。
<車線維持制御(操舵支援制御)>
運転支援ECU10は、追従車間距離制御の実行中に、走行支援スイッチ68の操作によって車線維持制御が要求されている場合、運転支援制御の1つである車線維持制御を実行する。車線維持制御は、自車両を「白線(区画線)により特定される走行レーン(自車両が走行している走行車線)」内の適切な位置で走行させるように操舵制御を行う制御である。車線維持制御は、「LTC(Lane Trace Control)」及び「TJA(Traffic Jam Assist Control)」等の様々な名称により称呼される。車線維持制御は周知であるので(例えば、特開2008-195402号公報、特開2009-190464号公報、特開2010-6279号公報、及び、特許第4349210号明細書、等を参照。)、以下、簡単に説明する。
運転支援ECU10は、白線又は操舵追従先行車の走行軌跡(「先行車軌跡」と称呼される場合がある。)、若しくは、これらの両方を活用して、目標走行ライン(目標走行路)を決定する。目標走行ラインは、例えば、その自車両が走行している走行レーンを規定する左右の白線の中央ラインである。運転支援ECU10は、自車両の横位置(即ち、道路に対する車幅方向の自車両の位置)が目標走行ライン付近に維持されるように操舵制御量を求める。操舵制御量は、例えば目標操舵角である。
具体的には、運転支援ECU10は、目標走行ラインを決定した後、車線維持制御に必要な目標走路情報(目標走行ラインの曲率CL、目標走行ラインに対するヨー角θL、及び、目標走行ラインに対する横偏差dL)を取得する。ここで、ヨー角θLは、目標走行ラインの方向(接線方向)と自車両の進行方向とのずれ角である。横偏差dLは、自車両が目標走行ラインに対して道路幅方向に偏移している量を示す長さである。
運転支援ECU10は、所定時間が経過するごとに、曲率CLとヨー角θLと横偏差dLとを下記の(1)式に適用することにより目標操舵角θ*を演算する。(1)式において、Klta1、Klta2及びKlta3は予め定められた制御ゲインである。
θ*=Klta1・CL+Klta2・θL+Klta3・dL …(1)
運転支援ECU10は、操舵制御量(目標操舵角θ*)を特定する操舵指令をEPS・ECU40に送信することにより、アシストモータ41を駆動する。その結果、車両の実際の操舵角θが目標操舵角θ*に一致させられる。
このように、運転支援ECU10は、機能上、CPUにより実現される「目標走行ラインに沿って車両を走行させるための操舵支援を行う操舵支援制御を実行する操舵支援制御部(操舵支援制御手段)10Z」を有している。
更に、運転支援ECU10は、第1モード(ハンズオンモード)と、第2モード(ハンズオフモード)と、の何れかのモードにて操舵支援制御を実行するようになっている。第1モードは、運転者が操舵ハンドル302に触れており且つ運転者が車両の前方を見ている状態(以降、「Hands-ON」状態と称呼する。)であることを前提とする第1操舵支援制御を実行するモードである。第2モードは、運転者が「Hands-ON」状態であることを前提としない第2操舵支援制御を実行するモードである。以下、これらのモードについて説明する。
1.第1モード
運転支援ECU10は、後述する第2モードにて第2操舵支援制御を実行する場合に比べて目標走行ラインの信頼度が低い場合(従って、車線維持制御の信頼性が低い場合)に第1モードを選択する。第1モードが選択される「目標走行ラインの信頼度が低い場合」は、例えば、以下の条件Aが満たされる場合である。
(条件A)自車両から前方に向けて第1所定距離内の左白線及び右白線の両方が検出できているが、自車両から前方に向けて第1所定距離以上の左白線及び右白線の少なくとも一方が検出できていない。
操舵支援制御のモードが第1モードであるとき、運転支援ECU10は、第1操舵支援制御を実行する。第1操舵支援制御において使用される「上記(1)式の制御ゲイン(特に、Klta2及びKlta3)」の大きさは、第2モードにおける第2操舵支援制御で使用される「上記(1)式の制御ゲイン(特に、Klta2及びKlta3)」よりも小さい値に設定される。従って、第1モードにおける車線維持制御の応答性は、第2モードにおける車線維持制御の応答性よりも低くなる。その結果、自車両の位置及び向きが急激に変化することを防止することができる。
更に、操舵支援制御のモードが第1モードであるとき、運転支援ECU10は、運転者が「Hands-ON」状態であることを要求する。換言すると、第1モードは、運転者が「Hands-ON」状態であることを前提とした第1操舵支援制御を実行するモードである。運転支援ECU10は、運転者状態情報に基いて、運転者が「Hands-ON」状態であるかを監視(判定)する。例えば、運転支援ECU10は、以下の総ての条件B1乃至条件B3が成立したときに運転者が「Hands-ON」状態であると判定する。
条件B1:タッチセンサ66からの信号がON信号である。
条件B2:上述の視線データが示す水平方向視線角度の大きさが所定の第1角度閾値以内である。
条件B3:上述の視線データが示す垂直方向視線角度の大きさが所定の第2角度閾値以内である。
これに対し、運転支援ECU10は、上記の条件B1乃至条件B3のうちの少なくとも一つが成立しないとき、運転者が「Hands-ON」状態でない(運転者が「Hands-OFF」状態である)と判定する。この場合、運転支援ECU10は、その旨を示す警告を表示器51に表示させるとともに、スピーカ70から当該警告の内容を発話させる。運転支援ECU10は、第1モードにて作動している場合、「Hands-ON」状態でない状態が所定時間以上継続したとき、操舵支援制御(第1操舵支援制御)をキャンセルする。
運転支援ECU10が第1モードにて作動している場合、運転者は「Hands-ON」状態である可能性が極めて高いので、自車両の横位置が適切な位置から乖離した場合、運転者は迅速に自車両の横位置を修正することができる。
2.第2モード
運転支援ECU10は、第1モードにて第1操舵支援制御を実行する場合に比べて目標走行ラインの信頼度が高い場合(従って、車線維持制御の信頼性が高い場合)に第2モードを選択する。第2モードが選択される「目標走行ラインの信頼度が高い場合」は、例えば、以下の条件Cが満たされる場合である。
(条件C)自車両から前方に向けて「第1所定距離よりも長い第2所定距離」内の左白線及び右白線の両方が検出できている。
上述したように、第2操舵支援制御において使用される「上記(1)式の制御ゲイン(特に、Klta2及びKlta3)」の大きさは、第1モードにおける第1操舵支援制御で使用される「上記(1)式の制御ゲイン(特に、Klta2及びKlta3)」よりも大きい値に設定される。従って、第2モードにおける車線維持制御の応答性は、第1モードにおける車線維持制御の応答性よりも高くなる。その結果、自車両の位置及び向きを迅速に修正することができる。
操舵支援制御のモードが第2モードであるとき、運転支援ECU10は、運転者が「Hands-ON」状態であることを要求しない。換言すると、第2モードは、運転者が「Hands-ON」状態であることを前提としない第2操舵支援制御を実行するモードである。
<洗浄要求発生時の処理の概要>
次に、運転支援ECU10が車線維持制御(操舵支援制御)を実行している状況において洗浄要求が発生したときの運転支援ECU10の作動について説明する。
上述したように、車線維持制御(操舵支援制御)の実行中に保護窓411に対して洗浄処理を行うと、レーダセンサ61及び第1カメラシステム62が車両周辺状況を一時的に検出できなくなる。従って、操舵支援制御が不安定になる。このとき、例えば、自車両の周囲に他車両が存在する場合、自車両がその他車両に接近する虞がある。
そこで、運転支援ECU10は、予め定められた洗浄禁止条件が成立しているか否かを判定する。この洗浄禁止条件は、操舵支援制御中に洗浄処理を実行すると仮定したときに自車両が上述した検出部(レーダセンサ61及び第1カメラシステム62)により検出されている物体に接近する可能性が高いと予測される場合に成立する条件である。より具体的に述べると、洗浄禁止条件は、後述する「車両周辺条件及び走行状態条件」が共に成立するときに成立する条件である。なお、本明細書における「物体」とは、自車両の周囲に存在する移動立体物(他車両、自転車及び歩行者等)及び固定立体物(ガードレール及びフェンス等)を含む。運転支援ECU10は、物体と自車両との相対速度及び自車両の速度に基いて物体の絶対速度を推定し、その絶対速度が所定の閾値よりも高い場合に物体が移動立体物であると判定し、その絶対速度が前記閾値よりも低い場合に物体が固定立体物であると判定する。更に、運転支援ECU10は、第1カメラシステム62により取得された画像データから物体の特徴量を抽出し、その特徴量と、予めROMに記憶されている「特徴量と物体の種類との関係」とから、その物体が移動立体物であるか固定立体物であるかを判定してもよい。
そして、運転支援ECU10は、車線維持制御(操舵支援制御)の実行中に洗浄要求が発生した場合、洗浄禁止条件が成立していると判定されるとき、洗浄装置65に洗浄処理を実行させることを、後述するように原則として禁止する。従って、「操舵支援制御の実行中に洗浄処理が実行されることによって自車両が自車両の周辺に存在する物体に接近する可能性」を低減することができる。
更に、第1モード(ハンズオンモード)にて実行される第1操舵支援制御は、上述したように、運転者が操舵ハンドル302に触れている状態であることを前提としている。従って、洗浄処理によって第1操舵支援制御が不安定になったとしても、運転者は「直ちに操舵を行って、車両の位置を修正すること」ができる。そこで、運転支援ECU10は、操舵支援制御の実行中に洗浄要求が発生した場合に操舵支援制御のモードが第1モードであるときには、洗浄禁止条件が成立しているか否かに関わらず、洗浄装置65に洗浄処理を実行させることを許容する。従って、運転支援ECU10は、洗浄禁止条件が成立しているとの判定がなされたときであっても、操舵支援制御のモードが第1モードであるときには、洗浄装置65に洗浄処理を実行させ得る。たとえ洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から乖離したとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
これに対し、第2モード(ハンズオフモード)にて実行される第2操舵支援制御は、上述したように、運転者が操舵ハンドル302に触れている状態であることを前提としていない。従って、操舵支援制御のモードが第2モードである場合、運転者は操舵ハンドル302に触れていない可能性が高い。このため、洗浄処理によって第2操舵支援制御が不安定になった場合、運転者は車両の位置を直ちに修正できない可能性がある。そこで、運転支援ECU10は、操舵支援制御のモードが第2モードであるときに操舵支援制御の実行中に洗浄要求が発生した場合、洗浄禁止条件が成立していると判定されると、操舵支援制御のモードを第2モードから第1モードへ移行させる。従って、第1操舵支援制御を実行しながら洗浄処理を実行させることができる。
更に、運転支援ECU10は、操舵支援制御のモードが第2モードであるときに操舵支援制御の実行中に洗浄要求が発生した場合、洗浄禁止条件が成立していないと判定されると、洗浄装置65に洗浄処理を実行させることを許容する。従って、たとえ洗浄処理によって第2操舵支援制御が不安定になったとしても、自車両が自車両の周囲の物体に接近する可能性は低い。
<具体的作動>
次に、運転支援ECU10のCPU10a(単に「CPU」と称呼する場合がある。)の具体的作動について説明する。CPUは、所定時間が経過する毎に図6にフローチャートにより示した「車線維持制御(操舵支援制御)の開始/終了判定ルーチン」を実行するようになっている。なお、CPUは図示しないルーチンにより追従車間距離制御(ACC)を実行するようになっている。
更に、CPUは、図示しないルーチンを所定時間が経過する毎に実行することにより、上述したように、レーダセンサ61及び第1カメラシステム62からの情報を用いて車両周辺情報を取得してRAMに格納している。更に、CPUは、図示しないルーチンを所定時間が経過する毎に実行することにより、上述したように、タッチセンサ66及び視線センサ67から運転者状態情報を取得してRAMに格納している。
従って、所定のタイミングになると、CPUは、ステップ600から図6のルーチンを開始してステップ610に進み、LTCフラグF1が「0」であるか否かを判定する。LTCフラグF1は、その値が「1」であるとき車線維持制御(第1操舵支援制御及び第2操舵支援制御の何れか)が実行されていることを示し、その値が「0」であるとき車線維持制御が実行されていないことを示す。LTCフラグF1は車線維持制御実行フラグとも称呼される。LTCフラグF1の値は、図示しないイグニッションスイッチがOFF位置からON位置へと変更されたときにCPUにより実行されるイニシャライズルーチンにおいて「0」に設定される。更に、LTCフラグF1の値は、後述する図9のステップ960においても「0」に設定される。
いま、LTCフラグF1の値が「0」である(車線維持制御が実行されていない)と仮定すると、CPUはステップ610にて「Yes」と判定してステップ620に進み、所定のLTC実行条件(車線維持制御の実行条件)が成立しているか否かを判定する。
LTC実行条件は、以下の条件1乃至条件3の総てが成立したときに成立する。
(条件1):追従車間距離制御の実行中であり、且つ、走行支援スイッチ68の操作により車線維持制御を実行することが選択されている。
(条件2):第1カメラシステム62によって、左白線及び右白線が少なくとも自車両から前方に向けて第1所定距離まで認識できている。
(条件3):運転者が「Hands-ON」状態である。
なお、条件2は以下のような条件であってもよい。
・第1カメラシステム62によって左白線及び右白線が少なくとも自車両から前方に向けて第1所定距離まで認識できているか、又は、操舵追従先行車が存在している。
LTC実行条件が成立していない場合、CPUは、そのステップ620にて「No」と判定し、ステップ695に直接進んで本ルーチンを一旦終了する。
これに対し、LTC実行条件が成立している場合、CPUは、そのステップ620にて「Yes」と判定して、ステップ630に進む。CPUは、ステップ630にて、LTCフラグF1を「1」に設定して、ステップ695に進んで本ルーチンを一旦終了する。この結果、操舵支援制御が実行される(図8のステップ810での「Yes」との判定を参照。)。
一方、CPUがステップ610の処理を実行する時点において、LTCフラグF1の値が「1」である(車線維持制御が実行されている)場合、CPUは、そのステップ610にて「No」と判定して、ステップ640に進み、所定のLTC終了条件(車線維持制御の終了条件)が成立しているか否かを判定する。
LTC終了条件は、以下の条件4乃至条件6の少なくとも一つが成立したときに成立する。
(条件4):追従車間距離制御が終了した。
(条件5):走行支援スイッチ68の操作により、車線維持制御の実行を終了することが選択されている。
(条件6):第1カメラシステム62によって、左白線及び右白線の何れもが認識できない。即ち、車線維持制御に必要な情報が取得できない。
なお、条件6は以下のような条件であってもよい。
・自車両の前方に操舵追従先行車が存在しておらず、且つ、第1カメラシステム62によって左白線及び右白線の何れもが認識できない。
LTC終了条件が成立しない場合、CPUは、そのステップ640にて「No」と判定し、ステップ695に直接進んで本ルーチンを一旦終了する。これに対し、LTC終了条件が成立している場合、CPUは、そのステップ640にて「Yes」と判定して、ステップ650に進む。CPUは、ステップ650にて、LTCフラグF1を「0」に設定して、ステップ695に進んで本ルーチンを一旦終了する。この結果、操舵支援制御が停止される(図8のステップ810での「No」との判定を参照。)。
更に、CPUは、所定時間が経過する毎に、図7にフローチャートにより示した「モード選択ルーチン」を実行するようになっている。
従って、所定のタイミングになると、CPUは図7のステップ700から処理を開始してステップ710に進み、LTCフラグF1の値が「1」であるか否かを判定する。LTCフラグF1の値が「1」でない場合、CPUは、そのステップ710にて「No」と判定し、ステップ795に直接進んで本ルーチンを一旦終了する。
これに対し、LTCフラグF1の値が「1」である場合、CPUは、ステップ710にて「Yes」と判定してステップ720に進み、車線維持制御のモードが現時点で設定されているか否かを判定する。
いま、LTCフラグF1の値が「0」から「1」に変更された直後であることから、車線維持制御のモードが現時点で設定されていないと仮定する。この場合、CPUは、そのステップ720にて「No」と判定してステップ750に直接進み、車線維持制御のモードとして第1モードを選択する。CPUは、第1モードを選択したことを知らせる通知を表示器51に表示させるとともに、スピーカ70から当該通知の内容を発話させる(以降、このようなモードの通知処理を「モード通知処理」と称呼する。)。その後、CPUは、ステップ795に進んで本ルーチンを一旦終了する。
CPUがステップ720の処理を実行する時点において、車線維持制御のモードが既に設定されている場合、CPUは、そのステップ720にて「Yes」と判定してステップ730に進み、現在の車線維持制御のモードが第1モードであるか否かを判定する。いま、車線維持制御のモードが第1モードであり、車線維持制御を開始してからの経過時間が所定の時間閾値Tha以下であると仮定する。この場合、CPUは、そのステップ730にて「Yes」と判定してステップ740に進み、第1条件が成立するか否かを判定する。第1条件は、車線維持制御を開始してからの経過時間が所定の時間閾値Tha以内であるときに成立する。即ち、運転支援ECU10は、上記の経過時間が所定の時間閾値Thaを超えるまで、第1モードによる車線維持制御を実行する。
前述の仮定によれば、第1条件が成立する。従って、CPUは、そのステップ740にて「Yes」と判定してステップ750に進み、車線維持制御(操舵支援制御)のモードとして第1モードを選択する。その後、CPUは、ステップ795に進んで本ルーチンを一旦終了する。
この状態が継続する場合、所定時間が経過する毎に、CPUはステップ700から処理を開始し、ステップ710、ステップ720及びステップ730のそれぞれにて「Yes」と判定して、ステップ740の判定を繰り返し行う。いま、車線維持制御を開始してからの経過時間が所定の時間閾値Thaよりも大きくなったと仮定する。この場合、第1条件が成立しないので、CPUは、そのステップ740にて「No」と判定してステップ760に進み、第2条件が成立するか否かを判定する。第2条件は、上記の条件Cと同じであり、自車両から前方に向けて「第1所定距離よりも長い第2所定距離」内の左白線及び右白線の両方が検出できている場合に成立する。
第2条件が成立しない場合、CPUは、そのステップ760にて「No」と判定してステップ750に進んで、車線維持制御(操舵支援制御)のモードとして第1モードを選択する。その後、CPUは、ステップ795に進んで本ルーチンを一旦終了する。
これに対し、第2条件が成立する場合、CPUは、そのステップ760にて「Yes」と判定してステップ770に進み、移行フラグF2が「1」であるか否かを判定する。移行フラグF2は、洗浄要求が発生したときに設定されるフラグであって、車線維持制御のモードを第2モードから第1モードへ移行させるか否かを示すフラグである。移行フラグF2は、その値が「1」であるとき、車線維持制御のモードを第2モードから第1モードへ移行させることを示す。移行フラグF2は、その値が「0」であるとき、車線維持制御のモードとして第2モードを選択する(又は第2モードで維持する)ことを示す。移行フラグF2の値は、上述したイニシャライズルーチンにおいて「0」に設定される。移行フラグF2の値は、以降で説明する図11のルーチンのステップ1145及び図12のルーチンのステップ1240にて「1」に設定され、図13のルーチンのステップ1360にて「0」に設定される。
移行フラグF2が「1」でない場合、CPUは、そのステップ770にて「No」と判定してステップ780に進んで、車線維持制御(操舵支援制御)のモードとして第2モードを選択して、上述のモード通知処理を実行する。その後、CPUは、ステップ795に進んで本ルーチンを一旦終了する。
これに対し、移行フラグF2が「1」である場合、CPUは、そのステップ770にて「Yes」と判定してステップ750に進む。CPUは、車線維持制御(操舵支援制御)のモードとして第1モードを選択して、上述のモード通知処理を実行する。その後、CPUは、ステップ795に進んで本ルーチンを一旦終了する。
以降で説明するように、移行フラグF2が洗浄処理の開始前に「1」に設定された場合(図11のルーチンのステップ1145及び図12のルーチンのステップ1240を参照)、移行フラグF2のその値は、洗浄処理が終了するまで維持される(図13のルーチンのステップ1360を参照。)。従って、洗浄要求が発生したときに車線維持制御のモードが第2モードから第1モードへ移行された場合、洗浄処理が実行されている間は、第1モードが維持される。
更に、CPUは、所定時間が経過する毎に、図8にフローチャートにより示した「車線維持制御実行ルーチン」を実行するようになっている。従って、所定のタイミングになると、CPUは図8のステップ800から処理を開始してステップ810に進み、LTCフラグF1の値が「1」であるか否かを判定する。LTCフラグF1の値が「1」でない場合、CPUは、そのステップ810にて「No」と判定し、ステップ895に直接進んで本ルーチンを一旦終了する。この場合、車線維持制御としての操舵支援制御である「第1操舵支援制御及び第2操舵支援制御」の何れもが実行されない。
これに対し、LTCフラグF1の値が「1」である場合、CPUは、そのステップ810にて「Yes」と判定してステップ820に進み、洗浄フラグF3の値が「0」であるか否かを判定する。洗浄フラグF3は、洗浄処理が実行されているか否かを示すフラグである。洗浄フラグF3は、上述したイニシャライズルーチンにおいて「0」に設定される。洗浄フラグF3は、洗浄処理が開始した時点から洗浄処理が終了した時点までの洗浄実施期間において「1」に設定される(後述する図13のルーチンを参照。)。
いま、洗浄処理が実行されていないと仮定すると、洗浄フラグF3の値は「0」である。この場合、CPUは、ステップ820にて「Yes」と判定してステップ830に進み、現在の車線維持制御(操舵支援制御)のモードが第1モードであるか否かを判定する。現在の車線維持制御(操舵支援制御)のモードが第1モードである場合、CPUは、そのステップ830にて「Yes」と判定してステップ840に進み、現時点で取得された車両周辺情報に基いて目標走行ラインを決定し、上記(1)式に従って第1操舵支援制御用の操舵制御量(目標操舵角θ*)を演算する。このとき、CPUは、上記(1)式の制御ゲイン(例えば、Klta2及び/又はKlta3)の値を、後述するステップ860にて演算される上記(1)式の制御ゲインよりも小さい値に設定する。次に、CPUは、ステップ850に進み、この操舵制御量をRAM(記憶部)に「最新操舵制御量」として記憶(格納)する。次に、CPUは、ステップ880に進み、ステップ840にて求められた操舵制御量を用いて車線維持制御(第1操舵支援制御)を実行する。その後、CPUはステップ895に進み、本ルーチンを一旦終了する。
一方、現在の車線維持制御(操舵支援制御)のモードが第2モードである場合、CPUは、ステップ830にて「No」と判定してステップ860に進み、現時点で取得された車両周辺情報に基いて目標走行ラインを決定し、上記(1)式に従って第2操舵支援制御用の操舵制御量(目標操舵角θ*)を演算する。このとき、CPUは、上記(1)式の制御ゲインの値を、ステップ840にて演算される上記(1)式の制御ゲインよりも大きい値に設定する。次に、CPUは、ステップ850に進み、この操舵制御量をRAMに「最新操舵制御量」として記憶(格納)する。次に、CPUは、ステップ880に進み、ステップ860にて求められた操舵制御量を用いて車線維持制御(第2操舵支援制御)を実行する。その後、CPUはステップ895に進み、本ルーチンを一旦終了する。
CPUがステップ820の処理を実行する時点において、洗浄処理が実行されていると仮定すると、洗浄フラグF3の値は「1」である。この場合、CPUは、ステップ820にて「No」と判定してステップ870に進み、操舵制御量を、RAMに格納(記憶)されている最新操舵制御量に設定する。即ち、洗浄処理が実行されているとき、CPUは、今回の演算タイミングにて操舵制御量の演算を行わずに、操舵制御量を「洗浄処理が開始する直前の演算タイミングにて求められ且つRAMに格納された最新操舵制御量」に設定する。次に、CPUは、ステップ880に進み、ステップ870にて設定された操舵制御量を用いて車線維持制御を実行する。その後、CPUはステップ895に進み、本ルーチンを一旦終了する。
更に、CPUは、所定時間が経過する毎に、図9にフローチャートにより示した「監視ルーチン」を実行するようになっている。従って、所定のタイミングになると、CPUは図9のステップ900から処理を開始してステップ910に進み、LTCフラグF1の値が「1」であるか否かを判定する。
LTCフラグF1の値が「1」でない場合(第1操舵支援制御及び第2操舵支援制御の何れもが実行されていない場合)、CPUは、そのステップ910にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
これに対し、LTCフラグF1の値が「1」である場合、CPUは、そのステップ910にて「Yes」と判定してステップ920に進み、現在の車線維持制御(操舵支援制御)のモードが第1モードであるか否かを判定する。
現在の車線維持制御(操舵支援制御)のモードが第1モードでない(即ち、現在の車線維持制御のモードが第2モードである)場合、CPUは、そのステップ920にて「No」と判定し、ステップ995に直接進んで本ルーチンを一旦終了する。
一方、現在の車線維持制御(操舵支援制御)のモードが第1モードである場合、CPUは、そのステップ920にて「Yes」と判定してステップ930に進み、運転者状態情報に基いて、運転者が上述した「Hands-ON」状態であるか否かを判定する。運転者が「Hands-ON」状態である場合、CPUは、そのステップ930にて「Yes」と判定してステップ995に進み、本ルーチンを一旦終了する。
これに対し、運転者が「Hands-ON」状態でない場合、CPUは、そのステップ930にて「No」と判定してステップ940に進み、運転者がHands-ON状態にすることを要求する表示を表示器51に表示させるとともにスピーカ70から当該表示の内容を発話させる処理を実行する(以下、当該処理を「Hands-ON」要求と称呼する。)。次に、CPUは、ステップ950に進み、「Hands-ON」要求を開始してからの経過時間(即ち、「Hands-ON」要求の継続時間)が所定のキャンセル時間以上となったか否かを判定する。
「Hands-ON」要求の継続時間が所定のキャンセル時間以上継続していない場合、CPUは、そのステップ950にて「No」と判定してステップ995に直接進み、本ルーチンを一旦終了する。これに対し、「Hands-ON」要求の継続時間が所定のキャンセル時間以上継続している場合、CPUは、そのステップ950にて「Yes」と判定してステップ960に進み、LTCフラグF1の値を「0」に設定する。これにより、車線維持制御(この場合、第1操舵支援制御)が停止(中止)される。その後、CPUは、ステップ995に進んで本ルーチンを一旦終了する。
更に、CPUは、所定時間が経過する毎に、図10にフローチャートにより示した「状況フラグ(洗浄禁止フラグ)設定ルーチン」を実行するようになっている。本ルーチンにて設定される状況フラグ(洗浄禁止フラグ)F4は、その値が「0」であるとき、車線維持制御の実行中に洗浄処理を実行したとしても自車両が「自車両の周辺に存在する物体」に接近する可能性が低い(自車両の周辺に物体が存在しない状況も含む)ことを示す。更に、状況フラグF4は、その値が「1」であるとき、車線維持制御の実行中に洗浄処理を実行すると、その洗浄処理の実行中に自車両が「自車両の周辺に存在する物体」に接近する可能性が高いことを示す。状況フラグF4は、上述したイニシャライズルーチンにおいて「0」に設定される。
所定のタイミングになると、CPUは図10のステップ1000から処理を開始してステップ1010に進み、LTCフラグF1の値が「1」であるか否かを判定する。即ち、CPUは、ステップ1010にて車線維持制御(第1操舵支援制御及び第2操舵支援制御の何れか)が実行されているか否かを判定する。LTCフラグF1の値が「1」でない場合、CPUは、そのステップ1010にて「No」と判定してステップ1050に進み、状況フラグF4を「0」に設定する。その後、CPUは、ステップ1095に進んで本ルーチンを一旦終了する。
いま、車線維持制御(第1操舵支援制御及び第2操舵支援制御の何れか)が実行されていると仮定すると、LTCフラグF1の値は「1」である。この場合、CPUは、ステップ1010にて「Yes」と判定してステップ1020に進み、車両周辺情報に基いて、所定の車両周辺条件が成立するか否かを判定する。この車両周辺条件は、例えば、自車両と自車両の周辺に存在する物体との位置関係に関する条件である。本例において、車両周辺条件は、以下の条件7及び条件8の少なくとも一方が成立したときに成立する。
(条件7)自車両との距離が所定の第1距離閾値以下の移動立体物(他車両、自転車及び歩行者等)が存在する。
(条件8)自車両との距離が所定の「第1距離閾値よりも小さい第2距離閾値」以下の固定立体物(ガードレール及びフェンス等)が存在する。
なお、第2距離閾値は第1距離閾値と等しくてもよい。
更に、車両周辺条件は、自車両と物体との衝突余裕時間TTC(Time to Collision)を「物体と自車両との距離を、その物体の相対速度にて除する」ことにより求め、その衝突余裕時間TTCが所定の時間閾値以下の物体が存在するとき成立する条件であってもよい。
車両周辺条件が成立しない場合、CPUは、そのステップ1020にて「No」と判定してステップ1050に進み、状況フラグF4を「0」に設定する。即ち、CPUは、自車両が「自車両の周辺に存在する物体」に接近する可能性が低いと判定する。その後、CPUは、ステップ1095に進んで本ルーチンを一旦終了する。
これに対し、車両周辺条件が成立する場合、CPUは、そのステップ1020にて「Yes」と判定してステップ1030に進み、車速センサ52からの情報に基いて、所定の走行状態条件が成立するか否かを判定する。この走行状態条件は、車両の走行状態に関する条件である。例えば、自車両の速度が速度閾値以上である場合(自車両が高速度にて走行している場合)、車線維持制御が不安定になったとき、車両が、短い時間で周囲の物体に接近する可能性がある。従って、本例において、走行状態条件は、自車両の車速が所定の速度閾値STh以上であるときに成立する。
走行状態条件が成立しない場合、CPUは、そのステップ1030にて「No」と判定してステップ1050に進み、状況フラグF4を「0」に設定する。即ち、CPUは、自車両が「自車両の周辺に存在する物体」に接近する可能性が低いと判定する。その後、CPUは、ステップ1095に進んで本ルーチンを一旦終了する。
これに対し、走行状態条件が成立する場合、CPUは、そのステップ1030にて「Yes」と判定してステップ1040に進み、状況フラグF4を「1」に設定する。即ち、CPUは、洗浄処理の実行中に車線維持制御が不安定になったとき、自車両が「自車両の周辺に存在する物体」に接近する可能性が高いと判定する。その後、CPUは、ステップ1095に進んで本ルーチンを一旦終了する。
更に、CPUは、所定時間が経過する毎に、図11にフローチャートにより示した「第1の開始フラグ設定ルーチン」を実行するようになっている。本ルーチンにて設定される洗浄開始フラグF5は、その値が「1」であるとき洗浄処理の実行を許容することを示し、その値が「0」であるとき洗浄処理の実行を許容しないことを示す。洗浄開始フラグF5の値は、上述したイニシャライズルーチンにおいて「0」に設定される。更に、洗浄開始フラグF5の値は、後述する図13のステップ1360においても「0」に設定される。
なお、CPUは、図示しないルーチンを所定時間が経過する毎に実行することにより、「レーダセンサ61、第1カメラシステム62及び第2カメラシステム63」の少なくとも1つに対応する保護窓411が汚れているか否かを検出している。
所定のタイミングになると、CPUは図11のステップ1100から処理を開始してステップ1105に進み、洗浄開始フラグF5の値が「0」であるか否かを判定する。洗浄開始フラグF5の値が「0」でない場合、CPUは、そのステップ1105にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
これに対し、洗浄開始フラグF5の値が「0」である場合、CPUは、そのステップ1105にて「Yes」と判定してステップ1110に進み、「レーダセンサ61、第1カメラシステム62及び第2カメラシステム63」の少なくとも1つに対応する保護窓411に汚れが検出されているか否かを判定する。汚れが検出されていない場合、CPUは、そのステップ1110にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。
これに対し、汚れが検出されている場合、CPUは、そのステップ1110にて「Yes」と判定してステップ1115に進み、LTCフラグF1の値が「1」であるか否かを判定する。LTCフラグF1の値が「1」でない場合、CPUは、そのステップ1115にて「No」と判定してステップ1140に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1195に進んで本ルーチンを一旦終了する。従って、車線維持制御が実行されていない状況下においても、保護窓411の汚れが検出された場合、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
これに対し、いま、車線維持制御(第1操舵支援制御及び第2操舵支援制御の何れか)が実行されていると仮定すると、LTCフラグF1の値は「1」である。この場合、CPUは、ステップ1115にて「Yes」と判定してステップ1120に進み、汚れのレベルが第1レベルLV1であるか否かを判定する。いま、汚れのレベルが第1レベルLV1であると仮定すると、CPUは、そのステップ1120にて「Yes」と判定してステップ1125に進み、状況フラグF4が「0」であるか否かを判定する。状況フラグF4が「0」でない(即ち、洗浄処理中に自車両が自車両の周囲に存在する物体と接近する可能性が高い)場合、CPUは、そのステップ1125にて「No」と判定し、ステップ1195に直接進んで本ルーチンを一旦終了する。従って、洗浄処理が開始されない(以降で説明する図13のルーチンのステップ1310での「No」の判定を参照。)。即ち、洗浄処理の実行が禁止される。
一方、状況フラグF4が「0」である場合、CPUは、そのステップ1125にて「Yes」と判定してステップ1140に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1195に進んで本ルーチンを一旦終了する。従って、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
CPUがステップ1120の処理を実行する時点において、汚れのレベルが第2レベルLV2であると仮定する。この場合、CPUは、そのステップ1120にて「No」と判定してステップ1130に進み、現在の車線維持制御のモードが第1モードであるか否かを判定する。
現在の車線維持制御のモードが第1モードである場合、CPUは、そのステップ1130にて「Yes」と判定してステップ1140に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1195に進んで本ルーチンを一旦終了する。従って、現在の車線維持制御のモードが第1モードである場合、状況フラグF4の値に関わらず(即ち、自車両が自車両の周囲に存在する物体と接近する可能性があるかどうかに関わらず)、洗浄処理が実行される。
CPUがステップ1130の処理を実行する時点において、現在の車線維持制御のモードが第2モードである場合、CPUは、そのステップ1130にて「No」と判定してステップ1135に進む。CPUは、ステップ1135にて、状況フラグF4の値が「0」であるか否かを判定する。状況フラグF4の値が「0」である場合、CPUは、そのステップ1135にて「Yes」と判定してステップ1140に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1195に進んで本ルーチンを一旦終了する。従って、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
一方、状況フラグF4の値が「0」でない場合、CPUは、そのステップ1135にて「No」と判定してステップ1145に進む。CPUは、ステップ1145にて移行フラグF2を「1」に設定し、ステップ1195に進んで本ルーチンを一旦終了する。これにより、図7のルーチンのステップ770にてCPUが「Yes」と判定するので、車線維持制御のモードが第2モードから第1モードに移行される。車線維持制御のモードが第2モードから第1モードに移行された後、CPUが再び図11のルーチンを開始すると、CPUは洗浄開始フラグF5を「1」に設定する(ステップ1130:Yes及びステップ1140)。従って、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
更に、CPUは、所定時間が経過する毎に、図12にフローチャートにより示した「第2の開始フラグ設定ルーチン」を実行するようになっている。本ルーチンにおいても、洗浄開始フラグF5が設定される。
所定のタイミングになると、CPUは図12のステップ1200から処理を開始してステップ1205に進み、洗浄開始フラグF5の値が「0」であるか否かを判定する。洗浄開始フラグF5の値が「0」でない場合、CPUは、そのステップ1205にて「No」と判定し、ステップ1295に直接進んで本ルーチンを一旦終了する。
これに対し、洗浄開始フラグF5の値が「0」である場合、CPUは、そのステップ1205にて「Yes」と判定してステップ1210に進み、現時点が「洗浄スイッチ69が押下された直後の時点」であるか否か(即ち、洗浄スイッチ69が押下されたか否か)を判定する。以下、「洗浄スイッチ69が押下された時点」を、単に「オン時点」と称呼する場合がある。現時点が「オン時点」でない場合、CPUは、そのステップ1210にて「No」と判定し、ステップ1295に直接進んで本ルーチンを一旦終了する。
これに対し、現時点が「オン時点」である場合、CPUは、そのステップ1210にて「Yes」と判定してステップ1215に進んで、LTCフラグF1の値が「1」であるか否かを判定する。
LTCフラグF1の値が「1」でない場合、CPUは、そのステップ1215にて「No」と判定してステップ1230に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1295に進んで本ルーチンを一旦終了する。従って、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
これに対し、LTCフラグF1の値が「1」である場合、CPUは、そのステップ1215にて「Yes」と判定してステップ1220に進み、現在の車線維持制御のモードが第1モードであるか否かを判定する。
現在の車線維持制御のモードが第1モードである場合、CPUは、そのステップ1220にて「Yes」と判定してステップ1230に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1295に進んで本ルーチンを一旦終了する。従って、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
CPUがステップ1220の処理を実行する時点において、現在の車線維持制御のモードが第2モードである場合、CPUは、そのステップ1220にて「No」と判定してステップ1225に進む。CPUは、ステップ1225にて、状況フラグF4の値が「0」であるか否かを判定する。状況フラグF4の値が「0」である場合、CPUは、そのステップ1225にて「Yes」と判定してステップ1230に進み、洗浄開始フラグF5を「1」に設定する。その後、CPUは、ステップ1295に進んで本ルーチンを一旦終了する。従って、洗浄処理が開始される(以降で説明する図13のルーチンのステップ1310での「Yes」の判定を参照。)。
一方、状況フラグF4の値が「0」でない場合、CPUは、そのステップ1225にて「No」と判定してステップ1235に進む。CPUは、ステップ1235にて、オン時点からの経過時間が所定の時間閾値Thb以上であるか否かを判定する。オン時点からの経過時間が所定の時間閾値Thb以上でない場合、CPUは、そのステップ1235にて「No」と判定してステップ1295に進んで本ルーチンを一旦終了する。このように、現在の車線維持制御のモードが第2モードである場合、自車両が自車両の周囲の物体と接近する可能性があるとき、洗浄処理が一定期間だけ開始されないようになっている。なお、上記の経過時間が所定の時間閾値Thbに達する前に状況フラグF4が「1」になった場合、CPUはステップ1225にて「Yes」と判定するので、洗浄処理が開始される。
一方、オン時点からの経過時間が所定の時間閾値Thb以上である場合、CPUは、そのステップ1235にて「Yes」と判定してステップ1240に進み、移行フラグF2を「1」に設定する。その後、CPUは、ステップ1295に進んで本ルーチンを一旦終了する。これにより、図7のルーチンのステップ770にてCPUが「Yes」と判定するので、車線維持制御のモードが第2モードから第1モードに移行される。車線維持制御のモードが第2モードから第1モードに移行された後、CPUが再び図12のルーチンを開始すると、CPUは洗浄開始フラグF5を「1」に設定する(ステップ1120:Yes及びステップ1230)。従って、洗浄処理が開始される。
更に、CPUは、所定時間が経過する毎に、図13にフローチャートにより示した「洗浄処理の開始/終了判定ルーチン」を実行するようになっている。従って、所定のタイミングになると、CPUは図13のステップ1300から処理を開始してステップ1305に進み、洗浄フラグF3の値が「0」であるか否かを判定する。
洗浄フラグF3の値が「0」である場合(即ち、現時点において洗浄処理がまだ実行されていない場合)、CPUは、そのステップ1305にて「Yes」と判定してステップ1310に進み、洗浄開始フラグF5が「1」であるか否かを判定する。洗浄開始フラグF5が「1」であるとの条件は「洗浄開始条件」とも称呼される場合がある。洗浄開始フラグF5が「1」でない場合、CPUは、そのステップ1310にて「No」と判定してステップ1395に直接進んで本ルーチンを一旦終了する。
これに対し、洗浄開始フラグF5が「1」である場合、CPUは、そのステップ1310にて「Yes」と判定してステップ1315に進み、LTCフラグF1の値が「1」であるか否かを判定する。
LTCフラグF1の値が「1」でない場合、CPUは、そのステップ1315にて「No」と判定して、以下のステップ1330乃至ステップ1340を順に行う。その後、CPUは、ステップ1395に進んで本ルーチンを一旦終了する。
ステップ1330:CPUは、洗浄装置65に洗浄処理を開始させる。
ステップ1335:CPUは、洗浄フラグF3を「1」に設定する。
ステップ1340:CPUは、洗浄実行時間を以下のように決定する。汚れのレベルが第1レベルLV1であるとき、CPUは、洗浄実行時間を第1洗浄時間Tm1に設定する。汚れのレベルが第2レベルLV2であるとき、CPUは、洗浄実行時間を第2洗浄時間Tm2に設定する。なお、洗浄スイッチ69が押下されたとき、CPUは、洗浄実行時間を第1洗浄時間Tm1に設定する。
これに対し、LTCフラグF1の値が「1」である場合、CPUは、そのステップ1315にて「Yes」と判定してステップ1320に進み、現在の車線維持制御のモードが第1モードであるか否かを判定する。
現在の車線維持制御のモードが第1モードでない(即ち、第2モードである)場合、CPUは、そのステップ1320にて「No」と判定して、上述したようにステップ1330乃至ステップ1340を順に行う。その後、CPUは、ステップ1395に進んで本ルーチンを一旦終了する。
一方、現在の車線維持制御のモードが第1モードである場合、CPUは、そのステップ1320にて「Yes」と判定してステップ1325に進み、運転者が上述した「Hands-ON」状態であるか否かを判定する。運転者が「Hands-ON」状態でない場合、CPUは、そのステップ1325にて「No」と判定してステップ1395に進み、本ルーチンを一旦終了する。このように、現在の車線維持制御のモードが第1モードである場合、運転者が「Hands-ON」状態でないとき、洗浄処理が開始されない。
一方、運転者が「Hands-ON」状態である場合、CPUは、そのステップ1325にて「Yes」と判定して、上述したようにステップ1330乃至ステップ1340を順に行う。その後、CPUは、ステップ1395に進んで本ルーチンを一旦終了する。
上述したように洗浄処理を開始した後に、CPUが再び図13のルーチンをステップ1300から開始すると、CPUはステップ1305にて「No」と判定してステップ1350に進む。CPUは、ステップ1350にて、洗浄処理を開始した時点からの経過時間が「ステップ1340にて決定された洗浄実行時間」以上であるか否かを判定する。
洗浄処理を開始した時点からの経過時間が洗浄実行時間(Tm1又はTm2)以上でない場合、CPUは、そのステップ1350にて「No」と判定し、ステップ1395に直接進んで本ルーチンを一旦終了する。
これに対し、洗浄処理を開始した時点からの経過時間が洗浄実行時間(Tm1又はTm2)以上である場合、CPUは、そのステップ1350にて「Yes」と判定してステップ1355に進み、洗浄装置65による洗浄処理を終了させる。次に、CPUは、ステップ1360に進んで、移行フラグF2、洗浄フラグF3及び洗浄開始フラグF5の総てを「0」に設定する。その後、CPUは、ステップ1395に進んで本ルーチンを一旦終了する。
以上説明したように、本実施装置は、所定の洗浄禁止条件(上述した車両周辺条件及び走行状態条件)が成立しているか否かに基づき、操舵支援制御中に洗浄処理が開始されたと仮定した場合にその洗浄処理の実行中に自車両が自車両の周囲の物体に接近する可能性が高いと予測されるか否かを判定する。本実施装置は、車線維持制御(操舵支援制御)の実行中に洗浄要求が発生した場合、洗浄禁止条件が成立している(状況フラグF4=1)と判定されるとき、洗浄装置65に洗浄処理を実行させることを、原則として禁止する。洗浄処理を行なうことによって自車両が自車両の周囲の物体に接近する可能性が高いと予測される場合には洗浄処理が禁止されるので、操舵支援制御(第1操舵支援制御又は第2操舵支援制御)が不安定にならない。その結果、「自車両が自車両の周辺に存在する物体に接近する可能性」を低減することができる。
更に、本実施装置は、洗浄処理中に自車両が自車両の周囲の物体に接近する可能性があるかに関わらず、車線維持制御(操舵支援制御)のモードが第1モードであるとき、洗浄装置65に洗浄処理を実行させることを許容する。従って、洗浄禁止条件が成立している(状況フラグF4=1)と判定されたとしても、車線維持制御(操舵支援制御)のモードが第1モードであるとき、洗浄処理が実行され得る。従って、保護窓411をより早い段階で洗浄することができる。洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から乖離したとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
更に、本実施装置は、洗浄禁止条件が成立している(状況フラグF4=1)と判定されたとき、車線維持制御(操舵支援制御)のモードが第2モードであれば、車線維持制御(操舵支援制御)のモードを第2モードから第1モードへ移行させる。従って、操舵支援制御(第1モード)を継続しながら洗浄処理を実行させることができる。たとえ洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から乖離したとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
更に、本実施装置は、車線維持制御(操舵支援制御)のモードが第2モードである場合、洗浄禁止条件が成立していない(状況フラグF4=0)と判定されたとき、洗浄装置65に洗浄処理を実行させることを許容する。従って、たとえ洗浄処理によって第2操舵支援制御が不安定になったとしても、自車両が自車両の周囲の物体に接近することはない。更に、本実施装置は、操舵支援制御のモードを第2モードに維持したままで洗浄処理を実行できるので、操舵支援制御の実行中に運転者が操舵ハンドル302に触れる頻度を低減することができる。よって、運転者が煩わしさを感じる機会を減らすことができる。
更に、本実施装置は、保護窓411の汚れのレベルが第1レベルLV1である場合、以下のように洗浄処理の実行を制御する。具体的には、本実施装置は、洗浄禁止条件が成立している(状況フラグF4=1)と判定されたとき、車線維持制御のモードが第1モード及び第2モードの何れであっても、洗浄装置65に洗浄処理を実行させることを禁止する。これに対し、本実施装置は、洗浄禁止条件が成立していない(状況フラグF4=0)と判定されたとき、洗浄装置65に洗浄処理を実行させることを許容する。
保護窓411の汚れのレベルが第1レベルLV1である場合、操舵支援制御(第1操舵支援制御又は第2操舵支援制御)に対する影響が低いことから、洗浄装置65に洗浄処理を実行させなくても、車両は走行レーン内の適切な位置を比較的安定して走行することができる。従って、本実施装置は、洗浄処理中に自車両が自車両の周囲の物体に接近する可能性が高いと予測される(状況フラグF4=1)とき、車線維持制御のモードが第1モード及び第2モードの何れであっても、洗浄装置65に洗浄処理を実行させることを禁止する。操舵支援制御が洗浄処理によって不安定にならないので、自車両が自車両の周囲に存在する物体に過度に接近するのを防ぐことができる。このような状況からある程度の時間が経過して、洗浄処理中に自車両が自車両の周囲の物体に接近する可能性が低いと判定された(状況フラグF4=0)と仮定する。この場合、本実施装置は、洗浄装置65に洗浄処理を実行させることを許容する。このように、車両の周囲状況に応じて、洗浄処理を実行することができる。
一方、保護窓411の汚れのレベルが第2レベルLV2である場合、操舵支援制御(第1操舵支援制御又は第2操舵支援制御)に対する影響が比較的高いことから、より早く洗浄装置65に洗浄処理を実行させるのが望ましい。従って、本実施装置は、保護窓411の汚れのレベルが第2レベルLV2であり、且つ、車線維持制御のモードが第1モードである場合、洗浄禁止条件が成立しているか否かに関わらず洗浄装置65に洗浄処理を実行させることを許容する。洗浄処理の実行中に第1操舵支援制御が不安定になったとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
更に、本実施装置は、保護窓411の汚れのレベルが第2レベルLV2であり、且つ、車線維持制御のモードが第2モードである場合、洗浄禁止条件が成立していない(状況フラグF4=0)と判定されたとき、洗浄装置65に洗浄処理を実行させることを許容する。これに対して、洗浄禁止条件が成立している(状況フラグF4=1)と判定されたとき、本実施装置は、車線維持制御のモードを第2モードから第1モードへ移行させる。このように車線維持制御のモードが第2モードから第1モードに移行されるので、操舵支援制御(第1操舵支援制御)を継続しながら洗浄処理を実行させることができる。更に、たとえ洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から乖離したとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
本実施装置は、運転者が洗浄スイッチ69を押下して洗浄要求を発生させた場合、以下のように洗浄処理の実行を制御する。本実施装置は、車線維持制御のモードが第2モードである場合、洗浄禁止条件が成立していない(状況フラグF4=0)と判定されるとき、洗浄装置65に洗浄処理を実行させることを許容する。一方、洗浄禁止条件が成立している(状況フラグF4=1)と判定されるとき、本実施装置は、オン時点からの経過時間が所定の時間閾値Thbに達するまで待機する。オン時点からの経過時間が所定の時間閾値Thbに達する前に、「自車両が自車両の周囲の物体に接近する可能性が低い」と判定すれば、本実施装置は、洗浄装置65に洗浄処理を実行させることを許容する。このように、本実施装置は、一定期間待機することにより、車線維持制御のモードを第2モードから第1モードへ移行させことなく、洗浄処理を実行できる。
一方、洗浄禁止条件が成立している状況が継続しているとき、オン時点からの経過時間が所定の時間閾値Thbに達した時点で、本実施装置は、車線維持制御のモードを第2モードから第1モードへ移行させる。このように車線維持制御のモードが第2モードから第1モードに移行されるので、操舵支援制御(第1操舵支援制御)を継続しながら洗浄処理を実行させることができる。更に、たとえ洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から乖離したとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
更に、本実施装置は、車線維持制御のモードが第1モードである場合、運転者が操舵ハンドル302に触れている状態であるか否かを運転者状態情報に基いて判定する。そして、本実施装置は、運転者が操舵ハンドル302に触れている状態であると判定したとき、洗浄装置65に洗浄処理を実行させる。従って、車線維持制御のモードが第1モードである場合、運転者が操舵ハンドル302に触れている状態で洗浄処理が実行される。従って、洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から乖離したとしても、運転者は操舵ハンドル302を直ちに操作することにより車両の位置を即座に修正することができる。
更に、本実施装置は、操舵制御量を演算するたびに当該操舵制御量をRAMに記憶(格納)する。そして、本実施装置は、洗浄処理を開始した時点から洗浄処理が終了するまでの洗浄実施期間において、洗浄処理が開始される直前にRAMに記憶された操舵制御量に基いて車両の操舵角を制御する(ステップ870及びステップ880)。これは、保護窓411を洗浄しているとき、レーダセンサ61及び第1カメラシステム62から精度の高い車両周辺情報を得ることができない可能性があり、従って、適切な操舵制御量が演算できない可能性があるためである。洗浄処理が開始される直前の演算タイミングで求められた操舵制御量を用いることにより、洗浄処理の実行中に車両の位置が走行レーン内の適切な位置から大きく乖離する可能性を低下させることができる。
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
状況フラグF4を設定する図10のルーチンは、上記の例に限定されない。例えば、図10のルーチンは、車両が走行する道路の種別に応じて変更されてもよい。CPUは、図示しないナビゲーション装置から自車両が走行している道路の種別(市街地内の道路、及び、自動車専用道路等)を取得してもよい。自車両が走行している道路が自動車専用道路(例えば、高速道路)である場合、車両の走行状態(車速)に関する判定を行うステップ1030が省略されてもよい。即ち、この構成において、CPUは、ステップ1020にて車両周辺条件が成立したとき、状況フラグF4を「1」に設定し、ステップ1020にて車両周辺条件が成立しないとき、状況フラグF4を「0」に設定する。
ステップ1020における車両周辺条件は、上記の例に限定されない。自車両と物体との距離の閾値(第1距離閾値及び第2距離閾値)は、車両の周辺状況及び車両の走行状態(例えば、車速)等に応じて動的に変化させてもよい。更に、自車両と物体との距離の閾値(第1距離閾値及び第2距離閾値)は、車両の進行方向と物体の位置との関係に応じて変化させてもよい。例えば、車両の前方に存在する物体に対する閾値(第1距離閾値及び第2距離閾値)と、車両の後方に存在する物体に対する閾値(第1距離閾値及び第2距離閾値)とが異なっていてもよい。更に、車両の右側に存在する物体に対する閾値(第1距離閾値及び第2距離閾値)と、車両の左側に存在する物体に対する閾値(第1距離閾値及び第2距離閾値)とが異なっていてもよい。このように、車両の前方、後方、右側、左側に存在する物体に対する閾値(第1距離閾値及び第2距離閾値)は、互いに同じでもよいし、互いに異なっていてもよい。
ステップ1030における走行状態条件は、加速度の条件を含んでもよい。例えば、走行状態条件は、以下の条件9及び条件10の少なくとも一方が成立したときに成立する条件であってもよい。
(条件9)自車両の車速が所定の速度閾値STh以上である。
(条件10)自車両の加速度の大きさが所定の加速度閾値Ath以上である。
CPUは、図10のルーチンにおいて、ステップ1020及びステップ1030に代えて、以下の処理を行ってもよい。CPUは、車両周辺情報(物標情報)に基いて、自車両の周辺に存在する物体の自車両に対する相対速度、当該物体の自車両に対する相対的な移動方向、及び、当該物体と自車両との間の距離(例えば、上述した「自車両と物標との相対関係を表すパラメータ」)等を取得する。CPUは、上述のパラメータに基いて、現時点から所定の時間後までの物体の軌跡を推定する。更に、CPUは、操舵支援制御が不安定になる(即ち、洗浄処理中に目標操舵角θ*が所定の角度だけ増加又は減少される)と仮定して、現時点から所定の時間後までの自車両の軌跡を推定する。CPUは、これら2つの軌跡に基いて、所定の時間後に自車両が物体と接近するか否かを判定する。所定の時間後に自車両と物体との間の距離が所定の距離以下である場合、CPUは、ステップ1040に進んで状況フラグF4を「1」に設定する。一方、所定の時間後に自車両と物体との間の距離が所定の距離より大きい場合、CPUは、ステップ1050に進んで状況フラグF4を「0」に設定する。
更に、図11のルーチンのステップ1135は省略されてもよい。即ち、CPUは、ステップ1130にて「No」と判定したとき、ステップ1145に直接進むように構成されてもよい。このように、汚れのレベルが第2レベルLV2である場合、車線維持制御が不安定になる可能性が比較的高いことから、洗浄禁止条件が成立するか否かに関わらず、車線維持制御のモードを直ちに第2モードから第1モードへ移行させてもよい。
更に、汚れのレベルが第1レベルLV1である場合、車線維持制御に対する影響が比較的低いことから、CPUは、洗浄禁止条件が成立するか否かに関わらず、洗浄処理を実行しないように構成されてもよい。即ち、洗浄開始フラグF5が「0」で維持されてもよい。
更に、図12のルーチンのステップ1235は省略されてもよい。即ち、CPUは、ステップ1225にて「No」と判定したとき、ステップ1240に直接進むように構成されてもよい。このように、洗浄スイッチ69が押下された場合、CPUは、洗浄禁止条件が成立しているとき、車線維持制御のモードを直ちに第2モードから第1モードへ移行させてもよい。これにより、より早く洗浄処理を実行することができる。
本実施装置は、車線維持制御に加えて、車線変更制御を実行するように構成されてもよい。車線変更制御は「Lane Change Support(LCS)」とも称呼される。車線変更制御は、目標軌道に沿って自車両が走行レーンから隣接レーンへ車線変更するように自車両の操舵角を変更する操舵支援制御である。車線変更制御は、追従車間距離制御及び車線維持制御の実行中に「車線変更支援要求」が受け付けられた場合に車線維持制御に代わって実行される。このような構成において、車線変更制御の実行中に洗浄処理が実行されると、車線変更制御が不安定になる。従って、図13のルーチンのステップ1310における洗浄開始条件は、以下の条件11及び条件12の両方が成立したときに成立する条件であってもよい。
(条件11)洗浄開始フラグF5が「1」である。
(条件12)車線変更制御が実行されていない。
「Hands-ON」状態の定義は、上記の例に限定されない。例えば、「Hands-ON」状態は、少なくとも運転者が操舵ハンドル302に触れている状態であればよい。この場合、運転者の視線は監視対象とならないことから、視線センサ67は省略されてもよい。この構成において、運転支援ECU10は、車線維持制御のモードが第1モードであるとき、運転者が操舵ハンドル302に触れている状態であることを前提とした第1操舵支援制御を実行する。運転支援ECU10のCPUは、図9のルーチンのステップ930又は図13のルーチンのステップ1325に進んだ場合、運転者が操舵ハンドル302に触れている状態であるとき、運転者が「Hands-ON」状態であると判定する。
レーダセンサ61、第1カメラシステム62及び第2カメラシステム63の一部が、車両の車室内に配置されてもよい。例えば、第1カメラシステム62aは、車室内のフロントガラスの近傍に配置されてもよい。この構成において、第1カメラシステム62aは、検出面側に配置されたガラス(フロントガラス)を通して車両の前方の画像データを取得する。この構成において、ガラス(フロントガラス)は、第1カメラシステム62aの検出面を保護する役目も果していることから、フロントガラスは上記の保護窓(窓部)に相当する。運転支援ECU10は、第1カメラシステム62aの画像データからフロントガラスの汚れを検出してもよい。運転支援ECU10は、フロントガラスの汚れを検出した場合、フロントガラスを洗浄する洗浄処理として、車両が通常搭載しているフロントガラス用洗浄装置に洗浄処理を実行させる。フロントガラス用洗浄装置は、フロントガラスに対して洗浄液(所謂、ウィンドウォッシャー液)を噴射するとともに、ワイパーを作動させる。本明細書において、カメラの検出面側に配置された保護窓及びガラス等を、単に「窓部」と称呼する場合がある。
運転支援ECU10は、保護窓411の一部を選択して、その選択した保護窓のみに対して洗浄処理を実行してもよい。例えば、運転支援ECU10は、レーダセンサ61aに対応する保護窓411aにおいて汚れが検出された場合、洗浄部403aの電磁式開閉弁503のみを開状態に設定することにより、保護窓411aのみを洗浄してもよい。
洗浄装置65は、洗浄液又は空気のみを保護窓に対して噴射することによって、保護窓を洗浄する構成であってもよい。
例えば、洗浄装置65は、「合流ジョイント502、電磁式開閉弁503及び電動式空気ポンプ504」を備えてなくてもよい。この構成において、配管404が、ノズル部501に直接接続される。従って、洗浄装置65は、洗浄液ポンプ402によって洗浄液を圧送して、洗浄液のみを保護窓411に対して噴射するような構成であってもよい。
洗浄スイッチ69は、運転者が洗浄処理を要求する際に操作され、その要求を表す信号を発生するスイッチであればよい。更に、洗浄スイッチ69は、音声認識装置を用いて運転者の洗浄要求を認識する装置であってもよい。このような装置は、音声により操作されるスイッチと等価であり、本発明における操作スイッチ(操作手段)を構成し得る。
運転支援ECU10は、第2カメラシステム63によって取得された画像データから、「物標情報及びレーン情報」を含む車両周辺情報を取得し、車線維持制御に利用してもよい。