以下、本発明による物体検出装置、その物体検出装置を備えた駐車支援装置および物体検出方法を、好適な実施の形態にしたがって図面を用いて説明する。なお、図面の説明においては、同一要素には同一符号を付し、重複する説明を省略する。また、以下の実施の形態では、本願発明の物体検出装置および物体検出方法を駐車支援装置に適用した場合を例示する。
実施の形態1.
図1は、本発明の実施の形態1における物体検出装置310を含む駐車支援システムの構成を示すブロック図である。この図1における駐車支援システムは、距離センサ100、車両情報センサ200、駐車支援装置300を備える。
距離センサ100は、車両に搭載されており、検出対象である物体に検出波を照射し、物体までの最短距離に相当する物体上の反射点位置で反射した検出波を取得することで、物体までの距離データを検出する。具体的には、距離センサ100は、検出対象である物体に対して光を放射し、この物体から反射した光を受信し、受信した光に基づいて、信号処理または画像処理を行い、物体までの距離を距離データとして検出する。また、距離センサ100は、あらかじめ設定された設定タイミングごとに、距離データを検出する。
距離センサ100は、検出した距離データを物体検出装置310に出力する。また、距離センサ100によって検出された距離データは、この距離データが検出された時刻と関連付けられて記憶部(図示せず)に記憶される。
ここで、距離センサ100の自車への搭載位置と、距離センサ100のセンサ方位情報とは、既知であるものとする。このセンサ方位情報には、距離センサ100のセンサ方位(すなわち、視線方向)およびセンサ視野角(すなわち、検知可能な方位幅)が含まれる。なお、距離センサ100として、光の代わりに電磁波などの検出波を用いて物体までの距離を距離データとして検出するタイプのセンサを用いてもよい。さらに、距離センサ100として、具体的には、ミリ波レーダ、レーザレーダ、超音波センサ、赤外線センサまたは光学カメラ等を用いることができる。
車両情報センサ200は、車両に搭載されており、自車の速度および進行方向に関する状態を自車データとして検出する。具体的には、車両情報センサ200は、自車の速度、車輪速、ステアリング角およびヨーレートなど、車両の速度および進行方向に関する状態を自車データとして検出する。また、車両情報センサ200は、前述した設定タイミングごとに、自車データを検出する。
車両情報センサ200は、検出した自車データを物体検出装置310に出力する。また、車両情報センサ200によって検出された自車データは、この自車データが検出された時刻と関連付けられて記憶部に記憶される。
なお、GPS(Global Positioning System)を用いて、自車の緯度、経度および進行方向を、自車データとして検出するように、車両情報センサ200を構成してもよい。
駐車支援装置300は、物体検出装置310および車両制御装置320を有する。物体検出装置310は、自車が駐車しようとする駐車スペースの隣に位置する物体(例えば、駐車車両)を検出する。すなわち、距離センサ100および車両情報センサ200による時系列の検出結果を取得し、検出結果から時系列で変化する物体の反射点位置を特定することで、自車の駐車スペース情報を推定する。なお、駐車スペース情報の具体例としては、例えば、駐車スペースの隣に位置する物体の側面または物体のコーナーの位置等が挙げられる。
また、物体検出装置310は、物体弁別部311、自車位置推定部312、反射点測位部313および物体検出部314を含む。
物体弁別部311は、距離センサ100から入力された距離データを用いて物体ごとの距離航跡を生成する。また、物体弁別部311は、保持している物体ごとの距離航跡と、距離センサ100から入力された距離データとを比較することで、この距離データがどの物体から検出されたデータであるかを特定する。また、物体弁別部311は、保持している物体ごとの距離航跡を反射点測位部313に出力する。
自車位置推定部312は、車両情報センサ200から入力された自車データから、自車の位置および自車の方位(すなわち、進行方向)を自車位置情報として推定し、この自車位置情報を反射点測位部313に出力する。
反射点測位部313は、物体弁別部311から入力された物体ごとの距離航跡と、自車位置推定部312から入力された自車位置情報とに基づいて、物体ごとの反射点位置情報を生成し、物体検出部314に出力する。
物体検出部314は、反射点測位部313から入力された物体ごとの反射点位置情報に基づいて、物体ごとの反射点航跡を生成する。また、物体検出部314は、物体ごとの反射点航跡に基づいて、駐車スペース情報を推定し、車両制御装置320に出力する。
車両制御装置320は、物体検出装置310から入力された駐車スペース情報に基づいて、自車が駐車スペースに駐車するための駐車支援を行う。具体的には、車両制御装置320は、駐車スペースの幅を推定し、駐車スペースの幅と自車の車幅とを比較することで駐車スペースに自車が駐車することができるかを判定する。また、車両制御装置320は、自車を運転する運転者にこの判定結果を報知する。
車両制御装置320は、駐車スペースに自車が駐車することができると判定すれば、駐車スペースと自車との位置関係に基づいて、自車が駐車スペースへ移動するための経路を算出する。また、車両制御装置320は、算出された経路に従って駐車スペースへ自車を誘導する。
次に、本実施の形態1における駐車支援システムの動作について、図2を参照しながら説明する。図2は、本発明の実施の形態1における駐車支援システムの一連の動作を示すフローチャートである。なお、以下では、距離センサ100が距離データを検出する時刻と、車両情報センサ200が自車データを検出する時刻とを、ともに時刻t1、時刻t2、・・・、時刻tn−1、時刻tn、時刻tn+1、・・・(nは、1以上の整数)とし、同じ時刻に検出するものとする。
ステップS101において、距離センサ100は、時刻tnに距離データDnを検出し、時刻tnの距離データDnを物体弁別部311に出力する。
ステップS102において、物体弁別部311は、距離センサ100から入力された距離データDnに対して、物体弁別処理を実行することで、距離データDnがどの物体から検出されたデータであるかを特定する。また、物体弁別部311は、距離データDnを反映させることで、時刻tnでの物体ごとの距離航跡を反射点測位部313に出力する。
ステップS103において、車両情報センサ200は、時刻tnに自車データVnを検出し、時刻tnの自車データVnを自車位置推定部312に出力する。
ステップS104において、自車位置推定部312は、車両情報センサ200から入力された自車データVnから時刻tnの自車位置情報VPnを推定し、反射点測位部313に出力する。また、反射点測位部313は、物体弁別部311から入力された物体ごとの距離航跡と、自車位置推定部312から入力された自車位置情報VPnとから、物体ごとの反射点位置情報を生成し、物体検出部314に出力する。
ステップS105において、物体検出部314は、反射点測位部313から入力された物体ごとの反射点位置情報に基づいて、物体ごとの反射点航跡を更新する。また、物体検出部314は、物体ごとの反射点航跡に基づいて駐車スペース情報を推定し、車両制御装置320に出力する。なお、反射点航跡に含まれる反射点位置のデータの数によっては、駐車スペースを推定できないこともある。
ステップS106において、車両制御装置320は、物体検出部314から入力された駐車スペース情報に基づいて、自車が駐車スペースに駐車するための駐車支援を行い、一連の処理を終了する。なお、ステップS105で駐車スペースが推定されなければ、車両制御装置320は、駐車支援を行わずに、一連の処理を終了する。
次に、先の図2のステップS102で実行される物体弁別部311による物体弁別処理について、図3A、3Bを参照しながら説明する。図3A、3Bは、本発明の実施の形態1における物体弁別部311による物体弁別処理の一連の動作を示すフローチャートである。なお、図3A、3Bは、1つのフローチャートを2つの図面に分けて記載したもので、図3Aに記載の部分と、図3Bに記載の部分とは続いている。
ここで、距離センサ100によって検出された一連の距離データの時系列を距離航跡と呼ぶ。物体弁別部311は、距離センサ100によって検出された距離データを新たに取得するたびに、この距離データが検出された物体の距離航跡に取り込み、この距離航跡を更新していく。なお、距離航跡の更新にあたっては、例えば、最小二乗法、またはカルマンフィルタを用いて更新値を生成することができ、このように生成された更新値を距離航跡更新値と呼ぶ。
まず、ステップS201において、物体弁別部311は、現在保持している距離航跡のそれぞれについて、時刻tnに距離センサ100によって検出されると予測される距離データを距離航跡予測値Dn’として生成し、ステップS202へと進む。
ステップS202において、物体弁別部311は、距離センサ100から時刻tnの距離データDnを取得したか否かを判定する。物体弁別部311は、距離データDnを取得した(すなわち、YES)と判定した場合には、ステップS204へと進み、距離データDnを取得していない(すなわち、NO)と判定した場合には、ステップS203へと進む。
ステップS203に進んだ場合には、物体弁別部311は、現在保持している距離航跡のそれぞれについて、ステップS201で生成した距離航跡予測値Dn’を距離航跡更新値Dn”とするとともに、外挿回数をインクリメントし、ステップS215へと進む。
一方、ステップS204に進んだ場合には、物体弁別部311は、距離データDnと、現在保持している距離航跡とを関連付けるためのゲート内外判定を行い、ステップS205へと進む。
ここで、ゲートとは、距離航跡予測値Dn’を中心とする一定の距離範囲である。また、距離範囲を定めるゲート幅については、例えば、距離センサ100の距離誤差標準偏差の定数倍を、ゲート幅として定めればよい。なお、距離航跡の更新にカルマンフィルタを用いる場合、予測誤差共分散行列の距離成分と距離観測誤差分散との和で定まる距離残差分散の定数倍を、ゲート幅として定めてもよい。
ステップS204において、物体弁別部311は、現在保持している距離航跡のそれぞれについて、ステップS201で生成した距離航跡予測値Dn’を用いてゲートを設定する。また、物体弁別部311は、設定したゲート内に距離データDnが入る場合には、このようなゲートが設定された距離航跡と距離データDnとが関連可能性ありと判定する。一方、物体弁別部311は、設定したゲート内に時刻tnの距離データDnが入らない場合には、このようなゲートが設定された距離航跡と距離データDnとが関連可能性なしと判定する。
ステップS205において、物体弁別部311は、現在保持している距離航跡のうち、ステップS204で距離データDnと関連可能性ありと判定された距離航跡の中から、距離データDnと関連付けを行う距離航跡を一意に決定し、ステップS206へと進む。なお、ステップS205において、物体弁別部311は、ステップS204で距離データDnと関連可能性ありと判定された距離航跡が存在しない場合、距離データDnと関連付けを行う距離航跡を決定しない。
ここで、距離データDnと関連付けを行う距離航跡を更新距離航跡と呼ぶ。また、更新距離航跡を一意に決定するにあたって、例えば、更新回数が最も多い距離航跡を、更新距離航跡とすればよい。なお、距離航跡予測値Dn’と、距離データDnとの差の絶対値が最も小さい値をとりうる距離航跡を更新距離航跡としてもよい。
ステップS206において、物体弁別部311は、ステップS205で更新距離航跡を決定したか否かを判定する。物体弁別部311は、更新距離航跡を決定した(すなわち、YES)と判定した場合には、ステップS209へと進み、更新距離航跡を決定していない(すなわち、NO)と判定した場合には、ステップS207へと進む。
ステップS207に進んだ場合には、物体弁別部311は、現在保持している距離航跡のそれぞれについて、ステップS201で生成した距離航跡予測値Dn’を距離航跡更新値Dn”とするとともに、外挿回数をインクリメントし、ステップS208へと進む。
ステップS208において、物体弁別部311は、距離データDnを出発点とした新距離航跡を生成する。また、物体弁別部311は、生成した新距離航跡について、更新回数を「1」、外挿回数を「0」、状態を「未確立」にそれぞれセットし、さらに、この新距離航跡を保持対象に追加し、ステップS215へと進む。
一方、ステップS209に進んだ場合には、物体弁別部311は、現在保持している距離航跡のうち、まだ選択済マークが付されていない未選択の距離航跡を1つ選択し、選択した距離航跡に選択済として選択済マークを付し、ステップS210へと進む。
ステップS210において、物体弁別部311は、ステップS209で選択した距離航跡がステップS205で決定した更新距離航跡であるか否かを判定する。物体弁別部311は、この距離航跡が更新距離航跡である(すなわち、YES)と判定した場合には、ステップS211へと進み、この距離航跡が更新距離航跡でない(すなわち、NO)と判定した場合には、ステップS212へと進む。
ステップS211に進んだ場合には、物体弁別部311は、ステップS209で選択した距離航跡について、距離データDnと距離航跡予測値Dn’とを用いて距離航跡更新値Dn”を生成するとともに、更新回数をインクリメントし、外挿回数を「0」にリセットし、ステップS213へと進む。
一方、ステップS212に進んだ場合には、物体弁別部311は、ステップS209で選択した距離航跡について、ステップS201で生成した距離航跡予測値Dn’を距離航跡更新値Dn”とするとともに、外挿回数をインクリメントし、ステップS213へと進む。
ステップS213において、物体弁別部311は、現在保持している距離航跡のうち、ステップS209でまだ選択済マークが付されていない未選択の距離航跡が存在するか否かを判定する。物体弁別部311は、この距離航跡が存在する(すなわち、YES)と判定した場合には、ステップS209へと戻り、ステップS209以降の処理を再び実行し、この距離航跡が存在しない(すなわち、NO)と判定した場合には、ステップS214へと進む。
ステップS214において、物体弁別部311は、現在保持している距離航跡のそれぞれに付されている選択済マークを解除し、ステップS215へと進む。
ステップS215において、物体弁別部311は、現在保持している距離航跡のうち、まだ選択済マークが付されていない未選択の距離航跡を1つ選択し、選択した距離航跡に選択済として選択済マークを付し、ステップS216へと進む。
ステップS216において、物体弁別部311は、ステップS215で選択した距離航跡の状態が「確立」であるか否かを判定する。物体弁別部311は、この距離航跡の状態が「確立」である(すなわち、YES)と判定した場合には、ステップS217へと進み、この距離航跡の状態が「未確立」である(すなわち、NO)と判定した場合には、ステップS219へと進む。なお、以下では、状態が「確立」である距離航跡を確立距離航跡と呼び、状態が「未確立」である距離航跡を未確立距離航跡と呼ぶ。
ステップS217に進んだ場合には、物体弁別部311は、ステップS215で選択した距離航跡の外挿回数が定数M以上であるか否かを判定する。物体弁別部311は、この距離航跡の外挿回数が定数M以上である(すなわち、YES)と判定した場合には、ステップS218へと進み、この距離航跡の外挿回数が定数M未満である(すなわち、NO)と判定した場合には、ステップS223へと進む。なお、この定数Mは、確立距離航跡の外挿回数の上限値として定める正の整数であり、適宜設計することができる。
ステップS218において、物体弁別部311は、ステップS215で選択した距離航跡に対応する物体からは、距離センサ100によって距離データが時刻tn+1以降に検出されないと判断し、この物体の距離航跡についての航跡処理を終了する。なお、航跡処理が終了した距離航跡については、時刻tnから遡って外挿回数が最後に0であった時刻と、その時刻の距離航跡更新値とが関連付けられて記憶部に記憶される。また、物体弁別部311は、航跡処理が終了した距離航跡を保持対象から外し、ステップS223へと進む。
一方、ステップS219に進んだ場合には、物体弁別部311は、ステップS215で選択した距離航跡の外挿回数が定数N以上であるか否かを判定する。物体弁別部311は、この距離航跡の外挿回数が定数N以上である(すなわち、YES)と判定した場合には、ステップS220へと進み、この距離航跡の外挿回数が定数N未満である(すなわち、NO)と判定した場合には、ステップS221へと進む。なお、この定数Nは、未確立距離航跡の外挿回数の上限値として定める正の整数であり、適宜設計することができ、例えば、1とする。
ステップS220に進んだ場合には、物体弁別部311は、ステップS215で選択した距離航跡が時刻tn+1以降になっても確立距離航跡にはならないと判断し、この距離航跡を削除し、保持対象から外し、ステップS223へと進む。
一方、ステップS221に進んだ場合には、物体弁別部311は、ステップS215で選択した距離航跡の更新回数が定数K以上であるか否かを判定する。物体弁別部311は、この距離航跡の更新回数が定数K以上である(すなわち、YES)と判定した場合には、ステップS222へと進み、この距離航跡の更新回数が定数K未満である(すなわち、NO)と判定した場合には、ステップS223へと進む。なお、この定数Kは、ステップS215で選択した距離航跡が、未確立距離航跡から確立距離航跡となるために必要な更新回数として定める正の整数であり、適宜設計することができ、例えば、3とする。
ステップS222において、物体弁別部311は、ステップS215で選択した距離航跡の状態を、「未確立」から「確立」に変更し、ステップS223へと進む。このような変更により、ステップS215で選択した距離航跡は、未確立距離航跡から確立距離航跡となる。
ステップS223において、物体弁別部311は、現在保持している距離航跡のうち、ステップS215でまだ選択済マークが付されていない未選択の距離航跡が存在するか否かを判定する。物体弁別部311は、この距離航跡が存在する(すなわち、YES)と判定した場合には、ステップS215へと戻り、ステップS215以降の処理を再び実行し、この距離航跡が存在しない(すなわち、NO)と判定した場合には、ステップS224へと進む。
ステップS224において、物体弁別部311は、現在保持している距離航跡のそれぞれに付されている選択済マークを解除し、一連の処理を終了し、時刻tnでの物体ごとの距離航跡を反射点測位部313に出力する。
次に、時刻t1〜t7のそれぞれの時刻で、物体弁別部311が物体弁別処理を実行した場合に得られる物体ごとの距離航跡の一例について、図4を参照しながら説明する。図4は、本発明の実施の形態1における物体弁別部311が各時刻t1〜t7で物体弁別処理を実行した場合に得られる物体ごとの距離航跡の一例を示す説明図である。なお、図4では、定数M=3、定数N=1、定数K=3とする場合を例示している。
図4に示すように、時刻t1において、物体弁別部311は、距離センサ100から初めて距離データD1を取得したので、取得した距離データD1を出発点とする新距離航跡を距離航跡Aとして生成する。この場合、距離航跡Aの更新回数が「1」となり、外挿回数が「0」となり、状態が「未確立」となる。また、この距離航跡Aが保持対象に追加される。物体弁別部311は、時刻t1での物体ごとの距離航跡として、時刻t1での距離航跡Aを反射点測位部313に出力する。
時刻t2において、物体弁別部311は、現在保持している距離航跡A(すなわち、時刻t1で生成された新距離航跡)について、時刻t2の距離航跡予測値D2’を生成する。また、距離航跡予測値D2’を中心として設定されたゲート内に、距離データD2が入るので、距離データD2と距離航跡予測値D2’とを用いて距離航跡更新値D2”が生成され、距離航跡Aが更新される。この場合、距離航跡Aの更新回数が「2」となり、外挿回数が「0」となり、状態が「未確立」となる。物体弁別部311は、時刻t2での物体ごとの距離航跡として、時刻t2での距離航跡Aを反射点測位部313に出力する。
具体的には、時刻t2では、先の図3A、3Bのフローチャートにおいて、ステップS201→S202→S204〜S206→S209〜S211→S213〜S216→S219→S221→S223→S224の順に処理が実行されることとなる。
時刻t3において、物体弁別部311は、現在保持している距離航跡Aについて、時刻t3の距離航跡予測値D3’を生成する。また、距離航跡予測値D3’を中心として設定されたゲート内に、距離データD3が入るので、距離データD3と距離航跡予測値D3’とを用いて距離航跡更新値D3”が生成され、距離航跡Aが更新される。この場合、距離航跡Aの更新回数が「3」となり、外挿回数が「0」となり、さらに、距離航跡Aの更新回数が定数Kと等しくなるため、状態が「確立」となる。物体弁別部311は、時刻t3での物体ごとの距離航跡として、時刻t3での距離航跡Aを反射点測位部313に出力する。
具体的には、時刻t3では、先の図3A、3Bのフローチャートにおいて、ステップS201→S202→S204〜S206→S209〜S211→S213〜S216→S219→S221〜S224の順に処理が実行されることとなる。
時刻t4において、物体弁別部311は、現在保持している距離航跡Aについて、時刻t4の距離航跡予測値D4’を生成する。また、距離航跡予測値D4’を中心として設定されたゲート内に、距離データD4が入るので、距離データD4と距離航跡予測値D4’とを用いて距離航跡更新値D4”が生成され、距離航跡Aが更新される。この場合、距離航跡Aの更新回数が「4」となり、外挿回数が「0」となり、状態が「確立」となる。物体弁別部311は、時刻t4での物体ごとの距離航跡として、時刻t4での距離航跡Aを反射点測位部313に出力する。
具体的には、時刻t4では、先の図3A、3Bのフローチャートにおいて、ステップS201→S202→S204〜S206→S209〜S211→S213〜S217→S223→S224の順に処理が実行されることとなる。
時刻t5において、物体弁別部311は、現在保持している距離航跡Aについて、時刻t5の距離航跡予測値D5’を生成する。また、距離航跡予測値D5’を中心として設定されたゲート内に、距離データD5が入らないので、距離航跡予測値D5’を距離航跡更新値D5”とする。また、距離データD5を出発点とする新距離航跡が距離航跡Bとして生成される。このように、距離航跡Bが生成されれば、距離データD5は、距離航跡Aに対応する物体とは別の物体から検出された距離データであることが分かる。
この場合、距離航跡Aの更新回数が「4」となり、外挿回数が「1」となり、状態が「確立」となる。また、距離航跡Bの更新回数が「1」となり、外挿回数が「0」となり、状態が「未確立」となる。さらに、この距離航跡Bが保持対象に追加される。物体弁別部311は、時刻t5での物体ごとの距離航跡として、時刻t5での距離航跡Aおよび距離航跡Bを反射点測位部313に出力する。
具体的には、時刻t5では、先の図3A、3Bのフローチャートにおいて、ステップS201→S202→S204〜S208→S215〜S217→S223→S215→S216→S219→S221→S223→S224の順に処理が実行されることとなる。
時刻t6において、物体弁別部311は、現在保持している距離航跡Aおよび距離航跡Bのそれぞれについて、距離航跡Aに対応する時刻t6の距離航跡予測値D6’と、距離航跡Bに対応する時刻t6の距離航跡予測値D6’とを生成する。
また、距離航跡Aについて、対応する距離航跡予測値D6’を中心として設定されたゲート内に、距離データD6が入らないので、距離航跡予測値D6’を距離航跡更新値D6”とする。
一方、距離航跡Bについて、対応する距離航跡予測値D6’を中心として設定されたゲート内に、距離データD6が入るので、距離データD6と距離航跡予測値D6’とを用いて距離航跡更新値D6”が生成され、距離航跡Bが更新される。
この場合、距離航跡Aの更新回数が「4」となり、外挿回数が「2」となり、状態が「確立」となる。また、距離航跡Bの更新回数が「2」となり、外挿回数が「0」となり、状態が「未確立」となる。物体弁別部311は、時刻t6での物体ごとの距離航跡として、時刻t6での距離航跡Aおよび距離航跡Bを反射点測位部313に出力する。
具体的には、時刻t6では、先の図3A、図3Bのフローチャートにおいて、ステップS201→S202→S204〜S206→S209〜S211→S213→S209→S210→S212〜S217→S223→S215→S216→S219→S221→S223→S224の順に処理が実行されることとなる。
時刻t7において、物体弁別部311は、現在保持している距離航跡Aおよび距離航跡Bのそれぞれについて、距離航跡Aに対応する時刻t7の距離航跡予測値D7’と、距離航跡Bに対応する時刻t7の距離航跡予測値D7’とを生成する。
また、距離航跡Aについて、対応する距離航跡予測値D7’を中心として設定されたゲート内に、距離データD7が入らないので、距離航跡予測値D7’を距離航跡更新値D7”とする。さらに、距離航跡Aについて、航跡処理が終了する。
一方、距離航跡Bについて、対応する距離航跡予測値D7’を中心として設定されたゲート内に、距離データD7が入るので、距離データD7と距離航跡予測値D7’とを用いて距離航跡更新値D7”が生成され、距離航跡Bが更新される。
この場合、距離航跡Aの更新回数が「4」となり、外挿回数が「3」となり、状態が「確立」となる。この距離航跡Aは、ステップS216〜S218の処理により、航跡処理が終了したと判断されるので、保持対象から外される。そして、距離航跡Aの外挿回数が「0」であった最後の時刻t4と、その時刻t4における距離航跡更新値D4”とが関連付けられて記憶部に記憶される。また、距離航跡Bの更新回数が「3」となり、外挿回数が「0」となり、状態が「確立」となる。物体弁別部311は、時刻t7での物体ごとの距離航跡として、時刻t7での距離航跡Aおよび距離航跡Bを反射点測位部313に出力する。
具体的には、時刻t7では、先の図3A、図3Bのフローチャートにおいて、ステップS201→S202→S204〜S206→S209〜S211→S213→S209→S210→S212〜S218→S223→S215→S216→S219→S221〜S224の順に処理が実行されることとなる。
次に、物体弁別部311が物体弁別処理を実行することで得られる効果について、図5を参照しながら説明する。図5は、本発明の実施の形態1における物体弁別部311が物体弁別処理を実行することで得られる効果を説明するための説明図である。より具体的には、図5(a)は、自車とともに矢印方向に移動する距離センサ100が駐車車両Aおよび駐車車両Bから距離データを検出する様子を示し、図5(b)は、距離センサ100によって各時刻で検出された距離データの変化を示している。
図5(a)に示すように、駐車車両Aおよび駐車車両Bの前方を自車が移動するのに伴い、距離センサ100が検出する距離データは、図5(b)に示すように変化する。すなわち、距離センサ100が距離データを連続して検出する場合、実際上、駐車車両Aに対応する距離データと、駐車車両Bに対応する距離データとがつながっていることがある。このような場合、従来技術においては、距離データがつながっている部分において、この部分の距離データが駐車車両Aおよび駐車車両Bのいずれから検出されたものなのかが分からず、結果として、駐車車両Aに対応する距離データと、駐車車両Bに対応する距離データとを弁別することができなかった。
これに対して、本願発明においては、物体弁別部311が物体弁別処理を実行することで先の図4で例示するような距離航跡が得られるので、駐車車両Aに対応する距離データと、駐車車両Bに対応する距離データとを弁別することができる。
ここで、図5(a)において、例えば、駐車車両Bに対応する距離データがはじめて検出された時刻がtnである場合を考える。このような場合、時刻tnよりも前の時刻に検出された駐車車両Aに対応する各距離データから生成される距離航跡を用いて、時刻tnの距離航跡予測値Dn’を生成する。また、距離航跡予測値Dn’を中心に設定されるゲート内に、時刻tnに検出された駐車車両Bに対応する距離データが入らない。
したがって、時刻tnに検出された駐車車両Bに対応する距離データを出発点とする新航跡が駐車車両Bに対応する距離航跡として生成される。また、駐車車両Aに対応する距離航跡については、距離航跡更新値Dn”として距離航跡予測値Dn’を用いる。さらに、物体弁別部311は、時刻tnでの物体ごとの距離航跡として、時刻tnでの駐車車両Aに対応する距離航跡と、時刻tnでの駐車車両Bに対応する距離航跡とを反射点測位部313に出力する。
以上から、物体弁別部311は、物体弁別処理を実行することで、駐車車両Aに対応する距離航跡と、駐車車両Bに対応する距離航跡とを生成することができるので、これらの距離航跡から駐車車両Aの距離データと駐車車両Bの距離データとを弁別することができる。また、距離航跡予測値を生成するとともにこの距離航跡予測値を中心にゲートを設定することで、距離センサ100によって検出される距離データのノイズ成分を除去することもできる。
次に、先の図2のステップS104で実行される反射点測位部313による反射点測位処理について、図6A、図6Bを参照しながら説明する。図6Aは、本発明の実施の形態1における反射点測位部313による反射点測位処理の一連の動作を示すフローチャートである。図6Bは、図6AのステップS305で実行される反射点測位の一連の動作を示すフローチャートである。
まず、ステップS301において、自車位置推定部312は、車両情報センサ200から入力された時刻tnの自車データVnに基づいて、自車位置情報VPnを推定し、反射点測位部313に出力する。反射点測位部313は、自車位置推定部312から自車位置情報VPnを取得し、ステップS302へと進む。
ここで、位置の座標系は、任意に設定してよい。例えば、駐車支援装置300を起動した時刻における自車の後車輪軸の中心を原点とし、同時刻における自車の前方および左方を座標軸とする直交座標系を、位置の座標系として設定することができる。なお、以下では、設定した位置の座標系を絶対座標系と呼ぶ。
ステップS302において、反射点測位部313は、ステップS301で取得した自車位置情報VPnと、既知である距離センサ100の自車への搭載位置と、既知である距離センサ100のセンサ方位情報とから、絶対座標系での時刻tnにおける距離センサ100の位置および方位を、センサ位置情報SPnとして演算する。反射点測位部313は、このように演算することで、時刻tnのセンサ位置情報SPnを取得し、ステップS303へと進む。
ステップS303において、反射点測位部313は、物体弁別部311から入力された時刻tnでの物体ごとの距離航跡のうち、確立距離航跡が存在するか否かを判定する。反射点測位部313は、確立距離航跡が存在する(すなわち、YES)と判定した場合には、ステップS304へと進み、確立距離航跡が存在しない(すなわち、NO)と判定した場合には、一連の処理を終了する。
ステップS304において、反射点測位部313は、物体弁別部311から入力された時刻tnでの物体ごとの距離航跡のうち、確立距離航跡であってかつ選択済マークがまだ付されていない距離航跡を1つ選択し、選択した確立距離航跡に選択済として選択済マークを付し、ステップS305へと進む。
ステップS305において、反射点測位部313は、ステップS304で選択した確立距離航跡を用いて、この確立距離航跡に対応する物体の反射点位置Rnを推定する。なお、ステップS305で実行される反射点測位については、後述する。
ステップS306において、反射点測位部313は、物体弁別部311から入力された時刻tnでの物体ごとの距離航跡のうち、確立距離航跡であってかつ選択済マークがまだ付されていない距離航跡が存在するか否かを判定する。反射点測位部313は、選択済マークが付されていない確立距離航跡が存在する(すなわち、YES)と判定した場合には、ステップS304へと戻り、ステップS304以降の処理を再び実行し、選択済マークが付されていない確立距離航跡が存在しない(すなわち、NO)と判定した場合には、ステップS307へと進む。
ステップS307において、反射点測位部313は、確立距離航跡のそれぞれに付されている選択済マークを解除し、一連の処理を終了する。
次に、ステップS305で実行される反射点測位の動作について、図6Bを参照しながら説明する。
まず、ステップS401において、反射点測位部313は、ステップS304で選択した確立距離航跡に含まれる時刻tnの距離航跡更新値Dn”を取得し、ステップS402へと進む。
ステップS402において、反射点測位部313は、変数kに1を代入し、ステップS403へと進む。この変数kは、反射点測位のために遡るサンプル数を表すためのものである。
ステップS403において、反射点測位部313は、時刻tnと、時刻tn−kとの検出時間差がT以上であるか否か、または変数kが定数kmaxよりも大きいか否かを判定する。例えば、ステップS403の実行時点でk=1の場合、反射点測位部は、時刻tnと、時刻tn−1との時間差がT以上である、または1が定数kmaxよりも大きいか否かを判定することとなる。
反射点測位部313は、検出時間差が定数T以上である、またはこの変数kが定数kmaxよりも大きい(すなわち、YES)と判定した場合には、ステップS404へと進み、検出時間差が定数T未満、かつこの変数kが定数kmax以下である(すなわち、NO)と判定した場合には、ステップS405へと進む。
なお、定数Tは、反射点測位のために時刻tnから遡る時間の上限値として定める正の数であり、適宜設計することができる。また、定数kmaxは、反射点測位のために遡るサンプル数の上限値として定める正の整数であり、適宜設計することができる。例えば、ステップS304で選択した確立距離航跡の出発点に対応する時刻から時刻tnまでの間に検出された距離データのサンプル数を、定数kmaxとして定めることができる。
ステップS404に進んだ場合には、反射点測位部313は、ステップS304で選択した確立距離航跡に対応する物体について、時刻tnの反射点位置Rnを一意に定めることができなかったものとし、測位不定と判定し、一連の処理を終了する。また、ステップS404では、反射点測位部313は、ステップS304で選択した確立距離航跡に対応する物体について、反射点位置情報RPnの状態を「測位不定」とセットする。さらに、反射点測位部313は、時刻tnと、絶対座標系でのセンサ位置情報SPnと、ステップS304で選択した確立距離航跡とを関連付けた情報を反射点位置情報RPnに含めて、この反射点位置情報RPnを物体検出部314に出力する。
一方、ステップS405に進んだ場合には、自車位置推定部312は、車両情報センサ200から入力された時刻tn−kの自車データVn−kに基づいて、kサンプル前の時刻tn−kの自車位置情報VPn−kを推定し、反射点測位部313に出力する。反射点測位部313は、自車位置推定部312から自車位置情報VPn−kを取得し、ステップS406へと進む。なお、反射点測位部313が、自車位置推定部312から入力された時刻tn−kの自車位置情報VPn−kを記憶部に記憶しておき、ステップS405で記憶部から自車位置情報VPn−kを読み込む構成であってもよい。
ステップS406において、反射点測位部313は、ステップS405で取得した自車位置情報VPn−kと、既知である距離センサ100の自車への搭載位置と、既知である距離センサ100のセンサ方位情報とから、絶対座標系での時刻tn−kにおける距離センサ100の位置および方位をセンサ位置情報SPn−kとして演算する。反射点測位部313は、このように演算することで、時刻tn−kのセンサ位置情報SPn−kを取得し、ステップS407へと進む。
ステップS407において、反射点測位部313は、センサ位置情報SPnに含まれる時刻tnにおける距離センサ100の位置と、センサ位置情報SPn−kに含まれる時刻tn−kにおける距離センサ100の位置との差分ベクトルを演算する。また、反射点測位部313は、演算した差分ベクトルの大きさであるセンサ変位量が定数dよりも大きい(すなわち、YES)と判定した場合には、ステップS408へと進み、センサ変位量が定数d以下である(すなわち、NO)と判定した場合には、ステップS411へと進む。なお、定数dは、センサ変位量の下限値として定める正の数であり、適宜設計することができる。
ステップS408において、反射点測位部313は、ステップS304で選択した確立距離航跡に含まれる時刻tn−kの距離航跡更新値Dn−k”を取得し、ステップS409へと進む。
ステップS409において、反射点測位部313は、ステップS302で取得したセンサ位置情報SPnと、ステップS401で取得した距離航跡更新値Dn”と、ステップS406で取得したセンサ位置情報SPn−kと、ステップS408で取得した距離航跡更新値Dn−k”とを用いて、ステップS304で選択した確立距離航跡に対応する物体について、時刻tnの反射点位置Rnを演算する。
ここで、ステップS409で実行される反射点位置Rnの演算について、図7を参照しながら説明する。図7は、本発明の実施の形態1における反射点測位部313による物体の反射点位置Rnの演算方法を説明するための説明図である。より具体的には、図7(a)は、反射点位置Rnの演算が可能な場合を示し、図7(b)は、反射点位置Rnの演算が不可能な場合を示す。
図7(a)に示すように、物体の反射点位置Rnは、センサ位置情報SPnに含まれる距離センサ100の位置であるセンサ位置を中心とし、半径が距離航跡更新値Dn”である円周上のどこかに存在する。また、このような円周において、センサ位置情報SPnに含まれるセンサ方位およびセンサ視野角から定まる方位範囲から、物体の反射点位置Rnの存在範囲を円弧Anで表すことができる。すなわち、物体の反射点位置Rnは、この円弧上のどこかに存在する。時刻tnと同様に、時刻tn−kの物体の反射点位置Rn−kの存在範囲も円弧An−kで表すことができる。
各時刻における物体の反射点位置は、距離センサ100から物体までの距離が最短となる最短距離点であり、距離センサ100の移動に伴って移動している。そこで、時刻tnの反射点位置Rnの存在範囲を表す円弧Anと、時刻tn−kの反射点位置Rn−kの存在範囲を表す円弧An−kとの共通接線を引き、その共通接線に接する円弧An上の接点を時刻tnの反射点位置Rnとする。
一方、円弧Anと円弧An−kとの位置関係によっては、時刻tnの反射点位置を推定することができない場合がある。例えば、図7(b)に示すように、時刻tn−kと時刻tnとの間において、距離センサ100の位置および方位のそれぞれの移動方向が同じである場合、円弧Anおよび円弧An−kの端点同士を結んだ線を除けば、円弧Anと円弧An−kとの共通接線が存在しない。この場合、反射点測位部313は、時刻tnの反射点位置Rnを演算することができない。また、例えば、センサ変位量が十分大きくない場合、時刻tn−kと時刻tnとの間において、反射点位置が移動していないので、円弧Anと円弧An−kとの共通接線が存在しない。この場合も、反射点測位部313は、時刻tnの反射点位置Rnを演算することができない。
図6Bの説明に戻り、ステップS410において、反射点測位部313は、ステップS409で時刻tnの反射点位置Rnを演算することができたか否かを判定する。反射点測位部313は、この反射点位置Rnを演算することができた(すなわち、YES)と判定した場合には、ステップS412へと進み、この反射点位置Rnを演算することができなかった(すなわち、NO)と判定した場合には、ステップS411へと進む。
ステップS411に進んだ場合には、反射点測位部313は、変数kをインクリメントし、ステップS403へと戻り、ステップS403以降の処理を再び実行する。
一方、ステップS412に進んだ場合には、反射点測位部313は、ステップS304で選択した確立距離航跡に対応する物体について、時刻tnの反射点位置Rnを一意に定めることができたとし、測位可と判定し、一連の処理を終了する。また、ステップS412では、反射点測位部313は、ステップS304で選択した確立距離航跡に対応する物体について、反射点位置情報RPnの状態を「測位可」とセットする。さらに、反射点測位部313は、時刻tnと、絶対座標系での時刻tnの反射点位置Rnと、ステップS304で選択した確立距離航跡とを関連付けた情報を反射点位置情報RPnに含めて、この反射点位置情報RPnを物体検出部314に出力する。
次に、先の図2のステップS105で実行される物体検出部314による駐車スペース情報推定処理について、図8A〜8Dを参照しながら説明する。図8Aは、本発明の実施の形態1における物体検出部による駐車スペース情報推定処理の一連の動作を示すフローチャートである。図8Bは、図8AのステップS505で実行される反射点追尾の一連の動作を示すフローチャートである。図8Cは、図8BのステップS610で実行される確立前反射点航跡処理の一連の動作を示すフローチャートである。さらに、図8Dは、図8BのステップS611で実行される確立後反射点航跡処理の一連の動作を示すフローチャートである。
なお、図8AのステップS501〜S504、S507、S508の処理は、先の図6AのステップS301〜S304、S306、S307の処理と同一である。したがって、以下では、図8Aと先の図6Aとで処理が同一のこれらのステップの説明を省略し、ステップS505で実行される反射点追尾の動作、ステップS506で実行される駐車スペース情報推定の動作について説明する。
はじめに、ステップS505で実行される反射点追尾の動作について説明する。ここで、反射点測位部313から入力される一連の反射点位置の時系列を反射点航跡と呼ぶ。物体検出部314は、反射点測位部313から入力された反射点位置情報に基づいて反射点航跡を更新していく。反射点航跡は、少なくとも、位置ベクトル成分と、速度ベクトル成分とを含む。なお、反射点航跡の更新にあたっては、例えば、最小二乗法、またはカルマンフィルタを用いて更新値を生成することができ、このように生成された更新値を反射点航跡更新値と呼ぶ。
まず、ステップS601において、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡が生成済であれば、この反射点航跡について、予測される時刻tnの反射点位置を反射点航跡予測値Rn’として生成し、ステップS602へと進む。
ステップS602において、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の時刻tnの反射点位置情報RPnを反射点測位部313から取得し、ステップS603へと進む。
ステップS603において、物体検出部314は、ステップS602で取得した反射点位置情報RPnの状態が「測位可」であるか否かを判定する。物体検出部314は、反射点位置情報RPnの状態が「測位可」である(すなわち、YES)と判定した場合には、ステップS604へと進み、反射点位置情報RPnの状態が「測位不定」である(すなわち、NO)と判定した場合には、ステップS605へと進む。
ステップS604に進んだ場合には、物体検出部314は、ステップS602で取得した反射点位置情報RPnに含まれる時刻tnの反射点位置Rnを取得し、ステップS609へと進む。なお、物体検出部314によって、このように取得された反射点位置Rnの反射点を測位可反射点と呼ぶ。
一方、ステップS605に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡の状態が「確立」であるか否かを判定する。物体検出部314は、この反射点航跡の状態が「確立」である(すなわち、YES)と判定した場合には、ステップS606へと進み、この反射点航跡の状態が「未確立」である(すなわち、NO)と判定した場合には、ステップS609へと進む。なお、物体検出部314は、時刻tnにおいて、反射点航跡が生成済でない場合も、ステップS609へと進む。
ステップS606において、物体検出部314は、時刻tnにおいて距離センサ100が移動しているか否かを判定する。例えば、先の図6BのステップS407において、センサ変位量がdよりも大きいと判定されていれば、物体検出部314は、時刻tnにおいて距離センサ100が移動していると判定する。物体検出部314は、時刻tnにおいて距離センサ100が移動している(すなわち、YES)と判定した場合には、ステップS608へと進み、時刻tnにおいて距離センサ100が移動していない(すなわち、NO)と判定した場合には、ステップS607へと進む。
ステップS607に進んだ場合には、物体検出部314は、ステップS601で生成した反射点航跡予測値Rn’を修正し、その後、ステップS608へと進む。具体的には、物体検出部314は、この反射点航跡予測値Rn’に含まれる位置ベクトル成分を、時刻tn−1の反射点航跡更新値Rn−1”に含まれる位置ベクトル成分に置換する。また、この反射点航跡予測値Rn’に含まれる速度ベクトル成分を零ベクトルとし、より高次のベクトル成分であれば、すべて零ベクトルとする。このように、ステップS601で生成した反射点航跡予測値Rn’を修正するのは、ステップS606において、時刻tnにおいて距離センサ100が移動していないと判定された場合、反射点位置Rnも移動していないことを考慮するためである。
そして、ステップS608において、物体検出部314は、反射点航跡予測値Rn’と、反射点位置情報RPnとから、時刻tnの反射点位置Rnを推定する。なお、物体検出部314によって、このように推定された反射点位置Rnの反射点を測位不定反射点と呼ぶ。
ここで、ステップS608で実行される反射点位置Rnの推定について、図9A、図9Bを参照しながら説明する。図9Aは、本発明の実施の形態1における物体検出部314による物体の反射点位置Rnの推定方法を説明するための説明図である。図9Bは、本発明の実施の形態1における物体検出部314による物体の反射点位置Rnの推定方法の別例を説明するための説明図である。
なお、ステップS608が実行される場合、ステップS602で取得した反射点位置情報RPnの状態が「測位不定」である。また、この反射点位置情報RPnは、ステップS504で選択した確立距離航跡に対応したものである。
図9Aに示すように、物体の反射点位置Rnは、センサ位置情報SPnに含まれる距離センサ100の位置であるセンサ位置を中心とし、半径が距離航跡更新値Dn”である円周上のどこかに存在する。また、このような円周において、センサ位置情報SPnに含まれるセンサ方位およびセンサ視野角から定まる方位範囲から、物体の反射点位置Rnの存在範囲を円弧Anで表すことができる。この考え方は、図7(a)と同様である。そこで、物体検出部314は、時刻tnの反射点航跡予測値Rn’から円弧Anまでの距離が最短となる円弧An上の点を反射点位置Rnとする。
なお、図9Aに示すような推定方法の代わりに、図9Bに示すような推定方法によって、反射点位置Rnを推定するように物体検出部314を構成してもよい。この場合、物体検出部314は、時刻tnに対応する円弧Anの2つの端点のうち、反射点航跡予測値Rn’からの距離が短い方の端点を、反射点位置Rnとする。
図8Bの説明に戻り、ステップS609において、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡の状態が「確立」であるか否かを判定する。物体検出部314は、この反射点航跡の状態が「確立」である(すなわち、YES)と判定した場合には、ステップS611へと進み、この反射点航跡の状態が「未確立」である(すなわち、NO)と判定した場合には、ステップS610へと進む。なお、物体検出部314は、時刻tnにおいて、反射点航跡が生成済でない場合も、ステップS610へと進む。
次に、ステップS610で実行される確立前反射点航跡処理の動作について、図8Cを参照しながら説明する。
まず、ステップS701において、物体検出部314は、ステップS602で取得した反射点位置情報RPnの状態が「測位可」であるか否かを判定する。物体検出部314は、反射点位置情報RPnの状態が「測位可」である(すなわち、YES)と判定した場合には、ステップS703へと進み、反射点位置情報RPnの状態が「測位不定」である(すなわち、NO)と判定した場合には、ステップS702へと進む。
ステップS702に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡について、未確立の状態にある反射点航跡を削除し、一連の処理を終了する。
一方、ステップS703に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡が生成済であるか否かを判定する。物体検出部314は、この反射点航跡が生成済である(すなわち、YES)と判定した場合には、ステップS705へと進み、この反射点航跡が生成済でない(すなわち、NO)と判定した場合には、ステップS704へと進む。
ステップS704に進んだ場合には、物体検出部314は、ステップS604で取得した反射点位置Rnを出発点とした反射点航跡を生成するとともに、この反射点航跡の状態を「未確立」および「未初期化」にセットし、一連の処理を終了する。
一方、ステップS705に進んだ場合には、物体検出部314は、時刻tnの反射点航跡予測値Rn’に基づいてゲートを設定する。ここでのゲートは、先の図3AのステップS204で設定されるゲートと同様に、反射点航跡予測値Rn’を中心とする一定の領域である。例えば、予め定めた反射点位置誤差共分散行列の定数倍から定まる楕円をゲート領域として設定する。また、反射点航跡の更新にカルマンフィルタを用いる場合、予測誤差共分散行列の位置成分と反射点位置誤差共分散行列との和で定まる位置残差共分散行列の定数倍から定まる楕円をゲート領域として設定してもよい。
ステップS706において、物体検出部314は、ステップS604で取得した反射点位置RnがステップS705で設定したゲート内に入るか否かを判定する。物体検出部314は、この反射点位置Rnがこのゲート内に入る(すなわち、YES)と判定した場合には、ステップS707へと進み、この反射点位置Rnがこのゲート内に入らない(すなわち、NO)と判定した場合には、ステップS702へと進む。
ステップS707に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡の状態が初期化済であるか否かを判定する。物体検出部314は、この反射点航跡の状態が初期化済である(すなわち、YES)と判定した場合には、ステップS709へと進み、この反射点航跡の状態が初期化済でない(すなわち、NO)と判定した場合には、ステップS708へと進む。
ステップS708に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡について、ステップS604で取得した反射点位置Rnを用いて反射点航跡更新値Rn”を生成するとともに、この反射点航跡の状態を「未初期化」から「初期化済」に変更し、一連の処理を終了する。
一方、ステップS709に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡について、ステップS604で取得した反射点位置Rnを用いて反射点航跡更新値Rn”を生成するとともに、この反射点航跡の状態を「未確立」から「確立」に変更し、一連の処理を終了する。
なお、以上の説明では、反射点位置Rnが3回連続して測位可反射点であれば、反射点航跡を確立する構成としているが、反射点航跡を確立するために必要な、測位可反射点が連続する回数を4回以上としてもよい。また、例えば、測位可反射点が2回連続して得られた後、サンプリングX回(Xは1以上の整数)以内に測位可反射点がゲート内に得られたとき、反射点航跡を確立する構成としてもよい。
次に、ステップS611で実行される確立後反射点航跡処理の動作について、図8Dを参照しながら説明する。
まず、ステップS801において、物体検出部314は、先の図8CのステップS705と同様に、時刻tnの反射点航跡予測値Rn’に基づいてゲートを設定し、ステップS802へと進む。
ステップS802において、物体検出部314は、時刻tnの反射点位置RnがステップS801で設定したゲート内に入るか否かを判定する。物体検出部314は、この反射点位置Rnがこのゲート内に入る(すなわち、YES)と判定した場合には、ステップS803へと進み、この反射点位置Rnがこのゲート内に入らない(すなわち、NO)と判定した場合には、ステップS804へと進む。
ステップS803に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡について、時刻tnの反射点位置Rnと反射点航跡予測値Rn’とを用いて反射点航跡更新値Rn”を生成し、一連の処理を終了する。
一方、ステップS804に進んだ場合には、物体検出部314は、ステップS504で選択した確立距離航跡に対応する物体の反射点航跡について、反射点航跡予測値Rn’を反射点航跡更新値Rn”とし、一連の処理を終了する。
次に、ステップS506で実行される駐車スペース情報推定の動作について説明する。ステップS506において、物体検出部314は、ステップS505で得られた反射点航跡から、駐車スペース情報を推定する。
ここで、物体検出部314は、駐車スペース情報として、駐車車両の側面を推定する場合、例えば、反射点航跡に含まれる各時刻の反射点航跡更新値を結んだ折れ線を、側面として推定することができる。
また、駐車車両を長方形で近似して、自車の運転状況に応じて推定方法を切り替えることで物体の側面を推定してもよい。例えば、自車が駐車スペースを探索している運転状況では、駐車車両の側方を通過したとき、反射点航跡が近似長方形の一辺となるので、反射点航跡に含まれる各時刻の反射点航跡更新値を線分で近似して駐車車両の側面を推定する。一方、自車が駐車スペースに誘導されている運転状況では、駐車車両と自車との位置関係から、反射点航跡に対応する近似長方形の辺を決定することで駐車車両の側面を推定する。
駐車スペース情報として、駐車車両のコーナーを推定する場合、例えば、特許文献1に記載の従来技術を適用することで、コーナーを推定することができる。
ここで、ステップS506で実行される駐車スペース情報推定について、図10を参照しながら説明する。図10は、本発明の実施の形態1における物体検出部314による駐車スペース情報の推定方法を説明するための説明図である。
図10に示すように、自車が矢印方向に移動することで生成される反射点航跡には、距離センサ100が距離データを検出する各時刻の反射点航跡更新値が含まれる。また、各時刻の反射点航跡更新値は、測位可反射点の反射点位置を用いて生成された反射点航跡更新値または測位不定反射点の反射点位置を用いて生成された反射点航跡更新値である。このように、反射点航跡に含まれる各時刻の反射点航跡更新値から駐車車両の側面を推定することができる。
なお、物体の反射点位置に基づいて駐車スペース情報を推定する方法として、上述した方法を例示したが、これに限定されない。すなわち、本願発明は、物体の反射点位置を精度良く推定することを技術的特徴としており、物体の反射点位置に基づいて駐車スペース情報を推定する従来技術に対して適用することができる。
なお、本実施の形態1では、測位可反射点に基づいて反射点航跡を確立し、確立した反射点航跡を用いて、センサ位置の移動に伴う反射点位置の変化を追従する構成としたが、反射点位置の変化量は、センサ位置の変化量とほぼ同じであると仮定することができる。
そこで、物体検出部314は、先の図8CのステップS706において、時刻tnの反射点位置Rnがゲート内に入っていても、反射点位置の変化量がセンサ位置の変化量が定数倍よりも大きい場合には、ステップS707ではなく、ステップS702を実行するようにしてもよい。同様に、物体検出部314は、先の図8DのステップS802において、時刻tnの反射点位置Rnがゲート内に入っていても、反射点位置の変化量がセンサ位置の変化量が定数倍よりも大きい場合には、ステップS803ではなく、ステップS804を実行するようにしてもよい。
このように、反射点位置の変化量がセンサ位置の変化量の定数倍よりも大きい場合、第2ゲート内に、推定された反射点位置Rnが含まれていたときであっても、各反射点位置の時間遷移を追従することを停止するように構成してもよい。
なお、反射点位置の変化量とは、時刻tnの反射点位置Rnと、時刻tn−1の反射点航跡更新値Rn−1”との差分ベクトルの大きさを意味する。また、センサ位置の変化量とは、センサ位置情報SPnに含まれる時刻tnにおける距離センサ100の位置と、センサ位置情報SPn−1に含まれる時刻tn−1における距離センサ100の位置との差分ベクトルの大きさを意味する。
以上、本実施の形態1によれば、時刻tn以前に距離センサによって検出された距離データの時間遷移を追従することで生成した距離航跡から、時刻tnに距離センサによって検出されると予測される距離航跡予測値Dn’を生成し、生成した距離航跡予測値Dn’を中心に設定した第1ゲート内に、時刻tnに距離センサによって検出された距離データDnが含まれていれば、距離データDnと距離航跡予測値Dn’とを用いて距離航跡更新値Dn”を生成して距離航跡を更新し、第1ゲート内に距離データDnが含まれていなければ距離航跡予測値Dn’を距離航跡更新値Dn”とするとともに距離データDnを出発点とする新たな距離航跡に関して新たに距離データの時間遷移を追従することを開始し、異なる物体ごとに距離データを弁別して距離航跡を生成する物体弁別部を備える。
これにより、距離センサによって検出された距離データのノイズ成分を除去するとともに、この距離データに対応する物体を精度良く弁別することができる。
また、時刻tnにおけるセンサ位置情報SPnを演算し、異なる物体ごとにセンサ位置情報SPnで特定される位置を中心として、半径を距離航跡更新値Dn”とした円周上のうち、センサ位置情報SPnで特定される方位の円弧Anを演算し、演算した円弧Anと、円弧Anよりも前の時刻に演算された各円弧のうちの1つとの共通接線に接する円弧An上の接点の位置を、時刻tnにおける物体の反射点位置Rnとして推定する反射点測位部をさらに備える。
さらに、異なる物体ごとに推定された反射点位置Rnと、反射点測位部によって反射点位置Rnよりも前の時刻に推定された各反射点位置とから、それぞれの物体の位置を特定することで、駐車スペース情報を推定する物体検出部をさらに備える。
これにより、簡単な構成で、距離センサの検出対象である物体の反射点位置を精度良く推定することができる。また、このように精度良く反射点位置を推定することができるので、反射点位置から物体の駐車スペース情報も精度良く推定することができる。
また、物体検出部は、反射点測位部によって反射点位置Rnよりも前の時刻に推定された各反射点位置の時間遷移を追従することで、時刻tnの反射点航跡予測値Rn’を生成し、反射点測位部が反射点位置Rnを推定することができない場合、反射点航跡予測値Rn’からの距離が最短となる円弧An上の位置を、反射点位置Rnとして推定する。
これにより、反射点測位部によって演算した円弧Anと、円弧Anよりも前の時刻に演算された各円弧との位置関係によって時刻tnの反射点位置Rnを演算することができない場合であっても、物体検出部が反射点位置Rnを推定することができる。
また、物体検出部は、生成した反射航跡予測値Rn’を中心に設定した第2ゲート内に、推定された反射点位置Rnが含まれていれば、反射点位置Rnを用いて反射点航跡更新値Rn”を生成して各反射点位置の時間遷移を追従することを継続し、時刻tnにおいて距離センサの位置が移動していない場合、時刻tnよりも1つ前の時刻である時刻tn−1の反射点航跡更新値Rn−1”と、反射点位置Rnとの変化量が0となるように反射点航跡予測値Rn’を修正する。これにより、時刻tnにおいて距離センサが移動していない場合、反射点位置Rnも移動していないことを考慮することができる。
実施の形態2.
先の実施の形態1では、時刻tnに対応する円弧Anと、時刻tn以前の1つの時刻に対応する円弧との共通接線から反射点位置Rnを推定する場合について説明した。これに対して、本発明の実施の形態2では、時刻tnに対応する円弧Anと、時刻tn以前の2つ以上の時刻に対応する各円弧との包絡線から反射点位置Rnを推定する場合について説明する。
図11Aは、本発明の実施の形態2における反射点測位部313による反射点測位処理の一連の動作を示すフローチャートである。図11Bは、図11AのステップS905で実行される反射点測位の一連の動作を示すフローチャートである。
なお、本実施の形態2では、先の実施の形態1と同様である点の説明を省略し、先の実施の形態1に対して反射点測位部313による反射点測位処理の動作が異なる点を中心に説明する。また、図11Aと先の図6Aとを比較した場合、ステップS905およびステップS305のそれぞれの反射点測位の動作が異なり、その他のステップの動作が同じである。そこで、ステップS905の反射点測位の動作の一連の処理である図11Bのフローチャートを中心に説明する。
まず、反射点測位部313は、先の図6BのステップS401〜403と同様のステップS1001〜S1003を順に実行する。
そして、ステップS1003において、反射点測位部313は、検出時間差が定数T以上、またはこの変数kが定数kmaxよりも大きい(すなわち、YES)と判定した場合には、ステップS1009へと進み、検出時間差が定数T未満、かつこの変数kが定数kmax以下である(すなわち、NO)と判定した場合には、ステップS1004へと進む。
ステップS1004に進んだ場合には、反射点測位部313は、先の図6BのステップS405〜407と同様のステップS1004〜S1006を、順に実行する。
そして、ステップS1007において、反射点測位部313は、ステップS904で選択した確立距離航跡に含まれる時刻tn−kの距離航跡更新値Dn−k”を取得し、ステップS1008へと進む。
ステップS1008において、反射点測位部313は、変数kをインクリメントし、ステップS1003へと戻り、ステップS1003以降の処理を再び実行する。
一方、ステップS1009に進んだ場合には、反射点測位部313は、ステップS902で取得したセンサ位置情報SPnと、ステップS1001で取得した距離航跡更新値Dn”と、ステップS1005で取得した複数のセンサ位置情報と、ステップS1007で取得した複数の距離航跡更新値とを用いて、ステップS904で選択した確立距離航跡に対応する物体について、時刻tnの反射点位置Rnを演算する。
ここで、ステップS1009で実行される反射点位置Rnの演算について、図12を参照しながら説明する。図12は、本発明の実施の形態2における反射点測位部313による物体の反射点位置Rnの演算方法を説明するための説明図である。
図12に示すように、物体の反射点位置Rnの存在範囲を円弧Anで表すことができる。時刻tnと同様に、時刻tn−kの物体の反射点位置Rn−kの存在範囲も円弧An−kで表すことができる。この考え方は、図7(a)と同様である。
また、本実施の形態2では、先の実施の形態1とは異なり、時刻tn以前の1つの時刻に対応するセンサ位置情報および距離航跡更新値ではなく、時刻tn以前の2つ以上の時刻に対応するセンサ位置情報および距離航跡更新値を取得している。したがって、図12に示すように、時刻tn以前の各時刻の反射点位置の存在範囲を表す円弧と、時刻tnの円弧Anとを用いて、反射点位置Rnを演算している。
各時刻における物体の反射点位置は、距離センサ100から物体までの距離が最短となる最短距離点であり、センサの移動に伴って移動している。そこで、時刻tnにおける反射点の存在範囲を表す円弧と、時刻tn以前の各時刻の反射点位置の存在範囲を表す円弧との包絡線を引き、その包絡線に接する円弧An上の接点を時刻tnの反射点位置Rnとする。
図11Bの説明に戻り、ステップS1010において、反射点測位部313は、ステップS1009で時刻tnの反射点位置Rnを演算することができたか否かを判定する。反射点測位部313は、この反射点位置Rnを演算することができた(すなわち、YES)と判定した場合には、ステップS1012へと進み、この反射点位置Rnを演算することができなかった(すなわち、NO)と判定した場合には、ステップS1011へと進む。
ステップS1011に進んだ場合には、反射点測位部313は、先の図6BのステップS404と同様の処理を実行し、一連の処理を終了する。一方、ステップS1012に進んだ場合には、反射点測位部313は、先の図6BのステップS412と同様の処理を実行し、一連の処理を終了する。
以上、本実施の形態2によれば、先の実施の形態1に対して、共通接線を用いて反射点位置Rnを推定する代わりに、円弧Anと、円弧Anよりも前の複数の時刻に演算された各円弧との包絡線に接する円弧An上の接点の位置を、反射点位置Rnとして推定する反射点測位部を備える。これにより、先の実施の形態1と同様の効果が得られる。
実施の形態3.
先の実施の形態1では、時刻tnに対応する円弧Anと、時刻tn以前の1つの時刻に対応する円弧との共通接線から反射点位置Rnを推定する場合について説明した。これに対して、本発明の実施の形態3では、時刻tnに対応する円弧Anと、時刻tn以前の1つ以上の時刻に対応する各円弧との共通接線から反射点位置Rnを推定する場合について説明する。
図13Aは、本発明の実施の形態3における反射点測位部313による反射点測位処理の一連の動作を示すフローチャートである。図13Bは、図13AのステップS1105で実行される反射点測位の一連の動作を示すフローチャートである。
なお、本実施の形態3では、先の実施の形態2と同様である点の説明を省略し、先の実施の形態2に対して反射点測位部313による反射点測位処理の動作が異なる点を中心に説明する。また、図13Aと先の図11Aとを比較した場合、ステップS1105およびステップS905のそれぞれの反射点測位の動作が異なり、その他のステップの動作が同じである。そこで、ステップS1105の反射点測位の動作の一連の処理である図13Bのフローチャートを中心に説明する。
まず、反射点測位部313は、先の図11BのステップS1001〜1003と同様のステップS1201〜S1203を順に実行する。
そして、ステップS1203において、反射点測位部313は、検出時間差が定数T以上、またはこの変数kが定数kmaxよりも大きい(すなわち、YES)と判定した場合には、ステップS1210へと進み、検出時間差が定数T未満、かつこの変数kが定数kmax以下である(すなわち、NO)と判定した場合には、ステップS1204へと進む。
ステップS1204に進んだ場合には、反射点測位部313は、先の図11BのステップS1004〜1007と同様のステップS1204〜S1207を、順に実行し、ステップS1208へと進む。
ステップS1208において、反射点測位部313は、ステップS1102で取得したセンサ位置情報SPnと、ステップS1201で取得した距離航跡更新値Dn”と、ステップS1205で取得したセンサ位置情報SPn−kと、ステップS1207で取得した距離航跡更新値Dn−k”とを用いて、ステップS1104で選択した確立距離航跡に対応する物体について、時刻tnの反射点仮位置RTnを演算し、ステップS1209へと進む。すなわち、反射点測位部313は、時刻tnの反射点位置Rnの存在範囲を表す円弧Anと、時刻tn−kの反射点位置Rn−kの存在範囲を表す円弧An−kとの共通接線を引き、その共通接線に接する円弧An上の接点を、時刻tnの反射点仮位置RTnとする。
ステップS1209において、反射点測位部313は、変数kをインクリメントし、ステップS1203へと戻り、ステップS1203以降の処理を再び実行する。
一方、ステップS1210に進んだ場合には、反射点測位部313は、演算した時刻tnの反射点仮位置RTnの数が1つ以上であるか否かを判定する。反射点測位部313は、この数が1つ以上である(すなわち、YES)と判定した場合には、ステップS1212へと進み、この数が1つ未満である(すなわち、NO)と判定した場合には、ステップS1211へと進む。
ステップS1212において、反射点測位部313は、ステップS1102で取得したセンサ位置情報SPnと、ステップS1201で取得した距離航跡更新値Dn”と、ステップS1208で取得した反射点仮位置RTnとを用いて、ステップS1104で選択した確立距離航跡に対応する物体について、時刻tnの反射点位置Rnを演算し、ステップS1213へと進む。
ここで、ステップS1212で実行される反射点位置Rnの演算について、図14を参照しながら説明する。図14は、本発明の実施の形態3における反射点測位部313による物体の反射点位置Rnの演算方法を説明するための説明図である。
図14に示すように、物体の反射点位置Rnの存在範囲を円弧Anで表すことができる。時刻tnと同様に、時刻tn−kの物体の反射点位置Rn−kの存在範囲も円弧An−kで表すことができる。この考え方は、図7(a)と同様である。
また、本実施の形態3では、先の実施の形態2とは異なり、変数kをインクリメントしながら、円弧Anと、円弧An−kとの共通接線を引き、その共通接線に接する円弧An上の接点を、時刻tnの反射点仮位置RTnとする処理(すなわち、ステップS1208)を繰り返し実行する。
したがって、図14に示すように、複数の反射点仮位置RTnを用いて、反射点位置Rnを演算している。なお、図14では、反射点仮位置RTnが3つある場合を例示している。より具体的には、円弧Anと円弧An−1との共通接線1に接する円弧An上の接点に相当する反射点仮位置1と、円弧Anと円弧An−2との共通接線2に接する円弧An上の接点に相当する反射点仮位置2と、円弧Anと円弧An−3との共通接線3に接する円弧An上の接点に相当する反射点仮位置3がある場合を例示している。
このように、複数の反射点仮位置RTnのそれぞれは、円弧An上の点である。また、複数の反射点仮位置RTnのそれぞれは、センサ位置情報SPnに含まれる時刻tnのセンサ位置から見た方位が異なる一方、時刻tnのセンサ位置からの距離がすべて同一である。そこで、時刻tnのセンサ位置からの距離が距離航跡更新値Dn”であって、かつ、時刻tnのセンサ位置から見た反射点仮位置RTnのそれぞれの方位の平均値に相当する方位に位置する点を、時刻tnの反射点位置Rnとする。すなわち、時刻tnのセンサ位置から見た反射点仮位置RTnのそれぞれの方位の平均値に相当する方位に位置する円弧An上の点を、時刻tnの反射点位置Rnとする。
なお、時刻tnのセンサ位置から見た反射点仮位置RTnのそれぞれの方位の中央値に相当する方位に位置する円弧An上の点を、時刻tnの反射点位置Rnとしてもよい。
図13Bの説明に戻り、ステップS1211に進んだ場合には、反射点測位部313は、先の図11BのステップS1011と同様の処理を実行し、一連の処理を終了する。一方、ステップS1213に進んだ場合には、反射点測位部313は、先の図11BのステップS1012と同様の処理を実行し、一連の処理を終了する。
以上、本実施の形態3によれば、先の実施の形態1に対して、共通接線を用いて反射点位置Rnを推定する代わりに、円弧Anと、円弧Anよりも前の複数の時刻に演算された各円弧との共通接線に接する円弧An上の接点の位置を、反射点仮位置RTnとし、センサ位置情報SPnに含まれる距離センサの位置から見た反射点仮位置RTnのそれぞれの方位の平均値に相当する方位、またはそれぞれの方位の中央値に相当する方位に位置する円弧An上の点を、反射点位置Rnとして推定する反射点測位部を備える。これにより、先の実施の形態1と同様の効果が得られる。