以下、図面を参照して、本発明に係る操舵装置の実施の形態を説明する。
本実施の形態では、本発明に係る操舵装置を、レーンキープ装置に適用する。本実施の形態に係るレーンキープ装置は、ドライバによる操舵を支援するために、カメラによる撮像画像から白線を認識し、走行路である左右の白線(車線)の中央側への補助的な操舵トルクを付加する。
図1〜図3を参照して、本実施の形態に係るレーンキープ装置1について説明する。図1は、本実施の形態に係るレーンキープ装置の構成図である。図2は、図1のレーンキープ装置の制御ブロック図である。図3は、図1のレーンキープ装置における目標横加速度に対する出力トルクのマップである。
レーンキープ装置1は、車線の中央を走行するために必要な出力トルクを設定し、電動パワーステアリング装置を利用してその出力トルクを操舵機構に付加する。その際、レーンキープ装置1では、道路曲率γ(カーブ半径R)、車線に対する車両の向き(ヨー角θ)、車線中心に対する車両位置のずれ量(オフセットD)及びそのオフセットの積分項に基づいて目標横加速度を設定し、その目標横加速度から出力トルクを求める。レーンキープ装置1では、この出力トルクを求める際に、操舵フィーリングと車線追従性を考慮した出力トルクの最大変化率に基づいて求める。特に、レーンキープ装置1では、カーブ路において適切な出力トルクを付加するために、切り戻し場合には切り増し場合より最大変化率を小さくする。レーンキープ装置1は、操舵トルクセンサ10、車速センサ11、CCD[Charge Coupled Device]カメラ20、画像処理部21、ECU[Electronic Control Unit]30を備えており、電動パワーステアリング装置40を利用する。
車両における操舵機構では、ドライバによるステアリングホイール2に対する操作に応じて転舵輪(左右前輪FR,FL)を転舵させる。ステアリングホイール2は、ステアリングシャフト3の一端に固定されている。ステアリングシャフト3は、ステアリングホイール2の回転に伴って回転する。ステアリングシャフト3の他端には、ステアリングギヤボックス4を介してラックバー5が連結されている。ステアリングギヤボックス4は、ステアリングシャフト3の回転運動をラックバー5の軸方向への直進運動に変換する機能を有している。ラックバー5の両端は、ナックルアーム6を介して車輪FL,FRの各ハブキャリアに連結されている。このように構成されているため、車輪FL,FRは、ステアリングホイール2が回転されると、ステアリングシャフト3やステアリングギヤボックス4(ラックバー5)を介して転舵される。
電動パワーステアリング装置40は、EPS[ElectricPower Steering]ECU41によってモータ42を駆動制御し、モータ42による駆動トルクによりドライバによる操舵をアシストする。EPSECU41では、ドライバの操舵による操舵トルクに基づいてアシストトルクを設定し、モータドライバによってそのアシストトルクを発生させるためにモータ42を駆動制御する。特に、EPSECU41では、ECU30からの出力トルク信号を受信すると、その出力トルク信号に示される出力トルクに所定の係数を乗算し、その乗算値(付加トルク)をアシストトルクに加算し、そのアシストトルク+付加トルクを発生させるためにモータ42を駆動制御する。モータ42による駆動トルクは操舵機構に付加され、操舵機構にはドライバによる操舵トルク以外にモータ42によるトルクが加わる。なお、操舵トルク、アシストトルク、出力トルク(付加トルク)は、プラス値/マイナス値で表され、その符号が方向を示す。各トルクは、プラス値が右方向へのトルク、マイナス値が左方向へのトルクを示す。
ラックバー5の一部外周面にはボールスクリュー溝が形成されており、モータ42のロータにはこのボールスクリュー溝に対応するボールスクリュー溝を内周面上に有するボールナットが固定されている。一対のボールスクリュー溝の間には複数のベアリングボールが収納されており、モータ42を駆動させるとロータが回転してラックバー5の軸方向の移動させることができる(すなわち、転舵をアシストすることができる)。この際、モータ42は、EPSECU41のモータドライバから供給された駆動電流に応じたトルクをラックバー5に付与する。
操舵トルクセンサ10は、ステアリングホイール2から入力された操舵トルクを検出するセンサである、操舵トルクセンサ10では、検出した操舵トルクを操舵トルク信号としてECU30に送信する。車速センサ11は、車両の速度を検出するセンサである。車速センサ11では、検出した車速を車速信号としてECU30に送信する。
CCDカメラ20は、レーンキープ装置1を搭載する車両の前方に取り付けられる(例えば、ルームミラーに内蔵)。この際、CCDカメラ20は、その光軸方向が車両の進行方向と一致するように取り付けられる。CCDカメラ20では、車両の前方の道路を撮像し、その撮像したカラー画像(例えば、RGB[Red Green Blue]による画像)を取得する。CCDカメラ20では、その撮像画像のデータを撮像信号として画像処理部21に送信する。CCDカメラ20は、左右方向に撮像範囲が広く、走行している車線を示す左右両側(一対)の白線を十分に撮像可能である。なお、CCDカメラ20はカラーであるが、道路上の白線を認識できる画像を取得できればよいので、白黒のカメラでもよい。
画像処理部21では、CCDカメラ20から撮像信号を取り入れ、撮像信号の撮像画像データから車両が走行している車線を示す一対の白線(道路区画線)を認識する。撮像画像では、路面とその上に描かれた白線との輝度差が大きいことから、走行レーンを区画する白線はエッジ検出などによって比較的検出しやすく、車両前方の車線を検出するのに都合がいい。
そして、画像処理部21では、認識した一対の白線から車線幅、一対の白線の中心を通る線(すなわち、車線の中心)を演算する。さらに、画像処理部21では、車線の中心の半径(カーブ半径R)を演算し、カーブ半径Rから道路曲率γ(=1/R)を演算する。また、画像処理部21では、車線の中心線と車両の前後方向の中心軸とのなす角度(ヨー角θ)及び車線の中心線に対する車両重心位置の横方向のずれ量(オフセットD)を演算する。そして、画像処理部21では、これら認識した一対の白線の情報や演算した各情報を画像信号としてECU30に送信する。
なお、カーブ半径R、道路曲率γ、ヨー角θ、オフセットDは、プラス値/マイナス値で表され、その符号が方向を示す。カーブ半径R、道路曲率γは、プラス値が右方向、マイナス値が左方向を示す。したがって、カーブ路の曲がる方向はカーブ半径R、道路曲率γから判断でき、カーブ半径R、道路曲率γがプラス値の場合が右曲がりのカーブ路であり、マイナス値の場合が左曲がりのカーブ路である。ヨー角θは、プラス値が左方向であり、マイナス値が右方向である。オフセットD(オフセットDの積分値)は、プラス値が車線の左側であり、マイナス値が車線の右側である。本実施の形態では、CCDカメラ20及び画像処理部21が特許請求の範囲に記載する走行路検出手段、角度検出手段に相当する。
ECU30は、CPU[Central ProcessingUnit]、ROM[Read Only Memory]、RAM[Random Access Memory]などからなり、レーンキープ装置1を統括制御する。ECU30では、一定時間(Δt)毎に、画像処理部21からの画像信号を取り入れるとともに、各センサ10,11から検出信号を取り入れる。そして、ECU30では、ドライバによる操作によってレーンキープ装置1が起動されている場合、車両が車線の中央付近を走行するように、画像信号に示される各種情報(道路曲率γ、ヨー角θ、オフセットD)及び車速Vに基づいて出力トルク(目標横加速度)を設定し、出力トルクを示す出力トルク信号を電動パワーステアリング装置40(EPSECU41)に送信する。
図2を参照して、ECU30における出力トルクを求めるための基本的な処理について説明する。
ECU30では、F/Fコントローラ31において道路曲率γと車速Vとの乗算値にゲインKγを乗算し、ヨーレートωγを演算する。ヨーレートωγは、車両をカーブに沿って走行させるために必要となる目標横加速度を発生させるヨーレートであり、直線路では0になる。また、ヨーレートωγは、レーンキープのフィードフォワード出力となる。なお、フィードフォワード出力には、上限が設定されている。
ECU30では、オフセットDと目標オフセットD0(例えば、0)との偏差ΔD=(D0−D)を演算する。そして、ECU30では、積分器32において偏差ΔDを時間積分し、オフセットの積分値IDを演算する。さらに、ECU30では、積分値IDにゲインKIDを乗算するとともに偏差ΔDにゲインKDを乗算し、その2つの乗算値を加算してヨーレートωDを演算する。ヨーレートωDは、オフセット(積分値)を収束させるために必要となる目標横加速度を発生させるヨーレートである。特に、積分値IDに基づいて発生する目標横加速度は、路面カントの影響やフィードフォワード不足などを補償するための目標横加速度である。
ECU30では、ヨー角θと目標ヨー角θ0(例えば、0)との偏差Δθ=(θ0−θ)を演算する。そして、ECU30では、偏差ΔθにゲインKθを乗算し、ヨーレートωθを演算する。ヨーレートωθは、ヨー角を収束させるために必要となる目標横加速度を発生させるヨーレートである。ヨーレートωDとヨーレートωθは、レーンキープのフィードバック出力となる。
ECU30では、求めた3つのヨーレートωγ,ωD,ωθを合算し、目標ヨーレートωを演算する。そして、ECU30では、目標横加速度演算器33において目標ヨーレートωに車速Vを乗算し、目標横加速度Gを演算する。目標横加速度Gは、プラス値/マイナス値で表され、その符号が方向を示す。目標横加速度Gは、プラス値が右方向への横加速度、マイナス値が左方向への横加速度を示す。この目標横加速度Gの変化によって、レーンキープによる操舵機構に付加する出力トルクの方向(レーンキープ操舵方向)が決まる。このレーンキープ操舵方向の判定については、後で詳細に説明する。
ECU30では、出力トルク演算器34において目標横加速度Gに応じた出力トルクTを求める。出力トルク演算器34には、図3に示す出力トルクマップが保持されており、出力トルクマップを参照し、出力トルクTを求める。出力トルクマップとしては、切り増し時のマップTIと切り戻し時のマップTRとが設定されており、2つのマップTI,TRとの間にはヒステリシスが設けられている。このヒステリシスは、操舵機構における摩擦を補償するためのものであり、切り増し時に出力トルクを増加させ、切り戻し時に出力トルクを減少させる。また、出力トルクマップは、出力トルク(目標横加速度G)がプラス側に増加する方向がレーンキープの操舵方向が右方向であり、出力トルク(目標横加速度G)がマイナス側に増加する方向がレーンキープの操舵方向が左方向である。出力トルク演算器34では、レーンキープ操舵方向と目標横加速度Gの符号によって切り増し時のマップTIかあるいは切り戻し時のマップTRかのいずれかのマップを選択する。そして、出力トルク演算器34では、選択したマップから、目標横加速度Gの値に応じた出力トルクを抽出する。このマップから求められる出力トルクは、車両に目標横加速度Gを作用させるために必要な要求トルクNTとなる。さらに、出力トルク演算器34では、最大変化率を考慮し、要求トルクNTに基づいて出力トルクTを設定する。最大変化率は、実際に出力する出力トルクの変化に許容される変化率である(つまり、出力トルクの演算周期(Δt)における最大変化量である)。最大変化率は、操舵フィーリング(レーンキープによる出力トルクによってステアリングホイール2の滑らかな動き)とレーンキープによる車線追従性を両立できる値が設定される。最後に、ECU30では、出力トルクTを示す出力トルク信号をEPSECU41に送信する。なお、この出力トルク演算器34における処理については、後で詳細に説明する。
特に、ECU30では、カーブ路における操舵フィーリングと車線追従性を両立させるために、切り戻し場合には切り増し場合より出力トルクの最大変化率を小さく設定する。そのために、ECU30では、一定時間(Δt)毎に、出力トルク演算器34での処理でカーブ判定処理、カーブ方向判定処理、レーンキープ操舵方向判定処理、カーブ巻き込み判定処理、カーブ出口付近判定処理、レーンキープ出力トルク変化制限処理を行う。ここでは、ECU30における出力トルクの最大変化率に最適値を設定し、その最大変化率に基づいて出力トルクを求めるための処理の概要について説明し、上記した各処理の詳細についてはレーンキープ装置1の動作説明のときに説明する。
なお、本実施の形態では、ECU30におけるカーブ方向判定処理が特許請求の範囲に記載するカーブ方向検出手段に相当し、ECU30におけるレーンキープ操舵方向判定処理が特許請求の範囲に記載する操舵制御方向検出手段に相当し、ECU30におけるカーブ出口付近判定処理が特許請求の範囲に記載するカーブ出口付近判断手段に相当する。
ECU30では、カーブ旋回フラグ、カーブ方向フラグ、レーンキープ操舵方向フラグ、カーブ巻込フラグ、カーブ出口付近フラグの5つのフラグを用いる。ECU30では、一定時間毎に、各処理において各フラグを設定する。また、ECU30では、一定時間毎に、カーブ旋回フラグ、カーブ出口付近フラグについては各フラグの前回値も更新する。
カーブ旋回フラグは、走行路がカーブか否かのフラグであり、カーブ旋回中の場合にはONであり、カーブ旋回中でない場合(直線路走行中の場合)にはOFFである。カーブ方向フラグは、カーブ路の曲がる方向を示すフラグであり、右方向に曲がるカーブ路の場合にはRightであり、左方向に曲がるカーブ路の場合にはLeftであり、カーブ方向を特定できない場合にはNOである。
レーンキープ操舵方向フラグは、レーンキープによる付加トルクを作用させる方向(レーンキープ操舵方向)を示すフラグであり、レーンキープ操舵方向が左方向の場合にはLeftであり、レーンキープ操舵方向が右方向の場合にはRightである。
カーブ巻込フラグは、カーブ旋回中に車両がカーブ内側へ巻き込む可能性があるか否かのフラグであり、巻き込む可能性がある場合にはONであり、巻き込む可能性がない場合にはOFFである。
カーブ出口付近フラグは、車両がカーブ旋回中にカーブ出口に到達していないが、カーブ出口に接近した位置(カーブ出口付近)に到達したか否かのフラグであり、カーブ出口付近に到達した場合にはONであり、カーブ出口付近に到達していない場合にはOFFである。
一定時間(Δt)毎に、ECU30では、カーブ判定処理により道路曲率に基づいてカーブ旋回中であるか否かを判定し、カーブ旋回フラグを設定する。また、ECU30では、カーブ方向判定処理により道路曲率γに基づいて右カーブかあるいは左カーブかを判定し、カーブ方向フラグを設定する。また、ECU30では、レーンキープ操舵方向判定処理により目標横加速度Gに基づいてレーンキープ操舵方向を判定し、レーンキープ操舵方向フラグを設定する。基本的には、目標横加速度Gがプラス側に所定量増加した場合にはレーンキープ操舵方向は右方向であり、目標横加速度Gがマイナス側に所定量増加した場合にはレーンキープ操舵方向は左方向である。
ECU30では、カーブ巻き込み判定処理によりカーブ方向フラグと車両ヨー角θに基づいて車両がカーブ内側に巻き込む可能性があるか否かを判定し、カーブ巻込フラグを設定する。車両がカーブ内側方向を向いているほど、カーブ内側に巻き込む可能性がある。そのため、車両ヨー角θがカーブ内側方向に大きい場合、レーンキープによるカーブ外側方向の付加トルクの大きな変化を許容する必要がある。
ECU30では、カーブ出口付近判定処理により道路曲率の変化に基づいて車両がカーブ出口付近に到達したか否かを判定し、カーブ出口付近フラグを設定する。カーブ路の場合には道路曲率が0かあるいは0近傍から増加し、最大道路曲率となった後に、最大道路曲率から減少し、0かあるいは0近傍になるという道路曲率の変化を利用し、道路曲率の変化を観測することによってカーブ出口付近を判定する。カーブ路では、車両が高車速やカーブ半径が小さいほど、フィードフォワード出力の上限の影響により、フィードフォワード出力不足が発生する場合がある。この場合、車両の車線の外側にオフセットが発生し、カーブ外側の積分値が増加し、この積分項に基づいてカーブの内側方向のトルクが付加される。そのため、車両がカーブ路のカーブ出口から直線路や曲がる方向の異なるカーブに進入すると、そのカーブの内側方向に付加されるレーンキープのトルクの作用により、車両がカーブ内側に巻き込む可能性がある。そのため、カーブ出口付近では、レーンキープによるカーブ外側方向の付加トルクの大きな変化を許容する必要がある。
ECU30では、レーンキープ出力トルク変化制限処理により、カーブ旋回フラグによりカーブ旋回中かあるいは直線路走行中かを判定し、直線路走行中の場合には最大変化率として大きな値(M2)を設定する。ECU30では、レーンキープ出力トルク変化制限処理により、カーブ旋回中の場合にはカーブ方向フラグ、レーンキープ操舵方向フラグ及び要求トルクNTと前回の出力トルクTとの大小関係から切り増しかあるいは切り戻しかを判定し、切り増しの場合には最大変化率として大きい値(M2)を設定する。ECU30では、レーンキープ出力トルク変化制限処理により、切り戻しの場合にはカーブ巻込フラグとカーブ出口付近フラグに基づいてカーブ内側に巻き込む可能性がなくかつカーブ出口付近に到達していないかを判定し、切り戻しの場合にカーブ内側に巻き込む可能性がなくかつカーブ出口付近に到達していないときには最大変化率として小さい値(M1)を設定し、切り戻しの場合にカーブ内側に巻き込む可能性があるかあるいはカーブ出口付近に到達しているときには最大変化率として大きい値(M2)を設定する。そして、ECU30では、レーンキープ出力トルク変化制限処理により、設定した最大変化率を演算周期(Δt)における出力トルクの変化の上限として、要求トルクNTに基づいて今回の出力トルクTを求める。
カーブ旋回中にレーンキープによる付加トルクを切り増し方向に作用させる場合、その付加トルクの変化が大きくても、その付加トルクの方向がカーブ路の曲がる方向なので、ドライバはステアリングホイール2を介してその付加トルクの変化に違和感を受けない。特に、フィードフォワード出力の上限の影響により、フィードフォワード出力不足が発生する場合にはレーンキープによるカーブ内側方向に大きな付加トルクが必要となる。したがって、切り増す場合、操舵フィーリングを考慮した上で、レーンキープによる付加トルクについては大きな変化を許容する。一方、カーブ旋回中にレーンキープによる付加トルクを切り戻し方向に作用させる場合、その付加トルクの変化が大きいと、その付加トルクの方向がカーブ路の曲がる方向と逆方向なので、ドライバはステアリングホイール2を介してその付加トルクの変化に違和感を受ける。また、カーブ外側方向に急激に大きな付加トルクが作用すると、車両の車線逸脱を招く可能性がある。したがって、切り戻す場合、レーンキープによる付加トルクについては変化を制限する。
図1〜図3を参照して、レーンキープ装置1における動作について説明する。特に、ECU30におけるカーブ判定処理について図4のフローチャートに沿って説明し、カーブ方向判定処理については図5のフローチャートに沿って説明し、レーンキープ操舵方向判定処理については図6のフローチャートに沿って説明し、カーブ巻き込み判定処理については図7のフローチャートに沿って説明し、カーブ出口付近判定処理については図8のフローチャートに沿って説明し、レーンキープ出力トルク変化制限処理については図9のフローチャートに沿って説明する。図4は、図1のレーンキープ装置のECUにおけるカーブ判定処理の流れを示すフローチャートである。図5は、図1のレーンキープ装置のECUにおけるカーブ方向判定処理の流れを示すフローチャートである。図6は、図1のレーンキープ装置のECUにおけるレーンキープ操舵方向判定処理の流れを示すフローチャートである。図7は、図1のレーンキープ装置のECUにおけるカーブ巻き込み判定処理の流れを示すフローチャートである。図8は、図1のレーンキープ装置のECUにおけるカーブ出口付近判定処理の流れを示すフローチャートである。図9は、図1のレーンキープ装置のECUにおけるレーンキープ出力トルク変化制限処理の流れを示すフローチャートである。
操舵トルクセンサ10では、ステアリングホイール2から入力される操舵トルクを検出し、その操舵トルクを示す操舵トルク信号をECU30に送信する。車速センサ11では、車速を検出し、その車速を示す車速信号をECU30に送信する。
CCDカメラ20では、車両の前方を撮像し、その撮像画像のデータを撮像信号として画像処理部21に送信する。画像処理部21では、撮像画像から車線を区画する一対の白線を認識する。そして、画像処理部21では、一対の白線から車線幅、車線の中心線、車線中心のカーブ半径Rと道路曲率γ、ヨー角θ及び車両のオフセットDを演算する。さらに、画像処理部21では、これら一対の白線の情報や演算した各情報を画像信号としてECU30に送信する。
ECU30では、一定時間(Δt)毎に、操舵トルク信号、車速信号及び画像信号を受信する。そして、ECU30では、操舵トルク、車速及び画像信号からカーブ半径R、道路曲率γ、ヨー角θ、オフセットDを取得し、これらの各入力データをそれぞれフィルタ処理する。
ECU30のF/Fコントローラ31では、一定時間(Δt)毎に、道路曲率γと車速Vの乗算値にゲインKγを乗算してヨーレートωγを演算する。
また、ECU30では、ヨー角θと目標ヨー角θ0との偏差Δθ=(θ0−θ)を演算し、その偏差ΔθにゲインKθを乗算してヨーレートωθを演算する。
また、ECU30では、オフセットDと目標オフセットD0との偏差ΔD=(D0−D)を演算する。そして、ECU30の積分器32では、偏差ΔDを時間積分し、オフセットの積分値IDを演算する。さらに、ECU30では、積分値IDにゲインKIDを乗算するとともに偏差ΔDにゲインKDを乗算し、その2つの乗算値を加算してヨーレートωDを演算する。
ECU30では、求めた3つのヨーレートωγ,ωD,ωθを合算し、目標ヨーレートωを演算する。そして、ECU30の目標横加速度演算器33では、目標ヨーレートωに車速Vを乗算し、目標横加速度Gを演算する。
次に、ECU30では、一定時間(Δt)毎に、カーブ旋回フラグ(前回値)を前回設定されたカーブ旋回フラグの値で更新する(図4のS10)。そして、ECU30では、カーブ旋回フラグ(前回値)=OFFかつ道路曲率γの絶対値がC1より大きいか否かを判定する(図4のS11)。C1は、道路曲率によって走行路がカーブであるかを判定するための閾値である。S11の判定条件を満たす場合、ECU30では、カーブ判定成立タイマをインクリメントする(図4のS12)。一方、S11の判定条件を満たさない場合、ECU30では、カーブ判定成立タイマをリセットする(図4のS13)。カーブ判定成立タイマは、前回のカーブ判定フラグがOFFの場合に道路曲率γの絶対値がC1より大きい状態がある程度継続したときにカーブ旋回中と判定するためのタイマである。道路曲率γは、撮像画像から認識された車線から求められるので、カメラノイズの影響を受けている場合がある。そこで、道路曲率γの絶対値がC1より大きいと所定回数継続して判定された場合だけ、車両がカーブ旋回中と判定する。
ECU30では、カーブ旋回フラグ(前回値)=ONかつ道路曲率γの絶対値がC2より小さいか否かを判定する(図4のS14)。C2は、道路曲率によって走行路がカーブでないかを判定するための閾値であり(つまり、走行路が直線路であるかを判定するための閾値であり)、C1より小さい値である。S14の判定条件を満たす場合、ECU30では、カーブ判定解除タイマをインクリメントする(図4のS15)。一方、S14の判定条件を満たさない場合、ECU30では、カーブ判定解除タイマをリセットする(図4のS16)。カーブ判定解除タイマは、前回のカーブ判定フラグがONの場合に道路曲率γの絶対値がC2より小さい状態がある程度継続したときにカーブ旋回中でないと判定するためのタイマである。上記したように道路曲率γはカメラノイズの影響を受けている場合があるので、道路曲率γの絶対値がC2より小さいと所定回数継続して判定された場合だけ、車両がカーブ旋回中でない(直進路走行中)と判定する。
ECU30では、カーブ旋回フラグ(前回値)=OFFか否かを判定する(図4のS17)。S17にてカーブ旋回フラグ(前回値)=OFFと判定した場合、ECU30では、カーブ判定成立タイマがT0より大きいか否かを判定する(図4のS18)。S18にてカーブ判定成立タイマがT0より大きいと判定した場合、前回のカーブ判定フラグがOFFの場合に道路曲率γの絶対値がC1より大きい状態が所定時間継続したので、ECU30では、カーブ旋回フラグにON(カーブ旋回中)を設定する(図4のS20)。一方、S18にてカーブ判定成立タイマがT0以下と判定した場合、前回のカーブ判定フラグがOFFの場合に道路曲率γの絶対値がC1より大きい状態が所定時間継続していないので、ECU30では、カーブ旋回フラグにOFF(カーブ旋回中でない)を設定する(図4のS21)。
一方、S17にてカーブ旋回フラグ(前回値)=ONと判定した場合、ECU30では、カーブ判定解除タイマがT1より大きいか否かを判定する(図4のS19)。S19にてカーブ判定解除タイマがT1より大きいと判定した場合、前回のカーブ判定フラグがONの場合に道路曲率γの絶対値がC2より小さい状態が所定時間継続したので、ECU30では、カーブ旋回フラグにOFF(カーブ旋回中でない)を設定する(図4のS21)。一方、S19にてカーブ判定解除タイマがT1以下と判定した場合、前回のカーブ判定フラグがONの場合に道路曲率γの絶対値がC2より小さい状態が所定時間継続していないので、ECU30では、カーブ旋回フラグにON(カーブ旋回中)を設定する(図4のS20)。
次に、ECU30では、一定時間(Δt)毎に、カーブ旋回フラグ=ONかつ道路曲率γ>0か否か(つまり、旋回中のカーブ路が右カーブか否か)を判定する(図5のS30)。S30の判定条件を満たす場合、ECU30では、右カーブ判定成立タイマをインクリメントする(図5のS31)。一方、S30の判定条件を満たさない場合、ECU30では、右カーブ判定成立タイマをリセットする(図5のS32)。右カーブ判定成立タイマは、カーブ旋回中に道路曲率γがプラス値の状態がある程度継続したときに右カーブと判定するためのタイマである。上記したように道路曲率γはカメラノイズの影響を受けている場合があるので、道路曲率γがプラス値と所定回数継続して判定された場合だけ、カーブ方向が右方向と判定する。
また、ECU30では、カーブ旋回フラグ=ONかつ道路曲率γ<0か否か(つまり、旋回中のカーブ路が左カーブか否か)を判定する(図5のS33)。S33の判定条件を満たす場合、ECU30では、左カーブ判定成立タイマをインクリメントする(図5のS34)。一方、S33の判定条件を満たさない場合、ECU30では、左カーブ判定成立タイマをリセットする(図5のS35)。左カーブ判定成立タイマは、カーブ旋回中に道路曲率γがマイナス値の状態がある程度継続したときに左カーブと判定するためのタイマである。上記したように道路曲率γはカメラノイズの影響を受けている場合があるので、道路曲率γがマイナス値と所定回数継続して判定された場合だけ、カーブ路が左方向と判定する。
そして、ECU30では、右カーブ判定成立タイマがT2より大きいか否かを判定する(図5のS36)。S36にて右カーブ判定成立タイマがT2より大きいと判定した場合、カーブ旋回中に道路曲率γがプラス値の状態が所定時間継続したので、ECU30では、カーブ方向フラグにRight(カーブ方向が右方向)を設定する(図5のS37)。S36にて右カーブ判定成立タイマがT2以下と判定した場合、ECU30では、左カーブ判定成立タイマがT2より大きいか否かを判定する(図5のS38)。S38にて左カーブ判定成立タイマがT2より大きいと判定した場合、カーブ旋回中に道路曲率γがマイナス値の状態が所定時間継続したので、ECU30では、カーブ方向フラグにLeft(カーブ方向が左方向)を設定する(図5のS39)。S38にて左カーブ判定成立タイマがT2以下と判定した場合、カーブ旋回中に道路曲率γがプラス値の状態又は道路曲率γがマイナス値の状態が所定時間継続していないので、ECU30では、カーブ方向フラグにNO(カーブ方向を特定できない)を設定する(図5のS40)。T2は、カーブ旋回中に道路曲率γがプラス値又はマイナス値の状態が所定時間継続していることを判定するための閾値である。
次に、ECU30では、一定時間(Δt)毎に、演算によって求めた目標横加速度Gにフィルタ処理を施す(図6のS50)。そして、ECU30では、目標横加速度Gが(目標横加速度リミット−ΔG)より小さいか否かを判定する(図6のS51)。S51にて目標横加速度Gが(目標横加速度リミット−ΔG)以上と判定した場合、ECU30では、目標横加速度Gが(目標横加速度リミット+ΔG)より大きいか否かを判定する(図6のS52)。目標横加速度リミットは、レーンキープの操舵方向を判定するために、目標横加速度Gの変化の方向を判定する際の基準となる目標横加速度である。目標横加速度リミットは、目標横加速度Gが目標横加速度リミットからΔGより大きく変化する毎に、そのときの目標横加速度Gで更新される。ΔGは、レーンキープの操舵方向を判定するために必要な目標横加速度Gの変化量の閾値である。
S51にて目標横加速度Gが(目標横加速度リミット−ΔG)より小さいと判定した場合、目標横加速度GがΔGより減少したので(マイナス側にΔGより増加したので)、車両にレーンキープによる左方向の横加速度を作用させるために、ECU30では、レーンキープ操舵方向フラグにLeftを設定する(図6のS53)。また、S52にて目標横加速度Gが(目標横加速度リミット+ΔG)より大きいと判定した場合、目標横加速度GがΔGより増加したので、車両にレーンキープによる右方向の横加速度を作用させるために、ECU30では、レーンキープ操舵方向フラグにRightを設定する(図6のS54)。そして、ECU30では、目標横加速度リミットを今回の目標横加速度Gで更新する(図6のS55)。
レーンキープ操舵方向フラグを設定すると、ECU30では、レーンキープ操舵方向フラグと目標横加速度Gの符号によって切り増し時のマップTIかあるいは切り戻し時のマップTRかを選択する。そして、ECU30では、選択したマップを参照し、目標横加速度Gの値に応じたレーンキープの要求トルクNTを抽出する。
次に、ECU30では、一定時間(Δt)毎に、カーブ方向フラグ=Rightかつヨー角θ<−αか否か(つまり、右に曲がるカーブ旋回中にヨー角θが右方向(カーブの内側方向)に大きいか否か)を判定する(図7のS60)。S60の判定条件を満たさない場合、ECU30では、カーブ方向フラグ=Leftかつヨー角θ>αか否か(つまり、左に曲がるカーブ旋回中にヨー角θが左方向(カーブの内側方向)に大きいか否か)を判定する(図7のS61)。α(プラス値)は、車両のヨー角がカーブの内側方向に大きいか否かを判定するための閾値である。ヨー角θは、プラス値が左方向であり、マイナス値が右方向である。したがって、ヨー角がαより大きい場合には左方向に大きなヨー角が発生し、−αより小さい場合には右方向に大きなヨー角が発生していることを示す。
S60の判定条件を満たす場合又はS61の判定条件を満たす場合、ECU30では、カーブ巻込判定成立タイマをインクリメントする(図7のS62)。一方、S61の判定条件を満たさない場合、ECU30では、カーブ巻込判定成立タイマをリセットする(図7のS63)。カーブ巻込判定成立タイマは、ヨー角θ(絶対値)がカーブの内側方向にαより大きい状態がある程度継続したときにカーブ内側に巻き込む可能性があると判定するためのタイマである。ヨー角θは、撮像画像から認識された車線から求められるので、カメラノイズの影響を受けている場合がある。そこで、ヨー角θ(絶対値)がカーブの内側方向にαより大きいと所定回数継続して判定された場合だけ、カーブ内側に巻き込む可能性があると判定する。
そして、ECU30では、カーブ巻込判定成立タイマがT3より大きいか否かを判定する(図7のS64)。S64にてカーブ巻込判定成立タイマがT3より大きいと判定した場合、ヨー角θ(絶対値)がカーブの内側方向にαより大きい状態が所定時間継続したので、ECU30では、カーブ巻込フラグにON(カーブ内側に巻き込む可能性が有り)を設定する(図7のS65)。一方、S64にてカーブ巻込判定成立タイマがT3以下と判定した場合、ヨー角θ(絶対値)がカーブの内側方向にαより大きい状態が所定時間継続していないので、ECU30では、カーブ巻込フラグにOFF(カーブ内側に巻き込む可能性が無し)を設定する(図7のS66)。T3は、ヨー角θ(絶対値)がカーブの内側方向にαより大きい状態が所定時間継続していることを判定するための閾値である。
次に、ECU30では、一定時間(Δt)毎に、カーブ旋回フラグ=ONか否かを判定する(図8のS70)。S70にてカーブ旋回フラグがONと判定した場合(つまり、車両がカーブ旋回中の場合)、ECU30では、道路曲率γの絶対値がカーブ中最大曲率より大きいか否かを判定する(図8のS71)。カーブ中最大曲率は、車両がカーブ旋回中における走行路の最大の道路曲率を示し、カーブ旋回中に道路曲率γの絶対値が前回までに設定されているカーブ中最大曲率より大きくなる毎に更新される。S71にて道路曲率γの絶対値がカーブ中最大曲率より大きいと判定した場合、ECU30では、カーブ中最大曲率を道路曲率γの絶対値で更新する(図8のS72)。一方、S71にて道路曲率γの絶対値がカーブ中最大曲率以下と判定した場合、ECU30では、前回のカーブ中最大曲率を保持する。
ECU30では、カーブ出口付近フラグ(前回値)=OFFか否かを判定する(図8のS73)。S73にてカーブ出口付近フラグ(前回値)=OFFと判定した場合、ECU30では、カーブ出口付近判定解除タイマをリセットする(図8のS74)。そして、ECU30では、道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さいか否かを判定する(図8のS75)。Krは、カーブ旋回中に車両がカーブ出口付近に到達したか否かを判定するための係数であり、1より小さい値である。Krは、カーブ旋回フラグがOFFになる前にカーブ出口付近フラグがONするように設定される。したがって、(Kr×カーブ中最大曲率)はカーブ中最大曲率より小さい値であり、道路曲率γの絶対値がカーブ中最大曲率から(Kr×カーブ中最大曲率)まで小さくなったときには車両がカーブ出口付近に到達したことを示す。
S75にて道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さいと判定した場合、ECU30では、カーブ出口付近判定成立タイマをインクリメントする(図8のS76)。一方、S75にて道路曲率の絶対値が(Kr×カーブ中最大曲率)以上と判定した場合、ECU30では、カーブ出口付近判定成立タイマをリセットする(図8のS77)。カーブ出口付近判定成立タイマは、前回のカーブ出口付近フラグがOFFの場合に道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さい状態がある程度継続したときに車両がカーブ出口付近に到達と判定するためのタイマである。上記したように道路曲率γはカメラノイズの影響を受けている場合があるので、道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さいと所定回数継続して判定された場合だけ、車両がカーブ出口付近と判定する。
そして、ECU30では、カーブ出口付近判定成立タイマがT4より大きいか否かを判定する(図8のS78)。S78にてカーブ出口付近判定成立タイマがT4より大きいと判定した場合、前回のカーブ出口付近フラグがOFFの場合に道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さい状態が所定時間継続したので、ECU30では、カーブ出口付近フラグにON(車両がカーブ出口付近)を設定する(図8のS84)。一方、S78にてカーブ出口付近判定成立タイマがT4以下と判定した場合、前回のカーブ出口付近フラグがOFFの場合に道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さい状態が所定時間継続していないので、ECU30では、カーブ出口付近フラグにOFF(車両がカーブ出口付近でない)を設定する(図8のS85)。T4は、道路曲率γの絶対値が(Kr×カーブ中最大曲率)より小さい状態が所定時間継続していることを判定するための閾値である。
一方、S73にてカーブ出口付近フラグ=ONと判定した場合、ECU30では、カーブ出口付近判定成立タイマをリセットする(図8のS79)。そして、ECU30では、道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きいか否かを判定する(図8のS80)。
S80にて道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きいと判定した場合、ECU30では、カーブ出口付近判定解除タイマをインクリメントする(図8のS81)。一方、S80にて道路曲率γの絶対値が(Kr×カーブ中最大曲率)以下と判定した場合、ECU30では、カーブ出口付近判定解除タイマをリセットする(図8のS82)。カーブ出口付近判定解除タイマは、前回のカーブ出口付近フラグがONの場合に道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きい状態がある程度継続したときに車両がカーブ出口付近に到達していないと判定するためのタイマである。上記したように道路曲率γはカメラノイズの影響を受けている場合があるので、道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きいと所定回数継続して判定された場合だけ、車両がカーブ出口付近でないと判定する。
そして、ECU30では、カーブ出口付近判定解除タイマがT5より大きいか否かを判定する(図8のS83)。S83にてカーブ出口付近判定解除タイマがT5より大きいと判定した場合、前回のカーブ出口付近フラグがONの場合に道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きい状態が所定時間継続したので、ECU30では、カーブ出口付近フラグにOFF(車両がカーブ出口付近でない)を設定する(図8のS85)。一方、S83にてカーブ出口付近判定解除タイマがT5以下と判定した場合、前回のカーブ出口付近フラグがONの場合に道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きい状態が所定時間継続していないので、ECU30では、カーブ出口付近フラグにON(車両がカーブ出口付近)を設定する(図8のS84)。T5は、道路曲率γの絶対値が(Kr×カーブ中最大曲率)より大きい状態が所定時間継続していることを判定するための閾値である。
一方、S70にてカーブ旋回フラグがOFFと判定した場合(つまり、車両が直線路走行中の場合)、ECU30では、カーブ中最大曲率を0にリセットし(図8のS86)、カーブ出口付近判定解除タイマをリセットし(図8のS87)、カーブ出口付近判定成立タイマをリセットし(図8のS88)、カーブ出口付近フラグにOFFを設定する(図8のS89)。
そして、ECU30では、カーブ出口付近フラグ(前回値)を今回設定したカーブ出口付近フラグの値で更新する(図8のS90)。
次に、ECU30では、一定時間(Δt)毎に、カーブ旋回フラグ=ONか否かを判定する(図9のS100)。S100にてカーブ旋回フラグがONと判定した場合(つまり、車両がカーブ旋回中の場合)、ECU30では、カーブ方向フラグ=Leftかつレーンキープ操舵方向フラグ=Rightかつ今回の要求トルクNT>前回の出力トルクTか否か(つまり、左カーブ旋回中にレーンキープのトルクを付加する方向が切り戻し方向(右方向)であり、目標横加速度Gに応じた要求トルクNTも切り戻し方向(右方向)に変化させようとしているか否か)を判定する(図9のS101)。S101の判定条件を満たさない場合、ECU30では、カーブ方向フラグ=Rightかつレーンキープ操舵方向フラグ=Leftかつ今回の要求トルクNT<前回の出力トルクTか否か(つまり、右カーブ旋回中にレーンキープのトルクを付加する方向が切り戻し方向(左方向)であり、目標横加速度Gに応じた要求トルクNTも切り戻し方向(左方向)に変化させようとしているか否か)を判定する(図9のS102)。トルクは、プラス値が右方向であり、マイナス値が左方向である。したがって、今回の要求トルクNTが前回の出力トルクTより大きい場合には右方向にトルクを作用させようとしており、今回の要求トルクNTが前回の出力トルクTより小さい場合には左方向にトルクを作用させようとしていることを示す。
S101の判定条件を満たす場合(左カーブ旋回中にレーンキープによる切り戻しを行う場合)又はS102の判定条件を満たす場合(右カーブ旋回中にレーンキープによる切り戻しを行う場合)、ECU30では、カーブ巻込フラグ=OFFかつカーブ出口付近フラグ=OFFか否か(つまり、車両がカーブ内側に巻き込む可能性がないかつカーブ出口付近に到達していないか否か)を判定する(図9のS103)。
S103の判定条件を満たす場合(つまり、カーブ旋回中にレーンキープによる切り戻しを行うときに、車両がカーブ内側に巻き込む可能性がなく、カーブ出口付近に到達していない場合)、出力トルクの最大変化率としてM1を設定する(図9のS104)。M1は、カーブ旋回中に切り戻す場合におけるドライバの操舵フィーリングや車線追従性を考慮して設定され、出力トルクの変化を抑制するための小さい最大変化率である。
S100にてカーブ旋回フラグがOFFと判定した場合(つまり、車両が直線路走行中の場合)、S102の判定条件を満たさない場合(つまり、カーブ旋回中にレーンキープによる切り戻しを行っていない場合)又はS103の判定条件を満たさない場合(つまり、カーブ旋回中にレーンキープによる切り戻しを行うときにカーブ内側に巻き込む可能性があるかあるいはカーブ出口付近に到達している場合)、出力トルクの最大変化率としてM2を設定する(図9のS105)。M2は、カーブ旋回中に切り増す場合や直線路走行中におけるドライバの操舵フィーリングや車線追従性を考慮して設定され、M1より大きく、出力トルクの比較的大きな変化を許容する大きい最大変化率である。
そして、ECU30では、(今回の要求トルクNT−前回の出力トルクT)の絶対値が(最大変化率×演算周期(Δt))より大きいか否か(つまり、今回の目標横加速度Gに応じた要求トルクNTの前回出力トルクTからの変化量が最大許容変化量を超えているか否か)を判定する(図9のS106)。S106にて(今回の要求トルクNT−前回の出力トルクT)の絶対値が(最大変化率×演算周期(Δt))より大きいと判定した場合、ECU30では、今回の要求トルクNTが前回の出力トルクTより大きいか否かを判定する(図9のS107)。
S107にて今回の要求トルクNTが前回の出力トルクTより大きいと判定した場合(つまり、左カーブ旋回中にレーンキープのトルクを切り戻し方向(右方向)に付加する場合)、ECU30では、前回の出力トルクTに(最大変化率×演算周期(Δt))を加算し、その加算値を今回の出力トルクTとする(図9のS108)。S107にて今回の要求トルクNTが前回の出力トルクT以下と判定した場合(つまり、右カーブ旋回中にレーンキープのトルクを切り戻し方向(左方向)に付加する場合)、ECU30では、前回の出力トルクTから(最大変化率×演算周期(Δt))を減算し、その減算値を今回の出力トルクTとする(図9のS109)。これによって、カーブ旋回中に切り戻しを行う場合、レーンキープによって付加されるトルクの変化が制限される。
S106にて(今回の要求トルクNT−前回の出力トルクT)の絶対値が(最大変化率×演算周期(Δt))以下と判定した場合(つまり、今回の目標横加速度Gに応じた要求トルクNTの前回出力トルクTからの変化量が最大許容変化量を超えていない場合)、ECU30では、今回の出力トルクTとして今回の要求トルクNTを設定する(図9のS110)。
そして、ECU30では、今回設定した出力トルクTを示す出力トルク信号をEPSECU41に送信する。さらに、ECU30では、前回の出力トルクTを今回設定した出力トルクTで更新する(図9のS111)。
EPSECU41では、出力トルク信号を受信し、その出力トルク信号に示される出力トルクに所定の係数を乗算する。そして、EPSECU41では、その乗算値(付加トルク)をアシストトルクに加算し、そのアシストトルク+付加トルクに応じてモータ42を駆動制御する。モータ42では、EPSECU41による制御によって所定のトルクを発生し、そのトルクを操舵機構に付加する。すると、操舵機構には、ドライバによる操舵トルクに応じたアシストトルクが加わるとともに、車両を車両中心に沿って走行させるための補助的な付加トルクが加わる。
図10には、左カーブ旋回中にレーンキープによる切り戻しを行う場合の出力トルクTの時間変化OT、OT’を示している。時間変化OTは、レーンキープ装置1による最大変化率による出力トルクの変化の制限を行った場合であり、出力トルクが徐々に変化している。そのため、レーンキープによる付加トルクがカーブの逆方向に作用しているが、ドライバはステアリングホイール2を介してそのトルクの変化に対して違和感を受けない。一方、時間変化OT’は、最大変化率による出力トルクの変化の制限を行っていない場合であり、出力トルクが急変している。そのため、ドライバはステアリングホイール2を介してそのトルクの急激な変化に対して違和感を受ける。
図11には、左カーブ旋回中にレーンキープによる切り戻しを行う場合の車両の走行軌跡ML、ML’を示している。走行軌跡MLは、レーンキープ装置1による最大変化率による出力トルクの変化の制限を行った場合であり、徐々に変化する出力トルクによって車線の中心線に沿った軌跡となっている。一方、走行軌跡ML’は、最大変化率による出力トルクの変化の制限を行っていない場合であり、急激な出力トルクによって車両の車線逸脱が発生している。
このレーンキープ装置1によれば、カーブ旋回中に切り戻しの場合には切り増しの場合に比べて出力トルクの最大変化率を小さい値とすることにより、切り戻しを行うときには出力トルクの変化を制限する。そのため、レーンキープ装置1では、切り戻しの場合に適切なトルクを付加することができ、操舵フィーリングを向上させるとともに、車線逸脱も発生せず、車両を車線中心に沿って走行させる精度を向上させることができる。
さらに、レーンキープ装置1では、カーブ旋回中に切り戻しの場合でも車両がカーブ内側に巻き込む可能性がある場合やカーブ出口付近に到達した場合には出力トルクの最大変化率を大きい値とすることにより、出力トルクの変化の制限を解除する。そのため、レーンキープ装置1では、カーブ内側に巻き込む可能性がある場合には切り戻し方向に大きなトルクを付加することができ、車両のカーブ巻き込みが発生することはない。また、レーンキープ装置1では、カーブ出口付近に到達した場合には切り戻し方向に大きなトルクを付加することができ、車両のカーブ巻き込みが発生することはない。
以上、本発明に係る実施の形態について説明したが、本発明は上記実施の形態に限定されることなく様々な形態で実施される。
例えば、本実施の形態ではレーンキープ装置に適用したが、他の装置にも適用可能であり、例えば、自動操舵装置に適用できる。
また、本実施の形態では電動パワーステアリング装置を利用して操舵トルクを付加する構成としたが、レーンキープ装置にラックやピニオンをアシストするアクチュエータを備える構成としてもよい。したがって、パワーステアリング装置を備えない車両にも適用可能である。また、電動パワーステアリング装置ではなく、油圧式のパワーステアリング装置にも適用可能であり、油圧を調整するアクチュエータを制御することによって操舵トルクを付加する構成としてもよい。
また、本実施の形態では操舵機構に操舵トルクを付加することによってレーンキープ制御を行う構成としたが、操舵トルクに限定するものでなく、ステアリングの操舵角度、転舵輪の角度、車両のヨー角などの操舵状態を変化させることができる他のパラメータによってレーンキープ制御を行う構成としてもよい。
また、本実施の形態では一対の白線を認識することにより車線を検出する構成としたが、白線以外の黄線などの他の線も認識することにより車線を検出する構成としてもよいしあるいは路肩や車線と歩道とを区画するブロックなどを認識することにより車線を検出するなど他の方法により車線を検出する構成としてもよい。また、本実施の形態では車線がある道路に適用したが、車線がない道路に対しても適用可能である。この場合には、その道路の路肩などを検出する必要がある。
また、本実施の形態ではカメラによる撮像画像に基づいて車線(走行路)を認識し、その認識した車線に基づいてカーブ半径(道路曲率)、車両のヨー角、車両のオフセットを演算する構成としたが、他の手法によって走行路やこれらのパラメータを求めてもよく、例えば、ナビゲーションシステムでの処理や地図情報に基づいて検出する場合、各種センサを用いて検出する場合がある。
また、本実施の形態ではレーンキープの出力トルクの最大変化率を制御することによって切り増す場合と切り戻し場合との出力特性を変更する構成としたが、出力トルクの大きさ自体を制御することによって切り増す場合と切り戻し場合との出力特性を変更するようにしてもよい。
また、本実施の形態ではカーブ出口付近を道路曲率に基づいて判断する構成としたが、ナビゲーションシステムによる現在位置と地図情報に基づいて判定するなどの他の方法で判断してもよい。
また、本実施の形態では最大変化率を制御する際に切り戻す場合のカーブ内側巻き込む可能性とカーブ出口付近も条件としたが、この2つの条件のいずれか一方だけを条件としてもよいし、あるいは、この2つの条件が無くてもよい。
1…レーンキープ装置、2…ステアリングホイール、3…ステアリングシャフト、4…ステアリングギヤボックス、5…ラックバー、6…ナックルアーム、10…操舵トルクセンサ、11…車速センサ、20…CCDカメラ、21…画像処理部、30…ECU、31…F/Fコントローラ、32…積分器、33…目標横加速度演算器、34…出力トルク演算器、40…電動パワーステアリング装置、41…EPSECU、42…モータ