以下、本発明に係る車両制御装置の実施の形態について説明する。なお、図面の説明においては、同一部分または相当部分には同一符号を付し、重複する説明を省略する。
<実施の形態1>
<装置構成>
図1は、本発明に係る実施の形態1の車両制御装置100の構成を示す機能ブロック図である。図1に示すように車両制御装置100は、周辺状況検知センサ1および自車位置検出部2のそれぞれの出力を受ける物体認識部3、自車位置検出部2および物体認識部3のそれぞれの出力を受ける走行経路演算部4および走行経路演算部4の出力を受けて車両を制御する車両制御部5を備えている。
次に、図1の各構成の動作を説明する。周辺状況検知センサ1は、車両に取り付けられた少なくとも1つ以上の距離センサで構成され、検出した物体までの距離データを物体認識部3に出力する。具体的には、距離センサは、検出対象である物体に超音波を照射し、この物体から反射した超音波を受信し、照射した超音波との時間差に基づいて信号処理を行い、物体までの距離を距離データとして検出する。なお、この場合、距離センサによって物体までの距離のみであり、物体の方向が検出できなくても構わない。また、距離センサは予め設定された周期で、距離データの検出を行う。車両には複数の距離センサを搭載することが可能であり、搭載位置に関して任意に設定することが可能であるが、車両の左前方、右前方、左後方および右後方にそれぞれ、距離センサを搭載することが望ましい。
ここで、距離センサの自車への搭載位置と、距離センサのセンサ方位情報と、距離センサの最大検知距離は、既知であるものとする。センサ方位情報には、距離センサの取り付け方位およびセンサ視野角が含まれる。また、距離センサのセンサ視野角は、センサの検出可能な方位幅に相当する。距離センサの自車への搭載位置と、距離センサのセンサ方位情報と、距離センサの最大検知距離をあわせて既知センサ情報と呼称する。
なお、距離センサとしては、超音波の代わりに電磁波などの検出波を用いて物体までの距離を距離データとして検出するタイプのセンサを用いても良い。具体的には、距離センサとして、超音波センサ、ミリ波レーダ、レーザレーダ、赤外線センサ等を用いることができる。
自車位置検出部2は、自車の速度および進行方向に関する状態を自車データとして検出し、検出した自車データから、自車の位置および姿勢角を検出する。そして、検出された自車の位置および姿勢角を物体認識部3および走行経路演算部4に出力する。具体的には、自車位置検出部2は、自車の速度、車輪速、ステアリング角およびヨーレートなど、自車の速度および進行方向に関する状態を自車データとして検出する。なお、自車位置検出部2は、予め設定された周期で、自車データを検出する。
なお、GPS(Global Positioning System)を用いて、自車の緯度、経度および進行方向を、自車データとして検出するように、自車位置検出部2を構成しても良い。
自車の位置と姿勢角を算出するには、様々な方法が考えられるが、一例として、ヨーレートと車輪速を用いる方法を説明する。
周辺状況検知センサ1から距離データ取得開始時の自車位置と自車姿勢角を基準軸とし、自車位置検出部2での自車データの検出ごとに、相対的な自車位置座標と自車の姿勢角を演算する。
自車位置座標は、自車位置検出部2から出力された車輪速から得られる時間ごとの移動距離と、自車位置検出部2から出力されたヨーレートから得られる時間ごとのヨー角に基づいて、時間ごとの移動位置を演算し、移動位置を基準軸の自車位置に足し合わせることで求める。また、自車の姿勢角については、自車位置検出部2から出力されたヨーレートから得られる時間ごとのヨー角を、基準軸の時点から足し合わせることで求める。なお、本実施の形態1では、後輪車軸上の車幅方向中心の位置に基準軸の原点を設定して説明するが、どのような位置に基準軸を設定しても、本実施の形態1には影響しない。また、自車位置検出部2で検出される自車位置は、自車データが検出された時刻と関連付けられて図示されない記憶部に記憶される。
物体認識部3は、周辺状況検知センサ1で検出された距離データおよび自車位置検出部2で検出された自車位置および姿勢角に基づいて、自車周辺の物体の存在の有無を認識し、物体の存在の有無を明確に認識できない場合は、不特定領域として認識し、それらを認識結果として走行経路演算部4に出力する。
走行経路演算部4は、物体認識部3から出力される物体存在の認識結果および、自車位置検出部2から出力される自車位置および姿勢角に基づいて、自車の走行経路を演算し、車両制御部5に出力する。その際、物体認識部3から出力される物体存在の認識結果において、不特定領域に関しては、物体が存在するものとして走行経路を演算する。
車両制御部5は、走行経路演算部4から出力される走行経路に追従できるように、自車の操舵制御および駆動制御を行う。
<全体動作>
次に、図2に示すフローチャートを用いて、実施の形態1における車両制御装置100の全体動作を説明する。なお、図2のフローチャートの処理は、車両走行中に繰り返し実行される。図2の各ステップと、図1の各機能ブロックとの関係は以下の通りである。ステップS1は、自車位置検出部2が行う動作であり、ステップS2は、周辺状況検知センサ1が行う動作であり、ステップS3は物体認識部3が行う動作であり、ステップS4は走行経路演算部4が行う動作であり、ステップS5は車両制御部5が行う動作である。
次に図2の各ステップの動作を説明する。ステップS1では、自車の速度および進行方向に関する状態を自車データとして検出し、検出した自車データから自車位置および姿勢角を検出する。
ステップS2では、検出対象である物体に検出波を照射し、その反射波を取得することで、自車と物体との距離データを検知する。
ステップS3では、自車位置および姿勢角と距離データに基づいて、自車周辺の物体存在の有無を認識し、物体存在の有無を明確に認識できない場合は、不特定領域として認識する。
ステップS4では、自車位置および姿勢角と物体存在の認識結果に基づいて、自車の走行経路を演算する。その際、物体存在の認識結果において、不特定領域に関しては、物体が存在するものとして走行経路を演算する。
ステップS5では、演算された走行経路に追従するように、自車の操舵制御および駆動制御を行う。
<物体認識処理>
次に、物体認識部3における物体認識処理に関して説明する。図3は物体認識部3の構成を示す機能ブロック図である。図3に示されるように物体認識部3は、仮想空間記憶部10、占有度算出部11および仮想空間更新部12を備えている。
本実施の形態において、物体認識部3では、周辺状況検知センサ1から出力される距離データ取得開始時における、自車位置検出部2で検出される自車位置周辺に格子状で区分された仮想空間を生成する。以降、格子状に区分された仮想空間を格子地図と呼称する。格子地図には少なくとも1つの格子が存在し、初期状態の格子地図の各格子には、不特定領域を示す占有度(第1の占有度)が与えられている。占有度はその格子が物体で占有されているか否かの尺度を表す値である。なお、上記では仮想空間を格子状に区分して地図を生成するものとして説明したが、仮想空間の区分は格子状に限定されるものではなく、三角形、五角形、六角形などの多角形の区画としても良く、仮想空間を効率的に区分できるのであればどのような形状でも良い。
次に、図3の各機能ブロックの動作を説明する。仮想空間記憶部10は、自車位置検出部2で検出された自車位置および仮想空間更新部12において現在時刻tより過去の時刻t−Δtに更新された格子地図に基づいて、自車位置検出部2で検出された自車位置の周辺に格子地図を生成する。具体的には、仮想空間記憶部10に時刻t−Δtで更新された格子地図が記憶されているかを確認し、地図が記憶されていない場合は、自車位置検出部2で検出した現在時刻tでの自車位置に基づいて、所定の大きさを持った格子地図を作成し、仮想空間記憶部10に記憶させると共に、作成した格子地図を出力する。一方、時刻t−Δtで更新された格子地図が記憶されている場合は、記憶されている格子地図を読み出して出力する。
占有度算出部11は、仮想空間記憶部10から出力される格子地図および、周辺状況検知センサ1で検知された距離データに基づいて、格子地図中の各格子が物体で占有されていることを示す占有度(第2の占有度)、物体で占有されていないことを示す占有度(第3の占有度)、物体で占有されているかいないかが不明であることを示す占有度(第1の占有度)を算出して変更し、変更結果を出力する。
このような構成の物体認識部3を備えることで、物体で占有されているかいないかが不明である領域を不特定領域として認識することができ、センサの死角を補うことができる。
以下に占有度の変更方法の一例を説明する。まず、周辺状況検知センサ1で検知される距離データ、既知センサ情報、そして自車位置検出部2で検知される自車位置に基づいてセンサモデルを算出し、仮想空間記憶部10から出力される格子地図とセンサモデルから出力される周辺状況検知センサ1の検知範囲に基づいて、格子地図の占有度を算出するための格子(占有度算出格子)を決定する。そして、それらの格子が占有されているか否かを確率変数とし、周辺状況検知センサ1で検知した距離データに基づいて、占有度算出格子の占有確率密度関数p(mi|z1:t)を計算することで、計算結果を格子の占有度とする。ただし、miはi番目のインデックスの占有度算出格子とし、z1:tは時刻tまでの周辺状況検知センサ1による距離データとする。
センサモデルの一例を図4に示す。図4においては、菱形のセンサモデルSMを示しており、検出波の発生位置を原点OPとし、最大検知距離をmaxDistとして表し、最大照射幅となる距離を最大照射範囲距離maxAngDistとして表し、距離rにおける照射範囲をθ(r)として示している。なお、周辺状況検知センサ1の検知範囲θについては、図4のように、最大照射範囲距離maxAngDistにおいて検知範囲が最大照射範囲θmaxの半値幅θmaxHalfBeamWidthを取るように定め、最大照射範囲距離maxAngDist以上の距離では、以下の数式(1)に示すように照射範囲を狭くするように定めても良い。
上記数式(1)は、周辺状況検知センサ1の距離センサの検知範囲θを規定しており、ここでは、センサモデルのセンサ方位に対する対称性を考え、数式(1)には照射範囲上限θmax(r)のみを示している。
なお、上記数式(1)においてmin(1.0,1.0−(r−maxAngDist)/(maxDist−maxAngDist))は、1.0と1.0−(r−maxAngDist)/(maxDist−maxAngDist)のうち小さい方を意味し、その小さい方にHalfBeamWidthを乗ずることで最大照射範囲距離maxAngDist以上の距離での照射範囲を制限している。
占有度算出格子の決定方法としては、図5に示されるように、周辺状況検知センサ1のセンサモデルSMと格子地図LMとの共通領域を抽出し、共通領域に含まれる格子地図内の格子を占有度算出格子OCLとする。
なお、図5は、現在時刻tにおける自車OVと駐車車両PVとの位置関係を示したが、図6には時刻t−2Δtにおける自車OVと駐車車両PVとの位置関係を示し、その場合の占有度算出格子OCLを示している。また、図7には時刻t−Δtにおける自車OVと駐車車両PVとの位置関係を示し、その場合の占有度算出格子OCLを示している。図6および図7は、駐車車両PVに対して自車OVが後退しながら、駐車車両PVの左側に、並列するように移動する状態を表している。
図6に示す時刻t−2Δtにおける占有度算出格子OCLは、自車OVと駐車車両PVとの距離が離れており、自車OVの右後方および右後部側面の距離センサが駐車車両PVを検知しているが、右後部側面の距離センサのセンサモデルSMと初期地図LMとの共通部分は一部だけであり、占有度算出格子OCLの個数は少ないが、図8に示す時刻t−Δtにおいては、右後部側面の距離センサのセンサモデルSMと初期地図LMとの共通部分は、センサモデルSMのほぼ全体となり、占有度算出格子OCLの個数は、時刻t−2Δtの場合よりも増え、図5に示す時刻tにおいては、自車OVの右前部側面の距離センサが駐車車両PVを検知し、占有度算出格子OCLの個数はさらに増えることとなる。
次に、占有度算出格子の占有度を算出する方法を説明する。まず、占有確率密度関数p(mi|z1:t)は、オッズ比の自然対数を取った値である時刻tでの対数オッズlt、iを用いることで、以下の数式(2)および(3)のように表現することが可能である。
ここで、占有確率密度関数p(mi|z1:t)は、対数オッズlt、iで表現することにより、0から1で表現される確率を−∞から∞で表現できるようになり、小数点以下の桁落ちを防ぐことが可能となる。また、対数オッズlt、iで表現された占有確率密度関数p(mi|z1:t)は、以下の数式(4)で示すベイズの定理を用いることで、数式(5)の漸化式で表現することが可能となる。
ここで、P(X)は事象Xが起きる確率、P(Y)は事象Yが起きる確率、P(X|Y)は事象Yが起きたという条件のもとでの事象Xが起きる確率、P(Y|X)は事象Xが起きたという条件のもとでの事象Yが起きる確率である。
数式(5)の第2項に含まれる占有確率密度関数p(mi)は、事前占有確率密度関数と呼ばれるものであり、第3項のlt−1、iは、時刻t−1での対数オッズである。また、数式(5)の第1項に含まれる占有確率密度関数p(mi│zt)は、逆計測モデルと呼ばれ、距離センサで検出された距離データに基づいて格子が占有されている確率を表現する。すなわち、占有確率密度関数p(mi│zt)を計算することで、占有度算出格子の占有度を算出することが可能となる。なお、逆計測モデルは、株式会社マイナビ出版発行、著者Sebastian Thrun,Wolfram Burgard、翻訳者上田 隆一の「確率ロボティクス (プレミアムブックス版) 」、第264頁〜第268頁で説明されている。
占有度算出格子miに対する、占有確率密度関数p(mi│zt)の計算方法を以下に説明する。i番目のインデックスの占有度算出格子miは、センサモデル内に含まれるため、占有度算出格子miの座標を極座標(r,θ)で表示することができる。ただし、原点(0,0)は周辺状況検知センサ1の距離センサのセンサ位置とする。
時刻tにおける距離センサによる検知距離ztおよびセンサモデルに基づいて、それぞれの格子座標が障害物のある可能性が高い領域(領域I)、障害物のない可能性が高い領域(領域II)、センサデータからは判断できない領域(領域III)のいずれの領域に属するかを図4のようなセンサモデルSMを用いて判定する。
すなわち、図8は、図4に示したセンサモデルSMを初期地図LMと重ね合わせた図であり、検出波の発生位置を座標(0,0)の原点OPとし、最大検知距離をmaxDistとして表し、検知距離ztに対しzt−εからzt+εの範囲が領域Iとなり、原点OPからzt−εの範囲が領域IIとなり、zt+εから最大検知距離maxDistの範囲が領域IIIとなっている。なお、定数εは、周辺状況検知センサ1の距離センサによって物体までの距離を測距した際に、起こりうる距離の誤差を表しており、物体までの検知距離ztが決まれば、予め定めた誤差εで規定される範囲で領域Iが決まり、領域Iよりも原点OP側が領域II、領域Iよりも最大検知距離maxDistとなる点側が領域IIIとなる。なお、図8においては、その座標から占有度算出格子miは領域I内に属していると判定される。
そして、判定された領域に応じて、各格子の占有確率密度関数p(mi│zt)を以下の数式(6)〜(8)で算出する。
数式(6)は、占有度算出格子miが領域IIに含まれる場合の条件式であり、占有度算出格子miが物体で占有されている確率が低いことを意味するため、占有度算出格子miの占有されている確率を0に近づけるため、占有確率密度関数p(mi│zt)を定数pminの範囲となるように設定し、その範囲は0<pmin<0.5とする。
数式(7)は、占有度算出格子miが領域Iに含まれる場合の条件式であり、周辺状況検知センサ1では、物体の周辺状況検知センサ1からの角度情報が判らず、物体の正確な位置を検出できないものの、領域Iは検知距離ztの前後の領域であるので、領域Iのどこかに物体が存在する可能性が高いものとして、占有度算出格子miの占有されている確率を1に近づけるため、占有確率密度関数p(mi│zt)を定数pmaxの範囲となるように設定し、その範囲は0.5<pmax<1とする。
数式(8)は、占有度算出格子miが領域IIIに含まれる場合の条件式であり、検知距離ztよりも遠い領域にあるため、占有度算出格子miが物体で占有されているか否かが不明であるため、占有確率密度関数p(mi│zt)に予め与える占有度の定数としてp(mi)を0.5としている。なお、初期地図LMを区分する各格子には事前に確率が与えられており(事前確率)、その値は0.5としている。
また、周辺状況検知センサ1の距離センサの検出距離に対して、誤差を許容するために、定数εを任意に設定しても良い。なお、定数εを設定しない場合は、周辺状況検知センサ1から占有度算出格子miまでの距離rがr=検知距離となったものに対して、pmaxとなるように、占有度算出を行う。また、定数εを任意に設定する場合の範囲としては、用いる周辺状況検知センサ1の距離センサ1の能力に応じて、起こりうる距離の誤差を含むように定数εを設定する。
数式(6)〜(8)を用いて算出した各格子の占有確率密度関数p(mi│zt)を、対数オッズlt、iの漸化式で表した数式(5)に代入し、得られた対数オッズlt、iを数式(3)に代入することで、占有確率密度関数p(mi|z1:t)を求めることができ、得られた計算結果が格子占有度となる。
つまり、上述の処理で計算した格子占有度p(mi)に関して、各格子が物体で占有されていることを示す占有度は1の近傍値となり、物体で占有されていないことを示す占有度は0の近傍値となる。そして、占有されているか否かが不明であることを示す占有度は0.5の近傍値となる。
仮想空間更新部12は、占有度算出部11から出力された格子占有度と、仮想空間記憶部10から出力された格子地図LMに基づいて、格子地図中のすべての格子の占有度を更新し、格子地図として出力する。具体的には、格子地図における全ての格子について、占有度算出格子に含まれる格子は占有度算出部11で算出した占有度に更新し、それ以外の格子は格子地図LMの占有度を保持することで、格子地図LMを更新する。更新された格子地図LMは、仮想空間記憶部10で既に記憶している格子地図LMの代わりに記憶させる。
次に、図9に示すフローチャートを用いて、物体認識部3で行う動作の流れについて説明する。図9の各ステップと、図3の各機能ブロックとの関係は以下の通りである。ステップS11、S12、S13、S14は、仮想空間記憶部10が行う動作であり、ステップS15は占有度算出部11が行う動作であり、ステップS16は仮想空間更新部12が行う動作である。
次に、図9の各ステップの動作を説明する。ステップS11では、仮想空間記憶部10に格子状に区分された仮想空間が記憶されているかを判定し、記憶されていない場合(No)はステップS12に移行し、記憶されている場合(Yes)はステップS13に移行する。
ステップS12に移行した場合は、自車位置検出部2で検出した現在時刻tでの自車位置および姿勢角をもとに、自車周辺に所定の大きさを持った格子状に区分された仮想空間(格子地図)を生成する。生成された格子地図に対し、ステップS14において、格子地図中の各格子に不特定領域を示す占有度を割り当て、仮想空間記憶部10に記憶する。また、記憶した格子地図を占有度算出部11に出力する。
ステップS13に移行した場合は、過去(t−Δt)で仮想空間記憶部10に記憶された格子地図を読み出し、占有度算出部に出力する。
ステップS15では、仮想空間記憶部10から出力された格子地図と自車位置検出部2から出力された自車位置および姿勢角、周辺状況検知センサ1で検知された距離データに基づき、物体で占有されていることを示す占有度、物体で占有されていないこと(非占有)を示す占有度、物体で占有されているかいないかが不明であることを示す占有度に変更し、占有度を出力する。
ステップS16では、仮想空間記憶部10で記憶されている格子地図上のすべての格子の占有度(前回値)と占有度算出部で変更された格子の占有度(今回値)とを重ね合わせることで、格子の占有度を更新し、仮想空間記憶部10に記憶させる。
ステップS16で行う前回値との重ね合わせは、数式(5)で示した漸化式に対して、数式(2)示した対数オッズlt、iを用いることで、時刻t−1における前回値の占有度p(mi|z1:t-1)をlt-1、iとして算出し、ステップS15で算出した今回値の占有確率密度関数p(mi│zt)および、上述のlt-1、iを用いることで、対数オッズlt、iを算出し、数式(3)で示した占有確率密度関数p(mi|z1:t)により、時刻tにおける格子miの占有確率密度関数p(mi|z1:t)を算出する。そして、これを格子miの占有度とする。
すなわち、時刻t−1における格子miの占有確率密度関数p(mi|z1:t)の対数オッズと、時刻tにおける格子miの占有確率密度関数p(mi│zt)の対数オッズを足し合わせることで、時刻tにおける格子miの占有度p(mi|z1:t)を算出する。
具体的な算出方法を以下に説明する。時刻tstartにおいて初期地図を生成し、その際の格子miの占有度p(mi│ztstart)が0.5であり、時刻tstart+Δtにおける占有確率密度関数p(mi│ztstart+Δt)が0.7である場合、格子miの占有度p(mi│ztstart:tstart+Δt)は、数式(3)を用いて以下の数式(9)で表される。
数式(9)におけるltstart+Δt、iは、数式(5)を用いて以下の数式(10)で表される。
ここで、p(mi│ztstart+Δt)が0.7であり、p(mi│ztstart)が0.5であり、p(mi)が0.5である場合、ltstart、i=0とすると、数式(10)は、以下の数式(11)のように計算される。
数式(11)の計算結果0.8473を数式(9)に代入すると、以下の数式(12)のように計算される。
この結果、時刻tstart+Δtにおける占有確率密度関数p(mi│ztstart+Δt)が0.7である場合、時刻tstart+Δtにおける格子miの占有度p(mi│ztstart:tstart+Δt)は0.7となるが、時刻tstart+2×Δtにおける占有確率密度関数p(mi│ztstart+2×Δt)においても0.7となる場合、ltstart+Δt、i=0.8473とすると、ltstart+2×Δt、iは、以下の数式(13)のように計算される。
数式(13)の計算結果1.6946を数式(9)の変形式に代入すると、以下の数式(14)のように計算される。
この結果、時刻tstart+2×Δtにおける占有確率密度関数p(mi│ztstart+2×Δt)が0.7となる場合、時刻tstart+2×Δtにおける格子miの占有度p(mi│ztstart:tstart+2×Δt)は0.8448となる。
一方、時刻tstartにおいて格子地図を生成し、その際の格子mjの占有度p(mj│ztstart)が0.5であり、時刻tstart+Δtにおける占有確率密度関数p(mj│ztstart+Δt)が0.2である場合、ltstart、i=0とすると、ltstart+Δt、iは、以下の数式(15)のように計算される。
数式(15)の計算結果−1.3863を数式(9)の変形式に代入すると、以下の数式(16)のように計算される。
この結果、時刻tstart+Δtにおける占有確率密度関数p(mj│ztstart+Δt)が0.2である場合、時刻tstart+Δtにおける格子mjの占有度p(mj│ztstart:tstart+Δt)は0.2となるが、時刻tstart+2×Δtにおける占有確率密度関数p(mj│ztstart+2×Δt)においても0.2となる場合、ltstart+Δt、i=−1.3863とすると、ltstart+2×Δt、iは、以下の数式(17)のように計算される。
数式(17)の計算結果−2.7726を数式(9)の変形式に代入すると、以下の数式(18)のように計算される。
この結果、時刻tstart+2×Δtにおける占有確率密度関数p(mj│ztstart+2×Δt)が0.2である場合、時刻tstart+2×Δtにおける格子mjの占有確率密度関数p(mj│ztstart+2×Δt)は0.0588となる。
<走行経路演算処理>
次に、走行経路演算部4における走行経路演算処理について説明する。図10は、実施の形態1による車両制御装置の走行経路演算部4の構成を示す機能ブロック図である。図10に示されるように、走行経路演算部4は、物体存在抽出部21および物体回避経路演算部22を備えている。
物体存在抽出部21は、物体認識部3で出力した格子地図および、自車位置検出部2で検出した自車位置および自車姿勢角に基づいて、格子地図中の各格子に対し、物体で占有されている格子を物体の存在領域とする。また、不特定領域の格子に関して、自車の側方に存在する場合、物体が存在するものとして判定し、物体の存在領域とする。そして、自車位置の進行方向上もしくは、側方以外に不特定領域の格子が存在する場合、当該格子位置には物体は存在しないと判定する。その後、これらの物体の存在領域を抽出する。
駐車スペースからの自車の出庫を考えた場合、車両の側方は周辺状況検知センサ1の死角となっており、車両の側方には不特定領域の格子が発生する可能性が高い。そこには自車の入庫時には存在しなかった物体が存在している可能性があるので、車両の側方の不特定領域には物体が存在しているものとして扱う。これにより周辺状況検知センサ1の死角を補って障害物との衝突を回避した走行経路の演算が可能となる。
なお、自車の進行方向上に不特定領域の格子が存在するとしても、車両の左前方、右前方、左後方および右後方を検出する距離センサを搭載しているので、車両の進行方向に物体が存在していても、車両の進行と共に不特定領域は解消されるので、当該格子位置には物体は存在しないものとして扱う。
物体回避経路演算部22は、物体存在抽出部21で出力した物体の存在領域および、自車位置検出部2で検出した自車位置および自車姿勢角に基づいて、物体の存在領域、すなわち格子との衝突を回避した走行経路を演算する。
ここで、極低速で車両が進んでいる際、障害物との衝突を回避する方法を図11および図12を用いて説明する。
図11においては、後退時に自車OVが正の最大実舵角 δpmax(δpmax>0)で旋回し、自車OVの進行方向左側(Y軸負領域)に障害物OBが存在する場合、外輪差により障害物OBを巻き込む可能性がある。ただし、座標系に関しては、図11のように自車OVのフロント側をX軸の正の向き、X−Y軸は右手系を取る。つまり、実舵角の正負に関しては、前進時に反時計回りに回転する方向が正方向、後退時には、時計回りに回転する方向が正方向となる。なお、図11において最大実舵角で旋回する際の右前輪が通る円弧をCAとし、その旋回中心の座標を(x,y)=(0,1/ρ_max)とする。ρ_maxは円弧CAの曲率である。また、障害物OBの座標は(x,y)=(xnR,ynR)である。
また、車両の旋回半径と実舵角には、これらの関係を定義する理論式がある。これを数式(19)に示す。上記数式(19)の導出については、「株式会社山海堂 安部正人著 自動車の運動と制御 第2版 第3章 車両運動の基礎 3.3節 車両の定常円旋回」に記載されている。
数式(19)において、Rは旋回半径、Vは自車の走行速度、Aはスタビリティファクタ、WBは車両のホイールベース、δは前輪実舵角を示す。極低速において、AV2≒0であるため、実舵角と最小旋回半径は、ホイールベースWBを用いて、以下の数式(20)のように表現することができる。
さらに、旋回半径Rと曲率ρは以下の数式(21)の関係が成り立つ。
図11においては、障害物OBが円弧CAを含み、円弧CAの内側に存在するので、自車OVが曲率ρ_maxで旋回しながら後退すると外輪差で衝突する可能性がある。
よって、この条件では、障害物OBの座標(x,y)=(xnR,ynR)が自車OVの右前輪が描く旋回半径によって作成される円弧CAの外側にあれば、衝突を回避することができる。この旋回半径は以下の数式(22)で表される。
なお、数式(22)においてFLは車両の車長方向の長さであり、後輪車軸中心から車両の前端までの長さで規定され、HWは車幅の半分の長さを表す。
また、図12に示されるように、自車OVが曲率ρ_maxで旋回しながら前進する場合は、自車OVの進行方向左側(Y軸正領域)に障害物OBが存在し、障害物OBが円弧CAを含み、円弧CAの外側に存在すると内輪差により障害物OBと衝突する可能性がある。
よって、この条件では、障害物OBの座標(x,y)=(xnL,ynL)が自車OVの左後輪が描く旋回半径1/ρ_max-HWによって作成される円弧CAの外側にあれば、衝突を回避することができる。
図11および図12に示した障害物との衝突を回避する方法を定式化することで、格子との衝突を回避した走行経路を算出することができる。すなわち、自車OVが旋回する際に、障害物OBに衝突することなく旋回できる曲率の範囲を求めることができる。
ここで、図11の外輪差による衝突の可能性および図12の内輪差による衝突の可能性のそれぞれに関して、自車OVの旋回半径上に障害物OBが存在する場合の自車OVの曲率を求める。そして、その曲率未満であれば、自車OVと障害物OBの衝突を回避することができる。
すなわち、物体存在抽出部20で抽出した物体の存在領域に存在するすべての格子に対して、車両の内輪差および外輪差で障害物を巻き込むときの限界曲率を格子に対する最大曲率を演算する。ここで、正の実舵角で旋回する場合の最大曲率を正の最大曲率ρpmaxとし、負の実舵角で旋回する場合の最大曲率を負の最大曲率ρnmaxとし、それぞれの格子に対する正の最大曲率または負の最大曲率それぞれ求める。
以下、格子に対する最大曲率を求める方法について説明する。まず、図11に示した条件での最大曲率について説明する。
図11に示すように、後退時に自車OVが正の最大実舵角δpmax(δpmax>0)で旋回し、自車OVの進行方向左側(Y軸負領域)に障害物OBが存在する場合、外輪差により障害物OBを巻き込む可能性がある。
そこで、外輪差により障害物OBの巻き込みを回避するために、外輪差で巻き込むことなく旋回できる曲率の範囲を求める。求め方としては、外輪差で巻き込む限界曲率未満であればよい。
外輪差で巻き込む曲率ρRP(xnR,ynR)は、以下の数式(23)および(24)により求めることができる。
数式(23)および(24)から曲率が以下の数式(25)の範囲であれば、外輪差で自車OVの進行方向左側の障害物OBを巻き込むことはない。
また、図12に示すように、前進時に自車OVが正の最大実舵角δpmax(δpmax>0)で旋回し、自車OVの進行方向左側(Y軸正領域)に障害物OBが存在する場合、内輪差により障害物OBを巻き込む可能性がある。
そこで、内輪差により障害物OBの巻き込みを回避するために、内輪差で巻き込むことなく旋回できる曲率の範囲を求める。求め方としては、内輪差で巻き込む限界曲率未満であればよい。
内輪差で巻き込む限界曲率ρFP(xnL,ynL)は、以下の数式(26)および(27)により求めることができる。
数式(26)および(27)から曲率が以下の数式(28)の範囲であれば、内輪差で自車OVの進行方向左側の障害物OBを巻き込むことはない。
ここまでは、前進、後退とも正の実舵角で旋回する場合の内輪差および外輪差で衝突する可能性のある障害物との回避曲率について説明したが、次に、負の実舵角で旋回する場合の障害物との回避曲率に関して説明する。
この場合も、自車OVの旋回半径上に障害物OBが存在する場合の自車OVの曲率を求め、その曲率未満であれば、自車OVと障害物OBの衝突を回避することができる。
まず、前進時に内輪差により自車OVの進行方向右側(Y軸負領域)に存在する障害物OBの巻き込みを回避するために、内輪差で巻き込むことなく旋回できる曲率の範囲を求める。求め方としては、内輪差で巻き込む限界曲率未満であればよい。
内輪差で巻き込む限界曲率ρFN(xnR,ynR)は、以下の数式(29)および(30)により求めることができる。
数式(29)および(30)から曲率が以下の数式(31)の範囲であれば、内輪差で自車OVの進行方向左側の障害物OBを巻き込むことはない。
また、後退時に外輪差により自車OVの進行方向右側(Y軸正領域)に存在する障害物OBの巻き込みを回避するために、外輪差で巻き込むことなく旋回できる曲率の範囲を求める。求め方としては、外輪差で巻き込む限界曲率未満であればよい。
外輪差で巻き込む限界曲率ρRN(xnL,ynL)は、以下の数式(32)および(33)により求めることができる。
数式(32)および(33)から曲率が以下の数式(34)の範囲であれば、外輪差で自車OVの進行方向左側の障害物OBを巻き込むことはない。
なお、障害物は所定の大きさを持つが、それは複数の格子で成り立っていると考えることができるので、障害物を構成する格子のそれぞれに対する正の最大曲率または負の最大曲率を求める。そして、正負それぞれの最大曲率において、正の最大曲率の最小値NINρpmax、負の最大曲率の最小値MINρnmaxを取得することで、走行経路演算部4の走行経路とする。
言い換えると、走行経路演算部4から出力された曲率ρは、下記の数式(35)の範囲で規定される。
そして、それらの範囲での曲率ρを用いて車両を制御することで、自車と障害物との巻き込みによる衝突を防ぐことが可能となる。
次に、図13に示すフローチャートを用いて、走行経路演算部4で行う動作の流れについて説明する。図13の各ステップと、図10の各機能ブロックとの関係は以下の通りである。ステップS41、S42、S43、S44、S45、S46は、物体存在抽出部21が行う動作であり、ステップS47は物体回避経路演算部22が行う動作である。
次に、図13の各ステップの動作を説明する。ステップS41では、物体認識部3から出力された格子地図中の各格子に対して、それぞれの格子の占有度が非占有であるかを判定する。そして、非占有を示す占有度である場合(Yes)は、ステップS42に移行し、占有または不特定領域を示す占有度である場合(No)は、ステップS43に移行する。
ステップS42に移行した場合は、当該格子位置には物体は存在しないと判定する。一方、ステップS43に移行した場合は、格子の占有度が不特定領域を示す占有度かを判定する。そして、不特定領域を示す占有度である場合(Yes)は、ステップS44に移行し、占有を示す占有度である場合(No)は、ステップS45に遷移する。
ステップS44に移行した場合は、当該格子位置が自車の側方にあるかを判定する。そして、当該格子位置が自車の進行方向上または側方以外にある場合(No)は、ステップS42に遷移し、自車の側方にある場合(Yes)は、ステップS45に移行する。
ステップS45に移行した場合は、当該格子位置には物体は存在すると推定し、ステップS46に移行する。
物体認識部3から出力された格子地図中の各格子に対して、ステップS41〜S45の処理を行った後、ステップS46では格子地図(仮想空間)から物体の存在領域を抽出し、ステップS47に移行する。
ステップS47では、物体存在抽出部20から抽出された物体の存在領域および自車位置に基づいて、存在する物体を回避する経路生成を行う。
以下に本実施の形態の1の車両制御装置100の奏する効果について説明する。従来の車両制御装置では、例えば、自車を自動で駐車させる場合、自車の走行経路を生成するためには、入庫時に取得した自車の周辺状況情報、例えば、自車の入庫時の走行軌跡を保持しておくための記憶装置、いわゆるメモリが必要となる。しかし、本実施の形態の1の車両制御装置100は、自車の周辺状況情報に基づいて自車の周辺に存在する物体を検出または推定して、物体との衝突を回避する経路生成を行うので、自車の入庫時の走行軌跡を必要としない。このため、従来の車両制御装置と比べて、小さなメモリを備えていれば良く、車両制御装置100を小型化でき、車両制御装置100の価格を安価にすることができる。
また、不特定領域については障害物が存在するものとして推定して走行経路を作成するので、自車と障害物との衝突の可能性をより低減できる。
<実施の形態2>
以下、本発明に係る実施の形態2の駐車支援装置200について説明する。なお、実施の形態1の車両制御装置100と同一の構成については説明は省略する。
<装置構成>
図14は、本発明に係る実施の形態2の駐車支援装置200の構成を示す機能ブロック図である。図2に示すように駐車支援装置200は、図1に示した車両制御装置100の構成に、第1の出庫走行経路生成部6と、第1の出庫走行経路生成部6の出力および走行経路演算部4の出力を受ける走行経路比較部7とをさらに備えたものである。
第1の出庫走行経路生成部6は、自車両が駐車スペースに入庫するまでの入庫走行軌跡を記憶しており、記憶した軌跡の逆を遡る自車の第1の出庫走行経路として出力する。入庫走行軌跡を出庫走行経路として用いる技術は、例えば、特開2007−62625号公報に開示されており、公知の技術を用いることができる。
走行経路演算部4は、実施の形態1と同様、物体認識部3から出力される物体存在の認識結果および、自車位置検出部2から出力される自車位置および姿勢角に基づいて自車の走行経路を演算するが、演算された走行経路を第2の出庫走行経路として出力する。
走行経路比較部7は、第1の出庫走行経路生成部6で生成された第1の出庫走行経路と走行経路演算部4で演算された第2の出庫走行経路とを比較し、一致する場合は、第1の走行経路を、一致しない(不一致の)場合は、第2の走行経路を出力する。
<全体動作>
次に、図15に示すように自車OVを入庫開始位置SPから予め前向きで、並列に駐車された駐車車両PV1と駐車車両PV2の間の駐車スペースに入庫させておき、後ろ向きで入庫開始位置SPまで出庫させる駐車支援シーンを例に採って、実施の形態2における駐車支援装置200の全体の動作を説明する。
図16は、実施の形態2における駐車支援装置200の全体の動作を示すフローチャートである。なお、図16のフローチャートの処理は、車両走行中に繰り返し実行される。
図16の各ステップと、図14の各機能ブロックとの関係は以下の通りである。ステップS101は自車位置検出部2が行う動作であり、ステップS102は周辺状況検知センサ1が行う動作であり、ステップS103は物体認識部3が行う動作であり、ステップS104は第1の出庫走行経路生成部6が行う動作であり、ステップS105は走行経路演算部4が行う動作であり、ステップS106は走行経路比較部7が行う動作であり、ステップS107は車両制御部5が行う動作である。
駐車支援処理を開始すると、まず、ステップS101では、自車の速度および進行方向に関する状態を自車データとして検出し、検出した自車データから自車位置および姿勢角を検出する。
ステップS102では、自車に搭載された距離センサを用いて、自車周辺の状況を検知する。距離センサは自車の左前側方、右前側方、左後側方、右後側方、左前方、右前方、左後方、右後方に搭載されているものとする。その後、ステップS103およびステップS104に移行する。
ステップS103では、自車周辺に、格子状で区分された仮想空間(格子地図LM)を生成し、周辺状況検知センサ1で検知された結果に基づいて、格子地図LMの各格子に物体存在の有無および不特定領域を表す占有度を反映させる。詳細は、実施の形態1における物体認識部3の処理と同様である。その後、ステップS104に移行する。
ここで、駐車支援処理開始時にステップS103の処理を経て自車周辺に生成された格子地図LMは図17のように表現することができる。図17において、物体が存在すると認識された格子OELには濃いハッチングを施しており、不特定領域と認識された格子UKLには斜線のハッチングを施している。
図17に示されるように、自車の左前側方、右前側方、左後側方および右後側方には距離センサが設けられているので、距離センサの検出範囲にある駐車車両PV1およびPV2の側面は物体が存在すると認識されているが、距離センサの死角は不特定領域と認識されている。
ここで、図16の説明に戻る。駐車支援装置200は、自車OVが駐車スペースに入庫するまでの入庫走行軌跡DLを記憶するメモリ(図示せず)を有しており、第1の出庫走行経路生成部6は、記憶した軌跡の逆を辿る第1の出庫走行経路を生成して出力し(ステップS104)する。すなわち、図18に示すような入庫走行軌跡を第1の出庫走行経路として出力する。その後、ステップS106に移行する。
ここで、図18に示すような入庫走行軌跡を採った場合の移動距離と目標曲率の関係のグラフを図19に示す。図19に示すように入庫時には、入庫開始位置SPからしばらくは直線的に移動するので目標曲率は0であり、その後、目標曲率がρ1に達するまで目標曲率が増加し、目標曲率がρ1に達した後は目標曲率ρ1を維持し、その後は経路終端に達するまで目標曲率が減少し、最後に0となる。
これに対し、図18に示すような入庫走行軌跡の逆を辿る第1の出庫走行経路を採った場合の移動距離と目標曲率の関係のグラフを図20に示す。図20に示すように出庫時には、目標曲率がρ1に達するまで目標曲率が増加し、目標曲率がρ1に達した後は目標曲率ρ1を維持し、その後は目標曲率が減少し、目標曲率が0となった後は、経路終端に達するまで直線的に移動する。
ここで、図16の説明に戻る。第1の出庫走行経路生成部6での第1の出庫走行経路の生成と平行して、ステップS105では、自車位置および自車姿勢角と物体存在の認識結果に基づいて、自車の第2の出庫走行経路を演算する。その際、物体存在の認識結果において、不特定領域に関しては、物体が存在するものとして走行経路を演算し、ステップS106に移行する。
具体的には、図17に示した格子地図LMに対して、物体存在抽出部21において、物体が存在すると認識された格子OELおよび、自車の側方に存在する不特定領域UKLと認識された格子を物体が存在する領域として抽出する。このため、図21では、物体が存在するとして抽出された格子OELおよび不特定領域UKLに同じ濃いハッチングを施して格子OELとして扱っている。
そして、物体が存在するとして抽出された格子OELそれぞれに関して、実施の形態1の物体回避経路演算部22で説明したように、最大曲率を計算する。そして、それぞれの格子の最大曲率のうち、最小のものを、第2の出庫走行経路の目標曲率として出力する。
ステップS106では、第1の出庫走行経路と第2の出庫走行経路とを比較し、一致する場合は第1の出庫走行経路を、一致しない場合は第2の出庫走行経路を選択して出力し、ステップS107に移行する。
ここで、ステップS106において、第1の出庫走行経路と第2の出庫走行経路との比較を行うことによる効果について説明する。
図22および図23は、第1の出庫走行経路の問題点を説明する図である。図22では、図18で示した入庫走行軌跡を採って入庫した後、センサの死角となる位置に障害物OBがある状況を示している。この状況において、第1の出庫走行経路を用いると、図23に示すように、センサの死角となる位置にある障害物OBに自車OVが衝突する可能性がある。
そのため、ステップS103では、物体存在の有無および不特定領域を物体認識部3で認識し、ステップS105では、物体の存在領域を抽出することで障害物OBを回避する第2の出庫走行経路を演算して出力する。第2の出庫走行経路を用いることで、障害物OBに衝突することなく、入庫開始位置SPに出庫することができる。
この第2の出庫走行経路を用いた出庫について、図24〜図26を用いて説明する。図24は、センサの死角となる位置に障害物OBがある場合の格子地図LMを示しており、物体が存在すると認識された格子OELには濃いハッチングを施しており、不特定領域と認識された格子UKLには斜線のハッチングを施している。障害物OBは格子UKLの領域に存在している。図25では、物体が存在するとして抽出された格子OELおよび不特定領域UKLに同じ濃いハッチングを施して格子OELとして扱っている。このような格子地図LMの物体が存在するとして抽出された格子OELそれぞれに関して、最大曲率を計算し、それぞれの格子の最大曲率のうち、最小のものを、第2の出庫走行経路の目標曲率とすることで、図26に示されるように、障害物OBとの衝突を回避して出庫することができる。
ここで、第1の出庫走行経路と第2の出庫走行経路における移動距離と目標曲率との関係を図27に示す。図27において破線で示す第1の出庫走行経路は、図20に示した第1の出庫走行経路と同じであり、停止位置から直ちに目標曲率が増加するが、実線で示す第2の出庫走行経路は、停止位置からしばらくは直線的に移動した後、目標曲率がρ2に達するように目標曲率が増加し始める。これにより、障害物OBとの衝突を回避して出庫することができる。
ここで、図16の説明に戻る。ステップS107では、ステップS106で選択された走行経路に追従するように、自車の操舵制御および駆動制御を行う。
以上説明したように実施の形態2の駐車支援装置200においては、センサの死角となる位置に障害物OBが存在する場合でも、衝突を回避した出庫が可能となる。
<走行経路比較処理>
次に、走行経路比較部7における走行経路比較処理について図28に示すフローチャートを用いて説明する。走行経路比較処理を開始すると、まず、ステップS1061において、第1の出庫走行経路および第2の出庫走行経路をそれぞれ、所定の経路長ごとに経路終端まで分割する。
例えば、第1の出庫走行経路SAおよび第2の出庫走行経路SBをそれぞれ同じ経路長で分割した結果、それぞれが5分割された場合、第1の出庫走行経路SA={SA1,SA2,SA3,SA4,SA5}、第2の出庫走行経路SB={SB1,SB2,SB3,SB4,SB5}と表すことができ、インデックス番号が小さい順に経路開始位置からの分割経路とする。つまり、経路SAの開始位置はSA1、終了位置はSA5となる。
図29および図30には、上記経路分割を模式的に示しており、図29には第1の出庫走行経路SAの分割を、図30には第2の出庫走行経路SBの分割を例示している。
ここで、図28の説明に戻る。ステップS1601での経路分割の後、ステップS1062において、第1の出庫走行経路および第2の出庫走行経路それぞれに関して、同じ分割位置での分割経路を取得する。つまり、上記例において、第1および第2の出庫走行経路から、同じインデックス番号の分割経路をそれぞれ取得する。
このように所定の経路長ごとに第1の出庫走行経路および第2の出庫走行経路を経路終端まで分割して比較するので、正確な経路比較ができる。
そして、ステップS1063において、ステップS1062で取得した第1の出庫走行経路の分割経路と第2の出庫走行経路の分割経路とを比較し、一致していない場合(No)はステップS1064に移行し、一致している場合(Yes)は、ステップS1065に移行する。ここで、経路の比較は分割経路のそれぞれの曲率を比較することで行う。
ステップS1064では、走行経路比較部7の出力する走行経路として、第2の出庫走行経路を出力する。
ステップS1065では、第1の出庫走行経路と第2の出庫走行経路の比較に関して、第1の出庫走行経路の開始位置から終了位置まで第2の出庫走行経路と比較済みかを確認し、すべて比較した場合(Yes)は、ステップS1066に移行し、すべてを比較していない場合(No)は、ステップS1062以下の処理を繰り返す。
ステップS1066では、走行経路比較部7の出力する走行経路として、第1の出庫走行経路を出力する。
このように、走行経路比較部7では、第1の出庫走行経路および第2の出庫走行経路のうち一方を選択して出力することで、障害物と自車とのの衝突を回避した出庫が可能となる。
<実施の形態3>
<装置構成>
図31は、本発明に係る実施の形態3の駐車支援装置300の構成を示す機能ブロック図である。なお、図31においては、図14を用いて説明した駐車支援装置200と同一の構成については同一の符号を付し、重複する説明は省略する。
図31に示されるように、駐車支援装置300は、図14を用いて説明した駐車支援装置200の構成において、走行経路比較部7から走行経路演算部4に入力を与える構成をさらに備えている。
走行経路演算部4は、図14を用いて説明した駐車支援装置200と同様に、物体認識部3から出力される物体存在の認識結果および、自車位置検出部2から出力される自車位置および姿勢角に基づいて、自車の走行経路を第2の出庫走行経路として演算する。さらに、走行経路比較部7から走行経路再演算要求が入力された場合、物体認識部3から出力される物体存在の認識結果および、自車位置検出部2から出力される自車位置および姿勢角を再度利用して第3の出庫走行経路を演算し、自車の走行経路として出力する。
走行経路比較部7は、走行経路演算部4で演算した走行経路と第1の出庫走行経路生成部6で出力した第1の出庫走行経路とを比較し、一致する場合は、第1の出庫走行経路を、一致しない場合は、走行経路演算部4で演算した走行経路を出力する。なお、走行経路演算部4で演算される走行経路に関して、第3の出庫走行経路が演算されるまでは、第2の出庫走行経路を演算し、その後に第3の出庫走行経路を演算する。
また、走行経路比較部7は、走行経路演算部4で第2の出庫走行経路の一部しか演算できなかった場合、すなわち、第1の出庫走行経路の終端(入庫開始位置)までの全ての経路が演算できない場合、演算が終わった第2の出庫走行経路を辿りながら、走行経路演算部4に再度走行経路を演算するように、走行経路再演算要求を出力する。
ここで、第2の出庫走行経路の一部しか演算できない場合とは、第1の出庫走行経路の終端位置すなわち入庫開始位置が出庫開始位置からのセンサの検知範囲外にあって、不特定領域となって、経路終端が特定できない場合が挙げられる。
演算が終わった第2の出庫走行経路を辿りながら再度走行経路を演算することで、センサの検知範囲が変わり、経路終端を特定できる。
<全体動作>
図32は、実施の形態3における駐車支援装置300の全体の動作を示すフローチャートである。なお、図32のフローチャートの処理は、車両走行中に繰り返し実行される。
図32の各ステップと、図31の各機能ブロックとの関係は以下の通りである。ステップS201は、自車位置検出部2が行う動作であり、ステップS202は周辺状況検知センサ1が行う動作であり、ステップS203は物体認識部3が行う動作であり、ステップS204は第1の出庫走行経路生成部6が行う動作であり、ステップS205、S206およびS207は、走行経路演算部4が行う動作であり、ステップS208、S210およびS211は走行経路比較部7が行う動作であり、ステップS209は車両制御部5が行う動作である。
なお、図32に示すステップS201〜S204、S209の動作は図16に示した実施の形態2のフローチャートのステップS101〜S104、S107と同じであるので説明は省略する。
ステップS203において、自車周辺に、格子地図を生成し、周辺状況検知センサ1で検知された結果に基づいて、格子地図の各格子に物体存在の有無および不特定領域を表す占有度を反映させた後、ステップS205に移行する。
ステップS205では、走行経路比較部7から走行経路再演算要求が要求されたかを確認し、要求されていない場合(No)はステップS206に移行し、要求されている場合(Yes)は、ステップS207に移行する。
ステップS206では、実施の形態2のフローチャートのステップS105と基本的に同じであり、物体存在の認識結果および自車位置に基づいて演算された走行経路を第2の出庫走行経路として出力する。
ステップS207では、実施の形態2のフローチャートのステップS105と基本的に同じであり、再度、物体存在の認識結果および自車位置に基づいて走行経路Aを演算する。また、走行経路比較部7から第1の出庫走行経路における、走行経路終端、すなわち、入庫開始位置における車両の位置および、姿勢角を取得する。そして、現在の自車位置および姿勢角から、入庫開始位置における車両の位置および姿勢角に車両を誘導できる走行経路Bを生成する。この走行経路Bを生成する方法として公知の技術を利用でき、例えば特開2017−88112号公報に開示の技術を利用して走行経路(曲率)を生成することができる。
生成した走行経路Bでの曲率を、数式(35)で示したような走行経路Aでの曲率範囲に制限をかけることで、第3の出庫走行経路として出力する。つまり、生成した走行経路Bでの曲率が0.1、走行経路Aでの曲率範囲ρAが−0.05≦ρA≦0.05の場合、第3の出庫走行経路として出力する曲率は0.05となる。
ステップS208では、第1の出庫走行経路と走行経路演算部4から出力された第2の出庫走行経路もしくは第3の出庫走行経路に基づいて、走行経路を比較する。第3の出庫走行経路が存在しない場合は、第1の出庫走行経路と第2の出庫走行経路とを比較し、一致する場合は第1の出庫走行経路を、一致しない場合は第2の出庫走行経路を出力する。また、第3の出庫走行経路が存在する場合は、第1の出庫走行経路と第3の出庫走行経路とを比較し、一致する場合は第1の出庫走行経路を、一致しない場合は、第3の出庫走行経路を出力する。
ステップS209では、ステップS208で選択された走行経路に追従するように、自車の操舵制御および駆動制御を行い、ステップS210に移行する。
ステップS210は、第1の出庫走行経路に基づいて自車位置が第1の出庫走行経路の終端まで移動したかを確認し、移動した場合(Yes)は、駐車支援装置の動作を終了する。一方、移動していない場合(No)は、ステップS211に移行する。
ステップS211では、第2の出庫走行経路および自車位置に基づいて、第2の出庫走行経路の経路長が第1の出庫走行経路の経路長に満たない場合であり、かつ自車位置が第2の出庫走行経路において所定の距離進んだ場合、走行経路の再演算要求を出力してステップS201以下の処理を繰り返す。
以上説明したように実施の形態3の駐車支援装置300においては、センサの死角となる位置に障害物OBが存在する場合でも、衝突を回避した出庫が可能となる。また、走行経路演算部4で第2の出庫走行経路の一部しか演算できなかった場合でも、演算が終わった第2の出庫走行経路を辿りながら再度走行経路を演算することで、センサの検知範囲が変わり、経路終端までの第3の出庫走行経路を得ることができる。
<走行経路比較処理>
次に、走行経路比較部7における走行経路比較処理について図33に示すフローチャートを用いて説明する。
走行経路比較処理を開始すると、まず、ステップS2080において、第3の出庫走行経路との比較が必要かを判定し、比較が必要な場合(Yes)はステップS2090に移行し、比較が必要でない場合(No)はステップS2081に移行する。第3の出庫走行経路との比較が必要か否かは、走行経路比較部7が走行経路演算部4に走行経路再演算要求を出したか否かで判定できる。
ステップS2081では、比較対象となる出庫走行経路のそれぞれに対して、所定の経路長ごとに経路終端まで分割する。これは、実施の形態2において図28を用いて説明したステップS1061の経路分割の処理と同じである。その後、ステップS2082に移行する。
ステップS2082では、ステップS2081で分割された連結後の走行経路の経路長と第1の出庫走行経路の経路長とを比較し、走行経路演算部で演算された走行経路が第1の出庫走行経路よりも短い場合(Yes)、ステップS2083に移行し、第1の出庫走行経路以上の場合(No)は、ステップS2084に移行する。
ステップS2083では、第1の出庫走行経路および走行経路演算部で演算された走行経路(第2の出庫走行経路または第3の出庫走行経路)のそれぞれに関して、同じ分割位置での分割経路を取得する。つまり、比較対象の2つの出庫走行経路から、同じインデックス番号の分割経路をそれぞれ終端まで取得する。
例えば、第1の出庫走行経路SAおよび走行経路演算部4で演算された走行経路SCをそれぞれ、同じ経路長で分割した結果、第1の出庫走行経路SAが5分割、走行経路演算部4で演算された走行経路SCが3分割された場合、すなわち、経路SA={SA1,SA2,SA3,SA4,SA5}、経路SC={SC1,SC2,SC3}と表すことができる場合、ステップS2083においては、経路SAおよび経路SCに関して、それぞれ1番目〜3番目のインデックスの分割経路を取得する。その後、ステップS2085に移行する。
一方、ステップS2084では、第1の出庫走行経路および走行経路演算部4で演算された走行経路のそれぞれに関して、同じ分割位置での分割経路を第1の出庫走行経路の終端まで取得する。すなわち、第1の出庫走行経路および走行経路演算部で演算された走行経路SDをそれぞれ、同じ経路長で分割した結果、第1の出庫走行経路SAが5分割、走行経路SDが7分割された場合、経路SA={SA1,SA2,SA3,SA4,SA5}、経路SD={SD1,SD2,SD3,SD4,SD5,SD6,SD7}と表すことができる場合、ステップS2084において、経路SAおよび経路SDに関して、1番目〜5番目のインデックスの分割経路を取得する。その後、ステップS2085に移行する。
ステップS2085では、第1の出庫走行経路の分割経路と走行経路演算部4で演算された走行経路の分割経路とを比較し、一致していない場合(No)はステップS2086に移行し、一致している場合(Yes)は、ステップS2087に移行する。
ステップS2086では、走行経路比較部7の出力する走行経路として、走行経路演算部4で演算された出庫走行経路を出力し、ステップS2089に移行する。
ステップS2087では、走行経路比較部7の出力する走行経路として、第1の出庫走行経路を出力し、ステップS2089に移行する。
ステップS2089では、走行経路比較部7から出力される走行経路を図示されない走行経路記憶部に記憶させる。すなわち、走行経路比較部7が第1の出庫走行経路を出力する場合は走行経路SA={SA1,SA2,SA3,SA4,SA5}を記憶させ、走行経路演算部4で演算された出庫走行経路を出力する場合は、走行経路SC={SC1,SC2,SC3}または、走行経路SD={SD1,SD2,SD3,SD4,SD5,SD6,SD7}を記憶させる。
なお、走行経路比較部7は、走行経路SC={SC1,SC2,SC3}を記憶させた場合は、走行経路再演算要求を走行経路演算部4に出力する。
ここで、ステップS2090に移行した場合の処理について、走行経路演算部4において時刻tで第2の出庫走行経路を出力し、時刻t+Δtで第3の出庫走行経路を出力した場合について説明する。
まず、時刻tで第2の出庫走行経路SBが出力され、ステップS2081において、第1の出庫走行経路SAおよび第2の出庫走行経路SBをそれぞれ、同じ経路長で分割した結果、第1の出庫走行経路SAが5分割、第2の出庫走行経路SBが2分割された場合、つまり、走行経路SA={SA1,SA2,SA3,SA4,SA5}および走行経路SB={SB1,SB23}と表すことができる場合、ステップS2083において、走行経路SAおよび走行経路SBに関して、それぞれ分割経路を取得する。そして、ステップS2085において分割経路がそれぞれ一致するかを比較するが、一致しないので、ステップS2086では走行経路SBを出力した後、ステップS2089において、走行経路SB={SB1,SB23}を記憶する。これで、図示されない走行経路記憶部には時刻tで出力された走行経路SBが記憶されることとなる。
次に、時刻t+Δtにおいて、第3の出庫走行経路SCが出力された場合、ステップS2080において、第3の出庫走行経路との比較が必要と判定され、ステップS2090に移行する。
ステップS2090では、走行経路比較部7内の走行経路記憶部に走行経路が記憶されているか確認し、記憶されている場合は、記憶されている走行経路に第3の出庫走行経路SCを連結させ走行経路SDとする。すなわち、SD={SB1,SB2,SC}となる。
そして、ステップS2081において同じ経路長で分割した結果、走行経路SAが5分割され、走行経路SDが5分割された場合、つまり、走行経路SA={SA1,SA2,SA3,SA4,SA5}、SD={SD1,SD2,SD3,SD4,SD5}と表すことができる場合、ステップS2084において、1番目〜5番目のインデックスの経路を取得する。
その後、ステップS2085において、それぞれの分割経路が一致するか比較した後、一致する場合(Yes)は、ステップS2088において走行経路SAを出力し、ステップS2089において、走行経路SA={SA1,SA2,SA3,SA4,SA5}を記憶する。
一方、ステップS2085において、それぞれの分割経路が一致しないとされた場合(No)は、ステップS2088において走行経路SDを出力し、ステップS2089において、走行経路SD={SD1,SD2,SD3,SD4,SD5}を記憶する。
上記例では、再演算要求が1度あった場合を示したが、再演算要求が2度以上あった場合においても、時刻tで記憶された出力経路に対し、時刻t+Δtにおいて、走行経路SDとして、再演算された経路を追加すれば良い。
<走行経路再演算要求処理>
次に、走行経路比較部7における走行経路再演算要求処理について図34に示すフローチャートを用いて説明する。
走行経路再演算要求処理を開始すると、まず、ステップS2091において、走行経路の再演算要求が所定時間内にあったかを確認し、再演算要求がない場合(No)は、ステップS2092に移行し、再演算要求があった場合(Yes)は処理を終了して走行経路演算部4には再演算要求を出力しない。
ステップS2092では、第2の出庫走行経路と自車位置に基づいて、自車が第2の出庫走行経路を所定の距離移動したかを確認する。所定の距離移動した場合(Yes)は、ステップS2093に移行し、所定の距離移動していない場合(No)は処理を終了して走行経路演算部4には再演算要求を出力しない。
ステップS2093では、走行経路の再演算要求を走行経路演算部4に出力する。また、再演算要求を出力したことを、出力時間と共に走行経路比較部7内で記憶させる。さらに、第1の出庫走行経路の経路終端位置、すなわち、入庫開始位置および姿勢角を出力する。
なお、走行経路再演算要求処理は、第3の出庫走行経路を移動中にも繰り返して行い、繰り返して再演算要求を出しても良い。この場合の走行経路再演算要求処理について図35に示すフローチャートを用いて説明する。
図35に示すように、ステップS2091において、再演算要求があった場合(Yes)は、ステップS2094に移行し、自車が第3の出庫走行経路を所定の距離移動したかを確認する。所定の距離移動した場合(Yes)は、ステップS2093に移行し、所定の距離移動していない場合(No)は処理を終了して走行経路演算部4には再演算要求を出力しない。ステップS2093の動作は図34の場合と同じである。
なお、走行経路再演算要求処理は、第1の出庫走行経路の終端、すなわち、入庫開始位置に到達するまで繰り返し行っても良い。
以上説明したように本実施の形態の3の駐車支援装置300においては、障害物の不特定領域について、障害物が存在するものとして判断して走行経路を作成するので、自車と障害物との衝突の可能性を解消できる。また、入庫時には存在しなかった障害物が出庫時に存在した場合において、2つの走行経路を適宜、選択して自車を走行させるので、自車と障害物との衝突の可能性をさらに低減できる。
なお、以上説明した実施の形態1の車両制御装置100の各部はコンピュータを用いて構成することができ、コンピュータがプログラムを実行することで実現される。すなわち、図1に示した車両制御装置100は、例えば図36に示す処理回路100により実現される。処理回路100には、CPU、DSP(Digital Signal Processor)などのプロセッサが適用され、記憶装置に格納されるプログラムを実行することで各部の機能が実現される。
なお、処理回路100には、専用のハードウェアが適用されても良い。処理回路100が専用のハードウェアである場合、処理回路100は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGA、またはこれらを組み合わせたものなどが該当する。
また、図37には、図1に示した車両制御装置100がプロセッサを用いて構成されている場合におけるハードウェア構成を示している。この場合、車両制御装置100の各部の機能は、ソフトウェア等(ソフトウェア、ファームウェア、またはソフトウェアとファームウェア)との組み合わせにより実現される。ソフトウェア等はプログラムとして記述され、メモリ120に格納される。処理回路100として機能するプロセッサ110は、メモリ120(記憶装置)に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。
また、実施の形態2および3の駐車支援装置200および300についても車両制御装置100と同様にコンピュータを用いて構成することができ、コンピュータがプログラムを実行することで実現され、その構成は図36と同様となる。また、駐車支援装置200および300がプロセッサを用いて構成されている場合におけるハードウェア構成も図37と同様となる。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
本発明に係る車両制御装置は、自車の周辺状況を検知する検知センサで得られた前記周辺状況に基づいて、自車周辺の物体の存在の有無を認識すると共に前記物体の存在の有無を認識できない領域を不特定領域として認識し、これらを認識結果として出力する物体認識部と、自車位置検出部で検出した自車位置および前記認識結果に基づいて、走行経路を演算する走行経路演算部と、前記走行経路演算部で演算された前記走行経路に従って操舵制御する制御部と、を備え、前記走行経路演算部は、前記不特定領域には前記物体が存在するものとして前記走行経路の演算を行い、前記物体認識部は、前記自車を包含する自車周辺に格子状に区分された仮想空間を作成し、初期状態では全ての格子に前記不特定領域に割り当てる第1の占有度を割り当てて記憶する仮想空間記憶部と、前記自車位置および前記周辺状況に基づいて、前記仮想空間の前記格子が、前記物体で占有されていることを示す第2の占有度、前記物体で占有されていないことを示す第3の占有度および前記物体で占有されているかいないかが不明であることを示す前記第1の占有度を算出する占有度算出部と、前記仮想空間記憶部に記憶された前記仮想空間の前記格子に、前記占有度算出部で算出された前記第1の占有度、前記第2の占有度および前記第3の占有度の何れかを割り当てて前記仮想空間を更新し、前記仮想空間記憶部に記憶させると共に、前記走行経路演算部に出力する仮想空間更新部と、を有し、前記走行経路演算部は、更新された前記仮想空間に基づいて、前記第2の占有度を有する格子、および前記第1の占有度を有する格子には前記物体が存在するものとして前記走行経路の演算を行う。