以下、本発明の好ましい実施形態について添付図面を参照して、説明する。図1は、本発明の一例である走行制御装置100が搭載される車両1の上面視を模式的に示した模式図である。なお、図1の矢印U−D,L−R,F−Bは、車両1の上下方向、左右方向、前後方向をそれぞれ示している。
まず、図1を参照して、車両1の概略構成について説明する。車両1は、運転者により運転操作可能に構成された車両であり、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させることができる走行制御装置100を有している。なお、本実施形態における自律走行とは、運転者の運転操作なしで車両1を走行させることを意味する。即ち、車両1が自律走行している場合、運転者は、後述するアクセルペダル11、ブレーキペダル12及びステアリング13を操作しなくて良い。
走行制御装置100は、目標とする駐車位置が運転者により設定されると、予め記憶されている経路パターンPT1〜PT10(図3参照)の組み合わせに基づいて、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3全体(図5(a)参照)を生成し、その生成した走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させるものである。
詳細については後述するが、本実施形態では、経路パターンPT1〜PT10までの10種類の断片的な走行経路が予め設定されており、走行経路RT1は、経路パターンPT1〜PT10に対応する走行経路が組み合わされて生成される。そして、走行経路RT1については、経路パターンPT1〜PT10に対応する走行経路ごとに区間(以下、「セクション」と称す)を設定している(図2参照)。
走行制御装置100は、車両1が走行経路RT1を自律走行している場合、車両1が現在走行しているセクションのうち、車両1の現在位置からそのセクションの終端までの走行領域を、車両1がこれから通過する予定の領域(以下、「通過予定領域」と称す)KFと設定し、その通過予定領域KF内に障害物が存在するか否かを監視する。そして、その通過予定領域KF内に障害物が存在しない間、車両1にセクション内を進行させる。よって、走行領域RT1〜RT3内に障害物が存在している場合でも、障害物が存在するセクションの手前までは車両1を進行させることができる。従って、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
なお、車両1が走行経路RT2〜RT3を自律走行している場合については、走行経路RT2〜RT3のうち、車両1の現在位置から目標とする駐車位置までの走行領域を、通過予定領域KFと設定し、その通過予定領域KF内に障害物が存在するか否かを監視する。そして、通過予定領域KF内に障害物が存在しない間、車両1に走行領域RT2〜RT3内を進行させる。
また、走行制御装置100は、通過予定領域KF内に障害物が存在する場合、その障害物が動的障害物であるか静的障害物であるかの種別を特定し、その種別に応じて今後の車両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の走行に伴って従動する従動輪として構成されている。4つの車輪2FL〜2RRのうち、左右の前輪2FL,2FRには共に、車輪の回転量を検出する車輪回転センサ23が取り付けられている。
車輪回転センサ23は、センサ23が取り付けられている車輪2の回転量を検出して、その検出結果をCPU91に出力するセンサであり、車輪2が所定の角度回転する度に、回転検出信号をCPU91に出力するものである。車輪2の外周の長さと、回転検出信号が出力される回転角度とは予め決まっているので、回転検出信号が出力されから次の回転検出信号が出力されるまでに車両1が走行する走行距離も予め決まる。CPU91は、車両1が自律走行をする場合、2つの車輪回転センサ23の回転検出信号を個別にカウントし、2つのカウント数の平均値を用いて出発地点からの走行距離を算出する。
ジャイロセンサ装置22は、車両1の水平面に対するロール角およびピッチ角と、ヨー
角とを検出すると共に、その検出結果をCPU91に出力するための装置であり、車両1の重心を通る基準軸(図1矢印F−B,L−R,U−D方向軸)回りの車両1(車体フレームBF)の回転角(ロール角、ピッチ角、ヨー角)をそれぞれ検出するジャイロセンサ(図示せず)と、そのジャイロセンサの検出結果を処理してCPU91に出力する出力回路(図示せず)とを主に備えている。
なお、以下の説明では、車両1のヨー角のことを、車両1の車両方位と記載する。なお、車両1における車両方位の基準軸は、上述したx軸とし、そのx軸から車両1の進行方向までの反時計回りの角度を、車両1の車両方位とする。
CPU91は、車両1が自律走行する場合、ジャイロセンサ装置22から出力される車両1の車両方位を取得し、車両1の進行方向を算出する。そして、その車両1の進行方向と、車輪回転センサ23の回転検出信号から算出される車両1の走行距離とに基づいて、出発地点からの移動距離を算出する。出発地点は原点Oを基準に設定されているので、CPU91は、出発地点からの移動距離に基づいて、原点Oを基準とした車両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の旋回半径や旋回方向が決定される。
自動駐車スイッチ25は、自律走行により目標とする駐車位置に車両1を駐車させたい場合に、運転者が押下するスイッチであり、これが運転者により押下されると、走行制御装置100において後述する自動駐車処理(図8参照)が実行される。その結果、現在位置から運転者が目標とする駐車位置まで車両1が自律走行させられ、その駐車位置に車両1が停車させられる。
第1から第3までの各距離センサ24a〜24cは、車両1の周辺に存在する物体までの距離データをCPU91(図6参照)に出力するための装置である。各距離センサ24a,24b,24cは、レーザ光を対象物に向けて照射し、その反射の度合いで対象物までの距離を測定するレーザレンジファインダで構成されている。
より具体的には、各距離センサ24a〜24cは、略270度の範囲内で、円周方向の0.5度毎にレーザ光を放射状に照射し、放射状に延びる直線上に位置する対象物までの距離を検出すると共に、その略270度の範囲内の全走査を、約100msで完了するように構成されている。よって、この走査により、対象物の輪郭を示す点が断片的に測定され、各距離がCPU91へそれぞれ出力される。
第1距離センサ24aは、車両1の前面右端に取り付けられており、車両1の前面から右側面までの範囲を外方向に走査し、対象物までの距離を検出する。以下同様に、第2距離センサ24bは、車両1の前面左端に取り付けられ、車両1の前面から左側面までの範囲を外方向に走査し、第3距離センサ24cは、車両1の後面中央に取り付けられ、車両1の後面を外方向に走査し、対象物までの距離を検出する。本実施形態では、3つの距離センサ24a〜24cにより、車両1を中心として少なくとも60m四方の領域内に存在する各対象物までの距離を検出できる。
そして、車両1の前面は、第1距離センサ24aと、第2距離センサ24bとによって二重に走査されるので、車両1の前方に存在する障害物をより精度良く検出できる。即ち、車両1の前面を走査する距離センサが一つだけの場合には、車両1の前方に障害物が存在すると、距離センサから照射されたレーザ光が、前方の障害物によって反射されるため、その障害物の奥側にはレーザ光が届かず、レーザ光の届かない領域が走行できるのか不明となる。
しかし、車両1の前面を、2つの距離センサによりそれぞれ異なる角度から走査することにより、一方の距離センサのレーザ光が、前方の障害物の奥側に届かない場合でも、他方の距離センサのレーザ光が届く場合がある。よって、車両1の前方に存在する障害物をより精度良く検出できるので、車両1を走行可能と判定できる領域を増やすことができる。
各距離センサ24a,24b,24cによる車両1の周辺の走査は、一定間隔(例えば、100ms)ごとに繰り返し行われ、その走査が終了する度に、各距離センサ24a〜24cにより計測された走査結果が、それぞれ個別にCPU91に出力される。CPU91は、各処理センサ24a〜24cから出力される走査結果を一つに合成して、車両1の全周囲の走査結果を生成し、その走査結果をRAM93の車両周囲情報メモリ93a(図6参照)に記憶する。
走行制御装置100は、車輪駆動装置3、操舵駆動装置5、及び、ブレーキ装置(図示せず)などを制御して、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものである。
本実施形態では、運転者により自動駐車スイッチ25が押下され、運転者により目標とする駐車位置が設定されると、走行制御装置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の出発位置)上には走行制御点Qは生成されず、経路点P0から0.05mだけ目標とする駐車位置に近づいた位置から走行制御点Qが生成されて行き、経路点P0を除く各経路点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が後退直進するように走行経路が決定される。
パターン走行部RT1が生成され、後退旋回部RT2、および、最終後退部RT3が決定されると、各走行経路RT1〜RT3ごとに走行制御点Qが仮想的に生成される。走行制御点Qが仮想的に生成される場合には、走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成されると共に、その走行制御点Qを識別するためのインデックス番号(以下、「ID番号」と称す)が設定される。
このID番号は、走行経路RT1〜RT3上における走行制御点Qのうち、経路点P0(車両1の出発位置)に最も近い位置の走行制御点Qが1番に設定される。その後は、走行経路RT1〜RT3に沿ってID番号が1番ずつ大きくなるように、目標とする駐車位置に重なる走行制御点Qまで順番にID番号が設定される。このID番号は、走行制御点Qがどのセクションの走行制御点Qであるかを識別するために、CPU91により使用される。
上述したように、走行経路(パターン走行部)RT1については、経路点Pごとに走行経路を区切ってセクションを設定しており、例えば、図2に示すように、走行経路RT1のうち、経路点P0の直後(経路点P0は含まず)から経路点P1までの区間を第1セクションとしている。そして、経路点P1の直後(経路点P1を含まず)から経路点P2までの区間を第2セクションと設定している。以下同様に、経路点P2の直後から経路点P3までの区間を第3セクション、経路点P3の直後から経路点P4までの区間を第4セクション、経路点P4の直後から経路点P5までの区間を第5セクション、経路点P5の直後から経路点P6までの区間を第6セクションと設定している。
また、走行経路RT1では、隣接する経路点P間の走行距離は全て2mとなるので、各セクション内の走行距離は全て同一となる。よって、走行経路RT1について、経路点P0の直後から順番に0.05m間隔で仮想的に走行制御点Qを生成すると、ID番号が40の倍数になる度に、その走行制御点Qが経路点Pに重なる。具体的には、ID番号=40の走行制御点Qが経路点P1と重なり、ID番号=80の走行制御点が経路点P2と重なる。
従って、第1セクション内には、ID番号が1から40までの走行制御点Qが仮想的に生成され、第2セクション内には、ID番号が41から80までの走行制御点Qが仮想的に生成される。以下同様に、第3セクション内にはID番号が81から120まで、第4セクション内にはID番号が121から160までの走行制御点Qが仮想的に生成される。なお、第5セクションや第6セクションについても同様である。故に、走行経路RT1内では、CPU91は、走行制御点QのID番号に基づいて、その走行制御点Qがどのセクションの走行制御点Qであるかを識別することができる。
なお、上述したように、走行経路(後退旋回部)RT2は、車両1が同一の操舵角δで後退旋回するように走行経路が決定され、走行経路(最終後退部)RT3は、車両1が後退直進するように走行経路が決定される。つまり、走行経路RT2,RT3は、互いに接近したり、交差することのない経路となり、車両1は常に後退するので、走行経路RT2,RT3は、実質的には一つのセクションと見なすことができる。
ここで、図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において、駐車可能条件が成立しているかが判定され(図9のS34参照)、駐車可能条件が成立していなければ、別の仮の走行経路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、車輪回転センサ23、第1から第3までの各距離センサ24a〜24c、自動駐車スイッチ25及びその他の入出力装置99などが接続されている。
CPU91は、バスライン94によって接続された各部を制御する演算装置であり、フラッシュメモリ92は、CPU91によって実行される制御プログラムや固定値データ等を記憶するための書換不能な不揮発性のメモリである。なお、後述する図8のフローチャートに示す自動駐車処理、図9のフローチャートに示す点経路生成処理、図10のフローチャートに示すパターン走行部制御点生成処理、図12のフローチャートに示す後退旋回部制御点生成処理、図14のフローチャートに示す最終後退部制御点生成処理、図20のフローチャートに示すセクション走行処理、図21のフローチャートに示すセクション内障害物確認処理、図24のフローチャートに示す障害物種別判定処理、図25のフローチャートに示すセクション外走行処理、図26のフローチャートに示すセクション外障害物確認処理を実行する各プログラムは、フラッシュメモリ92に格納されている。
また、フラッシュメモリ92には、車両情報メモリ92aと、障害物判定領域メモリ92bと、経路パターンメモリ92cと、判断条件式メモリ92dと、動的障害物移動待ち時間メモリ92eと、静的障害物確認時間メモリ92fとが設けられている。
車両情報メモリ92aは、車両1の車長Lと、車両1の横幅Wとが格納されている(図18(a)参照)。また、車両1の前後軸上であって、車両1の基準点から車両1の後面までの距離が、車両1の中心後面距離Lgとして格納されている(図18(a)参照)。また、車両1における前輪2FL,2FRの車軸と、車両1における後輪2RL,2RRの車軸との軸間距離が、ホイールベースWLとして格納されている(図示せず)。
障害物判定領域メモリ92bは、車両1の車両位置および車両方位が定められた場合に、その車両位置において車両1が占有する領域(以下、「障害物判定領域E」と称する)(図18(a)参照)を算出するための各種定数が格納されているメモリである。この障害物判定領域Eは、車両1全体を囲む矩形状の領域で構成されており、車両1の前後方向の距離が「L+ΔL」に設定され、車両1の側面方向の距離が「W+ΔW」に設定されている。
より具体的には、障害物判定領域Eは、車両1の前面および後面から、車両1の前方および後方にそれぞれ「ΔL/2」長く、車両1の左側面および右側面から、車両1の左側面方向および右側面方向にそれぞれ距離「ΔW/2」長い領域となっている。これは、車両1を障害物に接触させることなく安全に自律走行させるために設けられたマージンである。なお、本実施形態では、車両1そのものが走行中に占有する領域ではなく、車両1の障害物判定領域Eが停車中や走行中に占有する領域を、車両1の走行領域としている。
また、この障害物判定領域Eは、通過予定領域KFを形成するための領域である。詳細については後述するが、車両1が走行経路RT1を自律走行している場合は、車両1が現在走行しているセクションのうち、車両1の現在位置からそのセクションの終端までの各走行制御点Qに対応する障害物判定領域Eを足し合わせたものを、通過予定領域KFとしている。一方、車両1が走行経路RT2〜RT3を自律走行している場合は、走行経路RT2〜RT3のうち、車両1の現在位置から目標とする駐車位置までの各走行制御点Qに対応する障害物判定領域Eを足し合わせたものを、通過予定領域KFとしている。
障害物判定領域メモリ92bには、障害物判定領域Eにおける車両1の進行方向の距離「L+ΔL」と、障害物判定領域Eにおける車両1の側面方向の距離「W+ΔW」とが格納されている。また、車両1の基準点から障害物判定領域Eにおける右前の頂点までの直線距離M1(図18(a)参照)と、その直線および車両1における左右の後輪2RL,2RRの車軸がなす角度αと、車両1の基準点から障害物判定領域Eにおける右後の頂点までの直線距離M2(図18(a)参照)と、その直線および車両1における左右の後輪2RL,2RRの車軸がなす角度βが格納されている。
詳細については後述するが、車両情報メモリ92aおよび障害物判定領域メモリ92bに格納されている各値は、車両1の車両位置および車両方位が定められた場合に、その車両位置に対応する障害物判定領域Eの4つの頂点の位置情報を算出するために、CPU91によって使用される。
経路パターンメモリ92cは、上述した10種類の経路パターンPT1〜PT10が格納されているメモリである。判断条件式メモリ92dは、走行経路RT1〜RT3上に障害物が存在するか否かを判定するために用いる判断条件式が16種類格納されているメモリである。判断条件式とは、走行制御点Qに対応する障害物判定領域E内に、障害物があるか無いかを判定するための一次不等式である。16種類の判断条件式の詳細については、図22を参照しつつ後述するが、走行制御点Qにおいて判断条件式が成立する場合には、走行制御点Qに対応する障害物判定領域E内に障害物があることを示し、判断条件式が不成立の場合には、障害物判定領域E内に障害物が無いことを示す。
上述したように、本実施形態では、車両1が走行経路RT1を自律走行している場合、車両1が現在走行しているセクション内のうち、車両1の現在位置からそのセクションの終端までの走行領域(通過予定領域)KF内に障害物が存在するか否かを監視する。その場合、まず、車両1が現在走行しているセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを特定する。
そして、特定した走行制御点Qから現在走行中のセクション内における最後の走行制御点Qまでの連続して並ぶ各走行制御点Qごとに、判断条件式を1種類選択し、その判断条件式を用いて障害物判定領域E内に障害物が入らないかを判定している。各走行制御点Qの障害物判定領域Eは何れも、車両1がこれから通過する予定の領域なので、各走行制御点Qの障害物判定領域Eを足し合わせた領域は、通過予定領域KFとなる。よって、各走行制御点Qについて、障害物判定領域E内に障害物が入らないかを判定することで、通過予定領域KF内の障害物の有無を判定できる。
一般的に、走行経路RT1〜RT3上に障害物が存在するか否かは、実際に車両1を走行させて、車両1の走行中にその車両1の障害物判定領域Eの中に障害物が入ったか否かなどにより判定される。この場合、障害物判定領域Eは、車両1の車両位置を基準に設定されるので、車両1の走行中や停車中に関わらず、車両1から見て障害物判定領域Eは常に同じ位置に固定された状態となる。
一方、本実施形態のように、車両1がこれから走行する予定の走行経路RT1〜RT3上に障害物が存在するか否かを確認する場合には、車両1が走行する予定の走行経路RT1〜RT3に沿って障害物判定領域Eを算出する必要があるが、それぞれの障害物判定領域Eを車両1の現在位置から見ると、車両1が走行する予定の車両位置および車両方位に応じて障害物判定領域Eが適宜回転する。
そこで、本実施形態では、走行経路RT1〜RT3上の車両位置および車両方位に応じて、障害物判定領域Eを算出し、その障害物判定領域E内に障害物が存在するかを判定していく。また、本実施形態では、その判定処理を簡略化するために、障害物判定領域E内に障害物が存在するかを判定するための一次不等式を判断条件式として16種類設けており、それらを判断条件式メモリ92dに記憶している。
16種類の判断条件式の詳細については、図22を参照しつつ後述するが、判断条件式を用いて判定を行う場合には、走行制御点Qにおける車両1の車両方位θvと、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置情報I1〜I4とに応じて、16種類の条件式の中から1種類の判断条件式を選択し、その選択した判断条件式の中に、走行制御点Qにおける障害物判定領域Eの4つの頂点の位置に基づく定数a12,a23,a34,a41,b12,b23,b34,b41と、障害物の位置情報とを代入する。そして、代入した結果、判断条件式が成立する場合には、障害物判定領域E内に障害物が存在すると判定し、判断条件式が不成立の場合には、障害物が存在しないと判定する。このように、予め判断条件式を設けておくことにより、障害物判定領域E内に障害物が存在するか否かを判定する処理を単純化できるので、制御的負担を軽減できる。
動的障害物移動待ち時間メモリ92eは、動的障害物移動待ち時間TDが格納されるメモリである。動的障害物移動待ち時間TDは、通過予定領域KF内に障害物が存在するため車両1を停車させた後、その障害物が動的障害物と特定された場合に車両1を停車させた状態で待機させる時間である。仮に、通過予定領域KF内に障害物が存在している場合でも、それが動的障害物であれば、その動的障害物は通過予定領域KFの外に移動する可能性が高い。
そこで、本実施形態では、通過予定領域KF内に存在する動的障害物が、通過予定領域KFの外へ移動すると想定される時間を動的障害物移動待ち時間TDとしている。尚、この動的障害物移動待ち時間TDは、適宜設定すれば良い。
通過予定領域KF内に障害物が存在するため車両1を停車させた後、通過予定領域KF内の障害物が動的障害物であると特定されると、車両1の停車時間が、動的障害物移動待ち時間TDを経過したかが判定される(図20のS127参照)。そして、車両1の停車時間が動的障害物待ち時間TDを経過するまでの間続けて、通過予定領域KF内に障害物が存在した場合には、今後の車両1の走行内容(例えば、走行経路の再生成、最終目的地の変更など)が選択される。
一方、車両1の停車時間が動的障害物移動待ち時間TDを経過するまでに、通過予定領域KF内の障害物がその外に移動した場合には、車両1の走行が再開される。よって、通過予定領域KF内に障害物が存在すると判定された場合に、待機時間を設けることなく直ぐに、走行経路を再生成したり、目標位置を変更する場合よりも、制御的負担を軽減できる。
静的障害物確認時間メモリ92fは、静的障害物確認時間TSが格納されるメモリである。静的障害物確認時間TSは、通過予定領域KF内に障害物が存在するため車両1を停車させた後、その障害物が静的障害物と特定された場合に車両1を停車させた状態で待機させる時間である。仮に、通過予定領域KF内に障害物が存在している場合、それが静的障害物であれば、その静的障害物は通過予定領域KFの外に移動する可能性が低い。
しかしながら、障害物が静的障害物であると特定されたものの、実際には動的障害物であって、特定された時にたまたま停止していたという場合もあるので、本実施形態では、障害物が静的障害物であるかを再確認するために、動的障害物であれば存在する場所が移動すると想定される時間を静的障害物確認時間TSとしている。尚、この静的障害物確認時間TSは、適宜設定すれば良い。
通過予定領域KF内に障害物が存在するため車両1を停車させた後、通過予定領域KF内の障害物が静的障害物であると特定されると、車両1の停車時間が、静的障害物確認時間TSを経過したかが判定される(図20のS128参照)。そして、車両1の停車時間が静的障害物確認時間TSを経過するまでの間続けて、通過予定領域KF内に障害物が存在した場合には、今後の車両1の走行内容(例えば、走行経路の再生成、最終目的地の変更など)が選択される。
一方、車両1の停車時間が静的障害物確認時間TSを経過するまでに、通過予定領域KF内の障害物がその外に移動した場合には、車両1の走行が再開される。よって、通過予定領域KF内に障害物が存在すると判定された場合に、待機時間を設けずに直ぐに、走行経路を再生成したり、目標位置を変更する場合よりも、制御的負担を軽減できる。
RAM93は、書換可能な揮発性のメモリであり、CPU91によって実行される制御プログラムの実行時に各種のデータを一時的に記憶するためのメモリである。RAM93には、車両周囲情報メモリ93aと、点経路パターンメモリ93bと、点経路メモリ93cと、走行制御点メモリ93dと、最大インデックス番号メモリ93eと、最大セクション数メモリ93fと、走行中セクション番号メモリ93gと、障害物検出位置メモリ93hと、動的障害物フラグメモリ93iとが設けられている。
車両周囲情報メモリ93aは、車両1の周囲に存在する障害物の位置情報が記憶されるメモリである。本実施形態では、第1から第3までの各距離センサ24a〜24cから出力される走査結果が、CPU91により一つの走査結果に合成されて、車両1の全周囲の走査結果が作成される。そして、その車両1の全周囲の走査結果が、車両周囲情報メモリ93aに記憶される。なお、車両周囲情報メモリ93aに記憶される走査結果は、各距離センサ24a〜24cによる走査が終了する度(例えば、100ms)に更新される。
車両周囲情報メモリ93aに記憶される走査結果は、走行制御装置100が現在位置から目標とする駐車位置まで車両1を自律走行させている間、通過予定領域KF内に障害物が存在しないことを確認するために、CPU91によって参照される(図20のS118、図25のS174参照)。また、通過予定領域KF内に障害物が存在した場合に、その通過予定領域KF内の障害物が動的障害物であるか静的障害物であるかの種別を特定するために、CPU91によって参照される(図20のS125参照)。
点経路パターンメモリ93bは、パターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせが記憶されるメモリである。点経路パターンメモリ93bは、後述する自動駐車処理(図8参照)が実行された場合に、CPU91によりクリアされる。そして、現在位置から目標とする駐車位置までの走行経路RT1〜RT3全体がCPU91により生成された場合に、そのパターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせが記憶される。
この点経路パターンメモリ93bに記憶される経路パターン番号「PT1〜PT10」の組み合わせは、走行経路RT1〜RT3上の各経路点Pにおいて、車両1が前進しているか後退しているかの状態を取得する場合や、切り返しの有無の状態を取得する場合に参照される(図10のS59、図12のS80、図14の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に記憶する(図9のS43参照)。この点経路メモリ93cに記憶されている各経路点Pの経路点情報は、走行制御点Qを生成するために参照される。
走行制御点メモリ93dは、走行経路RT1〜RT3に対して生成される点である各走行制御点Qの車両設定情報が記憶されるメモリである。上述したように、走行制御点Qは、走行制御装置100が車両1を走行経路RT1〜RT3に沿って自律走行させる場合に、進行方向などの車両1の走行状態を制御するための点である。
本実施形態では、走行経路RT1〜RT3に対して走行制御点Qが生成される場合、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qが生成される(図8のS8,S9,S10参照)。なお、経路点P0(車両1の出発位置)を除く各経路点P上には、必ず走行制御点Qが生成される。そして、各走行制御点Qごとに、車両設定情報が生成されると共に、その走行制御点Qを識別するためのID番号が設定され、生成された走行制御点Qの車両設定情報と、設定された走行制御点QのID番号とが関連づけられて、この走行制御点メモリ93dにそれぞれ記憶される。
ここで、図7を参照して、走行制御点メモリ93dの内容の一例について説明する。図7は、走行制御点メモリ93dの内容の一例を示す模式図である。図7に示すように、走行制御点メモリ93dには、各走行制御点Qの車両設定情報を示すテーブルが記憶される。このテーブルは、各走行制御点Qに対応する車両設定情報が、その走行制御点Qに対応するID番号に関連づけられている状態を示している。また、このテーブルでは、各車両設定情報がID番号順に並べられている。
各走行制御点Qの車両設定情報は、走行制御点Qにおける車両1の車両位置と、走行制御点Qにおける車両1の車両方位と、走行制御点Qにおける車両1の操舵角δと、走行制御点Qにおける進行方向フラグと、走行制御点Qにおける切り返し判定フラグとにより構成される。そして、これらの各走行制御点Qの車両設定情報には、それぞれID番号が関連づけられている。
例えば、車両設定情報にID番号1から40までの何れかが関連づけられている場合は、その車両設定情報が第1セクション内の車両設定情報であることを意味し、ID番号121から160までの何れかが関連づけられている場合は、その車両設定情報が第4セクション内の車両設定情報であることを意味する。なお、テーブルにおけるID番号の最大値は、最大インデックス番号IDmaxとして、後述する最大インデックス番号メモリ93eに記憶されている。
車両位置と、車両方位と、操舵角δと、ID番号とについては上述したので、その説明を省略する。進行方向フラグは、走行制御点Qにおいて車両1が前進するか、後退するかを示すフラグであり、走行制御点Qにおいて車両1が前進する場合には「1」に設定される一方、車両1が後退する場合には「−1」に設定される。切り返し判定フラグは、走行制御点Qにおいて車両1が前進または後退を切り替えるかを示すフラグであり、走行制御点Qにおいて車両1が前進または後退を維持し走行する場合には「0」に設定される一方、車両1が前進を後退に切り替える場合や、車両1が後退を前進に切り替える場合には「1」に設定される。
CPU91は、走行経路RT1〜RT3のうち、パターン走行部RT1を車両1が自律走行している場合、所定間隔(例えば、50ms)ごとに、車両1の走行すべきセクションを特定すると共に、その特定したセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定する。そして、その特定した走行制御点Qに対応する車両設定情報を走行制御点メモリ93dから取得して、その車両設定情報に基づいて車両1の走行状態を設定し、車両1を自律走行させる。
一方、CPU91は、後退旋回部RT2、または、最終後退部RT3を車両1が自律走行している場合、所定間隔(例えば、50ms)ごとに、後退旋回部RT2および最終後退部RT3の走行制御点Qのうち、車両1の現在位置に最も近い走行制御点Qを一つ特定する。そして、その特定した走行制御点Qに対応する車両設定情報を走行制御点メモリ93dから取得して、その車両設定情報に基づいて車両1の走行状態を設定し、車両1を自律走行させる。
ここで、図6の説明に戻る。最大インデックス番号メモリ93eは、各走行制御点Qごとに設定されたID番号の最大値を示す最大インデックス番号IDmaxが記憶されるメモリである。最大インデックス番号IDmaxは、自動駐車処理(図8参照)が実行されると、パターン走行部制御点生成処理(図10参照)において1に初期化される。そして、パターン走行部制御点生成処理(図10参照)や、後退旋回部制御点生成処理(図12参照)や、最終後退部制御点生成処理(図14参照)が実行されて、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。そして、最終的には、最終目的地(原点O)に重なる走行制御点QのID番号が設定される。
CPU91は、後退旋回部RT2、または、最終後退部RT3を車両1が自律走行している場合、車両1の現在位置と、最終目的地(原点O)との距離が、所定距離(例えば、0.1m)以内になると、車両1が最終目的地に到着したと判定する。
最大セクション数メモリ93fは、パターン走行部RT1について設定されたセクションの最大値を示す最大セクション数SCmaxが記憶されるメモリである。上述したように、走行経路RT1〜RT3のうち、パターン走行部RT1については、経路パターンPT1〜PT10に対応する走行経路ごとにセクションが設定される(図2参照)。最大セクション数SCmaxには、パターン走行部RT1が生成された場合に、そのパターン走行部RT1を生成するために組み合わされた経路パターンPT1〜PT10の合計数が設定される(図9のS44参照)。
CPU91は、車両1にパターン走行部RT1を自律走行させる場合、まず、車両1に第1セクションを自律走行させる。その後、第2セクション、第3セクション、・・・というように、最大セクション数SCmaxが示す値のセクションまで、セクション単位で、車両1を自律走行させる。このように、車両1をセクション単位で走行させることにより、車両1が現在走行しているセクションと、他のセクションとが接近していたり、交差している場合でも、車両1が他のセクションを走行し始めることなく、車両1が現在走行中のセクションを継続して走行できる。
走行中セクション番号メモリ93gは、現在走行中のセクション番号を示す走行中セクション番号SCが記憶されるメモリである。CPU91は、走行中セクション番号SCを参照することで、現在走行中のセクションを特定する。走行中セクション番号SCは、車両1が自律走行を開始する場合に1に初期化され(図20のS111参照)、車両1が現在走行中のセクション内における最後の走行制御点Qに車両1が到達する度に、1が加算される(図20のS115参照)。
よって、車両1が全てのセクション(即ち、パターン走行部RT1)を走行し終えると、走行中セクション番号SCが、上述した最大セクション数SCmaxを超える。CPU91は、走行中セクション番号SCが、最大セクション数SCmax以下であれば、車両1に走行経路RT1をセクション単位で走行させるセクション走行処理(図8のS14参照)を実行し、走行中セクション番号SCが、最大セクション数SCmaxを超えていれば、車両1に走行経路RT2,RT3を走行させるセクション外走行処理(図8のS17参照)を実行する。
障害物検出位置メモリ93hは、上述した車両周囲情報メモリ93aに記憶されている障害物の位置情報のうち、通過予定領域KF内に存在する障害物の位置情報が記憶されるメモリである。
CPU91は、車両1が走行経路RT1を自律走行している場合、車両1が現在走行しているセクション内の走行制御点Qうち、車両1の現在位置から最も近い走行制御点Qを特定する。そして、特定した走行制御点Qから現在走行中のセクション内における最後の走行制御点Qまでの連続して並ぶ各走行制御点Qごとに、判断条件式を1種類選択し、その判断条件式を用いて障害物判定領域E内に障害物が入らないかを判定する。
そして、障害物判定領域E内に障害物が入った場合には、その障害物の位置情報を、障害物検出位置メモリ93hに記憶し(図21のS147、図26のS207参照)、各走行制御点Qの障害物判定領域Eの何れにも障害物が入らなかった場合には、障害物検出位置メモリ93hをクリアする(図21のS146、図26のS206参照)。
この障害物検出位置メモリ93hは、通過予定領域KF内に存在する障害物が、動的障害物であるか静的障害物であるかの種別を特定するために、CPU91により参照される。詳細については後述するが、障害物位置検出メモリ93hに障害物の位置情報が記憶されると、所定時間が経過した後に、障害物位置検出メモリ93hに記憶されている位置情報に対応する障害物判定領域E内に、障害物が存在するか否かが再度判定される。
ここで、障害物判定領域E内に障害物が存在していれば、その障害物は所定時間経過した後も同じ場所に留まっていたため、静的障害物であると特定される。一方、障害物判定領域E内に障害物が存在していなければ、その障害物は同じ場所に留まらず移動しているため、動的障害物であると特定される。
動的障害物フラグメモリ93iは、通過予定領域KF内に存在する障害物が動的障害物であるか静的障害物であるかの種別を示す動的障害物フラグが記憶されるメモリである。動的障害物フラグは、通過予定領域KF内に存在する障害物が動的障害物と特定された場合にオンに設定され(図24のS163参照)、静的障害物であると特定された場合にオフに設定される(図24のS164参照)。
より具体的には、通過予定領域KFの構成単位である障害物判定領域E内に障害物が存在すると判定されてから所定時間が経過した場合に、その障害物が存在すると判定された障害物判定領域E内に障害物が存在していれば、オフに設定される。即ち、所定時間が経過した後も、同一の障害物判定領域E内に障害物が留まっている場合に、オフに設定される。
一方、障害物判定領域E内に障害物が存在すると判定されてから所定時間が経過した場合に、その障害物が存在すると判定された障害物判定領域E内に障害物が存在していなければ、オンに設定される。即ち、所定時間が経過するまでに、障害物が存在すると判定された障害物判定領域Eの中からその障害物が外へ移動した場合に、オンに設定される。この動的障害物フラグは、通過予定領域KF内に障害物が存在すると判定されて、車両1を停車させた場合に参照される。
詳細については後述するが、車両1が停車すると、その後、車両1の停車時間が計時され、その停車時間に応じて、車両1の走行内容が決定される。ここで、動的障害物フラグがオンであれば、車両1の停車時間が、動的障害物移動待ち時間TDを経過したかが判定され(図20のS127、図25のS182参照)、動的障害物フラグがオフであれば、車両1の停車時間が、静的障害物確認時間TSを経過したかが判定される(図20のS128、図25のS183参照)。
車両1の停車時間が動的障害物フラグに応じた時間を経過すると、即ち、通過予定領域KF内に障害物が存在し続けた場合には、今後の車両1の走行内容(例えば、走行経路の再生成、最終目的地の変更など)が選択される。一方、車両1の停車時間が動的障害物フラグに応じた時間を経過する前に、通過予定領域KF内に障害物が存在しなくなると、車両1は再び走行を再開する。
次に、図8〜図26までのフローチャートと、模式図とを参照して、車両1に搭載された走行制御装置100のCPU91により実行される自動駐車処理について説明する。図8は、走行制御装置100により実行される自動駐車処理を示すフローチャートである。自動駐車処理は、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものであり、運転者により自動駐車スイッチ25が押下された場合に実行される。
自動駐車処理では、まず、運転者が目標とする駐車位置を最終目的地として取得し、その最終目的地に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oに決定する(S1)。例えば、車両1の車内に設けられているタッチパネル(図示せず)上に、車両1の周囲画像を表示し、運転者に駐車位置を入力するように報知する。そして、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を算出して、原点Oとする。
次に、現在地点を出発地点とし(S2)、その後、RAM93の点経路パターンメモリ93bをクリアする(S3)。そして、点経路生成処理を実行する(S4)。ここで、図9を参照して、車両1に搭載された走行制御装置100のCPU91により実行される点経路生成処理について説明する。図9は、走行制御装置100により実行される点経路生成処理を示すフローチャートである。点経路生成処理は、出発地点から最終目的地までの走行経路RT1〜RT3全体を生成するための処理である。
点経路生成処理では、変数aに0を設定し、変数mに6を設定して、変数a,mの初期設定を行い(S31)、10の経路パターン番号「PT1〜PT10」のうち、重複を許すa個の経路パターン番号で構成される重複順列の中から、順列を一つ取得する(S32)。なお、ここでは、経路パターン番号の小さいものから順に、重複順列を一つずつ取得する。例えば、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」が取得される。
次に、S32の処理で取得した重複順列に対応する走行経路RT1を生成し、その到着地点を取得する(S33)。なお、上述したように、本実施形態では、走行経路を生成する場合、走行経路を示す経路点Pが生成される。次に、走行経路RT1を示す各経路点Pのうち、到着地点を示す経路点Pにおいて、駐車可能条件が成立しているかを判定する(S34)。
尚、本実施形態では、S31の処理において、a=1と初期設定せずに、a=0と初期設定を行っている。これは、S34の処理により、出発地点において駐車可能条件が成立しているかを判定するためである。もし、a=1と初期設定すると、必ず走行経路RT1を生成することになり、出発地点において駐車可能条件が成立する場合には、無駄な走行経路RT1を生成してしまう。よって、a=0と初期設定することにより、無駄な走行経路RT1の生成を抑制でき、処理コストを抑制できる。
S34の判定が否定される場合には(S34:No)、a個の経路パターン番号で構成される重複順列を全て取得したかを判定する(S35)。S35の判定が否定される場合には(S35:No)、S32の処理に戻る。S35の判定が肯定される場合には(S35:Yes)、変数aの値が、変数mの値未満であるかを判定する(S36)。S36の判定が肯定される場合には(S36:Yes)、変数aに1を加算して(S37)、S32の処理に戻る。
S36の判定が否定される場合は(S36:No)、予め規定していた重複順列を全て取得したが、走行経路RT1〜RT3が見つからなかった場合なので、RAM93の点経路メモリ93cをクリアして(S38)、点経路生成処理を終了し、自動駐車処理(図8参照)に戻る。
一方、S34の判定が肯定される場合には(S34:Yes)、S32の処理で取得した経路パターン番号の重複順列を、RAM93の点経路パターンメモリ93bに記憶し(S39)、S33の処理で生成した走行経路(経路点P)を、パターン走行部RT1とする(S40)。
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S41)、最終後退部RT3の経路点Pを決定する(S42)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位)を点経路メモリ93cに記憶する(S43)。次に、パターン走行部RT1を生成するために組み合わせた経路パターンPT1〜PT10の合計数である変数aの値を、最大セクション番号SCmaxとして、最大セクション数メモリ93fに記憶する(S44)。そして、この点経路生成処理を終了し、自動駐車処理(図8参照)に戻る。
ここで、図8の説明に戻る。点経路生成処理(S4)が終了したら、次に、S4の処理によって走行経路RT1〜RT3が生成されたかを判定する(S5)。S5の判定が否定される場合は(S5:No)、最終目的地までの走行経路が見つからなかった場合なので、最終目的地までの走行経路が無いことを運転者に報知して(S16)、S21の処理へ移行する。
一方、S5の判定が肯定される場合には(S5:Yes)、RAM93の最大インデックス番号メモリ93eに1を記憶して、最大インデックス番号IDmaxの初期設定を行う(S6)。そして、後述するS7〜S10の処理を実行して、S4の処理で生成した走行経路RT1〜RT3に対する走行制御点Qを生成する。
具体的には、まず、最大セクション数メモリ93fに記憶されている最大セクション数SCmaxが0より大きいかを判定し(S7)、S7の判定が肯定される場合は(S7:Yes)、パターン走行部制御点生成処理を実行して(S8)、パターン走行部RT1に対する走行制御点Qを生成する。そして、S9処理へ移行する。
一方、S7の判定が否定される場合は(S7:No)、出発地点において駐車可能条件が成立した場合である。この場合は、パターン走行部RT1が存在しないので、S8の処理をスキップして、S9の処理へ移行する。S9の処理では、後退旋回部制御点生成処理を実行して(S9)、後退旋回部RT2に対する走行制御点Qを生成する。その後、最終後退部制御点生成処理を実行して(S10)、最終後退部RT3に対する走行制御点Qを生成する。
このように、本実施形態では、上述した点経路生成処理(S4)が実行され、走行経路RT1〜RT3が生成された場合(S5:Yesの場合)に限り、S6〜S10の各処理が実行されて、走行経路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の走行状態を制御できる。
ここで、図10〜図15を参照して、パターン走行部制御点生成処理(S8)、後退旋回部制御点生成処理(S9)、最終後退部制御点生成処理(S10)について説明する。まず、図10を参照して、パターン走行部制御点生成処理(S8)について説明する。図10は、走行制御装置100により実行されるパターン走行部制御点生成処理を示すフローチャートである。
パターン走行部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、パターン走行部RT1に対する走行制御点Qを生成するための処理であり、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成する。パターン走行部RT1では、隣接する経路点P間の走行距離CLが全て2mとなるので、隣接する経路点P間には常に41個の走行制御点Qが必要となるが、このパターン走行部制御点生成処理では、出発地点に近い側の経路点Pに重なる走行制御点は生成せずに、それ以外の40個の走行制御点Qを生成する。
より具体的には、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成する。そして、順番に走行制御点Qを生成し、40番目の走行制御点Qが第2経路点Pに重なるようにしている。
パターン走行部制御点生成処理では、まず、変数jに0を設定し、変数nに40を設定して、変数j,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における前輪2FL,2FRの車軸と、車両1における後輪2RL,2RRの車軸との軸間距離をホイールベース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から0.05mだけ第2経路点Pに近づく走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
ここで、図11を参照して、パターン走行部RT1に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図11は、走行経路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
により算出される。図10の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から0.05mだけ第2経路点Pに近づく走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
以上の図11を参照して説明した数式を用いることにより、パターン走行部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を運転者に提供できる。
ここで、図10の説明に戻る。そして、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S59)。S59の処理において、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、何番目の走行制御点Qかに関係なく、全て同じ方向(前進または後退)を示す値が取得される。
なお、進行方向は、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜RT10に基づいて一意に決まり、点経路パターンメモリ93bの内容に基づいて取得される。より具体的には、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜PT10が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であれば、進行方向として前進を示す値が取得される。一方、車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、進行方向として後退を示す値が取得される。
また、切り返しの有無は、第2経路点Pに重なる走行制御点Qを除き、切り返しなしを示す値が取得される。そして、第2経路点Pと重なる走行制御点Qについては、切り返しの有無が、点経路パターンメモリ93bの内容に基づいて取得される。より具体的には、第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に対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93dに記憶する(S60)。
上述したように、最大インデックス番号IDmaxは、図8のS6の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけていくことができる。
なお、S59の処理において、進行方向として前進を示す値が取得されていれば、S60の処理では、進行方向フラグが「1」に設定され、進行方向として後退を示す値が取得されていれば、進行方向フラグが「−1」に設定される。また、S59の処理において、切り返しの有無として切り返しなしを示す値が取得されていれば、S60の処理では、切り返しフラグが「0」に設定され、切り返しの有無として切り返しありを示す値が取得されていれば、切り返しフラグが「1」に設定される。
また、S60の処理において、走行制御点Qの車両設定情報を走行制御点メモリ93dに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する(図7参照)。
S60の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新し、その値を最大インデックス番号メモリ93eに記憶する(S61)。
次に、変数iの値が、変数nの値未満であるかを判定し(S62)、S62の判定が肯定される場合には(S62:Yes)、変数iに1を加算して(S63)、S58の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、40個の走行制御点Qを順番に生成する。
一方、S62の判定が否定される場合は(S62:No)、第1経路点Pから第2経路点Pの間に、40個の走行制御点Qを設定した場合なので、パターン走行部RT1の走行制御点Qを全て生成したかを判定する(S64)。
S64の判定が否定される場合には(S64:No)、変数jに1を加算して(S65)、S52の処理に戻り、次の経路点P間についても、40個の走行制御点Qを生成する。S64の判定が肯定される場合には(S64:Yes)、パターン走行部制御点生成処理(S8)を終了して、自動駐車処理(図8参照)に戻る。
尚、S60の処理が実行された場合に、パターン走行部RT1における最後の走行制御点Qの車両設定情報が走行制御点メモリ93dに記憶されると、その後、S61の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S62の判定が否定されてS62:Noへ分岐し、更に、S64の判定が否定されてS64:Noへ分岐して、パターン走行部制御点生成処理が終了する。
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する後退旋回部制御点生成処理が実行された場合に、後退旋回部RT2における最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
次に、図12を参照して、後退旋回部制御点生成処理(S9)について説明する。図12は、走行制御装置100により実行される後退旋回部制御点生成処理を示すフローチャートである。
後退旋回部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、後退旋回部RT2に対する走行制御点Qを生成するための処理であり、後退旋回部RT2を示す2つの各経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、後退旋回部RT2は、パターン走行部RT1のように走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
尚、後退旋回部制御点生成処理でも、パターン走行部制御点生成処理(図10参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第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から0.05mだけ第2経路点Pに近づく走行制御点Qとなり、n番目の走行制御点Qは、第2経路点Pに重なるようにしている。
ここで、図13を参照して、後退旋回部RT2に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図13は、走行経路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が同一の操舵角δで後退旋回するように走行経路が決定される(図9のS41参照)。よって、後退旋回部RT2が決定された場合には、その旋回中心K(xk,yk)と、旋回半径Rとが確定する。
従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位π/2との変化量をΔθとした場合、その変化量Δθは、
Δθ=θv0−π/2
により算出される。図12のS77の処理では、この式により車両方位の変化量Δθを算出する。そして、第1経路点Pv0から第2経路点Pvnまでの走行距離CLは、
CL=R・Δθ
により算出される。
故に、第1経路点Pv0から第2経路点Pvnまでの間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=R・Δθ/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図12の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から0.05mだけ第2経路点Pに近づく走行制御点Qとなり、第1経路点Pv0からn番目の走行制御点Qは、第2経路点Pvnと重なるようにしている。
以上の図13を参照して説明した数式を用いることにより、後退旋回部RT2の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、後退旋回部RT2に対応する各走行制御点Qを全て生成できる。
ここで、図12の説明に戻る。次に、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S80)。なお、S80の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。
S80の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93dに記憶する(S81)。
上述したように、最大インデックス番号IDmaxは、図8のS6の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。また、図8のS7の判定において、S7の判定が肯定されていれば、上述したパターン走行部制御点生成処理(図10参照)が実行された後である。よって、最初にS80の処理が実行される場合には、図10のS61の処理により、最大インデックス番号IDmaxが、後退旋回部RT2の最初のID番号に更新されている。
従って、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT2まで通して連続するIDを、各走行制御点Qの車両設定情報に順番に関連づけることができる。
一方、図8のS7の処理において、S7の判定が否定されていれば、上述したパターン走行部制御点生成処理(図10参照)がスキップされるので、最大インデックス番号IDmaxは1に初期設定された状態である。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけることができる。
なお、ここでは、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93dに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
S81の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新し、その値を最大インデックス番号メモリ93eに記憶する(S82)。次に、変数iの値が、変数nの値未満であるかを判定し(S83)、S83の判定が肯定される場合には(S83:Yes)、変数iに1を加算して(S84)、S79の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S83の判定が否定される場合は(S83:No)、n個の走行制御点Qを全て生成した場合なので、後退旋回部制御点生成処理(S9)を終了して、自動駐車処理(図8参照)に戻る。
尚、S81の処理が実行された場合に、後退旋回部RT2における最後の走行制御点Qの車両設定情報が走行制御点メモリ93dに記憶されると、その後、S82の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S83の判定が否定されてS83:Noへ分岐して、パターン走行部制御点生成処理が終了する。
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する最終後退部制御点生成処理が実行された場合に、最終後退部RT3における最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
次に、図14を参照して、最終後退部制御点生成処理(S10)について説明する。図14は、走行制御装置100により実行される最終後退部制御点生成処理を示すフローチャートである。
最終後退部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、最終後退部RT3に対する走行制御点Qを生成するための処理であり、最終後退部RT3を示す2つの経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、最終後退部RT3は、後退旋回部RT2と同様に走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
尚、最終後退部制御点生成処理でも、パターン走行部制御点生成処理(図10参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
最終後退部制御点生成処理におけるS92〜S95,S97〜S100の各処理は、上述した図12の後退旋回部制御点生成処理におけるS72〜S75,S78〜S81の各処理と同様な処理であり、最終後退部制御点生成処理におけるS101,S102の各処理は、上述した図12の後退旋回部制御点生成処理におけるS83,S84の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S91,S96,S103)についてのみ詳細に説明する。
最終後退部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、最終後退部RT3を示す2つの各経路点Pを特定する(S91)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P7と、経路点P8とが特定される。そして、S92〜S95の各処理を実行し、次に、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S96)。なお、走行制御点Qの数を算出する数式については後述する。
そして、S97〜100の各処理を実行する。なお、最終後退部RT3では、車両1の前後軸がy軸と必ず重なる状態で、車両1が後退直進するため、車両方位が常にπ/2となる。よって、S99の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て0が取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。よって、S100の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。
また、上述したように、最大インデックス番号IDmaxは、図8のS6の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。最初にS100の処理が実行される場合は、図10のS61の処理や、図12のS82の処理が実行された後なので、最大インデックス番号IDmaxが、最終後退部RT3の最初のID番号に更新されている。
よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT3まで通して連続するIDを、各走行制御点Qの車両設定情報に関連づけることができる。
なお、走行制御点Qの車両設定情報を走行制御点メモリ93dに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
S100の処理が終了したら、次に、S101の処理を実行する。S101の判定が肯定される場合には(S101:Yes)、S102の処理を実行する。そして、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新し、その値を最大インデックス番号メモリ93eに記憶する(S103)。その後、S98の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S101の判定が否定される場合は(S101:No)、n個の走行制御点Qを全て生成した場合なので、最終後退部制御点生成処理(S8)を終了して、自動駐車処理(図8参照)に戻る。
尚、最終後退部制御点生成処理では、S100の処理が実行されて、走行制御点Qの車両設定情報が走行制御点メモリ93dに記憶された後、S101の判定が肯定された場合にだけ、S103の処理が実行され、最大インデックス番号IDmaxが更新される。
即ち、次に生成すべき走行制御点Qが存在する場合にだけ、最大インデックス番号IDmaxが更新されるので、最終後退部RT3における最後の走行制御点Qが生成された後には、最大インデックス番号IDmaxは更新されない。よって、最大インデックス番号IDmaxには最後の走行制御点QのID番号が設定される。
ここで、図15を参照して、最終後退部RT3に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図15は、走行経路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を後退直進させて停車できるように走行経路が決定される(図9の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が整数にならない場合は、少数点以下を切り上げて整数にする。図14の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から0.05mだけ第2経路点に近づく走行制御点Qとなり、第1経路点Pv0からn番目の走行制御点Qは、第2経路点Pvnと重なるようにしている。
以上の図15を参照して説明した数式を用いることにより、最終後退部RT3の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、最終後退部RT3に対応する各走行制御点Qを全て生成できる。
ここで、図8の説明に戻る。S7〜S10の処理が実行され、各走行経路RT1〜RT3に対する走行制御点Qが生成されたら、次に、運転者が目標とする駐車位置に車両1を駐車させることが可能であることを、運転者に報知する(S11)。
そして、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示されたか、又は、自律走行による駐車を中止することが運転者により指示されたかを判定し(S12)、自律走行による駐車を中止することが運転者により指示された場合には(S12:中止)、自動駐車処理を終了する。
一方、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S12:開始)、S13〜S15,S17の処理を実行して、車両1を走行経路RT1〜RT3に沿って自律走行させる。詳細については後述するが、S14のセクション走行処理(図20参照)が実行されると、車両1が走行経路RT1に沿って自律走行させられ、S17のセクション外走行処理(図25参照)が実行されると、車両1が走行経路RT2〜RT3に沿って自律走行させられる。
ここで、図16〜図19を参照して、車両1の自律走行の概略について説明する。図16(a)は、車両1が自律走行する場合に車両1に対して設定される障害物判定領域Eの一例を説明するための模式図である。なお、図16(a)に示す例では、障害物判定領域Eの一例として、経路点P0における障害物判定領域Eを示している。
また、図16(b),(c)、及び、図17(a)〜(d)は、車両1の移動に伴って大きさが変化する通過予定領域KFの一例を示す模式図である。なお、図16(b),(c)および図17(a)〜(d)では、ハッチングされている領域を通過予定領域KFとして示している。
上述したように、本実施形態では、走行経路RT1〜RT3のうち、パターン走行部RT1については、経路パターンPT1〜PT10に対応する走行経路ごとにセクションを設定している。よって、パターン走行部RT1や、走行経路RT1〜RT3全体を、単純に複数の区間に区切ることができる。従って、パターン走行部RT1や、走行経路RT1〜RT3全体を区切るための処理を単純なものとできるので、制御的負担を軽減できる。
例えば、図16(a)に示すように、走行経路RT1は、第1セクションから第6セクションまでの6個のセクションに区切られ、走行経路RT1〜RT3全体は、6個のセクションと、走行経路RT2〜RT3との7つの区間に区切られる。
走行制御装置100は、図16(a)に示すパターン走行部RT1を車両1に自律走行させる場合、まず、車両1に第1セクションを自律走行させ、その後、第2セクション、第3セクション、・・・、第6セクションというように、最大セクション数メモリ93fの最大セクション数SCmaxが示す数値のセクション(本実施形態では第6セクション)まで、セクション単位で、車両1を自律走行させていく。
また、走行制御装置100は、車両1が現在走行しているセクションのうち、車両1の現在位置からそのセクションの終端までの走行領域を、通過予定領域KF(車両1がこれから通過する予定の領域)と設定し、その通過予定領域KF内に障害物が存在するか否かを監視する。
そして、走行制御装置100は、通過予定領域KF内に障害物が存在しない間、車両1に走行中のセクション内を進行させて、走行経路RT1の終端まで車両1を自律走行させる。よって、走行領域RT1〜RT3内に障害物が存在している場合でも、障害物が存在するセクションの手前までは車両1を進行させることができる。従って、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
なお、通過予定領域KF内に障害物が存在する場合、走行制御装置100は、車両1を停車させて、その障害物が動的障害物であるか静的障害物であるかの種別を特定し、その種別に応じて今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)を選択する。よって、障害物の種別に適した走行内容、言い換えれば、障害物の移動状況に適した走行内容で車両1を走行させることができる。
より具体的には、車両1が自律走行を開始する場合、即ち、車両1の現在位置が出発地点(経路点P0)となる場合には、図16(b)に示すように、第1セクション全体(経路点P0から経路点P1まで)の走行領域が通過予定領域KF1となる。
その後、車両1が前進するに伴って、即ち、車両1が第1セクションの終端(経路点P2)に近づくに伴って、通過予定領域KF2は、図16(c)に示すように小さくなって行く。これは、車両1が現在走行しているセクションの走行領域のうち、既に通過した走行領域については障害物が存在するか否かを監視しないためである。
よって、車両1が現在走行しているセクション内全体の走行領域を監視するよりも、監視する走行領域が小さくなるので、制御的負担を軽減できる。また、既に通過した走行領域に障害物が進入したとしても、その障害物は車両1の走行の妨げとならない。よって、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
そして、車両1が経路点P1に到着すると、車両1は、次のセクションである第2セクション(経路点P1から経路点P2まで)を走行開始する。そのため、図17(a)に示すように、第2セクション全体の走行領域が通過予定領域KF3となる。
以後同様に、車両1は前進しながら走行経路RT1を進行して行く。なお、車両1が第4セクション(経路点P3から経路点P4まで)を走行開始する場合には、図17(b)に示す通過予定領域KF4が監視される。
そして、車両1が経路点P4に到着すると、車両1の前進および後退が切り換えられ、その結果、車両1が後退しながら走行経路RT1を進行していく。なお、車両1が第5セクション(経路点P4から経路点P5まで)を走行開始する場合には、図17(c)に示すように、通過予定経路KF5が監視される。
車両1が走行経路RT1の終端(経路点P6)に到着すると、次に、走行制御装置100は、車両1に走行経路RT2、走行経路RT3を順番に自律走行させていく。なお、走行経路RT2,RT3については、セクションは設定されていないが、走行経路RT2,RT3は、互いに接近したり、交差することのない経路となるので、実質的には一つのセクションと見なすことができる。よって、走行制御装置100は、車両1に後退旋回部RT2および最終後退部RT3を自律走行させる場合も、実質的にはセクション単位で、車両1を自律走行させることになる。
走行制御装置100は、車両1に走行経路RT2〜RT3を自律走行させる場合、走行経路RT2〜RT3のうち、車両1の現在位置から目標とする駐車位置までの走行領域を、通過予定領域KFと設定し、その通過予定領域KF内に障害物が存在するか否かを監視する。そして、通過予定領域KF内に障害物が存在しない間、車両1に走行領域RT2〜RT3内を進行させて、最終目的地まで車両1を自律走行させる。
なお、通過予定領域KF内に障害物が存在する場合、走行制御装置100は、走行経路RT1を走行している場合と同様に、車両1を停車させて、その障害物が動的障害物であるか静的障害物であるかを特定し、その種別に応じて今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)を選択する。
より具体的には、車両1が走行経路RT1の終端(経路点P6)に到着すると、図17(d)に示すように、走行経路RT2〜RT3全体(経路点P6から経路点P8まで)の走行領域が通過予定領域KF6となる。
その後、車両1が後退するに伴って、即ち、車両1が最終目的地(経路点P8)に近づくに伴って、通過予定領域KF6は小さくなって行く。これは、車両1が走行経路RT2〜RT3を走行している場合に、既に通過した走行領域については障害物が存在するか否かを監視しないためである。
次に、通過予定領域KFについて詳細に説明する。本実施形態では、車両1の障害物判定領域Eが停車中や走行中に占有する領域を、車両1の走行領域としており、その障害物判定領域Eを足し合わせた領域を、通過予定領域KFとしている。そして、通過予定領域KF内に障害物が存在するか否かを判定するために、その通過予定領域KFを形成する各障害物判定領域Eをそれぞれ算出し、その障害物判定領域Eごとに障害物の有無を判定して、通過予定領域KF内に障害物が存在するか否かを判定している。
より具体的には、車両1が走行経路RT1を自律走行している場合、車両1が現在走行しているセクションのうち、車両1の現在位置からそのセクションの終端までの各走行制御点Qごとに、障害物判定領域Eを算出し、更に、その障害物判定領域E内に障害物が存在しているか否かを判定する。そして、算出した全ての障害物判定領域E内に障害物が存在しなければ、通過予定領域KF内に障害物が存在しないと判定し、算出した何れかの障害物判定領域E内に障害物が存在していれば、通過予定領域KF内に障害物が存在すると判定する。
また、車両1が走行経路RT2〜RT3を自律走行している場合についても同様に、走行経路RT2〜RT3のうち、車両1の現在位置から目標とする駐車位置までの各走行制御点Qごとに、障害物判定領域Eを算出し、更に、その障害物判定領域E内に障害物が存在しているか否かを判定する。
なお、本実施形態では、走行制御点Qにおける(矩形状の)障害物判定領域Eを示す情報として、その4つの頂点の位置情報I1〜I4を算出する。そして、算出された4つの頂点の位置情報I1〜I4は、走行制御点Qにおける車両1の車両方位θvと共に、16種類の条件式の中から1種類の判断条件式を選択するために用いられる(図21のS139参照)。
ここで、図18(a)および図18(b)を参照して、走行制御点Qにおける障害物判定領域Eの位置を示す4つの頂点について説明する。図18(a)は、車両1の形状と障害物判定領域Eの形状との一例を示す模式図であり、図18(b)は、車両1の車両位置および車両方位が定められた場合に、その車両1の障害物判定領域Eを算出する方法を説明するための模式図である。
図18(a),(b)では、車両1の車両位置をPiと示し、車両1の進行方向を車両位置Piから延びる直線の矢印で示し、車両1の車両方位をθVと示している。なお、上述したように、車両1の車両位置Piは、車両1の基準点の位置である。
図18(a)に示すように、障害物判定領域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参照)に格納されている。
よって、図18(b)に示すように、車両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−β))
により算出できる。以上の図18(a)および図18(b)を参照して説明した数式を用いることにより、車両1の車両位置および車両方位が定められた場合に、その車両1の障害物判定領域Eの位置を示す4つの頂点をそれぞれ算出できる。
上述したように、本実施形態では、障害物判定領域Eを矩形状の領域としている。障害物判定領域Eを複雑な形状とした場合には、障害物判定領域Eの境界を求めなければならないので処理が複雑となるが、障害物判定領域Eを矩形状としているので、4つの頂点を算出するだけで、車両1の障害物判定領域Eの位置を容易に算出して取得でき、処理コストを抑制できる。
なお、走行制御点Qを車両1の車両位置とし、障害物判定領域Eの4つの頂点が算出されると、その車両1の障害物判定領域E内に障害物が存在するか否かがCPU91により判定される(図20のS142、図24のS162、図26のS202参照)。この判定は、通過予定領域KFを形成する各障害物判定領域Eについて実行される。
ここで、図19を参照して、障害物判定領域Eにより形成される通過予定領域KFの形状について説明する。図19(a)は、車両1が実際に走行する走行領域F1の一例を示す模式図であり、図19(b)は、同心円により形成される帯状の領域を車両の走行領域F2とみなす場合の一例を示す模式図である。図19(c)は、各走行制御点Qごとの障害物判定領域Eを足し合わせた領域を車両1の走行領域F3をみなす場合の一例を示す模式図であり、図19(d)は、各走行制御点Qの間隔を狭くした場合の車両1の走行領域F4の一例を説明するための模式図である。
図19(a)〜図19(d)は、経路点Piから次の経路点Pi+1まで車両1を走行させた場合に、その走行に伴って移動する車両1の障害物判定領域Eを示している。なお、何れの場合も、旋回中心Kと、旋回半径Rは同一とする。
上述したように、本実施形態では、車両1の障害物判定領域Eが走行中に占有する領域を、車両1の走行領域としているため、経路点Piから次の経路点Pi+1まで車両1を実際に走行させると、その走行領域F1は、図19(a)に示すような形状となる。なお、緩やかに膨らんでいる領域G1は、車両1の操舵角δを変化させた場合に、車両1の構造上生じる領域であり、車両1を右旋回させたことで、障害物判定領域Eのうち左後方の頂点I3が、外側(図面に向かって左)に移動するために生じる領域である。
このように、車両1の実際の走行領域F1を演算するためには、車両1の操舵角δ(進行方向)が同一となる区間を求め、その区間ごとに、走行領域を算出しなければならず、演算量が膨大または演算が複雑になる恐れがある。よって、走行経路RT1〜RT3の全体に亘って実際の走行領域F1を算出し、その実際の走行領域F1を通過予定領域KFとした場合には、CPU91に大きな負荷を掛けてしまうと共に、算出できるまで時間が掛かる恐れがある。
一方、走行領域の演算にかかる制御的負担を軽減するために、同心円により形成される帯状の領域を車両の走行領域F2とみなすことも考えられる。例えば、図19(b)に示すように、旋回半径Kを中心とする2つの同心円の円弧により、車両1の実際の走行領域F1が挟み込まれるように、2つの同心円の半径をそれぞれ決定する。なお、図19(b)では、2つの同心円により形成される帯状の領域の幅をTとしている。このように、同心円により形成される帯状の領域を、車両の走行領域F2とみなせば、走行領域の演算にかかる制御的負担を軽減できる。
しかし、走行領域F2では、車両1が実際には走行しない領域H1,H2が含まれてしまう。よって、走行領域F2を通過予定領域KFとした場合には、この領域H1,H2内に障害物が存在していると、CPU91によって通過予定領域KF内に障害物が存在すると判定されてしまう。
従って、実際には車両1の走行の妨げにはならず、車両1が走行可能であるにも関わらず、走行経路RT1〜RT3を走行できないと判定され、その結果、別の走行経路RT1〜RT3を生成する処理や、その別の走行経路RT1〜RT3上に障害物が存在するか否かを判定する処理が実行され、無駄な処理を実行させてしまう恐れがある。従って、CPU91に不要な負荷を掛けてしまうと共に、別の走行経路RT1〜RT3が見つかるまで時間が掛かる恐れがある。また、別の走行経路RT1〜RT3が見つからず、最終目的地に到着できない恐れもある。
そこで、本実施形態では、図19(c)に示すように、各走行制御点Qごとに、その車両1の障害物判定領域E内に障害物が存在するか否かを判定することで、通過予定領域KF内に障害物が存在するか否かを判定している。走行制御点Qは、走行経路RT1〜RT3上に仮想的に設けられた点であるので、その走行制御点Qにおける障害物判定領域Eは、実際の走行領域F1の一部となる。
よって、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F3は、車両1が実際に走行する走行領域F1の一部となるので、車両1の走行領域とみなすことができる。従って、走行領域F3を通過予定領域KFとした場合には、車両1が実際に走行する領域を算出しなくても、通過予定領域KFを精度良く、且つ、容易に設定でき、その通過予定領域KF内に、障害物が有るか否かを判定できる。
また、本実施形態では、車両1が実際に走行する走行領域F1を算出しなくて済むので、複雑な領域の計算を行わなくて良く、処理コストを抑制できる。よって、処理コストを抑制しつつ、通過予定領域KF内に、障害物が有るか否かを判定できる。また、走行領域F3には、走行領域F2のように、車両1が実際には走行しない領域H1,H2が含まれないので、通過予定領域KF内に、障害物が有るか無いかを精度良く判定できる。
なお、図19(c)では、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも短い間隔としているので、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F3が、一連の領域となっている。しかし、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも長くすると、各走行制御点Qにおける障害物判定領域Eを全て足し合わせても、その領域は一連の領域とならない。
よって、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも短い間隔とする場合は、車両1の車長Lよりも長くする場合よりも、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F3が、実際の走行領域F1に近づくので、通過予定領域KF内に、障害物が有るか無いかを精度良く判定できる。
なお、隣接する2つの走行制御点Qの間隔を、車両1の車長Lよりも長くしている場合でも、障害物判定領域Eを大きくすれば、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域を、一連の領域にすることができる。しかし、そうすると結局、その走行領域には、車両1が実際には走行しない領域が含まれてしまうため、通過予定領域KF内に、障害物が有るか無いかを精度良く判定できない。
また、図19(d)に示すように、走行経路RT1〜RT3に対して、できるだけ多く(短い間隔で)走行制御点Qを生成する程、各走行制御点Qにおける障害物判定領域Eを全て足し合わせた領域F4が、実際の走行領域F1に近づくので、通過予定領域KF内に障害物が存在するか否かを精度良く判定できる。また、走行領域F4には、走行領域F2のように、車両1が実際には走行しない領域H1,H2が含まれないので、走行経路RT1〜RT3に対応する走行領域内に、障害物が有るか無いかを精度良く判定できる。
よって、図19(b)のように走行領域F2を設定する場合よりも、実際には車両1が走行できるにも関わらず別の走行経路RT1〜RT3を生成する処理や、別の走行経路RT1〜RT3上に障害物が存在するか否かを判定する処理などが、余計に実行されることを抑制できる。従って、制御的負担を軽減できると共に、走行経路RT1〜RT3が見つかるまでの時間を軽減できる。また、最終目的地に到着できる可能性も向上させることができる。
また、上述したように、走行制御点Qの車両位置および車両方位に基づいて、障害物判定領域Eの位置を示す4つの頂点を算出できる。各走行制御点Qにおいて、障害物判定領域Eの4つの頂点を算出する処理は、上述した数式により容易に算出できるので、車両1の実際の走行領域F1を算出する処理よりも容易である。よって、制御的負担を軽減できると共に、演算時間を軽減できる。
ここで、図8の説明に戻る。S12の処理において、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S12:開始)、まず、最大セクション数メモリ93fに記憶されている最大セクション数SCmaxが0より大きいかを判定する(S13)。S13の判定が肯定される場合は(S13:Yes)、セクション走行処理を実行して(S14)、車両1にパターン走行部RT1を自律走行させて、S15の処理へ移行する。
一方、S13の判定が否定される場合は(S13:No)、出発地点において駐車可能条件が成立した場合である。この場合は、パターン走行部RT1が存在しないので、S14〜S15の処理をスキップして、S17の処理へ移行する。
ここで、図20〜図24を参照して、セクション走行処理(S14)について説明する。図20は、走行制御装置100により実行されるセクション走行処理を示すフローチャートである。セクション走行処理は、パターン走行部RT1に沿って車両1を自律走行させるための処理であり、通過予定領域KF内に障害物が存在する場合に、車両1を停車させる。また、車両1の停車時間Tが所定時間(動的障害物移動待ち時間TDや、静的障害物確認時間TS)を経過するまでに、通過予定領域KF内から障害物が存在しなくなれば、車両1を再び走行させる。
セクション走行処理では、まず、走行中セクション番号メモリ93gに記憶されている走行中セクション番号SCに1を設定して、走行中セクション番号SCを初期化し(S111)、最大セクション数メモリ93fから最大セクション数SCmaxを取得する(S112)。
そして、現在の車両1の車両位置(以下、「車両1の現在位置」と称す)を算出する(S113)。なお、本実施形態では、車両1の自律走行が開始されると、2つの車輪回転センサ23の回転検出信号が個別にカウントされ、その平均値に基づいて出発地点からの走行距離が算出される。また、ジャイロセンサ装置22から出力される車両1の車両方位が取得され、車両1の進行方向が算出される。
そして、その車両1の進行方向と、車輪回転センサ23の回転検出信号から算出される車両1の走行距離とに基づいて、出発地点からの移動距離を算出する。なお、出発地点は原点Oを基準に設定されているので、出発地点からの移動距離が求まると、原点Oを基準とした車両1の現在位置を算出できる。
次に、S113の処理で算出した車両位置に基づいて、現在走行中のセクション内における最後の走行制御点Qに車両1が到着したかを判定する(S114)。上述したように、本実施形態では、各セクションの走行距離が全て2mに設定され、各セクション内にはそれぞれ40個の走行制御点Qが設定されるので、セクション内の最後の走行制御点Qは、ID番号が必ず40の倍数になる。よって、現在走行中のセクション番号を示す走行中セクション番号SCに40を乗算すれば、現在走行中のセクション内における最後の走行制御点QのID番号を特定できる。
例えば、走行中セクション番号SCが1の場合、ID番号=40の走行制御点Qが、現在走行中のセクション内における最後の走行制御点Qとなり、走行中セクション番号SCが4の場合、ID番号=160の走行制御点Qが、現在走行中のセクション内における最後の走行制御点Qとなる。
そして、S114の処理では、S113の処理で算出した車両1の現在位置と、現在走行中のセクション内における最後の走行制御点Qとの距離が、所定距離(例えば、0.01m)以内であれば、現在走行中のセクション内における最後の走行制御点Qに車両1が到着したと判定する。
S114の判定が肯定される場合には(S114:Yes)、車両1に次のセクション内を走行させるために、走行中セクション番号SCに1を加算する(S115)。一方、S114の判定が否定される場合には(S114:No)、S115の処理をスキップする。
次に、現在走行中のセクション番号を示す走行中セクション番号SCが、最大セクション数SCmax以下であるかを判定する(S116)。尚、走行中セクション番号SCが、最大セクション数SCmax以下であれば、車両1はパターン走行部RT1を走行していることを意味し、走行中セクション番号SCが、最大セクション数SCmaxを超えていれば、車両1は後退旋回部RT2または最終後退部RT3を走行開始することを意味する。
S116の判定が否定される場合は(S116:No)、車両1に後退旋回部RT2または最終後退部RT3を走行させる場合なので、セクション走行処理を終了して、自動駐車処理(図8)に戻る。
一方、S116の判定が肯定される場合には(S116:Yes)、現在走行中のセクション内における走行制御点Qのうち、車両1の現在位置から最も近い走行制御点QのID番号(以下、「IDp」と称す)を一つ特定する(S117)。
このように、本実施形態では、走行経路RT1〜RT3に対して設定された全ての走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定するのではなく、現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定している。よって、参照する走行制御点Qの数量を少なくできるので、走行制御点Qを特定するための制御的負担を軽減できる。従って、制御的負担が大きくなって、車両1の走行状態の制御が遅れることを抑制できるので、車両1を適切に自律走行させることができる。
そして、セクション内障害物確認処理を実行する(S118)。ここで、図21〜23を参照して、セクション内障害物確認処理(S118)について説明する。図21は、走行支援装置100により実行されるセクション内障害物確認処理を示すフローチャートである。
セクション内障害物確認処理は、車両1が走行経路RT1を自律走行している場合に、通過予定領域KF内に障害物が存在しているか否かを確認するための処理である。より具体的には、車両1の現在位置から現在走行中のセクションの終端までの各走行制御点Qごとに、障害物判定領域Eを算出し、更に、その障害物判定領域E内に障害物が存在しているか否かを判定する。
なお、算出した全ての障害物判定領域E内に障害物が存在しなければ、通過予定領域KF内に障害物が存在しないと判定され、算出した何れかの障害物判定領域E内に障害物が存在していれば、通過予定領域KF内に障害物が存在すると判定される。
セクション内障害物確認処理では、まず、RAM93の車両周囲情報メモリ93aに記憶されている障害物の位置情報を全て取得する(S131)。そして、車両情報メモリ92aから車両情報を取得し(S132)、障害物判定領域Eを算出するための各種定数を障害物判定領域メモリ92bから取得する(S133)。
次に、現在走行中のセクション内における走行制御点Qのうち、最後の走行制御点QのID番号(以下、「IDSCmax」と称す)を特定する(S134)。上述したように、現在走行中のセクション番号を示す走行中セクション番号SCに40を乗算すれば、現在走行中のセクション内における最後の走行制御点QのID番号を特定できる。
次に、変数iに、図20のS117の処理で特定したIDp(現在走行中のセクション内における走行制御点Qのうち、車両1の現在位置から最も近い走行制御点QのID番号)を設定する(S135)。
そして、ID番号が、変数iの値と一致する走行制御点Qを走行可否判定点とし(S136)、走行制御点メモリ93dから、走行可否判定点の車両設定情報である車両位置および車両方位を取得する(S137)。そして、走行可否判定点における障害物判定領域Eの位置を示す4つの頂点を算出する(S138)。
なお、S138の処理では、障害物判定領域Eの4つの頂点と共に、障害物判定領域Eの4つの頂点の位置に基づく定数a12,a23,a34,a41,b12,b23,b34,b41も算出する。これらの定数の詳細については後述するが、ここで算出された定数は、S139の処理において判断条件式に代入される。
次に、走行可否判定点における車両方位と、S138の処理において算出した障害物判定領域Eの位置を示す4つの頂点とに基づいて、一次不等式からなる16種類の判断条件式の中から、1種類の判断条件式を選択する(S139)。
ここで、図22および図23を参照して、16種類の判断条件式について説明する。図22は、16種類の判断条件式の分類を説明するための模式図である。図23では、障害物判定領域Eの位置を示す4つの頂点のうち、車両1の右前方に位置する頂点をI1と示し、車両1の左前方に位置する頂点をI2と示し、車両1の左後方に位置する頂点をI3と示し、車両1の右後方に位置する頂点をI4と示している。また、障害物判定領域Eに対応する車両1の進行方向を直線の矢印で示し、その車両1の車両方位をθvと示している。
本実施形態では、図22に示すように、車両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と、障害物の位置情報とを代入する(図21のS141、図24のS161、図26のS201参照)。そして、代入した結果、判断条件式が成立する場合には、障害物判定領域E内に障害物が存在すると判定し、判断条件式が不成立の場合には、障害物が存在しないと判定する。
このように、本実施形態では、判断条件式の中に、障害物判定領域Eの4つの頂点の位置に基づく各種定数と、障害物の位置情報とを代入するという単純な処理により、障害物判定領域E内に障害物が存在するか否かを判定できるので、処理コストを抑制できる。
また、16種類の判断条件式を設けておき、車両1の車両方位θvと、障害物判定領域Eの4つの頂点の位置関係とに基づいて判断条件式を選択している。判断条件式を1種類だけにすると、判断条件式が複雑になってしまうので、判定に時間が掛かってしまうが、本実施形態のように、条件に応じて判断条件式を設けておくことで、各判断条件式を単純なものにできるので、判定に掛かる時間を短くできる。
以下、第1〜第16までの判断条件式について1種類ずつ説明するが、以下の説明では、障害物判定領域EのパターンHP1〜HP16のことを、単に、判定パターンHP1〜HP16と記載する。また、障害物が存在する位置(xob,yob)を、障害物(xob,yob)と記載する。
まずここで、各判断条件式を説明する前に、図23を参照して、その判断条件式に代入する各種定数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を示している。
図23は、判断条件式において使用する各種定数の算出方法を説明するための模式図である。図23では、障害物判定領域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
により算出できる。
ここで、図22の説明に戻る。第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の条件を満たしている場合には、その判定パターンに対応する判断条件式が選択される。
そして、図22に示す通り、第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の判断条件式とする。
そして、図22に示す通り、第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に置き換えても良い。
そして、図22に示す通り、第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の判断条件式とする。
そして、図22に示すように、第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の判断条件式とする。
ここで、図21の説明に戻る。S139の処理が終了したら、次に、S131の処理で取得した障害物の位置情報の中から、位置情報を1つ抽出し(S140)、その抽出した位置情報を、S139の処理により選択した判断条件式に代入する(S141)。なお、S141の処理では、S138の処理において算出した各種定数a12,a23,a34,a41,b12,b23,b34,b41も代入する。
次に、数値を代入した判断条件式において、何れかの不等式が成立しているかを判定し(S142)、S142の判定が肯定される場合は(S142:Yes)、障害物判定領域E内に、障害物が存在している場合なので、RAM93の障害物検出位置メモリ93hに、変数iの値(ID番号)を記憶して(S147)、セクション内障害物確認処理を終了し、セクション走行処理(図20参照)に戻る。
一方、S142の判定が否定される場合には(S142:No)、S131の処理で取得した障害物の位置情報を、全て取得したかを判定する(S143)。S143の判定が否定される場合には(S143:No)、S140の処理に戻り、別の障害物の位置情報を、判断条件式に代入する。一方、S143の判定が肯定される場合には(S143:Yes)、変数iに1を加算して(S144)、変数iの値が、IDSCmax(現在走行中のセクション内における走行制御点Qのうち、最後の走行制御点QのID番号)以下であるかを判定する(S145)。
S145の判定が肯定される場合には(S145:Yes)、S136の処理に戻る。なお、S144の処理において変数iが1加算されているので、S136の処理が実行されると、次の走行制御点Qが走行可否判定点となる。その後、S137〜S142の処理が実行されると、次の走行可否判定点に対応する障害物判定領域E内に、障害物が存在するか否かが判定される。以後同様に、現在走行中のセクション内における最後の走行制御点Qが、走行可否判定点となるまで、S136〜S145の処理が繰り返される。
一方、S145の判定が否定される場合は(S145:No)、現在走行中のセクション内に障害物が見つからなかった場合、即ち、通過予定領域KF内に障害物が存在しなかった場合である。この場合は、RAM93の障害物検出位置メモリ93hをクリアして(S146)、セクション内障害物確認処理を終了して、セクション走行処理(図20参照)に戻る。
以上の図21に示すセクション内障害物確認処理によれば、走行制御点Qごとに障害物判定領域Eを算出して、障害物の有無を判定できる。よって、走行経路RT1〜RT3に沿って、車両1が実際に走行する走行領域F1を算出なくて済むので、複雑な領域の計算を行わなくて良く、判定を容易に行うことができ、処理コストを抑制できる。
一方、車両1が実際に走行する走行領域F1を算出して、障害物の有無を判定するように構成している場合には、走行経路RT1が複雑になる程、車両1が実際に走行する走行領域F1の計算が複雑となる。その結果、演算量が膨大となって、CPU91に大きな負荷を掛けてしまうと共に、演算が終了するまで時間が掛かってしまうおそれがある。しかしながら、本実施形態では、走行制御点Qごとに障害物判定領域Eを算出し、障害物の有無を判定しているので、走行経路RT1〜RT3が複雑でも、容易に障害物の有無の判定を行うことができる。
従って、特に、走行経路RT1〜RT3が複雑な場合には本発明が好適である。なお、本実施形態では、自律走行によって車両1を目標とする駐車位置に停車させる形態について説明しているが、自律走行により車両1を長距離走行させる場合などにも本発明を適用できる。その場合は、走行経路が複雑となる可能性が高いので本発明が好適である。
ここで、図20の説明に戻る。セクション内障害物確認処理(S118)が終了したら、次に、通過予定領域KF内に障害物が存在するかを判定する(S119)。上述したように、セクション内障害物確認処理(S118)が実行された場合に、通過予定領域KF内に障害物が存在していれば、図21のS147の処理により、障害物検出位置メモリ93hに、障害物が存在する障害物判定領域Eに対応する走行制御点QのID番号が記憶されている。
よって、S119の処理では、障害物検出位置メモリ93hに、走行制御点QのID番号が記憶されていれば、通過予定領域KF内に障害物が存在していると判定し、走行制御点QのID番号が記憶されていなければ、障害物が存在しないと判定する。
S119の判定が否定される場合には(S119:No)、ID番号が、S117の処理で特定したID番号(IDp)となる走行制御点Qに対応する車両設定情報を、走行制御点メモリ93dから取得する(S120)。そして、その取得した車両設定情報に基づいて車両1の走行状態を制御し、車両1を走行させて(S121)、S122の処理へ移行する。
一方、S119の判定が肯定される場合には(S119:Yes)、車両1を停車させて(S123)、車両1の停車時間Tの計時を開始する(S124)。そして、障害物種別判定処理を実行する(S125)。
ここで、図24を参照して、障害物種別判定処理(S125)について説明する。図24は、走行支援装置100により実行される障害物種別判定処理を示すフローチャートである。障害物種別判定処理は、通過予定領域KF内に存在する障害物が動的的障害物であるか、静的障害物であるかを特定するための処理である。
なお、障害物種別判定処理が実行され、通過予定領域KF内の障害物が動的障害物であると特定された場合には、動的障害物フラグメモリ93iに記憶されている動的障害物フラグがオンに設定される一方、静的障害物であると特定された場合には、動的障害物フラグがオフに設定される。
障害物種別判定処理におけるS152〜S154,S156〜S162の各処理は、上述した図21のセクション内障害物確認処理におけるS131〜S133,S136〜S142の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S151,S155,S163,S164)についてのみ詳細に説明する。
障害物種別判定処理では、まず、所定時間待機する(S151)。例えば、5秒間待機する。なお、待機時間は適宜設定すれば良い。この待機時間は、通過予定領域KF内に存在する障害物の移動状況を確認するための時間である。本実施形態では、障害物判定領域E内に障害物が存在すると判定されてから所定時間が経過した後に、再度、その障害物が存在すると判定された障害物判定領域E内に障害物が存在しているかを確認している。
そして、所定時間が経過した後も、同一の障害物判定領域E内に障害物が存在している場合には、障害物が留まっていると判断し、その障害物は静的障害物であると特定する。一方、所定時間が経過するまでに、障害物が存在していた障害物判定領域Eの中からその障害物が外へ移動した場合には、障害物が移動していると判断し、その障害物は動的障害物であると特定する。
次に、S152〜S154の各処理を実行する。そして、障害物検出位置メモリ93hに記憶されている走行制御点QのID番号を取得して、そのID番号を変数iに代入する(S155)。なお、上述したように、障害物検出位置メモリ93hには、障害物が存在する障害物判定領域Eに対応する走行制御点QのID番号が記憶されている。
次に、S156〜S162の各処理を実行する。その結果、S162の処理によって、ID番号が変数iの値となる走行制御点Qの障害物判定領域E内に、障害物が存在するかが判定される。
S162の判定が肯定される場合は(S162:Yes)、所定時間が経過した後も、同一の障害物判定領域E内に障害物が存在している場合なので、障害物を静的障害物と特定する場合である。よって、この場合には、動的障害物フラグをオフに設定する(S164)。
一方、S162の判定が否定される場合は(S162:No)、所定時間が経過するまでに、障害物が存在していた障害物判定領域Eの中からその障害物が外へ移動した場合であるので、障害物を動的障害物と特定する場合である。よって、この場合には、動的障害物フラグをオンに設定する(S163)。そして、障害物種別判定処理を終了して、セクション走行処理(図20参照)に戻る。
ここで、図20の説明に戻る。障害物種別判定処理(S125)が終了したら、次に、動的障害物フラグメモリ93iに記憶されている動的障害物フラグがオンであるかを判定する(S126)。
S126の判定が肯定される場合は(S126:Yes)、通過予定領域KF内に存在する障害物が、動的障害物であると特定された場合である。この場合は、S124の処理で計時を開始した車両1の停車時間が、動的障害物移動待ち時間メモリ92eに記憶されている動的障害物移動待ち時間TD以下であるかを判定する(S127)。
上述したように、動的障害物移動待ち時間TDは、通過予定領域KF内に存在する動的障害物が、通過予定領域KFの外へ移動すると想定される時間である。S127の判定が肯定される場合は(S127:Yes)、通過予定領域KF内に存在する動的障害物が、通過予定領域KFの外へ移動している可能性がある。よって、この場合は、再度、上述したセクション内障害物確認処理(S118)を実行して、通過予定領域KF内に障害物が存在しているかを確認し、その後、S129の処理へ移行する。
一方、S127の判定が否定される場合は(S127:No)、通過予定領域KF内に存在する動的障害物が移動を止めたなど、動的障害物が通過予定領域KFの外へ移動する可能性が低い。よって、この場合は、セクション走行処理を終了して、自動駐車処理(図8参照)に戻る。なお、詳細については後述するが、その後は、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)が選択される。
S126の判定が否定される場合は(S126:No)、通過予定領域KF内に存在する障害物が、静的障害物であると特定された場合である。この場合は、S124の処理で計時を開始した車両1の停車時間が、静的障害物確認時間メモリ92fに記憶されている静的障害物確認時間TS以下であるかを判定する(S128)。上述したように、静的障害物確認時間TSは、障害物が静的障害物であるかを再確認するための時間であり、動的障害物であれば存在する場所が移動すると想定される時間である。
S128の判定が肯定される場合は(S128:Yes)、通過予定領域KF内に存在する障害物が静的障害物ではなく実際には動的障害物であって、通過予定領域KFの外へ移動している可能性がある。よって、この場合は、再度、上述したセクション内障害物確認処理(S118)を実行して、通過予定領域KF内に障害物が存在しているかを確認し、その後、S129の処理へ移行する。
一方、S128の判定が否定される場合は(S128:No)、通過予定領域KF内に存在する障害物がやはり静的障害物であって、通過予定領域KFの外へ移動する可能性が低い。よって、この場合は、セクション走行処理を終了して、自動駐車処理(図8参照)に戻る。なお、詳細については後述するが、その後は、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)が選択される。
S129の処理では、セクション内障害物確認処理(S118)を実行した結果、通過予定領域KF内に障害物が存在していたかを判定する(S129)。尚、S129の処理では、障害物検出位置メモリ93hに、走行制御点QのID番号が記憶されていれば、通過予定領域KF内に障害物が存在していると判定し、走行制御点QのID番号が記憶されていなければ、障害物が存在しないと判定する。
S129の判定が肯定される場合には(S129:Yes)、S126の処理に戻る。その結果、通過予定領域KF内から障害物が存在しなくなるか、車両1の停車時間Tが、動的障害物フラグに応じた時間TD,TSを超えるまで、S126〜S129の処理が繰り返し実行される。
一方、S129の判定が否定される場合は(S129:No)、通過予定領域KF内から障害物が存在しなくなった場合である。この場合は、S122の処理へ移行する。S122の処理では、S113の処理によって車両1の現在位置を算出してから50ms以上経過したかを判定し(S122)、S122の判定が肯定される場合には(S122:Yes)、S113の処理へ戻る。
一方、S122の判定が否定される場合には(S122:No)、S113の処理によって車両1の現在位置を算出してからの経過時間が50ms以上になるまで待機して、S113の処理へ戻る。
S113の処理に戻った後は、通過予定領域KF内に障害物が存在していなければ、車両1が現在走行中のセクションを進行するように、車両1の走行状態が制御される。そして、現在走行中のセクションの終端に到着すると、車両1は次のセクションを走行開始するように制御され、最終的には、車両1は走行経路RT1の終端まで走行する。
以上の図20に示すセクション走行処理によって、通過予定領域KF内に障害物が存在する場合に車両1を停車させることができ、更に、車両1の停車時間Tが動的障害物移動待ち時間TD(又は、静的障害物確認時間TS)を超えるまでに、通過予定領域KF内から障害物が存在しなくなれば、車両1の走行を再開させることができる。
また、車両1の停車時間Tが動的障害物待ち時間TD(又は、静的障害物確認時間TS)を超えた後も、通過予定領域KF内に障害物が存在していれば、自動駐車処理(図8参照)に戻って、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)を選択できる。
つまり、通過予定領域KF内に存在する障害物が、通過予定領域KFの外へ移動する可能性が高い間は、車両1を停車させておくことができ、通過予定領域KF内に存在する障害物が、通過予定領域KFの外へ移動する可能性が低い場合に、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)を選択できる。
よって、通過予定領域KF内に障害物が存在すると判定された場合に、単に、車両1の自律走行を中断する場合よりも、車両1に走行経路RT1〜RT3をより先に進行させることができる可能性を高めることができる。また、通過予定領域KF内に存在する障害物の種別が、動的障害物であるか静的障害物であるかの種別に応じて、車両1を自律走行させることができる。よって、障害物の種別に適した走行内容、言い換えれば、障害物の移動状況に適した走行内容で車両1を自律走行させることができる。
また、通過予定領域KF内に障害物が存在する場合には、車両1を停車させて、その後、車両1の停車時間Tが動的障害物移動待ち時間TD(又は、静的障害物確認時間TS)を超えるまでに、通過予定領域KF内から障害物が存在しなくなれば、車両1の走行を再開させている。よって、車両1の停車時間Tに関係なく、通過予定領域KF内に障害物が存在する場合に、直ぐに、走行経路の再生成や、最終目的地の変更などの処理を実行する場合と比較して、制御的負担を抑えることができる。従って、制御的負担を抑えつつ、車両1に走行経路RT1〜RT3上をより先に進行させることができる。
ここで、図8の説明に戻る。セクション走行処理(S14)が終了したら、次に、車両1が走行経路RT1の終端に到着したかを判定する(S15)。上述したように、本実施形態では、各セクション内にそれぞれ40個の走行制御点Qが設定されるので、セクション内の最後の走行制御点Qは、ID番号が必ず40の倍数になる。よって、最大セクション数SCmaxに40を乗算すれば、走行経路RT1における最後の走行制御点QのID番号を特定できる。
そして、S15の処理では、車両1の現在位置と、走行経路RT1における最後の走行制御点Qとの距離が、所定距離(例えば、0.01m)以内であれば、車両1が走行経路RT1の終端に到着したと判定する。
S15の判定が否定される場合は(S15:No)、セクション走行処理(S14)を実行したが、通過予定領域KF内に障害物が存在し、車両1が走行経路RT1上を進行できなくなった場合である。この場合は、S2の処理に戻って、走行経路RT1〜RT3を再度生成する。
このように、本実施形態では、車両1が走行経路RT1上を進行できなくなった場合、即ち、通過予定領域KF内に障害物が存在し、その障害物が通過予定領域KFの外へ移動する可能性が低い場合に、走行経路RT1〜RT3全体を再度生成している。よって、通過予定領域KF内に存在する障害物を車両1に回避させつつ、車両1を最終目的地まで走行させることができる可能性を高めることができる。
また、走行経路RT1〜RT3全体の再生成を試みても生成できず、最終目的地への到着が困難な場合には、後述するS20の処理によって運転者に最終目的地の変更を促し、運転者に最終目的地を変更させて、走行経路RT1〜RT3全体を再度生成している。よって、通過予定領域KF内に存在する障害物を車両1に回避させつつ、車両1を最終目的地まで走行させることができる可能性を高めることができる。
一方、S15の判定が肯定される場合は(S15:Yes)、車両1が走行経路RT1の終端に到着した場合なので、セクション外走行処理を実行して(S17)、車両1に走行経路RT2〜RT3を走行させる。
ここで、図25を参照して、セクション外走行処理(S17)について説明する。図25は、走行制御装置100により実行されるセクション外走行処理を示すフローチャートである。セクション外走行処理は、後退旋回部RT2および最終後退部RT3に沿って車両1を自律走行させるための処理であり、通過予定領域KF内に障害物が存在する場合に、車両1を停車させる。
また、車両1の停車時間が所定時間(動的障害物移動待ち時間TDや、静的障害物確認時間TS)を経過するまでに、通過予定領域KF内から障害物が存在しなくなれば、車両1を再び走行させる。なお、上述したように、走行経路RT2,RT3は、互いに接近したり、交差することのない経路となるので、実質的には一つのセクションと見なすことができる。よって、本実施形態では、後退旋回部RT2および最終後退部RT3を区分けせずに、一つのセクションと見なして車両1を自律走行させている。
セクション外走行処理におけるS171,S175〜S180,S181〜S184の各処理は、上述した図20のセクション走行処理におけるS113,S119〜S124,S126〜S129の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S172〜S174,S185)についてのみ詳細に説明する。
セクション外走行処理では、まず、S171の処理を実行して、車両1の現在位置を算出し(S171)、車両1が最終目的地に到着したかを判定する(S172)。具体的には、S171の処理で算出した車両1の現在位置と、最終目的地(原点O)との距離が、所定距離(例えば、0.1m)以内であれば、車両1が最終目的地に到着したと判定する。
なお、最大インデックス番号メモリ93eに記憶されている最大インデックス番号IDmaxは、最終目的地に重なる走行制御点QのID番号を示すので、最大インデックス番号IDmaxが関連づけられている車両設定情報を、走行制御点メモリ93dから取得して、最終目的地の車両位置を取得しても良い。
S172の判定が肯定される場合には(S172:Yes)、車両1を停車させて(S185)、セクション外走行処理を終了し、自動駐車処理(図8参照)に戻る。一方、S172の判定が否定される場合には(S172:No)、後退旋回部RT2および最終後退部RT3内における走行制御点Qのうち、車両1の現在位置に最も近い走行制御点QのID番号(IDp)を一つ特定して(S173)、セクション外障害物確認処理を実行する(S174)。
このように、本実施形態では、走行経路RT1〜RT3に対して設定された全ての走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定するのではなく、後退旋回部RT2および最終後退部RT3内における走行制御点Qのうち、車両1の現在位置に最も近い走行制御点Qを一つ特定している。よって、参照する走行制御点Qの数量を少なくできるので、走行制御点Qを特定するための制御的負担を軽減できる。従って、制御的負担が大きくなって、車両1の走行状態の制御が遅れることを抑制できるので、車両1を適切に自律走行させることができる。
ここで、図26を参照して、セクション外障害物確認処理(S174)について説明する。図26は、走行制御装置100により実行されるセクション外障害物確認処理を示すフローチャートである。
セクション外障害物確認処理は、車両1が走行経路RT2〜RT3を自律走行している場合に、通過予定領域KF内に障害物が存在しているか否かを確認するための処理である。より具体的には、車両1の現在位置から最終目的地までの各走行制御点Qごとに、障害物判定領域Eを算出し、更に、その障害物判定領域E内に障害物が存在しているか否かを判定する。
なお、算出した全ての障害物判定領域E内に障害物が存在しなければ、通過予定領域KF内に障害物が存在しないと判定され、算出した何れかの障害物判定領域E内に障害物が存在していれば、通過予定領域KF内に障害物が存在すると判定される。
セクション外障害物確認処理におけるS191〜S193,S195〜S204,S206,S207の各処理は、上述した図21のセクション内障害物確認処理におけるS131〜S133,S135〜S144,S146,S147の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S194,S205)についてのみ詳細に説明する。
セクション外障害物確認処理では、まず、S191〜S193の処理を実行する。そして、最大インデックス番号メモリ93eに記憶されている最大インデックス番号IDmaxを取得する(S194)。次に、変数iに、図25のS173の処理で特定したIDp(後退旋回部RT2および最終後退部RT3内における走行制御点Qのうち、車両1の現在位置に最も近い走行制御点QのID番号)を設定する(S195)。
そして、S196〜S202の処理を実行する。S202の判定が肯定される場合には(S202:Yes)、S207の処理を実行して、その後、セクション外障害物確認処理を終了し、セクション外走行処理(図25参照)に戻る。
一方、S202の判定が否定される場合には(S202:No)、S203〜S204の処理を実行する。次に、変数iの値が、IDmax(最終目的地に重なる走行制御点QのID番号)以下であるかを判定する(S205)。S205の判定が肯定される場合には(S205:Yes)、S196の処理に戻る。その結果、最終目的地に重なる走行制御点Qが走行可否判定点となるまで、S196〜S205の処理が繰り返される。
一方、S205の判定が否定される場合は(S205:No)、現在走行中の走行経路RT2〜RT3内に障害物が見つからなかった場合、即ち、通過予定領域KF内に障害物が存在しなかった場合である。この場合は、S206の処理を実行して、その後、セクション外障害物確認処理を終了し、セクション外走行処理(図25参照)に戻る。
ここで、図25の説明に戻る。セクション外障害物確認処理(S174)が終了したら、次に、セクション外障害物確認処理(S174)を実行した結果、通過予定領域KF内に障害物が存在していたかを判定する(S175)。そして、S175の判定が肯定される場合には(S175:Yes)、S179の処理へ移行する。一方、S175の判定が否定される場合には(S175:No)、S176およびS177の処理を実行して、S178の処理へ移行する。
また、S182の判定が肯定される場合は(S182:Yes)、通過予定領域KF内に存在する障害物が動的障害物であるため、通過予定領域KFの外へ移動している可能性がある。よって、この場合は、再度、上述したセクション外障害物確認処理(S174)を実行して、通過予定領域KF内に障害物が存在しているかを確認し、その後、S184の処理へ移行する。
一方、S182の判定が否定される場合は(S182:No)、通過予定領域KF内に存在する動的障害物が移動を止めたなど、動的障害物が通過予定領域KFの外へ移動する可能性が低い。よって、この場合は、セクション外走行処理を終了して、自動駐車処理(図8参照)に戻る。詳細については後述するが、その後は、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)が選択される。
また、S183の判定が肯定される場合は(S183:Yes)、通過予定領域KF内に存在する障害物が静的障害物ではなく実際には動的障害物であって、通過予定領域KFの外へ移動している可能性がある。よって、この場合は、再度、上述したセクション外障害物確認処理(S174)を実行して、通過予定領域KF内に障害物が存在しているかを確認し、その後、S184の処理へ移行する。
一方、S183の判定が否定される場合は(S183:No)、通過予定領域KF内に存在する障害物がやはり静的障害物であって、通過予定領域KFの外へ移動する可能性が低い。よって、この場合は、セクション外走行処理を終了して、自動駐車処理(図8参照)に戻る。詳細については後述するが、その後は、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)が選択される。
S184の処理では、セクション外障害物確認処理(S174)を実行した結果、通過予定領域KF内に障害物が存在していたかを判定し(S184)、S184の判定が肯定される場合には(S184:Yes)、S181の処理に戻る。
その結果、通過予定領域KF内から障害物が存在しなくなるか、車両1の停車時間Tが、動的障害物フラグに応じた時間TD,TSを超えるまで、S181〜S184の処理が繰り返し実行される。一方、S184の判定が否定される場合は(S184:No)、通過予定領域KF内から障害物が存在しなくなった場合である。この場合は、S178の処理へ移行する。
以上の図25に示すセクション外走行処理によって、通過予定領域KF内に障害物が存在する場合に車両1を停車させることができ、更に、車両1の停車時間Tが動的障害物移動待ち時間TD(又は、静的障害物確認時間TS)を超えるまでに、通過予定領域KF内から障害物が存在しなくなれば、車両1の走行を再開させることができる。
また、車両1の停車時間Tが動的障害物待ち時間TD(又は、静的障害物確認時間TS)を超えた後も、通過予定領域KF内に障害物が存在していれば、自動駐車処理(図8参照)に戻って、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)を選択できる。
つまり、通過予定領域KF内に存在する障害物が、通過予定領域KFの外へ移動する可能性が高い間は、車両1を停車させておくことができ、通過予定領域KF内に存在する障害物が、通過予定領域KFの外へ移動する可能性が低い場合に、今後の車両1の走行内容(例えば、停車、走行、走行経路の再生成、最終目的地の変更など)を選択できる。
よって、通過予定領域KF内に障害物が存在すると判定された場合に、単に、車両1の自律走行を中断する場合よりも、車両1に走行経路RT1〜RT3をより先に進行させることができる可能性を高めることができる。また、通過予定領域KF内に存在する障害物の種別が、動的障害物であるか静的障害物であるかの種別に応じて、車両1を自律走行させることができる。よって、障害物の種別に適した走行内容、言い換えれば、障害物の移動状況に適した走行内容で、車両1を自律走行させることができる。
また、通過予定領域KF内に障害物が存在する場合には、車両1を停車させて、その後、車両1の停車時間Tが動的障害物移動待ち時間TD(又は、静的障害物確認時間TS)を超えるまでに、通過予定領域KF内から障害物が存在しなくなれば、車両1の走行を再開させている。よって、車両1の停車時間Tに関係なく、通過予定領域KF内に障害物が存在する場合に、直ぐに、走行経路の再生成や、最終目的地の変更などの処理を実行する場合と比較して、制御的負担を抑えることができる。従って、制御的負担を抑えつつ、車両1に走行経路RT1〜RT3上をより先に進行させることができる。
ここで、図8の説明に戻る。セクション外走行処理(S17)が終了したら、次に、車両1が最終目的地に到着したかを判定する(S18)。S18の判定が肯定される場合は(S18:Yes)、最終目的地に到着したことを運転者に報知し(S19)、自動駐車処理を終了する。
一方、S18の判定が否定される場合は(S18:No)、セクション外走行処理(S17)を実行したが、通過予定領域KF内に障害物が存在し、車両1が走行経路RT2〜RT3上を進行できなかった場合である。即ち、最終目的地への進路上に障害物が存在しており、最終目的地への到着が困難な場合である。この場合は、走行経路RT1〜RT3上の障害物を回避できず、最終目的地に到着できないことを運転者に報知して(S20)、S21の処理へ移行する。
S21の処理では、最終目的地の変更を運転者に促す(S21)。例えば、車両1の車内に設けられているタッチパネル(図示せず)上に、車両1の周囲画像を表示し、運転者に駐車位置を入力するように報知する。そして、最終目的地の変更が指示されたかを判定する(S22)。例えば、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を、変更後の最終目的地とし、最終目的地の変更が指示されたと判定する。
S22の判定が否定される場合は(S22:No)、自動駐車処理を終了する。一方、S22の判定が肯定される場合は(S22:Yes)、S1の処理に戻り、走行経路RT1〜RT3を再生成して、その走行経路RT1〜RT3に沿って車両1を走行させる。
このように、本実施形態では、車両1が走行経路RT2〜RT3上を進行できなくなり、最終目的地への到着が困難な場合には、運転者に最終目的地の変更を促し、その結果、運転者によって最終目的地が変更されたら、走行経路RT1〜RT3全体を再度生成している。よって、通過予定領域KF内に存在する障害物を回避させつつ、車両1を最終目的地まで走行させることができる可能性を高めることができる。
また、走行経路RT1〜RT3を生成できなかった場合(S16:Noへ分岐する場合)にも、運転者に最終目的地の変更を促し、その結果、運転者によって最終目的地が変更されたら、走行経路RT1〜RT3全体を再度生成している。よって、車両1を最終目的地まで走行させることができる可能性を高めることができる。
尚、上記実施形態に記載の「CPU91による車両1の走行制御」が、特許請求の範囲に記載の「走行制御工程」に対応し、上記実施形態に記載の「第1〜第3の各距離センサ24a〜24cによる走査」が、特許請求の範囲に記載の「検出工程」に対応する。また、上記実施形態に記載の「CPU91により実行される自動駐車処理(図8参照)」が、特許請求の範囲に記載の「走行制御方法」に対応する。
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施形態では、パターン走行部RT1を経路パターンPT1〜PT10に対応する走行経路ごとに区切ってセクションを設定しているが、走行経路RT1〜RT3全体またはその一部を切り返し地点ごとに区切ってセクションを設定しても良い。なお、切り返し地点とは、車両1の前進および後退を切り換える地点のことを示し、図2に示す例では、経路点P4が切り返し地点となる。また、上記実施形態と同様に、セクション内の最後の走行制御点Qが切り返し地点となるようにする。この場合は、例えば、各セクションに対応する走行制御点Qを識別できるように、各セクションのID番号の範囲を示すテーブルをRAM93に設ける。このように構成すれば、セクション内の最後の走行制御点Qを特定でき、最後の走行制御点Qが切り返し地点であるかを判定できるので、上述したセクション走行処理(図20参照)を実行できる。例えば、本実施形態の走行制御装置100を用いて車両1を走行させる場合に、セクションの途中に切り返し地点が含まれ、更に、その切り返し地点が含まれたセクションの次のセクションの走行経路上に障害物が存在していれば、車両1は切り返し地点を超えて、その障害物が存在するセクションの手前まで走行する。ところが、切り返し地点を超えてから車両1に障害物を回避させようとすると、車両1の前進および後退の切り換えを行って、車両1が走行してきた経路上を車両1に戻らせる必要が生じる。そこで、走行経路上を切り返し地点ごとに区切ることによって、切り返し地点を超えないように車両1を走行させることができるので、車両1の前進および後退を切り換えて車両1が走行経路上を戻る可能性を抑制できる。従って、車両1をスムーズに走行させられる可能性を高めることができる。また、走行経路RT1〜RT3を切り返し地点ごとに区切ってセクションを設定できるので、切り返し地点付近で、同一のセクション内の走行経路が接近することや、交差することを防止できる。よって、セクション単位で車両1を走行させた場合に、切り返し地点へ向かう途中で走行経路を飛び越えて、切り返し地点より先の走行経路を走行し始めることを防止できる。従って、切り返し地点付近でも車両1を問題なく自律走行させることができる。
また、上記実施形態では、パターン走行部RT1を経路パターンPT1〜PT10に対応する走行経路ごとに区切ってセクションを設定しているが、走行経路RT1〜RT3全体またはその一部を車両1が前進する区間、および、車両1が後退する区間ごとに区切ってセクションを設定しても良い。なお、この場合は、各セクションのセクション内の最後の走行制御点Qが切り返し地点となる。このように構成する場合は、例えば、各セクションに対応する走行制御点Qを識別できるように、各セクションのID番号の範囲を示すテーブルをRAM93に設ける。これにより、セクション内の最後の走行制御点Qを特定でき、最後の走行制御点Qであれば切り返し地点であると判定できるので、上述したセクション走行処理(図20参照)を実行できる。そして、走行経路RT1〜RT3を車両1が前進する区間、および、車両1が後退する区間ごとに区切ってセクションを設定することで、切り返し地点付近で、同一のセクション内の走行経路が接近することや、交差することを防止できる。よって、セクション単位で車両1を走行させた場合に、切り返し地点へ前進して(又は、後退して)向かう途中で走行経路を飛び越えて、切り返し地点より先の後退すべき(又は、前進すべき)走行経路を走行し始めることを防止できる。従って、切り返し地点付近でも車両1を問題なく自律走行させることができる。また、セクション内の途中に切り返し地点が含まれないようにできるので、上述した理由と同様の理由により、切り返し地点を超えないように車両1を走行させることができる。よって、車両1の前進および後退を切り換えて車両1が走行経路上を戻る可能性を抑制できる。従って、車両1をスムーズに走行させられる可能性を高めることができる。
また、上記実施形態では、パターン走行部RT1を、経路パターンPT1〜PT10に対応する走行経路ごとに区切ってセクションを設定しているが、走行経路RT1〜RT3全体またはその一部を、経路点Pごとに区切ってセクションを設定しても良い。
また、上記実施形態では、パターン走行部RT1を、経路パターンPT1〜PT10に対応する走行経路ごとに区切ってセクションを設定しているが、(条件1)経路パターンPT1〜PT10に対応する走行経路ごと、(条件2)切り返し地点ごと、(条件3)車両1が前進する区間ごと、および、(条件4)車両1が後退する区間ごとのうち、複数の条件を組み合わせて、走行経路RT1〜RT3全体またはその一部を区切ってセクションを設定しても良い。
また、上記実施形態では、走行経路RT1〜RT3に対して生成された全ての走行制御点Qの車両設定情報を走行制御点メモリ93dに記憶しているが、走行制御点メモリ93dをセクションごとに設けておき、セクション単位で走行制御点Qの車両設定情報を記憶させても良い。また、走行制御点メモリ93dを走行経路RT1,RT2,RT3ごとに設けておき、走行経路RT1,RT2,RT3単位で走行制御点Qの車両設定情報を記憶させても良い。
また、上記実施形態では、各走行制御点Qの車両設定情報は、走行制御点Qにおける車両1の車両位置と、走行制御点Qにおける車両1の車両方位と、走行制御点Qにおける車両1の操舵角δと、走行制御点Qにおける進行方向フラグと、走行制御点Qにおける切り返し判定フラグとにより構成されるが、更に、どのセクション内の車両設定情報であるかを示すセクション情報を加えても良い。
また、上記実施形態では、目標とする駐車位置に車両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間隔など適宜設定すれば良い。
また、上記実施形態では、車両1に3つの距離センサ24a〜24cを取り付けているが、取り付けるセンサ数を2つにしても良い。センサ数を減らすことにより、部品コストを抑制できる。センサ数を2つにする場合は、例えば、第1距離センサ24aを車両1の右前に取り付け、第2距離センサ24bを車両1の左後に取り付ける。このように取り付ければ、2つの距離センサにより、車両1の全周囲を走査できる。
また、上記実施形態では、車両1に3つの距離センサ24a〜24cを取り付けているが、車両1の4隅の4箇所などにそれぞれ取り付けても良い。即ち、距離センサの数や取り付け位置は如何なる数や場所であっても良い。特に、距離センサを分散させて取り付けることにより、様々な角度から障害物を測定できるので、障害物をより精度良く測定できる。
また、上記実施形態の走行制御装置100は、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の車両速度Vは運転者がアクセルペダル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を生成するように構成しても良い。
また、上記実施形態では、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3を生成して、その走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させているが、単に、現在位置から目標とする位置まで車両1を自律走行させるように構成も良い。例えば、目標とする位置を遠方に設定し、自律走行により車両1を長距離走行させるように構成しても良い。
また、上記実施形態では、経路点P0(出発地点)上に走行制御点Qを設けていないが、経路点P0上にも走行制御点Qを設けて、車両1を自律走行させる場合に参照するように構成して良い。
また、上記実施形態は、車両1が4輪車である場合の実施形態であるが、本発明は、車輪の数に関係なく車両であれば適用できるし、ショベルカーなどの建設機械などにも適用できる。
また、上記実施形態では、車両1がパターン走行部RT1を走行でなくなった場合に、走行経路RT1〜RT3全体の再生成を試みて、その結果、走行経路RT1〜RT3全体を生成できなかった場合に、運転者に最終目的地の変更を促しているが、車両1がパターン走行部RT1を走行でなくなった場合に、走行経路RT1〜RT3の生成を試みずに、運転者に最終目的地の変更を促すように構成しても良い。
また、上記実施形態では、車両1が走行経路RT1を自律走行している場合、車両1が現在走行しているセクションのうち、車両1の現在位置からそのセクションの終端までの走行領域を、通過予定領域KF(車両1がこれから通過する予定の領域)と設定し、更に、車両1が走行経路RT2〜RT3を自律走行している場合、走行経路RT2〜RT3のうち、車両1の現在位置から最終目的地までの走行領域を、通過予定領域KFと設定しているが、それに代えて、次のように通過予定領域KF(図27、図28、図29参照)を設定しても良い。
以下、図27〜図29を参照して、通過予定領域KFの一例について説明する。なお、図27〜図29では、ハッチングされている領域を通過予定領域KFとして示している。また、図27〜図29示す各走行経路は、図16(a)に示す走行経路RT1〜RT3と同一の走行経路を示している。まず、図27を参照して、車両1が走行経路RT1〜RT3を自律走行している場合に、車両1の現在位置から、車両1が次に通過する予定の切り返し地点(車両1の前進および後退を切り換える地点)までの走行領域を、通過予定領域KFと設定する場合について説明する。なお、図27に示す例では、経路点P4が切り返し地点となる。
車両1の現在位置から、車両1が次に通過する予定の切り返し地点(車両1の前進および後退を切り換える地点)までの走行領域を、通過予定領域KFと設定するように構成すると、車両1が自律走行を開始する場合、即ち、車両1の現在位置が出発地点(経路点P0)となる場合には、図27(a)に示すように、経路点P0から経路点P4までの走行領域が通過予定領域KF7となる。
その後、車両1が前進するに伴って、即ち、車両1が切り返し地点(経路点P4)に近づくに伴って、通過予定領域KF8は、図27(b)に示すように小さくなって行く。これは、既に通過した領域については障害物が存在するか否かを監視しないためである。よって、常に通過予定領域KF8(図27(a)参照)を監視する場合よりも、監視する領域が小さくなるので、制御的負担を軽減できる。また、既に通過した領域に障害物が進入したとしても、その障害物は車両1の走行の妨げとならない。よって、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
そして、車両1が経路点P4に到着すると、次は、経路点P4から、車両1が次に通過する予定の切り返し地点までの走行領域が、通過予定領域KFとなるが、図27に示す例では、次に通過する予定の切り返し地点がない。よって、この場合は、図27(c)に示すように、車両1の現在位置から最終目的地(経路点P8)までの走行領域を、通過予定領域KF9と設定する。
その後、車両1が後退するに伴って、即ち、車両1が最終目的地(経路点P8)に近づくに伴って、通過予定領域KFは小さくなって行く。これは、車両1が走行経路RT2〜RT3を走行している場合に、既に通過した領域については障害物が存在するか否かを監視しないためである。
以上、図27を参照して説明したように通過予定領域KFを設定することで、走行経路RT1〜RT3内に障害物が存在している場合でも、その障害物が切り返し地点を超えて存在していれば、その切り返し地点の手前までは車両1を進行させることができる。従って、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
なお、走行経路RT1〜RT3において、どの地点が切り返し地点であるかは、走行制御点Qに対応する車両設定情報の進行方向フラグや、切り返し判定フラグを参照すればわかる(図7参照)。具体的には、切り返し判定フラグが「1」に設定されている走行制御点Q(ID番号=160)や、進行方向フラグの値が「1」から「−1」へ、又は、「−1」から「1」へ変化する走行制御点Q(ID番号=160)が、切り返し地点となる。
次に、図28を参照して、車両1が走行経路RT1〜RT3を自律走行している場合に、車両1の現在位置から車両1を走行経路RT1〜RT3に沿って一定距離DL(例えば、車両1の車長L(図18(a)参照)に、1.5mを加算した距離をDLとする)先まで進ませた場合に車両1が占有する走行領域を、通過予定領域KFと設定する場合について説明する。なお、一定距離DLは、適宜設定すれば良い。
車両1の現在位置から車両1を走行経路RT1〜RT3に沿って一定距離DL(例えば、車両1の車長L+1.5m)先まで進ませた場合に車両1が占有する走行領域を、通過予定領域KFと設定するように構成すると、車両1が自律走行を開始する場合、即ち、車両1の現在位置が出発地点(経路点P0)となる場合には、図28(a)に示すように、車両1を経路点P0から走行経路RT1〜RT3に沿って一定距離DL先まで進ませた場合に車両1が占有する走行領域が通過予定領域KF10となる。
その後、車両1が前進すると、図28(b)に示すように、車両1が前進した分だけ通過予定領域KF11も、走行経路RT1〜RT3に沿って先に移動する。つまり、車両1の車両位置が変化しても、通過予定領域KFの大きさは殆ど変化しない。よって、通過予定領域KFの大きさが大きくなりすぎて、制御的負担が大きくなることを抑制できるので、車両1の走行状態の制御が遅れることを抑制できる。従って、車両1を適切に自律走行させることができる。
また、車両1が経路点P4に到着する直前になると、図28(c)に示すように、車両1が現在位置から経路点P4へ到着するまでに車両1が占有する領域と、車両1が経路点P4から経路点P5へ向かう場合に車両1が占有する領域とが、走行予定領域KF12となる。
より具体的には、車両1の現在位置から経路点P4までの走行経路RT1〜RT3に沿った距離をDL1とすると、車両1を現在位置から走行経路RT1〜RT3に沿って距離をDL1まで進ませた場合に車両1が占有する走行領域と、車両1を経路点P4から走行経路RT1〜RT3に沿って「距離DL2(=距離DL−距離DL1)」まで進ませた場合に車両1が占有する走行領域とが、走行予定領域KF12となる。
その後、車両1が後退しつつ最終目的地に進むと、車両1が後退した分だけ(車両1が先に進んだ分だけ)通過予定領域KFも、走行経路RT1〜RT3に沿って先に移動する。
以上、図28を参照して説明したように通過予定領域KFを設定することで、走行経路RT1〜RT3内に障害物が存在している場合でも、その障害物が車両1に接近するまでは、又は、車両1がその障害物に接近するまでは、車両1を進行させることができる。言い換えれば、障害物と、車両1との距離がDLよりも離れている間は、車両1を進行させることができる。従って、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
なお、車両1の現在位置から車両1を走行経路RT1〜RT3に沿って一定距離DL(例えば、車両1の車長L+1.5m)先まで進ませた場合に車両1が占有する走行領域を、通過予定領域KFと設定する場合には、車両1の現在位置に最も近い走行制御点QのID番号を特定した後、そのID番号から、そのID番号に一定距離DLに相当する数値(本実施形態では、0.05mごとに走行制御点Qが生成しているので、一定距離DLを「車両1の車長L+1.5m」とする場合には、一定距離DLに相当する数値が「(車両1の車長L+1.5m)÷0.05」となる)を加算したID番号までの各走行制御点Qに対応する障害物判定領域Kを足し合わせた領域を、通過予定領域KFとする。
次に、図29を参照して、車両1が走行経路RT1〜RT3を自律走行している場合に、車両1の現在位置から、最終目的地までの走行領域を通過予定領域KFと設定する場合について説明する。なお、図29に示す例では、経路点P8が最終目的地となる
車両1の現在位置から、最終目的地(経路点P8)までの走行領域を、通過予定領域KFと設定するように構成すると、車両1が自律走行を開始する場合、即ち、車両1の現在位置が出発地点(経路点P0)となる場合には、図29(a)に示すように、経路点P0から経路点P8までの走行領域が通過予定領域KF13となる。
その後、車両1が前進するに伴って、即ち、車両1が最終目的地(経路点P8)に近づくに伴って、通過予定領域KF14は、図29(b)に示すように小さくなって行く。これは、既に通過した領域については障害物が存在するか否かを監視しないためである。よって、常に通過予定領域KF13(図29(a)参照)を監視する場合よりも、監視する領域が小さくなるので、制御的負担を軽減できる。また、既に通過した領域に障害物が進入したとしても、その障害物は車両1の走行の妨げとならない。よって、車両1の安全を確保しつつ、車両1に走行経路上RT1〜RT3をより先に進行させることができる。
以上、図29を参照して説明したように通過予定領域KFを設定することで、走行経路RT1〜RT3内に障害物が存在している場合には、即座に車両1を停車させることができるので、車両1の安全性を確保できる。
また、走行経路RT1〜RT3内に障害物が存在する場合に、その障害物から車両1までの距離に関わらず、即座に車両1を停車させて、走行経路RT1〜RT3全体の再生成を試みることができる。よって、障害物が車両1から遠く離れている場合には、走行経路RT1〜RT3が大きく変更しなくても、障害物を回避できる可能性が高い。従って、走行経路RT1〜RT3内に障害物が存在する場合でも、車両1を最終目的地までスムーズに走行させることができる。なお、最終目的地に重なる走行制御点QのID番号は、最大インデックス番号IDmaxとして最大インデックス番号メモリ93eに記憶されている。