以下、本発明の好ましい実施形態について添付図面を参照して、説明する。図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の走行状態を制御する。これにより、走行経路RT1においてセクション同士が接近している場合や、セクション同士が交差している場合でも、車両1は特定されたセクション内を走行し続けることができるので、車両1を問題なく自律走行させることができる。
また、車両1に走行経路RT1〜RT3を自律走行させている場合には、路面の状況や、車両1の搭乗者数や荷重などの様々な要因により、車両1が走行経路RT1〜RT3上から外れることがあるので、車両1を走行経路RT1〜RT3上に戻す制御が必要となる。例えば、走行経路RT1〜RT3全体のうち、車両1からの距離が最も近くなる地点に車両1を戻すように制御することが考えられる。
ここで、図25(a),(b)を参照して、車両1が走行経路上から外れた場合に、走行経路全体のうち、車両1からの距離が最も近くなる地点に車両1を戻す制御の問題点について説明する。図25(a)は、車両1の近くで走行経路が折り返す場合の制御の一例を説明するための説明図である。図25(a)では、点P4において走行経路が折り返している状態を示している。
図25(a)に示すように、車両1の近くで走行経路が折り返す場合に、車両1が走行経路上から外れると、走行経路上において車両1からの距離が最も近くなる地点が複数(例えば、点Qa,点Qbなど)見つかることがあり、車両1が通過すべき経路を飛び越えて走行経路上に戻るおそれがある。その結果、走行経路上に戻れたとしても、車両1の進行方向を正しい方向に向けることが困難となり、走行経路上を車両1に自律走行させることが困難になる。
また、図25(b)は、車両1の近くで走行経路が交差する場合の制御の一例を説明するための説明図である。図25(b)では、点P1’と、点P2’とにおいて走行経路が折り返している状態を示している。
図25(b)に示すように、車両1の近くで走行経路が交差する場合には、走行経路上において車両1からの距離が最も近くなる地点が多く(例えば、点Qc,点Qd,点Qe,点Qfなど)見つかる可能性が高くなる。よって、走行経路が交差している付近で車両1が走行経路上から外れると、図25(a)の場合と同様に、車両1が通過すべき経路を飛び越えて走行経路上に戻る可能性が高くなり、走行経路上を車両に自律走行させることが困難になる可能性が高くなる。一方、車両1が既に通過した走行経路上に戻る可能性も高くなり、その結果、同じ経路を繰り返し走行して先に進めず、目的地に到着できないおそれがある。
そこで、本実施形態の走行制御装置100では、車両1がセクション内を走行している場合に、そのセクション上から外れると、車両1がそのセクション上に戻るように車両1の進行方向を制御している。よって、走行経路RT1においてセクション同士が接近している場合や、セクション同士が交差している場合でも、車両1は特定されたセクション内を走行し続けることができる。従って、車両1が他のセクションを走行し始めることなく、車両1が現在走行中のセクションを継続して走行できるので、車両1を問題なく自律走行させることができる。
ここで、図1の説明に戻る。また、走行制御装置100は、車両1が走行経路RT1を自律走行している場合に、車両1の前進および後退を切り換える切り返し地点(図2に示す例では、経路点P4)に到着すると、車両1を所定時間(以下、「クッションタイム」と称す)停車させてから、車両1を走行させる。これにより、前進させていた車両1を後退させる場合や、後退させていた車両1を前進させる場合に、運転者を含む車両1の搭乗者に加わる前後Gを緩和させることができる。
本実施形態では、目標とする駐車位置に車両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は、後述する経路パターンメモリ92b(図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種類の断片的な走行経路が予め設定されており、それぞれが経路パターンとして、後述する経路パターンメモリ92b(図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のフローチャートに示す最終後退部制御点生成処理、図18のフローチャートに示す経路走行処理、図19のフローチャートに示すセクション内走行処理、図21のフローチャートに示すクッションタイム設定処理、図22のフローチャートに示すセクション外走行処理を実行する各プログラムは、フラッシュメモリ92に格納されている。
また、フラッシュメモリ92には、障害物判定領域メモリ92aと、経路パターンメモリ92bと、速度クッションタイムマップメモリ92cと、操舵クッションタイムマップメモリ92dとが設けられている。障害物判定領域メモリ92aは、車両1を自律走行させている場合に、障害物の有無を監視する領域(以下、「障害物判定領域E」と称する)(図16(b)参照)を特定する各種定数が格納されているメモリである。
この障害物判定領域Eは、車両1全体を囲む矩形状の領域で構成されており、車両1の前後方向の距離が「L+ΔL1+ΔL2」に設定され、車両1の側面方向の距離が「W+ΔW」に設定されている。なお、ΔL1>ΔL2となるように設定されている。
障害物判定領域Eは、車両1が前進している場合と、後退している場合とで車両1に対して設定される形状が変化する。より具体的には、障害物判定領域Eは、車両1が前進している場合には、車両1の前面から車両1の前方向の距離が「ΔL1」に設定され、車両1の後面から車両1の後方向の距離が「ΔL2」設定される。一方、車両1が後退している場合には、車両1の前面から車両1の前方向の距離が「ΔL2」に設定され、車両1の後面から車両1の後方向の距離が「ΔL1」に設定される。即ち、障害物判定領域Eは、車両1の進行する方向に長くなるように設定される。
また、障害物判定領域Eは、車両1の左側面および右側面から、車両1の左側面方向および右側面方向にそれぞれ距離「ΔW/2」長い領域となっている。これは、車両1を障害物に接触させることなく安全に自律走行させるために設けられたマージンである。障害物判定領域メモリ92aには、障害物判定領域Eにおける車両1の進行方向の距離「L+ΔL1+ΔL2」と、障害物判定領域Eにおける車両1の側面方向の距離「W+ΔW」とが格納されている。
経路パターンメモリ92bは、上述した10種類の経路パターンPT1〜PT10が格納されているメモリである。速度クッションタイムマップメモリ92c、および、操舵クッションタイムマップメモリ93dは、CPU91がクッションタイムを設定する場合に参照するマップが格納されているメモリである。なお、速度クッションタイムマップメモリ92cには、速度クッションタイムマップが格納されており、操舵クッションタイムマップメモリ92dには、操舵クッションタイムマップが格納されている。
車両1を自律走行させると、運転者の意思によらずに車両1が走行するため、運転者を含む搭乗者に前触れもなく、突然切り返しが行われる場合がある。具体的には、前進していた車両1が突然後退したり、後退していた車両1が突然前進する。すると、予測の困難な前後Gが車両1の搭乗者に加わるため、車両1の搭乗者に不快感を与えるおそれがある。
そこで、本実施形態では、車両1の前進および後退を切り換える切り返し地点に車両1が到着する場合に、車両1の搭乗者に加わる前後Gを緩和させるためのクッションタイムを設定している。クッションタイムが設定されると、車両1が所定時間停車させられるので、車両1の搭乗者に加わっている前後Gを緩和させることができる。よって、車両1の搭乗者に与える不快感を軽減できる。
また、切り替え地点では、車両1の前進および後退が切り替えられるので、車両1の進行方向を大きく変化させる可能性が高くなり、それに伴って、操舵駆動装置5によりステアリングシャフト61を多く回転させる可能性が高くなる。ステアリングシャフト61を多く回転させるためには、ステアリングシャフト61を短期間に速く回転させれば良いが、それに伴って、ステアリング13も速く回転するので、運転者を含む搭乗者を驚かせる可能性や、恐怖感を与える可能性がある。
そこで、本実施形態では、切り返し地点に車両1が到着している間に、ステアリング13を緩やかに回転させて車両1の操舵を完了できるように、クッションタイムを設定している。これにより、ステアリング13が速く回転することで車両1の搭乗者を驚かせることや、恐怖感を与えることを抑制できるので、車両1の搭乗者に与える不快感をより軽減できる。
詳細については後述するが、クッションタイムは、速度クッションタイムVCTと、操舵クッションタイムSCTとに基づいて設定される。速度クッションタイムVCTは、車両1の前進および後退が切り換えられることで車両1の搭乗者に加わる前後Gを緩和させるための停車期間であり、操舵クッションタイムSCTは、切り返し地点においてステアリング13を緩やかに回転させると共に、車両1の操舵を完了させるための停車期間である。
CPU91は、速度クッションタイムマップに基づいて、速度クッションタイムVCTを取得し、操舵クッションタイムマップに基づいて、操舵クッションタイムSCTを取得する。そして、取得した速度クッションタイムVCTと、操舵クッションタイムSCTとを比較して、時間の長い方をクッションタイムとして設定する(図21のS160〜S162)。
ここで、図7(a),(b)を参照して、速度クッションタイムマップと、操舵クッションタイムマップとについて説明する。図7(a)は、速度クッションタイムマップの一例を示す模式図であり、図7(b)は、操舵クッションタイムマップの一例を示す模式図である。まず、速度クッションタイムマップについて説明する。
図7(a)に示すように、速度クッションタイムマップは、車両1の車両速度Vと、速度クッションタイムVCTとの関係を示したマップであり、横軸は車両速度Vを示し、縦軸は速度クッションタイムVCTを示している。CPU91は、車両1が切り返し地点に到着する場合に、車両1の規定速度(例えば、1km/h)に対応する速度クッションタイムを速度クッションタイムマップから取得する。
なお、詳細については後述するが、走行制御装置100は、車両1が自律走行している状態で、車両1が切り返し地点に到着する場合や、最終目的地に到着する場合には、車両1の車両速度Vを低下させるが、それ以外では、車両速度Vが規定速度(例えば、1km/h)となるように車両1の走行状態を制御する(図19のS134参照、図22のS173参照)。
図7(a)に示すように、速度クッションタイムマップは、車両速度Vが大きくなるに比例して、速度クッションタイムVCTが大きくなるように設定されている。これは、車両速度Vが大きくなる程、車両1を停車させた場合に車両1の搭乗者に加わる前後Gが大きくなるからである。これにより、車両1の搭乗者に加わっている前後Gの大きさが多くなる程、より長い速度クッションタイムを取得できるので、搭乗者に加わっている前後Gが大きい場合でも、その前後Gを十分に低下させることができる。
次に、操舵クッションタイムマップについて説明する。図7(b)に示すように、操舵クッションタイムは、切り返し地点における車両1の操舵角δの変化量と、操舵クッションタイムSCTとの関係を示したマップであり、横軸は車両1の操舵角δの変化量を示し、縦軸は操舵クッションタイムSCTを示している。CPU91は、車両1が切り返し地点に到着する場合に、その切り返し地点に対応する走行制御点Qの車両設定情報を取得する。そして、現在の車両1の操舵角δと、切り返し地点において設定すべき車両1の操舵角δとに基づいて、車両1の操舵角δの変化量を算出する。そして、その算出した操舵角δの変化量に対応する操舵クッションタイムSCTを操舵クッションタイムマップから取得する。
図7(b)に示すように、操舵クッションタイムマップは、車両1の操舵角δの変化量が大きくなるに比例して、操舵クッションタイムSCTが大きくなるように設定されている。これは、車両1の操舵角δの変化量が大きい程、ステアリングシャフト61を多く回転させなければならず、ステアリングシャフト61を緩やかに回転させるためには、より長い時間が必要となるからである。これにより、切り返し地点において車両1の操舵角δの変化量が大きくなっても、ステアリング13を緩やかに回転させて車両1の操舵を完了できるので、ステアリング13が速く回転することで車両1の搭乗者を驚かせることや、恐怖感を与えることを抑制できる。よって、車両1の搭乗者に与える不快感をより軽減できる。
以上説明したように、CPU91は、車両1が切り返し地点に到着する場合に、速度クッションタイムマップに基づいて、速度クッションタイムVCTを取得し、操舵クッションタイムマップに基づいて、操舵クッションタイムSCTを取得する。そして、取得した速度クッションタイムVCTと、操舵クッションタイムSCTとを比較して、時間の長い方をクッションタイムとして設定する。よって、クッションタイムが設定され、切り返し地点において車両1が停車している間に、搭乗者に加わっている前後Gを低下させることができると共に、ステアリング13を緩やかに回転させて車両1の操舵を完了できる。
また、切り返し地点において車両1が停車している間に、ステアリング13を回転させて車両1の操舵を完了できるので、車両1が走行している状態でステアリングを回転させて車両1の操舵を行う場合よりも、車両1の進行方向を精度良く設定できる。よって、本実施形態の走行経路RT1〜RT3(図2参照)のように、走行経路RT1の最後の走行制御点Qが切り返し地点となる場合には、走行経路RT2上を精度良く走行開始できるので、車両1が走行経路RT2,RT3を精度良く走行できる可能性が高くなる。従って、車両1を最終目的地に精度良く停車させられる可能性を高めることができる。
また、車両1が走行している状態でステアリングを回転させて車両1の操舵を行うと、搭乗者に対して横Gが加わるが、切り返し地点において車両1が停車している間に、ステアリング13を回転させて車両1の操舵を完了できるので、搭乗者に対して横Gが加わることを抑制できる。よって、車両1の搭乗者に与える不快感をより軽減できる。
ここで、図6の説明に戻る。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を自律走行させている間、車両1に対して設定される障害物監視領域E内に障害物が存在しないことを確認するために、CPU91によって50msごとに参照される(図18のS117参照)。
点経路パターンメモリ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(c)を参照して、走行制御点メモリ93dの内容の一例について説明する。図7(c)は、走行制御点メモリ93dの内容の一例を示す模式図である。図7(c)に示すように、走行制御点メモリ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が加算される。そして、最終的には、最終目的地に重なる走行制御点QのID番号が設定される。
CPU91は、後退旋回部RT2、または、最終後退部RT3を車両1が自律走行している場合に、車両1の現在位置に最も近い走行制御点Qを特定すると、その走行制御点QのID番号が、最大インデックス番号IDmaxであるかを判定する。そして、ID番号が、最大インデックス番号IDmaxである場合は、間もなく車両1が最終目的地に到着することを意味するため、車両1の車両速度Vを低下させるなどの停車準備を開始する(図22のS176参照)。
最大セクション数メモリ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に初期化され(図18のS112参照)、車両1が現在走行中のセクション内の最後の走行制御点Qに到達する度に、1が加算される(図18のS125参照)。
よって、車両1が全てのセクション(即ち、パターン走行部RT1)を走行し終えると、走行中セクション番号SCが、上述した最大セクション数SCmaxを超える。CPU91は、走行中セクション番号SCが、最大セクション数SCmax以下であれば、車両1に走行経路RT1をセクション単位で走行させるセクション内走行処理(図19参照)を実行し、走行中セクション番号SCが、最大セクション数SCmaxを超えていれば、車両1に走行経路RT2,RT3を走行させるセクション外走行処理(図22参照)を実行する。
クッションタイムフラグメモリ93hは、クッションタイムフラグが記憶されるメモリである。クッションタイムフラグは、車両1がパターン走行部RT1を走行している状態で、車両1の現在位置から最も近い走行制御点Qを特定した場合に、その走行制御点Qが切り返し地点であればオンに設定されるフラグである。
このクッションタイムフラグがオンに設定された場合は、間もなく車両1が切り返し地点に到着することを意味するため、走行制御装置100は、車両1の車両速度を低下させる(図19のS140参照)。また、クッションタイムフラグは、切り返し地点において車両1が停車させられた後、その切り返し地点において設定されるクッションタイムが経過した場合にオフに設定される。
タイム短縮フラグメモリ93iは、タイム短縮フラグが記憶されるメモリである。タイム短縮フラグは、車両1の前進および後退を切り換える切り返し地点において、車両1の走行状態が後退から前進に切り換えられる場合にオンに設定されるフラグである。上述したクッションタイムフラグがオンに設定されると、その設定に応じて車両1が停車させられる切り返し地点において、車両1が後退から前進へ切り換えられるかが判定される(図19のS141参照)。そして、切り返し地点において、車両1の走行状態が後退から前進へ切り換えられる場合に、タイム短縮フラグがオンに設定される。
詳細については後述するが、タイム短縮フラグがオンに設定されると、切り返し地点において速度クッションタイムVCTが取得された場合に、その速度クッションタイムVCTが短縮される(図21のS154参照)。また、速度クッションタイムVCTが短縮されると、タイム短縮フラグはオフに設定される(図21のS155参照)。
前進していた車両1が後退する場合には、搭乗者は車両1の進行方向を視認することが困難である。しかし、後退していた車両1が前進する場合には、搭乗者は車両1の進行方向を視認できるので、車両1の進路を搭乗者が予想でき、態勢を整えることができる。よって、後退していた車両1が前進する場合には、切り返し地点において速度クッションタイムVCTが短くても、搭乗者に与える不快感を抑制できる。
また、後退していた車両1が前進する場合には、搭乗者の体が車両1の後方へ向かうように前後Gが発生するため、搭乗者の体が座席により支持される。よって、搭乗者に加わる前後Gが座席により緩和されるので、切り返し地点において速度クッションタイムVCTが短くても、搭乗者に与える不快感を抑制できる。
次に、図8〜図22までのフローチャートと、模式図とを参照して、車両1に搭載された走行制御装置100のCPU91により実行される自動駐車処理について説明する。図8は、走行制御装置100により実行される自動駐車処理を示すフローチャートである。自動駐車処理は、現在位置から運転者が目標とする駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものであり、運転者により自動駐車スイッチ25が押下された場合に実行される。
自動駐車処理では、まず、RAM93の点経路パターンメモリ93bをクリアする(S1)。次に、運転者が目標とする駐車位置を最終目的地として取得し、その最終目的地に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oに決定する(S2)。例えば、車両1の車内に設けられているタッチパネル(図示せず)上に、車両1の周囲画像を表示し、運転者に駐車位置を入力するように報知する。そして、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を算出して、原点Oとする。
次に、現在地点を出発地点として(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)、最終目的地までの走行経路が見つからなかった場合なので、最終目的地までの走行経路が無いことを運転者に報知して(S12)、自動駐車処理を終了する。
一方、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(c)参照)。
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の各処理は、上述した図12の後退旋回部制御点生成処理におけるS72〜S75の各処理と同様な処理であり、最終後退部制御点生成処理におけるS97〜S100の各処理は、上述した図12の後退旋回部制御点生成処理における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の車両設定情報に関連づけることができる。
なお、S100の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点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を駐車位置に駐車させることが運転者により指示されたか、又は、自律走行による駐車を中止することが運転者により指示されたかを判定し(S13)、自律走行による駐車を中止することが運転者により指示された場合には(S13:中止)、自動駐車処理を終了する。一方、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S13:開始)、経路走行処理を実行する(S14)。
詳細については後述するが、経路走行処理(S14)が実行されると、車両1が走行経路RT1〜RT3に沿って自律走行させられる。ここで、図16および図17を参照して、車両1の自律走行の概略について説明する。図16(a)は、車両1が自律走行する場合に車両1に対して設定される障害物判定領域Eの一例を説明するための模式図であり、図16(b)は、車両1の形状と障害物判定領域Eの形状との一例を示す模式図である。
本実施形態では、車両1が自律走行している間は、車両1に対して設定される障害物判定領域E内に障害物が有るか無いかが、所定間隔(例えば、50ms)ごとに監視され、その障害物判定領域E内に障害物が見つかった場合には、自律走行が中止され、障害物が見つからない場合には、自律走行が継続される。
例えば、車両1が自律走行する場合、図16(a)に示すように、車両1を囲むように障害物判定領域Eが設定される。この障害物判定領域Eは、車両1に対して設定される領域であるため、車両1の移動に伴って障害物判定領域Eの位置が移動していく。また、上述したように、障害物判定領域Eは、車両1が前進するか後退するかに応じて、車両1の前面から前方向に広がる距離と、車両1の後面から後方向に広がる距離とが異なるように設定される。
具体的には、車両1が前進している間、障害物判定領域Eは、図16(b)に示すように、車両1の前方向に広がる距離がΔL1と長くなり、車両1の後方向に広がる距離がΔL2と短くなる。一方、車両1が後退している間は、車両1の後方向に広がる距離がΔL1と長くなり、車両1の前方向に広がる距離がΔL2と短くなる。このように、本実施形態では、車両1の進行方向の長さが大きくなるように、障害物判定領域Eを構成しているので、車両1の進行方向の前方を精度良く監視することができる。
そして、車両1が走行経路RT1〜RT3を自律走行している場合に、車両1に設定された障害物判定領域E内に障害物が入ると、走行制御装置100は、車両1の自律走行を中止する一方、障害物判定領域E内に障害物がなければ、走行経路RT1〜RT3に沿って車両1を自律走行させ、最終目的地まで車両1を走行させる。
また、上述したように、本実施形態では、走行経路RT1〜RT3のうち、パターン走行部RT1については、経路パターンPT1〜PT10に対応する走行経路ごとにセクションが設定される(図6(a)参照)。走行制御装置100は、車両1にパターン走行部RT1を自律走行させる場合、まず、車両1に第1セクションを自律走行させ、その後、第2セクション、第3セクション、・・・というように、最大セクション数メモリ93fの最大セクション数SCmaxが示す数値のセクションまで、セクション単位で、車両1を自律走行させていく。
なお、走行経路RT2,RT3については、セクションは設定されていないが、走行経路RT2,RT3は、互いに接近したり、交差することのない経路となるので、実質的には一つのセクションと見なすことができる。よって、走行制御装置100は、車両1に後退旋回部RT2および最終後退部RT3を自律走行させる場合も、実質的にはセクション単位で、車両1を自律走行させることになる。
このように、車両1をセクション単位で走行させることにより、車両1が現在走行しているセクションと、他のセクションとが接近していたり、交差している場合でも、車両1が他のセクションを走行し始めることがないので、車両1に現在走行中のセクションを継続して走行させることができる。よって、複雑に設定された走行経路に沿って車両を問題なく自律走行させることができる。
また、車両1が走行経路RT1を自律走行している場合に、車両1の前進および後退が切り換えられる切り返し地点(図16(a)に示す例では、経路点P4)に到着すると、走行制御装置100は、クッションタイムを設定し、そのクッションタイムに応じて車両1を停車させてから、車両1の走行を再開させる。なお、後退旋回部RT2および最終後退部RT3については、車両は必ず後退により自律走行するため、切り返し地点はない。即ち、切り返し地点は、パターン走行部RT1にだけ設定される。
ここで、図17を参照して、切り返し地点において設定されるクッションタイムについて説明する。図17(a)は、パターン走行部RT1における切り返し地点周辺の拡大図であり、図17(b)は、切り返し地点において設定されるクッションタイムの一例を説明するための模式図である。
なお、図17(a)に示す例では、第4セクションにおける最後の走行制御点Qが切り返し地点(ID番号=160)に設定されている。また、第4セクション内では車両1が前進し、第5セクション内では車両1が後退するように、パターン走行部RT1が構成されている。
上述したように、本実施形態では、車両1がパターン走行部RT1を自律走行している場合において、走行制御装置100は、所定間隔(例えば、50ms)ごとに、車両1の走行すべきセクションを特定すると共に、その特定したセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定する。なお、上述したように、走行中セクション番号メモリ93gには、現在走行中のセクション番号を示す走行中セクション番号SCが記憶されており、走行制御装置100は、その走行中セクション番号SCを参照することで、走行すべきセクションを特定している。
なお、車両1が後退旋回部RT2、または、最終後退部RT3を自律走行している場合には、走行制御装置100は、所定間隔(例えば、50ms)ごとに、後退旋回部RT2および最終後退部RT3の走行制御点Qのうち、車両1の現在位置に最も近い走行制御点Qを一つ特定する。
そして、その特定した走行制御点Qに対応する車両設定情報を走行制御点メモリ93dから取得して、その車両設定情報に基づいて車両1の走行状態を設定し、車両1を自律走行させる。
車両1が第4セクション内を走行する場合には、まず、ID番号=121の走行制御点Qが特定される。その後、第4セクションに沿って走行すると、走行制御装置100により特定される走行制御点QのID番号が1ずつ増加していく。そして、車両1が切り返し地点(ID番号=160)の一つ手前に位置する走行制御点Q(ID番号=159)を越え、さらに切り返し地点に近づくと、走行制御装置100は、車両1の現在位置から最も近い走行制御点Qとして、切り返し地点と重なる走行制御点Q(ID番号=160)を特定する。
詳細については後述するが(図19参照)、走行制御装置100は、特定した走行制御点Qが、切り返し地点であるか否かを次のように判定している。即ち、走行制御装置100は、現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置に最も近い走行制御点Qを一つ特定した場合に、その走行制御点Qが、現在走行中のセクション内の最後の走行制御点Qであるかを判定する。
そして、走行制御装置100は、その特定した走行制御点Qが、現在走行中のセクション内の最後の走行制御点Qであれば、特定した走行制御点Qの車両設定情報と、次のセクションにおける最初の走行制御点Qの車両設定情報とをそれぞれ取得して、その2つの車両設定情報の進行方向フラグを比較し、その状態が異なっていれば、特定した走行制御点Qが、切り返し地点であると判定する。
走行制御装置100は切り返し地点を特定すると、図17(b)に示すように、クッションタイムフラグをオンに設定して、切り返し地点で車両1を停車させるために、車両速度Vを徐々に低下させる。そして、車両1が切り返し地点(ID番号=160)に到着すると、車両1を停車させて、クッションタイムを設定する。
具体的には、走行制御装置100は、車両1が切り返し地点に到着する場合に、車両1の規定速度(例えば、1km/h)に対応する速度クッションタイムVCTを、上述した速度クッションタイムマップ(図7(a)参照)から取得する。また、走行制御装置100は、車両1が切り返し地点に到着する場合に、その切り返し地点に対応する走行制御点Qの車両設定情報を取得し、現在の車両1の操舵角δと、切り返し地点において設定すべき車両1の操舵角δとに基づいて、車両1の操舵角δの変化量を算出する。そして、その算出した操舵角δの変化量に対応する操舵クッションタイムSCTを操舵クッションタイムマップから取得する。
上述したように、速度クッションタイムVCTは、車両1の前進および後退を切り換えることで車両1の搭乗者に加わる前後Gを緩和させるための停車期間であり、操舵クッションタイムSCTは、切り返し地点においてステアリング13を緩やかに回転させると共に、車両1の操舵を完了させるための停車期間である。走行制御装置100は、速度クッションタイムVCT、および、操舵クッションタイムSCTを取得したら、それらを比較して、時間の長い方をクッションタイムとして設定する。
クッションタイムが設定されると、そのクッションタイムが経過するまで、切り返し地点において車両1が停車させられる。よって、切り返し地点において車両1が停車している間に、搭乗者に加わっている前後Gを低下させることができるので、車両1の搭乗者に与える不快感を軽減できる。また、切り返し地点において、ステアリング13を緩やかに回転させて車両1の操舵を完了できるので、ステアリング13が速く回転することで車両1の搭乗者を驚かせることや、恐怖感を与えることを抑制できるので、車両1の搭乗者に与える不快感をより軽減できる。また、ステアリング13は運転者により操作されるものなので、運転者の手などが自律走行中にステアリング13に接触する可能性があるが、自律走行中はステアリング13が緩やかに回転するので、ステアリング13が速く回転する場合よりも安全性が高い。
また、切り返し地点において車両1が停車している間に、ステアリング13を回転させて車両1の操舵を完了できるので、車両1が走行している状態でステアリングを回転させて車両1の操舵を行う場合よりも、車両1の進行方向を精度良く設定できる。
そして、切り返し地点においてクッションタイムが経過した場合、走行制御装置100は、車両1の車両速度Vを上昇させて、車両1に第5セクションを走行開始させる。即ち、走行制御装置100は、車両1の走行すべきセクションを第5セクションと特定し、第5セクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Q(ID番号=161)を特定する。そして、その特定した走行制御点Qに対応する車両設定情報を走行制御点メモリ93dから取得して、その車両設定情報に基づいて車両1の走行状態を設定し、車両1を自律走行させる。
ここで、図18〜図22を参照して、経路走行処理(S14)について説明する。図18は、走行制御装置100により実行される経路走行処理を示すフローチャートである。経路走行処理は、走行経路RT1〜RT3に沿って車両1を自律走行させるための処理であり、車両1の現在位置に基づいて車両1の進行方向を設定するための処理である。
経路走行処理(S14)では、まず、クッションタイムフラグメモリ93hに記憶されているクッションタイムフラグをオフに設定すると共に、停車準備フラグ(図示せず)をオフに設定する(S111)。尚、停車準備フラグは、後述するセクション外走行処理(図22参照)において、CPU91が最終目的地に対応する走行制御点Qを特定した場合にオンに設定されるフラグである。停車準備フラグがオンの場合は、間もなく車両1が最終目的地に到着することを意味するため、車両1の車両速度Vを低下させるなどの停車準備が開始される(図22のS176参照)。
次に、走行中セクション番号メモリ93gに記憶されている走行中セクション番号SCに1を設定して、走行中セクション番号SCを初期化し(S112)、最大セクション数メモリ93fから最大セクション数SCmaxを取得する(S113)。
そして、走行経路RT1〜RT3の中で1番目(ID番号=1)の走行制御点Qの車両設定情報を取得して(S114)、その車両設定情報の進行方向フラグの状態に応じて、車両1の走行状態を前進または後退に設定する(S115)。S115の処理では、進行方向フラグが「1」であれば、車両1が前進するように車両1の走行状態を設定し、進行方向フラグが「−1」であれば、車両1が後退するように車両1の走行状態を設定する。
次に、車両1の車両速度Vが規定速度(例えば、1km/h)となるように、車両速度Vを上昇させて(S116)、車両1に対して設定されている障害物判定領域E内に、障害物が有るかを判定する(S117)。S117の判定が肯定される場合は(S117:Yes)、障害物に衝突する可能性があるので、車両1を停車させて(S120)、経路走行処理を終了し、自動駐車処理(図8参照)に戻る。
一方、S117の判定が否定される場合には(S117:No)、現在の車両1の車両位置(以下、「車両1の現在位置」と称す)を算出する(S118)。なお、本実施形態では、車両1の自律走行が開始されると、2つの車輪回転センサ23の回転検出信号が個別にカウントされ、その平均値に基づいて出発地点からの走行距離が算出される。また、ジャイロセンサ装置22から出力される車両1の車両方位が取得され、車両1の進行方向が算出される。そして、その車両1の進行方向と、車輪回転センサ23の回転検出信号から算出される車両1の走行距離とに基づいて、出発地点からの移動距離を算出する。なお、出発地点は原点Oを基準に設定されているので、出発地点からの移動距離が求まると、原点Oを基準とした車両1の現在位置を算出できる。
次に、S118の処理で算出した車両位置に基づいて、車両1が最終目的地に到着したかを判定する(S119)。具体的には、S118の処理で算出した車両1の現在位置と、最終目的地(原点O)との距離が、所定距離(例えば、0.1m)以内であれば、車両1が最終目的地に到着したと判定する。
なお、最大インデックス番号メモリ93eに記憶されている最大インデックス番号IDmaxは、最終目的地に重なる走行制御点QのID番号を示すので、最大インデックス番号IDmaxが関連づけられている車両設定情報を、走行制御点メモリ93dから取得して、最終目的地の車両位置を取得しても良い。
S119の判定が肯定される場合には(S119:Yes)、車両1を停車させて(S120)、経路走行処理を終了し、自動駐車処理(図8参照)に戻る。なお、路面の状況や、車両1の搭乗者数や荷重などの様々な要因により、車両1を最終目的地に停車させることができず、車両1が最終目的地を通過して停車することがあり得る。そのような場合には、車両1が最終目的地に戻るように車両1を走行させて、車両1の車両位置を補正する。
また、最終目的地に到着して停車できた場合でも、車両1の車両方位がズレている場合もあり得うる。そのような場合には、最終目的地における車両1の車両方位が、例えば±5度以下となるように、車両1を走行させて、車両1の車両方位を補正する。そして、最終目的地において、車両1の車両位置および車両方位が適切な値となれば、経路走行処理を終了して、自動駐車処理(図8参照)に戻る。
一方、S119の判定が否定される場合には(S119:No)、現在走行中のセクション番号を示す走行中セクション番号SCが、最大セクション数SCmax以下であるかを判定する(S121)。
尚、走行中セクション番号SCが、最大セクション数SCmax以下であれば、車両1はパターン走行部RT1を走行していることを意味し、走行中セクション番号SCが、最大セクション数SCmaxを超えていれば、車両1は後退旋回部RT2または最終後退部RT3を走行していることを意味する。
S121の判定が否定される場合は(S121:No)、車両1に後退旋回部RT2または最終後退部RT3を走行させる場合なので、後述するセクション外走行処理を実行して(S128)、S124の処理へ移行する。
一方、S121の判定が肯定される場合には(S121:Yes)、車両1が現在走行中のセクション内の最後の走行制御点Qに到着したかを判定する(S122)。上述したように、本実施形態では、各セクションの走行距離が全て2mに設定され、各セクション内にはそれぞれ40個の走行制御点Qが設定されるので、セクション内の最後の走行制御点Qは、ID番号が必ず40の倍数になる。よって、現在走行中のセクション番号を示す走行中セクション番号SCに40を乗算すれば、現在走行中のセクションの最後の走行制御点Qを特定できる。
例えば、走行中セクション番号SCが1の場合、ID番号=40の走行制御点Qが、現在走行中のセクション内の最後の走行制御点Qとなり、走行中セクション番号SCが4の場合、ID番号=160の走行制御点Qが、現在走行中のセクション内の最後の走行制御点Qとなる。
そして、S122の処理では、S118の処理で算出した車両1の現在位置と、現在走行中のセクション内の最後の走行制御点Qとの距離が、所定距離(例えば、0.01m)以内であれば、車両1が現在走行中のセクション内の最後の走行制御点Qに到着したと判定する。
S122の判定が否定される場合は(S122:No)、現在走行中のセクション内を車両1に引き続き走行させる場合なので、セクション内走行処理を実行して(S123)、S124の処理へ移行する。
ここで、図19を参照して、セクション内走行処理(S123)について説明する。図19は、走行制御装置100により実行されるセクション内走行処理を示すフローチャートである。
セクション内走行処理は、車両1にパターン走行部RT1を走行させるための処理であり、現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを特定して、その特定した走行制御点Qの車両設定情報に基づいて、車両1の操舵角を補正する。また、車両1の現在位置から最も近い走行制御点Qを特定した場合に、その走行制御点Qが切り返し地点であれば、その切り返し地点においてクッションタイムを設定するために、クッションタイムフラグをオンに設定する。
セクション内走行処理では、まず、走行中セクション番号メモリ93gに記憶されている走行中セクション番号SCにより示される現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定して(S131)、その走行制御点Qが、現在走行中のセクション内の最後の走行制御点Qであるかを判定する(S132)。
このように、本実施形態では、走行経路RT1〜RT3に対して設定された全ての走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定するのではなく、現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定している。よって、参照する走行制御点Qの数量を少なくできるので、走行制御点Qを特定するための制御的負担を軽減できる。従って、制御的負担が大きくなって、車両1の走行状態の制御が遅れることを抑制できるので、車両1を適切に自律走行させることができる。
S132の判定が否定される場合には(S132:No)、S131の処理で特定した走行制御点Qに対応する車両設定情報を、走行制御点メモリ93dから取得して(S133)、S134の処理へ移行する。
一方、S132の判定が肯定される場合には(S132:Yes)、S131の処理で特定した走行制御点Qと、車両1が次に走行するセクションの最初の走行制御点Qとに対応する2つの車両設定情報を、走行制御点メモリ93dから取得する(S135)。なお、車両1が次に走行するセクションの最初の走行制御点QのID番号は、S131の処理で特定した走行制御点Qに設定されているID番号に1を加算した番号となる。
次に、S135の処理により取得した2つの車両設定情報の進行方向フラグを比較して(S136)、現在走行中のセクションの最後の走行制御点Qにおいて、車両1の前進および後退の切り換えが発生するかを判定する(S137)。即ち、現在走行中のセクションの最後の走行制御点Qが、切り返し地点となるかを判定する。
S137の処理では、S136の処理において2つの車両設定情報の進行方向フラグを比較した結果、2つの進行方向フラグの状態が異なっていれば、車両1の前進および後退の切り換えが発生すると判定する。なお、S131の処理で特定した走行制御点Qに対応する車両設定情報の切り返しフラグを参照して、その値が「1」であれば、車両1の前進および後退の切り換えが発生すると判定しても良い。
S137の判定が否定される場合は(S137:No)、車両1が間もなく、現在走行中のセクションの最後の走行制御点Qに到着するが、その走行制御点Qは切り返し地点ではないので、車両1を停車させずにそのまま走行させれば良い場合ある。この場合は、S134の処理へ移行する。S134の処理では、車両1の車両速度Vが規定速度(例えば、1km/h)となるように、車両1の走行状態を制御して(S134)、S144の処理へ移行する。
一方、S137の判定が肯定される場合は(S137:Yes)、車両1が間もなく、現在走行中のセクションの最後の走行制御点Qに到着すると共に、その走行制御点Qが切り返し地点となる場合である。この場合は、クッションタイムフラグがオンに設定されているかを判定する(S138)。
なお、ここでクッションタイムフラグがオンになっている場合とは、セクション内走行処理が既に実行され、後述するS139の処理によりクッションタイムフラグがオンに設定された後、車両1が切り返し地点に到着する前に、再度、セクション内走行処理が実行された場合などである。
S138の判定が否定される場合には(S138:No)、切り返し地点においてクッションタイムを設定するために、クッションタイムフラグをオンに設定し(S139)、更に、車両1の車両速度Vを低下させる(S140)。なお、本実施形態では、車両1が切り返し地点に到着する場合、車両1の現在位置と、切り返し地点との距離が近くなるほど、車両1の車両速度Vが0km/hに近づくように、車両1の車両速度Vが制御される。
次に、車両1が切り返し地点に到着した場合に、車両1の走行状態が後退から前進に変わるかを判定し(S141)、S141の判定が肯定される場合には(S141:Yes)、切り返し地点において速度クッションタイムVCTを取得した後に、その速度クッションタイムVCTを短縮するために、タイム短縮フラグをオンに設定して(S142)、S144の処理へ移行する。一方、S141の判定が否定される場合には(S141:No)、S142の処理をスキップして、S144の処理へ移行する。
S138の判定が肯定される場合には(S138:Yes)、車両1が間もなく、切り返し地点に到着するので、車両1の車両速度Vをさらに低下させる(S143)。より具体的には、車両1の現在位置と、切り返し地点との距離が近くなるほど、車両1の車両速度Vが0km/hに近づくように、車両1の車両速度Vを設定する。そして、S144の処理へ移行する。
S144の処理では、車両1の現在位置と、S131の処理で特定した走行制御点Qの車両設定情報とに基づいて、S131の処理で特定した走行制御点Qを基準とする車両位置の偏差ε、および、車両方位の偏差αを算出する(S144)。そして、S144の処理で算出した車両位置の偏差ε、および、車両方位の偏差αに基づいて、車両1の操舵角を補正し(S145)、セクション内走行処理を終了して、経路走行処理(図8)に戻る。
ここで、図20(a),(b)を参照して、一の走行制御点Qを基準として、車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを算出する方法について説明する。図20(a)は、一の走行制御点Qを基準として、車両1の車両位置の偏差εを算出する方法を説明するための説明図であり、図20(b)は、一の走行制御点Qを基準として、車両1の車両方位の偏差αを算出する方法を説明するための説明図である。
なお、図20(a),(b)は、現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qとして走行制御点Qtが特定されている状態を示すと共に、現在走行中のセクションに対して車両1が右側にズレている状態を示している。また、y’軸は、走行経路上の走行制御点Qtに対する接線を示しており、x’軸は、走行制御点Qtにおいてy’軸と垂直に交差する直線を示している。
上述したように、車両1を自律走行させている場合、路面の状況や、車両1の搭乗者数や荷重などの様々な要因により、走行中の車両1の車両位置が、現在走行中のセクションからズレてしまう場合がある。そのため、本実施形態では、走行制御点Qtを基準として車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを算出し、その2つの偏差ε,αに基づいて車両1の操舵角を補正して、車両1がセクション上を走行するように制御を行っている。
ここで、車両1の現在位置の偏差εとは、走行制御点Qtから車両1の現在位置までの直線距離のことであり、車両1の車両方位の偏差αとは、走行制御点Qtから車両1の現在位置までの直線と、x軸とがなす角度である。
まず、車両1の車両位置の偏差εについて説明する。図20(a)に示すように、車両1の現在位置を(xv,yv)とし、走行制御点Qtに対応する車両位置を(xt,yt)とすると、走行制御点Qtを基準とした車両1の現在位置の偏差εは、
ε=((xt−xv)2+(yt−xv)2)1/2
により算出される。なお、図20(a)に示すように、y’軸と、車両1の前後軸とは平行な直線になる。そこで、y’軸と、車両1の前後軸との軸間の距離を、車両1の現在位置の偏差ε’としても良い。
次に、車両1の車両方位の偏差αについて説明する。図20(b)に示すように、車両1の現在位置を(xv,yv)とし、走行制御点Qtに対応する車両位置を(xt,yt)とすると、車両1の車両方位の偏差αは、
α=tan−1((yv−yt)/(xv−xt))
により算出される。
次に、上述した車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを用いて、車両1の操舵角を補正する方法について説明する。車両1の現在位置(xv、yv)における車両方位をθvとし、走行制御点Qtに対応する車両設定情報の操舵角をδとし、走行制御点Qtに対応する車両設定情報の車両方位をθtとすると、この場合、車両1に対して設定すべき操舵角STは、
ST=δ+K1・ε・D1−K2・(θt−θv)・D2
により算出される。
ここで、変数K1、変数K2は、操舵角STを大きく変化させるか、小さく変化させるかを設定するためのゲインであり、適宜設定される値である。また、変数D1は、y’軸に対して車両1が右側に位置するか、左側に位置するかを示す値が設定されるものであり、y’軸に対して車両1が右側に位置するに位置する場合には、変数D1に「−1」が設定され、y’軸に対して車両1が左側に位置する場合には、変数D1に「1」が設定される。
なお、「θt−π≧0」の場合に、「θt−π≦α≦θt」を満たしていれば、y’軸に対して車両1が右側に位置し、満たさない場合には、y’軸に対して車両1が左側に位置する。また、「θt−π<0」の場合に、「0≦α≦θt」または「θt+π≦α≦2π」を満たしていれば、y’軸に対して車両1が右側に位置し、満たさない場合には、y’軸に対して車両1が左側に位置する。
また、変数D2は、走行制御点Qtに対応する車両設定情報の進行方向フラグの値が設定されるものであり、走行制御点Qtにおいて車両1が前進する場合、進行方向フラグは「1」なので変数D2には「1」が設定される。そして、走行制御点Qtにおいて車両1が後退する場合、進行方向フラグは「−1」なので変数D2には「−1」が設定される。
走行制御装置100は、上述した式により操舵角STを算出したら、車両1の操舵角δが操舵角STとなるように車両1の操舵角を補正し、車両1がセクション上を走行するように制御する。
ここで、図18の説明に戻る。セクション内走行処理(S123)が終了したら、次に、S118の処理によって車両1の現在位置を算出してから50ms以上経過したかを判定し(S124)、S124の判定が肯定される場合には(S124:Yes)、S117の処理へ戻る。一方、S124の判定が否定される場合には(S124:No)、S118の処理によって車両1の現在位置を算出してからの経過時間が50ms以上になるまで待機して、S117の処理へ戻る。
その後、S117〜S119,S121〜S124の処理が繰り返し実行されて、車両1が現在走行中のセクション内の最後の走行制御点Qに到着するように、車両1の走行状態が制御される。
S122の判定が肯定される場合には(S122:Yes)、車両1に次のセクション内を走行させるために、走行中セクション番号SCに1を加算する(S125)。次に、クッションタイムフラグメモリ93hに記憶されているクッションタイムフラグがオンであるかを判定し(S126)、S126の判定が否定される場合は(S126:No)、車両1を停車させずに、そのまま走行させる場合なので、S123の処理へ移行する。その結果、S117〜S119,S121〜S124の処理が繰り返し実行されて、車両1が新たなセクション内の最後の走行制御点に到着するように、車両1の走行状態が制御される。
S126の判定が肯定される場合は(S126:Yes)、車両1を停車させて、クッションタイムを設定する場合なので、クッションタイム設定処理を実行する(S127)。そして、S127の処理が終了したら、S124の処理へ移行する。
ここで、図21を参照して、クッションタイム設定処理(S127)について説明する。図21は、走行制御装置100により実行されるクッションタイム設定処理を示すフローチャートである。クッションタイム設定処理は、車両1の前進および後退が切り換えられる切り返し地点においてクッションタイムを設定し、そのクッションタイムが経過するまで車両1を停車させるための処理である。
クッションタイム設定処理では、まず、車両1を停車させて(S151)、速度クッションタイムVCTを取得する(S152)。S152の処理では、車両1の規定速度(例えば、1km/s)に対応する速度クッションタイムVCTを、上述した速度クッションタイムマップ(図7(a)参照)から取得する。
次に、タイム短縮フラグメモリ93iに記憶されているタイム短縮フラグがオンに設定されているかを判定し(S153)、S153の判定が肯定される場合には(S153:Yes)、S152の処理で取得した速度クッションタイムVCTを、10〜20%短縮する(S154)。なお、短縮する期間は適宜設定すれば良い。
タイム短縮フラグは、切り返し地点において、車両1の走行状態が後退から前進に切り換えられる場合にオンに設定されるフラグである。前進していた車両1が後退する場合には、搭乗者は車両1の進行方向を視認することが困難である。しかし、後退していた車両1が前進する場合には、搭乗者は車両1の進行方向を視認できるので、車両1の進路を搭乗者が予想でき、態勢を整えることができる。よって、後退していた車両1が前進する場合には、切り返し地点において速度クッションタイムVCTが短くても、搭乗者に与える不快感を抑制できる。
また、前進していた車両1が後退する場合には、搭乗者の体が車両1の後方へ向かうように前後Gが発生するため、搭乗者の体が座席により支持される。よって、搭乗者に加わる前後Gが座席により緩和されるので、切り返し地点において速度クッションタイムVCTを短くしても、搭乗者に与える不快感を抑制できる。
そして、S154の処理が終了したら、タイム短縮フラグをオフに設定して(S155)、S156の処理へ移行する。S153の判定が否定される場合には(S153)、S154およびS155の処理をスキップして、S156の処理へ移行する。S156の処理では、次に走行すべきセクション内の走行制御点Qのうち、車両1の現在位置に最も近い走行制御点Qを一つ特定し(S156)、その特定した走行制御点Qに対応する車両設定情報を、走行制御点メモリ93dから取得する(S157)。
このように、本実施形態では、走行経路RT1〜RT3に対して設定された全ての走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定するのではなく、次に走行すべきセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定している。よって、参照する走行制御点Qの数量を少なくできるので、走行制御点Qを特定するための制御的負担を軽減できる。従って、制御的負担が大きくなって、車両1の走行状態の制御が遅れることを抑制できるので、車両1を適切に自律走行させることができる。
そして、現在の車両1の操舵角δと、S157の処理で取得した車両設定情報の操舵角δとに基づいて、切り返し地点における操舵角δの変化量を算出する(S158)。次に、その算出した操舵角δの変化量に対応する操舵クッションタイムSCTを、上述した操舵クッションタイムマップ(図7(b)参照)から取得する(S159)。
次に、S152〜S154処理を実行した結果得られた速度クッションタイムVCTが、S159の処理で得られた操舵クッションタイムSCT以上であるかを判定する(S160)。S160の判定が肯定される場合には(S160:Yes)、S152〜S154の処理を実行した結果得られた速度クッションタイムVCTを、クッションタイムとして設定する(S161)。一方、S160の判定が否定される場合には(S160:No)、S159の処理で得られた操舵クッションタイムSCTを、クッションタイムとして設定する(S162)。
次に、S156の処理で特定した走行制御点Qを基準として、車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを算出する(S163)。そして、その2つの偏差ε,αに基づいて、車両1に対して設定すべき操舵角STを算出し、車両1の操舵角δが操舵角STとなるように車両1の操舵角を補正する(S164)。
なお、一の走行制御点Qを基準として、車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを算出する方法については、図20(a),(b)を参照して上述したので、その説明は省略する。また、2つの偏差ε,αに基づいて、車両1に対して設定すべき操舵角STを算出する方法についても同様に上述したので、その説明は省略する。
次に、S157の処理で取得した車両設定情報の進行方向フラグの状態に応じて、車両1の走行状態を前進または後退に設定する(S165)。S165の処理では、進行方向フラグが「1」であれば、車両1が前進するように車両1の走行状態を設定し、進行方向フラグが「−1」であれば、車両1が後退するように車両1の走行状態を設定する。
次に、S161の処理、または、S162の処理で設定したクッションタイムが経過したかを判定し(S166)、S166の判定が肯定される場合には(S166:Yes)、S167の処理へ移行する。一方、S166の判定が否定される場合には(S166:No)、設定されたクッションタイムが経過するまで待機して、S167の処理へ移行する。
S167の処理では、クッションタイムフラグメモリ93hに記憶されているクッションタイムフラグをオフに設定して(S167)、車両1の車両速度Vが規定速度(例えば、1km/h)となるように、車両速度Vを上昇させる(S168)。そして、クッションタイム設定処理を終了して、経路走行処理(図18参照)に戻る。
以上の図21に示すクッションタイム設定処理によって、車両1が切り返し地点に到着した場合に、車両1の規定速度(例えば、1km/h)に対応する速度クッションタイムVCTを取得できると共に、切り返し地点における車両1の操舵角δの変化量に対応する操舵クッションタイムSCTを取得できる。なお、上述したように、速度クッションタイムVCTは、車両1の前進および後退を切り換えることで車両1の搭乗者に加わる前後Gを緩和させるための停車期間であり、操舵クッションタイムSCTは、切り返し地点においてステアリング13を緩やかに回転させると共に、車両1の操舵を完了させるための停車期間である。
そして、取得した速度クッションタイムVCT、および、操舵クッションタイムSCTを比較して、時間の長い方をクッションタイムとして設定できる。その結果、設定したクッションタイムが経過するまで、切り返し地点において車両1を停車させることができる。
よって、切り返し地点において車両1が停車している間に、搭乗者に加わっている前後Gを低下させることができるので、車両1の搭乗者に与える不快感を軽減できる。また、切り返し地点において、ステアリング13を緩やかに回転させて車両1の操舵を完了できるので、ステアリング13が速く回転することで車両1の搭乗者を驚かせることや、恐怖感を与えることを抑制できるので、車両1の搭乗者に与える不快感をより軽減できる。
また、切り返し地点において車両1が停車している間に、ステアリング13を回転させて車両1の操舵を完了できるので、車両1が走行している状態でステアリングを回転させて車両1の操舵を行う場合よりも、車両1の進行方向を精度良く設定できる。
ここで、図18の説明に戻る。クッションタイム設定処理(S127)が終了したら、次に、S124の処理を実行して、S117の処理へ戻る。上述したように、クッションタイム設定処理(S127)が実行される前には、S125の処理が実行されて、走行中セクション番号SCに1加算されている。その結果、S117の処理に戻ると、その後、S117〜S119,S121〜S124の処理が繰り返し実行されて、車両1が新たなセクション内の最後の走行制御点Qに到着するように、車両1の走行状態が制御される。
例えば、これまで車両1が第1セクションを走行していた場合、次に、車両1は第2セクションを走行し始める。そして、車両1が第2セクションの最後の走行制御点Qに到達すると、再度、走行中セクション番号SCに1が加算され、その結果、次に、車両1が第3セクションを走行し始める。以後同様に、第3セクション、第4セクションというように、最大セクション数SCmaxが示す数値のセクションまで、セクション単位で車両1が走行していく。
このように、車両1をセクション単位で走行させることにより、車両1が現在走行しているセクションと、他のセクションとが接近していたり、交差している場合でも、車両1が他のセクションを走行し始めることないので、車両1に現在走行中のセクションを継続して走行させることができる。従って、パターン走行部RT1が複雑な走行経路であっても、その走行経路に沿って車両1を問題なく自律走行させることができる。
そして、最大セクション数SCmaxが示す数値のセクション(即ち、最後のセクション)内の走行制御点Qに車両1が到達すると、即ち、パターン走行部RT1を走行し終えると、走行中セクション番号SCに1が加算され、走行中セクション番号SCが最大セクション数SCmaxを超える。すると、S117の処理に戻った後、S121の判定が否定される。S121の判定が否定される場合には(S121:No)、セクション外走行処理を実行して(S128)、S124の処理へ移行する。
ここで、図22を参照して、セクション外走行処理(S128)について説明する。図22は、走行制御装置100により実行されるセクション外走行処理を示すフローチャートである。セクション外走行処理は、車両1に後退旋回部RT2および最終後退部RT3を走行させるための処理であり、後退旋回部RT2および最終後退部RT3内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを特定して、その特定した走行制御点Qの車両設定情報に基づいて、車両1の操舵角を補正する。
なお、上述したように、走行経路RT2,RT3は、互いに接近したり、交差することのない経路となるので、実質的には一つのセクションと見なすことができる。よって、本実施形態では、後退旋回部RT2および最終後退部RT3を区分けせずに、一つのセクションと見なして車両1を自律走行させている。
セクション外走行処理では、まず、後退旋回部RT2および最終後退部RT3内の走行制御点Qのうち、車両1の現在位置に最も近い走行制御点Qを一つ特定し(S171)、その特定した走行制御点Qが、最終目的地の走行制御点Qであるかを判定する(S172)。
このように、本実施形態では、走行経路RT1〜RT3に対して設定された全ての走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定するのではなく、後退旋回部RT2および最終後退部RT3の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定している。よって、参照する走行制御点Qの数量を少なくできるので、走行制御点Qを特定するための制御的負担を軽減できる。従って、制御的負担が大きくなって、車両1の走行状態の制御が遅れることを抑制できるので、車両1を適切に自律走行させることができる。
S172の判定では、特定した走行制御点Qに対応する車両設定情報の車両位置が原点Oを示していれば、特定した走行制御点Qが、最終目的地の走行制御点Qであると判定する。
S172の判定が肯定される場合には(S172:Yes)、停車準備フラグがオンであるかを判定する(S174)。上述したように、停車準備フラグは、CPU91が最終目的地に対応する走行制御点Qを特定した場合にオンに設定されるフラグである。
なお、ここで停車準備フラグがオンになっている場合とは、セクション外走行処理が既に実行され、後述するS175の処理により停車準備フラグがオンに設定された後、車両1が最終目的地に到着する前に、再度、セクション外走行処理が実行された場合である。
S174の判定が否定される場合は(S174:No)、停車準備フラグをオンに設定し(S175)、車両1の車両速度Vを低下させて(S176)、S178の処理へ移行する。なお、本実施形態では、車両1が最終目的地に到着する場合、車両1の現在位置と、最終目的地との距離が近くなるほど、車両1の車両速度Vが0km/hに近づくように、車両1の車両速度Vが制御される。
一方、S174の判定が肯定される場合は(S174:Yes)、間もなく車両1が最終目的地に到着することを意味するため、車両1の車両速度Vをさらに低下させる(S177)。より具体的には、車両1の現在位置と、最終目的地との距離が近くなるほど、車両1の車両速度Vが0km/hに近づくように、車両1の車両速度Vを設定する。そして、S178の処理へ移行する。
S172の判定が否定される場合には(S172:No)、車両1の車両速度Vが規定速度(例えば、1km/h)となるように、車両1の走行状態を制御して(S173)、S178の処理へ移行する。S178の処理では、S171の処理で特定した走行制御点Qに対応する車両設定情報を、走行制御点メモリ93dから取得して(S178)、S171の処理で特定した走行制御点Qを基準として、車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを算出する(S179)。そして、その2つの偏差ε,αに基づいて、車両1に対して設定すべき操舵角STを算出し、車両1の操舵角δが操舵角STとなるように車両1の操舵角を補正する(S180)。
なお、一の走行制御点Qを基準として、車両1の車両位置の偏差ε、および、車両1の車両方位の偏差αを算出する方法については、図20(a),(b)を参照して上述したので、その説明は省略する。また、2つの偏差ε,αに基づいて、車両1に対して設定すべき操舵角STを算出する方法についても同様に上述したので、その説明は省略する。S180の処理が終了したら、セクション外走行処理を終了して、経路走行処理(図18参照)に戻る。
ここで、図18の説明に戻る。セクション外走行処理(S128)が終了したら、次に、S124の処理を実行して、S117の処理へ戻る。しかし、走行中セクション番号SCは、最大セクション数SCmaxを超えているので、S121の判定は常に否定される。その結果、S117〜S119,S121,S128,S124の処理が繰り返し実行されて、車両1が後退旋回部RT2および最終後退部RT3を走行して、最終目的地に到着するように、車両1の走行状態が制御される。
尚、上記実施形態に記載の「CPU91により実行される自動駐車処理(図8参照)」が、特許請求の範囲に記載の「走行制御方法」に対応する。
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施形態では、パターン走行部RT1を経路パターンPT1〜PT10に対応する走行経路ごとに区切ってセクションを設定しているが、走行経路RT1〜RT3全体またはその一部を切り返し地点ごとに区切ってセクションを設定しても良い。なお、上記実施形態と同様に、セクション内の最後の走行制御点Qが切り返し地点となるようにする。この場合は、例えば、各セクションに対応する走行制御点Qを識別できるように、各セクションのID番号の範囲を示すテーブルをRAM93に設ける。このように構成すれば、セクション内の最後の走行制御点Qを特定でき、最後の走行制御点Qが切り返し地点であるかを判定できるので、上述した経路走行処理(図18参照)を実行できる。そして、走行経路RT1〜RT3を切り返し地点ごとに区切ってセクションを設定できるので、切り返し地点付近で、同一のセクション内の走行経路が接近することや、交差することを防止できる。よって、セクション単位で車両1を走行させた場合に、切り返し地点へ向かう途中で走行経路を飛び越えて、切り返し地点より先の走行経路を走行し始めることを防止できる。従って、切り返し地点付近でも車両1を問題なく自律走行させることができる。
また、上記実施形態では、パターン走行部RT1を経路パターンPT1〜PT10に対応する走行経路ごとに区切ってセクションを設定しているが、走行経路RT1〜RT3全体またはその一部を車両1が前進する区間、および、車両1が後退する区間ごとに区切ってセクションを設定しても良い。なお、この場合は、各セクションのセクション内の最後の走行制御点Qが切り返し地点となる。このように構成する場合は、例えば、各セクションに対応する走行制御点Qを識別できるように、各セクションのID番号の範囲を示すテーブルをRAM93に設ける。これにより、セクション内の最後の走行制御点Qを特定でき、最後の走行制御点Qであれば切り返し地点であると判定できるので、上述した経路走行処理(図18参照)を実行できる。そして、走行経路RT1〜RT3を車両1が前進する区間、および、車両1が後退する区間ごとに区切ってセクションを設定することで、切り返し地点付近で、同一のセクション内の走行経路が接近することや、交差することを防止できる。よって、セクション単位で車両1を走行させた場合に、切り返し地点へ前進して(又は、後退して)向かう途中で走行経路を飛び越えて、切り返し地点より先の後退すべき(又は、前進すべき)走行経路を走行し始めることを防止できる。従って、切り返し地点付近でも車両1を問題なく自律走行させることができる。
また、上記実施形態では、車両1の規定速度(例えば、1km/h)に対応する速度クッションタイムVCTを、上述した速度クッションタイムマップ(図7(a)参照)から取得しているが、クッションタイムフラグがオンに設定された場合に、車両1の車両速度Vを取得し、その車両速度Vに対応する速度クッションタイムVCTを、速度クッションタイムマップから取得するように構成しても良い。
また、上記実施形態では、パターン走行部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における切り返し判定フラグとにより構成されるが、更に、どのセクション内の車両設定情報であるかを示すセクション情報を加えても良い。
また、上記実施形態では、現在走行中のセクション内の走行制御点Qのうち、車両1の現在位置から最も近い走行制御点Qを一つ特定しているが、車両1の現在位置から最も近い走行制御点Qと、少なくともn個先の走行制御点Qとを特定するように構成しても良い。また、車両1の現在位置から最も近い走行制御点Qを含むn個先までの走行制御点Qを特定するように構成しても良い。なお、nは適宜設定すれば良い。このように構成すれば、常にn個先の走行制御点Qを参照できるので、切り返し地点や、最終目的地をより早く見つけることができる。よって、切り返し地点や、最終目的地を見つけた段階で、車両1の車両速度Vを低下させ始めることで、車両1の車両速度Vを緩やかに低下させることができる。従って、切り返し地点や、最終目的地において車両1を停車させることにより搭乗者に加わる前後Gを低下させることができるので、車両1の搭乗者に与える不快感をより軽減できる。また、切り返し地点や、最終目的地を車両1が通過して停車しないように、車両1の車両速度Vを低下させることができるので、車両1を切り返し地点や、最終目的地に適切に停車させることができる。
また、上記実施形態において、走行制御装置100が切り返し地点を特定した場合に、切り返し地点に到着することを搭乗者に報知するように構成しても良い。例えば、車両1内のモニタに表示しても良いし、音声で案内しても良い。これにより、前後Gが加わることを搭乗者が予想できるので、搭乗者が態勢を整えることができる。よって、搭乗者に与える不快感を抑制できる。
また、上記実施形態では、自律走行中の車両1の車両速度Vは、規定速度(例えば、1km/h)となるように制御されているが、運転者が規定速度を任意に設定できるように構成しても良い。
また、上記実施形態では、速度クッションタイムマップは、図7(a)に示すように、車両1の車両速度Vが大きくなるに比例して速度クッションタイムVCTが大きくなるように構成されているが、それに代えて、次のように構成された速度クッションタイムマップ(図23(a)、図23(b)参照)を用いても良い。図23(a)に示す速度クッションタイムマップは、車両1の車両速度Vが閾値よりも小さければ、速度クッションタイムVCTが0となるように構成され、車両1の車両速度Vが閾値を超えていれば、車両1の車両速度Vが大きくなるに比例して速度クッションタイムVCTが大きくなるように構成されている。この速度クッションタイムマップを用いれば、切り返し地点において搭乗者に加わる前後Gが弱い場合に、速度クッションタイムVCTを0にでき、停車時間を短くできる。よって、搭乗者に与える不快感が弱い場合には、車両1をより早く目的地に到着させることができる。また、図24(b)に示す速度クッションタイムマップは、車両1の車両速度Vの二乗に比例して速度クッションタイムVCTが大きくなるように構成されている。搭乗者に対して作用する運動エネルギーは、車両速度Vの二乗に比例して大きくなる。このように構成された速度クッションタイムマップを用いれば、切り返し地点において搭乗者に加わった運動エネルギーが大きくなるほど、速度クッションタイムVCTを大きくすることができる。よって、搭乗者に加わった運動エネルギーが弱くなるまで、車両1を停車させることができる。従って、搭乗者に与える不快感を抑制することができる。
また、上記実施形態では、操舵クッションタイムマップは、図7(b)に示すように、車両1の操舵角δの変化量が大きくなるに比例して、操舵クッションタイムSCTが大きくなるように構成されているが、それに代えて、次のように構成された操舵クッションタイムマップ(図23(c)参照)を用いても良い。図23(c)に示す操舵クッションタイムマップは、車両1の操舵角δの変化量が閾値よりも小さければ、操舵クッションタイムSCTが0となるように構成され、車両1の操舵角δの変化量が閾値を超えていれば、車両1の操舵角δの変化量に比例して操舵クッションタイムSCTが大きくなるように構成されている。この操舵クッションタイムマップを用いれば、切り返し地点において車両1の操舵角δの変化量が少ない場合、即ち、ステアリングシャフト61の回転量が少ない場合に、操舵クッションタイムSCTを0にできる。よって、切り返し地点において、ステアリング13を早く回転させなくて良い場合に、停車時間を短くできる。従って、ステアリング13が速く回転することで車両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間隔など適宜設定すれば良い。
また、上記実施形態では、車両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が切り返し地点で停車した後に、車両1の前進および後退を切り換えているが、車両1が停車する前に、車両1の前進および後退を切り換えても良い。具体的には、車両1が停車する前に、モータ3aの回転軸の回転方向を逆転させる。なお、モータ3aの回転軸の回転方向を逆転させると、車両1の車両速度が低下するため、車両1の搭乗者に対して前後Gが加わる。しかし、切り返し地点において車両1を停車させることにより搭乗者に加わる前後Gを低下させることができるので、車両1の搭乗者に与える不快感をより軽減できる。
また、上記実施形態では、切り返し地点において速度クッションタイムVCT、および、操舵クッションタイムSCTを取得した後にそれらを比較して、時間の長い方をクッションタイムとして設定しているが、取得した速度クッションタイムVCTと、取得した操舵クッションタイムSCTとを加算した時間(以下、「合成クッションタイムTCT」と称す)を、クッションタイムとして設定しても良い。
以下、図24を参照して、合成クッションタイムTCTについて詳細に説明する。図24は、合成クッションタイムTCTの一例を説明するための模式図である。なお、車両1は、図17(a)に示す第4セクション内を、切り返し地点(ID番号=160)に向かって走行しているものとする。また、第4セクション内では車両1が前進し、第5セクション内では車両1が後退するものとする。
車両1が第4セクション内を走行する場合には、走行制御装置100によって、まず、ID番号=121の走行制御点Qが特定される。その後、第4セクションに沿って走行すると、走行制御装置100により特定される走行制御点QのID番号が1ずつ増加していき、最終的には、切り返し地点と重なる走行制御点Q(ID番号=160)が特定される。
走行制御装置100は切り返し地点を特定すると、図24に示すように、クッションタイムフラグをオンに設定して、切り返し地点で車両1を停車させるために、車両速度Vを徐々に低下させる。そして、走行制御装置100は、車両1が切り返し地点(ID番号=160)に到着すると、車両1を停車させて、車両1の規定速度(例えば、1km/h)に対応する速度クッションタイムVCTを、上述した速度クッションタイムマップ(図7(a)参照)から取得する。
また、走行制御装置100は、車両1が切り返し地点に到着する場合に、その切り返し地点に対応する走行制御点Qの車両設定情報を取得し、現在の車両1の操舵角δと、切り返し地点において設定すべき車両1の操舵角δとに基づいて、車両1の操舵角δの変化量を算出する。そして、その算出した操舵角δの変化量に対応する操舵クッションタイムSCTを操舵クッションタイムマップから取得する。走行制御装置100は、速度クッションタイムVCT、および、操舵クッションタイムSCTを取得したら、それらを加算して合成クッションタイムTCTを算出し、その合成クッションタイムTCTをクッションタイムとして設定する。
このように構成すれば、クッションタイムの時間がより長くなるので、切り返し地点において車両1をより長く停車させることができる。よって、切り返し地点において車両1が停車している間に、搭乗者に加わっている前後Gをより低下させることができるので、車両1の搭乗者に与える不快感をより軽減できる。
また、切り返し地点において、ステアリング13をより緩やかに回転させて車両1の操舵を完了できる。即ち、合成クッションタイムTCTが設定されると、ステアリング13の回転角度の変化量を示す傾きが、単に操舵クッションタイムSCTが設定され場合の変化量の傾きAよりも、緩やかになる。よって、ステアリング13が速く回転することで車両1の搭乗者を驚かせることや、恐怖感を与えることをより抑制できるので、車両1の搭乗者に与える不快感をさらに軽減できる。
また、切り返し地点において車両1が停車している間に、ステアリング13を回転させて車両1の操舵を完了できるので、車両1が走行している状態でステアリングを回転させて車両1の操舵を行う場合よりも、車両1の進行方向を精度良く設定できる。そして、切り返し地点においてクッションタイムが経過した場合、走行制御装置100は、車両1の車両速度Vを上昇させて、車両1に第5セクションを走行させる。
<その他>
<技術的思想>
技術的思想1の走行制御装置は、車両を自律走行させるための走行制御情報を設定する情報設定手段と、その走行制御情報に基づいて、前記車両の前進および後進の切り換えが発生するかを判定する判定手段と、その判定手段により前進および後進の切り換えが発生すると判定される場合は、前進および後進を切り換える際に前記車両を所定時間停車させる停車手段とを備えていることを特徴とする。
技術的思想2の走行制御装置は、技術的思想1記載の走行制御装置において、前記車両の前進および後進の切り換えに伴う加速度を十分に低下させる第1時間を特定する第1時間特定手段を備え、前記停車手段は、前記第1時間特定手段により特定される第1時間以上となる前記所定時間が経過するまで前記車両を停車させるものであることを特徴とする。
技術的思想3の走行制御装置は、技術的思想1または2記載の走行制御装置において、前記車両の前進および後進を切り換える切り換え地点において動作させるハンドルの動作量、または、前記切り換え地点における車輪の切れ角の変化量に基づいて前記ハンドルを動作させるための第2時間を特定する第2時間特定手段を備え、前記停車手段は、前記第2時間特定手段により特定される第2時間以上となる前記所定時間が経過するまで前記車両を停車させるものであることを特徴とする。
技術的思想4の走行制御装置は、技術的思想3記載の走行制御装置において、前記停車手段は、前記第1時間と第2時間とのうち、長い方を前記所定時間とするものであることを特徴とする。
技術的思想5の走行制御装置は、技術的思想3記載の走行制御装置において、前記停車手段は、前記第1時間と第2時間とを合計した時間を前記所定時間とするものであることを特徴とする。
技術的思想6の走行制御方法は、車両を自律走行させるための走行制御情報を設定する情報設定工程と、その走行制御情報に基づいて、前記車両の前進および後進の切り換えが発生するかを判定する判定工程と、その判定工程により前進および後進の切り換えが発生すると判定される場合は、前進および後進を切り換える際に前記車両を所定時間停車させる停車工程とを有することを特徴とする。
<効果>
技術的思想1記載の走行制御装置によれば、車両を自律走行させるための走行制御情報が情報設定手段により設定されると、その走行制御情報に基づいて車両の前進および後進の切り換えが発生するかが判定手段により判定される。そして、判定手段により前進および後進の切り換えが発生すると判定される場合は、前進および後進を切り換える際に車両が所定時間停車させられる。よって、自律走行において車両の前進および後進を切り換える場合に、車両を所定時間停車させることできる。車両の進行方向を変化させる場合には車両の搭乗者に加速度が加わるが、車両を所定時間停車させることで、車両の搭乗者に加わっている加速度を緩和することができる。従って、車両を自律走行させる場合に車両の搭乗者に与える不快感を軽減できるという効果がある。
技術的思想2記載の走行制御装置によれば、技術的思想1記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、車両の前進および後進の切り換えに伴う加速度を十分に低下させる第1時間が第1時間特定手段により特定されると、第1時間以上となる所定時間が経過するまで車両が停車手段により停車させられる。よって、前進および後進を切り換える際に車両を第1時間以上停車させることができるので、車両の搭乗者に加わっている加速度を十分に低下させることができる。従って、車両の搭乗者に与える不快感をより軽減できるという効果がある。
技術的思想3記載の走行制御装置によれば、技術的思想1または2記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、車両の前進および後進を切り換える切り換え地点において動作させるハンドルの動作量、または、切り換え地点における車輪の切れ角の変化量に基づいて、ハンドルを動作させるための第2時間が第2時間特定手段により特定されると、第2時間特定手段により特定される第2時間以上となる所定時間が経過するまで停車手段により車両が停車させられる。よって、切り換え地点におけるハンドルの動作量、または、切り換え地点における車輪の切れ角の変化量に基づいて、ハンドルを動作させるための適切な第2時間を特定でき、前進および後進を切り換える際に車両を第2時間以上停車させることができる。従って、ハンドルが速く動作することで車両の搭乗者を驚かせることや恐怖感を与えることを抑制でき、搭乗者が接触する可能性のあるハンドルに対し、その動作速度を抑制することができる。従って、車両の搭乗者に与える不快感をさらに軽減できるだけでなく、安全性も向上するという効果がある。
技術的思想4記載の走行制御装置によれば、技術的思想3記載の走行制御装置の奏する効果に加え、停車手段によって、第1時間と第2時間とのうち、長い方が所定時間とされるので、切り換え地点において車両を停車させてからの所定時間内に、切り換え地点において車両の搭乗者に加わっている加速度を低下させることができると共に、切り換え地点において車両を停車させている間にハンドルを緩やかに動作させることができる。従って、車両の搭乗者に与える不快感を一層軽減できるという効果がある。
技術的思想5記載の走行制御装置によれば、技術的思想3記載の走行制御装置の奏する効果に加え、停車手段によって、第1時間と第2時間とを合計した時間が所定時間とされるので、切り換え地点において車両の搭乗者に加わっている加速度をより低下させることができると共に、切り換え地点において車両を停車させている間にハンドルをより緩やかに動作させることができる。よって、車両の搭乗者に与える不快感を一層軽減できるという効果がある。
技術的思想6記載の走行制御方法によれば、その方法により車両を自律走行させることで、技術的思想1記載の走行制御装置と同様の作用効果を奏する。