以下、本発明の実施形態について、図面を参照して説明する。図面の記載において同一部分には同一符号を付して説明を省略する。
(自動運転のアーキテクチャ)
本実施形態に係る走行支援装置は、自動運転機能を有する車両に用いられる。図1を参照して、本実施形態における自動運転のアーキテクチャを説明する。なお、本実施形態において、自動運転機能には車間を制御するアダプティブクルーズコントロール(Adaptive Cruise Control:ACC)、車線逸脱を防止するレーンキープアシスト(Lane Keeping Assist System:LKAS)などの走行支援制御が少なくとも含まれる。
自動運転において、自己位置を把握すること、車両周囲の情報を把握することが求められる。これらの把握によって、車両は自動的に車線変更を実施したり、交差点で適切な方向に進むことが可能となり、目的地に到達することが可能となる。自己位置を把握するためのアーキテクチャ、及び車両周囲の情報を把握するためのアーキテクチャは、図1の参照符号100〜105によって示される。
図1の参照符号100で示されるセンサ群(Sensors)は、様々な情報を検出する。これらのセンサ群100は車両に搭載される。センサ群100には、光波を用いて距離を測定するレーザレンジファインダ、レーダ、ライダ、静止画及び動画を取得するカメラ、超音波を用いて距離を測定するソナーなどが含まれる。さらに、センサ群には、車両の速度を検出する速度センサ、車両の加速度を検出する加速度センサ、車両の舵角を検出する舵角センサ、ジャイロセンサなども含まれる。
より詳しくは、カメラは、車両の前方、側方、後方、サイドミラーなどに複数設けられる。カメラは、CCD(charge−coupled device)、CMOS(complementary metal oxide semiconductor)などの撮像素子を有する。カメラは、車両の周囲に存在する物体(歩行者、自転車、二輪車、他車両など)、及び車両の周囲の情報(道路境界線、信号機、標識、横断歩道、交差点など)を検出する。
レーダは、車両の前方の物体に電波を発射し、その反射波を測定することにより、物体までの距離及び方向を測定する。ライダ(LIDAR:Laser Imaging Detection and Ranging)は、レーザ光によるスキャンを水平方向及び垂直方向に行い、車両の周囲に存在する物体の位置及び形状を測定する。
また、センサ群100には、GPS受信機が含まれてもよい。GPS受信機は、人工衛星からの電波を受信することにより、地上における車両の位置情報(緯度及び経度情報を含む)を検出する。ただし、車両の位置情報を検出する方法は、GPS受信機に限定されない。例えば、オドメトリと呼ばれる方法を用いて位置を推定してもよい。オドメトリとは、車両の回転角、回転角速度に応じて車両の移動量及びと移動方向を求めることにより、車両の位置を推定する方法である。
センサ群100によって検出された情報は、車両に搭載されたコントローラ(不図示)に送信され、処理される。コントローラは、一例として、CPU(中央処理装置)、メモリ、及び入出力部を備える汎用のマイクロコンピュータである。マイクロコンピュータには、走行支援装置として機能させるためのコンピュータプログラムがインストールされている。コンピュータプログラムを実行することにより、マイクロコンピュータは、走行支援装置が備える複数の情報処理回路として機能する。なお、ここでは、ソフトウェアによって走行支援装置が備える複数の情報処理回路を実現する例を示すが、もちろん、以下に示す各情報処理を実行するための専用のハードウェアを用意して、情報処理回路を構成することも可能である。
なお、このようなコントローラは、ECU(Electronic Control Unit)も含む。通常、車両には複数のECUが設けられる。ECUは、車両の走行制御の他に、ステレオ、エアコンなどの制御にも用いられる。
センサ群100によって検出された情報は、検出された地域に適合するようにローカライズされる(図1の参照符号103)。
センサ群100によって検出された情報と地図情報とが統合され、コントローラ中の環境認識部104はワールドモデルを生成する。ここでいうワールドモデルとは、静的な地図情報及び高精度地図に、自己位置情報、他車両情報、歩行者情報などの動的な位置情報を組み合わせたデジタル地図上の周囲環境情報を意味する。
ここで高精度地図について説明する。高精度地図とは、道路の車線数、道幅情報、道路の起伏情報などの道路情報、速度制限、一方通行などを示す道路標識、横断歩道、区画線などを示す道路標示などの情報を含む地図をいう。さらに、高精度地図には道路構造物(例えば信号機、電信柱)、建物などの設備情報が含まれてもよい。これらの高精度地図情報は、図1に示すHDマップ102が備えている。環境認識部104は、自己位置及び自己位置周囲の高精度地図をHDマップ102から読み出し、読み出した地図上に自己位置情報、他車両情報、歩行者情報などの動的な位置情報を設定してワールドモデルを生成する。
なお、道路情報、設備情報などの各種データはHDマップ102から取得されるものに限定されず、車車間通信、路車間通信を用いて取得されてもよい。道路情報、設備情報などの各種データが外部に設置されたサーバに記憶されている場合、コントローラは、通信により随時これらのデータをクラウドから取得してもよい。また、コントローラは、外部に設置されたサーバから定期的に最新の地図情報を入手して、保有する地図情報を更新してもよい。
コントローラ中の物体認識部105は、センサ群100によって検出された情報に基づいて生成された車両周囲の物体の認識情報を生成し、ローカルモデルを生成する。ローカルモデルには、物体の認識情報として、他車両情報、歩行者情報などが含まれる。他車両情報には、他車両の速度、進行方向、走行車線などが含まれる。歩行者情報には、歩行者の属性(大人か子どもか)、顔の向き、進行方向などが含まれる。物体認識部105によって生成されたローカルモデルは、ワールドモデルの生成に用いられる。
次に、自動運転の走行制御のアーキテクチャについて、図1の参照符号106〜111を参照して説明する。
ユーザは、ナビゲーション装置101(Navigation)を用いて目的地を設定する(図1の参照符号106、Destination setting)。ナビゲーション装置101は、HDマップ102を読み出して目的地に到達する経路を計画する。目的地に到達する経路に交差点が存在する場合は、交差点に進入する車線に車線変更するタイミングなども計画される(図1の参照符号107、Route planning)。
コントローラ中の行動決定部108は、環境認識部104、物体認識部105によって生成された情報を用いて設定された経路に沿って自動走行する際の行動を決定する。さらに行動決定部108は、自車両を進行もしくは停止させるための決定を下す。例えば、信号機の色が赤であれば車両を停止させ、信号機の色が青であれば車両を走行させる。また行動決定部108は、車線変更を行う場合における方向指示器を点灯させるタイミング、ステアリングホイールを操作するタイミングなどを決定する。
次に、コントローラは、物体認識部105によって生成されたローカルモデル及びHDマップ102を読み込んで、ドライブゾーンを計画する(図1の参照符号109、Drive Zone planning)。ドライブゾーンとは、車両が走行可能な領域と定義される。走行中において、様々な障害物(他車両、バイク、道路上の落下物など)がセンサ群100によって検出される。コントローラはこれらの障害物を考慮してドライブゾーンを計画する。
次に、コントローラは、ドライブゾーンに沿ったトラジェクトリを設定する(図1の参照符号110)。トラジェクトリとは、車両の走行軌跡を示す複数の点を結んで構成され、各点は車両の位置情報と、その位置における車両の姿勢情報から成る。姿勢情報には姿勢角が含まれる。コントローラは、トラジェクトリの生成に合わせて、トラジェクトリに沿って走行する時の車速プロファイルも合わせて生成する。一般的に、乗員に与える違和感、車両の限界挙動の観点で、トラジェクトリの曲率半径が大きいほど車速を高く設定することができる。コントローラは、トラジェクトリの曲率半径に基づいて車速プロファイルを設定してもよく、逆に車速プロファイルに基づいてトラジェクトリを生成してもよい。
次に、コントローラは、トラジェクトリに沿って車両を適切な姿勢で走行させるために、車両の姿勢を制御する(図1の参照符号111、motion control)。
次に、図2を参照して、モーション制御111の詳細について説明する。
図2に示すAD(Autonomous Driving)レイヤ111aは、上段で示した自動運転機能を構成する層である。具体的にはADレイヤ111aは、図1に示す参照符号100〜110によって形成される層である。
ADレイヤ111aから自動運転に用いられる情報がアービトレーション111dに入力される(AD入力111b)。アービトレーション111dには、乗員の自発的な運転操作に関する情報も入力される(MD入力111c)。乗員の自発的な運転操作に関する情報には、乗員によるステアリングホイールの操作、アクセルペダルの操作、ブレーキペダルの操作が含まれる。
自動運転中に乗員による介入操作が行われた場合、自動運転から手動運転に切り替わる。自動運転から手動運転に切り替わることは、オーバーライドと呼ばれる。アービトレーション111dは、AD入力111b及びMD入力111cを監視し、自動運転から手動運転に切り替えたり、自動運転に係る処理と手動運転に係る処理とが競合しないように調停する。オーバーライドは、自動運転から手動運転に切り替わることと説明したが、これに限定されない。オーバーライドは、自動運転中における乗員の介入操作そのものと定義されてもよい
自動運転から手動運転に切り替わる(オーバーライド)とは、通常乗員に全ての運転権限が移譲されることを意味する。しかしながら、本実施形態において、オーバーライドは必ずしも乗員に全ての運転権限が移譲されることを意味しない。例えば、乗員の介入操作がわずかな操作であった場合、乗員の意図として全ての運転権限の移譲を要求しているとは言い切れない。そこで、アービトレーション111dは、自動運転中に乗員の介入操作を検出した場合(オーバーライドが発生したと判断した場合)、乗員の介入操作割合を示すオーバーライド量を算出する。そして、アービトレーション111dは、算出したオーバーライド量に基づいて、自動運転に係る処理と手動運転に係る処理とが競合しないように調停する。
レファレンスモデル111eは、車両の姿勢(特に旋回時の姿勢)を算出するための機能である。レファレンスモデル111eは、ヨーモーメント、ヨーレート、スリップ角を算出する。具体的には、レファレンスモデル111eは、車両が将来走行する道路の曲率を取得する。曲率は、例えばカメラ画像を用いて取得される。カメラ画像から得られた車両の前方の曲線を円弧に近似し、この円弧の半径の逆数を曲率とすればよい。一般に曲率は曲率半径の逆数と定義される。レファレンスモデル111eは、車両の速度、車両に発生する横力(横方向の位置ずれ)、姿勢角などを用いてカーブを適切に走行するためのヨーモーメント、ヨーレート、スリップ角を算出する。
ボディモーションコントロール111fは、レファレンスモデル111eによって算出されたヨーモーメント、ヨーレート、スリップ角が得られるようにフィードバック制御を実施する。ホイールモーションコントロール111gは、レファレンスモデル111eによって算出されたヨーモーメント、ヨーレート、スリップ角が得られるように前輪及び後輪を制御するECUに転舵制御指令を出力する。
最後にコントローラは、各種のアクチュエータ(アクセルペダルアクチュエータ、ブレーキアクチュエータ、ステアリングアクチュエータ)を制御する(図2の参照符号111h、Actuation)。これにより、乗員に違和感を与えることが少ない自動運転が実現する。
本実施形態では、トラジェクトリ(図1の参照符号110)を設定する機能を有するコントローラを、コントローラAと定義する。また、車両の姿勢制御及び走行制御(図1の参照符号120)を実行する機能を有するコントローラを、コントローラBと定義する。コントローラAとコントローラBは、異なる機能を有する。コントローラBは、コントローラAから出力される信号を受信することから、コントローラAの後段にあると表現される。なお、コントローラAは、図1の参照符号101,104,105,106,107,108,109,110に係る機能を有するコントローラとして定義されてもよい。
次に、図3〜図6を参照して、本実施形態に係る車両が曲率を有する道路を自動走行する際の動作例について説明する。以下の記載において特に断らない限り、曲率を有する道路をカーブと表現する。
まずコントローラBは、自動走行中に、車両が将来走行する道路の曲率を取得する。車両が将来走行する道路とは、車両の前方の道路を意味する。曲率を取得する方法は特に限定されない。上述したように、コントローラBは、カメラ画像から得られた車両の前方の曲線を円弧に近似し、この円弧の半径の逆数を曲率として取得してもよい。カーブにおいて、曲率半径を示す標識が設けられる場合がある。このような標識の一例として、R=300という表示が挙げられる。コントローラBは、カメラによって撮像された標識に対して所定の画像処理を行い、曲率半径(上述のR=300)を取得してもよい。曲率半径の逆数から曲率が得られる。
あるいは、コントローラBは、トラジェクトリに係る位置情報の分布を用いた最小二乗法によって円の近似を行い、曲率を求めてもよい。
図3に示すように曲率が小さいことは、カーブが緩いことを意味する。反対に、図4に示すように曲率が大きいことは、カーブがきついことを意味する。
カーブによっては曲率は一定でない場合がある。このため、コントローラBは曲率の最大値(以下、最大曲率と呼ぶ)を取得する。最大曲率は上述と同様の方法により取得可能である。曲率が一定である場合、曲率=最大曲率となる。以下の記載において特に断らない限り、曲率を取得するとは、最大曲率を取得することを意味する。
曲率が大きい場合(図4参照)、スピン抑制を目的として車両の挙動を安定化させる制御(以下単に安定化制御と表現する場合がある)が実行され得る。曲率が小さい場合であっても(図3参照)、路面に雪が積もっていればスピン抑制を目的とした安定化制御が実行され得る。本実施形態における安定化制御は、主に減速制御であるが、これに限定されない。なお、安定化制御の目的にはスピン抑制の他に車線逸脱防止も含まれる。なお、安定化制御はコントローラBによって実行される。
安定化制御が実行された後は、減速制御によって車両の速度は下がった状態となる。つまり、車両の速度は目標速度より低い状態となる。ここでいう目標速度は、法定速度を意味する。車両の速度が目標速度になるように、コントローラBは安定化制御が実行された後、車両を加速させる。ここで、曲率、路面状態によっては、加速が原因で再度車両の挙動が不安定となり、再度安定化制御が必要となる場合があり得る。このような再度の安定化制御は、乗員に違和感を与えるおそれがある。
そこで、コントローラBは、安定化制御が実行された後に車両を加速させるための加速度を曲率に応じて算出する。具体的には、コントローラBは、曲率が大きいほど、加速度を小さくする。これによりカーブがきつい場合には加速が小さくなる(速度の上昇が緩やかになる)ため、再度車両の挙動が不安定となる可能性が低減し、再度の安定化制御は不要となりうる。
また、コントローラBは、曲率に他の要素を加えて加速度を算出してもよい。具体的には、コントローラBは、最大曲率ρmaxと、車両の速度vと、路面の摩擦係数μと、重力加速度gとを用いて旋回強度κを算出する。旋回強度κは下記の式(1)で算出される。
旋回強度κは式(1)により無次元化されたパラメータである。旋回強度κは、図5に示すように、線型性を有するパラメータであり、値は0より大きく1以下である。なお、路面の摩擦係数μの値について、一般にドライ路面では0.8、ウェット路面では0.4〜0.6、積雪路では0.2〜0.5、氷結路では0.1〜0.2である。旋回強度κが小さいことは、カーブが緩いことを意味する。反対に、旋回強度κが大きいことは、カーブがきついことを意味する。
コントローラBは、旋回強度κの大きさに応じて、安定化制御が実行された後に車両を加速させるための加速度を算出する。ここで、算出する加速度(以下、目標加速度と表現する場合がある)をaxlim、自動運転における出力可能な加速度の最大値をaxbaseとした場合、目標加速度axlimは、以下の式(2)で表される。
式(2)から分かるように、旋回強度κが大きいほど、目標加速度axlimは小さくなる。一方、旋回強度κが小さいほど、目標加速度axlimは大きくなる。旋回強度κがゼロとみなせるほど小さい場合、つまり、車両が直進走行している場合、目標加速度axlim≒axbaseとなる。一方、旋回強度κが1、つまり、カーブが非常にきつい場合、目標加速度axlimはゼロとなる。
このように旋回強度κを用いて、安定化制御が実行された後に車両を加速させるための加速度を算出することにより、再度車両の挙動が不安定となる可能性を低減させることが可能となる。
次に、図6を参照して、安定化制御が実行される前と安定化制御が実行された後の速度の変化について説明する。図6において、縦軸は車両の速度であり、横軸は時間である。V1は、システムによって設定された自動運転の目標速度であり、V2は実際の速度である。以下、目標速度V1、実速度V2と表現する。
図6に示す時刻tにおいて、安定化制御が実行されたと仮定する。この場合、安定化制御により速度が下がる。コントローラBは、旋回強度κを用いて、安定化制御が実行された後に車両を加速させるための加速度を算出する。コントローラBは、算出した加速度で速度を上昇させるため、図6に示すように目標速度V1を制限する。これは、安定化制御によって車両の速度は目標速度V1より低い状態となっており、このような速度を再度車両の挙動が不安定とならないように所定の勾配で上昇させるためには、目標速度V1の制限が必要だからである。なお、目標速度V1を制限するとは、安定化制御が実行される前の目標速度V1より速度を下げて、算出された加速度で速度を徐々に上昇させ、安定化制御が実行される前の目標速度V1に近づけることを意味する。コントローラBは、制限した目標速度V1に係る信号をコントローラAに出力する。
次に、図7のフローチャートを参照して、走行支援装置の一動作例を説明する。
ステップS101において、コントローラBは、自動走行中に、車両が将来走行する道路の曲率ρ(最大曲率ρmax)を取得する。また、コントローラBは、路面の摩擦係数μを取得する。
処理はステップS103に進み、コントローラBは、最大曲率ρmaxと、車両の速度vと、路面の摩擦係数μと、重力加速度gとを用いて旋回強度κを算出する(上述の式1参照)。
処理はステップS105に進み、コントローラBは、ステップS103で算出された旋回強度κを用いて、安定化制御が実行された後に車両を加速させるための加速度を算出する。
処理はステップS107に進む。安定化制御が実行された後は、減速制御によって車両の速度は目標速度より低い状態となる。そこで、ステップS107において、コントローラBは、再度車両の挙動が不安定とならないように所定の勾配で速度を上昇させるため、目標速度V1を制限する(図6参照)。
処理はステップS109に進み、コントローラBは、ステップS105で算出された加速度に基づいて、アクチュエータへの指令値を算出し、車両の走行を制御する。
(作用効果)
以上説明したように、本実施形態に係る走行支援装置によれば、以下の作用効果が得られる。
走行支援装置は、車両を自動走行させるための車線内の軌跡(トラジェクトリ)を算出するコントローラA(第1コントローラ)と、コントローラAから軌跡を示す情報を取得し、軌跡を示す情報に基づいて車両を自動走行させるために用いられるアクチュエータへの指令値を算出するコントローラB(第2コントローラ)と、を備える。
コントローラBは、車両が将来走行する道路の曲率を取得する。コントローラBは、曲率を有する道路(カーブ)を走行中において車両の挙動を安定化させる制御を実行した場合において、車両の挙動を安定化させる制御を実行した後に、車両を加速させるための加速度(第1加速度)を曲率に応じて算出する。コントローラBは、算出した第1加速度に基づいて、アクチュエータへの指令値を算出する。これによりカーブがきつい場合には加速が小さくなる(速度の上昇が緩やかになる)ため、再度車両の挙動が不安定となる可能性が低減し、さらに再度の安定化制御は不要となりうる。
また、本実施形態において、コントローラAより後段にあるコントローラBが加速を抑制する機能を有する。自動運転の機能または走行支援の機能を車両に適用する場合に、車両の軌跡までを算出するコントローラAの外に、その車両の軌跡から車両の具体的な姿勢制御、荷重制御、加減速制御のためのアクチュエータへの指令値を算出する機能を有することとし、コントローラBにその機能を搭載することがある。この時に、コントローラAは、実際の道路状況を考慮せず、車両を走行させるための指令値を出力することが想定される。実際に走行安定化のための制御が実行された直後は、走行状態が不安定であるために、加速度に注意して加速する必要があるが、コントローラAは、走行状態が不安定であることを考慮していない、安定化制御を実行する前の車速、あるいは道路の制限速度などに復帰するための指令値を出力することがある。この場合に、再度車両の挙動が不安定となる可能性があり、さらに再度の安定化制御が必要になることがある。しかしながら、コントローラAから、走行状態が不安定であることを考慮していない、安定化制御を実行する前の車速、あるいは道路の制限速度などに復帰するための指令値が出力されたとしても、コントローラBが車両の挙動を安定化させる制御を実行した後に、車両を加速させるための加速度(第1加速度)を曲率に応じて算出するため、再度車両の挙動が不安定となる可能性が低減し、さらに再度の安定化制御は不要となりうる。
また、コントローラAに異常が発生し誤った情報を算出する状況であって、車両の挙動を安定に保つことが可能となる。
本実施形態において、コントローラAは、軌跡を算出する機能の他に、算出した軌跡に沿って適切に走行するための速度及び加速度を算出する機能を有する。コントローラAは、算出した速度及び加速度をコントローラBに出力する。コントローラBは、コントローラAから取得した速度及び加速度を用いて各種のアクチュエータを制御する機能を有する。コントローラAが算出する加速度(基本加速度)は、コントローラBによって算出される安定化制御が実行された後に車両を加速させるための加速度(第1加速度)とは異なる加速度である。
より詳しくは、コントローラAが算出する加速度(基本加速度)は、通常の走行制御に用いられる加速度である。ここで、車両の挙動を安定化させる制御が実行されるということは、コントローラAからの出力が適切でない(もしくはコントローラAに異常が発生している)ことが考えられる。そのため、コントローラBが加速を抑制する機能を有することにより、コントローラAが適切に作動していない場合であっても車両を適切に加速させることが可能となる。通常の走行制御に用いられる加速度とは、曲率を有する道路を走行中において車両の挙動を安定化させる制御が実行された後の所定時間以外の時間において用いられる加速度と定義されてもよい。コントローラBは、曲率を有する道路を走行中において車両の挙動を安定化させる制御を実行した後の所定時間は、第1加速度に基づいてアクチュエータへの指令値を算出する。また、コントローラBは、曲率を有する道路を走行中において車両の挙動を安定化させる制御を実行した後の所定時間以外は、基本加速度に基づいて前記アクチュエータへの指令値を算出する。
コントローラBは、最大曲率ρmaxと、車両の速度vと、路面の摩擦係数μと、重力加速度gとを用いて旋回強度κを算出する。コントローラBは、旋回強度κの大きさに応じて、安定化制御が実行された後に車両を加速させるための加速度を算出する。これにより、旋回強度κに応じた適切な加速が実行されるため、再度車両の挙動が不安定となる可能性を低減させることができる。すなわち、車両の挙動の安定化に寄与する。
コントローラBは、車両の挙動を安定化させる制御を実行した後に、算出した加速度を用いて車両の目標速度を制限する。具体的には、コントローラBは、車両の挙動を安定化させる制御を実行した後に目標速度を下げ、算出した加速度で速度が徐々に上昇するように目標速度を制限する。これにより、安定化制御の後に急に速度が上昇し、再度車両の挙動が不安定となることが抑制されうる。
上述の実施形態に記載される各機能は、1または複数の処理回路により実装され得る。処理回路は、電気回路を含む処理装置等のプログラムされた処理装置を含む。処理回路は、また、記載された機能を実行するようにアレンジされた特定用途向け集積回路(ASIC)や回路部品等の装置を含む。
上記のように、本発明の実施形態を記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
例えば、コントローラBは、車両がカーブの終了地点に居る場合、車両がカーブの開始地点に居る場合と比較して、加速度の上限値を緩和してもよい。車両がカーブの終了地点に居るということは、まもなく直進走行が開始されることを意味する。したがって、車両がカーブの終了地点に居る場合、車両がカーブの開始地点に居る場合と比較して、加速度の上限値が緩和されたとしても(より大きな加速度が算出されたとしても)、再度車両の挙動が不安定となる可能性は低い。よって、コントローラBは、車両がカーブの終了地点に居る場合、車両がカーブの開始地点に居る場合と比較して、加速度の上限値を緩和してもよい。これにより、安定化制御が実行される前の目標速度に到達するまでの時間が短縮される。
なお、コントローラBは、車両が将来走行する軌跡の曲率に基づいて、車両がカーブ入口を走行するか、カーブ出口を走行するかを判定し、車両がカーブ出口を走行すると判定した場合、車両がカーブ入口を走行すると判定した場合と比較して、第1加速度の上限値を緩和してもよい。これにより、安定化制御が実行される前の目標速度に到達するまでの時間が短縮される。車両が将来走行する軌跡の曲率に基づいて、車両がカーブ入口を走行するか、カーブ出口を走行するかを判定する方法の一例を、図8〜11を参照して説明する。
図8に示す道路において走行シーンは、一例として、直線、カーブの入口、定常円旋回、カーブの出口に分類される。走行支援装置は、車両が将来走行する道路がどのような走行シーンなのか、直線か、カーブの入口か、定常円旋回か、カーブの出口かを判定する。走行支援装置は、判定結果に基づいて、上述したヨーモーメント、ヨーレート、スリップ角などを制御する。これにより、走行シーンに適した姿勢制御が可能となり、乗員に違和感を与えることが少ない自動運転が実現する。なお、カーブの入口とは、一例として軌跡を構成する複数の点の内、前後の点の位置関係において前方に向かうにつれて曲率が大きくなる地点をいう。あるいは、カーブの入口とは、曲率が大きくなる傾向が検出される地点と定義されてもよい。カーブの出口とは、一例として軌跡を構成する複数の点の内、前後の点の位置関係において前方に向かうにつれて曲率が小さくなる地点をいう。あるいは、カーブの出口とは、曲率が小さくなる傾向が検出される地点と定義されてもよい。なお、前後の点の位置関係とは、軌跡を構成する複数の点の内、所定の点と、この所定の点から見て前方の点との関係をいう。所定の点から見て前方の点とは、所定の点から見て一つ先の点でもよく、所定の点から見て任意の先の点でもよい。
次に、走行シーンの判定方法の具体例について説明する。まずコントローラは図9に示すように、自動走行中に、車両の前方において、車両から所定距離(図9に示すL)離れた地点までの軌跡の曲率分布を取得する。軌跡は上述したように、複数の点で構成される。軌跡の曲率分布とは、軌跡を示す複数の点を結んで示される道路形状の曲率の分布である。図9に示す所定距離Lは、特に限定されず、10mでもよく、20mでもよい。なお、車両から所定距離離れた地点までの軌跡の曲率分布とは、図9に示す領域Rで囲まれた全ての点の曲率を意味する。
曲率を取得する方法は特に限定されない。上述したように、コントローラは、カメラ画像から得られた車両の前方の曲線を円弧に近似し、この円弧の半径の逆数を曲率として取得してもよい。カーブにおいて、曲率半径を示す標識が設けられる場合がある。このような標識の一例として、R=300という表示が挙げられる。コントローラは、カメラによって撮像された標識に対して所定の画像処理を行い、曲率半径(上述のR=300)を取得してもよい。曲率半径の逆数から曲率が得られる。あるいは、コントローラは、トラジェクトリに係る位置情報の分布を用いた最小二乗法によって円の近似を行い、曲率を求めてもよい。
また、コントローラは左右の曲率について、それぞれの曲率の最大値(以下、最大曲率と呼ぶ)を取得する。最大曲率は上述と同様の方法により取得可能である。曲率が一定である場合、曲率=最大曲率となる。ここでいう左右とは、車両の進行方向に対する左右を意味する。
さらに、コントローラは、曲率の平均、標準偏差、及び歪度を算出する。歪度とは、曲率の歪み度合いを示す。
次に図10を参照して、取得した曲率分布に基づく走行シーンの判定方法について説明する。
まず、コントローラは、参照符号200で示されるように、基準曲率を算出する。基準曲率とは、走行シーンを判定する際に基準となる曲率である。曲率分布は基準曲率を用いて正規化される。コントローラは、現在の車両の速度Vと、車両の最大横加速度GyMaxTrajと、ベースゲインKPTCとを用いて基準曲率RhoRefを算出する。基準曲率RhoRefは下記の式(3)で算出される。
コントローラは、参照符号201で示されるように、曲率の増減を抽出する。コントローラは、車両の前方の曲率と、車両の現在位置の曲率とを用いて曲率の増減を抽出する。ここでいう車両の前方の曲率とは、図9の領域Rに含まれる軌跡のそれぞれの曲率である。曲率の増減を抽出する理由は、主として走行シーンがカーブ入口なのかカーブ出口なのかを判定するためである。参照符号201の処理により、カーブ入口を示すパラメータRhoEntryと、カーブ出口を示すパラメータRhoExitとが算出される。
図10に示すように曲率の平均は、曲率の平均を示すパラメータRhoAveとして扱われる。曲率の標準偏差は、曲率の標準偏差を示すパラメータRhoStdとして扱われる。
コントローラは、参照符号202で示されるように、歪度を有次元化する。コントローラは、曲率の標準偏差と、左右の最大曲率と、歪度とを用いて歪度を有次元化する。具体的には、コントローラは、歪度を左右それぞれ別にした曲率に変換する。曲率の標準偏差を示すパラメータをRhoStdとし、左側の最大曲率をRhoMaxとし、歪度をSkewnessとした場合、左側の歪度RhoSQNLは、下記の式(4)で算出される。
右側の最大曲率をRhoMinとした場合、右側の歪度RhoSQNRは、下記の式(5)で算出される。
有次元された歪度を示すパラメータをRhoSQNとした場合、RhoSQNは下記の式(6)で算出される。
コントローラは、参照符号203で示されるように、パラメータRhoEntry,RhoExit,RhoAve,RhoStd,RhoSQNを曲率成分に変換する。具体的には、コントローラは、これらのパラメータを基準曲率RhoRefで除算して無次元化(正規化)する。無次元化されたパラメータを、NormRhoEntry,NormRhoExit,NormRhoAve,NormRhoStd,NormRhoSQNとした場合、無次元化されたパラメータは、下記の式(7)〜(11)で算出される。
無次元化されたパラメータの値は、0〜1となる。なお、各パラメータ(RhoEntry,RhoExit,RhoAve,RhoStd,RhoSQN)が基準曲率RhoRefと同値である場合、無次元化されたパラメータの値は1となる。
上記の正規化(無次元化)の結果に基づいて、コントローラは、取得した曲率分布が正規分布であるのか非正規分布であるのか判定する。正規化によって得られた分布が正規分布であるのか非正規分布であるのか判定する手法は特に限定されないが、例えば予め正規分布、非正規分布に分類されたデータを用意し、これらのデータと比較し、その一致度に基づいて正規分布であるのか非正規分布であるのか判定してもよい。
コントローラは、参照符号203による処理の結果、曲率分布が正規分布であると判定した場合、走行シーンは定常状態であると判定する(図11参照)。定常状態とは曲率の変化が相対的もしくは絶対的に小さいことを意味する。すなわち、図11に示すように、走行シーンは定常状態であるとは、走行シーンが直線もしくは定常円旋回であることを意味する。なお、曲率の変化が相対的に小さいとは、過渡状態における曲率の変化と比較して小さいという意味である。
走行シーンが定常状態である場合において、一例として曲率の平均がほぼゼロ(曲率半径が無限大)であれば走行シーンは直線と判定される。また、走行シーンが定常状態である場合において、一例として曲率の平均がほぼ100Rであれば走行シーンは定常円旋回と判定される。なお、100Rはあくまで例示であり、曲率の平均が200Rであっても300Rであっても走行シーンは定常円旋回と判定されてもよい。
一方、コントローラは、参照符号203による処理の結果、曲率分布が非正規分布であると判定した場合、走行シーンは過渡状態であると判定する(図11参照)。過渡状態とは曲率の変化が相対的もしくは絶対的に大きいことを意味する。すなわち、図11に示すように、走行シーンは過渡状態であるとは、走行シーンがカーブ入口もしくはカーブ出口であることを意味する。
走行シーンが過渡状態である場合において、一例として軌跡の前後において前方に向かうにつれて曲率が大きくなるならば走行シーンはカーブ入口と判定される。前方とは車両から見た前方を意味する。また、走行シーンが過渡状態である場合において、一例として軌跡の前後において前方に向かうにつれて曲率が小さくなるならば走行シーンはカーブ出口と判定されてもよい。
コントローラは、参照符号204で示されるように、無次元化されたパラメータNormRhoEntry,NormRhoExit,NormRhoAve,NormRhoStd,NormRhoSQNwo(曲率成分)を旋回強度に変換する。旋回強度とは、軌跡上の走行シーンがどのような走行シーンであるのかを示す割合である。旋回強度は、軌跡上の走行シーンの定常状態の度合いを示す定常割合と、軌跡上の走行シーンの過渡状態の度合いを示す過渡割合と、を含む。旋回強度を算出する理由は、旋回強度に応じてヨーモーメント、ヨーレート、スリップ角などを制御することにより、走行シーンに応じた適切な姿勢制御を行うためである。旋回強度への変換は次の手順で処理される。
まずコントローラは、曲率分布の定常成分を抽出する。定常成分を抽出するための係数をFactorTRA,FactorSTAとした場合、係数FactorTRA,FactorSTAは、下記の式(12)〜(13)で算出される。
続いてコントローラは、曲率分布の不定旋回成分を抽出する。不定旋回成分とは、過渡状態においてカーブ入口であるのかカーブ出口であるのか判定されない成分である。不定旋回成分をNormRhoUndefとした場合、不定旋回成分NormRhoUndefは、下記の式(14)で算出される。
続いてコントローラは、過渡成分FactorTRA,FactorSTAを用いて曲率成分を旋回強度に変換する。カーブ入口を示す旋回強度をKappaCorEntry、カーブ出口を示す旋回強度をKappaCorExit、カーブ入口またはカーブ出口として判定されない旋回強度をKappaCorUndefとした場合、これらの旋回強度は、下記の式(15)〜(17)で算出される。
続いてコントローラは、直線成分、定常円成分を抽出する。直線成分をNormStraightとし、定常円成分をNormCircleとした場合、直線成分NormStraight及び定常円成分NormCircleは、下記の式(18)で算出される。
続いてコントローラは、曲率成分を旋回強度に変換する。定常円旋回を示す旋回強度をKappaCircle、直線を示す旋回強度をKappaStraightとした場合、これらの旋回強度は、下記の式(19)〜(20)で算出される。
5つの旋回強度KappaCorEntry,KappaCorExit,KappaCorUndef,KappaCircle,KappaStraightの合計は1となるように算出される。例えば、曲率の平均がほぼゼロとなる直線であれば、KappaCorEntryは0、KappaCorExitは0、KappaCorUndefは0、KappaCircleは0.1、KappaStraightは0.9と算出される。旋回強度KappaCorEntry,KappaCorExit,KappaCorUndefは、軌跡上の走行シーンの過渡状態の度合いを示す過渡割合である。また、旋回強度KappaCircle,KappaStraightは、軌跡上の走行シーンの定常状態の度合いを示す定常割合である。
コントローラは、算出した旋回強度に応じてヨーモーメント、ヨーレート、スリップ角などを制御することにより、走行シーンに応じた適切な姿勢制御を行う。これにより、乗員に違和感を与えることが少ない自動運転が実現する。
加速度の上限値を緩和する方法として、例えば、コントローラBは、車両がカーブの終了地点、開始地点のどちらかに近いかを示す係数αを用いることができる(下記の式21参照)。
係数αは、0〜1の間で任意に設定可能である。係数αは、車両がカーブの終了地点に近いほど0に近づき、車両がカーブの開始地点に近いほど1に近づく。したがって、車両がカーブの終了地点に近いほど目標加速度axlimは大きくなる。このような係数αを用いて加速度の上限値を緩和することにより、安定化制御が実行される前の目標速度に到達するまでの時間が短縮される。