以下、本発明の好ましい実施形態について添付図面を参照して、説明する。図1は、本発明の一例である走行支援装置100が搭載される車両1の上面視を模式的に示した模式図である。なお、図1の矢印U−D,L−R,F−Bは、車両1の上下方向、左右方向、前後方向をそれぞれ示している。
まず、図1を参照して、車両1の概略構成について説明する。車両1は、運転者により運転操作可能に構成された車両であり、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させることができる走行支援装置100を有している。
走行支援装置100は、目標とする駐車位置が運転者により設定されると、予め記憶されている経路パターンPT1〜PT10(図3参照)の組み合わせに基づいて、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3(図5(a)参照)を生成する。そして、車両1の自律走行を開始する前に、その走行経路RT1〜RT3上に障害物が存在していないかを判定し、障害物が存在していない場合に、生成した走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させる。
本実施形態では、目標とする駐車位置に車両1を駐車させた時の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いて、車両1の位置や、走行経路RT1〜RT3などの位置を算出する。
よって、以下の説明では、この座標系を用いて、車両1や、走行経路RT1〜RT3などの各位置を示す。また、車両1の前後軸と、車両1における左右の後輪2RL,2RRの車軸との交点を車両1の基準点とし、上述した座標系における車両1の基準点の位置を、車両1の車両位置とする。また、車両1の前後軸方向のうち車両1が進行している方向を、車両1の進行方向とする。
図1に示すように、車両1は、車体フレームBFと、その車体フレームBFに支持される複数(本実施形態では4輪)の車輪2FL,2FR,2RL,2RRと、それら複数の車輪2FL〜2RRの内の一部(本実施形態では、左右の前輪2FL,2FR)を回転駆動する車輪駆動装置3と、各車輪2を車体フレームBFに懸架する懸架装置4と、複数の車輪2の内の一部(本実施形態では、左右の前輪2FL,2FR)を操舵するステアリング装置6および操舵駆動装置5とを主に備えている。
次いで、各部の詳細構成について説明する。車体フレームBFは、車両1の骨格をなすものであり、懸架装置4を支持すると共に、その懸架装置4を介して車輪2を支持している。懸架装置4は、いわゆるサスペンションとして機能する装置であり、図1に示すように、各車輪2に独立して設けられている。
車輪2FL,2FRは、図1に示すように、車体フレームBFの前方側(矢印F側)に配置される左右の前輪であり、車輪駆動装置3によって回転駆動される駆動輪として構成されている。一方、車輪2RL,2RRは、車体フレームBFの後方側(矢印B側)に配置される左右の後輪であり、車両1の走行に伴って従動する従動輪として構成されている。
車輪駆動装置3は、左右の前輪2FL,2FRに回転駆動力を付与するモータ3a(図6参照)を備えて構成されている。なお、モータ3aは、ディファレンシャルギヤ(図示せず)及び一対のドライブシャフト31を介して左右の前輪2FL,2FRに接続されている。
例えば、運転者がアクセルペダル11を操作した場合には、モータ3aから左右の前輪2FL,2FRに回転駆動力が付与され、それら左右の前輪2FL,2FRがアクセルペダル11の傾斜状態(傾斜角度、傾斜する速度など)に応じた速度で回転駆動される。なお、左右の前輪2FL,2FRの回転差は、ディファレンシャルギヤにより吸収される。
ステアリング装置6は、図1に示すように、ステアリングシャフト61と、フックジョイント62と、ステアリングギヤ63と、タイロッド64と、ナックルアーム65とを主に備えて構成されている。なお、ステアリング装置6は、ステアリングギヤ63がピニオン(図示せず)とラック(図示せず)とを備えたラックアンドピニオン機構によって構成されている。
例えば、運転者がステアリング13を操作した場合には、ステアリング13の操作がステアリングシャフト61を介してフックジョイント62に伝達されると共にフックジョイント62によって角度を変えられ、ステアリングギヤ63のピニオンに回転運動として伝達される。そして、ピニオンに伝達された回転運動がラックの直線運動に変換され、ラックが直線運動することで、ラックの両端に接続されたタイロッド64が移動し、ナックルアーム65を介して車輪2が操舵される。
ステアリングシャフト61には、左右の前輪2FL,2FRの操舵角δを算出してCPU91へ出力するステアリングセンサ装置21が取付られている。ステアリングセンサ装置21は、基準位置からのステアリングシャフト61の回転角度に基づいて、左右の前輪2FL,2FRの操舵角δを算出し、その算出結果を走行支援装置100に設けられたCPU91(図6参照)へ出力する。
操舵駆動装置5は、ステアリング装置6と同様に、左右の前輪2FL,2FRを操舵するための装置であり、ステアリングシャフト61に回転駆動力を付与するモータ5a(図6参照)を備えて構成されている。即ち、モータ5aが駆動されてステアリングシャフト61が回転すると、運転者によりステアリング13が操作された場合と同様に車輪2が操舵される。
アクセルペダル11、ブレーキペダル12及びステアリング13は、いずれも運転者により制御される操作部材であり、各ペダル11,12の傾斜状態(傾斜角度、傾斜する速度など)に応じて車両1の加速力や制動力が決定されると共に、ステアリング13の操作状態(操作量、操作方向)に応じて車両1の旋回半径や旋回方向が決定される。
自動駐車スイッチ24は、自律走行により目標とする駐車位置に車両1を駐車させたい場合に、運転者が押下するスイッチであり、これが運転者により押下されると、走行支援装置100において後述する自動駐車処理(図7参照)が実行される。その結果、現在位置から運転者が目標とする駐車位置まで車両1が自律走行させられ、その駐車位置に車両1が停車させられる。
ジャイロセンサ装置22は、車両1の水平面に対するロール角およびピッチ角と、ヨー
角とを検出すると共に、その検出結果をCPU91に出力するための装置であり、車両1の重心を通る基準軸(図1矢印F−B,L−R,U−D方向軸)回りの車両1(車体フレームBF)の回転角(ロール角、ピッチ角、ヨー角)をそれぞれ検出するジャイロセンサ(図示せず)と、そのジャイロセンサの検出結果を処理してCPU91に出力する出力回路(図示せず)とを主に備えている。
なお、以下の説明では、車両1のヨー角のことを、車両1の車両方位と記載する。なお、車両1における車両方位の基準軸は、上述したx軸とし、そのx軸から車両1の進行方向までの反時計回りの角度を、車両1の車両方位とする。
第1から第3までの各距離センサ23a〜23cは、車両1の周辺に存在する物体までの距離データをCPU91(図6参照)に出力するための装置である。各距離センサ23a,23b,23cは、レーザ光を対象物に向けて照射し、その反射の度合いで対象物までの距離を測定するレーザレンジファインダで構成されている。
より具体的には、各距離センサ23a〜23cは、略270度の範囲内で、円周方向の0.5度毎にレーザ光を放射状に照射し、放射状に延びる直線上に位置する対象物までの距離を検出すると共に、その略270度の範囲内の全走査を、約100msで完了するように構成されている。よって、この走査により、対象物の輪郭を示す点が断片的に測定され、各距離がCPU91へそれぞれ出力される。
第1距離センサ23aは、車両1の前面右端に取り付けられており、車両1の前面から右側面までの範囲を外方向に走査し、対象物までの距離を検出する。以下同様に、第2距離センサ23bは、車両1の前面左端に取り付けられ、車両1の前面から左側面までの範囲を外方向に走査し、第3距離センサ23cは、車両1の後面中央に取り付けられ、車両1の後面を外方向に走査し、対象物までの距離を検出する。本実施形態では、3つの距離センサ23a〜23cにより、車両1を中心として少なくとも60m四方の領域内に存在する各対象物までの距離を検出できる。
そして、車両1の前面は、第1距離センサ23aと、第2距離センサ23bとによって二重に走査されるので、車両1の前方に存在する障害物をより精度良く検出できる。即ち、車両1の前面を走査する距離センサが一つだけの場合には、車両1の前方に障害物が存在すると、距離センサから照射されたレーザ光が、前方の障害物によって反射されるため、その障害物の奥側にはレーザ光が届かず、レーザ光の届かない領域が走行できるのか不明となる。
しかし、車両1の前面を、2つの距離センサによりそれぞれ異なる角度から走査することにより、一方の距離センサのレーザ光が、前方の障害物の奥側に届かない場合でも、他方の距離センサのレーザ光が届く場合がある。よって、車両1の前方に存在する障害物をより精度良く検出できるので、車両1を走行可能と判定できる領域を増やすことができる。
各距離センサ23a,23b,23cによる車両1の周辺の走査は、一定間隔(例えば、100ms)ごとに繰り返し行われ、その走査が終了する度に、各距離センサ23a〜23cにより計測された走査結果が、それぞれ個別にCPU91に出力される。CPU91は、各処理センサ23a〜23cから出力される走査結果を一つに合成して、車両1の全周囲の走査結果を生成し、その走査結果をRAM93の車両周囲情報メモリ93a(図6参照)に記憶する。
走行支援装置100は、車輪駆動装置3、操舵駆動装置5、及び、ブレーキ装置(図示せず)などを制御して、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものである。
本実施形態では、運転者により自動駐車スイッチ24が押下され、運転者により目標とする駐車位置が設定されると、走行支援装置100によって、現在位置から目標位置へ到達可能な走行経路RT1〜RT3が生成される(図2参照)。走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成されている。
この走行経路RT1〜RT3は線として連続的に構成されるが、走行経路RT1〜RT3を示すデータについては、走行経路RT1〜RT3を構成する点のうち、所定間隔ごとの点を示すデータより構成される。以下、この所定間隔ごとの点を、経路点Pと称し、経路点Pを示すデータを、経路点情報と称する。なお、この経路点Pは、車両1が走行経路RT1〜RT3を自律走行する場合に経由すべき点であり、経路点情報は、経路点Pにおける車両1の車両位置と、その経路点Pにおける車両1の車両方位θとにより構成される。各経路点Pの経路点情報は、後述する点経路メモリ93c(図6参照)に記憶される。詳細については後述するが、例えば、走行経路RT1であれば、走行経路RT1上を構成する点のうち、2m間隔ごとの点を経路点Pとしている。
そして、本実施形態では、走行経路RT1〜RT3全体が生成されると、次に、走行支援装置100が車両1を自律走行させる場合に車両1の車両状態を制御する点である走行制御点Qが、走行経路RT1〜RT3上に、0.05m間隔で仮想的に生成される。つまり、本実施形態では、車両1の走行状態が0.05m毎に制御される。
なお、経路点P0(車両1の現在位置)を除く各経路点P上には、必ず走行制御点Qが生成される。また、各走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成され、各走行制御点Qの車両設定情報は、後述する走行制御点メモリ93d(図6参照)にそれぞれ記憶される。
車両設定情報の詳細については後述するが、走行制御装置100は、走行経路RT1〜RT3に沿って車両1を自律走行させる場合に、各走行制御点Qに到達する度に、その走行制御点Qに対応する車両設定情報に基づいて車両1の走行状態を設定し、運転者が目標とする駐車位置まで車両1を自律走行させる。
ここで、図2を参照して、走行支援装置100により生成される走行経路RT1〜RT3と、走行経路RT1〜RT3に対して生成される走行制御点Qについて説明する。図2は、走行経路RT1〜RT3全体と、その走行経路RT1〜RT3を示す経路点Pと、その走行経路RT1〜RT3に対して生成される走行制御点Qとの一例を説明するための模式図である。
以下、図2を含め、走行経路RT1〜RT3を示す図においては、経路点Pを白抜きの丸で示し、走行制御点Qを黒塗りの丸で示す。また、経路点P0は、車両1の現在位置を示し、経路点P8は、運転者が目標とする駐車位置を示す。なお、他の経路点P1〜P7の詳細については後述する。また、走行制御点Qは、本来なら0.05m間隔で生成されるが、図を見易くするために一部の走行制御点Qのみを示す。
上述したように、走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成される。パターン走行部RT1は、後述する経路パターンメモリ92c(図6参照)に格納されている経路パターンPT1〜PT10の組み合わせにより生成される走行経路である。図2に示す例では、経路点P0から経路点P6までの走行経路が、パターン走行部RT1となる。
また、後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に車両1を後退直進させることが可能となる車両位置までの走行経路である。図2に示す例では、経路点P6から経路点P7までの経路が、後退旋回部RT2となる。なお、この後退旋回部RT2では、車両1が同一の操舵角δで後退旋回するように走行経路が決定される。
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置までの走行経路である。図2に示す例では、経路点P7から経路点P8までの経路が、最終後退部RT3となる。なお、この最終後退部RT3は、車両1が後退直進するように走行経路が決定される。
ここで、図3を参照して、経路パターンPT1〜PT10について説明する。図3は、走行経路RT1〜RT3全体のうち、パターン走行部RT1を生成するために用いる経路パターンPT1〜PT10の一例を示す模式図である。
本実施形態では、10種類の断片的な走行経路が予め設定されており、それぞれが経路パターンとして、後述する経路パターンメモリ92c(図6参照)に格納されている。10種類の経路パターンPT1〜PT10には、「PT1」から「PT10」までのパターン番号が付されている。10種類の経路パターンPT1〜PT10では、各走行経路の軌跡はそれぞれ異なるが、各走行経路の長さ(即ち、走行距離)CLは全て2mに設定されている。パターン走行部RT1は、この経路パターンPT1〜PT10に対応する走行経路が組み合わされて生成される。
そして、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。つまり、経路点P1〜P5は、経路パターンPT1〜PT10に対応する走行経路の接続点を示している。
経路パターンPT1は、経路点Piから車両1を前方直進させ2m移動させる走行経路を示すパターンであり、経路パターンPT2は、経路点Piから車両1を後退直進させ2m移動させる走行経路を示すパターンである。
経路パターンPT3は、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT4は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を前方右旋回させ、経路パターンPT5は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を後退左旋回させ、経路パターンPT6は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を旋回半径Rで後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
また、経路パターンPT7は、車両1の旋回半径Rを最小旋回半径とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT8は、車両1の旋回半径Rを最小旋回半径とし車両1を前方右旋回させ、経路パターンPT9は、車両1の旋回半径Rを最小旋回半径とし車両1を後退左旋回させ、経路パターンPT10は、車両1の旋回半径Rを最小旋回半径とし車両1を後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
ここで、図4を参照して、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する各経路点Pおよび車両方位θについて説明する。図4は、経路パターンPT1〜PT10に応じて車両1を移動させた場合の移動先に対応する各経路点Pおよび車両方位θを算出するための模式図である。ここで、経路点Pi(xi,yi)は、移動前の車両1の車両位置を示す。また、経路点Piにおける車両1の車両方位をθiと示し、車両1の進行方向を矢印で示す。
まず、経路パターンPT8に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PA(xA,yA)と、その経路点PAにおける車両方位θAを算出する方法について説明する。
車両1の走行距離をCLとし、車両1の旋回半径をRとし、更に、経路点PAにおける車両方位θAと、経路点Piにおける車両方位θiとの変化量をΔθとした場合、その変化量Δθは、
Δθ=CL/R
により算出できる。従って、経路点PA(xA,yA)と、その経路点PAにおける車両方位θAとは、
θA=θi−Δθ
xA=xi+2R・sin(Δθ/2)・cos(θi−Δθ/2)
yA=yi+2R・sin(Δθ/2)・sin(θi−Δθ/2)
により算出できる。なお、経路パターンPT4についても同様に、この式により経路点Pおよび車両方位θを算出できる。
次に、経路パターンPT7に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PB(xB,yB)と、その経路点PBにおける車両方位θBを算出する方法について説明する。なお、経路点PBにおける車両方位θBと、経路点Piにおける車両方位θiとの変化量Δθは、上述した式により同様に算出できる。よって、経路点PB(xB,yB)と、その経路点PBにおける車両方位θBとは、
θB=θi+Δθ
xB=xi+2R・sin(Δθ/2)・cos(θi+Δθ/2)
yB=yi+2R・sin(Δθ/2)・sin(θi+Δθ/2)
により算出できる。なお、経路パターンPT3についても同様に、この式により経路点Pおよび車両方位θを算出できる。
以下同様に、経路パターンPT9に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PC(xC,yC)と、その経路点PCにおける車両方位θCとは、
θC=θi−Δθ
xC=xi+2R・sin(Δθ/2)・cos(θi−Δθ/2−π)
yC=yi+2R・sin(Δθ/2)・sin(θi−Δθ/2−π)
により算出できる。なお、経路パターンPT5についても同様に、この式により経路点Pおよび車両方位θを算出できる。
また、経路パターンPT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PD(xD,yD)と、その経路点PDにおける車両方位θDとは、
θD=θi+Δθ
xD=xi+2R・sin(Δθ/2)・cos(θi+Δθ/2−π)
yD=yi+2R・sin(Δθ/2)・sin(θi+Δθ/2−π)
により算出できる。なお、経路パターンPT6についても同様に、この式により経路点Pおよび車両方位θを算出できる。
また、図示はしていないが、経路パターンPT1に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PE(xE,yE)と、その経路点PEにおける車両方位θEとは、
θE=θi
xE=xi+CL・cos(θi)
yE=yi+CL・sin(θi)
により算出できる。また、経路パターンPT2に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PF(xF,yF)と、その経路点PFにおける車両方位θFとは、
θF=θi
xF=xi+CL・cos(θi+π)
yF=yi+CL・sin(θi+π)
により算出できる。
以上の図4を参照して説明した数式を用いることにより、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点Pと、その車両方位θとを算出できる。よって、パターン走行部RT1を生成できる。
本実施形態では、予め定められている順序で、経路パターンPT1〜PT10が組み合わされて、仮の走行経路RT1が生成されていく。この仮の走行経路RT1が生成されると、次に、その仮の走行経路RT1に続く後退旋回部RT2と、その後退旋回部RT2に続く最終後退部RT3とが有るか否かが判定される。この判定条件のことを、本実施形態では、駐車可能条件と称する。
なお、ここで駐車可能条件が成立する場合には、仮の走行経路RT1がパターン走行部RT1とされ、成立した駐車可能条件に基づいて、後退旋回部RT2および最終後退部RT3が決定され、走行経路RT1〜RT3全体が生成される。一方、駐車可能条件が成立しない場合には、別の仮の走行経路RT1が生成され、再度、駐車可能条件が成立しているかが判定される。仮の走行経路RT1の生成と、駐車可能条件の判定とは、駐車可能条件が成立するか、又は、予め定められている経路パターンPT1〜PT10の組み合わせが全て生成されるまで、繰り返される。
ここで、図5(a),(b)を参照して、駐車可能条件について説明する。図5(a)は、走行経路RT1〜RT3上の経路点Pの一例を説明するための模式図であり、図5(b)は、駐車可能条件を説明するための模式図である。図5(a)では、経路点P0〜P6までの走行経路が、パターン走行部RT1に対応し、経路点P6〜P7までの走行経路が、後退旋回部RT2に対応し、経路点P7〜P8までの走行経路が、最終後退部RT3に対応している。
本実施形態では、仮の走行経路RT1が生成されると、その度に、仮の走行経路RT1の終端に対応する経路点Pにおいて、駐車可能条件が成立しているかが判定され(図8のS35参照)、駐車可能条件が成立していなければ、別の仮の走行経路RT1が生成される。
この駐車可能条件は、2つの条件から構成されており、1つ目の条件は、仮の走行経路RT1の終端に対応する経路点Pから車両1を同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
例えば、図5(a)に示すように、車両1の出発地点である経路点P0では、点線および実線で示した10通りの仮の走行経路RT1が一つずつ順番に生成され、各走行経路RT1が生成される度に、駐車可能条件が成立しているかが判定される。しかし、何れの場合も駐車可能条件が成立しないので、次は、先ほど生成した10の各走行経路RT1ごとに、その終端から10通りの方向に走行経路を延長するように、仮の走行経路RT1を生成する。そして、それぞれ駐車可能条件が成立しているかを判定する。
以後同様に、別の走行経路の生成と、駐車可能条件の成立の判定とが繰り返され、図5(a)の例では、最終的には、経路点P0〜P6までの走行経路が生成され、経路点P6において、2つの駐車可能条件が成立する。
ここで、図5(b)を参照して、駐車可能条件が成立する経路点Pおよび車両方位θについて説明する。上述したとおり、1つ目の駐車可能条件は、車両1を経路点Pから同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
図5(b)は、駐車可能条件を説明するための模式図であり、経路点Pv0(xv0,yv0)は、駐車可能条件が成立しているかを判定する車両1の車両位置を示し、経路点PVn(xvn,yvn)は、運転者が目標とする駐車位置と示す。また、経路点Pv0における車両1の車両方位をθvと示し、経路点Pvnにおける車両1の車両方位をθpと示す。
経路点Pv0における車両方位θvと、経路点Pvnにおける車両方位θpとの変化量をΔθとした場合、その変化量Δθは、
Δθ=tan−1((yv0−yvn)/(xv0−xvn))
により算出できる。よって、経路点Pv0から経路点Pvnまでのx軸に平行な距離をPxとし、経路点Pv0から経路点Pvnまでのy軸に平行な距離をPyとすると、
Px=|((xv0−xvn)2+(yv0−yvn)2)1/2・cos(Δθ+π/2−θp)|
Py=|((xv0−xvn)2+(yv0−yvn)2)1/2・sin(Δθ+π/2−θp)|
により算出できる。また、車両1の旋回中心Kからy軸に向けて垂直に引いた直線と、車両1の旋回中心Kから車両1の経路点PV0に向けて引いた直線とのなす角度をθvpとした場合、その角度θvpは、
θvp=θv0−θvn
により算出できる。よって、これらの式から、車両1の旋回半径Rpを次の式で算出できる。
Rp=Px/(1−cos(θVp))
なお、この旋回半径Rpが車両1の最小旋回半径以上となる場合に、上述した1つ目の駐車可能条件が成立する。つまり、この式が1つ目の駐車可能条件である。そして、経路点Pv0から車両1の旋回中心Kまでのy軸に平行な距離をPryとした場合、距離Pryは、
Pry=Rp・sin(θvp)
により算出できる。ここで、駐車スペースの入り口から経路点Pvnまでのy軸に平行な距離をPLとすると、
Py−PL>Pry
が成立している場合にのみ、車両1を後退直進させて駐車スペースに進入させることができる。つまり、この式が2つ目の駐車可能条件である。走行制御装置100は、仮の走行経路RT1の終端に対応する経路点Pにおいて、上述した2つの駐車可能条件が成立していれば、仮の走行経路をパターン走行部RT1とし、後退旋回部RT2と、最終後退部RT3とを決定し、走行経路RT1〜RT3全体を生成する。
なお、後退旋回部RT2と、最終後退部RT3との接続位置に対応する経路点Pは、(xv0−Px,yv0−Pry)となるので、後退旋回部RT2を示す2つの経路点Pは、経路点PV0と、経路点P(xv0−Px,yv0−Pry)とになり、最終後退部RT3を示す2つの経路点Pは、経路点P(xv0−Px,yv0−Pry)と、経路点Pvnとになる。
次に、図6を参照して、走行支援装置100の詳細構成について説明する。図6は、走行支援装置100の電気的構成を示したブロック図である。走行支援装置100は、CPU91、フラッシュメモリ92及びRAM93を備え、それらがバスライン94を介して入出力ポート95に接続されている。また、入出力ポート95には、車輪駆動装置3、操舵駆動装置5、ステアリングセンサ装置21、ジャイロセンサ装置22、第1から第3までの各距離センサ23a〜23c、自動駐車スイッチ24及びその他の入出力装置99などが接続されている。
CPU91は、バスライン94によって接続された各部を制御する演算装置であり、フラッシュメモリ92は、CPU91によって実行される制御プログラムや固定値データ等を記憶するための書換不能な不揮発性のメモリである。なお、後述する図7のフローチャートに示す自動駐車処理、図8のフローチャートに示す点経路生成処理、図9のフローチャートに示すパターン走行部制御点生成処理、図11のフローチャートに示す後退旋回部制御点生成処理、図13のフローチャートに示す最終後退部制御点生成処理、図15のフローチャートに示す走行領域内確認処理を実行する各プログラムは、フラッシュメモリ92に格納されている。
また、フラッシュメモリ92には、車両情報メモリ92aと、障害物判定領域メモリ92bと、経路パターンメモリ92cと、判断条件式メモリ92dとが設けられている。車両情報メモリ92aは、車両1の車長Lと、車両1の横幅Wとが格納されている(図16(b)参照)。また、車両1の前後軸上であって、車両1の基準点から車両1の後面までの距離が、車両1の中心後面距離Lgとして格納されている(図16(b)参照)。また、車両1における前輪2FL,2FRの車軸と、車両1における後輪2RL,2RRの車軸との軸間距離が、ホイールベースWLとして格納されている(図示せず)。
障害物判定領域メモリ92bは、車両1の車両位置および車両方位が定められた場合に、その車両位置において車両1が占有する領域(以下、「障害物判定領域E」と称する)(図16(b)参照)を算出するための各種定数が格納されているメモリである。この障害物判定領域Eは、車両1全体を囲む矩形状の領域で構成されており、車両1の前後方向の距離が「L+ΔL」に設定され、車両1の側面方向の距離が「W+ΔW」に設定されている。
より具体的には、障害物判定領域Eは、車両1の前面および後面から、車両1の前方および後方にそれぞれ「ΔL/2」長く、車両1の左側面および右側面から、車両1の左側面方向および右側面方向にそれぞれ距離「ΔW/2」長い領域となっている。これは、車両1を障害物に接触させることなく安全に自律走行させるために設けられたマージンである。なお、本実施形態では、車両1そのものが走行中に占有する領域ではなく、車両1の障害物判定領域Eが走行中に占有する領域を、車両1の走行領域としている。
障害物判定領域メモリ92bには、障害物判定領域Eにおける車両1の進行方向の距離「L+ΔL」と、障害物判定領域Eにおける車両1の側面方向の距離「W+ΔW」とが格納されている。また、車両1の基準点から障害物判定領域Eにおける右前の頂点までの直線距離M1(図16(b)参照)と、その直線および車両1における左右の後輪2RL,2RRの車軸がなす角度αと、車両1の基準点から障害物判定領域Eにおける右後の頂点までの直線距離M2(図16(b)参照)と、その直線および車両1における左右の後輪2RL,2RRの車軸がなす角度βが格納されている。
詳細については後述するが、車両情報メモリ92aおよび障害物判定領域メモリ92bに格納されている各値は、車両1の車両位置および車両方位が定められた場合に、その車両位置に対応する障害物判定領域Eの4つの頂点の位置情報を算出するために、CPU91によって使用される。
経路パターンメモリ92cは、上述した10種類の経路パターンPT1〜PT10が格納されているメモリである。判断条件式メモリ92dは、走行経路RT1〜RT3上に障害物が存在するか否かを判定するために用いる判断条件式が16種類格納されているメモリである。判断条件式とは、走行制御点Qに対応する障害物判定領域E内に、障害物があるか無いかを判定するための一次不等式である。16種類の判断条件式の詳細については、図18を参照しつつ後述するが、走行制御点Qにおいて判断条件式が成立する場合には、走行制御点Qに対応する障害物判定領域E内に障害物があることを示し、判断条件式が不成立の場合には、障害物判定領域E内に障害物が無いことを示す。
本実施形態では、車両1を自律走行させる前に、走行経路RT1〜RT3上の各走行制御点Qごとに判断条件式を1種類選択し、その判断条件式を用いて障害物判定領域E内に障害物が入らないかを判定している。そして、全ての走行制御点Qの障害物判定領域E内に障害物が入らない場合には、その走行経路RT1〜RT3に沿って車両1を自律走行させ、目標とする駐車に車両1を停車させる。なお、何れかの走行制御点Qの障害物判定領域E内に障害物が入る場合には、別の走行経路が生成されて、再度、全ての走行制御点Qの障害物判定領域E内に障害物が入らないかの判定がなされる。
一般的に、走行経路RT1〜RT3上に障害物が存在するか否かは、実際に車両1を走行させて、車両1の走行中にその車両1の障害物判定領域Eの中に障害物が入ったか否かなどにより判定される。この場合、障害物判定領域Eは、車両1の車両位置を基準に設定されるので、車両1から見ると、走行中や停車中に関わらず障害物判定領域Eは常に同じ位置に固定された状態となる。
しかしながら、本実施形態のように、自律走行を開始する前に、走行経路RT1〜RT3上に障害物が存在するか否かを確認する場合は、自律走行を開始する前の車両1から見ると、車両1が走行する予定の車両位置および車両方位に応じて障害物判定領域Eが適宜回転することになる。よって、走行経路RT1〜RT3上の車両位置および車両方位に応じて、障害物判定領域Eを算出し、その障害物判定領域E内に障害物が存在するかを判定していく。
本実施形態では、その判定処理を簡略化するために、障害物判定領域E内に障害物が存在するかを判定するための一次不等式を判断条件式として16種類設けており、それらを判断条件式メモリ92dに記憶している。
16種類の判断条件式の詳細については、図18を参照しつつ後述するが、判断条件式を用いて判定を行う場合には、走行制御点Qにおける車両1の車両方位θvと、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置情報I1〜I4とに応じて、16種類の条件式の中から1種類の判断条件式を選択し、その選択した判断条件式の中に、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置に基づく定数a12,a23,a34,a41,b12,b23,b34,b41と、障害物の位置情報とを代入する。そして、代入した結果、判断条件式が成立する場合には、障害物判定領域E内に障害物が存在すると判定し、判断条件式が不成立の場合には、障害物が存在しないと判定する。このように、予め判断条件式を設けておくことにより、障害物判定領域E内に障害物が存在するか否かを判定する処理を単純化できるので、制御的負担を軽減できる。
RAM93は、書換可能な揮発性のメモリであり、CPU91によって実行される制御プログラムの実行時に各種のデータを一時的に記憶するためのメモリである。RAM93には、車両周囲情報メモリ93aと、点経路パターンメモリ93bと、点経路メモリ93cと、走行制御点メモリ93dとが設けられている。
車両周囲情報メモリ93aは、車両1の周囲に存在する障害物の位置情報が記憶されるメモリである。本実施形態では、第1から第3までの各距離センサ23a〜23cから出力される走査結果が、CPU91により一つの走査結果に合成されて、車両1の全周囲の走査結果が作成される。そして、その車両1の全周囲の走査結果が、車両周囲情報メモリ93aに記憶される。なお、車両周囲情報メモリ93aに記憶される走査結果は、各距離センサ23a〜23cによる走査が終了する度(例えば、100ms)に更新される。
車両周囲情報メモリ93aに記憶される走査結果は、走行支援装置100が現在位置から目標とする駐車位置まで車両1を自律走行させる場合に、その自律走行を開始する前に、その走行経路上に障害物が存在しないことを確認するために参照される(図15参照)。
点経路パターンメモリ93bは、パターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせが記憶されるメモリである。点経路パターンメモリ93bは、後述する自動駐車処理(図7参照)が実行された場合に、CPU91によりクリアされる。そして、現在位置から目標とする駐車位置までの走行経路RT1〜RT3全体がCPU91により生成される度に、そのパターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせが記憶される。
この点経路パターンメモリ93bに記憶される経路パターン番号「PT1〜PT10」の組み合わせは、走行経路RT1〜RT3上の各経路点Pにおいて、車両1が前進しているか後進しているかの状態を取得する場合や、切り返しの有無の状態を取得する場合に参照される(図9のS59、図11のS80、図13のS99参照)。また、パターン走行部RT1における経路点Pの位置を算出する場合にも参照される(図4参照)。
点経路メモリ93cは、走行経路RT1〜RT3を示す各経路点Pの経路点情報が記憶されるメモリである。上述したように、経路点情報は、経路点Pにおける車両1の車両位置と、経路点Pにおける車両1の車両方位θにより構成されている。また、上述したように、走行経路RT1〜RT3のうち、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。また、後退旋回部RT2および最終後退部RT3では、各走行経路RT2,RT3の始端および終端を、経路点Pとしている。
CPU91は、走行経路RT1〜RT3全体を生成した場合に、パターン走行部RT1における経路点Pの経路点情報と、後退旋回部RT2における経路点Pの経路点情報と、最終後退部RT3における経路点Pの経路点情報とをそれぞれ点経路メモリ93cに記憶する(図8のS44参照)。この点経路メモリ93cに記憶されている各経路点Pの経路点情報は、走行制御点Qを生成するために参照される。
走行制御点メモリ93dは、走行経路RT1〜RT3に対して生成される点である各走行制御点Qの車両設定情報が記憶されるメモリである。上述したように、走行制御点Qは、走行支援装置100が車両1を走行経路RT1〜RT3に沿って自律走行させる場合に、進行方向などの車両1の走行状態を制御するための点である。
本実施形態では、走行経路RT1〜RT3に対して走行制御点Qが生成される場合、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qが生成される(図7のS7,S8,S9参照)。また、各走行制御点Qごとに、車両設定情報が生成され、生成された各走行制御点Qの車両設定情報は、この走行制御点メモリ93dにそれぞれ記憶される。なお、経路点P0(車両1の現在位置)を除く各経路点P上には、必ず走行制御点Qが生成される。
各走行制御点Qの車両設定情報は、走行制御点Qにおける車両1の車両位置と、走行制御点Qにおける車両1の車両方位と、走行制御点Qにおける車両1の操舵角δと、走行制御点Qにおける進行方向フラグと、走行制御点Qにおける切り返し判定フラグとにより構成される。CPU91は、自律走行を開始したら、走行制御点Qに到達する度に、その到達した走行制御点Qの車両設定情報に基づいて車両1の走行状態を設定し、目標とする駐車位置まで車両1を走行させる。
進行方向フラグは、走行制御点Qにおいて車両1が前進するか、後退するかを示すフラグであり、走行制御点Qにおいて車両1が前進する場合には「1」に設定される一方、車両1が後退する場合には「−1」に設定される。切り返し判定フラグは、走行制御点Qにおいて車両1が前進または後退を切り替えるかを示すフラグであり、走行制御点Qにおいて車両1が前進または後退を維持し走行する場合にはオフに設定される一方、車両1が前進を後退に切り替える場合や、車両1が後退を前進に切り替える場合にオンに設定される。
走行制御点メモリ93dに記憶される各走行制御点Qの車両設定情報は、走行経路RT1〜RT3上に障害物が存在するか否かを判定する場合に、CPU91により参照される。詳細については後述するが、いずれかの走行制御点Qについて、障害物判定領域E内に障害物が存在するとCPU91により判定されると、この走行制御点メモリ93dはクリアされる。
次に、図7〜図19までのフローチャートと、模式図とを参照して、車両1に搭載された走行支援装置100のCPU91により実行される自動駐車処理について説明する。図7は、走行支援装置100により実行される自動駐車処理を示すフローチャートである。自動駐車処理は、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものであり、運転者により自動駐車スイッチ24が押下された場合に実行される。
自動駐車処理では、まず、RAM93の点経路パターンメモリ93bをクリアする(S1)。次に、運転者が目標とする駐車位置を最終目的地として取得し、その最終目的地に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oに決定する(S2)。例えば、車両1の車内に設けられているタッチパネル(図示せず)上に、車両1の周囲画像を表示し、運転者に駐車位置を入力するように報知する。そして、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を算出して、原点Oとする。
次に、現在地点を出発地点として(S3)、点経路生成処理を実行する(S4)。ここで、図8を参照して、車両1に搭載された走行支援装置100のCPU91により実行される点経路生成処理について説明する。図8は、走行支援装置100により実行される点経路生成処理を示すフローチャートである。点経路生成処理は、出発地点から最終目的地までの走行経路RT1〜RT3全体を生成するための処理である。
点経路生成処理では、RAM93の点経路パターンメモリ93bに、経路パターン番号「PT1〜PT10」が記憶されているかを判定する(S31)。S31の判定が否定される場合には(S31:No)、変数aに0を設定し、変数mに6を設定して、変数a,mの初期設定を行い(S32)、S33の処理へ移行する。一方、S31の判定が肯定される場合は(S31:Yes)、自動駐車処理を実行開始した後、点経路生成処理により走行経路RT1〜RT3が生成されたが、その走行経路RT1〜RT3上に障害物が有ったため、別の走行経路RT1〜RT3を生成することになった場合である。よって、この場合は、S32の処理をスキップし、S33の処理へ移行する。
S33の処理では、10の経路パターン番号「PT1〜PT10」のうち、重複を許すa個の経路パターン番号で構成される重複順列の中から、順列を一つ取得する(S33)。なお、ここでは、経路パターン番号の小さいものから順に、重複順列を一つずつ取得する。例えば、a=0の場合には何も取得されず、a=1の場合の1番目には「PT1」が取得され、2番目には「PT2」が取得され、以下同様に重複順列が取得される。また、a=2の場合の1番目には「PT1,PT1」が取得され、2番目には「PT1,PT2」が取得され、3番目には「PT1,PT3」が取得され、以下同様に重複順列が取得され、a=6の場合の最後には「PT10,PT10,PT10,PT10,PT10,PT10」が取得される。
次に、S33の処理で取得した重複順列に対応する走行経路RT1を生成し、その到着地点を取得する(S34)。なお、上述したように、本実施形態では、走行経路を示す経路点Pが生成される。そして、到着地点において、駐車可能条件が成立しているかを判定する(S35)。
尚、本実施形態では、S32の処理において、a=1と初期設定せずに、a=0と初期設定を行っている。これは、S35の処理により、出発地点において駐車可能条件が成立しているかを判定するためである。もし、a=1と初期設定すると、必ず走行経路RT1を生成することになり、出発地点において駐車可能条件が成立する場合には、無駄な走行経路RT1を生成してしまう。よって、a=0と初期設定することにより、無駄な走行経路RT1の生成を抑制でき、処理コストを抑制できる。
S35の判定が否定される場合には(S35:No)、a個の経路パターン番号で構成される重複順列を全て取得したかを判定する(S36)。S36の判定が否定される場合には(S36:No)、S33の処理に戻る。S36の判定が肯定される場合には(S36:Yes)、変数aの値が、変数mの値未満であるかを判定する(S37)。S37の判定が肯定される場合には(S37:Yes)、変数aに1を加算して(S38)、S33の処理に戻る。
S37の判定が否定される場合は(S37:No)、予め規定していた重複順列を全て取得したが、走行経路RT1〜RT3が見つからなかった場合なので、RAM93の点経路メモリ93cをクリアして(S39)、点経路生成処理を終了し、自動駐車処理(図7参照)に戻る。
一方、S35の判定が肯定される場合には(S35:Yes)、S33の処理で取得した経路パターン番号の重複順列を、RAM93の点経路パターンメモリ93bに記憶し(S40)、S34の処理で生成した走行経路(経路点P)を、パターン走行部RT1とする(S41)。
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S42)、最終後退部RT3の経路点Pを決定する(S43)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位)を点経路メモリ93cに記憶して(S44)、点経路生成処理を終了し、自動駐車処理(図7参照)に戻る。
ここで、図7の説明に戻る。点経路生成処理(S4)が終了したら、次に、S4の処理によって走行経路RT1〜RT3が生成されたかを判定する(S5)。S5の判定が否定される場合は(S5:No)、最終目的地までの走行経路が見つからなかった場合なので、最終目的地までの走行経路が無いことを運転者に報知して(S11)、自動駐車処理を終了する。
一方、S5の判定が肯定される場合には(S5:Yes)、パターン走行部制御点生成処理(S6)、後退旋回部制御点生成処理(S7)、及び、最終後退部制御点生成処理(S8)を順番に実行して、S4の処理で生成された走行経路RT1〜RT3に対する走行制御点Qを生成する。
このように、本実施形態では、上述した点経路生成処理(S4)が実行され、走行経路RT1〜RT3が生成された場合(S5:Yesの場合)に限り、S6〜S8の各処理が実行されて、走行経路RT1〜RT3に対する走行制御点Qが生成される。
よって、目標とする駐車位置に車両1が到達できない走行経路RT1が生成された場合には、走行制御点Qを生成する処理は実行されない。従って、目標とする駐車位置まで車両1を自律走行させるために関係のない無駄な処理が実行されることを抑制できる。
また、図2を参照して上述したように、本実施形態では、走行経路RT1〜RT3上のうち、各経路点Pに対応する位置だけでなく、各経路点P間にも仮想的に走行制御点Qを生成している。理想的には、各経路点P間に対応する位置にだけ仮想的に走行制御点Qを生成し、その走行制御点Qに基づいて車両1を自律走行させれば、車両1が走行経路RT1〜RT3上を走行できるが、実際には、路面の状況や、車両1の搭乗者数や荷重などの様々な外乱により、走行経路RT1〜RT3上から車両位置がズレてしまう場合がある。
そこで、本実施形態では、各経路点Pに対応する位置に加え、各経路点P間にも仮想的に走行制御点Qを生成し、各走行制御点Qごとに、進行方向などの車両1の走行状態を補正できるようにしている。よって、走行支援装置100が、車両1を自律走行させて走行経路RT1〜RT3上を走行させる場合に、走行経路RT1〜RT3上を車両1がスムーズに走行できるように、車両1の走行状態を制御できる。
ここで、図9〜図14を参照して、パターン走行部制御点生成処理(S6)、後退旋回部制御点生成処理(S7)、最終後退部制御点生成処理(S8)について説明する。
まず、図9を参照して、パターン走行部制御点生成処理(S6)について説明する。図9は、走行支援装置100により実行されるパターン走行部制御点生成処理を示すフローチャートである。
パターン走行部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、パターン走行部RT1に対する走行制御点Qを生成するための処理であり、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成する。パターン走行部RT1では、隣接する経路点P間の走行距離CLが全て2mとなるので、隣接する経路点P間には常に41個の走行制御点Qが必要となるが、このパターン走行部制御点生成処理では、40個の走行制御点Qを生成する。
より具体的には、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから一つ第2経路点Pよりに1番目の走行制御点Qを生成する。そして、順番に走行制御点Qを生成し、40番目の走行制御点Qが第2経路点Pに重なるようにしている。
パターン走行部制御点生成処理では、まず、変数jに0を設定し、変数nに40を設定して、変数a,nの初期設定を行う(S51)。次に、出発地点からj番目の経路点Pを第1経路点Pとし、(j+1)番目の経路点Pを第2経路点Pとする(S52)。例えば、図2に示す走行経路RT1では、経路点PがP0〜P6まで7個設けられている。ここで、変数jが0の場合には、経路点P0を第1経路点Pとし、経路点P1を第2経路点Pとする。
次に、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93cから取得し(S53)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93cから取得する(S54)。
そして、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S55)。S55の処理では、点経路パターンメモリ93b記憶されている経路パターン番号の重複順列に基づいて、操舵角δと、旋回中心Kと、旋回半径Rとをそれぞれ算出する。パターン走行部RT1は、経路パターンPT1〜PT10に対応する走行経路を繋ぎ合わせたものなので、走行距離CLと、旋回半径Rとがそもそも決まっており、その結果、操舵角δと、旋回中心Kと、旋回半径Rとがそれぞれ一意に定まる。なお、車両1の旋回半径をRとし、車両1のホイールベースをWLとした場合、車両1の操舵角δは、
δ=tan−1(WL/R)
により算出される。また、車両1が第1経路点Pから第2経路点Pへ移動した場合の車両方位の変化量Δθを算出する(S56)。なお、変化量Δθを算出する式については後述する。
変数iを1に設定して、変数iの初期設定を行う(S57)。次に、第1経路点Pから第2経路点Pまでの経路上に設ける各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S58)。なお、1番目の走行制御点Qは、第1経路点Pから一つ第2経路点Pよりの走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
ここで、図10を参照して、パターン走行部RT1に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図10は、走行経路RT1〜RT3のうち、パターン走行部RT1に対して生成される走行制御点Qの一例を説明するための模式図であり、隣接している2つの経路点P間を図示したものである。ここでは、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(xvn,yvn)と示している。
パターン走行部RT1は、経路パターンPT1〜PT10に対応する走行経路に基づいて生成されるものなので、走行距離CLと、旋回半径Rとがそもそも決まっている。よって、車両1が第1経路点Pv0から第2経路Pvnへ移動する場合の、旋回半径Rと、旋回中心K(xk,yk)とが予め定まる。また、第1経路点Pv0から第2経路Pvnまでの車両1の走行距離CLは全て2mとなる。従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位θvnとの変化量をΔθとした場合、その変化量Δθは、
Δθ=CL/R
により算出される。図9のS56の処理では、この式により変化量Δθを算出する。そして、第1経路点Pからi番目の走行制御点をQ(xvi,yvi)とし、その車両方位をθiとすると、
θi=i・Δθ/40
xvi=xk+R・cos(θv0−π/2+θi)
yvi=yk+R・sin(θv0−π/2+θi)
により算出される。ここで、第1経路点Pから1番目の走行制御点Qは、第1経路点Pから一つ第2経路点Pよりの走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
以上の図10を参照して説明した数式を用いることにより、パターン走行部RT1の各経路点P間において、40個の走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、パターン走行部RT1に対応する各走行制御点Qを全て生成できる。
本実施形態では、経路パターンPT1〜PT10の組み合わせに基づいて、2m間隔で大まかに経路点Pを生成し走行経路RT1を生成しても、その後、走行経路RT1の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。また、詳細については後述するが、走行経路RT2,RT3についても、走行経路RT2,RT3の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。
従って、経路パターンPT1〜PT10に対応する各走行経路の長さCLを短く(例えば、0.05mなど)しておき、詳細に走行経路RT1を生成したり、経路パターンPT1〜PT10のパターンの種類を多数設けて記憶しておく必要が無いので、処理コストを抑制できる。故に、走行支援装置100によれば、少ない処理コストで初期位置から目標位置までの車両の走行経路RT1〜RT3を運転者に提供できる。
ここで、図9の説明に戻る。そして、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後進)と、切り返しの有無とを取得する(S59)。S59の処理において、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、第2経路点Pに重なる走行制御点Qを除き、第1経路点Pの進行方向と同じ方向(前進または後退)を示す値が取得される。また、切り返しの有無は、第2経路点Pに重なる走行制御点Qを除き、切り返しなしを示す値が取得される。
なお、第2経路点Pと重なる走行制御点Qについては、進行方向および切り返しの有無が、点経路パターンメモリ93bの内容に基づいて取得される。より具体的には、第2経路点Pからその次の経路点Pに向かう経路パターンPT1〜PT10が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であれば、第2経路点Pに重なる走行制御点Qの進行方向として、前進を示す値が取得される。一方、車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、第2経路点Pに重なる走行制御点Qの進行方向として、後退を示す値が取得される。
また、第1経路点Pから第2経路点Pへ向かう経路パターンPT1〜PT10と、第2経路点Pからその次の経路点Pに向かう経路パターンPT1〜PT10とが共に、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8、又は、車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、第2経路点Pに重なる走行制御点Qの切り返しの有無として、切り返しなしを示す値が取得される。
一方、第1経路点Pから第2経路点Pへ向かう経路パターンPT1〜PT10と、第2経路点Pからその次の経路点Pに向かう経路パターンPT1〜PT10との一方が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であり、他方が車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、第2経路点Pに重なる走行制御点Qの切り返しの有無として、切り返しありを示す値が取得される。
S59の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)を、RAM93の走行制御点メモリ93dに記憶する(S60)。なお、S59の処理において、進行方向として前進を示す値が取得されていれば、ここでは、進行方向フラグが「1」に設定され、進行方向として後退を示す値が取得されていれば、進行方向フラグが「−1」に設定される。
また、S59の処理において、切り返しの有無として切り返しなしを示す値が取得されていれば、ここでは、切り返しフラグがオフに設定され、切り返しの有無として切り返しありを示す値が取得されていれば、切り返しフラグがオンに設定される。
また、S60の処理において、走行制御点Qの車両設定情報を走行制御点メモリ93dに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
S60の処理が終了したら、次に、変数iの値が、変数nの値未満であるかを判定し(S61)、S61の判定が肯定される場合には(S61:Yes)、変数iに1を加算して(S62)、S58の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、40個の走行制御点Qを順番に生成する。
一方、S61の判定が否定される場合は(S61:No)、第1経路点Pから第2経路点Pの間に、40個の走行制御点Qを設定した場合なので、パターン走行部RT1の走行制御点Qを全て生成したかを判定する(S63)。
S63の判定が否定される場合には(S63:No)、変数jに1を加算して(S64)、S52の処理に戻り、次の経路点P間についても、40個の走行制御点Qを生成する。S63の判定が肯定される場合には(S63:Yes)、パターン走行部制御点生成処理(S6)を終了して、自動駐車処理(図7参照)に戻る。
次に、図11を参照して、後退旋回部制御点生成処理(S7)について説明する。図11は、走行支援装置100により実行される後退旋回部制御点生成処理を示すフローチャートである。
後退旋回部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、後退旋回部RT2に対する走行制御点Qを生成するための処理であり、後退旋回部RT2を示す2つの各経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、後退旋回部RT2は、パターン走行部RT1のように走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
尚、後退旋回部制御点生成処理でも、パターン走行部制御点生成処理(図9参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから一つ第2経路点Pよりに1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
後退旋回部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、後退旋回部RT2を示す2つの各経路点Pを特定する(S71)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P6と、経路点P7とが特定される。
次に、特定した2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとする(S72)。そして、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93cから取得し(S73)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93cから取得する(S74)。
次に、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S75)。なお、ここでの車両1の旋回中心Kと、車両1の旋回半径Rは、駐車可能条件が成立した場合に算出された旋回中心Kと、旋回半径Rpとである。そして、車両1の旋回半径をRとし、車両1のホイールベースをWLとした場合、車両1の操舵角δは、
δ=tan−1(WL/R)
により算出される。また、車両1が第1経路点Pから第2経路点Pへ移動した場合の車両方位の変化量Δθを算出する(S76)。なお、変化量Δθを算出する式については後述する。
そして、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S77)。なお、走行制御点Qの数を算出する数式についても後述する。
次に、変数iを1に設定して、変数iの初期設定を行う(S78)。そして、第1経路点Pから第2経路点Pまでの走行経路に対して生成する各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S79)。なお、1番目の走行制御点Qは、第1経路点Pから一つ第2経路点P寄りの走行制御点Qとなり、n番目の走行制御点Qは、第2経路点Pに重なるようにしている。
ここで、図12を参照して、後退旋回部RT2に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図12は、走行経路RT1〜RT3のうち、後退旋回部RT2に対して生成される走行制御点Qの一例を説明するための模式図であり、後退旋回部RT2を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(0,yvn)と示している。なお、第2経路点Pvnでは、車両1の前後軸がy軸と必ず重なるため、x値が0になると共に車両方位がπ/2となる。
後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に、車両1が同一の操舵角δで後退旋回するように走行経路が決定される(図8のS42参照)。よって、後退旋回部RT2が決定された場合には、その旋回中心K(xk,yk)と、旋回半径Rとが確定する。
従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位π/2との変化量をΔθとした場合、その変化量Δθは、
Δθ=θv0−π/2
により算出される。図11のS77の処理では、この式により変化量Δθを算出する。そして、第1経路点Pv0から第2経路点Pvnまでの走行距離CLは、
CL=R・Δθ
により算出される。故に、第1経路点Pv0から第2経路点Pvnまでの間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=R・Δθ/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図11のS77の処理では、この式により算出される合計数nを、変数nに代入している。そして、第1経路点Pv0からi番目の走行制御点をQ(xvi,yvi)とし、その車両方位をθiとすると、
θi=Δθ・(n−i)/n
xvi=xk+R・cos(θi)
yvi=yk+R・sin(θi)
により算出される。ここで、第1経路点Pv0から1番目の走行制御点Qは、第1経路点Pv0から一つ第2経路点P寄りの走行制御点Qとなり、第1経路点Pv0からn番目の走行制御点Qは、第2経路点Pvnと重なるようにしている。
以上の図12を参照して説明した数式を用いることにより、後退旋回部RT2の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、後退旋回部RT2に対応する各走行制御点Qを全て生成できる。
ここで、図11の説明に戻る。次に、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後進)と、切り返しの有無とを取得する(S80)。なお、S80の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。
S80の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)を、RAM93の走行制御点メモリ93dに記憶する(S81)。なお、ここでは、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93dに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
次に、変数iの値が、変数nの値未満であるかを判定し(S82)、S82の判定が肯定される場合には(S82:Yes)、変数iに1を加算して(S83)、S79の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S82の判定が否定される場合は(S82:No)、n個の走行制御点Qを全て生成した場合なので、後退旋回部制御点生成処理(S7)を終了して、自動駐車処理(図7参照)に戻る。
次に、図13を参照して、最終後退部制御点生成処理(S8)について説明する。図13は、走行支援装置100により実行される最終後退部制御点生成処理を示すフローチャートである。
最終後退部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、最終後退部RT3に対する走行制御点Qを生成するための処理であり、最終後退部RT3を示す2つの経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、最終後退部RT3は、後退旋回部RT2と同様に走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
尚、最終後退部制御点生成処理でも、パターン走行部制御点生成処理(図9参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから一つ第2経路点Pよりに1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
最終後退部制御点生成処理におけるS92〜S95の各処理は、上述した図11の後退旋回部制御点生成処理におけるS72〜S75の各処理と同様な処理であり、最終後退部制御点生成処理におけるS97〜S102の各処理は、上述した図11の後退旋回部制御点生成処理におけるS78〜S83の各処理と同様な処理である。よって、同様な処理についてはその説明を省略し、異なる部分についてのみ説明する。
最終後退部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、最終後退部RT3を示す2つの各経路点Pを特定する(S91)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P7と、経路点P8とが特定される。そして、S92〜S95の各処理を実行し、次に、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S96)。なお、走行制御点Qの数を算出する数式については後述する。
そして、S97〜101の各処理を実行する。なお、最終後退部RT3では、車両1の前後軸がy軸と必ず重なる状態で、車両1が後退直進するため、車両方位が常にπ/2となる。よって、S99の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て0が取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。よって、S100の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。
そして、S101の判定が肯定される場合には(S101:Yes)、S102の処理を実行して、S98の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S101の判定が否定される場合は(S101:No)、n個の走行制御点Qを全て生成した場合なので、最終後退部制御点生成処理(S8)を終了して、自動駐車処理(図7参照)に戻る。
ここで、図14を参照して、最終後退部RT3に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図14は、走行経路RT1〜RT3のうち、最終後退部RT3に対して生成される走行制御点Qの一例を説明するための模式図であり、最終後退部RT3を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pv0(xv0,yv0)と示し、最終目的地に近い側の経路点Pを第2経路点Pvn(xvn,yvn)と示している。
なお、第1経路点Pv0および第2経路点Pvnでは共に、車両1の前後軸がy軸と必ず重なるため、x値が0になり、車両方位がπ/2になり、操舵角δが0になる。
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置に、車両1を後退直進させて停車できるように走行経路が決定される(図8のS43参照)。よって、第1経路点Pv0(xv0,yv0)から第2経路点Pvn(xvn,yvn)までの走行距離CLは、
CL=((xv0−xvn)2+(yv0−yvn)2)1/2
により算出される。なお、本実施形態では、xv0およびxvnが共に0なので、「CL=|yv0−yvn|」として算出しても良い。
従って、第1経路点Pv0から第2経路点Pvnまで間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=CL/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図13のS96の処理では、この式により算出される合計数nを、変数nに代入している。そして、第1経路点Pv0からi番目の走行制御点をQ(xvi,yvi)とし、その車両方位をθiとすると、
θi=π/2
xvi=0
yvi=yv0−0.05・n
により算出される。ここで、第1経路点Pv0から1番目の走行制御点Qは、第1経路点Pから一つ第2経路点P寄りの走行制御点Qとなり、第1経路点Pv0からn番目の走行制御点Qは、第2経路点Pvnと重なるようにしている。
以上の図14を参照して説明した数式を用いることにより、最終後退部RT3の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、最終後退部RT3に対応する各走行制御点Qを全て生成できる。
ここで、図7の説明に戻る。S6〜S8の処理が実行され、各走行経路RT1〜RT3に対する走行制御点Qが生成されたら、次に、走行領域内確認処理を実行する(S9)。ここで、図15〜19を参照して、走行領域内確認処理(S9)について説明する。図15は、走行支援装置100により実行される走行領域内確認処理を示すフローチャートである。
走行領域内確認処理は、各走行経路RT1〜RT3に対する走行制御点Qが生成された場合に、走行経路RT1〜RT3上に障害物が存在していないかを確認する処理であり、走行制御点Qを車両1の車両位置とし、その車両1の障害物判定領域E内に障害物が存在するか否かを、各走行制御点Qについて確認する。
ここで、図16(a)を参照して、各走行制御点Qにおける障害物判定領域Eについて説明する。図16(a)は、各走行制御点Qにおける障害物判定領域Eの一例を説明するための模式図であり、一部の走行制御点Qについて、車両1の進行方向を矢印で示している。また、図16(a)では、一例として、経路点P0と位置が重なる走行制御点Qの障害物判定領域Eを示している。
本実施形態では、車両1の車両位置と、車両1の進行方向(即ち、車両方位θ)とが定まると、障害物判定領域Eが決まる(図16(b)参照)。しかしながら、図16(a)に示すように、車両1の進行方向(即ち、車両方位θ)は、走行制御点Qごとに変わるので、障害物判定領域Eは、各走行制御点Qごとに適宜回転することになる。よって、本実施形態では、走行経路RT1〜RT3上の各走行制御点Qごとに、障害物判定領域Eを算出し、その障害物判定領域E内に障害物が存在するかを判定していく。
一般的に、走行経路RT1〜RT3に障害物が存在するか否かは、実際に車両1を走行させて、運転者が視認により確認するか、または、実際に車両1を走行させて、車両1の周囲に設定される障害物監視領域Eの中に障害物が入ったか否かで判定していた。しかし共に、実際に車両1を走行させて、走行経路RT1〜RT3を走行しない限り、走行経路RT1〜RT3上に障害物が存在するか否かは判らない。よって、目標とする駐車位置まで到着できるかどうかは不明であった。
対して、本実施形態では、走行領域内確認処理(S9)を実行して、車両1を自律走行させる前に、走行経路RT1〜RT3上に障害物が存在するか否かを判定している。そして、S9の処理による確認の結果、走行経路RT1〜RT3上に障害物が存在しなければ、生成した走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車に車両1を停車させる。
ここで、図15の説明に戻る。走行領域内確認処理(S9)では、まず、RAM93の車両周囲情報メモリ93aに記憶されている障害物の位置情報を全て取得する(S111)。そして、車両情報メモリ92aから車両情報を取得し(S112)、障害物判定領域Eを算出するための各種定数を障害物判定領域メモリ92bから取得する(S113)。
次に、出発地点に対応する走行制御点Qを走行可否判定点とし(S114)、走行制御点メモリ93dから、走行可否判定点の車両設定情報である車両位置および車両方位を取得する(S115)。そして、走行可否判定点における障害物判定領域Eの位置を示す4つの頂点を算出する(S116)。
なお、S116の処理では、障害物判定領域Eの4つの頂点と共に、障害物判定領域Eの4つの頂点の位置に基づく定数a12,a23,a34,a41,b12,b23,b34,b41も算出する。これらの定数の詳細については後述するが、ここで算出された定数は、S119の処理において判断条件式に代入される。
ここで、図16(b)および図16(c)を参照して、障害物判定領域Eの位置を示す4つの頂点について説明する。図16(b)は、車両1の形状と、障害物判定領域Eの形状との一例を示す模式図であり、図16(c)は、車両1の車両位置および車両方位が定められた場合に、その車両1の障害物判定領域Eを算出する方法を説明するための模式図である。図16(b),(c)では、車両1の車両位置をPiと示し、車両1の進行方向を車両位置Piから延びる直線の矢印で示し、車両1の車両方位をθVと示している。なお、上述したように、車両1の車両位置Piは、車両1の基準点の位置である。
図16(b)に示すように、障害物判定領域Eは、車両1の車両位置Piおよび車両方位(車両1の進行方向)を基準として、車両1全体を囲む矩形状の領域で構成されている。より具体的には、障害物判定領域Eは、車両1の進行方向の距離が「L+ΔL」に設定されており、車両1の側面方向の距離が「W+ΔW」に設定されている。この障害物判定領域Eは、車両1の前面および後面から、車両1の前方および後方にそれぞれ「ΔL/2」長く、車両1の左側面および右側面から、車両1の左方向および右方向にそれぞれ距離「ΔW/2」長い。
ここで、車両1の前後軸上であって、車両1の車両位置(車両1の基準点)Piから障害物判定領域Eの後端までの距離を中心後端距離Lgすると、障害物判定領域Eの4つの頂点のうち車両1の右前方の頂点から、車両1の車両位置(車両1の基準点)Piまでの直線距離M1と、その直線およびx軸がなす角度αとは、
M1=((L+ΔL−Lg)2+((W+ΔW)/2)2)1/2
α=tan−1((L+ΔL−Lg)/((W+ΔW)/2))
により算出される。M1およびαは、予め算出されて障害物判定領域メモリ92b(図6参照)に格納されている。また、障害物判定領域Eの4つの頂点のうち車両1の右後方の頂点から、車両1の車両位置(車両1の基準点)Piまでの直線距離M2と、その直線およびx軸がなす角度βとは、
M2=(Lg2+((W+ΔW)/2)2)1/2
β=tan−1(Lg/((W+ΔW)/2))
により算出される。M2およびβも、予め算出されて障害物判定領域メモリ92b(図6参照)に格納されている。よって、図16(c)に示すように、車両1の車両位置をPi(xv、yv)とし、その車両方位をθvとすると、障害物判定領域Eの位置を示す4つの頂点のうち、車両1の右前方に位置する頂点I1(xi1,yi1)は、
xi1=xv+M1・cos(θv−(π/2−α))
yi1=yv+M1・sin(θv−(π/2−α))
により算出できる。以下同様に、障害物判定領域Eの位置を示す4つの頂点のうち、車両1の左前方に位置する頂点をI2(xi2,yi2)は、
xi2=xv+M1・cos(θv+(π/2−α))
yi2=yv+M1・sin(θv+(π/2−α))
により算出できる。また、車両1の左後方に位置する頂点I3(xi3,yi3)は、
xi3=xv+M2・cos(θv+(π/2+β))
yi3=yv+M2・sin(θv+(π/2+β))
により算出できる。また、車両1の右後方に位置する頂点I4(xi4,yi4)は、
xi4=xv+M2・cos(θv+(3π/2−β))
yi4=yv+M2・sin(θv+(3π/2−β))
により算出できる。以上の図16(b)および図16(c)を参照して説明した数式を用いることにより、車両1の車両位置および車両方位が定められた場合に、その車両1の障害物判定領域Eの位置を示す4つの頂点をそれぞれ算出できる。
上述したように、本実施形態では、障害物判定領域Eを矩形状の領域としている。障害物判定領域Eを複雑な形状とした場合には、障害物判定領域Eの境界を求めなければならないので処理が複雑となるが、障害物判定領域Eを矩形状としているので、4つの頂点を算出するだけで、車両1の障害物判定領域Eの位置を容易に算出して取得でき、処理コストを抑制できる。
なお、走行制御点Qを車両1の車両位置とし、障害物判定領域Eの4つの頂点が算出されると、走行経路RT1〜RT3上に障害物が存在するか否かを判定する処理として、その車両1の障害物判定領域E内に障害物が存在するか否かがCPU91により判定される。この判定は、各走行制御点Qごとに実行される。
ここで、図17を参照して、走行経路RT1〜RT3上に障害物が存在するか否かを判定する方法について説明する。図17(a)は、車両1が実際に走行する走行領域F1の一例を示す模式図であり、図17(b)は、同心円により形成される帯状の領域を車両の走行領域F2とみなす場合の一例を示す模式図である。図17(c)は、各走行制御点Qごとの障害物判定領域Eを足し合わせた領域を車両1の走行領域F3をみなす場合の一例を示す模式図であり、図17(d)は、各走行制御点Qの間隔を狭くした場合の車両1の走行領域F4の一例を説明するための模式図である。
図17(a)〜図17(d)は、経路点Piから次の経路点Pi+1まで車両1を走行させた場合に、その走行に伴って移動する車両1の障害物判定領域Eを示している。なお、何れの場合も、旋回中心Kと、旋回半径Rは同一とする。
上述したように、本実施形態では、車両1の障害物判定領域Eが走行中に占有する領域を、車両1の走行領域としているため、経路点Piから次の経路点Pi+1まで車両1を実際に走行させると、その走行領域F1は、図17(a)に示すような形状となる。なお、緩やかに膨らんでいる領域G1は、車両1の操舵角δを変化させた場合に、車両1の構造上生じる領域であり、車両1を右旋回させたことで、障害物判定領域Eのうち左後方の頂点I3が、外側(図面に向かって左)に移動するために生じる領域である。
このように、車両1の実際の走行領域F1を演算するためには、車両1の操舵角δ(進行方向)が同一となる区間を求め、その区間ごとに、走行領域を算出しなければならず、演算量が膨大または演算が複雑になる恐れがある。よって、走行経路RT1〜RT3の全体に亘って、実際の走行領域F1を算出する場合は、CPU91に大きな負荷を掛けてしまうと共に、算出できるまで時間が掛かる恐れがある。
一方、走行領域の演算にかかる制御的負担を軽減するために、同心円により形成される帯状の領域を車両の走行領域F2とみなすことも考えられる。例えば、図17(b)に示すように、旋回半径Kを中心とする2つの同心円の円弧により、車両1の実際の走行領域F1が挟み込まれるように、2つの同心円の半径をそれぞれ決定する。なお、図17(b)では、2つの同心円により形成される帯状の領域の幅をTとしている。このように、同心円により形成される帯状の領域を、車両の走行領域F2とみなせば、走行領域の演算にかかる制御的負担を軽減できる。
しかし、走行領域F2では、車両1が実際には走行しない領域H1,H2が含まれてしまうため、この領域H1,H2内に障害物が存在していれば、走行経路RT1〜RT3上に障害物が存在すると、CPU91により判定されてしまう。
よって、実際には走行できるにも関わらず、走行経路RT1〜RT3を走行できないと判定され、その結果、別の走行経路RT1〜RT3を生成する処理や、その別の走行経路RT1〜RT3上に障害物が存在するか否かを判定する処理が実行され、無駄な処理を実行させてしまう恐れがある。従って、CPU91に不要な負荷を掛けてしまうと共に、別の走行経路RT1〜RT3が見つかるまで時間が掛かる恐れがある。また、別の走行経路RT1〜RT3が見つからず、最終目的地に到着できない恐れもある。
そこで、本実施形態では、図17(c)に示すように、各走行制御点Qごとに、その車両1の障害物判定領域E内に障害物が存在するか否かを判定することで、走行経路RT1〜RT3上に障害物が存在するか否かを判定している。走行制御点Qは、走行経路RT1〜RT3上に仮想的に設けられた点であるので、その走行制御点Qにおける障害物判定領域Eは、実際の走行領域F1の一部である。
よって、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F3は、車両1が実際に走行する走行領域F1の一部となるので、車両1の走行領域とみなすことができる。従って、車両1が実際に走行する領域を算出しなくても、走行経路RT1〜RT3に対応する走行領域を精度良く、且つ、容易に設定でき、その走行経路RT1〜RT3に対応する走行経路内に、障害物が有るか否かを判定できる。
また、本実施形態では、車両1が実際に走行する走行領域F1を算出しなくて済むので、複雑な領域の計算を行わなくて良く、処理コストを抑制できる。よって、処理コストを抑制しつつ、走行経路RT1〜RT3に対応する走行経路内に、障害物が有るか否かを判定できる。また、走行領域F3には、走行領域F2のように、車両1が実際には走行しない領域H1,H2が含まれないので、走行経路RT1〜RT3に対応する走行領域内に、障害物が有るか無いかを精度良く判定できる。
なお、図17(c)では、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも短い間隔としているので、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F3が、一連の領域となっている。しかし、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも長くすると、各走行制御点Qにおける障害物判定領域Eを全て足し合わせても、その領域は一連の領域とならない。
よって、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも短い間隔とする場合は、車両1の車長Lよりも長くする場合よりも、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F3が、実際の走行領域F1に近づくので、走行経路RT1〜RT3に対応する走行領域内に、障害物が有るか無いかを精度良く判定できる。
なお、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも長くしている場合でも、障害物判定領域Eを大きくすれば、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域を、一連の領域にすることができる。しかし、そうすると結局、その走行領域には、車両1が実際には走行しない領域が含まれてしまうため、走行経路RT1〜RT3上に、障害物が有るか無いかを精度良く判定できない。
また、図17(d)に示すように、走行経路RT1〜RT3に対して、できるだけ多く(短い間隔で)走行制御点Qを生成する程、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F4が、実際の走行領域F1に近づくので、走行経路RT1〜RT3上に障害物が存在するか否かを精度良く判定できる。また、走行領域F4には、走行領域F2のように、車両1が実際には走行しない領域H1,H2が含まれないので、走行経路RT1〜RT3に対応する走行領域内に、障害物が有るか無いかを精度良く判定できる。
よって、図17(b)のように走行領域F2を設定する場合よりも、実際には車両1が走行できるにも関わらず別の走行経路RT1〜RT3を生成する処理や、別の走行経路RT1〜RT3上に障害物が存在するか否かを判定する処理などが、余計に実行されることを抑制できる。従って、制御的負担を軽減できると共に、走行経路RT1〜RT3が見つかるまでの時間を軽減できる。また、最終目的地に到着できる可能性も向上させることができる。
また、上述したように、走行制御点Qの車両位置および車両方位に基づいて、障害物判定領域Eの位置を示す4つの頂点を算出できる。各走行制御点Qにおいて、障害物判定領域Eの4つの頂点を算出する処理は、上述した数式により容易に算出できるので、車両1の実際の走行領域F1を算出する処理よりも容易である。よって、制御的負担を軽減できると共に、演算時間を軽減できる。
ここで、図15の説明に戻る。S116の処理が終了したら、次に、走行可否判定点における車両方位と、S116の処理において算出した障害物判定領域Eの位置を示す4つの頂点とに基づいて、一次不等式からなる16種類の判断条件式の中から、1種類の判断条件式を選択する(S117)。
ここで、図18および図19を参照して、16種類の判断条件式について説明する。図18は、16種類の判断条件式の分類を説明するための模式図である。図18では、障害物判定領域Eの位置を示す4つの頂点のうち、車両1の右前方に位置する頂点をI1と示し、車両1の左前方に位置する頂点をI2と示し、車両1の左後方に位置する頂点をI3と示し、車両1の右後方に位置する頂点をI4と示している。また、障害物判定領域Eに対応する車両1の進行方向を直線の矢印で示し、その車両1の車両方位をθvと示している。
本実施形態では、図18に示すように、車両1の車両方位θvと、障害物判定領域Eにおける4つの頂点の位置関係とに応じて、障害物判定領域Eのパターンを第1〜第16までの各パターンHP1〜HP16に分類し、その分類応じて第1〜第16までの判断条件式を設けている。
上述したように、判断条件式とは、走行制御点Qに対応する障害物判定領域E内に、障害物があるか無いかを判定するための一次不等式である。判断条件式を用いて判定を行う場合には、走行制御点Qにおける車両1の車両方位θVと、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置情報I1〜I4とに応じて、16種類の条件式の中から1種類の判断条件式を選択し、その選択した判断条件式の中に、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置に基づく定数a12,a23,a34,a41,b12,b23,b34,b41と、障害物の位置情報とを代入する(図15のS119参照)。そして、代入した結果、判断条件式が成立する場合には、障害物判定領域E内に障害物が存在すると判定し、判断条件式が不成立の場合には、障害物が存在しないと判定する。
このように、本実施形態では、判断条件式の中に、障害物判定領域Eの4つの頂点の位置に基づく各種定数と、障害物の位置情報とを代入するという単純な処理により、障害物判定領域E内に障害物が存在するか否かを判定できるので、処理コストを抑制できる。
また、16種類の判断条件式を設けておき、車両1の車両方位θvと、障害物判定領域Eの4つの頂点の位置関係とに基づいて判断条件式を選択している。判断条件式を1種類だけにすると、判断条件式が複雑になってしまうので、判定に時間が掛かってしまうが、本実施形態のように、条件に応じて判断条件式を設けておくことで、各判断条件式を単純なものにできるので、判定に掛かる時間を短くできる。
以下、第1〜第16までの判断条件式について1種類ずつ説明するが、以下の説明では、障害物判定領域EのパターンHP1〜HP16のことを、単に、判定パターンHP1〜HP16と記載する。また、障害物が存在する位置(xob,yob)を、障害物(xob,yob)と記載する。
まずここで、各判断条件式を説明する前に、図19を参照して、その判断条件式に代入する各種定数a12,a23,a34,a41,b12,b23,b34,b41と、各種定数の算出方法とについて説明する。なお、定数a12および定数b12は、障害物判定領域Eの4つの頂点のうち、頂点I1および頂点I2を通る一次直線(y=a12・x+b12)の係数a12および切片b12を示している。
同様に、定数a23および定数b23は、頂点I2および頂点I3を通る一次直線(y=a23・x+b23)の係数a23および切片b23を示し、定数a34および定数b34は、頂点I3および頂点I4を通る一次直線(y=a34・x+b34)の係数a34および切片b34を示し、定数a41および定数b41は、頂点I4および頂点I1を通る一次直線(y=a41・x+b41)の係数a41および切片b41を示している。
図19は、判断条件式において使用する各種定数の算出方法を説明するための模式図である。図19では、障害物判定領域Eの位置を示す4つの頂点のうち、車両1の右前方に位置する頂点をI1(x1,y1)と示し、車両1の左前方に位置する頂点をI2(x2,y2)と示し、車両1の左後方に位置する頂点をI3(x3,y3)と示し、車両1の右後方に位置する頂点をI4(x4,y4)と示している。
この場合に、頂点I1および頂点I2を通る一次直線をy=a12・x+b12とすると、係数a12および切片b12は、
a12=(y1−y2)/(x1−x2)
b12=y1−a12・x1
により算出できる。以下同様に、頂点I2および頂点I3を通る一次直線をy=a23・x+b23とすると、係数a23および切片b23は、
a23=(y2−y3)/(x2−x3)
b23=y2−a23・x2
により算出できる。また、頂点I3および頂点I4を通る一次直線をy=a34・x+b34とすると、係数a34および切片b34は、
a34=(y3−y4)/(x3−x4)
b34=y3−a34・x3
により算出できる。また、頂点I4および頂点I1を通る一次直線をy=a41・x+b41とすると、係数a41および切片b41は、
a41=(y4−y1)/(x4−x1)
b41=y4−a41・x4
により算出できる。
ここで、図18の説明に戻る。第1の判定パターンHP1は、車両1の車両方位θVが、「θV=0」となるパターンである。言い換えれば、「x1=x2」、「x3=x4」、「y1=y4」、及び、「y2=y3」のうち、少なくとも何れか一つが成立し、更に、「x3及びx4の一方<x1及びx2の一方」が成立しているパターンである。
この場合に、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x3≦xob≦x2、且つ、y4≦yob≦y3
という一次不等式が成立する。よって、この式を、第1の判定パターンHP1に対応する第1の判断条件式とする。なお、この判断条件式においては、x3をx4に置き換えても良い。以下同様に、x2をx1に、y4をy1に、y3をy2に置き換えても良い。
CPU91は、走行制御点Qにおける車両1の車両方位θvと、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置情報I1〜I4とが、第1判定パターンHP1の条件を満たしていれば、16種類の判断条件式の中から第1の判断条件式を選択する。そして、第1の判断条件式が成立していれば、障害物判定領域E内に障害物が存在していると判定し、第1の判断条件式が不成立であれば、障害物判定領域E内に障害物が存在していないと判定する。
なお、走行制御点Qにおける車両1の車両方位θvと、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置情報I1〜I4とが、各判定パターンHP2〜HP16の条件を満たしている場合には、その判定パターンに対応する判断条件式が選択される。
そして、図18に示す通り、第5の判定パターンHP5、第9の判定パターンHP9、第13の判定パターンHP13は、第1の判定パターンHP1と同様なパターンである。即ち、第5の判定パターンHP5は、車両1の車両方位θVが、「θV=π/2」となるパターンであり、「x1=x4」、「x2=x3」、「y1=y2」、及び、「y3=y4」のうち、少なくとも何れか一つが成立し、更に、「x2及びx3の一方<x1及びx4の一方」が成立しているパターンである。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x2≦xob≦x1、且つ、y3≦yob≦y2
という一次不等式が成立する。従って、この式を、第5の判定パターンHP5に対応する第5の判断条件式とする。なお、この判断条件式においては、x2をx3に置き換えても良い。以下同様に、x1をx4に、y3をy4に、y2をy1に置き換えても良い。
また、第9の判定パターンHP9は、車両1の車両方位θVが、「θV=π」となるパターンであり、「x1=x2」、「x3=x4」、「y1=y4」、及び、「y2=y3」のうち、少なくとも何れか一つが成立し、更に、「x1及びx2の一方<x3及びx4の一方」が成立しているパターンである。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x1≦xob≦x4、且つ、y2≦yob≦y1
という一次不等式が成立する。従って、この式を、第9の判定パターンHP9に対応する第9の判断条件式とする。なお、この判断条件式においては、x1をx2に置き換えても良い。以下同様に、x4をx3に、y2をy3に、y1をy4に置き換えても良い。
また、第13の判定パターンHP13は、車両1の車両方位θVが、「θV=3π/2」となるパターンであり、「x1=x4」、「x2=x3」、「y1=y2」、及び、「y3=y4」のうち、少なくとも何れか一つが成立し、更に、「x1及びx4の一方<x2及びx3の一方」が成立しているパターンである。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x1≦xob≦x2、且つ、y1≦yob≦y4
という一次不等式が成立する。従って、この式を、第13の判定パターンHP13に対応する第13の判断条件式とする。なお、この判断条件式においては、x1をx4に置き換えても良い。以下同様に、x2をx3に、y1をy2に、y4をy3に置き換えても良い。
第2の判定パターンHP2は、車両1の車両方位θVが、「0<θV<π/2」となり、且つ、「x4<x2」となるパターンである。この場合に、図に示すように、障害物判定領域Eの各頂点I1〜I4において、y軸に平行な直線(図中の破線)を引くと、障害物判定領域Eは、左から右に向かって順に、I3からI4までに対応する三角形の第1領域と、I4からI2までに対応する平行四辺形の第2領域と、I2からI1までに対応する三角形の第3領域との3つの領域に区分される。
よって、その3つの領域ごとに、障害物(xob,yob)が存在しているかを判断すれば、障害物(xob,yob)が障害物判定領域E内に存在しているか判断できる。具体的には、第1領域に障害物が存在している場合、第2領域に障害物が存在している場合、第3領域に障害物が存在している場合には、それぞれ順番に、
x3≦xob<x4、且つ、a34・xob+b34≦yob≦a23・xob+b23
x4≦xob≦x2、且つ、a41・xob+b41≦yob≦a23・xob+b23
x2<xob≦x1、且つ、a41・xob+b41≦yob≦a12・xob+b12
という一次不等式が成立する。従って、これら3つの式のうち、一つでも成立していれば、障害物判定領域E内に障害物が存在していると判定する。なお、これら3つの式を、第2の判定パターンHP2に対応する第2の判断条件式とする。
そして、図18に示す通り、第6の判定パターンHP6、第10の判定パターンHP10、第14の判定パターンHP14は、第2の判定パターンHP2と同様なパターンである。即ち、第6の判定パターンHP6は、車両1の車両方位θVが、「π/2<θV<π」となり、且つ、「x3<x1」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I2からI3までに対応する三角形の第1領域と、I3からI1までに対応する平行四辺形の第2領域と、I1からI4までに対応する三角形の第3領域との3つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x2≦xob<x3、且つ、a23・xob+b23≦yob≦a12・xob+b12
x3≦xob≦x1、且つ、a34・xob+b34≦yob≦a12・xob+b12
x1<xob≦x4、且つ、a34・xob+b34≦yob≦a41・xob+b41
という3つの一次不等式のうち、少なくとも一つが成立する。従って、これら3つの式を、第6の判定パターンHP6に対応する第6の判断条件式とする。
また、第10の判定パターンHP10は、車両1の車両方位θVが、「π<θV<3π/2」となり、且つ、「x2<x4」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I1からI2までに対応する三角形の第1領域と、I2からI4までに対応する平行四辺形の第2領域と、I4からI3までに対応する三角形の第3領域との3つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x1≦xob<x2、且つ、a12・xob+b12≦yob≦a41・xob+b41
x2≦xob≦x4、且つ、a23・xob+b23≦yob≦a41・xob+b41
x4<xob≦x3、且つ、a23・xob+b23≦yob≦a34・xob+b34
という3つの一次不等式のうち、少なくとも一つが成立する。従って、これら3つの式を、第10の判定パターンHP10に対応する第10の判断条件式とする。
また、第14の判定パターンHP14は、車両1の車両方位θVが、「3π/2<θV<2π」となり、且つ、「x1<x3」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I4からI1までに対応する三角形の第1領域と、I1からI3までに対応する平行四辺形の第2領域と、I3からI2までに対応する三角形の第3領域との3つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x4≦xob<x1、且つ、a41・xob+b41≦yob≦a34・xob+b34
x1≦xob≦x3、且つ、a12・xob+b12≦yob≦a34・xob+b34
x3<xob≦x2、且つ、a12・xob+b12≦yob≦a23・xob+b23
という3つの一次不等式のうち、少なくとも一つが成立する。従って、これら3つの式を、第14の判定パターンHP14に対応する第14の判断条件式とする。
第3の判定パターンHP3は、車両1の車両方位θVが、「0<θV<π/2」となり、且つ、「x4=x2」となるパターンである。この場合に、図に示すように、障害物判定領域Eの各頂点I1〜I4において、y軸に平行な直線(図中の破線)を引くと、障害物判定領域Eは、左から右に向かって順に、I3からI4までに対応する三角形の第1領域と、I4からI1までに対応する三角形の第2領域との2つの領域に区分される。
よって、その2つの領域ごとに、障害物(xob,yob)が存在しているかを判定すれば、障害物(xob,yob)が障害物判定領域E内に存在しているか判定できる。具体的には、第1領域に障害物が存在している場合、第2領域に障害物が存在している場合には、それぞれ順番に、
x3≦xob<x4、且つ、a34・xob+b34≦yob≦a23・xob+b23
x4≦xob≦x1、且つ、a41・xob+b41≦yob≦a12・xob+b12
という一次不等式が成立する。従って、これら2つの式のうち、一つでも成立していれば、障害物判定領域E内に障害物が存在していると判定する。なお、これら2つの式を、第3の判定パターンHP3に対応する第3の判断条件式とする。また、この判断条件式においては、x4をx2に置き換えても良い。
そして、図18に示す通り、第7の判定パターンHP7、第11の判定パターンHP11、第15の判定パターンHP15は、第3の判定パターンHP3と同様なパターンである。即ち、第7の判定パターンHP7は、車両1の車両方位θVが、「π/2<θV<π」となり、且つ、「x1=x3」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I2からI3までに対応する三角形の領域と、I3からI4までの領域に対応する三角形の領域との2つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x2≦xob<x3、且つ、a23・xob+b23≦yob≦a12・xob+b12
x3≦xob≦x4、且つ、a34・xob+b34≦yob≦a41・xob+b41
という2つの一次不等式のうち、少なくとも一つが成立する。従って、これら2つの式を、第7の判断パターンHP7に対応する第7の判断条件式とする。なお、この判断条件式においては、x3をx1に置き換えても良い。
また、第11の判定パターンHP11は、車両1の車両方位θVが、「π<θV<3π/2」となり、且つ、「x2=x4」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I1からI2までに対応する三角形の第1領域と、I2からI3までの領域に対応する三角形の第2領域との2つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x1≦xob<x2、且つ、a12・xob+b12≦yob≦a41・xob+b41
x2≦xob≦x3、且つ、a23・xob+b23≦yob≦a34・xob+b34
という2つの一次不等式のうち、少なくとも一つが成立する。よって、これら2つの式を、第11の判断パターンHP11に対応する第11の判断条件式とする。なお、この判断条件式においては、x2をx4に置き換えても良い。
また、第15の判定パターンHP15は、車両1の車両方位θVが、「3π/2<θV<2π」となり、且つ、「x1=x3」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I4からI1までに対応する三角形の第1領域と、I1からI2までの領域に対応する三角形の第2領域との2つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x4≦xob<x1、且つ、a41・xob+b41≦yob≦a34・xob+b34
x1≦xob≦x2、且つ、a12・xob+b12≦yob≦a32・xob+b32
という2つの一次不等式のうち、少なくとも一つが成立する。よって、これら2つの式を、第15の判断パターンHP15に対応する第15の判断条件式とする。なお、この判断条件式においては、x1をx3に置き換えても良い。
第4の判定パターンHP4は、車両1の車両方位θVが、「0<θV<π/2」となり、且つ、「x2<x4」となるパターンである。この場合に、図に示すように、障害物判定領域Eの各頂点I1〜I4において、y軸に平行な直線(図中の破線)を引くと、障害物判定領域Eは、左から右に向かって順に、I3からI2までに対応する三角形の第1領域と、I2からI4までに対応する平行四辺形の第2領域と、I4からI1までに対応する三角形の第3領域との3つの領域に区分される。
よって、その3つの領域ごとに、障害物(xob,yob)が存在しているかを判定すれば、障害物(xob,yob)が障害物判定領域E内に存在しているか判定できる。具体的には、第1領域に障害物が存在している場合、第2領域に障害物が存在している場合、第3領域に障害物が存在している場合には、それぞれ順番に、
x3≦xob<x2、且つ、a34・xob+b34≦yob≦a23・xob+b23
x2≦xob≦x4、且つ、a34・xob+b34≦yob≦a12・xob+b12
x4<xob≦x1、且つ、a41・xob+b41≦yob≦a12・xob+b12
という一次不等式が成立する。従って、これら3つの式のうち、一つでも成立していれば、障害物判定領域E内に障害物が存在していると判定する。なお、これら3つの式を、第4の判定パターンHP4に対応する第4の判断条件式とする。
そして、図18に示すように、第8の判定パターンHP8、第12の判定パターンHP12、第16の判定パターンHP16は、第4の判定パターンHP4と同様なパターンである。即ち、第8の判定パターンHP8は、車両1の車両方位θVが、「π/2<θV<π」となり、且つ、「x1<x3」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I2からI1までに対応する三角形の領域と、I1からI3までに対応する並行四辺形の領域と、I3からI4までの領域に対応する三角形の領域との3つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x2≦xob<x1、且つ、a23・xob+b23≦yob≦a12・xob+b12
x1≦xob≦x3、且つ、a23・xob+b23≦yob≦a41・xob+b41
x3<xob≦x4、且つ、a34・xob+b34≦yob≦a41・xob+b41
という3つの一次不等式のうち、少なくとも一つが成立する。従って、これら3つの式を、第8の判断パターンHP8に対応する第8の判断条件式とする。
また、第12の判定パターンHP12は、車両1の車両方位θVが、「π<θV<3π/2」となり、且つ、「x4<x2」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I1からI4までに対応する三角形の領域と、I4からI2までに対応する並行四辺形の領域と、I2からI3までの領域に対応する三角形の領域との3つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x1≦xob<x4、且つ、a12・xob+b12≦yob≦a41・xob+b41
x4≦xob≦x2、且つ、a12・xob+b12≦yob≦a34・xob+b34
x2<xob≦x3、且つ、a23・xob+b23≦yob≦a34・xob+b34
という3つの一次不等式のうち、少なくとも一つが成立する。よって、この3つの式を、第12の判断パターンHP12に対応する第12の判断条件式とする。
また、第16の判定パターンHP16は、車両1の車両方位θVが、「3π/2<θV<2π」となり、且つ、「x3<x1」となるパターンである。そして、図に示すように、障害物判定領域Eは、左から右に向かって順に、I4からI3までに対応する三角形の領域と、I3からI1までに対応する並行四辺形の領域と、I1からI2までの領域に対応する三角形の領域との3つの領域に区分される。
よって、障害物(xob,yob)が障害物判定領域E内に存在していれば、
x4≦xob<x3、且つ、a41・xob+b41≦yob≦a34・xob+b34
x3≦xob≦x1、且つ、a41・xob+b41≦yob≦a23・xob+b23
x1<xob≦x2、且つ、a12・xob+b12≦yob≦a23・xob+b23
という3つの一次不等式のうち、少なくとも一つが成立する。よって、この3つの式を、第16の判断パターンHP16に対応する第16の判断条件式とする。
ここで、図15の説明に戻る。S117の処理が終了したら、次に、S111の処理で取得した障害物の位置情報の中から、位置情報を1つ抽出し(S118)、その抽出した位置情報を、S117の処理により選択した判断条件式に代入する(S119)。なお、S119の処理では、S116の処理において算出した各種定数a12,a23,a34,a41,b12,b23,b34,b41も代入する。
次に、数値を代入した判断条件式において、何れかの不等式が成立しているかを判定し(S120)、S120の判定が肯定される場合は(S120:Yes)、障害物判定領域E内に、障害物が存在している場合なので、RAM93の走行制御点メモリ93dをクリアして(S124)、走行領域内確認処理を終了し、自動駐車処理(図7参照)に戻る。
一方、S120の判定が否定される場合には(S120:No)、S111の処理で取得した障害物の位置情報を、全て取得したかを判定する(S121)。S121の判定が否定される場合には(S121:No)、S118の処理に戻り、別の障害物の位置情報を、判断条件式に代入する。一方、S121の判定が肯定される場合には(S121:Yes)、走行可否判定点が最終目的地であるかを判定する(S122)。S122の判定が肯定される場合は(S122:Yes)、走行経路RT1〜RT3上に障害物が見つからなかった場合なので、走行領域内確認処理を終了し、自動駐車処理(図7参照)に戻る。
S122の判定が否定される場合には(S122:No)、次に通過する走行制御点Qを走行可否判定点として(S123)、S115の処理に戻り、次の走行制御点Qに対応する障害物判定領域E内に、障害物が存在するかを確認する。
以上の図15に示す走行領域内確認処理によれば、走行制御点Qを車両1の車両位置とし、その車両1の障害物判定領域E内に障害物が存在するか否かを、各走行制御点Qについて判定できる。上述したように、走行制御点Qは、走行経路RT1〜RT3上に仮想的に設けられた点であるので、その走行制御点Qにおける障害物判定領域Eは、実際の走行領域F1(図17(a)参照)の一部である。
よって、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域は、車両1が実際に走行する走行領域F1の一部となるので、車両1の走行領域とみなすことができる(図17(a),図17(d)参照)。従って、各走行制御点Qごとに、その車両1の障害物判定領域E内に障害物が存在するか否かを判定することで、走行経路RT1〜RT3に対応する走行領域内に障害物が存在するか否かを判定できる。
このように、本実施形態では、走行制御点Qごとに障害物判定領域Eを算出し、障害物の有無を判定している。よって、走行経路RT1〜RT3に沿って、車両1が実際に走行する走行領域F1を算出なくて済むので、複雑な領域の計算を行わなくて良く、判定を容易に行うことができ、処理コストを抑制できる。従って、走行経路RT1〜RT3に対応する走行経路内に障害物が有るか否かを、少ない処理コストで判定できる。
一方、車両1が実際に走行する走行領域F1を算出して、障害物の有無を判定するように構成している場合には、走行経路RT1が複雑になる程、車両1が実際に走行する走行領域F1の計算が複雑となる。その結果、演算量が膨大となって、CPU91に大きな負荷を掛けてしまうと共に、演算が終了するまで時間が掛かってしまうおそれがある。しかしながら、本実施形態では、走行制御点Qごとに障害物判定領域Eを算出し、障害物の有無を判定しているので、走行経路RT1〜RT3が複雑でも、容易に障害物の有無の判定を行うことができる。
従って、特に、走行経路RT1〜RT3が複雑な場合には本発明が好適である。なお、本実施形態では、自律走行によって車両1を目標とする駐車位置に停車させる形態について説明しているが、自律走行により車両1を長距離走行させる場合などにも本発明を適用できる。その場合は、走行経路が複雑となる可能性が高いので本発明が好適である。
また、車両1を自律走行させる前に、走行経路RT1〜RT3に対応する走行領域内に障害物が存在するかを判定できるので、走行領域内に障害物が無く、目標とする駐車位置まで走行可能である場合にのみ自律走行を開始できる。よって、車両1の自律走行を開始したものの、実際には走行経路RT1〜RT3に障害物が存在し、最終目的地に到着できないということを抑制できる。
ここで、図7の説明に戻る。走行領域内確認処理が実行されたら、次に、走行経路RT1〜RT3に対応する走行領域内に障害物があったかを判定する(S10)。上述したように、走行領域内確認処理(S10)が実行された場合に、走行経路RT1〜RT3に対応する走行領域内に障害物が存在していれば、図15のS124の処理により走行制御点メモリ93dがクリアされる。よって、S10の処理では、走行制御点メモリ93dに走行制御点Qが記憶されていなければ、障害物が存在したと判定し、走行制御点Qが記憶されていれば、障害物が存在しなかったと判定する。
S10の判定が肯定される場合には(S10:Yes)、S4の処理に戻り、別の走行経路RT1〜RT3を探す。S10の判定が否定される場合には(S10:No)、車両1を自律走行させて、運転者が目標とする駐車位置に車両1を駐車させることが可能であることを、運転者に報知する(S12)。そして、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示されたか、又は、自律走行による駐車を中止することが運転者により指示されたかを判定し(S13)、自律走行による駐車を中止することが運転者により指示された場合には(S13:No)、自動駐車処理を終了する。
一方、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S13:Yes)、出発地点に対応する走行制御点Qを現在地点として(S14)、走行制御点メモリ93dから現在地点の車両設定情報を取得する(S15)。そして、車両1が次に通過する予定の走行制御点Qを目標地点とし(S16)、走行制御点メモリ93dから目標地点の車両設定情報を取得する(S17)。
次に、現在地点の車両設定情報に基づいて車両1を走行させ、車両1を目標地点まで移動させる(S18)。S18の処理では、ステアリングセンサ装置21により検出される車両1の操舵角δが、車両設定情報の操舵角δと一致するように、操舵駆動装置5を制御し、ステアリングシャフト61を回転させる。また、進行方向フラグが「1」であれば、車両1が前進するように車輪駆動装置3を制御し、進行方向フラグが「−1」であれば、車両1が後退するように車輪駆動装置3を制御する。
S18の処理が終了したら、次に、最終目的地に到着したかを判定し(S19)、S19の判定が否定される場合には(S19:No)、目標地点の車両設定情報を現在地点の車両設定情報として(S20)、S16の処理に戻る。そして、車両1を次の目標地点まで走行させる。S19の判定が肯定される場合には(S19:Yes)、車両1を停車させて、最終目的地に到着したことを運転者に報知し(S21)、自動駐車処理を終了する。
尚、上記実施形態に記載の「第1〜第3の各距離センサ23a〜23cによる走査」が、特許請求の範囲に記載の「検出工程」に対応する。また、上記実施形態に記載の「CPU91により実行される自動駐車処理(図7参照)」が、特許請求の範囲に記載の「走行支援方法」に対応する。
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施形態では、障害物判定領域Eの大きさを一つの大きさとしているが、大・中・小などの複数の大きさを設けておき、その各寸法値をフラッシュメモリ92の障害物判定領域メモリ92bに記憶させておいても良い。そして、走行路の幅や、歩行者などの有無に応じて、障害物判定領域Eの大きさが自動的に変更されるように構成しても良い。例えば、車両1に人感センサを設けておき、歩行者が検出された場合には、障害物判定領域Eの大きさを大きくし、歩行者がいない場合には狭くしても良い。これにより、歩行者に対して安全に車両1を走行させることができる。また、走行路が狭い場合には、障害物判定領域Eの大きさを狭くしても良い。これにより、車両1の走行領域が小さくなるので、走行経路RT1〜RT3を生成できる可能性を高くでき、目標とする駐車位置に到着できる可能性を高くできる。また、運転者が任意に、障害物判定領域Eの大きさを設定できるようにしても良い。なお、運転者により設定された値は、障害物判定領域メモリ93bに記憶させれば良い。もし、走行経路RT1〜RT3上に障害物が見つかり、走行不可能と判定された場合でも、障害物判定領域Eの大きさを小さくできれば、走行経路RT1〜RT3に対応する走行領域を小さくできるので、障害物が存在しないと判定される可能性が高くなり、走行経路RT1〜RT3が走行可能となる可能性が高くなる。
また、上記実施形態では、車両1が自律走行を開始した後は、目標とする駐車位置に到着するまで車両1を走行させるように構成されているが、車両1に人感センサを設けておき、走行経路RT1〜RT3に対応する走行領域内に、歩行者などが進入してきた場合には、車両1を停車させるように構成しても良い。これにより、歩行者に対して安全に車両1を走行させることができる。
また、上記実施形態では、目標とする駐車位置に車両1を停車させる場合、最終的には車両1を後退直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しているが、最終的に車両1を前進直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しても良い。
また、上記実施形態では、10種類の経路パターンPT1〜PT10を設けているが、パターンの数は10種類に限らず、減らしても良いし、増やしても良い。また、各経路パターンPT1〜PT10に対応する各走行経路の距離CLを全て2mとしているが、数値は適宜設定すれば良い。また、経路パターンPT1〜PT10に対応する走行経路の形状も適宜設定すれば良い。
また、上記実施形態では、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qを生成しているが、走行制御点Qを設ける間隔は、0.01m間隔や、0.1m間隔や、0.5m間隔など適宜設定すれば良い。なお、走行制御点Qを設ける間隔を狭くする程、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F4(図17(d)参照)が、実際の走行領域F1に近づくので、走行経路RT1〜RT3上に障害物が存在するか否かを精度良く判定できる。
また、上記実施形態では、車両1に3つの距離センサ23a〜23cを取り付けているが、取り付けるセンサ数を2つにしても良い。センサ数を減らすことにより、部品コストを抑制できる。センサ数を2つにする場合は、例えば、第1距離センサ23aを車両1の右前に取り付け、第2距離センサ23bを車両1の左後に取り付ける。このように取り付ければ、2つの距離センサにより、車両1の全周囲を走査できる。
また、上記実施形態では、車両1に3つの距離センサ23a〜23cを取り付けているが、車両1の4隅の4箇所などにそれぞれ取り付けても良い。即ち、距離センサの数や取り付け位置は如何なる数や場所であっても良い。特に、距離センサを分散させて取り付けることにより、様々な角度から障害物を測定できるので、障害物をより精度良く測定できる。
また、上記実施形態の走行制御装置100は、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の車両速度は運転者がアクセルペダル11およびブレーキペダル12により操作できるように構成し、走行制御装置100は車両1のステアリング13のみを制御するように構成しても良い。
また、上記実施形態の走行制御装置100は、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の自律走行は行わず、現在位置から運転者が目標とする駐車位置までの走行経路を運転者に報知するように構成しても良い。例えば、車両1内のモニタに、走行経路RT1〜RT3を表示しても良い。また、音声により運転者の運転操作を誘導して、車両1が走行経路RT1〜RT3上を走行するようにしても良い。
また、上記実施形態では、目標とする駐車位置に車両1を駐車させた時の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いて、車両1の位置や、走行経路RT1〜RT3などの位置を算出しているが、現在の車両1の車両位置における左右の後輪2FL,2FRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いても良い。また、任意にx軸およびy軸を設けて、x軸およびy軸の交点を原点Oとした座標系を用いても良い。
また、上記実施形態では、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成するように構成しているが、任意の2つの経路点P間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。例えば、走行経路上に3つ以上の経路点Pが順番に並んでいる場合には、その3つ以上の経路点Pのうち最初(出発点に最も近い側)の経路点Pと、その3つ以上の経路点のうち最後(最終目的に最も近い側)の経路点Pとの間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。
また、上記実施形態では、走行経路RT1〜RT3上の全ての走行制御点Qについて、障害物判定領域Eを算出し、障害物の有無を判定するように構成しているが、走行経路RT1〜RT3上の一部の走行制御点Qについて、障害物判定領域Eを算出し、障害物の有無を判定するように構成しても良い。例えば、一つおきに走行制御点Qを取得して、障害物判定領域Eを算出し、障害物の有無を判定するように構成しても良い。
また、上記実施形態では、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3を生成して、その走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させているが、単に、現在位置から目標とする位置まで車両1を自律走行させるように構成も良い。例えば、目標とする位置を遠方に設定し、自律走行により車両1を長距離走行させるように構成しても良い。
また、上記実施形態では、経路点P0(出発地点)上に走行制御点Qを設けていないが、経路点P0上にも走行制御点Qを設けて、車両1を自律走行させる場合に参照するように構成して良い。
また、上記実施形態は、車両1が4輪車である場合の実施形態であるが、本発明は、車輪の数に関係なく車両であれば適用できるし、ショベルカーなどの建設機械などにも適用できる。
<その他>
<技術的思想>
技術的思想1記載の走行支援装置は、初期位置から目標位置までの任意の経路に沿って車両が走行できるように制御するものであって、前記車両を制御するための走行制御点の位置情報を取得する走行制御点取得手段と、前記走行制御点に対して前記車両が占有すると推定される前記経路上における推定占有領域の位置情報を取得する領域取得手段と、物体の位置情報を検出する検出手段と、前記物体の位置情報と前記推定占有領域の位置情報とに基づいて、前記物体が前記推定占有領域内に存在するかを判定する判定手段とを備えている。
技術的思想2記載の走行支援装置は、技術的思想1記載の走行支援装置において、前記領域取得手段は、矩形の領域を前記推定占有領域として、その位置情報を取得するものである。
技術的思想3記載の走行支援装置は、技術的思想1または2記載の走行支援装置において、前記走行制御点取得手段は、前記初期位置から前記目標位置までの走行経路において隣り合う走行制御点間の距離が、それぞれ車両の全長よりも短くなるように、前記走行制御点を設定し、その位置情報を取得するものである。
技術的思想4記載の走行支援方法は、初期位置から目標位置までの任意の経路に沿って車両が走行できるように制御するものであって、前記車両を制御するための走行制御点の位置情報を取得する走行制御点取得工程と、前記走行制御点に対して前記車両が占有すると推定される前記経路上における推定占有領域の位置情報を取得する領域取得工程と、物体の位置情報を検出する検出工程と、前記物体の位置情報と前記推定占有領域の位置情報とに基づいて、前記物体が前記推定占有領域内に存在するかを判定する判定工程とを有する。
<効果>
技術的思想1記載の走行支援装置によれば、車両を制御するための走行制御点の位置情報が走行制御点取得手段により取得され、その走行制御点に対して車両が占有すると推定される経路上における推定占有領域の位置情報が領域取得手段により取得される。そして、検出手段により検出される物体の位置情報と推定占有領域の位置情報とに基づいて、推定占有領域内に物体が存在するかが判定手段により判定される。推定占有領域は、経路上を走行する車両が占有すると推定される領域なので、その推定占有領域に対して物体が存在するか否かを判定することにより、車両が実際に通過する予定の領域内に物体が存在するかを判定できる。よって、車両が実際に通過する領域を正確に算出しなくても、車両が通過する予定の領域を精度良く、且つ、容易に設定して、その領域に物体が存在するか否かを判定できる。
技術的思想2記載の走行支援装置によれば、技術的思想1記載の走行支援装置の奏する効果に加え、領域取得手段は、矩形の領域を推定占有領域として、その位置情報を取得するので、推定占有領域の形状が複雑な場合よりも、推定占有領域の位置情報を容易に取得できる。よって、少ない処理コストで、車両が通過する予定の領域を設定できるという効果がある。
技術的思想3記載の走行支援装置によれば、技術的思想1または2記載の走行支援装置の奏する効果に加え、次の効果を奏する。即ち、初期位置から目標位置までの走行経路において隣り合う走行制御点間の距離が、それぞれ車両の全長よりも短くなるように、走行制御点取得手段によって、走行制御点が設定されて、その位置情報が取得される。よって、各走行制御点においてその推定占有領域の一部が、隣接する走行制御点の推定占有領域と重なるので、各走行制御点における推定占有領域をそれぞれ重ね合わせた場合に、その領域が一連の領域となる。従って、各走行制御点における推定占有領域をそれぞれ重ね合わせた場合に、それぞれの推定占有領域が離れる場合よりも、車両が通過する予定の領域をより精度良く設定できるという効果がある。
技術的思想4記載の走行支援方法によれば、その方法により車両の走行を制御することで、技術的思想1記載の走行支援装置と同様の作用効果を奏する。