(58)【調査した分野】(Int.Cl.,DB名)
並列駐車された駐車車両(71、72)を検知してその検知結果に基づいて前記駐車車両に隣接した駐車空間(5)を検知する空間検知手段(10、20、21、31、32)と、
その空間検知手段による検知結果に基づいて、前記駐車空間に隣接する前記駐車車両の側面が存在すると想定される側面想定範囲(73、74)を設定する範囲設定手段(S15)と、
その範囲設定手段が設定した前記側面想定範囲を複数の範囲(731、732、741、742)に分割する範囲分割手段(S16)と、
自車両(6)が前記駐車空間に対する駐車動作を行っている最中に逐次前記自車両の側方に位置する前記駐車車両の輪郭点(9)を検知する輪郭点検知手段(S12〜S14)と、
前記範囲分割手段が分割した前記範囲に含まれた前記輪郭点(911、912、921、922)に応じた形状となるように前記駐車空間を補正する空間補正手段(S26〜S29)と、を備えることを特徴とする駐車空間検知装置(1)。
前記範囲分割手段は、前記側面想定範囲を、前記駐車空間の奥行き方向に、前記駐車空間の入口側の第1範囲(731、741)と、その第1範囲よりも前記駐車空間の奥側の第2範囲(732、742)とに分割し、
前記空間補正手段は、
前記第1範囲に含まれた前記輪郭点(911、921)に応じた形状となるように前記駐車空間を補正する第1補正手段(S26)と、
前記第2範囲に含まれた前記輪郭点(912、922)に応じた形状となるように前記駐車空間を補正する第2補正手段(S27)と、を備えることを特徴とする請求項1に記載の駐車空間検知装置。
前記範囲設定手段は、前記空間検知手段が検知した、前記駐車空間の入口側に位置する前記駐車車両のコーナー点(721a、711a)を基準として、前記駐車空間の左右それぞれの方向に所定幅、前記駐車空間の奥行き方向に所定長を有した範囲を前記側面想定範囲として設定することを特徴とする請求項2に記載の駐車空間検知装置。
前記第1補正手段(S43)は、前記第1範囲に含まれた複数の前記輪郭点(911)を略直線近似する第1近似手段を備え、その第1近似手段で近似された近似略直線(93)で定まる傾斜略直線(931)を前記駐車車両のコーナーの形状とすることを特徴とする請求項3に記載の駐車空間検知装置。
前記第2補正手段は、補正前の前記駐車空間の入口側の両コーナー点(711a、721a)間を結ぶ直線(75)と前記第2近似手段で近似された近似略直線との交点(711c、721c)を、前記駐車車両の新たなコーナー点として算出するコーナー補正手段(S53、S76)を備えることを特徴とする請求項6に記載の駐車空間検知装置。
前記空間補正手段(S28)は、前記駐車空間の補正量が所定量以上の場合には前記駐車空間の補正を中止することを特徴とする請求項1〜8のいずれか1項に記載の駐車空間検知装置。
【発明を実施するための形態】
【0009】
以下、本発明に係る駐車空間検知装置の実施形態を図面を参照しながら説明する。
図1は、本実施形態の駐車支援システム1のブロック図を示している。駐車支援システム1は自車両6(
図2参照)に搭載されている。駐車支援システム1は、駐車支援ECU10と、その駐車支援ECU10に接続された測距センサ20、21、車速センサ31及び操舵角センサ32とを備えている。なお、駐車支援システム1が本発明の「駐車空間検知装置」に相当する。測距センサ20、21は、駐車支援ECU10からの指示に基づいて、自車両6の側方に向けて超音波等の探査波を逐次送信し、その探査波が障害物に当たって反射した反射波を逐次受信する。そして、測距センサ20、21は、探査波の送信タイミングと反射波の受信タイミングに基づいて、自車両6から障害物までの距離を検知するセンサである。測距センサ20、21で検知された検知情報(検知距離)は駐車支援ECU10に入力される。測距センサ20、21は、探査波を送信しその探査波の反射波を受信するセンサであれば良く、音波を用いるものであっても、光波を用いるものであっても、電波を用いるものであっても良い。測距センサ20、21としては、例えば超音波センサ、レーザレーダ、ミリ波レーダ等のセンサを用いることができる。
【0010】
測距センサ20は、主に、自車両6が駐車車両の側方経路を通過するときにその駐車車両に隣接した駐車空間を検知するための測距センサとされる。その測距センサ20は、
図2に示すように、例えば自車両6の左側面の前側に配置された左前側センサ20Lと、右側面の前側に配置された右前側センサ20Rとを含んでいる。左前側センサ20Lは、自車両6前側の左側方に探査波を送信する。右前側センサ20Rは、自車両6前側の右側方に探査波を送信する。
【0011】
測距センサ21は、主に、検知した駐車空間に駐車するように自車両6がバック(後進)しているときにその駐車空間を補正するための測距センサとされる。測距センサ21は、
図2に示すように、例えば自車両6の左側面の後側に配置された左後側センサ21Lと、右側面の後側に配置された右後側センサ21Rとを含んでいる。左後側センサ21Lは、自車両6後側の左側方に探査波を送信する。右後側センサ21Rは、自車両6後側の右側方に探査波を送信する。
【0012】
図2には、左前側センサ20Lによる障害物の検知範囲200を示している。なお、他のセンサ20R、21L、21Rの検知範囲の形状は検知範囲200の形状と同様となっていても、異なっていても良い。例えば、前側のセンサ20の検知距離の方が後側のセンサ21の検知距離よりも長いなど、各センサ20L、20R、21L、21Rの特性が異なっていたとしても良い。各センサ20L、20R、21L、21Rの検知範囲の指向性φ(探査波の放射範囲角度)は例えば70°〜120°程度となっている。各検知範囲の中心線(各センサ20L、20R、21L、21Rの正面方向)は、例えば自車両6の車幅方向(左右方向)に略平行の向きとなっている。なお、その中心線は、車幅方向に対して例えば20°程度まで傾いていても良い。また、各センサ20、21が障害物を検知可能な最大検知距離MaxLは例えば4m〜10m程度となっている。
【0013】
車速センサ31は自車両6の車速を検知するセンサである。車速センサ31で検知された検知情報(車速)は駐車支援ECU10に入力される。操舵角センサ32は自車両6のステアリングの操舵角を検知するセンサである。自車両6が直進状態で走行するときの操舵角を中立位置(0度)とし、その中立位置からの回転角度を操舵角として出力する。操舵角センサ32で検知された検知情報(操舵角)は駐車支援ECU10に入力される。
【0014】
駐車支援ECU10は、CPU、ROM、RAM等から構成されたマイコンを主体として構成されている。その駐車支援ECU10は、測距センサ20、21、車速センサ31、操舵角センサ32から入力された各検知情報に基づいて、自車両6の駐車を支援する各種処理を実行する。具体的には、駐車支援ECU10は、駐車空間を検知する空間検知処理や、検知した駐車空間に自車両6が駐車できるか否かを判定する駐車判定処理や、駐車可と判定した駐車空間に自車両6を自動で駐車させる自動駐車処理や、その自動駐車処理中に駐車空間の位置や角度(向き)を補正する空間補正処理を実行する。この空間補正処理が本発明の特徴部分であるので、その処理については後に詳細に説明する。
【0015】
空間補正処理を説明する前に、先ず、駐車空間の検知方法(空間検知処理)を説明する。ここで、
図2は、並列駐車された2台の駐車車両71、72の側方経路2を自車両6が移動しながら、それら駐車車両71、72間の駐車空間5を検知する場面を示している。なお、各駐車車両71、72は、駐車車両71、72の側方経路2側に各フロント面713、723が位置するように、駐車されている。また、
図2では、自車両6は、
図2の紙面方向で右側(駐車車両71側)から左側(駐車車両72側)に移動している。駐車支援ECU10は、例えば空間検知の開始を指示するスイッチ(図示外)が自車両6の乗員に操作されたときに、空間検知処理を開始する。
【0016】
駐車支援ECU10は、例えば空間検知処理の開始時の自車両6の位置を原点O、空間検知処理の開始時の自車両6の進行方向をX軸41、そのX軸41に直角なY軸42から構成された基準座標平面(
図2参照)を設定する。空間検知処理が開始されると、駐車支援ECU10は、前側に配置された測距センサ20に指示をして、自車両6から自車両6の側方に存在する障害物(駐車車両71、72)までの距離を一定時間おきに逐次検知させる。また、駐車支援ECU10は、車速センサ31による車速及び操舵角センサ32による操舵角に基づいて、測距センサ20で距離検知するときのその測距センサ20の位置(以下、センサ位置と言う)を算出する。なお、センサ位置は基準座標平面上の座標として算出される。そして、駐車支援ECU10は、測距センサ20による検知距離の履歴とセンサ位置の履歴とを用いて、三角測量により、駐車車両71、72の輪郭点を算出する。
【0017】
ここで、
図3は、駐車車両71、72の輪郭点の算出方法を説明する図である。なお、
図3の駐車車両70は、
図2の駐車車両71、72のどちらか一方を示している。
図3には、ある時点t(n)における自車両6(実線)を符号61で示し、1つ前の時点t(n−1)における自車両6(破線)を符号62で図示している。また、
図3には、時点t(n)での測距センサ20のセンサ位置201と、時点t(n−1)での測距センサ20のセンサ位置202とを図示している。これらセンサ位置201、202から送信された測距センサ20の探査波は、駐車車両70の同一の輪郭点8で反射すると仮定する。センサ位置201での検知距離がL1、センサ位置202での検知距離がL2とすると、
図3に示すように、センサ位置201、202、検知距離L1、L2で三角形55を作ることができる。その三角形55の頂点を輪郭点8として求めることができる。このように、駐車支援ECU10は、隣りの時点における2つの検知距離と、隣りの時点における2つのセンサ位置とに基づく三角測量により、輪郭点8を算出している。
【0018】
図2には、
図3で説明した方法で算出された輪郭点8を図示している。輪郭点8は、
図2の右側の駐車車両71の輪郭点81と、左側の駐車車両72の輪郭点82とを含む。
図2に示すように、駐車車両71のフロント面713に沿って複数の輪郭点81が検知される。同様に、駐車車両72のフロント面723に沿って複数の輪郭点82が検知される。駐車支援ECU10は、駐車車両71の輪郭点81の点列データに基づいて、駐車車両71のコーナー点711(側方経路2側のコーナーのうち自車両6の進行方向の奥側のコーナー点)を算出する。同様に、駐車支援ECU10は、駐車車両72の輪郭点82の点列データに基づいて、駐車車両72のコーナー点721(側方経路2側のコーナーのうち自車両6の進行方向の手前側のコーナー点)を算出する。そして、駐車支援ECU10は、それらコーナー点711、721に基づいて駐車空間5を検知する。具体的には、駐車支援ECU10は、コーナー点711、721間の左右幅を有し、Y軸42に平行な方向(Y方向)を奥行き方向とした空間5を駐車空間として検知する。このとき、駐車支援ECU10は、駐車車両71、72がY方向に向いていると認識することになる。
【0019】
その後、駐車支援ECU10は、例えば検知した駐車空間5の左右幅と、自車両6の車幅とを比較して、その駐車空間5に自車両6が駐車できるか否かを判定する(駐車判定処理)。そして、駐車可と判定したときには、駐車支援ECU10は、自車両6の現在位置から駐車空間5までの経路を算出する。そして、駐車支援ECU10は、その経路に沿って移動するように自車両6のステアリング等を制御して、自車両6を駐車空間5に自動的に駐車させる(自動駐車処理)。なお、駐車支援ECU10は、自車両を前後に切返しながら自動駐車を行う。
【0020】
このとき、最初に検知した駐車空間の精度が高ければ問題はないが、
図4、
図5に示すように、検知した駐車空間51と、実際の駐車空間5との間に誤差を有する場合がある。
図4、
図5では、駐車支援ECU10が認識している駐車車両71、72の位置を破線71a、72aで図示し、駐車車両71、72の実際の位置を実線71b、72bで図示している。
図4は、検知した駐車車両71a、72aが、実際の駐車車両71b、72bに対して左右方向にずれている例を示している。
図4の例では、駐車支援ECU10は、左右方向にずれた駐車車両71a、72aを認識している結果、実際の駐車空間5に対して左右方向にずれた駐車空間51を認識している。その結果、その駐車空間51に自車両6を駐車させると、実際の駐車空間5の左右のどちらかに寄った位置(
図4では右に寄った位置)に自車両6が駐車されてしまう。
【0021】
図5は、検知した駐車車両71a、72aの向き(角度)が、実際の駐車車両71b、72bの向き(角度)に対してずれている例を示している。
図5の例では、駐車支援ECU10は、向きがずれた駐車車両71a、72aを認識している結果、実際の駐車空間5に対して向きがずれた駐車空間51を認識している。その結果、その駐車空間51に自車両6を駐車させると、実際の駐車空間5の向きに対して非平行に自車両6が駐車されてしまう。
【0022】
そこで、駐車支援ECU10は、検知した駐車空間51に自車両6が駐車動作を行っている最中に空間補正処理を実行して、その駐車空間51の位置や角度を補正している。以下、その空間補正処理の詳細を説明する。
図6は、空間補正処理のフローチャートを示している。
図6の処理は、検知した駐車空間に自車両6の駐車動作(自動駐車)を開始する時に、開始される。駐車支援ECU10は、
図6の処理を行っている間、自車両6の後側に配置された測距センサ21(
図2参照)に指示をして、自車両6から自車両6の側方に存在する障害物(駐車車両)までの距離を一定時間おきに逐次検知させている。
図6の処理が開始されると、先ず、現在時間t(n)をゼロに設定する(S11)。また、測距センサ21による距離検知の計測カウントnを1に設定する(S11)。なお、計測カウントnは、測距センサ21が距離を検知する度に1ずつ増加していく。そして、駐車支援ECU10は、各計測カウントnでの時間t(n)(t(1)=0を基準とした時間)を計測している。
【0023】
次のS12〜S14の処理は、
図2の輪郭点8(駐車空間検知時の輪郭点)を検知したときと同じ処理である。すなわち、計測カウントn(時間t(n))での測距センサ21による検知距離L(n)を取得する(S12)。次いで、計測カウントnでの測距センサ21のセンサ位置Attd(AttdX(n)、AttdY(n))を、車速センサ31及び操舵角センサ32の検知情報に基づいて算出する(S13)。S13では、左後側センサ21Lのセンサ位置Attdと、右後側センサ21Rのセンサ位置Attdの両方を算出する。なお、時間t(n)と車速によって自車両6が進行した距離を算出できる。また、操舵角によって、自車両6の進行方向を算出できる。よって、自車両6の進行距離や進行方向に基づいて、計測カウントnでの自車両6の位置を算出できる。そして、測距センサ21L、21Rの自車両6に対する搭載位置を予め記憶しておくことで、算出された自車両6の位置とその搭載位置とからセンサ位置Attdを算出できる。センサ位置Attd(AttdX(n)、AttdY(n))は、例えば、駐車空間検知時に設定した基準座標平面(
図2の原点O、X軸41、Y軸42から構成される座標平面)上の座標として算出される。
【0024】
次に、検知距離L(n)の履歴とセンサ位置Attdの履歴とを用いて、三角測量により、自車両6の側方に存在する障害物(駐車車両)の輪郭点Rflt(RfltX(n)、RfltY(n))を算出する(S14)。詳細には、左後側センサ21Lで検知された検知距離L(n)の履歴と左後側センサ21Lのセンサ位置Attdの履歴とから、自車両6の左側方に存在する障害物の輪郭点Rfltを算出する(S14)。同様に、右後側センサ21Rで検知された検知距離L(n)の履歴と右後側センサ21Rのセンサ位置Attdの履歴とから、自車両6の右側方に存在する障害物の輪郭点Rfltを算出する(S14)。S14の輪郭点Rfltも、
図2の基準座標平面上の座標として算出される。
【0025】
ここで、
図7、
図8は、検知された駐車空間51に自車両6が自動駐車を行っている場面(
図6の処理が実行されるときの場面)を例示している。詳細には、
図7では、自車両6の内輪側に位置する駐車車両72a(駐車支援ECU10が認識している駐車車両)が、実際の駐車車両72bに対して右方向にずれている。そして
図7は、右方向にずれた駐車車両72aに基づいて検知された駐車空間51に自車両6が自動駐車を行っている場面を示している。なお、
図7では、自車両6の外輪側に位置する駐車車両71a(駐車支援ECU10が認識している駐車車両)は、実際の駐車車両71bと一致しているとしている。一方、
図8では、検知した駐車車両71a、72aの向きが、実際の駐車車両71b、72bの向きからずれている。つまり、実際の駐車車両71b、72bは傾いているにもかかわらず、検知した駐車車両71a、72aは傾いていない。そして
図8は、傾いていない駐車車両71a、72aに基づいて検知された駐車空間51(傾いていない駐車空間)に自車両6が自動駐車を行っている場面を示している。
【0026】
また、
図7、
図8には、S12〜S14の処理で算出された輪郭点9を黒丸で図示している。
図7、
図8に示すように、自車両6の駐車動作にともなってS12〜S14の処理を繰り返し実行することで、実際の駐車車両71b、72bの車体面(フロント面、コーナー、側面)に沿った位置に、輪郭点9の点列データが得られる。詳細には、自車両6の左側方の位置に、駐車車両72bの輪郭点91の点列データが得られる。自車両6の右側方の位置に、駐車車両71bの輪郭点92の点列データが得られる。なお、
図7では、自車両6は、駐車空間51に対する自車両6の侵入が浅いので、右後側センサ21Rの検知範囲210Rには未だ駐車車両71bが入っていない。そのため、
図7では、駐車車両71bの輪郭点は未だ検知されていない。これに対し、
図8では、駐車空間52の中心付近まで駐車動作が進行しているので、各検知範囲210L、210Rに駐車車両72b、71bが入っている。そのため、
図8では、駐車車両72bの輪郭点91と、駐車車両71bの輪郭点92の両方が検知されている。
【0027】
図6の説明に戻り、次いで、駐車支援ECU10が現在認識している駐車車両71a、72aの検知情報に基づいて、実際の駐車車両71b、72bの側面712b、722bが存在すると想定される側面想定範囲73、74を設定する(S15、
図7、8参照)。なお、
図7、
図8では、実際の側面712b、722bを図示しているが、駐車支援ECU10は、S15の段階ではそれら側面712b、722bを認識していない。具体的には、駐車支援ECU10が現在認識している駐車車両71a、72aのコーナー点711a、721a(
図7、
図8では×で図示している)に基づいて側面想定範囲73、74を設定する。このコーナー点711a、721aは、最初(駐車空間の補正前)は駐車空間検知時に検知されたコーナー点(
図2参照)とされる。一方、
図6の処理で駐車空間(駐車車両のコーナー点)を補正した後は、コーナー点711a、721aは補正後の駐車車両のコーナー点とされる。
【0028】
S15では、
図7に示すように、駐車車両72aのコーナー点721aを基準として、現在認識している駐車空間51の奥行き方向に所定長d1、駐車空間51の右方向に所定幅d2、左方向に所定幅d3を有した長方形状の範囲73を、駐車車両72に対する側面想定範囲として設定する。なお、所定幅d2、d3は、互いに同じ値に設定され、具体的には例えば0.5m〜1m程度に予め設定されている。また、所定長d1は、駐車空間51の奥行き長さ(一般的な車両長として予め設定された長さ)と同じに設定される。
【0029】
同様に、駐車車両71aのコーナー点711aを基準とした、側面想定範囲73と同じ形状の範囲74(所定長d1、所定幅d2、d3から構成される長方形状の範囲)を、駐車車両71に対する側面想定範囲74(
図8参照)として設定する(S15)。なお、
図7では、駐車車両71に対する側面想定範囲を図示していないが、実際はその側面想定範囲は設定されている。
【0030】
次いで、S15で設定した側面想定範囲を、駐車車両のフロント面やコーナーが含まれる可能性がある第1範囲Area1と、駐車車両の側面が含まれる第2範囲Area2とに分割する(S16)。具体的には、
図7、
図8に示すように、側面想定範囲73、74を、現在認識している駐車空間51の奥行き方向に、駐車空間51の入口側の第1範囲731、741と、奥側の第2範囲732、742とに分割する(S16)。第1範囲731、741(第1範囲Area1)の奥行き方向の幅d4は、車両コーナーにおける曲面形状の大きさを考慮して設定され、具体的には例えば1m程度に予め設定されている。側面想定範囲73、74から第1範囲731、741を除いた範囲が第2範囲732、742(第2範囲Area2)とされる。なお、S14及びS15の処理は、
図6の処理の開始時、つまりS11の処理時に行っても良い。
【0031】
次いで、以降の処理で着目する輪郭点Rfltのカウント値i(厳密には、輪郭点Rfltの算出に用いた検知距離のカウント値)を1に設定する(S17)。また、第1範囲Area1に入っている輪郭点Rfltの個数Cnt1をゼロに設定する(S17)。また、第2範囲Area2に入っている輪郭点Rfltの個数Cnt2をゼロに設定する(S17)。
【0032】
次いで、カウント値iの輪郭点Rflt(i)が第1範囲Area1に入っているか否かを判断する(S18)。詳細には、S18では、左後側センサ21Lで検知された輪郭点Rflt(i)が、自車両6の左側方に設定された第1範囲Area1に入っているか否かを判断する(S18)。同様に、右後側センサ21Rで検知された輪郭点Rflt(i)が、自車両6の右側方に設定された第1範囲Area1に入っているか否かを判断する(S18)。このように、S18を含む
図6の各処理では、自車両6の左側方の判断と右側方の判断とをそれぞれ独立に行う。
【0033】
S18において、輪郭点Rflt(i)が第1範囲Area1に入っている場合には(S18:Yes)、S19に進む。S19では、個数Cnt1に1を加算する(Cnt1=Cnt1+1)。また、輪郭点Rflt(i)を、第1範囲Area1に入っている輪郭点であることを示した配列RfltArea1(Cnt1)に入れる(S19)。つまり、RfltArea1(Cnt1)=Rflt(i)とする(S19)。なお、以下では、RfltArea1(Cnt1)を第1範囲Area1の輪郭点と言う。S19の後、S22に進む。
【0034】
一方、S18において、輪郭点Rflt(i)が第1範囲Area1に入っていない場合には(S18:No)、S20に進む。S20では、輪郭点Rflt(i)が第2範囲Area2に入っているか否かを判断する(S20)。入っている場合には(S20:Yes)、S21に進んで、個数Cnt2に1を加算する(Cnt2=Cnt2+1)。また、輪郭点Rflt(i)を、第2範囲Area2に入っている輪郭点であることを示した配列RfltArea2(Cnt2)に入れる(S21)。つまり、RfltArea2(Cnt2)=Rflt(i)とする(S21)。なお、以下では、RfltArea2(Cnt2)を第2範囲Area2の輪郭点と言う。S21の後、S22に進む。一方、S20において、輪郭点Rflt(i)が第2範囲Area2に入っていない場合には(S20:No)、S22に進む。
【0035】
S22では、カウント値iに1を加えた値(i+1)が最新の計測カウントn(nは後述するS31で更新されていく)を超えるか否かを判断する(S22)。つまり、i+1>nを満たすか否かを判断する(S22)。満たさない場合には(S22:No)、S23に進んで、i=i+1としてカウント値iを更新する。その後、S18に戻って、更新後のカウント値iの輪郭点Rflt(i)に対して上述のS18〜S22の処理を行う。
【0036】
このように、S18〜S23の処理が繰り返されることで、i=1の輪郭点Rfltからi=nの輪郭点Rfltまで順番に、各輪郭点Rfltが第1範囲Area1に入っているか、第2範囲Area2に入っているかが判断される。そして、第1範囲Area1に入っている輪郭点の個数Cnt1が計数されていく(S19)。また、第2範囲Area2に入っている輪郭点の個数Cnt2が計数されていく(S21)。
図7、
図8には、左側の第1範囲731に入っている輪郭点に符号「911」を付しており、左側の第2範囲732に入っている輪郭点に符号「912」を付しており、右側の第1範囲741に入っている輪郭点に符号「921」を付しており、右側の第2範囲742に入っている輪郭点に符号「922」を付している。例えば、
図7の例では、S18〜S23の処理が繰り返されることで、第1範囲731の輪郭点911が特定され、それら輪郭点911の個数Cnt1が計数される。なお、
図7の例では、左側の第2範囲732、右側の第1範囲、第2範囲には未だ輪郭点が検知されていない。
【0037】
図6の説明に戻り、S22において、i+1>nを満たす場合には(S22:Yes)、S24に進む。S24では、第2範囲Area2の輪郭点RfltArea2の個数Cnt2が2未満か否かを判断する(S24)。個数Cnt2が2未満の場合、つまり輪郭点RfltArea2が1つしかなく、又は1つもない場合には(S24:Yes)、S25に進む。S25では、第1範囲Area1の輪郭点RfltArea1の個数Cnt1が1以上か否かを判断する(S25)。個数Cnt1がゼロの場合、つまり第1範囲Area1に未だ輪郭点RfltArea1が検知されていない場合には(S25:No)、S30に進む。この場合には、自車両6が未だ駐車空間に侵入していない場面(例えば駐車動作の開始直後の場面)が想定される。
【0038】
S25において、個数Cnt1が1以上の場合、つまり輪郭点RfltArea1が有る場合には(S25:Yes)、S26に進む。S26では、輪郭点RfltArea1に基づいて駐車空間を補正する第1補正処理を行う(S26)。なお、
図7の例では、第2範囲732には未だ輪郭点が検知されておらず、第1範囲731には輪郭点911が検知されているので、S26の処理が実行される。ここで、
図9は、S26の第1補正処理の詳細のフローチャートである。
図9の処理に移行すると、先ず、駐車車両のコーナーの形状を傾斜直線として補正するモード(面取りモード)が設定されているか否かを判断する(S41)。面取りモードが設定されているか否かは、駐車支援ECU10が実行する制御プログラムで予め決められている。面取りモードが設定されていない場合には(S41:No)、S42に進む。
【0039】
S42では、輪郭点RfltArea1の中で、最も駐車空間寄りの輪郭点のX座標と同じになるように、現在認識している駐車車両のコーナー点の位置を補正する(S42)。このとき、コーナー点のY座標は補正前後で同じとする(S42)。
図7の例では、輪郭点911の中で最も駐車空間51寄りの輪郭点911aのX座標と同じになるように、駐車車両72aのコーナー点721aが符号「721b」の位置に補正される(S42)。なお、S42の段階では未だ補正後のコーナー点に基づく駐車空間に更新されるわけではなく(S42では補正後のコーナー点の位置を算出しているだけ)、その更新は後述する
図6のS29で行われる。第1範囲Area1には駐車車両のコーナーが含まれると想定される。そのコーナーの輪郭点の点列データの形状は弧状(曲線状)となる。よって、S42の処理を行うことで、曲線状のコーナーの最も外側の位置にコーナー点を補正することができる。S42の後、
図9のフローチャートの処理を終了する。
【0040】
S41において、面取りモードが設定されている場合には(S41:Yes)、S43に進む。S43では、輪郭点RfltArea1の点列データを最小二乗法等で直線近似する(S43)。そして、その近似直線のうち第1範囲Area1に含まれる部分(線分)を、駐車車両のコーナーの形状とする(S43)。ここで、
図10は、S43の処理を説明する概念図である。
図10の例では、S43で、第1範囲731の輪郭点911の点列データを直線近似すると近似直線93が得られる。輪郭点911の点列データの形状は弧状(曲線状)となっているので、近似直線93は傾斜直線になる。その近似直線93のうち第1範囲731に入っている部分931(傾斜線分)が、駐車車両72のコーナー形状となる。S43の処理は、
図11に示すように、コーナーを点で表現した四角形状の駐車車両72(駐車空間検知時に検知した駐車車両)のコーナー付近724を傾斜線分931で面取りすることを意味している。よって、自車両6が駐車空間52に駐車するときに、面取りされた部分724だけ攻めた駐車経路を設定することができる。つまり、駐車経路の設定幅を広げることができる。
【0041】
なお、S43の段階では未だ補正後のコーナー(傾斜線分)に基づく駐車空間に更新されるわけではなく(S43では傾斜線分を算出しているだけ)、その更新は後述する
図6のS29で行われる。S43の後、
図9のフローチャートの処理を終了する。
【0042】
図6の説明に戻り、S26の後、S28に進んで、S26で算出した補正後のコーナー点に基づいて駐車空間を補正するときに、その補正量が予め定められた閾値未満か否かを判断する(S28)。具体的には、
図9のS42で算出した補正後のコーナー点(
図7の例ではコーナー点721b)と補正前のコーナー点(
図7の例ではコーナー点721a)間の距離(補正量)が閾値(例えば3m)より小さいか否かを判断する(S28)。補正量が閾値を超える場合には(S28:No)、駐車空間の補正を行わないで、S30に進む。例えば駐車空間に対する自車両の侵入量が浅い場合には、検知される輪郭点の個数が少ない。そして、少ない個数の輪郭点に基づいて補正量を算出すると、誤差が大きい可能性がある。そこで、閾値を超える大きい補正量の場合には駐車空間の補正を行わないことで、誤った位置、角度に駐車空間が補正されてしまうのを防止できる。
【0043】
S28において、補正量が閾値未満の場合には(S28:Yes)、S29に進んで、S26による補正を有効にして、駐車空間の補正を行う(S29)。具体的には、
図9でS42を実行した場合には、
図7に示すように、コーナー点721aを、S42で算出した新しいコーナー点721bに更新する(S29)。その結果、駐車空間は、点線で示した駐車空間51から実線で示した駐車空間52に更新(補正)される(S29)。なお、S26では、駐車車両の角度(向き)の補正は行っていないので、
図7の駐車空間52の向きは、補正前の駐車空間51の向きに維持される。また、
図9でS43を実行した場合には、S29では、
図11に示すように駐車車両72のコーナー付近724が面取りされた駐車空間52に更新される(S29)。
【0044】
一方、駐車空間に対する自車両6の侵入が進んで、S24で、個数Cnt2が2以上となった場合には(S24:No)、S27に進む。S27では、輪郭点RfltArea2に基づいて駐車空間を補正する第2補正処理を行う(S27)。なお、
図8の例では、第2範囲732、742に輪郭点912、922が検知されているので、S27の処理が実行される。ここで、
図12、
図13は、S27の処理の詳細のフローチャートである。S27では、
図12の処理又は
図13の処理のどちらか一方が実行される。
図12、
図13のどちらの処理を実行するかは、駐車支援ECU10が実行する制御プログラムで予め決められている。先ず
図12の処理から説明する。
【0045】
図12の処理に移行すると、先ず、輪郭点RfltArea2の点列データ(RfltArea2(1〜Cnt2))を最小二乗法等で直線近似する(S51)。
図8には、左側の輪郭点912の点列データを直線近似して得られた近似直線941と、右側の輪郭点922の点列データを直線近似して得られた近似直線942とを示している。
【0046】
次いで、S51で得られた近似直線に基づいて駐車車両の角度(向き)を算出する(S52)。具体的には、現在認識している駐車車両の向きに対するS51の近似直線の角度を算出する(S52)。
図8の例では、現在認識している駐車車両72aの向きに延びた直線76と近似直線941の間の角度θを算出する(S52)。同様に、右側の駐車車両71aの向きに延びた直線(図示外)と近似直線942の間の角度を算出する(S52)。
【0047】
次いで、駐車車両の新しいコーナー点の候補となる点(コーナー候補点)を算出する(S53)。具体的には、現在認識している駐車空間の入口側の両コーナー点(左側の駐車車両のコーナー点及び右側の駐車車両のコーナー点)間を結んだ直線と、S51で得られた近似直線との交点を、コーナー候補点として算出する(S53)。
図8の例では、駐車車両71aのコーナー点711aと駐車車両72aのコーナー点721a間を結ぶ直線75と近似直線941の交点721cを、駐車車両72に対するコーナー候補点として算出する。同様に、直線75と近似直線942の交点711cを、駐車車両71に対するコーナー候補点として算出する。S53の後、
図12のフローチャートの処理を終了する。
【0048】
ここで、
図14は、
図13の処理を行う場合の前提となる場面を例示している。
図14では、自車両6が経路101を通過したときに検知された駐車空間51に対して、駐車経路102、103、104の順に切り返しを行いながら自動駐車を行っている場面を示している。
図14には、自車両6が駐車経路102を通る際に検知された輪郭点9を○で示し、駐車経路103を通る際に検知された輪郭点9を△で示し、駐車経路104を通る際に検知された輪郭点9を×で示している。このように、自動駐車中に検知される輪郭点9は駐車車両72の手前側(フロント面723側)ほど多い。このとき、
図12の処理で、第2範囲732の輪郭点9全てを用いて直線近似をすると、駐車車両72の手前側の輪郭点9の重みが大きくなってしまう。駐車車両72の手前側では、コーナー725や車輪726等、駐車車両72の側面722以外の部分の輪郭点9が検知される可能性がある。そのため、直線近似をするときには、手前側の輪郭点9の重みを過剰に大きくしないほうが好ましい。そこで、
図13の処理では、直線近似をするときの輪郭点の重みを均等にしている。以下、
図13の処理を説明する。
【0049】
図13の処理に移行すると、先ず、第2範囲Area2を奥行き方向にN個のサブ範囲SubArea(SubBlk)(SubBlk:1〜N)に分割する(S61)。なお、各サブ範囲SubAreaには、1〜Nのいずれかの番号SubBlkが付与される。例えば、第2範囲Area2の手前側から奥側に向かって1から順番に番号SubBlkが付与される。また、各サブ範囲SubAreaの大きさはそれぞれ同じとされる。
図15は、
図14の第2範囲732をN個のサブ範囲733に分割した状態を示している。
【0050】
次いで、以降の処理で着目する輪郭点のカウント値jを1に設定する(S62)。また、着目する番号SubBlkを1に設定する(S62)。また、サブ範囲SubArea(SubBlk)内の輪郭点の個数SubCnt(SubBlk)をゼロに設定する(S62)。また、サブ範囲SubArea(SubBlk)内の輪郭点のX座標の総和SumX(SubBlk)をゼロに設定する(S62)。また、サブ範囲SubArea(SubBlk)内の輪郭点のY座標の総和SumY(SubBlk)をゼロに設定する(S62)。
【0051】
次いで、現在着目している輪郭点Rflt(j)が現在着目しているサブ範囲SubArea(SubBlk)内に入っているか否かを判断する(S63)。入っている場合には(S63:Yes)、S64に進み、入っていない場合には(S63:No)、S65に進む。S64では、個数SubCnt(SubBlk)に1を加算する(SubCnt(SubBlk)=SubCnt(SubBlk)+1)。また、総和SumX(SubBlk)に、輪郭点Rflt(j)のX座標RfltX(j)を加える(S64)。つまり、SumX(SubBlk)=SumX(SubBlk)+RfltX(j)とする。また、総和SumY(SubBlk)に、輪郭点Rflt(j)のY座標RfltY(j)を加える(S64)。つまり、SumY(SubBlk)=SumY(SubBlk)+RfltY(j)とする。S64の後、S65に進む。
【0052】
S65では、現在の番号SubBlkに1を加えた値(SubBlk+1)が、サブ範囲SubAreaの個数Nを超えるか否かを判断する(S65)。つまり、SubBlk+1>Nを満たすか否かを判断する(S65)。SubBlk+1>Nを満たしていない場合には(S65:No)、S66に進んで、SubBlk=SubBlk+1として、着目するサブ範囲を次の番号のサブ範囲に切り替える(S66)。その後、S63に戻って、切り替え後のサブ範囲SubArea内に輪郭点Rflt(j)が入っているか否かを判断する(S63)。このように、S63〜S66を繰り返し実行することで、輪郭点Rflt(j)が、N個のサブ範囲SubAreaのうちのどのサブ範囲に入っているかを判断している。そして、輪郭点Rflt(j)が入っているサブ範囲の各パラメータ(SubCnt、SumX、SumY)を更新している(S66)。
【0053】
S65において、SubBlk+1>Nを満たした場合には(S65:Yes)、S67に進んで、現在のカウント値jに1を加えた値(j+1)が、最新の計測カウントnを超えるか否かを判断する(S67)。つまり、j+1>nを満たすか否かを判断する(S67)。満たさない場合には(S67:No)、S68に進んで、j=j+1として、着目する輪郭点Rfltを次のカウント値の輪郭点に切り替える(S68)。その後、S63に戻って、切り替え後の輪郭点Rflt(j)に対して、上述のS63〜S66の処理を実行する。
【0054】
このように、j+1>nを満たすまで、S63〜S68が繰り返されることで、現在までに検知した全ての輪郭点に対して、N個のサブ範囲SubAreaのうちのどのサブ範囲に入っているかが判断される。そして、各サブ範囲の輪郭点の個数SubCntが計数されていく(S64)。また、各サブ範囲の総和SumX、SumYが計数されていく(S64)。
【0055】
S67において、j+1>nを満たした場合には(S67:Yes)、S69に進む。S69では、着目するサブ範囲の番号SubBlkを1にリセットする(S69)。また、各サブ範囲の輪郭点の平均位置Aveに付与する番号AveCntをゼロに設定する(S69)。次いで、輪郭点の個数SubCnt(SubBlk)が1以上か否かを判断する(S70)。個数SubCnt(SubBlk)が1未満の場合、つまり現在着目しているサブ範囲には輪郭点が入っていない場合には(S70:No)、S72に進む。個数SubCnt(SubBlk)が1以上の場合には(S70:Yes)、S71に進む。
【0056】
S71では、番号AveCntを、現在の番号AveCntに1を加算した値に更新する(S71)。つまり、AveCnt=AveCnt+1とする。また、現在着目しているサブ範囲の輪郭点の平均位置Aveを算出する(S71)。なお、この平均位置Aveに現在の番号AveCntを付与する。S71では、具体的には、総和SumX(SubBlk)を個数SubCnt(SubBlk)で除算した値を、平均位置AveのX座標AveX(AveCnt)とする。つまり、AveX(AveCnt)=SumX(SubBlk)/SubCnt(SubBlk)とする。また、総和SumY(SubBlk)を個数SubCnt(SubBlk)で除算した値を、平均位置AveのY座標AveY(AveCnt)とする。つまり、AveY(AveCnt)=SumY(SubBlk)/SubCnt(SubBlk)とする。
【0057】
次いで、サブ範囲の番号SubBlkに1を加算した値(SubBlk+1)がサブ範囲の個数Nを超えるか否かを判断する(S72)。つまり、SubBlk+1>Nを満たすか否かを判断する(S72)。満たさない場合には(S72:No)、S73に進んで、SubBlk=SubBlk+1に更新する(S73)。その後、S70に戻って、更新後の番号SubBlkのサブ範囲に対して輪郭点の有無を判断し(S70)、輪郭点が有る場合には(S70:Yes)、輪郭点の平均位置Aveを算出する(S71)。
【0058】
このように、SubBlk+1>Nを満たすまで、S70〜S73が繰り返されることで、全てのサブ範囲に対して輪郭点の有無が判断されるとともに、輪郭点が有るとされたサブ範囲内の輪郭点の平均位置Aveが算出される。このとき、算出された各平均位置Aveには、1から順番に番号AveCntが付与されていく。
図15には、各サブ範囲733の輪郭点の平均位置Aveを符号「95」で示している。このように、
図13の処理を実行することで、
図14の第2範囲732内の輪郭点9の偏り(重み)を均等にできる。
【0059】
S72において、SubBlk+1>Nを満たす場合には(S72:Yes)、S74に進む。以降のS74〜S76の処理は、処理対象が輪郭点そのものから輪郭点の平均位置Aveに代わる点を除いて、上述した
図12の処理と同じである。すなわち、S74では、各平均位置Aveの点列データ(AveX(1〜AveCnt)、AveY(1〜AveCnt))を最小二乗法等で直線近似する(S74)。
図15には、平均位置95の点列データを直線近似したときの近似直線951を図示している。次いで、S74で得られた近似直線951に基づいて駐車車両の角度を算出する(S75)。このS75の処理は
図12のS52の処理と同じである。次いで、駐車車両の新しいコーナー点の候補となる点(コーナー候補点)を算出する(S76)。このS76の処理は
図12のS53の処理と同じである。S76の後、
図13のフローチャートの処理を終了する。このように、
図13の処理を実行することで、駐車車両の側面以外の部分の輪郭点の影響を低減した、精度の高い駐車車両の角度及びコーナー候補点を算出できる。
【0060】
図6の説明に戻り、S27で
図12の処理又は
図13の処理を実行した後、S28に進む。S28では、S27で算出した補正量(駐車車両の角度、コーナー候補点)が予め定められた閾値より小さいか否かを判断する(S28)。つまり、
図12のS52又は
図13のS75で算出した駐車車両の角度が閾値(例えば50°)より小さいか否かを判断する(S28)。また、
図12のS53又は
図13のS76で算出したコーナー候補点と現在のコーナー点間の距離(補正量)が閾値(例えば3m)より小さいか否かを判断する(S28)。駐車車両の角度の補正量と、コーナー点の補正量の一方でも閾値を超えた場合には(S28:No)、駐車空間の補正を行わないで、S30に進む。
【0061】
駐車車両の角度の補正量と、コーナー点の補正量の両方とも閾値より小さい場合には(S28:Yes)、S29に進んで、S27による補正を有効にして、駐車空間の補正を行う(S29)。つまり、S27で算出した駐車車両の角度となるように現在認識している駐車車両の角度を補正する(S29)。また、S27で算出したコーナー候補点の位置に、現在認識している駐車車両のコーナー点を補正する(S29)。
図8の例では、左側の駐車車両72の向きを、点線の位置72aから実線の位置72bに補正する。また、駐車車両72のコーナー点を、コーナー点721aからコーナー点721cに補正する。また、右側の駐車車両71の向きを、点線の位置71aから実線の位置71bに補正する。また、駐車車両71のコーナー点を、コーナー点711aからコーナー点711cに補正する。その結果、駐車車両71、72間の駐車空間は、傾きの無い駐車空間51から斜めに傾いた駐車空間52に更新(補正)される。
【0062】
駐車支援ECU10は、S29で駐車空間を更新したときには、更新後の駐車空間に自車両を駐車させるように、駐車経路の再設定を行う。なお、その再設定を行うタイミングは、駐車空間の更新直後のタイミングであっても良いし、駐車空間の更新から一定時間経過したタイミングであっても良い。また、更新後の駐車空間が更新前の駐車空間からあまり変化していないとき、つまり駐車空間の補正量が所定値未満のときには、駐車経路の再設定を行わないようにしても良い。
【0063】
S30では、駐車空間への駐車が完了したか否かを判断する(S30)。まだ完了していない場合には(S30:No)、S31に進んで、計測カウントnを次の値に更新する(n=n+1)。その後、S12に戻って、最新の計測カウントnに対して、上述の処理S12〜S30を実行する。このように、駐車が完了するまでは、S12〜S31が実行されるので、駐車空間に対する自車両の侵入が進むにしたがって適宜駐車空間が更新される。駐車が完了した場合には(S30:Yes)、
図6のフローチャートの処理を終了する。
【0064】
以上説明したように、本実施形態では、駐車動作を行っている最中に駐車車両のコーナー点や角度が補正されるので、
図4のように左右にずれた駐車空間51を当初認識したとしていたとしても、途中で実際の駐車空間5に認識し直すことができる。その結果、
図16に示すように、自車両6を駐車空間5の中心位置に駐車させることができる。また、
図5のように向きがずれた駐車空間51を当初認識していたとしても、途中で実際の向きの駐車空間5に認識し直すことができる。その結果、
図17に示すように、自車両6を、斜めに傾いた駐車車両71、72に対して平行に駐車させることができる。
【0065】
また、本実施形態では、駐車空間の角度(駐車車両の角度)を補正するときに、駐車車両のコーナーが含まれる可能性のある第1範囲Area1を除いた範囲(第2範囲Area2)の輪郭点を用いているので、その補正精度を向上できる。また、第2範囲Area2に輪郭点が検知されない場合には、第1範囲Area1の輪郭点を用いて駐車車両のコーナー点を補正しているので、第2範囲Area2に輪郭点が検知されない早い段階(駐車空間に対する自車両の侵入が浅い段階)で、駐車空間の補正を行うことができる。
【0066】
なお、本発明に係る駐車空間検知装置は上記実施形態に限定されるものはなく、特許請求の範囲の記載を逸脱しない限度で種々の変更が可能である。例えば、駐車空間の初期検知の方法はどのような方法でも良く、例えばカメラによる撮影画像に基づいて駐車空間を検知しても良い。