以下、本発明の実施の形態を、添付図面に示した本発明の実施例に基づいて説明する。
図1ないし図11は本発明の第1実施例を示すものであり、図1は車両用操舵支援装置の全体構成図、図2は制御ブロック図、図3は制御アルゴリズムの一部を示すフローチャート、図4は制御アルゴリズムの一部を示すフローチャート、図5は制御アルゴリズムの残部を示すフローチャート、図6は制御アルゴリズムでの処理を説明するための図、図7はゲインの時間的な変化を示す図、図8は車線変更時の動作説明を補足するための道路の断面図、図9は図5の道路での通常時の操舵力の分布を示す図、図10は車線変更の意志が判別された後の基準目標経路上の操舵力の変化を示す図、図11は車線変更の意志が判別された後の第2目標経路上の操舵力の変化を示す図である。
先ず図1において、この車両用操舵支援装置は、ドライバーが回転操作するステアリングハンドル1と、該ステアリングハンドル1の操作に応じて回転作動するステアリングシャフト2と、操向輪としての前輪5を作動せしめる操向手段3と、該操向手段3を作動せしめる駆動手段4と、駆動手段4を制御する制御ユニットとしてのCPU15とを備える。
ステアリングシャフト2は、ステアリングハンドル1に一端が連結される伝動軸2aの他端と、伝動軸2cの一端とがトーションバー2bを介して連結されて成るものであり、伝動軸2cの他端が操向手段3に連結される。また操向手段3は、前記伝動軸2cの他端に設けられたピニオン8と、該ピニオン8に噛合するラック9とでラックアンドピニオン型に構成されるものであり、ラック9の両端がタイロッド10を介して左、右の前輪5にそれぞれ連結される。而してピニオン8の回転によりラック9が図1で上下に駆動され、そのラック9の作動に応じて両前輪5がその回転軸まわりに転向せしめられ、それにより所望の操舵を得ることができる。
駆動手段4は、ステアリングシャフト2における伝動軸2cの一端に連結されるものであり、モータ11と、該モータ11の出力を倍力してステアリングシャフト2の伝動軸2cに入力するためのウォームギヤ機構12とを備え、該ウォームギヤ機構12は、モータ11の出力に連なるねじ歯車13と、伝動軸2cに設けられたウォーム歯車14とが相互に噛合されて成る。
駆動手段4におけるモータ11の作動は、CPU15により制御されるものであり、該CPU15には、ステアリングシャフト2上にあって操舵力を検出する操舵力検出手段としての操舵力センサ16、モータ11の回転角度を検出するエンコーダである操舵角度検出手段としての操舵角度センサ17、車両の速度を電気的に検出する車速センサ18、車両の垂直軸まわりの回転速度を電気的に検出するヨーレイトセンサ19、ならびに車両の前方道路状況を撮像するCCDカメラ20でそれぞれ得られた情報が入力される。また車線誘導制御を実行するか否かを運転席で切替え操作可能なSAS(Steer Assist System)スイッチ21と、車線誘導機能が作動中であることを表示する表示灯22と、ドライバーの車線変更の意思を確認するためのウインカー(方向指示器)40とがCPU15にそれぞれ接続される。
ここで例示の駆動手段4について言及すると、ステアリングシャフト2上にウォームギヤ機構12が設けられたアクチュエータは、主として軽量車両のパワーステアリングで公知公用に供されているものである。このような形式のパワーステアリングでは、操舵力の検出を行う操舵力センサ16がウォームギヤ機構12の近くでかつステアリングハンドル1側に設けられており、この実施例では、該駆動手段4および操舵力センサ16の両方を車線誘導制御のシステムと共用している。而して該操舵力センサ16の原理は、トーションバー2bが操舵力を受けて捩じれるのを、カム等の機構で軸方向の直線偏位に変換し、これをポテンショメータ等で電気信号に変換して取出すようにしたもので、公知公用に供されている。
図2において、CCDカメラ20で撮像された画像には、画像処理部23において特徴点抽出およびハフ変換等の処理が施され、画像処理部23での画像処理後の画像に基づいて走行可能領域認識部24で走行可能領域が探索され、その結果に基づき目標経路設定部25でこれから走行しようとしているコースの計画が策定されて、CPU15に入力される。
エンコーダ形式である操舵角度センサ17の出力はCPU15に直接入力され、操舵力センサ16の出力はアナログ信号であるのでA/D変換器26を介してCPU15に入力され、車速センサ18およびヨーレイトセンサ19の出力もCPU15に直接入力される。
CPU15でのモータ11の作動量算出結果に対応したデジタル信号がD/ A変換器27でアナログ信号に変換され、さらにその微弱なアナログ信号がモータアンプ28で電流値に変えられてモータ11に与えられる。
なお、CPU15は、計算に必要な各種のゲインや定数等を記憶しておく記憶装置(ROM)29を内部に備えており、必要に応じてROM29の情報が読み出される。
而してCPU15は、後述するアルゴリズムに従い、モータ11を作動せしめることで車線に追従する操舵力を発生させてドライバーを誘導するとともに、ステアリングハンドル1に加えられるドライバーの操舵力に応じて前輪5を誘導コースから適正量、偏向させ、ドライバーはその偏向量に応じた反力を路面情報として受け取るようになる。
ここに例示した図1および図2の構成は、後述の第2ないし第7実施例まで基本的には共通であり、些細な相違がある場合には、その都度説明する。
図3ないし図5はCPU15で設定される制御アルゴリズムを示すものであり、以下の実施例では、このシステムの起動サイクルを全て5ミリ秒とした場合について述べている。システムはエンジンがかかっているなどの所定の条件が満たされたときに起動せしめられるものであり、図3のステップS111で各種センサからの情報を読みだす。次のステップS112で、フラグFlag-SASが「1」であるか否か、すなわち車線誘導機能を発揮させる条件が揃っていて起動中なのかどうかを判別し、未だ起動していなければ、ステップS113でSASスイッチ21が押されたかどうかを判別し、押されていなければステップS114(図5)に進み、モータ11への出力トルクを「0」と決定する。すなわちモータ11は何らのトルクを発生することなく、ドライバーによる通常の操舵が行われることになる。
ステップS113で、SASスイッチ21が押されたことを確認したときにはステップS115に進み、システムが起動中であることを示すフラグFlag-SASを「1」にするとともに表示灯22を点灯し、ステップS118に進む。また先のステップS112で既にフラグFlag-SASが「1」となっていた場合にはステップS116に進み、このステップS116でSASスイッチ21が消されたかどうかを判別し、消されたときはステップS117に進んでフラグFlag-SASを「0」にするとともに表示灯22を消灯してステップS114に進む。またステップS116で、SASスイッチ21が消されていないことを確認した場合にはステップS118に進む。
ステップS118では、以後の計算式で使う記号の符号を取り決める。すなわち操舵力τsが正のとき( 時計方向のとき )は定数Eを「+1」とし、操舵力τsが負のとき(反時計方向のとき)は定数Eを「−1」としておく。定数Eはこのように操舵力の正負によって符号を変えるが、定数Eだけではなく、以下のフローで定数Eを添字として付した定数、たとえばゲインKE 等はこの取決めに従うものとする。
ステップS118に続くステップS119〜ステップS123では、先の出願(特開平5−197423号公報)に詳述されたものと同じ処理を実行し、これから車両を誘導するための目標点Pi を設定するとともに、後に用いる補正係数Kmiを求める。その詳細は前記公報に詳述されているので、ここでは簡潔に述べるに留める。
すなわち図6で示すX−Y固定座標系において、車両Wを原点とし、車両Wの前後方向をx軸、車両Wの車幅方向をy軸とするx−y相対座標が設定され、CCDカメラ20、画像処理部23、操向可能領域認識部24および目標経路設定部25による画像情報に基づく目標経路Mがx−y相対座標系上に設定されており、ステップS119では車両Wの傾斜角度ΘW を求め、ステップS120では車両Wの現在位置のX−Y固定座標系上の位置(XW ,YW )を算出し、さらにステップS121では目標経路M上の目標点Pi を設定する。
またステップS119〜S121の処理と平行してステップS122,S123の割り込み処理が行なわれるものであり、ステップS122においては、画像情報から車両の走行可能経路Ai を求めるとともに走行可能経路Ai の曲率ρi と、車線幅Li とを求める。またステップS123で、曲率ρi 、車線幅Li 、および現在の車速Vからファジー推論により補正係数Kmiを求める。これは、走行経路の曲率などによっては目標経路Mに滑らかに収束するのが困難であることに鑑み、前記曲率ρi や車線幅Li 等の状態量に応じて補正係数Kmiを求めるようにしたものである。
ここで添字記号i は前方の車線が複数ある場合であってその車線ごとの数値を表すものとする。たとえば現在走行中のものについてはi=0とし、右側の車線に関する数値にはi=+1、左側車線に関する数値にはi=−1を与える。先に定義した定数Eを使えば、隣接車線に関する数値にはi=Eと置くことで左右を統一的に扱えるようになる。車線変更に際しては一気に2車線を変更する、所謂ダブルレーンチェンジはここでは扱わないものとする。したがって4車線以上ある道路であってもiは「0」か「E」の2つのみである。
ステップS121,S123の処理後には、図4で示すステップS130に進むが、この図4において、一点鎖線で囲んだフロー部分は第1実施例を特徴付けるフローであり、以下、第7実施例まで多くの実施例を例示するが、この一点鎖線で囲んだ部分が各実施例で相互に異なるものとなっている。
ステップS130では、フラグFlag-L/Cが「1」となっているかどうかを判別し、「1」ではなかったときにはステップS131に進み、このステップS131でフラグFlag-Dが「1」かどうかを判定する。これも否定されるとステップS132に進み、現在の走行車線中心からの偏位ΔLo が車線幅Lの40%を超えたかどうかを判別する。偏位ΔLo が車線幅Lの40%以内であるならば車線の変更を行う意志がドライバーにはないものと見なして、ステップS133に進み、第1のタイマーCt を「0」に設定してステップS134に進み、自車車線(基準車線)に関するゲインKO を所定の大きさのゲインKに、また隣接車線(第2車線)に関するゲインKE を0にしておく。
ここでゲインKE は定数Eが「+1」と「−1」の2つを取ることからKE も2つあることになるが、議論したいのは、操舵力τs の方向に関するゲインKE だけであり、この例では操舵力τs と反対方向のゲインKE を常に「0」としておく。
先のステップS132で、偏位ΔLo が車線幅Lの40%を超えていると判断したときには、ステップS135において、車線変更の意志判別のためのフラグFlag-Dを「1」に設定し、次のステップS136で第2のタイマーDt を200(サイクルタイムが5ミリ秒であるから1秒の判別時間を設けたことになる)に設定する。さらにステップS137で、前述のステップS134と同じくゲインKO ,KE を設定し、ステップS138に進む。このステップS138では、第2のタイマーDt が「0」となったかどうかを判定するが、上記ステップS136でDt =200と設定したので、始めはステップS138での判定結果は否定となり、ステップS133に戻ることになる。また後述するように1秒経って第2のタイマーDt が「0」となってしまえばドライバーの車線変更の意志が確認できたので、ステップS139においてフラグFlag-Dを「0」に設定するとともに、フラグFlag-L/Cを「1」に設定し、続いてステップS140で、第1のタイマーCt を「1000」に設定する。この数字「1000」は、上述の第2のタイマーDt と同じ理由で5秒に相当するものである。
ステップS141では、第1のタイマーCt のカウント値に応じて前記のゲインKo ,KE を次のように変更する。すなわち、最初の2秒間(600<カウント値≦1000)ではサイクルが回る度にKo を前回の数字よりも微小量δKだけ小さくして新たにKo と置く。このδKは400回サイクルが回ると丁度「0」になるようにその大きさが選ばれる。この間KE は一貫して「0」である。また第1のタイマーCt の次の1秒間(400<カウント値≦600)では2つのゲインKo ,KE のいずれも「0」としておく。最後の2秒間(0<カウント値≦400)では、ゲインKo が一貫して「0」であるが、ゲインKE は各サイクルごとに前回の量にδK′だけ大きい数字を更新適用している。そしてこのδK′も400回サイクル回ったときKE が丁度Kとなるような量に選ばれる。この例では、たまたまδK=δK′=K/400となっているが、一般にゲインKo がKから「0」になる時間と、ゲインKE が「0」からKになる時間とは違う場合が想定されるため、δKとδK′とは異なる数字が選べるようにアルゴリズムが設定されている。
図7には、こうして定義したときの2つのゲインKo ,KE の時間的な変化の様子が右側に車線変更したときを例にして明示されている。すなわち図7(a)で示すように、ゲインKo は、第2のタイマーDt が200をカウントした後、第1のタイマーCt のカウント開始に応じて減小し始め、第1のタイマーCt が「600」となったときすなわち400回サイクルが回った後は「0」となる。一方、図7(b)で示すように、ゲインKE は、第2のタイマーDt のカウント値が「0」となった後に第1のタイマーCt のカウント値が「400」となるまでは「0」であるが、その後、増大することになる。この図7から明らかなように、2つのゲインKo ,KE は連続的に減少と増加を見せ、互いに主役を交替する格好になる。左側に車線変更するときのゲインK-1はこの場合には「0」に固定されている。
また先のステップS131でフラグFlag-Dが「1」となっていたときには、ステップS142に進み、今度は前記偏位ΔLo が車線幅Lの40%を超えているかどうかを再び検証する。これは車線変更を一度試みたが、何らかの理由で車線変更を中止したかも知れないからである。ステップS142で40%を割り込んでいると判断したときには、例え車線変更の意志を確認している最中であってもステップS143においてフラグFlag-Dを「0」にしてステップS133に進み、第1のタイマーCt を「0」にしてステップS134でゲインKo ,KE を当初の設定値に戻す。上述とは逆にステップS142での検証の結果、偏位ΔLo が車線幅Lの40%を超えた状態が続いているならば、ステップS144で意志判断に要する第2のタイマーDt を「1」だけ減じてステップS138に進む。このステップS144で第2のタイマーDt を減じて行く結果、前記のように何時かはDt =0が生じることになるのである。
先のステップS130でフラグFlag-L/Cが既に「1」となっていれば、ステップS145に進んで第1のタイマーCt を「1」だけ減ずる操作を行う。こうして第1のタイマーCt がサイクル毎に1つずつ減少するのである。
このようにしてゲインKo ,KE が全て定義されたあとは、図5のステップS170に進む。このステップS170からステップS172までの処理は、先の出願(特開平5−197423号公報)に詳述されている。以下、簡単に述べれば、ステップS170では、目標ヨーレイトγmiを算出するのであるが、その算出にあたっては、先ず車両Wが目標点Pi に到達するまでの仮想経路Sp(図6参照)に沿う走行時に生じる目標点到達ヨーレイトγpiを先ず求め、このヨーレイトγpiで目標点Pi に到達した場合の目標点Pi での車両Wと目標経路Mi との角度偏差Δθpiを算出し、角度偏差Δθpiを解消するヨーレイトの補正分Δγpiを求め、この補正分Δγpiで先に求めたヨーレイトγpiを下記式に基づいて補正し、補正後のヨーレイトを以て目標ヨーレイトγmiとする。
γmi=γpi−Kmi・Δγpi 上記式において補正係数Kmiは、上述のステップS123で得られたものを用いる。
引き続いてステップS171では、ステップS170で得た目標ヨーレイトγmiを生ぜしめるのに必要な前輪5の目標舵角δmiを求め、さらにステップS172で、その目標舵角δmiに前輪5の舵角を一致させるためのモータ11の偏位角度の目標値θdiを、操向手段3および駆動手段4のギヤレシオに基づいて算出する。ステップS173では、該モータ11の偏位角度が実現するように、現在のモータの偏位角度θt と目標偏位角度θdiとの差分に、先に決定したゲインKo ,KE を乗じたものをモータトルクの指令値として計算する。ここで計算式が2つあるのは、もし現在走行中の車線に沿って継続的に走行するには上の式でKo =Kと考えて算出されたモータトルクTO を使うのが適当であり、逆にもし隣接車線内の目標経路に沿って継続的に走行するならば、KE =Kと考えて算出されたモータトルクTE を使うことが適当であることを意味している。
ところで、図5においてステップS173を点線で囲んで表示したのは、後述する第6実施例でこのステップS173と同じ目的でモータトルクを算出するのであるが、その第6実施例でのモータトルク算出処理に該当する部分であることを意味するためであり、第1実施例では意味を持たない。
上記ステップS173で得たモータトルクの指令値TO ,TE を、次のステップS174で算術的に足した量をモータトルクとして決定し、ステップS175でその決定量をモータアンプ28に出力する。但し、ゲインKo ,KE は先のステップS141で定義したように、少なくともいずれか一方が「0」である点、すなわちモータトルク指令値TO ,TE の少なくともいずれか一方が「0」である点に注意する必要がある。
モータアンプ28への出力後、ステップS176で第1のタイマーCt が「0」になったかどうかを判別し、「0」となっていなければ再び元に戻って同じサイクルの処理を実行するが、「0」ならばステップS177でフラグFlag-L/Cを「0」と置き、続いてステップS178で車線の更新を行う処置を取る。すなわち車線変更後の車線を改めて現在走行中の車線として登録更新する作業を行う。これによって新しい車線には「0」が割り振られ、隣接車線には「E」が割り振られる。この処置を行ったあとは元のフローに戻り、以下同じことが繰り返される。
次にこの第1実施例の作用について説明するが、その前に、図8により走行中の道路の構造を簡単に説明しておく。図8では3車線が示されていて、中央の車線を現在の車両が走行しているものとする。各々の車線には、先の出願(特開平5−197423号公報)に開示された手法で、目標経路が設定される。この目標経路は前記公報開示の技術を用いるだけではなく、他の手法で構築しても良いし、あるいはハード的に道路設備側に用意されたものでも良い。このような道路設備側の事例としては地中に埋設した磁力線などが公知である。しかしここでは前記公報開示の技術で設定されたものとして説明を続ける。
上述の図8で示した道路において、車線変更前の操舵力τsは、図9で示すように設定される。すなわち現在の走行車線の目標経路上を走行しているときには操舵力τs は「0」であるが当該目標経路から外れると、操舵力τsはその偏差に応じて車両を中央の目標経路に戻すような方向に働く。このときの操舵力τs と、経路からの偏差との間の関係は車両の足回りのジオメトリ(幾何学的な構成)によって複雑な曲線となるが、以下では説明を分かりやすくするために単純化して、図9で示すように直線で近似させている。操舵力τsの上限はモータ11の容量で物理的に決まるため、目標経路から遠く離れても操舵力τsはそのまま直線的に増加するのではなく、所定値以上には増加しない。またモータ11に余裕がある場合でも、本出願人が別に出願(特願平8−21322号)しているように、操舵力τsの増加の割合を目標経路から離れるにつれて低減させ、比較的容易に車線変更を行えるようにすることもできる。しかしこれらは本発明とは直接に関係しないためにここでは言及しない。いずれにせよこの操舵力τsが以下に言う基準誘導力である。
この基準誘導力は、図3〜図5の制御アルゴリズムにおけるステップS141で定義したゲインKo によって、図10で示すように変化するものであり、第2のタイマーCd のカウント終了後、第1のタイマーCt のカウント値が減少する(時間が経過する)につれて、基準誘導力が順次低減を続け、終には基準誘導力が消滅する。この誘導力が消滅した結果、ドライバーは通常の車両と同じ感覚で操舵できるようになる。また消滅していく最中にも車線変更の操舵によって増大した誘導力が時間の経過とともに低減するので、自然な感覚を取り戻すことができる。
車両が、たとえば右側の車線に移ったときに、第1のタイマーCt のカウント値が減少する(時間が経過する)のに応じて誘導力が再び増大する様子が図11に示される。この際、その車両の原点は元の車線(基準車線)には無く、第2車線の第2目標経路に置かれている。したがって、この場合には時間と共にドライバーが感じる操舵力の方向は第2目標経路に向かっている。もし車両が第2目標経路上にあるならば、この誘導力は「0」となる。誘導力は第2目標経路から離れるに比例して増大する。これが第2誘導力である。
このようにドライバーが感じ取る操舵力は、車線変更の前後で自然に元の車線を維持するものから第2車線を維持するものに連続的に切り替わることになり、自然な車線変更を約束できる。
また途中で車線変更を何らかの理由から中止した場合でも、システムはこれを察知して元の車線に沿って走行するのに適した基準誘導力を回復するので、ドライバーは煩わしい操作を必要とせず、継続して元の車線を追従走行できる。
この第1実施例では、フラグFlag-L/Cが一旦「1」になったあとは車線変更中止の場合はないものとして説明したが、フラグFlag-L/Cが「1」のときでも車線変更中止の事態に対応したければ、ステップS130で肯定された後、いきなりステップS145に進むのではなく、その中間にステップS142と同じ判断プロセスを設けて、その判断結果が否定されたときにはフラグFlag-L/Cを「0」に戻したあとステップS143に進むように構成し直せばよい。
図12および図13は本発明の第2実施例を示すものであり、図12は制御アルゴリズムの要部を示すフローチャート、図13は図5の道路上での操舵力の移動の状況説明図である。
この第2実施例の制御アルゴリズムは、前述の第1実施例の制御アルゴリズムにおいてその図4で示された部分(一点鎖線で囲まれた部分)を、図12の一点鎖線で囲まれた部分で置換することにより構成されるものであり、その他は第1実施例と同じであるものとする。
図12において、ステップS230でフラグFlag-L/Cが「1」であるかどうかを判別し、「1」でなかったときにはステップS231において、現在走行中の車線の目標経路からの偏位ΔLo が車線幅Lの50%を超えているかどうかを判別する。ここで車線幅Lの50%とは事実上車両が白線上を走行している場合に相当している。この場合も、|ΔLo |≦0.5Lであったときには、ステップS232においてタイマーCt を「0」にセットした後、ステップS232でゲインKo をKに、またゲインKE を「0」にそれぞれ設定する。
また先のステップS231で50%を超えていると判断したときには、ステップS234に進み、フラグFlag-L/Cを「1」にした後、ステップS235でタイマーCt を「1000」(5秒)に設定する。またステップS236では、タイマーCt が減少していく間のゲインKo ,KE を定義する。すなわちゲインKo に関しては前回の数値から微小量δKを減じた量を新たにKo とするが、ゲインKE に関しては逆に前回の数値に微小量δKを足して新規のKE に更新する。つまり、ゲインKo の減少とゲインKE の増加とを並行して進めることになる。ここで微小量δKは、タイマーCt が切れる5秒後にゲインKo が丁度「0」となるように設定されるものであり、換言すればδK=0.001Kである。5秒後のKE は逆にKとなっている。
先のステップS230でフラグFlag-L/Cが「1」であった場合にはステップS237に進み、現在の前記偏位ΔLo が先の判別基準より小さな量40%を割り込んでいるかどうかを検証する。これは車線変更中止の事態が起きているかも知れないことに対する検証である。40%を依然として超えていればステップS238でタイマーCt を「1」だけ減ずる措置を行う。こうしてフラグFlag-L/Cが「1」であって偏位ΔLo も第2基準値(40%)を割り込んでいなければ、タイマーCt は「0」に向かって減少を続ける。ステップS237で偏位ΔLo が第2の基準値40%を割り込むようなことが生じていれば、ステップS239に進んで、今度はタイマーCt を「1」だけ増加させ、当初設定した初期値「1000」に向かって増加させる処置を行う。そしてステップS240で「1000」に到達したかどうかを検証し、「1000」未満の間はゲインKo ,KE の変化を先のステップS236とは逆にする。すなわちゲインKo を各サイクルごとにδKだけ増加させ、逆にゲインKE を同量減少させる。タイマーCt のカウント値が1000となった時点では、ステップS240からステップS242に進み、フラグFlag-L/Cを「0」に設定した後、第1実施例のステップS114(図5参照)に進んでモータトルク指令値を0にする。
而してステップS233,S236,S241の処理は、第1実施例のステップS170以下のフロー(図5参照)と同じものとする。
この第2実施例が第1実施例と異なる点は、ドライバーの車線変更の意志の確認にタイマーを用いること無く、偏位ΔLo に第1の基準値(50%)および第2の基準値(40%)を設定しておいて、第1の基準値を超えたときに車線変更の意志ありと判断し、これより小さな第2の基準値を割り込んだときに車線変更を中止したと判断するようにしたことである。その結果、判断に要した時間を節約することができ、第1実施例よりもシステムの応答性が向上する。
また2つのゲインKo ,KE の変更において基準誘導力のゲインを減少させるのと同時に第2誘導力のゲインを同じ率で増加させている。この結果、何が起きるかと言えば、トルク指令値の計算値To とTE との和τsは図13に示すように傾きは同じでありながら、基準車線から第2車線に向けて平行に移動することになる。操舵力をそれぞれ示す線が地平線と交わる点では誘導力が「0」であるから、これをドライバーから見れば誘導力がほぼ「0」であるような点が基準目標経路から第2目標経路に向けて移動していくように感じる。その移動の間、車両もまた前進しているので、誘導力がほぼ「0」である架橋経路が基準目標経路から右斜め前方に第2目標経路に向けて一直線状に伸びて架橋されるように見えるはずである。而して前記架橋経路から自車が外れたときには、該架橋経路からの距離に応じた誘導力が自車を架橋経路側に戻そうとする方向に働くので、上手に操舵力を感じ取りながら運転すれば、第1実施例とは異なり、フラグFlag-L/Cが一旦「1」になった後は、この架橋経路を伝わって第2目標経路に車線変更することができるから、システムと人間の間の葛藤がより少ない柔軟性をシステムに持たせることができる。
さらにまた車線変更が中止されたときに第1実施例では元の基準誘導力に直接戻したのであるが、第2実施例では時間とともに元の基準誘導力に戻るように、架橋そのものが基準目標経路に向けて縮退していくことになる。その縮退に経時性を持たせたので、このような中止の場合にもより自然な感覚で運転を継続できるようになる。
上記第1および第2実施例では、基準目標経路との偏位ΔLo がかなりの量になるまで車線変更は判断されないから、この間ドライバーは大きな誘導力で基準車線側に戻されそうになる。そこで、そのような不都合を改善する第3実施例について図14を参照しながら説明する。
この第3実施例もまた、図14の一点鎖線で囲む部分が第1実施例における図4の一点鎖線で囲む部分と互換性を持つように描かれている。この第3実施例では、ドライバーの車線変更意志を確認する手段として、基準目標経路に沿って走行するのに適したモータ11の偏位角度θdoと現在の舵角θt との差異を使うために最初に先ず偏位角度θdoを算出する必要があり、SASスイッチ21(図1および図2参照)が押された直後の1サイクルのみは車線変更のことを考慮せずに車線追従フローに直接いかなくてはいけない。そのためにステップS324において、フラグFlag-iniが「1」かどうかを判別し、「1」でなければ(今回が最初の1サイクル目であるならば)ステップS325に進み、フラグFlag-iniを「1」にした後、ステップS332でタイマーCt を「0」に設定し、ステップS333では基準誘導力のゲインKo を「K」に、第2誘導力のゲインKE を「0」に設定して、第1実施例におけるステップS170(図5参照)に進む。ここで始めて基準目標経路に沿って走行するのに適したモータの目標偏位角度θdoが算出されることになる。
次回からはステップS324ではフラグFlag-iniが「1」となっているので、ステップS330でフラグFlag-L/Cが「1」かどうかを判別し、否定されたときはステップS331に進んで基準目標経路に沿って走行するのに適したモータの偏位角度θdoと現在の舵角θt との開きが基準値θ1 より大きいかどうかを検証する。ここで偏位角度θdoは1サイクル前に算出された数値を使うので、正確に書けばθdoはθdo(t-1) となるが煩雑さを避けるために単にθdoとだけ表示している。この開きが大きいときはドライバーがシステムの決めた値とは違った値を入力しているので、車線変更の意志があるものと見なし、基準値に満たないときはその意志がないものと見なす。すなわち車線変更の意志がないものとみなしたときはステップS332に進んでタイマーCt を「0」と置き、ステップS333では基準誘導力のゲインKo を「K」に、第2誘導力のゲインKE を「0」にして、上記ステップS170(図5参照)に進む。
先のステップS331で車線変更の意志ありと判断したときにはステップS334に進み、その意志の確信度を増すためにステップS335で判別の為のタイマーDt を100(0.5秒)に設定する。つまりステップS331の肯定状態が少なくとも0.5秒は続かないと本当に車線変更が行われるとは判断しないわけである。これは路面の凹凸によって前輪がとられるようなことがたまたま生じて、前記の基準目標経路に沿って走行するのに適したモータの偏位角度θdoと現在の舵角θt との開きが基準値θ1 より大きくなっても、その現象は一過性であり、車線変更が行われるわけではないからである。この0.5秒はその確認のために使われる。この目的でステップS336に進み、フラグFlag-Dを「1」にした後、ステップS332に進んで前回と同じゲインを与える。次のサイクルではフラグFlag-Dが「1」となっているので、ステップS334からステップS337に進むことになる。
ステップS337では、タイマーDt の量を「1」だけ引いた量をタイマーDt と置き換え、次のステップS338では、タイマーDt が「0」になったかどうかを検証し、「0」になっていなければステップS332に進んで前回と同じゲインを選ぶが、「0」となったときには、これでドライバーの意志が確認できたとしてステップS339に進み、フラグFlag-Dを「0」にすると同時にフラグFlag-L/Cを「1」とし、次にステップS340で架橋を行うためのタイマーCt を「1000」に設定する。その後は、ステップS341に進み、第2実施例と同じく基準誘導力のゲインKo をδKだけ減少させ、同時に第2誘導力のゲインKE をδKだけ増大させる作業を行う。
このようにしてフラグFlag-L/Cが「1」となった後には、ステップS330からステップS342に進み、ここで前記の基準目標経路に沿って走行するのに適したモータの偏位角度θdoと現在の舵角θt との開きが第2の基準値θ2 より大きいかどうかを検証する。ここでも同じ理由でθdo(t-1) と書くべきところを単にθdoとだけ表示してある。この第2の基準値θ2 は前記基準値θ1 より小さな数値であるものとする。即ち継続してドライバーが第2目標経路の方に操舵しているのか、それとも基準目標経路側に舵を戻しているのかを検証することになる。
ステップS342において依然として舵が第2目標経路の方に切られているものと判断したときには、ステップS343に進み、第2目標経路からの自車の偏差ΔLE が充分に小さな量である0.1L以下になったかどうかを検証する。つまり車線変更が完了したかどうかを検証するのである。まだ充分に小さな値とはなっていないならば、ステップS344でタイマーCt を「1」だけ減じた後、ステップS341に戻り、更にゲインを増減しておく。しかしステップS343で第2目標経路に充分な距離近づいていると判別されれば、ステップS345に進み、フラグFlag-L/Cを「0」にした後、ステップS346で現在走行している車線を基準車線に置き換えて認識するべく「E」の代わりに「0」を代入してフローの最初に戻る。
またステップS342で前記の基準目標経路に沿って走行するのに適したモータの偏位角度θdoと現在の舵角θt との開きが第2の基準値θ2 より小さくなったと判断したときには、車線変更が中止になったものと見なしてステップS347に進み、フラグFlag-L/Cを「0」にした後、ステップS348でタイマーCt を「0」とし、ステップS349で基本誘導力のゲインKo を「K」に、第2誘導力のゲインKE を「0」にそれぞれ設定して、上記ステップS170(図5参照)に進む。
この第3実施例では、基準目標経路に沿って継続的に走行するために最適化された操舵角度に対して現在の操舵角度が基準値以上の乖離を示した場合に、ドライバー側に車線変更の意志があるものとしたから、前記第1および第2実施例に比べてシステムの応答性を一段と高めることができる。なぜならば、操舵角度は車線変更のための最初のトリガーであり、制御で言うところの微分項に該当する。この微分項をトリガーに用いればそれだけ位相の進んだ制御が可能となることは、当該技術分野の常識とされる。尚、この第3実施例では上記の基準値以上の乖離が生じたあとも0.5秒間の確認期間を設けたが、これは必須条件ではなく、更に応答性を高めたければこれを省略できることは言うまでもない。そのときの基準値を少し大きく設定すれば実用上問題が生じないものである。
また第3実施例では車線変更の中止の検出にも、前記の基準目標経路に沿って継続的に走行するために最適化された操舵角度と現在の操舵角度の乖離状態を利用するように構成したから、同じ理由でシステムの応答性が高められる。
しかも車線変更の完了を、第2目標経路からの自車位置偏差が微小な量となったことで判別したから、確実に車線変更完了を確認できるようになる。
また車線変更の完了ではタイマーCt が「0」となっているか否かにかかわらず、現在の走行中車線を新たに基本車線と認識しなおす更新作業を行うようにしたから、ドライバーは車線変更が終了したと同時に新しい車線に沿った誘導力を享受できるようになる効果もある。
図15は本発明の第4実施例を示すものであり、この第4実施例でも図15の一点鎖線で囲む部分が第1実施例における図4の一点鎖線で囲む部分と互換性を持つように描かれている。
この第4実施例は、操舵角度よりも更に位相の進んだ操舵角速度を検出して、システムの応答性を一層高めようとするものであり、図15においてステップS424、S425で操舵角度θd を求めるための初期ルーチンを通したあと、ステップS430でフラグFlag-L/Cが「1」かどうかを検証し、否定されたときにはステップS431に進んで現在の操舵角度θt と前回の操舵角度θ(t-1) との差分を求め、この差分が既定の操舵速度Δθよりも大きいか否かを検証する。この差分{θt −θ(t-1) }はフローが一定速度ごとに起動される事実から一種の微分と同じ効果を持つので、この差分を以て速度と考えてよいことになる。操舵には右と左の2通りあるので、絶対値で比較することにすれば統一的に扱うことができる。ステップS431で否定結果がでたときには、上述の第3実施例と同じく、ステップS432に進んでタイマーCt を「0」にし、ステップS433でゲインKo ,KE を定義して、次の処理(図5のステップS170)に進むことになる。
ステップS431で肯定結果がでたときには、ステップS434でフラグFlag-L/Cを「1」にし、ステップS435でタイマーCt を1000(5秒)に設定し、ステップS436でゲインの減少と増大を行う。
またステップS430で肯定結果がでたときには、ステップS437に進み、第3実施例と同じく基準目標経路に沿って継続的に走行するために最適化された操舵角度に対して現在の操舵角度が小さな基準値θ2 よりも大きいことを検証する。検証の結果が肯定されればステップS438に進み、今度は基準目標経路からの自車位置偏位ΔLo が車線幅Lの90%を超えたかどうかを検証する。検証の結果、未だ超えていなければステップS439に進んでタイマーCt を「1」だけ減じて、ステップS436に戻る。
またステップS438で自車位置偏位ΔLo が車線幅Lの90%を超えたと判断したときには、車線変更が完了したものと認識してステップS443に進み、フラグFlag-L/Cを「0」にした後、ステップS444で現在走行中の車線を新たに基準車線として登録更新する作業を行う。
先のステップS437で最適化された操舵角度に対して現在の操舵角度が小さな基準値θ2 以下であると判定したときには、車線変更が中止されたものとしてステップS440に進んでフラグFlag-L/Cを「0」にした後、ステップS441でタイマーCt を「0」にし、さらにステップS442でゲインを定義し直す。
この第4実施例によれば、操舵角速度と言う位相の進んだ情報に基づいて車線変更の意志の確認を行うので、システムの応答性は格段によくなる。またステップS438で用いた判別基準は、第3実施例の第2目標経路からの偏差の代替情報として基準目標経路からの偏差を用いてもよいことを示した。
図16は本発明の第5実施例を示すものであり、この第5実施例でも図16の一点鎖線で囲む部分が第1実施例における図4の一点鎖線で囲む部分と互換性を持つように描かれている。
この第5実施例は、操舵角速度に代えて操舵力τs によっても車線変更の意志を確認することができることを示すものであり、操舵力τs が既定のτo を超えたかどうかをステップS531で判別し、その結果が肯定されれば車線変更の意志があるものと見なしている。この例ではステップS531の結果を以て直ちに車線変更の意志があると判断するのではなく、第3実施例と同じく所定の時間(0.5秒)継続して操舵力が前記の基準値をこえたとき、始めて意志が確認されるように構成した。この理由は操舵力が相当な量に達し、その量が有意のあいだ継続していれば、それはドライバーが車線変更の意志を強くもっているからに他ならないからである。勿論、この所定の時間、判断を保留することは発明の必須条件ではなく、応答性を高めたければこのプロセスを省略できることは第3実施例と同じである。
また車線変更完了の確認のためにこの第5実施例ではステップS543で第2目標経路に沿って走行を継続するのに最適化された操舵角度θdE と現在の操舵角度θt との乖離が非常に小さな角度基準値θ3 よりも小さくなったことを以て判断している。この理由は本出願人による先の出願(特開平5−197423号公報)の記述内容から容易に理解できるだろう。
その他の処理手順については、ステップS530,S532〜S542,S544〜S549が、図14で示した第3実施例のステップS330,S332〜S342,S344〜S349と同一であり、説明を省略する。
この第5実施例によるときには、直接計測できる操舵力τs を判断基準に使っているので、計算の処理時間が節約でき、間違いもそれだけ少ない等の効果がある。また車線変更に際しては最初に基準車線に沿って継続的に走行するのに最適化された操舵角度θdoを求める必要がないので、第3実施例が必要としたステップS324、S325に対応する処理ステップを省略できて簡略なアルゴリズムとなる。
尚、ここに開示した技術では操舵力の値が相当な量に達し、しかもそれがある所定の時間継続したときにドライバーに車線変更の意志があるものと考えるのであるが、これに限定される必要はなく、操舵力の基準値が大きければ所定の時間、判断を待つ必要はなく、直ちに車線変更の意志があるものと判断して良いことは容易に理解できるだろう。
上述の第4および第5実施例によってシステムの応答性はかなり良くなったのであるが、更に応答性を高める為の技術とドライバーが車線変更を容易に行える技術とを、次の第6実施例で説明する。
図17ないし図20は本発明の第6実施例を示すものであり、図17は図3に対応した制御アルゴリズムを示すフローチャート、図18は図4の制御アルゴリズムに対応した制御アルゴリズムの一部を示すフローチャート、図19は図4の制御アルゴリズムに対応した制御アルゴリズムの残部を示すフローチャート、図20は誘導力の時間的な変化を示す図である。
先ず図17において、ステップS611〜S613,S615〜S623は、図3で示したステップS111〜S113,S115〜S123に対応するが、図3の点線で囲まれたステップS118において定数Eを定義する処理ステップは、後述する理由から定義を変更するとともにその処理も後のステップ(図18のステップS626)に移動している。
図18および図19において、図17のステップS621,623に継続するステップS624ではフラグFlag-iniが「1」かどうかを検証する。このフラグFlag-iniは最初は「1」ではないのでステップS625に進み、このステップS625でフラグFlag-iniを「1」にするとともに、ステップS632に進んで各種のゲインを定義し、以下、第1実施例におけるステップS170(図5参照)以下のステップに進み、基準目標経路に沿って走行するのに適したモータの目標偏位角度θdoが算出されることになる。
次のサイクルではフラグFlag-iniが「1」になっているために、ステップS624の結果は肯定されてステップS626に進むことができる。ここで先のサイクルで算出されたモータの目標偏位角度θdoが用いられる。つまり、厳密に言えばステップS626の目標偏位角度θdoはθdo(t -1)であるが、先の実施例と同じ理由で単にθdoとだけ表示してある。このプロセスで定数Eを新しく定義する。すなわち現在のモータ偏位角度θt が目標偏位角度θdoよりも符号も含めて大きければE=+1とし、小さければE=−1と定義する。Eが「+1」のときと言うのは基準目標経路に沿って走行するのに必要なモータ偏位角度θdoに対して現在のモータ偏位角度θt が時計方向に偏差を持っていることを示している。これは基準目標経路から右に反れて進行しようとしている状態を表している。逆にEが「−1」と言うのは基準目標経路から左に反れて進行しようとしている状態を表している。
このように定数Eの定義をわざわざ難しくした理由は、本実施例では車線変更の架橋経路が幅を持っており、この架橋経路帯内では基本的に誘導力が発生しないため、操舵力τs では単純にドライバーの操舵方向を特定できなくなるからである。例えば左にカーブをしている道路で車線変更を右に行う場合を想定すると、ハンドルを僅かに左に操舵していても( このときはτs はマイナス)車線変更が可能であり、τs の符号ではドライバーの車線変更方向を特定できない。また定数Eを定義するプロセスをここに移した理由はモータの目標偏位角度θdoが算出されるまではEが定義できないからである。
上記ステップS626に続くステップS630でフラグFlag-L/Cが「1」かどうかを検証し、「1」でなければステップS631に進んでウインカーが作動しているかどうかを検証する。このとき同時にウインカーの方向も読み取られるものとする。ウインカーも非作動状態のときはステップS632に進み、基準誘導力に関する左右のゲイン EKo ,-EKo を共にKに、また第2誘導力に関する左右のゲイン oKE , EKE は共に0にそれぞれ設定して、第1実施例におけるステップS170(図5参照)以下のステップに進む。ここで、これらのゲイン EKo ,-EKo , oKE , EKE について簡潔に述べれば、第5実施例までのゲインは基準目標経路および第2目標経路に関してそれぞれ1つのゲインを当てていたが、本実施例では各々の目標経路に関して左右を別々に管理して、独立したゲインを当てることにしている。例えばゲイン+1Ko ,-1Ko はそれぞれ基準目標経路に関して右側及び左側のゲインを表し、右転舵のときはゲイン+1Ko によるものとしている。同様に第2目標経路に関するゲインも基準目標経路側のゲインを oKE 、それと反対側のゲインを EKE として管理する。
ステップS631でウインカーが作動中であるときにはステップS633に進んでフラグFlag-L/Cを「1」にし、次のステップS634で基準目標経路上および第2目標経路上の目標点の座標移動量δXo ,δXE をそれぞれ「0」に設定しておく。
これでフラグFlag-L/Cが「1」となったために次回からはステップS630の結果が肯定に変わり、ステップS630からステップS635に進むことになる。ステップS635では、ウインカーがキャンセルされたかどうかを検証し、キャンセルされた場合にはステップS636で、現在の基準目標経路からの自車の偏差ΔLo が車線幅の20%を超えているかどうかをさらに検証する。超えていれば、その偏差の時間的な変化が増大中かどうかをステップS637で検証し、増大中の場合にはステップS638に進んでフラグFlag-Ro が「1」かどうかを検証する。ここでフラグFlag-Ro について簡潔に述べれば、基準目標経路側から第2目標経路側に架橋経路が縮退を始めているときにフラグFlag-Ro を「1」とするものである。
最初はフラグFlag-Ro が「1」ではないため、ステップS638からステップS639に進み、先の偏位ΔLo が車線幅Lの60%を超えたかどうかを検証する。超えていなければそのままステップS649に進み、また超えていればステップS640で基準目標経路上の目標点の横方向の座標δXo を車線幅Lの50%だけ横にずらす作業を行い、その方向をEの方向と一致させる。
ここでステップS637を設けた理由をさらに補足説明する。高速道路を走行中にウインカーがどのように使われるかを述べると、通常、車線の変更に際してウインカーを出すが、車線変更の途中でもウインカーをキャンセルする場合が非常に多い。これは高速道路上では操舵角度が小さくても大きな経路変更ができるために、ウインカーに設けられて自動的にウインカーをキャンセルする機構が作動することは殆どなく、一般にキャンセルは手動で行われるためである。つまりドライバーのその時々の判断で任意にキャンセルを行うことになるために、人によっては車線の変更を行っている最中にキャンセルを行うことがあるのである。したがってステップS637を設けることで、そのような場合にも基準目標経路からの偏位ΔLo がなお有意の量δLだけ増大しつつあれば、引き続き車線変更の意志を保持しているものと考えて制御を継続させることができるようになる。
再び図18に戻って、ステップS640に続くステップS641ではフラグFlag-Ro を「1」にし、その後、ステップS649に進む。これでFlag-Ro =1となったので、次回からはステップS638の結果は肯定され、図19のステップS642に進むことができる。
ステップS642では、基準目標経路上の目標点のX座標のずれ量δXo を前回のずれ量に微小量δLだけ更にずらす作業を行う。そのずれの方向はEの方向と一致させる。次にステップS643に進み、こうしてずらした結果の目標点のずれの蓄積量が車線幅の95%を超えたかどうかを検証し、まだ超えていなければ、そのずれ量のままステップS649に進む。
さらにまた先のステップS636(図18)でウインカーキャンセル時の自車の偏位ΔLo が車線幅Lの20%を割っていれば、これは車線変更が中止されたものと考えて図19のステップS644に進む。このステップS644では、フラグFlag-RE が「1」かどうかを検証するが、初回なのでFlag-RE =0である。ここでフラグFlag-RE について簡潔に述べれば、第2目標経路側から基準目標経路側に架橋経路が縮退を始めているときにFlag-RE =1である。ここではFlag-RE =0であったからステップ644からステップS645に進んでフラグFlag-RE を「1」にする。次にステップS646では、前記の基準目標経路上と第2目標経路上の目標点のX座標のずれ量δXo,δXE の双方を「0」に設定し、ステップS649に進む。次回からはフラグFlag-RE が「1」のため、ステップS644の結果は肯定され、ステップS644からステップS647に進むことになる。このステップS647では、第2目標経路上の目標点のX座標のずれ量δXE を前回の量よりδLだけ横にずらす作業を行い、その方向をEの方向とは反対の方向とする。次のステップS648では、こうしてずらした結果のずれ量の蓄積量が車線幅の95%を超えたかどうかを検証し、まだ95%に満たなければ、そのままステップS649に進む。
ステップS649では、基準誘導力の左右のゲインについて、E方向のゲイン EKo を「0」とし、Eと反対方向のゲイン-EKo を「K」とおく。また同時に第2誘導力の左右のゲインについて、E方向のゲイン EKE を「K」とし、Eと反対方向のゲイン-EKE を「0」とおく。次にステップS650に進み、基準目標経路上の目標点の座標Xpoに上記のずれ量δXo を加える作業を行い、その後は、第1実施例におけるステップS170(図5参照)以下のステップに進む。
またステップS648で肯定の場合には、車線変更が中止された後で実質的に元の車線に戻ることが終了したものと考えてステップS651に進み、これまで移動させてきた第2目標経路上の目標点の座標を当初の第2目標経路上に戻す。また同時にフラグFlag-RE ,Flag-L/Cを共に「0」にしておく。続いてステップS652に進み、基準誘導力のゲイン EKo ,-EKo を左右とも「K」に戻し、第2誘導力のゲイン EKE ,-EKo を「0」にしておく。このステップS652の操作によって第2目標経路上の目標点の座標を当初の第2目標経路上に戻したことが実質的には何の害ももたらすことがなく、車両は基準目標経路に沿った走行を継続することができる。
さらにまたステップS643で肯定されたときは車線変更が事実上完了したのでステップS653に進み、これまで移動させてきた基準目標経路上の目標点の座標を元の基準目標経路上に戻すとともに、フラグFlag-Ro ,Flag-L/Cを共に「0」にしてステップS654に進み、該ステップS654で、基準誘導力のゲイン EKo ,-EKo を左右とも「0」とし、第2誘導力のゲイン EKE ,-EKo を「K」とする。この作業によって基準誘導力は消滅し、第2誘導力が左右とも確立されることになる。
ところで、この第6実施例では、第1実施例の図5で示した制御アルゴリズムにおけるステップS173の処理に代えて、次のような計算手法で、モータトルクTo ,TE を演算する。
すなわち、現在のモータの偏位角度θt と基準車線に沿って走行するのに最適化された目標偏位角度θdoとの差分にEを乗じた量が正のときは、モータトルクTo の計算のゲインに EKo を使い、モータトルクTE の計算にはゲイン oKE を使うことにする。これに対して現在のモータの偏位角度θt と基準車線に沿って走行するのに最適化された目標偏位角度θdoとの差分にEを乗じた量が負のときには、モータトルクTo の計算のゲインに-EKo を使い、モータトルクTE の計算にはゲイン EKE を使うことにする。この計算式を使うとき2つの誘導力は次のように定義されることになる。
E=+1のとき(すなわち右に車線変更を行う場合): 基準誘導力の右半分は消滅して左半分のみが有効となり、第2誘導 力は逆に右半分が有効で左半分は消滅する。
E=−1のとき(すなわち左に車線変更を行う場合): 基準誘導力の左半分は消滅して右半分のみが有効となり、第2誘導 力は逆に左半分が有効で右半分は消滅する。
この結果、基準目標経路と第2目標経路の間に誘導力が「0」の架橋経路帯が出現して、この領域で走行するときにはドライバーはシステムからいかなる誘導力も受けることがない。(もっとも操舵角に応じて、前輪のアライメントから生ずる路面反力は当然生じている。)
ところで、車線変更が実質的に行われたことを確認するステップS637の出力を受けて縮退が始まるが、その縮退の様子が図20に示される。この図20は、右転舵のときの縮退を例示したもので、図20(a)にはウインカーが操作される直前の誘導力が基準目標経路上に関連づけて示され、図20(b)にはウインカーが操作された直後の誘導力が示され、図20(c)には自車の基準目標経路からの偏差ΔLo が60%を超えたとき以降の誘導力が示される。図20(b)で明示されるように、ウインカー操作直後には基準誘導力の右半分が消滅し、代わりに第2誘導力の右半分が確立されることになる。これはドライバーから見れば、基準誘導力の右半分があたかも車線幅Lだけ瞬時に右に移動したように感じるものであり、その移動した車線幅の分だけ、誘導力が働かず自由に操舵できる領域が広がったことになる。また図20(c)で示されるように、自車の基準目標経路からの偏差ΔLo が60%を超えたときには、自車位置は白線を超えているので基準目標経路上の目標点の座標を車線幅の半分まで右にずらすことで、先ず基準誘導力の左半分が0.5Lだけ右に移動し、その後は1サイクルごとにδLだけ右に移動していくことになり、最後にはステップS643の条件を満たして左右が完全な第2誘導力が確立される。
このような第6実施例によれば、ウインカー40の操作によって瞬時に架橋経路(帯)を基準目標経路から拡幅して第2目標経路まで架橋することになる。ウインカー操作はドライバーの明確な車線変更の意志表示手段であるから、第1〜第5実施例で開示した技術よりもシステムの応答性が向上し、瞬時に架橋構築が完了する。これによってドライバーは操舵力の反抗を実質的に経験することなく車線の変更を容易に行える利点がある。
また車線の変更が実質的に行われたことを、基準目標経路からの自車の偏差が車線幅の60%を超えたことで確認し、その車線変更確認を受けてステップS640で架橋経路(帯)をいきなり車線幅の半分だけ縮めるようにし、その後はステップS642で微小量δLづつ縮めるようにしている。この結果、ドライバーが享受すべき第2誘導力が時間的に短い時間で得られることになる。つまり架橋経路幅の第2車線側への縮退を早く行いたいが、全体を粗く早く縮退させればドライバーの車線変更よりも速い速度で誘導力が強まり、強制的に第2目標経路に寄せられる欠点を有することになるが、かと言って全体をゆっくりと縮退させたのでは、いつまで経っても誘導力が回復せず、システムの恩恵に預かれない、と言った欠点をもつことになる。しかるに上述のように制御することにより、早く縮退させても害のないときには早く縮退させ、害が予想される範囲ではゆっくりと縮退させることができ、上記のような欠点を示すことなく車線変更後には速やかに第2目標経路に沿って走行するための誘導力を享受できる。
またウインカーがキャンセルされた場合にもそれが車線変更を中止した結果なのか、そうではなくて車線変更を継続実行しているのにドライバーが早めにキャンセルしたのかを判定するステップS637を設けていることにより、システムはより知的なものとなり、実用上の利便性が著しく高められる。
さらに、車線変更が中止されたときにも第2目標経路側から基準目標経路側に架橋経路を経時的に縮退させるようにしており、この技術によって車線変更が中止された場合にも車両を基準目標経路に沿って走行させる基準誘導力が徐々にその幅を狭めて強まることになる。そしてS648,S651,S652の各ステップによって、架橋経路の幅が元の基準目標経路上に事実上一致したとき、元の基準誘導力が回復するように構成されている。その結果、ドライバーは最初自由であった操舵力が次第に希望する目標経路に引き締められてくるような感覚を覚え、スムースに再び基準誘導力の恩恵を受けることができるようになる。尚この場合には縮退の速度を一定としたが、これは車線変更が中止されるような場合には一般に自車位置から基準目標経路までの偏差がそれほど大きくない状態で行われるので、敢えて縮退の速度を変える必要がないためである。無論、2段階にまたは多段階に速度を変えるように構成しても良い。
上記第6実施例以外にも、架橋経路幅の縮退を最初は早く行い、その後はゆっくりと行うようにすることができ、以下の第7実施例はそのことを示すために用意されたものである。
図21および図22は、本発明の第7実施例を示すものであり、図21は図4の制御アルゴリズムに対応した制御アルゴリズムの一部を示すフローチャート、図22は図4の制御アルゴリズムに対応した制御アルゴリズムの残部を示すフローチャートである。
ところで、図21および図22で示したフローチャートの大半は、図18および図19で示した第6実施例のものと同一であり、説明を簡略化するために異なる部分にのみステップ番号を付して図21および図22に示し、ステップ番号のないステップは第6実施例と同じであると理解してほしい。
第6実施例のステップS639に代わるステップS739では、自車位置と基準目標経路との偏位ΔLo が車線幅Lの95%を超えたかどうかを判断し、超えたときに始めて縮退が行われるようにしている。つまり縮退のタイミングが第6実施例に限定されることなく、実質的に車線変更が完了したときにこれを検知して縮退が行われるように構成しても同等の効果が得られるのである。
また縮退の手法についても、始めに所定の大きな量で縮退させ、以後は小刻みに縮退させるのが第6実施例の手法であったが、第7実施例では縮退速度をエキスポーネンシャル曲線で行うことが提案されている。すなわちステップS740で先ず車線幅Lの10%を縮退させた後、図22のステップS742で縮退の速度が残りの架橋経路幅の所定割合( 開示の技術ではαで表示 )ずつ行われるようにしている。この操作によって架橋経路の幅が縮まるのであるが、いつも残りの幅のαだけ縮退が続けられるので、最後には幅は実質的に消滅することになる。その速度は架橋幅が縮まるにつれて次第に遅くなり、数学的にはエキスポーネンシャル特性を示すことになる。ここでαは当初の速度10%と違えて設定できるようにした例を例示したが、αを0.1 とすれば、始めから同じ割合のエキスポーネンシャル特性で縮退が行われることになる。
この第7実施例によれば、縮退を開始するタイミングを、車線変更が確認されたときでも車線変更の完了が確認されたときでも自由に設定することが可能である。しかもその確認の時期については事例にこだわることなく所定の基準値を入れ換えるだけで自由に設定し得るものである。
また縮退の速度設定も第7実施例によって自由に設定ができることが明確になった。数式を変えるだけで望みの縮退モードを実現できるものである。
以上、本発明の実施例を詳述したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載された本発明を逸脱することなく種々の設計変更を行なうことが可能である。
たとえば、上記第1ないし第7実施例では、車線に沿った走行を実現する技術として先に本出願人が出願した特開平5−197423号に基づいた技術を開示したが、これに限定される必要はなく、たとえば先行技術として引用した特開平6−255514号公報による技術で車線に沿った走行をしてもよいことは自明である。後者の技術によるときはポテンシャル法で構築された土手の高さを車線変更に際して低減、若しくは消去する手法の他に、当該土手を他車線側に移動する手法もここに開示した技術から容易に行えるものである。