走行制御装置
【課題】予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる走行制御装置を提供すること。
【解決手段】走行制御装置100では、経路パターンPT1〜PT10を用いて仮の走行経路RT1を生成し、その仮の走行経路RT1ついて駐車可能条件が成立しない場合、その仮の走行経路RT1の終端から10通りの方向に走行経路を延長するように、10通りの新たな仮の走行経路RT1を一つずつ順番に生成していく。よって、経路パターンの種類が多くなくても、生成する仮の走行経路RT1の数を増やすことができ、駐車可能条件が成立する可能性を高めることができる。従って、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる。
【解決手段】走行制御装置100では、経路パターンPT1〜PT10を用いて仮の走行経路RT1を生成し、その仮の走行経路RT1ついて駐車可能条件が成立しない場合、その仮の走行経路RT1の終端から10通りの方向に走行経路を延長するように、10通りの新たな仮の走行経路RT1を一つずつ順番に生成していく。よって、経路パターンの種類が多くなくても、生成する仮の走行経路RT1の数を増やすことができ、駐車可能条件が成立する可能性を高めることができる。従って、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、走行制御装置に関し、特に、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる走行制御装置に関するものである。
【背景技術】
【0002】
従来より、運転者が自車両を目標位置まで走行させる場合に、自車両を現在の車両位置から目標位置まで走行させることが可能な走行経路を生成し、運転者がハンドル操作を行わなくても、自車両が走行経路に沿って走行するように自車両の走行を制御する走行制御装置が知られている。この種の走行制御装置に関し、次の特許文献1に記載の走行制御装置では、運転者が走行経路の生成を指示すると、自車両を現在の車両位置から後退により目標位置へ走行させることが可能な走行経路の生成が試みられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−284969号公報(第0062段落など)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の走行制御装置は、複数の走行経路パターンを繋ぎ合わせた走行経路を生成するものの、走行経路パターンの種類があまりない上、単純な走行経路しか生成しないものである。そのため、自車両を現在の車両位置から目標位置まで走行させる走行経路が生成される可能性が低かった。そこで、走行経路パターンの種類を増やすことが考えられるが、走行経路パターンの数を増やすにしても、走行経路パターンを記憶しておく記憶手段の記憶容量によって数が制限されるという問題が生じる。
【0005】
本発明は、上述した問題点を解決するためになされたものであり、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる走行制御装置を提供することを目的としている。
【課題を解決するための手段および発明の効果】
【0006】
請求項1記載の走行制御装置によれば、走行経路パターンの中から、走行経路パターンが順番に選択手段により選択されると、その選択された走行経路パターンが選択された順序で仮経路生成手段により用いられて基準位置からの仮経路が生成され、その仮経路を車両に走行させたと仮定した場合にその車両が目標位置へ到着可能か否かが判定手段により判定される。判定手段による到着不可能という判定が仮経路生成手段より生成される仮経路についてなされると、選択制御手段によって、その到着不可能な仮経路の終端を新たな基準位置として選択手段において走行経路パターンの選択が開始されるように制御される。一方、判定手段により到着可能と判定されると、最初の基準位置からその到着可能な仮経路までの一連の仮経路が用いられて、車両を最初の基準位置から目標位置まで走行させるための走行経路が走行経路生成手段により生成される。よって、仮経路生成手段により生成された仮経路が判定手段により到着不可能と判定された場合に、その到着不可能な仮経路を扱わないようにするのではなく、その到着不可能な仮経理を用いて新たに仮経路の生成を試みることができる。従って、走行経路パターンの種類を多くしておかなくても、生成する仮経路の数を増やすことができ、仮経路が生成された場合に、判定手段により到着可能と判定される可能性を向上させることができる。故に、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる。
【0007】
請求項2記載の走行制御装置によれば、請求項1記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、選択制御手段の制御に伴って走行経路パターンの選択が開始される以前に、その制御の対象とされる仮経路が何れの走行経路パターンに基づいて生成されたものかが特定手段により特定され、その特定された走行経路パターンに基づいて、選択手段における走行経路パターンの選択順序が設定手段により設定される。よって、設定手段による設定の後に、選択手段により走行経路パターンが選択される場合には、走行経路パターンの中から、選択制御手段の制御の対象になった仮経路に応じた順番で、走行経路パターンを選択できるので、その制御の対象になった仮経路の終端から新たな仮経路を生成する場合に、その制御の対象になった仮経路に対してより相応しい仮経路から順番に生成できる。ここで、新たな仮経路について、判定手段により到着可能と判定されると、最初の基準位置からその到着可能な仮経路までの一連の仮経路が用いられて走行経路が生成されるため、走行経路が生成される場合に、より相応しい仮経路が用いられる可能性を高めることができる。従って、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる上、より好適な走行経路を生成できるという効果がある。
【0008】
請求項3記載の走行制御装置によれば、請求項2記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、走行経路パターンは、車両が走行すべき経路と、その経路を車両が走行する場合の操舵角またはハンドル角とを示すものであり、設定手段では、走行経路パターンの中で、特定手段により特定される走行経路パターンの示す操舵角に対する操舵角の差、または、特定手段により特定される走行経路パターンの示すハンドル角に対するハンドル角の差が小さい順に走行経路パターンが並ぶ順序が、走行経路パターンの選択順序として設定される。よって、設定手段による設定の後に、選択手段により走行経路パターンが選択される場合には、走行経路パターンの中で、車両の操舵角の変化量が小さいものを優先的に選択できる。従って、選択制御手段の制御の対象になった仮経路の終端から新たな仮経路を生成する場合に、車両の操舵角の変化量が小さい仮経路から優先的に生成できるので、走行経路が生成される場合に、車両の操舵角の変化量の小さい仮経路が優先的に用いられるようすることができる。故に、車両がスムーズに走行できる走行経路を優先的に生成できる。その結果、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる上、より好適な走行経路を優先的に生成できるという効果がある。
【0009】
請求項4記載の走行制御装置によれば、請求項1から3の何れかに記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、走行経路パターンは、車両が走行すべき経路と、その経路を車両が走行する場合の操舵角またはハンドル角とを示すものである。そして、車両の操舵角またはハンドル角が検出手段により検出される。選択手段では、仮経路生成手段において最初の基準位置からの仮経路が生成される場合、走行経路パターンの中から、検出手段により検出される操舵角に対する操舵角の差、または、検出手段により検出されるハンドル角に対するハンドル角の差が小さい順に、走行経路パターンが選択される。よって、最初の基準位置からの仮経路を生成するための走行経路パターンが、選択手段により選択される場合には、走行経路パターンの中で、車両の操舵角の変化量が小さいものを優先的に選択できる。従って、最初の基準位置からの仮経路を生成する場合に、車両の操舵角の変化量が小さい仮経路から優先的に生成できるので、走行経路が生成される場合に、最初の基準位置において車両の操舵角の変化量の小さい仮経路が優先的に用いられるようにすることができる。故に、車両が走行開始時にスムーズに走行できる走行経路を優先的に生成できる。その結果、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる上、より好適な走行経路をより優先的に生成できるという効果がある。
【図面の簡単な説明】
【0010】
【図1】本発明の一例である走行制御装置が搭載される車両の上面視を模式的に示した模式図である。
【図2】走行経路全体に対して生成される走行制御点の一例を説明するための模式図である。
【図3】走行経路全体のうち、パターン走行部を生成するために用いる経路パターンの一例を示す模式図である。
【図4】経路パターンに応じて車両を移動させた場合の移動先と、その車両方位とを説明するための模式図である。
【図5】(a)は、走行経路上の経路点の一例を説明するための模式図であり、(b)は、駐車可能条件を説明するための模式図である。
【図6】走行制御装置の電気的構成を示したブロック図である。
【図7】(a)は、シチュエーション判定テーブルの一例を示す模式図であり、(b)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、(c)は、(b)に示すシチュエーション判定テーブルの内容を説明するための模式図である。
【図8】(a)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、(b)は、(a)に示すシチュエーション判定テーブルの内容を説明するための模式図である。
【図9】経路パターン優先順位テーブルの一例を示す模式図である。
【図10】走行制御点メモリの内容の一例を示す模式図である。
【図11】判定済み順列メモリの内容の一例を示す模式図である。
【図12】走行制御装置の自動駐車処理を示すフローチャートである。
【図13】走行制御装置の点経路第1生成処理を示すフローチャートである。
【図14】車両の現在の操舵角に基づいて、10の経路パターンに優先順位を設定する場合の一例を説明するための模式図である。
【図15】走行制御装置の点経路第2生成処理を示すフローチャートである。
【図16】走行制御装置のパターン走行部制御点生成処理を示すフローチャートである。
【図17】走行経路全体のうち、パターン走行部に対して生成される走行制御点の一例を説明するための模式図である。
【図18】走行制御装置の後退旋回部制御点生成処理を示すフローチャートである。
【図19】走行経路全体のうち、後退旋回部に対して生成される走行制御点の一例を説明するための模式図である。
【図20】走行制御装置の最終後退部制御点生成処理を示すフローチャートである。
【図21】走行経路全体のうち、最終後退部に対して生成される走行制御点の一例を説明するための模式図である。
【発明を実施するための形態】
【0011】
以下、本発明の好ましい実施形態について添付図面を参照して、説明する。図1は、本発明の一例である走行制御装置100が搭載される車両1の上面視を模式的に示した模式図である。なお、図1の矢印U−D,L−R,F−Bは、車両1の上下方向、左右方向、前後方向をそれぞれ示している。
【0012】
まず、図1を参照して、車両1の概略構成について説明する。車両1は、運転者により運転操作可能に構成された車両であり、現在の車両位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させることができる走行制御装置100が搭載されている。なお、本実施形態における自律走行とは、運転者の運転操作なしで車両1を走行させることを意味する。即ち、車両1が自律走行している場合、運転者は、後述するアクセルペダル11、ブレーキペダル12及びステアリング13を操作しなくて良い。
【0013】
走行制御装置100は、目標とする駐車位置が運転者により設定されると、予め記憶されている10の経路パターンPT1〜PT10(図3参照)を複数組み合わせて、現在の車両位置から目標とする駐車位置までの車両1の走行経路を生成し、その生成した走行経路に従って車両1を自律走行させて、目標とする駐車位置に車両1を停車させるものである。
【0014】
詳細については後述するが、この走行制御装置100によれば、走行経路を生成する場合に、距離の短い走行経路や、搭乗者が想定する可能性の高い走行経路や、車両1が走行開始時にスムーズに走行できる走行経路や、車両1がスムーズに走行できる走行経路を優先的に生成することができる。
【0015】
尚、本実施形態では、目標とする駐車位置に車両1を駐車させた時の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いて、車両1の位置や、走行経路などの位置を算出する。
【0016】
よって、以下の説明では、この座標系を用いて、車両1や、走行経路などの各位置を示す。また、車両1の前後軸と、車両1における左右の後輪2RL,2RRの車軸との交点を車両1の基準点とし、上述した座標系における車両1の基準点の位置を、車両1の車両位置とする。また、車両1の前後軸方向のうち車両1が進行している方向を、車両1の進行方向とする。
【0017】
図1に示すように、車両1は、車体フレームBFと、その車体フレームBFに支持される複数(本実施形態では4輪)の車輪2FL,2FR,2RL,2RRと、それら複数の車輪2FL〜2RRの内の一部(本実施形態では、左右の前輪2FL,2FR)を回転駆動する車輪駆動装置3と、各車輪2を車体フレームBFに懸架する懸架装置4と、複数の車輪2の内の一部(本実施形態では、左右の前輪2FL,2FR)を操舵するステアリング装置6および操舵駆動装置5とを主に備えている。
【0018】
次いで、各部の詳細構成について説明する。車体フレームBFは、車両1の骨格をなすものであり、懸架装置4を支持すると共に、その懸架装置4を介して車輪2を支持している。懸架装置4は、いわゆるサスペンションとして機能する装置であり、図1に示すように、各車輪2に独立して設けられている。
【0019】
車輪2FL,2FRは、図1に示すように、車体フレームBFの前方側(矢印F側)に配置される左右の前輪であり、車輪駆動装置3によって回転駆動される駆動輪として構成されている。一方、車輪2RL,2RRは、車体フレームBFの後方側(矢印B側)に配置される左右の後輪であり、車両1の走行に伴って従動する従動輪として構成されている。4つの車輪2FL〜2RRのうち、左右の前輪2FL,2FRには共に、車輪の回転量を検出する車輪回転センサ23が取り付けられている。
【0020】
車輪回転センサ23は、センサ23が取り付けられている車輪2の回転量を検出して、その検出結果をCPU91に出力するセンサであり、車輪2が所定の角度回転する度に、回転検出信号をCPU91に出力するものである。車輪2の外周の長さと、回転検出信号が出力される回転角度とは予め決まっているので、回転検出信号が出力されから次の回転検出信号が出力されるまでに車両1が走行する走行距離も予め決まる。CPU91は、車両1が自律走行をする場合、2つの車輪回転センサ23の回転検出信号を個別にカウントし、2つのカウント数の平均値を用いて出発地点からの走行距離を算出する。
【0021】
ジャイロセンサ装置22は、車両1の水平面に対するロール角およびピッチ角と、ヨー
角とを検出すると共に、その検出結果をCPU91に出力するための装置であり、車両1の重心を通る基準軸(図1矢印F−B,L−R,U−D方向軸)回りの車両1(車体フレームBF)の回転角(ロール角、ピッチ角、ヨー角)をそれぞれ検出するジャイロセンサ(図示せず)と、そのジャイロセンサの検出結果を処理してCPU91に出力する出力回路(図示せず)とを主に備えている。
【0022】
なお、以下の説明では、車両1のヨー角のことを、車両1の車両方位と記載する。なお、車両1における車両方位の基準軸は、上述したx軸とし、そのx軸から車両1の進行方向までの反時計回りの角度を、車両1の車両方位とする。
【0023】
CPU91は、車両1が自律走行する場合、ジャイロセンサ装置22から出力される車両1の車両方位を取得し、車両1の進行方向を算出する。そして、その車両1の進行方向と、車輪回転センサ23の回転検出信号から算出される車両1の走行距離とに基づいて、出発地点からの移動距離を算出する。出発地点は原点Oを基準に設定されているので、CPU91は、出発地点からの移動距離に基づいて、原点Oを基準とした車両1の現在位置を算出できる。
【0024】
車輪駆動装置3は、左右の前輪2FL,2FRに回転駆動力を付与するモータ3a(図6参照)を備えて構成されている。なお、モータ3aは、ディファレンシャルギヤ(図示せず)及び一対のドライブシャフト31を介して左右の前輪2FL,2FRに接続されている。
【0025】
例えば、運転者がアクセルペダル11を操作した場合には、モータ3aから左右の前輪2FL,2FRに回転駆動力が付与され、それら左右の前輪2FL,2FRがアクセルペダル11の傾斜状態(傾斜角度、傾斜する速度など)に応じた速度で回転駆動される。なお、左右の前輪2FL,2FRの回転差は、ディファレンシャルギヤにより吸収される。
【0026】
ステアリング装置6は、図1に示すように、ステアリングシャフト61と、フックジョイント62と、ステアリングギヤ63と、タイロッド64と、ナックルアーム65とを主に備えて構成されている。なお、ステアリング装置6は、ステアリングギヤ63がピニオン(図示せず)とラック(図示せず)とを備えたラックアンドピニオン機構によって構成されている。
【0027】
例えば、運転者がステアリング13を操作した場合には、ステアリング13の操作がステアリングシャフト61を介してフックジョイント62に伝達されると共にフックジョイント62によって角度を変えられ、ステアリングギヤ63のピニオンに回転運動として伝達される。そして、ピニオンに伝達された回転運動がラックの直線運動に変換され、ラックが直線運動することで、ラックの両端に接続されたタイロッド64が移動し、ナックルアーム65を介して車輪2が操舵される。
【0028】
ステアリングシャフト61には、左右の前輪2FL,2FRの操舵角δを算出してCPU91へ出力するステアリングセンサ装置21が取り付けられている。ステアリングセンサ装置21は、基準位置からのステアリングシャフト61の回転角度に基づいて、左右の前輪2FL,2FRの操舵角δを算出し、その算出結果を走行制御装置100に設けられたCPU91(図6参照)へ出力する。尚、操舵角δに加えて、ステアリング13の角度をCPU91に出力するように構成しても良い。
【0029】
操舵駆動装置5は、ステアリング装置6と同様に、左右の前輪2FL,2FRを操舵するための装置であり、ステアリングシャフト61に回転駆動力を付与するモータ5a(図6参照)を備えて構成されている。即ち、モータ5aが駆動されてステアリングシャフト61が回転すると、運転者によりステアリング13が操作された場合と同様に車輪2が操舵される。
【0030】
アクセルペダル11、ブレーキペダル12及びステアリング13は、いずれも運転者により制御される操作部材であり、各ペダル11,12の傾斜状態(傾斜角度、傾斜する速度など)に応じて車両1の加速力や制動力が決定されると共に、ステアリング13の操作状態(操作量、操作方向)に応じて車両1の旋回半径や旋回方向が決定される。
【0031】
自動駐車スイッチ25は、自律走行により目標とする駐車位置に車両1を駐車させたい場合に、運転者が押下するスイッチであり、これが運転者により押下されると、走行制御装置100において後述する自動駐車処理(図12参照)が実行される。その結果、現在の車両位置から運転者により設定される駐車位置まで車両1が自律走行させられ、その駐車位置に車両1が停車させられる。
【0032】
第1から第3までの各距離センサ24a〜24cは、車両1の周辺に存在する物体までの距離データをCPU91(図6参照)に出力するための装置である。各距離センサ24a,24b,24cは、レーザ光を対象物に向けて照射し、その反射の度合いで対象物までの距離を測定するレーザレンジファインダで構成されている。
【0033】
第1距離センサ24aは、車両1の前面右端に、第2距離センサ24bは、車両1の前面左端に、第3距離センサ24cは、車両1の後面中央に取り付けられている。本実施形態では、3つの距離センサ24a〜24cにより、車両1を中心として少なくとも60m四方の領域内に存在する各対象物までの距離を検出可能に構成されている。
【0034】
走行制御装置100は、車輪駆動装置3、操舵駆動装置5、及び、ブレーキ装置(図示せず)などを制御して、現在の車両位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものである。
【0035】
本実施形態では、運転者により自動駐車スイッチ25が押下され、運転者により目標とする駐車位置が設定されると、走行制御装置100によって、現在の車両位置から目標位置へ到達可能な走行経路RT1〜RT3が生成される(図2参照)。走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成されている。
【0036】
この走行経路RT1〜RT3は線として連続的に構成されるが、走行経路RT1〜RT3を示すデータについては、走行経路RT1〜RT3を構成する点のうち、所定間隔ごとの点を示すデータより構成される。以下、この所定間隔ごとの点を、経路点Pと称し、経路点Pを示すデータを、経路点情報と称する。なお、この経路点Pは、車両1が走行経路RT1〜RT3を自律走行する場合に経由すべき点であり、経路点情報は、経路点Pにおける車両1の車両位置と、その経路点Pにおける車両1の車両方位θとにより構成される。各経路点Pの経路点情報は、後述する点経路メモリ93b(図6参照)に記憶される。詳細については後述するが、例えば、走行経路RT1であれば、走行経路RT1上を構成する点のうち、2m間隔ごとの点を経路点Pとしている。
【0037】
そして、本実施形態では、走行経路RT1〜RT3全体が生成されると、次に、走行制御装置100が車両1を自律走行させる場合に車両1の車両状態を制御する点である走行制御点Qが、走行経路RT1〜RT3上に、0.05m間隔で仮想的に生成される。つまり、本実施形態では、車両1の走行状態が0.05m毎に制御される。
【0038】
なお、経路点P0(車両1の出発位置)上には走行制御点Qは生成されず、経路点P0から0.05mだけ目標とする駐車位置に近づいた位置から走行制御点Qが生成されて行き、経路点P0を除く各経路点P上には、必ず走行制御点Qが生成される。また、各走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成され、各走行制御点Qの車両設定情報は、後述する走行制御点メモリ93c(図6参照)にそれぞれ記憶される。
【0039】
車両設定情報の詳細については後述するが、走行制御装置100は、走行経路RT1〜RT3に沿って車両1を自律走行させる場合に、各走行制御点Qに到達する度に、その走行制御点Qに対応する車両設定情報に基づいて車両1の走行状態を設定し、運転者により設定される駐車位置まで車両1を自律走行させる。
【0040】
ここで、図2を参照して、走行制御装置100により生成される走行経路RT1〜RT3と、走行経路RT1〜RT3に対して生成される走行制御点Qについて説明する。図2は、走行経路RT1〜RT3全体と、その走行経路RT1〜RT3を示す経路点Pと、その走行経路RT1〜RT3に対して生成される走行制御点Qとの一例を説明するための模式図である。
【0041】
以下、図2を含め、走行経路RT1〜RT3を示す図においては、経路点Pを白抜きの丸で示し、走行制御点Qを黒塗りの丸で示す。また、経路点P0は、車両1の出発位置を示し、経路点P8は、運転者により設定された駐車位置を示す。なお、他の経路点P1〜P7の詳細については後述する。また、走行制御点Qは、本来なら0.05m間隔で仮想的に生成されるが、図を見易くするために一部の走行制御点Qのみを示す。
【0042】
上述したように、走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成される。パターン走行部RT1は、後述する経路パターンメモリ92a(図6参照)に格納されている経路パターンPT1〜PT10の組み合わせにより生成される走行経路である。図2に示す例では、経路点P0から経路点P6までの走行経路が、パターン走行部RT1となる。
【0043】
また、後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に車両1を後退直進させることが可能となる車両位置までの走行経路である。図2に示す例では、経路点P6から経路点P7までの経路が、後退旋回部RT2となる。なお、この後退旋回部RT2では、車両1が同一の操舵角δで後退旋回するように走行経路が決定される。
【0044】
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置までの走行経路である。図2に示す例では、経路点P7から経路点P8までの経路が、最終後退部RT3となる。なお、この最終後退部RT3は、車両1が後退直進するように走行経路が決定される。
【0045】
パターン走行部RT1が生成され、後退旋回部RT2、および、最終後退部RT3が決定されると、各走行経路RT1〜RT3ごとに走行制御点Qが仮想的に生成される。走行制御点Qが仮想的に生成される場合には、走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成されると共に、その走行制御点Qを識別するためのインデックス番号(以下、「ID番号」と称す)が設定される。
【0046】
このID番号は、走行経路RT1〜RT3上における走行制御点Qのうち、経路点P0(車両1の出発位置)に最も近い位置の走行制御点Qが1番に設定される。その後は、走行経路RT1〜RT3に沿ってID番号が1番ずつ大きくなるように、目標とする駐車位置に重なる走行制御点Qまで順番にID番号が設定される。
【0047】
ここで、図3を参照して、経路パターンPT1〜PT10について説明する。図3は、走行経路RT1〜RT3全体のうち、パターン走行部RT1を生成するために用いる経路パターンPT1〜PT10の一例を示す模式図である。
【0048】
本実施形態では、10種類の断片的な走行経路が予め設定されており、それぞれが経路パターンとして、後述する経路パターンメモリ92a(図6参照)に格納されている。10種類の経路パターンPT1〜PT10には、「PT1」から「PT10」までのパターン番号が付されている。10種類の経路パターンPT1〜PT10では、各走行経路の軌跡はそれぞれ異なるが、各走行経路の長さ(即ち、走行距離)CLは全て2mに設定されている。パターン走行部RT1は、この経路パターンPT1〜PT10に対応する走行経路が組み合わされて生成される。
【0049】
そして、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。つまり、経路点P1〜P5は、経路パターンPT1〜PT10に対応する走行経路の接続点を示している。
【0050】
経路パターンPT1は、経路点Piから車両1を前方直進させ2m移動させる走行経路を示すパターンであり、経路パターンPT2は、経路点Piから車両1を後退直進させ2m移動させる走行経路を示すパターンである。
【0051】
経路パターンPT3は、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT4は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を前方右旋回させ、経路パターンPT5は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を後退左旋回させ、経路パターンPT6は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を旋回半径Rで後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
【0052】
また、経路パターンPT7は、車両1の旋回半径Rを最小旋回半径とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT8は、車両1の旋回半径Rを最小旋回半径とし車両1を前方右旋回させ、経路パターンPT9は、車両1の旋回半径Rを最小旋回半径とし車両1を後退左旋回させ、経路パターンPT10は、車両1の旋回半径Rを最小旋回半径とし車両1を後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
【0053】
ここで、図4を参照して、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する各経路点Pおよび車両方位θについて説明する。図4は、経路パターンPT1〜PT10に応じて車両1を移動させた場合の移動先に対応する各経路点Pおよび車両方位θを算出するための模式図である。ここで、経路点Pi(xi,yi)は、移動前の車両1の車両位置を示す。また、経路点Piにおける車両1の車両方位をθiと示し、車両1の進行方向を矢印で示す。
【0054】
まず、経路パターンPT8に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PA(xA,yA)と、その経路点PAにおける車両方位θAを算出する方法について説明する。
【0055】
車両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および車両方位θを算出できる。
【0056】
次に、経路パターン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および車両方位θを算出できる。
【0057】
以下同様に、経路パターン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および車両方位θを算出できる。
【0058】
また、経路パターン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および車両方位θを算出できる。
【0059】
また、図示はしていないが、経路パターンPT1に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PE(xE,yE)と、その経路点PEにおける車両方位θEとは、
θE=θi
xE=xi+CL・cos(θi)
yE=yi+CL・sin(θi)
により算出できる。
【0060】
また、経路パターンPT2に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PF(xF,yF)と、その経路点PFにおける車両方位θFとは、
θF=θi
xF=xi+CL・cos(θi+π)
yF=yi+CL・sin(θi+π)
により算出できる。
【0061】
以上の図4を参照して説明した数式を用いることにより、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点Pと、その車両方位θとを算出できる。よって、パターン走行部RT1を生成できる。
【0062】
本実施形態では、パターン走行部RT1の生成が試みられる場合、経路パターンPT1〜PT10が組み合わされて、仮の走行経路RT1が生成される。すると、次に、その仮の走行経路RT1に続く後退旋回部RT2と、その後退旋回部RT2に続く最終後退部RT3とが有るか否かが判定される。この判定条件のことを、本実施形態では、駐車可能条件と称する。
【0063】
なお、ここで駐車可能条件が成立する場合には、仮の走行経路RT1がパターン走行部RT1とされ、成立した駐車可能条件に基づいて、後退旋回部RT2および最終後退部RT3が決定され、走行経路RT1〜RT3全体が生成される。一方、駐車可能条件が成立しない場合には、別の仮の走行経路RT1が生成され、再度、駐車可能条件が成立しているかが判定される。仮の走行経路RT1の生成と、駐車可能条件の判定とは、駐車可能条件が成立するか、又は、予め定められている経路パターンPT1〜PT10の組み合わせが全て生成されるまで、繰り返される。
【0064】
ここで、図5(a),(b)を参照して、走行経路RT1〜RT3全体が生成されるまでの流れと、駐車可能条件とについて説明する。図5(a)は、走行経路RT1〜RT3上の経路点Pの一例を説明するための模式図であり、図5(b)は、駐車可能条件を説明するための模式図である。図5(a)では、経路点P0〜P6までの走行経路が、パターン走行部RT1に対応し、経路点P6〜P7までの走行経路が、後退旋回部RT2に対応し、経路点P7〜P8までの走行経路が、最終後退部RT3に対応している。
【0065】
本実施形態では、走行経路RT1〜RT3全体の生成が試みられる場合、まず、走行経路RT1の生成が試みられる。例えば、図5(a)に示すように、車両1の出発地点である経路点P0では、点線および実線で示した10通りの仮の走行経路RT1が一つずつ順番に生成される。
【0066】
より具体的には、仮の走行経路RT1の生成が開始される以前に、まず、車両1の現在の車両位置P0と、目標とする駐車位置P8と、車両1の車両方位θとの3つの条件、または、車両1の現在の操舵角δに基づいて、10の経路パターンPT1〜PT10に優先順位が設定される。尚、優先順位の詳細については後述するが、この優先順位は、走行経路RT1を生成する場合に、距離の短い走行経路RT1や、搭乗者が想定する可能性の高い走行経路RT1や、車両1が走行開始時にスムーズに走行できる走行経路RT1を優先的に生成するためのものである。
【0067】
そして、優先順位の高いものから順に一つずつ経路パターンPT1〜PT10が選択され、経路パターンPT1〜PT10が一つ選択される度に、その1個の経路パターンPT1〜PT10に対応する経路であって、経路点P0を始点とする仮の走行経路RT1が生成される。
【0068】
本実施形態では、仮の走行経路RT1が生成されると、その度に、仮の走行経路RT1の終端に対応する経路点Pにおいて、駐車可能条件が成立しているかが判定され(図9のS34参照)、駐車可能条件が成立していなければ、別の仮の走行経路RT1が生成される。
【0069】
そのため、経路点P0では、優先順位の高い経路パターンPT1〜PT10の順に、点線および実線で示した10通りの仮の走行経路RT1が一つずつ順番に生成され、各走行経路RT1が生成される度に、その終端となる経路点P1において、駐車可能条件が成立しているかが判定される。
【0070】
ここで、駐車可能条件が成立していると判定されると、仮の走行経路RT1が、車両1の走行経路RT1とされて、走行経路RT1〜RT3全体が生成され、そこで仮の走行経路RT1の生成が終了する。一方、全ての経路パターンPT1〜PT10が選択され、生成された何れの仮の走行経路RT1において駐車可能条件が成立しなければ、次に、組み合わせる経路パターンPT1〜PT10の数が1つ増やされ、経路パターンPT1〜PT10を2個組み合わせた仮の走行経路RT1が一つずつ順番に生成される。
【0071】
具体的には、先ほど生成した10の走行経路RT1毎に、その終端から10通りの方向に走行経路を延長するように、10通りの仮の走行経路RT1が一つずつ順番に生成される。但し、本実施形態では、組み合わせる経路パターンPT1〜PT10の数が一つ増やされる度に、10の経路パターンPT1〜PT10に優先順位が設定される。そして、仮の走行経路RT1が生成される場合には、優先順位の高い経路パターンPT1〜PT10の順に、10通りの方向に走行経路を延長するように、10通りの仮の走行経路RT1が一つずつ順番に生成され、それぞれ駐車可能条件が成立しているかが判定される。
【0072】
尚、組み合わせる経路パターンPT1〜PT10の数が一つ増やされる場合は、今回増やす経路パターンPT1〜PT10の直前に並ぶ経路パターンPT1〜PT10の種別に基づいて、優先順位が設定される。この優先順位は、走行経路RT1を生成する場合に、車両1の操舵角δの変化が少ない走行経路RT1を優先的に生成するためのものである。
【0073】
そして、仮の走行経路RT1を全通り生成しても、駐車可能条件が成立しなければ、更に、経路パターンPT1〜PT10を3つ組み合わせた仮の走行経路RT1を生成するというように、組み合わせる経路パターンPT1〜PT10の数が一つずつ増やされながら仮の走行経路RT1が繰り返し生成される。この仮の走行経路RT1の生成は、駐車可能条件が成立するか、又は、組み合わせる経路パターンPT1〜PT10の数が所定数に達するまで、繰り返される。
【0074】
上述したように、別の仮の走行経路RT1の生成と、駐車可能条件の成立の判定とが繰り返される。図5(a)の例では、経路点P0〜P6までの走行経路が生成され、経路点P6において、駐車可能条件が成立した状態を示している。
【0075】
この駐車可能条件は、2つの条件から構成されており、1つ目の条件は、仮の走行経路RT1の終端に対応する経路点Pから車両1を同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
【0076】
ここで、図5(b)を参照して、駐車可能条件が成立する経路点Pおよび車両方位θについて説明する。上述したとおり、駐車可能条件における1つ目の条件は、車両1を経路点Pから同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
【0077】
図5(b)は、駐車可能条件を説明するための模式図であり、経路点Pv0(xv0,yv0)は、駐車可能条件が成立しているかを判定する車両1の車両位置を示し、経路点PVn(xvn,yvn)は、運転者により設定された駐車位置を示す。また、経路点Pv0における車両1の車両方位をθvと示し、経路点Pvnにおける車両1の車両方位をθpと示す。
【0078】
経路点Pv0から経路点Pvnへ向けて引いた直線と、x軸(図5(a)参照)とのなす角度をθとした場合、その角度θは、
θ=tan−1((yv0−yvn)/(xv0−xvn))
により算出できる。よって、経路点Pv0から経路点Pvnまでのx軸(図5(a)参照)に平行な距離をPxとし、経路点Pv0から経路点Pvnまでのy軸(図5(a)参照)に平行な距離を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)|
により算出できる。
【0079】
また、車両1の旋回中心Kからy軸に向けて垂直に引いた直線と、車両1の旋回中心Kから車両1の経路点PV0に向けて引いた直線とのなす角度をθvpとした場合、その角度θvpは、
θvp=θv0−θvn
により算出できる。よって、これらの式から、車両1の旋回半径Rpを次の式で算出できる。
【0080】
Rp=Px/(1−cos(θVp))
なお、この旋回半径Rpが車両1の最小旋回半径以上となる場合に、上述した駐車可能条件の1つ目の条件が成立する。つまり、この式が、駐車可能条件における1つ目の条件である。
【0081】
そして、経路点Pv0から車両1の旋回中心Kまでのy軸に平行な距離をPryとした場合、距離Pryは、
Pry=Rp・sin(θvp)
により算出できる。ここで、駐車スペースの入り口から経路点Pvnまでのy軸に平行な距離をPLとすると、
Py−PL>Pry
が成立している場合にのみ、車両1を後退直進させて駐車スペースに進入させることができる。つまり、この式が、駐車可能条件における2つ目の条件である。
【0082】
走行制御装置100は、仮の走行経路RT1の終端に対応する経路点Pにおいて、上述した駐車可能条件における2つの条件が成立していれば、仮の走行経路RT1をパターン走行部RT1とし、そして、後退旋回部RT2と、最終後退部RT3とを決定し、走行経路RT1〜RT3全体を生成する。
【0083】
なお、後退旋回部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とになる。
【0084】
次に、図6を参照して、走行制御装置100の詳細構成について説明する。図6は、走行制御装置100の電気的構成を示したブロック図である。走行制御装置100は、CPU91、フラッシュメモリ92及びRAM93を備え、それらがバスライン94を介して入出力ポート95に接続されている。また、入出力ポート95には、車輪駆動装置3、操舵駆動装置5、ステアリングセンサ装置21、ジャイロセンサ装置22、車輪回転センサ23、第1から第3までの各距離センサ24a〜24c、自動駐車スイッチ25及びその他の入出力装置99などが接続されている。
【0085】
CPU91は、バスライン94によって接続された各部を制御する演算装置であり、フラッシュメモリ92は、CPU91によって実行される制御プログラムや固定値データ等を記憶するための書き換え不能な不揮発性のメモリである。なお、後述する図12のフローチャートに示す自動駐車処理、図13のフローチャートに示す点経路第1生成処理、図15のフローチャートに示す点経路第2生成処理、図16のフローチャートに示すパターン走行部制御点生成処理、図18のフローチャートに示す後退旋回部制御点生成処理、図20のフローチャートに示す最終後退部制御点生成処理を実行する各プログラムは、フラッシュメモリ92に格納されている。
【0086】
また、フラッシュメモリ92には、経路パターンメモリ92aと、シチュエーション判定テーブルメモリ92bと、経路パターン優先順位テーブルメモリ92cとが設けられている。経路パターンメモリ92aは、上述した10種類の各経路パターンPT1〜PT10の形状や特性などを示すデータが格納されている。例えば、走行経路の長さや、走行経路を走行する場合の車両1の旋回半径Rや、車両1を前進させるものか後退させるものかや、車両1を直進させるものか旋回させるものかなどを示すデータが、10種類の経路パターンPT1〜PT10毎に格納されている。
【0087】
シチュエーション判定テーブルメモリ92bは、シチュエーション判定テーブルが格納されているメモリである。シチュエーション判定テーブルは、仮の走行経路RT1の生成が開始される以前に、10の経路パターンPT1〜PT10に優先順位を設定するためのテーブルである。このシチュエーション判定テーブルは、走行制御装置100において仮の走行経路RT1の生成が開始される以前に、CPU91により参照される。
【0088】
ここで、図7および図8を参照して、シチュエーション判定テーブルについて説明する。尚、車両1の現在の車両位置を(xv、yv)とし、目標とする駐車位置のうち、x軸上の最小値をx1、x軸上の最大値をx2、y軸上の最小値をy1、y軸上の最大値をy2として説明する(図7(c)参照)。
【0089】
図7(a)は、シチュエーション判定テーブルの一例を示す模式図であり、図7(b)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、図7(c)は、図7(b)に示すシチュエーション判定テーブルの内容を説明するための模式図である。また、図8(a)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、図8(b)は、図8(a)に示すシチュエーション判定テーブルの内容を説明するための模式図である。
【0090】
図7(a)に示すように、シチュエーション判定テーブルでは、車両1の車両位置(xv,yv)と、目標とする駐車位置によって決まるx1,x2,y1,y2と、車両1の車両方位θvとの3つの条件に応じて、10の経路パターンPT1〜PT10の優先順位が設定されている。
【0091】
例えば、目標とする駐車位置に対し左上のエリアに車両1が存在しており、即ち、「(xv≦x1)および(yv≧y1)」という条件を満たし、且つ、車両方位θvが「0≦θv<45」という条件を満たす場合の優先順位としては、図7(b)に示す優先順位が設定されている。
【0092】
具体的には、10の経路パターンPT1〜PT10のうち、経路パターンPT7が優先順位1位に設定され、経路パターンPT3が優先順位2位に設定されている。また、経路パターンPT1が優先順位3位、経路パターンPT4が優先順位4位、・・・と、以後同様に設定されている。
【0093】
この優先順位は、走行経路RT1〜RT3全体を生成する場合に、距離の短い走行経路RT1〜RT3や、搭乗者が想定する可能性の高い走行経路RT1〜RT3を優先的に生成するためのものである。目標とする駐車位置に対し左上のエリアに車両1が存在しており、且つ、車両方位θvが「0≦θv<45」という条件を満たす場合には、図7(c)に示すように、駐車可能条件の成立する可能性が高くなるように、優先順位が設定される。
【0094】
この条件の場合は、車両1を前方左旋回させる方が、車両1を他方向へ進行させるよりも、目標とする駐車位置に対して後退旋回が行い易くなると共に、車両方位θvがより90度に近づくので、駐車可能条件の成立する可能性が高くなる。また、車両1を前方直進や前方右旋回させる方が、車両1を他方向へ後退させるよりも、目標とする駐車位置に近づくので、走行経路RT1〜RT3が短くなる可能性が高い。また、車両1を前方左旋回させるという経路は、搭乗者が想定する可能性の高い経路である。
【0095】
また、例えば、目標とする駐車位置に対し左上のエリアに車両1が存在しており、即ち、「(xv≦x1)および(yv≧y1)」という条件を満たし、且つ、車両方位θvが「90≦θv<135」という条件を満たす場合の優先順位としては、図8(a)に示す優先順位が設定されている。
【0096】
具体的には、10の経路パターンPT1〜PT10のうち、経路パターンPT4が優先順位1位に設定されており、経路パターンPT1が優先順位2位に設定されている。また、経路パターンPT3が優先順位3位、経路パターンPT7が優先順位4位、・・・と、以後同様に設定されている。
【0097】
この優先順位も、走行経路RT1〜RT3を生成する場合に、距離の短い走行経路RT1〜RT3や、搭乗者が想定する可能性の高い走行経路RT1〜RT3を優先的に生成させるためのものである。目標とする駐車位置に対し左上のエリアに車両1が存在しており、且つ、車両方位θvが「90≦θv<135」の場合にも、図8(b)に示すように、駐車可能条件の成立する可能性が高くなるように、優先順位が設定される。
【0098】
この条件の場合は、車両1を前方に緩やかに(即ち、最小旋回半径の2倍で)右旋回させる方が、車両1を他方向へ進行させるよりも、目標とする駐車位置に対して後退旋回が行い易くなると共に、車両方位θvがより90度に近づくので、駐車可能条件の成立する可能性が高くなる。また、車両1を前方直進や前方左旋回や、前方にきつい角度で(即ち、最小旋回半径で)右旋回させる方が、車両1を他方向へ後退させるよりも、目標とする駐車位置に対して後退旋回が行い易い位置に車両1を移動させることができるので、切り返しを抑制でき、走行経路RT1〜RT3が長くなることを抑制できる。また、車両1を前方に緩やかに(即ち、最小旋回半径の2倍で)右旋回させるという経路は、搭乗者が想定する可能性の高い経路である。
【0099】
以上、図7および図8を参照して、シチュエーション判定テーブルにおいて設定されている2つの優先順位の例について説明したが、これ以外の場合にも、車両1の車両位置(xv,yv)と、目標とする駐車位置によって決まるx1,x2,y1,y2と、車両1の車両方位θvとの3つ条件に応じて、10の経路パターンPT1〜PT10の優先順位が予め設定されている。尚、その他の優先順位の説明については、同様な説明となるため省略する。
【0100】
ここで、図6の説明に戻る。経路パターン優先順位テーブルメモリ92cは、経路パターン優先順位テーブルが格納されているメモリである。上述したシチュエーション判定テーブルは、仮の走行経路RT1の生成が開始される以前に、10の経路パターンPT1〜PT10に優先順位を設定するためのテーブルであったが、経路パターン優先順位テーブルは、仮の走行経路RT1の生成中に、10の経路パターンPT1〜PT10に優先順位を設定するためのテーブルである。
【0101】
この経路パターン優先順位テーブルは、走行制御装置100において経路パターンPT1〜PT10の組み合わせを生成する場合に、組み合わせる経路パターンPT1〜PT10の数が一つ増える度に、CPU91により参照される。
【0102】
ここで、図9を参照して、経路パターン優先順位テーブルについて説明する。図9は、経路パターン優先順位テーブルの内容の一例を示す模式図である。経路パターン優先順位テーブルでは、直近に並ぶ経路パターンPT1〜PT10の種別毎に、10経路パターンPT1〜PT10の優先順位が設定されている。尚、直近に並ぶ経路パターンPT1〜PT10とは、経路パターンPT1〜PT10の組み合わせにおいて、今回増やす経路パターンPT1〜PT10の直前に並ぶ経路パターンPT1〜PT10のことである。
【0103】
これらの優先順位は、走行経路RT1を生成する場合に、直近に並ぶ経路パターンPT1〜PT10に対して、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10を優先的に組み合わせるためのものであり、車両1がスムーズに走行できる走行経路RT1を優先的に生成するためのものである。車両1の操舵角δの変化が小さい経路パターンPT1〜PT10を優先的に組み合わせて、仮の走行経路RT1を生成することで、車両1がスムーズに走行できる走行経路RT1〜RT3を生成できる可能性を高めることができる。
【0104】
例えば、直近に並ぶ経路パターンPT1〜PT10の種別が、経路パターンPT1の場合の優先順位は、図9に示すテーブルの1段目に示すように、10の経路パターンPT1〜PT10のうち、経路パターンPT1が優先順位1位に設定されており、経路パターンPT2が優先順位2位に設定されている。また、経路パターンPT3が優先順位3位、経路パターンPT4が優先順位4位、・・・と、以後同様に設定されている。
【0105】
上述したように(図3参照)、経路パターンPT1は、車両1を前方直進させるための走行経路であるから、経路パターンPT1に対し、車両1の操舵角δの変化が最も小さい走行経路としては、車両1を前方直進させる経路パターンPT1と、車両1を後退直進させる経路パターンPT2との2つが該当する。本実施形態では、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10が複数存在する場合、車両1を前方へ走行させる経路パターンPT1〜PT10を優先するように、優先順位を設定している。
【0106】
よって、ここでは、経路パターンPT1を優先順位1と設定し、経路パターンPT2を優先順位2位と設定している。尚、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10が複数存在する場合、車両1を前方へ走行させるものか、後退させるものかに関わらず、どの経路パターンPT1〜PT10を優先させるかは任意に決めれば良い。
【0107】
そして、経路パターンPT1,PT2を除き、経路パターンPT1に対して、車両1の操舵角δの変化が小さい走行経路としては、車両1を最小旋回半径の2倍で前方左旋回させる経路パターンPT3と、車両1を最小旋回半径の2倍で前方右旋回させる経路パターンPT4と、車両1を最小旋回半径の2倍で後退左旋回させる経路パターンPT5と、車両1を最小旋回半径の2倍で後退左旋回させる経路パターンPT6との4つが該当する。
【0108】
この4つの経路パターンPT3〜PT6のうち、車両1を前方へ走行させるものは、経路パターンPT3,4の2つ存在するが、本実施形態では、このように車両1を前方または後方へ走行させる経路パターンPT1〜PT10が複数存在する場合、左旋回するものを優先するように、優先順位を設定している。よって、ここでは、経路パターンPT3を優先順位3位とし、経路パターンPT4を優先順位4位とし、経路パターンPT5を優先順位5位とし、経路パターンPT6を優先順位6位としている。以後同様に、残りの経路パターンPT7〜PT10についても、優先順位が設定されている。
【0109】
尚、車両1を前方または後方へ走行させる経路パターンPT1〜PT10が複数存在する場合、車両1を左旋回させるものか、右旋回させるものかに関わらず、どの経路パターンPT1〜PT10を優先させるかは任意に決めれば良い。
【0110】
また、例えば、直近に並ぶ経路パターンPT1〜PT10の種別が、経路パターンPT3の場合の優先順位は、図9に示すテーブルの3段目に示すように、10の経路パターンPT1〜PT10のうち、経路パターンPT3が優先順位1位に設定されており、経路パターンPT5が優先順位2位に設定されている。また、経路パターンPT7が優先順位3位、経路パターンPT9が優先順位4位、・・・と、以後同様に設定されている。尚、直近に並ぶ経路パターンPT1〜PT10の種別が、他の種別である場合の説明については、同様な説明となるため省略する。
【0111】
ここで、図6の説明に戻る。RAM93は、書き換え可能な揮発性のメモリであり、CPU91によって実行される制御プログラムの実行時に各種のデータを一時的に記憶するためのメモリである。RAM93には、点経路パターンメモリ93aと、点経路メモリ93bと、走行制御点メモリ93cと、判定済み順列メモリ93dとが設けられている。
【0112】
点経路パターンメモリ93aは、パターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせ(以後、経路パターン番号「PT1〜PT10」の順列と称す)が記憶されるメモリである。点経路パターンメモリ93aは、後述する自動駐車処理(図12参照)が実行された場合に、CPU91によりクリアされる。そして、現在の車両位置から目標とする駐車位置までの走行経路RT1〜RT3全体がCPU91により生成される場合に、そのパターン走行部RT1を示す経路パターン番号「PT1〜PT10」の順列が記憶される。
【0113】
この点経路パターンメモリ93aに記憶される経路パターン番号「PT1〜PT10」の順列は、走行経路RT1〜RT3上の各経路点Pにおいて、車両1が前進しているか後退しているかの状態を取得する場合や、切り返しの有無の状態を取得する場合に参照される(図16のS89、図18のS110、図20のS129参照)。また、パターン走行部RT1における経路点Pの位置を算出する場合にも参照される(図4参照)。
【0114】
点経路メモリ93bは、走行経路RT1〜RT3を示す各経路点Pの経路点情報が記憶されるメモリである。上述したように、経路点情報は、経路点Pにおける車両1の車両位置と、経路点Pにおける車両1の車両方位θにより構成されている。また、上述したように、走行経路RT1〜RT3のうち、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。また、後退旋回部RT2および最終後退部RT3では、各走行経路RT2,RT3の始端および終端を、経路点Pとしている。
【0115】
CPU91は、走行経路RT1〜RT3全体を生成した場合に、パターン走行部RT1における経路点Pの経路点情報と、後退旋回部RT2における経路点Pの経路点情報と、最終後退部RT3における経路点Pの経路点情報とをそれぞれ点経路メモリ93bに記憶する(図13のS50、図15の図78参照)。この点経路メモリ93bに記憶されている各経路点Pの経路点情報は、走行制御点Qを生成するために参照される。
【0116】
走行制御点メモリ93cは、走行経路RT1〜RT3に対して生成される点である各走行制御点Qの車両設定情報が記憶されるメモリである。上述したように、走行制御点Qは、走行制御装置100が車両1を走行経路RT1〜RT3に沿って自律走行させる場合に、進行方向などの車両1の走行状態を制御するための点である。
【0117】
本実施形態では、走行経路RT1〜RT3に対して走行制御点Qが生成される場合、現在の車両位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qが生成される(図12のS11,S12,S13参照)。なお、経路点P0(車両1の出発位置)を除く各経路点P上には、必ず走行制御点Qが生成される。そして、各走行制御点Qごとに、車両設定情報が生成されると共に、その走行制御点Qを識別するためのID番号が設定され、生成された走行制御点Qの車両設定情報と、設定された走行制御点QのID番号とが関連づけられて、この走行制御点メモリ93cにそれぞれ記憶される。
【0118】
ここで、図10を参照して、走行制御点メモリ93cの内容の一例について説明する。図10は、走行制御点メモリ93cの内容の一例を示す模式図である。図10に示すように、走行制御点メモリ93cには、各走行制御点Qの車両設定情報を示すテーブルが記憶される。このテーブルは、各走行制御点Qに対応する車両設定情報が、その走行制御点Qに対応するID番号に関連づけられている状態を示している。また、このテーブルでは、各車両設定情報がID番号順に並べられている。
【0119】
各走行制御点Qの車両設定情報は、走行制御点Qにおける車両1の車両位置と、走行制御点Qにおける車両1の車両方位と、走行制御点Qにおける車両1の操舵角δと、走行制御点Qにおける進行方向フラグと、走行制御点Qにおける切り返し判定フラグとにより構成される。そして、これらの各走行制御点Qの車両設定情報には、それぞれID番号が関連づけられている。尚、テーブルにおけるID番号の最大値は、最大インデックス番号IDmaxとして、RAM93の所定領域に記憶されている。
【0120】
車両位置と、車両方位と、操舵角δと、ID番号とについては上述したので、その説明を省略する。進行方向フラグは、走行制御点Qにおいて車両1が前進するか、後退するかを示すフラグであり、走行制御点Qにおいて車両1が前進する場合には「1」に設定される一方、車両1が後退する場合には「−1」に設定される。切り返し判定フラグは、走行制御点Qにおいて車両1が前進または後退を切り替えるかを示すフラグであり、走行制御点Qにおいて車両1が前進または後退を維持し走行する場合には「0」に設定される一方、車両1が前進を後退に切り替える場合や、車両1が後退を前進に切り替える場合には「1」に設定される。
【0121】
CPU91は、走行経路RT1〜RT3を車両1が自律走行している場合、所定間隔(例えば、50ms)ごとに、車両1の現在の車両位置に最も近い走行制御点Qに基づいて車両1の走行状態を設定し、車両1が次に通過すべき走行制御点Qへ向かうように車両1を自律走行させる。
【0122】
ここで、図6の説明に戻る。判定済み順列メモリ93dは、仮の走行経路RT1を生成するために作成される経路パターン番号「PT1〜PT10」の順列を記憶するためのメモリである。判定済み判定メモリ93dには、経路パターン番号「PT1〜PT10」の順列が生成される度に、その生成された順列が、その生成順に記憶される。
【0123】
詳細については後述するが、本実施形態では、仮の走行経路RT1が生成される場合、まず、経路パターンPT1〜PT10が優先順位の高い順に一つずつ特定され、その特定された1個の経路パターンPT1〜PT10のパターン番号「PT1〜PT10」で構成される順列(1個でも順列とみなす)が順番に生成され、その順列に対応する仮の走行経路RT1が順番に生成される。
【0124】
そして、仮の走行経路RT1が生成される度に、駐車可能条件が成立しているかが判定され(図9のS34参照)、生成された何れの仮の走行経路RT1において、駐車可能条件が成立していなければ、次に、2個の経路パターン番号「PT1〜PT10」で構成される経路パターン番号「PT1〜PT10」の順列が順番に生成され、その順列に対応する仮の走行経路RT1が順番に生成される。
【0125】
以後同様に、仮の走行経路RT1が生成される度に、駐車可能条件が成立しているかが判定され(図9のS34参照)、生成された全ての仮の走行経路RT1において、駐車可能条件が成立しない場合は、更に、3個の経路パターン番号「PT1〜PT10」で構成される経路パターン番号「PT1〜PT10」の順列を順番に生成するというように、組み合わせる経路パターン番号「PT1〜PT10」の数を一つずつ増やしながら仮の走行経路RT1が順番に生成される。
【0126】
この判定済み順列メモリ93dは、2個以上の経路パターン番号「PT1〜PT10」で構成される順列を生成するために、CPU91により参照される。詳細について後述するが、CPU91は、n個の経路パターン番号「PT1〜PT10」で構成される順列を生成する場合、判定済み順列メモリ93dから、(n−1)個の経路パターン番号「PT1〜PT10」で構成される順列を、記憶された順に一つずつ特定する。
【0127】
そして、順列が特定される度に、その特定された順列に、10の経路パターン番号「PT1〜PT10」を個別に追加して、10通りの新たな順列を生成する。尚、本実施形態では、10の経路パターン番号「PT1〜PT10」を個別に追加する場合にも、経路パターンPT1〜PT10を優先順位の高い順に一つずつ特定し、その特定された1個の経路パターンPT1〜PT10のパターン番号「PT1〜PT10」から順番に追加する。また、この判定済み順列メモリ93dは、後述する自動駐車処理(図12参照)が実行された場合に、CPU91によりクリアされる。
【0128】
次に、図12〜図21までのフローチャートと、模式図とを参照して、車両1に搭載された走行制御装置100のCPU91により実行される自動駐車処理について説明する。図12は、走行制御装置100により実行される自動駐車処理を示すフローチャートである。自動駐車処理は、車両1を現在位置から運転者により設定される駐車位置まで自律走行させて、その駐車位置に車両1を停車させるものであり、運転者により自動駐車スイッチ25が押下された場合に実行される。
【0129】
自動駐車処理では、まず、RAM93の点経路パターンメモリ93a、及び、判定済み順列メモリ93dをクリアする(S1)。次に、運転者により設定される駐車位置を最終目的地として取得し、その最終目的地に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oに決定する(S2)。例えば、車両1の車内に設けられているタッチパネル(図示せず)上に、車両1の周囲画像を表示し、運転者に駐車位置を入力するように報知する。そして、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を算出して、原点Oとする。
【0130】
次に、車両1の現在地点を出発地点として(S3)、点経路第1生成処理を実行する(S4)。ここで、図13を参照して、車両1に搭載された走行制御装置100のCPU91により実行される点経路第1生成処理について説明する。図13は、走行制御装置100により実行される点経路第1生成処理を示すフローチャートである。
【0131】
点経路第1生成処理は、10の経路パターンPT1〜PT10を一つずつ順番に特定し、その特定された1個の経路パターンPT1〜PT10だけで仮の走行経路RT1を生成するための処理である。また、生成した仮の走行経路RT1の終端において駐車可能条件が成立している場合に、出発地点から出発最終目的地までの走行経路RT1〜RT3全体を生成する。
【0132】
点経路第1生成処理では、変数aに0を設定して、変数aの初期設定を行う(S31)。尚、変数aには、パターン走行部RT1を構成する経路パターンPT1〜PT10の合計数が設定される。そして、出発地点において駐車可能条件が成立しているかを判定し(S32)、S32の判定が肯定される場合には(S32:Yes)、S48の処理へ移行する。一方、S32の判定が否定される場合には(S32:No)、変数aに1を設定する(S33)。
【0133】
次に、車両1の現在の車両位置(xv,yv)と、現在の車両方位θvと、最終目的地によって決まる各位置x1,x2,y1,y2とを判定パラメータとして取得し(S34)、その取得した判定パラメータと、シチュエーション判定テーブルメモリ92bに格納されているシチュエーション判定テーブルとを比較する(S35)。
【0134】
そして、S35の処理による比較の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する優先順位の設定があるかを判定する(S36)。具体的には、シチュエーション判定テーブルにおいて、車両1の車両位置(xv,yv)と、目標とする駐車位置と、車両1の車両方位θvとの3つの条件が満たされたマス目を特定し、そのマス目について、10の経路パターンPT1〜PT10の優先順位が設定されているか否かを判定する。
【0135】
S36の判定が肯定される場合には(S36:Yes)、シチュエーション判定テーブルの中から、判定パラメータに対応する情報を取得し(S37)、取得した情報に基づいて、10の経路パターンPT1〜PT10に優先順位を設定して(S38)、S42の処理へ移行する。
【0136】
例えば、「(xv≦x1)および(yv≧y1)」という条件を満たしており、且つ、車両方位θvが「0≦θv<45」という条件を満たす場合には、シチュエーション判定テーブル(図7(a)参照)の中から、図7(b)に示す優先順位の情報が取得されて、10の経路パターンPT1〜PT10にそれぞれ優先順位が設定される。
【0137】
一方、S36の判定が否定される場合(S36:No)、即ち、3つの条件が満たされるマス目が無い場合や、3つの条件を満たすマス目を特定できたものの、優先順位の設定が無い場合には、車両1の現在の操舵角δvを取得する(S39)。尚、ここでの車両1の現在の操舵角δvとは、出発地点における車両1の操舵角δのことである。
【0138】
次に、S39の処理で取得した車両1の操舵角δvと、経路パターンPT1〜PT10に設定されている車両1の操舵角α1〜α10との差分Δα1〜Δα10を、経路パターンPT1〜PT10毎に算出し(S40)、算出した差分Δα1〜Δα10の小さいものから優先されるように、10の経路パターンPT1〜PT10に優先順位を設定する(S41)。
【0139】
ここで、図14を参照して、10の各経路パターンPT1〜PT10に設定されている車両1の操舵角α1〜α10と、経路パターンPT1〜PT10の優先順位の設定方法とについて説明する。
【0140】
図14は、車両1の現在の操舵角δvに基づいて、10の各経路パターンPT1〜PT10に優先順位を設定する場合の一例を説明するための模式図である。まず、10の各経路パターンPT1〜PT10に設定されている操舵角α1〜α10について説明する。
【0141】
上述したように、本実施形態では、経路パターンPT1〜PT10毎に、断片的な走行経路が設定されており、それぞれの断片的な走行経路においては、車両1が同一の旋回半径Rで走行するように経路が設定されている。車両1の操舵角δは、車両1の旋回半径Rに対し相対的に決まるので、経路パターンPT1〜PT10毎に、車両1を走行させるための操舵角α1〜α10が一意に決まる。そこで、本実施形態では、10の各経路パターンPT1〜PT10に対して、車両1を走行させるための操舵角α1〜α10を予め設定している。
【0142】
例えば、図14に示すように、経路パターンPT1には、車両1を前方直進させるための操舵角としてα1が設定されており、経路パターンPT2には、車両1を後退直進させるための操舵角としてα2が設定されている。
【0143】
同様に、経路パターンPT3には、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を前方左旋回させるための操舵角としてα3が設定され、経路パターンPT4には、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を前方右旋回させるための操舵角としてα4が設定されている。その他の経路パターンPT4〜PT10についても、操舵角α4〜α10がそれぞれ設定されている。
【0144】
次に、経路パターンPT1〜PT10の優先順位の設定方法について説明する。経路パターンPT1〜PT10に優先順位を設定する場合には、まず、車両1の現在の操舵角δvと、経路パターンPT1〜PT10に設定されている操舵角α1〜α10との差分Δα1〜Δα10を、経路パターンPT1〜PT10毎に算出する。
【0145】
具体的には、まず、車両1の現在の操舵角δvと、経路パターンPT1に設定されている操舵角α1との差分Δα1を算出する。続けて、車両1の現在の操舵角δvと、経路パターンPT2に設定されている操舵角α2との差分Δα2を算出し、以後同様に、他の経路パターンPT3〜PT10に設定されている操舵角α3〜α10についても、差分Δα3〜Δα10をそれぞれ算出する。
【0146】
そして、算出した差分Δα1〜Δα10を、絶対値の小さい順に並べる。尚、絶対値が同一となる差分Δα1〜Δα10が複数存在する場合には、車両1の現在の操舵角δvと符号が同一のものを先に並べる。次に、10の経路パターンPT1〜PT10を、絶対値の小さい順に並べた差分Δα1〜Δα10と同じ並び順となるように並べる。例えば、Δα1の絶対値が最も小さい場合には、経路パターンPT1を先頭とし、Δα5の絶対値が2番目に小さい場合には、経路パターンPT5を2番目に並べる。
【0147】
これにより、10の経路パターンPT1〜PT10を、車両1の現在の操舵角δvに対して操舵角δの変化量が小さい順に並べることができる。本実施形態では、操舵角δの変化量が小さい順に並んだ経路パターンPT1〜PT10のうち、先頭に並ぶものを優先順位1位とし、2番目に並ぶものを優先順位2位とし、以下同様に、1番ずつ優先順位を低くしていき、10の経路パターンPT1〜PT10に、1位〜10位までの優先順位を設定している。
【0148】
詳細については後述するが、ここで優先順位が設定された後、S42〜S46の処理が繰り返し実行されると、車両1の現在の操舵角δvに対して操舵角δの変化量が小さい順に、経路パターンPT1〜PT10が一つずつ特定される。そして、経路パターンPT1〜PT10が特定される度に、その1個の経路パターンPT1〜PT10で、仮の走行経路RT1が生成される。よって、車両1の現在の操舵角δvに対して、操舵角δvの変化量の小さい仮の走行経路RT1から優先的に生成できる。よって、車両1が走行開始時にスムーズに走行できる走行経路RT1を優先的に生成できるので、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0149】
ここで、図13の説明に戻る。S38の処理、又は、S41の処理によって、10の経路パターンPT1〜PT10に優先順位が設定されると、次に、10の経路パターンPT1〜PT10を、優先順位の高い順に一つ特定し、その特定した経路パターンPT1〜PT10の経路パターン番号「PT1〜PT10」を取得する(S42)。
【0150】
そして、その取得した経路パターン番号を、経路パターン番号により構成される一つの順列として、判定済み順列メモリ93dに追加し(S43)、次に、取得した経路パターン番号に対応する仮の走行経路RT1を生成し、その到着地点を取得する(S44)。尚、上述したように、本実施形態では、仮の走行経路RT1が生成される場合、仮の走行経路RT1を構成する点のうち、2m間隔の点である経路点Pの位置が、仮の走行経路RT1を示すデータとして生成される。
【0151】
次に、到着地点を示す経路点Pにおいて、駐車可能条件が成立しているかを判定し(S45)、S45の判定が否定される場合には(S45:No)、経路パターンPT1〜PT10に優先順位を設定してから、10の経路パターン番号「PT1〜PT10」を全て取得したかを判定する(S46)。S46の判定が否定される場合には(S46:No)、S42の処理に戻る。
【0152】
例えば、S37の処理において、シチュエーション判定テーブル(図7(a)参照)の中から、図7(b)に示す優先順位の情報が取得され、S38の処理おいて、10の経路パターンPT1〜PT10にそれぞれ優先順位が設定されたとする。この場合に、S42の処理が実行されると、優先順位が1位である経路パターンPT7が特定され、その経路パターン番号「PT7」が取得される。
【0153】
その後、S43の処理により、その経路パターン番号「PT7」が順列として判定済み順列メモリ93dの先頭に記憶され、次に、S44の処理により、経路パターン番号「PT7」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。
【0154】
すると、S45の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S46の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、経路パターン番号「PT7」しか取得していないので、S42の処理に戻り、S42〜S46の処理が繰り返される。
【0155】
ここで再度、S42の処理が実行されると、今回は、優先順位が2位である経路パターンPT3が特定され、その経路パターン番号「PT3」が取得される。そして、S43の処理により、その経路パターン番号「PT3」が順列として判定済み順列メモリ93dに追加される。即ち、判定済み順列メモリ93dには、先頭から順番に「PT7」、「PT3」という順列が記憶される(図11参照)。
【0156】
次に、S44の処理により、経路パターン番号「PT3」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。すると、S45の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S46の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、取得していない経路パターン番号があるので、S42の処理に戻り、S42〜S46の処理が繰り返される。
【0157】
このS42〜S46の処理が繰り返されると、最終的には、判定済み順列メモリ93dに、図7に示す優先順位と同様の順番で、先頭から「PT7」、「PT3」、「PT1」、・・・、「PT6」、「PT10」という順列が記憶される(図11参照)と共に、これらの経路パターン番号の順番に、その経路パターン番号に対応する仮の走行経路RT1が生成される。
【0158】
上述したように、図7に示す優先順位は、走行経路RT1〜RT3全体を生成する場合に、距離の短い走行経路RT1〜RT3や、搭乗者が想定する可能性の高い走行経路RT1〜RT3を優先的に生成するためのものである。よって、S42〜S46の処理を繰り返して、1個の経路パターンPT1〜PT10で、仮の走行経路RT1を生成する場合に、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0159】
そして、S46の判定が肯定される場合は(S46:Yes)、10の経路パターンPT1〜PT10を一つずつ順番に特定し、その特定された1個の経路パターンPT1〜PT10だけで仮の走行経路RT1を生成したが、何れの仮の走行経路RT1においても駐車可能条件が成立しなかった場合である。この場合は、点経路第1生成処理を終了し、自動駐車処理(図12参照)に戻る。
【0160】
S45の判定が肯定される場合には(S45:Yes)、S42の処理で取得した経路パターン番号「PT1〜PT10」を、経路パターン番号により構成される一つの順列として、点経路パターンメモリ93aに記憶する(S47)。尚、本実施形態では、S45の処理において駐車可能条件が成立していると判定されると、駐車可能条件の成立している仮の走行経路RT1が、パターン走行部RT1に決定される。
【0161】
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S48)、最終後退部RT3の経路点Pを決定する(S49)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位)を点経路メモリ93bに記憶して(S50)、この点経路生成処理を終了し、自動駐車処理(図12参照)に戻る。
【0162】
以上の図13に示す点経路第1生成処理により、シチュエーション判定テーブル、又は、車両1の現在の操舵角δvに基づいて、10の経路パターンPT1〜PT10に優先順位を設定できる。シチュエーション判定テーブルにより、10の経路パターンPT1〜PT10に優先順位が設定された場合には、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1を優先的に生成できる。また、車両1の現在の操舵角δvに基づいて、10の経路パターンPT1〜PT10に優先順位が設定された場合には、車両1が走行開始時にスムーズに走行できる仮の走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0163】
上述した点経路第1生成処理は、仮の走行経路RT1のうち、出発地点からの一区間分だけを生成するものである。この仮の走行経路RT1は、後述する点経路第2生成処理により、徐々に延長されていくため、最終的な走行経路RT1の形状は、仮の走行経路RT1のうち、出発地点からの一区間や、出発地点付近の区間の生成に用いられる経路パターンPT1〜PT10により概ね決まる。即ち、最終的な走行経路RT1の形状は、出発地点からの一区間や、出発地点付近の区間の生成に用いられる経路パターンPT1〜PT10の影響を大きく受ける。
【0164】
本実施形態では、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いて、出発地点からの一区間の生成に用いられる経路パターンPT1〜PT10に優先順位を設定している。よって、この優先順位を適切に設定することで、仮の走行経路RT1を延長していく場合に、好適に延長できる可能性を高めることができ、好適な形状の仮の走行経路RT1を優先的に生成することができる。従って、より好適な形状の走行経路RT1〜RT3を優先的に生成できる。
【0165】
ここで、図12の説明に戻る。点経路第1生成処理(S4)が終了したら、次に、S4の処理によって走行経路RT1〜RT3が生成されたかを判定する(S5)。S5の判定が肯定される場合には(S5:Yes)、S9の処理へ移行する。S5の判定が否定される場合は(S5:No)、1個の経路パターンPT1〜PT10だけで、走行経路RT1を生成できなかった場合である。この場合は、点経路第2生成処理を実行する(S6)。
【0166】
ここで、図15を参照して、車両1に搭載された走行制御装置100のCPU91により実行される点経路第2生成処理について説明する。図15は、走行制御装置100により実行される点経路第2生成処理を示すフローチャートである。
【0167】
点経路第2生成処理は、経路パターン番号「PT1〜PT10」を複数組み合わせて、経路パターン番号「PT1〜PT10」の順列を生成し、その順列に対応する仮の走行経路RT1を生成するための処理である。また、生成した仮の走行経路RT1の終端において駐車可能条件が成立している場合に、出発地点から出発最終目的地までの走行経路RT1〜RT3全体を生成する。
【0168】
尚、点経路第2生成処理の開始時には、判定済み順列メモリ93dに、図7(b)に示す優先順位と同様の順番で、先頭から「PT7」、「PT3」、「PT1」、・・・、「PT6」、「PT10」という順列(経路パターン番号)が記憶されているものとして説明する(図11参照)。
【0169】
点経路第2生成処理では、まず、変数aに2を設定し、変数mに6を設定して、変数a,mの初期設定を行う(S61)。尚、変数mは、パターン走行部RT1を構成する経路パターンPT1〜PT10数の最大値を設定するものである。
【0170】
次に、判定済み順列メモリ93dに記憶されている順列の中から、(a−1)個の経路パターン番号「PT1〜PT10」で構成される順列を、追加された順に一つ特定する(S62)。そして、特定した順列における最後尾の経路パターン番号を取得して(S63)、経路パターン優先順位テーブルから、S63の処理で取得した経路パターン番号に対応する優先順位の情報を取得し(S64)、その取得した優先順位の情報に基づいて、10の経路パターンPT1〜PT10に優先順位を設定する(S65)。
【0171】
例えば、点経路第2生成処理が実行開始されると、まず、変数a=2に設定されるため、S62の処理では、判定済み順列メモリ93dに記憶されている順列の中から、1個の経路パターン番号「PT1〜PT10」で構成される順列が、追加された順に一つ特定される。よって、初回には、経路パターン番号「PT7」(経路パターン番号の順列とみなす)が特定される。
【0172】
そして、特定された順列は、経路パターン番号「PT7」のみで構成されているため、S63の処理では、経路パターン番号「PT7」特定される。次に、S64の処理が実行されると、経路パターン優先順位テーブル(図9参照)から、経路パターン番号「PT7」に対応する優先順位の情報が取得される。
【0173】
具体的には、経路パターン優先順位テーブル(図9参照)の7段目から、優先順位の情報として、優先順位1位が経路パターンPT7、優先順位2位が経路パターンPT9、優先順位3位が経路パターンPT3、・・・、優先順位9位が経路パターンPT8、優先順位10位が経路パターンPT10という情報が取得される。
【0174】
そして、S65の処理により、10の経路パターンPT1〜PT10の各優先順位が、S64の処理で取得した優先順位の情報と同一となるように、10の経路パターンPT1〜PT10のそれぞれに優先順位が設定される。
【0175】
S65の処理により優先順位が設定されると、次に、10の経路パターンPT1〜PT10を、優先順位の高い順に一つ特定し、その特定した経路パターンPT1〜PT10の経路パターン番号「PT1〜PT10」を取得する(S66)。そして、S66の処理で取得した一の経路パターン番号を、S62の処理で特定した順列の最後尾に組み合わせて、経路パターン番号の順列を新たに作成し(S67)、その作成した順列を、判定済み順列メモリ93dに追加する(S68)。
【0176】
次に、S67の処理で作成した順列に対応する仮の走行経路RT1を生成し、その到着地点を取得して(S69)、その到着地点を示す経路点Pにおいて、駐車可能条件が成立しているかを判定する(S70)。S70の判定が否定される場合には(S70:No)、経路パターンPT1〜PT10に優先順位を設定してから、10の経路パターン番号「PT1〜PT10」を全て取得したかを判定する(S71)。S71の判定が否定される場合には(S71:No)、S66の処理に戻る。
【0177】
上述したように、S65の処理では、経路パターン優先順位テーブル(図9参照)の7段目と同様に、10の経路パターンPT1〜PT10のそれぞれに優先順位が設定される。そのため、S66の処理が実行されると、まず、優先順位が1位である経路パターンPT7が特定され、その経路パターン番号「PT7」が取得される。
【0178】
その後、S67の処理により、S66の処理で取得した経路パターン番号「PT7」が、S62の処理で特定した順列「PT7」の最後尾に組み合わされて、「PT7−PT7」という順列が新たに作成される。
【0179】
そして、S68の処理により、その作成された順列が、判定済み順列メモリ93dに追加され、次に、S69の処理により、作成した順列「PT7−PT7」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。
【0180】
すると、S70の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S70の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、経路パターン番号「PT7」しか取得していないので、S66の処理に戻り、S66〜S71の処理が繰り返される。
【0181】
ここで再度、S66の処理が実行されると、今回は、優先順位が2位である経路パターンPT9が特定され、その経路パターン番号「PT9」が取得される。そして、S67の処理により、S66の処理で取得した経路パターン番号「PT9」が、S62の処理で特定した順列「PT7」の最後尾に組み合わされて、「PT7−PT9」という順列が新たに作成される。
【0182】
そして、作成された順列「PT7−PT9」が、判定済み順列メモリ93dに追加される。即ち、点経路第2生成処理が実行されると、判定済み順列メモリ93dには、1番目に「PT7−PT7」という順列が、2番目に「PT7−PT9」という順列が追加される(図11参照)。
【0183】
次に、S69の処理により、作成された順列「PT7−PT9」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。すると、S70の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S71の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、取得していない経路パターン番号があるので、S66の処理に戻り、S66〜S71の処理が繰り返される。
【0184】
このS66〜S71の処理が繰り返されると、最終的には、判定済み順列メモリ93dに、「PT7−PT7」、「PT7−PT3」、「PT7−PT3」、・・・、「PT7−PT8」、「PT7−PT10」という順列が追加される(図11参照)。
【0185】
尚、S65の処理で設定された優先順位は、走行経路RT1を生成する場合に、車両1がスムーズに走行できる走行経路RT1を優先的に生成するためのものである。よって、S66〜S71の処理を繰り返して、仮の走行経路RT1を生成する場合に、車両1の操舵角δの変化量が小さい仮の走行経路RT1を優先的に生成できるので、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0186】
S71の判定が肯定される場合には(S71:Yes)、(a−1)個の経路パターン番号で構成される順列を、判定済み順列メモリ93dの中から全て取得したかを判定する(S72)。S72の判定が否定される場合には(S72:No)、S62の処理に戻り、S62〜S72の処理を繰り返す。
【0187】
ここで再度、S62の処理が実行されると、今回は、判定済み順列メモリ93dに記憶されている順列の中から、1個の経路パターン番号「PT1〜PT10」で構成される順列のうち、追加された順が次に早いものが一つ特定される。即ち、2回目には、経路パターン番号「PT3」(経路パターン番号の順列とみなす)が特定される。
【0188】
そして、特定された順列は、経路パターン番号「PT3」のみで構成されているため、S63の処理では、経路パターン番号「PT3」特定される。次に、S64の処理が実行されると、経路パターン優先順位テーブル(図9参照)から、経路パターン番号「PT3」に対応する優先順位の情報が取得される。
【0189】
具体的には、経路パターン優先順位テーブル(図9参照)の3段目から、優先順位の情報として、優先順位1位が経路パターンPT3、優先順位2位が経路パターンPT5、・・・、優先順位10位が経路パターンPT10という情報が取得される。
【0190】
そして、S65の処理により、10の経路パターンPT1〜PT10の各優先順位が、S64の処理で取得した優先順位の情報と同一となるように、10の経路パターンPT1〜PT10のそれぞれに優先順位が設定される。そして、上述したように、S66〜S71の処理が繰り返される。
【0191】
ここで、S66〜S71の処理が繰り返されると、判定済み順列メモリ93dに、「PT3−PT3」、「PT3−PT5」、・・・、「PT3−PT10」という順列が追加される(図11参照)。そして、以後同様に、S72の判定が否定される間、S62〜S72の処理が繰り返される。
【0192】
S72の判定が肯定される場合は(S72:Yes)、a個の経路パターン番号で構成される順列を全て作成し、各順列に対応する仮の走行経路RT1を全て生成したが、何れの仮の走行経路RT1においても駐車可能条件が成立しなかった場合である。
【0193】
この場合は、変数aの値が、変数mの値未満であるかを判定し(S73)、S73の判定が肯定される場合には(S73:Yes)、変数aに1を加算して(S74)、S62の処理に戻る。即ち、組み合わせる経路パターン番号の数を1増やして順列を生成し、仮の走行経路RT1を生成する。例えば、変数aが2の場合には、変数a=3と設定されて、S62の処理に戻る。その結果、次は、3個の経路パターン番号で構成される順列が順番に生成されて、各順列に対応する仮の走行経路RT1が生成される。
【0194】
一方、S73の判定が否定される場合は(S73:No)、1個からm個までの経路パターン番号で構成される順列を全て作成し、各順列に対応する仮の走行経路RT1を全て生成したが、走行経路RT1〜RT3が見つからなかった場合である。この場合は、点経路第2生成処理を終了して、自動駐車処理(図12参照)に戻る。
【0195】
S70の判定が肯定される場合には(S70:Yes)、S67の処理で作成した順列を、点経路パターンメモリ93aに記憶する(S75)。尚、本実施形態では、S70の処理において駐車可能条件が成立していると判定されると、駐車可能条件の成立している仮の走行経路RT1が、パターン走行部RT1に決定される。
【0196】
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S76)、最終後退部RT3の経路点Pを決定する(S77)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位)を点経路メモリ93bに記憶して(S78)、この点経路生成処理を終了し、自動駐車処理(図12参照)に戻る。
【0197】
以上の図15に示す点経路第2生成処理により、経路パターン優先順位テーブルに基づいて、10の経路パターンPT1〜PT10に優先順位を設定できる。経路パターン優先順位テーブルにより、10の経路パターンPT1〜PT10に優先順位が設定された場合には、車両1の操舵角δの変化量が小さい仮の走行経路RT1を優先的に生成できるので、車両1がスムーズに走行できる仮の走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0198】
また、点経路第2生成処理では、判定済み順列メモリ93dの中から、(a−1)個の経路パターン番号「PT1〜PT10」で構成される順列を、追加された順に一つ特定し、その順列の最後尾に経路パターン番号「PT1〜PT10」を追加して、新たな順列を生成している。
【0199】
上述したように、判定済み順列メモリ93dには、経路パターン番号「PT1〜PT10」の順列が、生成された順に追加されていく。本実施形態では、生成された順が早いものほど、優先度の高い順列であるので、判定済み順列メモリ93dの中から、順列を取得する場合には、優先度の高い順に順列を取得できる。従って、仮の走行経路RT1を繰り返し生成する場合に、優先度の高い順に新たな順列を作成でき、優先すべきものから順に仮の走行経路RT1を生成できる。
【0200】
また、上述したように、点経路第1生成処理(図13参照)では、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いて、仮の走行経路RT1のうち、出発地点からの一区間のみを生成している。一方、その後の区間については、上述した点経路第2生成処理により、経路パターン優先順位テーブルを用いて生成している。
【0201】
よって、仮の走行経路RT1が生成される場合に、シチュエーション判定テーブルと、経路パターン優先順位テーブルとが用いられると、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1が優先的に生成される。加えて、車両1がスムーズに走行できる仮の走行経路RT1が優先的に生成される。従って、距離の短い走行経路RT1や、搭乗者が想定する可能性の高い走行経路RT1であって、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。故に、さらに好適な走行経路RT1〜RT3を優先的に生成できる。
【0202】
一方、仮の走行経路RT1が生成される場合に、車両1の現在の操舵角δと、経路パターン優先テーブルとが用いられると、車両1が走行開始時にスムーズに走行できる仮の走行経路RT1を優先的に生成できる。加えて、車両1がスムーズに走行できる仮の走行経路RT1を優先的に生成できる。従って、車両1が走行開始時にスムーズに走行でき、その後も、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。故に、さらに好適な走行経路RT1〜RT3を優先的に生成できる。
【0203】
また、本実施形態では、点経路第1生成処理(図13参照)においてのみ、即ち、出発地点からの一区間を生成する場合のみ、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いている。これは、シチュエーション判定テーブルが、経路パターン優先順位テーブルよりも複雑に構成されているためであり、シチュエーション判定テーブルを参照して、10の経路パターンPT1〜PT10に優先順位を設定するよりも、経路パターン優先順位テーブルを参照して優先順位を設定した方が、処理が簡単だからである。同様に、車両1の現在の操舵角δvを用いて演算を行い、その結果に基づいて10の経路パターンPT1〜PT10に優先順位を設定するよりも、経路パターン優先順位テーブルを参照して優先順位を設定した方が、処理が簡単だからである。
【0204】
本実施形態では、仮の走行経路RT1を延長される場合、最大10通りの方向へ延長されるので、仮の走行経路RT1が延長される回数が多くなるほど、分岐点の数が増え、更に、様々な方向へ向かって経路が延長されていく。その結果、10の経路パターンPT1〜PT10に優先順位を設定する回数も多くなる。よって、仮の走行経路RT1を延長する場合に、毎回、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いて、10の経路パターンPT1〜PT10に優先順位を設定すると、CPU91に負担が掛かるおそれがある。
【0205】
しかしながら、初回だけ用いることで、CPU91に掛かる制御的負担を抑制できる。また、上述したように、シチュエーション判定テーブルが用いられた場合には、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1を優先的に生成できる。よって、シチュエーション判定テーブルを、初回だけ用いることで、制御的負担を抑制しつつ、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0206】
また、上述したように、仮の走行経路RT1を生成して、その生成した仮の走行経路RT1ついて駐車可能条件が成立しない場合、その駐車可能条件が成立しなかった仮の走行経路RT1を、以後、扱わないようにするのではなく、逆に、その駐車可能条件が成立しなかった仮の走行経路RT1を用いて、新たな仮の走行経路RT1を生成している。具体的には、仮の走行経路RT1の終端から10通りの方向に走行経路を延長するように、10通りの新たな仮の走行経路RT1を一つずつ順番に生成していく。
【0207】
これにより、経路パターンPT1〜PT10の種類が多くなくても、多種多様な仮の走行経路RT1を生成できると共に、生成する仮の走行経路RT1の数を増やすことができ、仮の走行経路RT1を生成した場合に、駐車可能条件が成立する可能性を高めることができる。よって、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる。
【0208】
一方で、多種多様な仮の走行経路RT1を生成して、生成する仮の走行経路RT1の数を増やすと、車両1の搭乗者の意図に反する仮の走行経路RT1が生成される可能性も高くなる。例えば、切り返しの多い仮の走行経路RT1や、車両1の操舵角δの変化が多い仮の走行経路RT1や、走行距離の長い仮の走行経路RT1などが生成される可能性も高くなる。
【0209】
しかしながら、本実施形態では、上述したように、シチュエーション判定テーブルや、車両1の現在の操舵角δvや、経路パターン優先順位テーブルを用いて、仮の走行経路RT1を生成するように構成している。よって、車両1の搭乗者の意図に反する仮の走行経路RT1が生成される可能性を抑制できる。
【0210】
即ち、仮の走行経路RT1が生成される場合に、シチュエーション判定テーブルと、経路パターン優先順位テーブルとが用いられると、多種多様な仮の走行経路RT1の中から、距離の短い走行経路RT1や、搭乗者が想定する可能性の高い走行経路RT1であって、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。従って、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる上、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0211】
一方、仮の走行経路RT1が生成される場合に、車両1の現在の操舵角δと、経路パターン優先テーブルとが用いられると、多種多様な仮の走行経路RT1の中から、車両1が走行開始時にスムーズに走行でき、その後も、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。よって、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる上、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0212】
ここで、図12の説明に戻る。点経路第2生成処理(S6)が終了したら、次に、S6の処理によって走行経路RT1〜RT3が生成されたかを判定する(S7)。S7の判定が否定される場合は(S7:No)、最終目的地までの走行経路が見つからなかった場合なので、最終目的地までの走行経路RT1〜RT3が無いことを運転者に報知して(S8)、自動駐車処理を終了する。
【0213】
一方、S7の判定が肯定される場合には(S7:Yes)、変数である最大インデックス番号IDmaxの初期設定を行う(S9)。そして、後述するS11〜S13の処理を実行して、S4またはS6の処理で生成した走行経路RT1〜RT3に対する走行制御点Qを生成する。
【0214】
具体的には、まず、変数aの値が0より大きいかを判定し(S10)、S10の判定が肯定される場合は(S10:Yes)、パターン走行部RT1が生成されている場合なので、パターン走行部制御点生成処理を実行して(S11)、パターン走行部RT1に対する走行制御点Qを生成する。そして、S12処理へ移行する。
【0215】
一方、S10の判定が否定される場合は(S10:No)、出発地点において駐車可能条件が成立した場合である。この場合は、パターン走行部RT1が存在しないので、S11の処理をスキップして、S12の処理へ移行する。S12の処理では、後退旋回部制御点生成処理を実行して(S12)、後退旋回部RT2に対する走行制御点Qを生成する。その後、最終後退部制御点生成処理を実行して(S13)、最終後退部RT3に対する走行制御点Qを生成する。
【0216】
図2を参照して上述したように、本実施形態では、走行経路RT1〜RT3上のうち、各経路点Pに対応する位置だけでなく、各経路点P間にも仮想的に走行制御点Qを生成している。理想的には、各経路点P間に対応する位置にだけ仮想的に走行制御点Qを生成し、その走行制御点Qに基づいて車両1を自律走行させれば、車両1が走行経路RT1〜RT3上を走行できるが、実際には、路面の状況や、車両1の搭乗者数や荷重などの様々な外乱により、走行経路RT1〜RT3上から車両位置がズレてしまう場合がある。
【0217】
そこで、本実施形態では、各経路点Pに対応する位置に加え、各経路点P間にも仮想的に走行制御点Qを生成し、各走行制御点Qごとに、進行方向などの車両1の走行状態を補正できるようにしている。よって、走行制御装置100が、車両1を自律走行させて走行経路RT1〜RT3上を走行させる場合に、走行経路RT1〜RT3上を車両1がスムーズに走行できるように、車両1の走行状態を制御できる。
【0218】
ここで、図16〜図21を参照して、パターン走行部制御点生成処理(S11)、後退旋回部制御点生成処理(S12)、最終後退部制御点生成処理(S13)について説明する。まず、図16を参照して、パターン走行部制御点生成処理(S11)について説明する。図16は、走行制御装置100により実行されるパターン走行部制御点生成処理を示すフローチャートである。
【0219】
パターン走行部制御点生成処理は、S4またはS6の処理で生成された走行経路RT1〜RT3のうち、パターン走行部RT1に対する走行制御点Qを生成するための処理であり、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成する。パターン走行部RT1では、隣接する経路点P間の走行距離CLが全て2mとなるので、隣接する経路点P間には常に41個の走行制御点Qが必要となるが、このパターン走行部制御点生成処理では、出発地点に近い側の経路点Pに重なる走行制御点は生成せずに、それ以外の40個の走行制御点Qを生成する。
【0220】
より具体的には、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成する。そして、順番に走行制御点Qを生成し、40番目の走行制御点Qが第2経路点Pに重なるようにしている。
【0221】
パターン走行部制御点生成処理では、まず、変数jに0を設定し、変数nに40を設定して、変数j,nの初期設定を行う(S81)。次に、出発地点からj番目の経路点Pを第1経路点Pとし、(j+1)番目の経路点Pを第2経路点Pとする(S82)。例えば、図2に示す走行経路RT1では、経路点PがP0〜P6まで7個設けられている。ここで、変数jが0の場合には、経路点P0を第1経路点Pとし、経路点P1を第2経路点Pとする。
【0222】
次に、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93bから取得し(S83)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93bから取得する(S84)。
【0223】
そして、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S85)。S85の処理では、点経路パターンメモリ93a記憶されている経路パターン番号の順列に基づいて、操舵角δと、旋回中心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へ移動した場合の車両方位の変化量Δθを算出する(S86)。なお、車両方位の変化量Δθを算出する式については後述する。
【0224】
そして、変数iを1に設定して、変数iの初期設定を行う(S87)。次に、第1経路点Pから第2経路点Pまでの経路上に設ける各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S88)。なお、1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
【0225】
ここで、図17を参照して、パターン走行部RT1に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図17は、走行経路RT1〜RT3のうち、パターン走行部RT1に対して生成される走行制御点Qの一例を説明するための模式図であり、隣接している2つの経路点P間を図示したものである。ここでは、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(xvn,yvn)と示している。
【0226】
パターン走行部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
により算出される。
【0227】
図16のS86の処理では、この式により車両方位の変化量Δθを算出する。そして、第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に重なるようにしている。
【0228】
以上の図17を参照して説明した数式を用いることにより、パターン走行部RT1の各経路点P間において、40個の走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、パターン走行部RT1に対応する各走行制御点Qを全て生成できる。
【0229】
本実施形態では、経路パターンPT1〜PT10の組み合わせに基づいて、2m間隔で大まかに経路点Pを生成し走行経路RT1を生成しても、その後、走行経路RT1の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。また、詳細については後述するが、走行経路RT2,RT3についても、走行経路RT2,RT3の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。
【0230】
従って、経路パターンPT1〜PT10に対応する各走行経路の長さCLを短く(例えば、0.05mなど)しておき、詳細に走行経路RT1を生成したり、経路パターンPT1〜PT10のパターンの種類を多数設けて記憶しておく必要が無いので、処理コストを抑制できる。
【0231】
ここで、図16の説明に戻る。そして、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S89)。S89の処理において、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、何番目の走行制御点Qかに関係なく、全て同じ方向(前進または後退)を示す値が取得される。
【0232】
なお、進行方向は、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜RT10に基づいて一意に決まり、点経路パターンメモリ93aの内容に基づいて取得される。より具体的には、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜PT10が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であれば、進行方向として前進を示す値が取得される。一方、車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、進行方向として後退を示す値が取得される。
【0233】
また、切り返しの有無は、第2経路点Pに重なる走行制御点Qを除き、切り返しなしを示す値が取得される。そして、第2経路点Pと重なる走行制御点Qについては、切り返しの有無が、点経路パターンメモリ93aの内容に基づいて取得される。より具体的には、第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の切り返しの有無として、切り返しなしを示す値が取得される。
【0234】
一方、第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の切り返しの有無として、切り返しありを示す値が取得される。
【0235】
S89の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位θ、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93cに記憶する(S90)。
【0236】
上述したように、最大インデックス番号IDmaxは、図12のS9の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけていくことができる。
【0237】
なお、S89の処理において、進行方向として前進を示す値が取得されていれば、S90の処理では、進行方向フラグが「1」に設定され、進行方向として後退を示す値が取得されていれば、進行方向フラグが「−1」に設定される。また、S89の処理において、切り返しの有無として切り返しなしを示す値が取得されていれば、S90の処理では、切り返しフラグが「0」に設定され、切り返しの有無として切り返しありを示す値が取得されていれば、切り返しフラグが「1」に設定される。
【0238】
また、S90の処理において、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する(図10参照)。
【0239】
S90の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S91)。
【0240】
次に、変数iの値が、変数nの値未満であるかを判定し(S92)、S92の判定が肯定される場合には(S92:Yes)、変数iに1を加算して(S93)、S88の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、40個の走行制御点Qを順番に生成する。
【0241】
一方、S92の判定が否定される場合は(S92:No)、第1経路点Pから第2経路点Pの間に、40個の走行制御点Qを設定した場合なので、パターン走行部RT1の走行制御点Qを全て生成したかを判定する(S94)。
【0242】
S94の判定が否定される場合には(S94:No)、変数jに1を加算して(S95)、S82の処理に戻り、次の経路点P間についても、40個の走行制御点Qを生成する。S94の判定が肯定される場合には(S94:Yes)、パターン走行部制御点生成処理を終了して、自動駐車処理(図12参照)に戻る。
【0243】
尚、S90の処理が実行された場合に、パターン走行部RT1における最後の走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶されると、その後、S91の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S92の判定が否定されてS92:Noへ分岐し、更に、S94の判定が否定されてS94:Noへ分岐して、パターン走行部制御点生成処理が終了する。
【0244】
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する後退旋回部制御点生成処理が実行された場合に、後退旋回部RT2の最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
【0245】
次に、図18を参照して、後退旋回部制御点生成処理(S12)について説明する。図18は、走行制御装置100により実行される後退旋回部制御点生成処理を示すフローチャートである。
【0246】
後退旋回部制御点生成処理は、S4またはS6の処理で生成された走行経路RT1〜RT3のうち、後退旋回部RT2に対する走行制御点Qを生成するための処理であり、後退旋回部RT2を示す2つの各経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、後退旋回部RT2は、パターン走行部RT1のように走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
【0247】
尚、後退旋回部制御点生成処理でも、パターン走行部制御点生成処理(図16参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
【0248】
後退旋回部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、後退旋回部RT2を示す2つの各経路点Pを特定する(S101)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P6と、経路点P7とが特定される。
【0249】
次に、特定した2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとする(S102)。そして、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93bから取得し(S103)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93bから取得する(S104)。
【0250】
次に、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S105)。なお、ここでの車両1の旋回中心Kと、車両1の旋回半径Rは、駐車可能条件が成立した場合に算出された旋回中心Kと、旋回半径Rpとである。そして、車両1の旋回半径をRとし、車両1のホイールベースをWLとした場合、車両1の操舵角δは、
δ=tan−1(WL/R)
により算出される。また、車両1が第1経路点Pから第2経路点Pへ移動した場合の車両方位の変化量Δθを算出する(S106)。なお、車両方位の変化量Δθを算出する式については後述する。
【0251】
そして、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S107)。なお、走行制御点Qの数を算出する数式についても後述する。
【0252】
次に、変数iを1に設定して、変数iの初期設定を行う(S108)。そして、第1経路点Pから第2経路点Pまでの走行経路に対して生成する各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S109)。なお、1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、n番目の走行制御点Qは、第2経路点Pに重なるようにしている。
【0253】
ここで、図19を参照して、後退旋回部RT2に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図19は、走行経路RT1〜RT3のうち、後退旋回部RT2に対して生成される走行制御点Qの一例を説明するための模式図であり、後退旋回部RT2を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(0,yvn)と示している。なお、第2経路点Pvnでは、車両1の前後軸がy軸と必ず重なるため、x値が0になると共に車両方位がπ/2となる。
【0254】
後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に、車両1が同一の操舵角δで後退旋回するように走行経路が決定される(図13のS48、図15のS76参照)。よって、後退旋回部RT2が決定された場合には、その旋回中心K(xk,yk)と、旋回半径Rとが確定する。
【0255】
従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位π/2との変化量をΔθとした場合、その変化量Δθは、
Δθ=θv0−π/2
により算出される。図18のS107の処理では、この式により車両方位の変化量Δθを算出する。そして、第1経路点Pv0から第2経路点Pvnまでの走行距離CLは、
CL=R・Δθ
により算出される。
【0256】
故に、第1経路点Pv0から第2経路点Pvnまでの間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=R・Δθ/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図18のS107の処理では、この式により算出される合計数nを、変数nに代入している。
【0257】
そして、第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と重なるようにしている。
【0258】
以上の図19を参照して説明した数式を用いることにより、後退旋回部RT2の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、後退旋回部RT2に対応する各走行制御点Qを全て生成できる。
【0259】
ここで、図18の説明に戻る。次に、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S110)。なお、S110の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。
【0260】
S110の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93cに記憶する(S111)。
【0261】
上述したように、最大インデックス番号IDmaxは、図12のS9の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。また、図12のS10の判定において、S10の判定が肯定されていれば、上述したパターン走行部制御点生成処理(図16参照)が実行された後である。よって、最初にS111の処理が実行される場合には、図16のS91の処理により、最大インデックス番号IDmaxが、後退旋回部RT2の最初のID番号に更新されている。
【0262】
従って、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT2まで通して連続するIDを、各走行制御点Qの車両設定情報に順番に関連づけることができる。
【0263】
一方、図12のS10の処理において、S10の判定が否定されていれば、上述したパターン走行部制御点生成処理(図16参照)がスキップされるので、最大インデックス番号IDmaxは1に初期設定された状態である。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけることができる。
【0264】
なお、ここでは、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
【0265】
S111の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S112)。次に、変数iの値が、変数nの値未満であるかを判定し(S113)、S113の判定が肯定される場合には(S113:Yes)、変数iに1を加算して(S114)、S109の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S113の判定が否定される場合は(S113:No)、n個の走行制御点Qを全て生成した場合なので、後退旋回部制御点生成処理を終了して、自動駐車処理(図12参照)に戻る。
【0266】
尚、S111の処理が実行された場合に、後退旋回部RT2における最後の走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶されると、その後、S112の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S113の判定が否定されてS113:Noへ分岐して、パターン走行部制御点生成処理が終了する。
【0267】
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する最終後退部制御点生成処理が実行された場合に、最終後退部RT3の最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
【0268】
次に、図20を参照して、最終後退部制御点生成処理(S13)について説明する。図20は、走行制御装置100により実行される最終後退部制御点生成処理を示すフローチャートである。
【0269】
最終後退部制御点生成処理は、S4またはS6の処理で生成された走行経路RT1〜RT3のうち、最終後退部RT3に対する走行制御点Qを生成するための処理であり、最終後退部RT3を示す2つの経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、最終後退部RT3は、後退旋回部RT2と同様に走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
【0270】
尚、最終後退部制御点生成処理でも、パターン走行部制御点生成処理(図16参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
【0271】
最終後退部制御点生成処理におけるS122〜S125の各処理は、上述した図18の後退旋回部制御点生成処理におけるS102〜S105の各処理と同様な処理であり、最終後退部制御点生成処理におけるS127〜S130の各処理は、上述した図18の後退旋回部制御点生成処理におけるS108〜S111の各処理と同様な処理である。
【0272】
また、最終後退部制御点生成処理におけるS131,S132の各処理は、上述した図18の後退旋回部制御点生成処理におけるS113,S114の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S121,S126,S133)についてのみ詳細に説明する。
【0273】
最終後退部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、最終後退部RT3を示す2つの各経路点Pを特定する(S121)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P7と、経路点P8とが特定される。そして、S122〜S125の各処理を実行し、次に、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S126)。なお、走行制御点Qの数を算出する数式については後述する。
【0274】
そして、S127〜S130の各処理を実行する。なお、最終後退部RT3では、車両1の前後軸がy軸と必ず重なる状態で、車両1が後退直進するため、車両方位が常にπ/2となる。よって、S129の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て0が取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。よって、S130の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。
【0275】
また、上述したように、最大インデックス番号IDmaxは、図12のS9の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。最初にS130の処理が実行される場合は、図16のS91の処理や、図18のS112の処理が実行された後なので、最大インデックス番号IDmaxが、最終後退部RT3の最初のID番号に更新されている。
【0276】
よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT3まで通して連続するIDを、各走行制御点Qの車両設定情報に関連づけることができる。
【0277】
なお、S130の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
【0278】
S130の処理が終了したら、次に、S131の処理を実行する。S131の判定が肯定される場合には(S131:Yes)、S132の処理を実行する。そして、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S133)。その後、S128の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S131の判定が否定される場合は(S131:No)、n個の走行制御点Qを全て生成した場合なので、最終後退部制御点生成処理(S13)を終了して、自動駐車処理(図18参照)に戻る。
【0279】
尚、最終後退部制御点生成処理では、S130の処理が実行されて、走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶された後、S131の判定が肯定された場合にだけ、S133の処理が実行され、最大インデックス番号IDmaxが更新される。
【0280】
即ち、次に生成すべき走行制御点Qが存在する場合にだけ、最大インデックス番号IDmaxが更新されるので、最終後退部RT3における最後の走行制御点Qが生成された後には、最大インデックス番号IDmaxは更新されない。よって、最大インデックス番号IDmaxには最後の走行制御点QのID番号が設定される。
【0281】
ここで、図20を参照して、最終後退部RT3に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図20は、走行経路RT1〜RT3のうち、最終後退部RT3に対して生成される走行制御点Qの一例を説明するための模式図であり、最終後退部RT3を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pv0(xv0,yv0)と示し、最終目的地に近い側の経路点Pを第2経路点Pvn(xvn,yvn)と示している。
【0282】
なお、第1経路点Pv0および第2経路点Pvnでは共に、車両1の前後軸がy軸と必ず重なるため、x値が0になり、車両方位がπ/2になり、操舵角δが0になる。
【0283】
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置に、車両1を後退直進させて停車できるように走行経路が決定される(図13のS49、図15のS77参照)。よって、第1経路点Pv0(xv0,yv0)から第2経路点Pvn(xvn,yvn)までの走行距離CLは、
CL=((xv0−xvn)2+(yv0−yvn)2)1/2
により算出される。なお、本実施形態では、xv0およびxvnが共に0なので、「CL=|yv0−yvn|」として算出しても良い。
【0284】
従って、第1経路点Pv0から第2経路点Pvnまで間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=CL/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図20のS126の処理では、この式により算出される合計数nを、変数nに代入している。
【0285】
そして、第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と重なるようにしている。
【0286】
以上の図20を参照して説明した数式を用いることにより、最終後退部RT3の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、最終後退部RT3に対応する各走行制御点Qを全て生成できる。
【0287】
ここで、図12の説明に戻る。S11〜S13の処理が実行され、各走行経路RT1〜RT3に対する走行制御点Qが生成されたら、次に、運転者により設定された駐車位置に車両1を駐車させることが可能であることを、運転者に報知する(S14)。
【0288】
そして、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示されたか、又は、自律走行による駐車を中止することが運転者により指示されたかを判定し(S15)、自律走行による駐車を中止することが運転者により指示された場合には(S15:中止)、自動駐車処理を終了する。
【0289】
一方、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S15:開始)、出発地点に対応する走行制御点Qを現在地点として(S16)、走行制御点メモリ93cから現在地点の車両設定情報を取得する(S17)。そして、車両1が次に通過する予定の走行制御点Qを目標地点とし(S18)、走行制御点メモリ93cから目標地点の車両設定情報を取得する(S19)。
【0290】
次に、車両1に対して設定されている障害物判定領域E内に、障害物が有るかを判定する(S20)。例えば、障害物判定領域Eは、矩形状の領域であって、車体1を囲むように設定されている。S20の判定が肯定される場合は(S20:Yes)、障害物に衝突する可能性があるので、車両1を停車させ(S21)、障害物を発見したため自律走行を中止したことを、運転者に報知して(S22)、自動駐車処理を終了する。
【0291】
S20の判定が否定される場合には(S20:No)、現在地点の車両設定情報に基づいて車両1を走行させ、車両1を目標地点まで移動させる(S23)。例えば、S23の処理では、ステアリングセンサ装置21により検出される車両1の操舵角δが、車両設定情報の操舵角δと一致するように、操舵駆動装置5を制御し、ステアリングシャフト61を回転させる。また、進行方向フラグが「1」であれば、車両1が前進するように車輪駆動装置3を制御し、進行方向フラグが「−1」であれば、車両1が後退するように車輪駆動装置3を制御する。
【0292】
そして、S23の処理が終了したら、次に、最終目的地に到着したかを判定し(S24)、S24の判定が否定される場合には(S24:No)、目標地点の車両設定情報を現在地点の車両設定情報として(S25)、S18の処理に戻る。そして、車両1を次の目標地点まで走行させる。S24の判定が肯定される場合には(S24:Yes)、車両1を停車させて、最終目的地に到着したことを運転者に報知し(S26)、自動駐車処理を終了する。
【0293】
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0294】
例えば、上記実施形態の点経路第1生成処理(図13参照)では、車両1の現在の操舵角δvを取得し、その取得した操舵角δvと、経路パターンPT1〜PT10に設定されている車両1の操舵角α1〜α10との差分Δα1〜Δα10を、経路パターンPT1〜PT10毎に算出し、その算出した差分Δα1〜Δα10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定している。これに代えて、車両1の現在の操舵角δvから、10の経路パターンPT1〜PT10の優先順位を決定するためのテーブルを予め作成しておき、車両1の現在の操舵角δvを取得した場合に、そのテーブルに基づいて、10の経路パターンPT1〜PT10に優先順位を設定するように構成しても良い。本実施形態では、車両1の操舵角δが所定の範囲(例えば、約−π/6〜約π/6)で変化するので、例えば、その範囲を複数の区間に分割し、その分割した各区間ごとに、10の経路パターンPT1〜PT10の優先順位を対応付けたテーブルを作成しておく。このように構成しておけば、車両1の現在の操舵角δvを取得した場合に、予め作成しておくテーブルを参照すれば、取得した操舵角δvに対応する優先順位の情報を取得でき、その情報に従って、10の経路パターンPT1〜PT10に優先順位を設定できる。よって、差分Δα1〜Δα10を算出して優先順位を設定する場合よりも、優先順位を簡単に設定できる。
【0295】
また、上記実施形態では、10の各経路パターンPT1〜PT10に、操舵角α1〜α10を設定しているが、操舵角α1〜α10に代えて、ステアリング13の角度β1〜β10を設定しても良い。尚、「ステアリング13の角度β1〜β10」が、特許請求の範囲に記載の「ハンドル角」に対応する。このステアリング13の角度β1〜β10は、操舵角α1〜α10に対し相対的に決まるので、経路パターンPT1〜PT10毎に、車両1を走行させるためのステアリング13の角度β1〜β10が一意に決まる。例えば、このように構成した場合、点経路第1生成処理(図13参照)では、車両1の現在の操舵角δvに代えて、車両1の現在のステアリング13の角度を取得するように構成する。そして、その取得したステアリング13の角度と、経路パターンPT1〜PT10に設定されている車両1の操舵角β1〜β10との差分Δβ1〜Δβ10を、経路パターンPT1〜PT10毎に算出し、その算出した差分Δβ1〜Δβ10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定する。これにより、仮の走行経路RT1を生成する場合に、車両1の現在のステアリング13の角度に対して、その角度の変化量が小さい仮の走行経路RT1から優先的に生成できる。よって、車両1が走行開始時にスムーズに走行できる走行経路RT1を優先的に生成できるので、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0296】
また、上記実施形態の経路パターン優先順位テーブルでは、直近に並ぶ経路パターンPT1〜PT10に対して、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10を優先的に組み合わせることができるように、10の経路パターンPT1〜PT10に優先順位が設定されているが、直近に並ぶ経路パターンPT1〜PT10に対して、車両1のステアリング13の角度の変化が小さい経路パターンPT1〜PT10を優先的に組み合わせることができるように、優先順位を設定しても良い。このように構成することで、車両1のステアリング13の角度の変化が小さい経路パターンPT1〜PT10を優先的に組み合わせて、仮の走行経路RT1を生成することができる。これにより、仮の走行経路RT1を生成する場合に、車両1のステアリング13の角度の変化量が小さい仮の走行経路RT1を優先的に生成できる。よって、車両1がスムーズに走行できる走行経路RT1を優先的に生成できるので、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0297】
また、上記実施形態の点経路第2生成処理(図15参照)では、経路パターン優先順位テーブルを参照し、そのテーブルから、S63の処理で取得された経路パターン番号に対応する優先順位の情報を取得して、10の経路パターンPT1〜PT10に優先順位を設定している。これに代えて、経路パターン優先順位テーブルは使わずに、10の経路パターンPT1〜PT10に優先順位を設定するように構成しても良い。例えば、S63の処理で取得された経路パターン番号から、その番号に対応する経路パターンPT1〜PT10に設定されている操舵角α1〜α10を取得する。そして、その取得した操舵角α1〜α10と、経路パターンPT1〜PT10に設定されている操舵角α1〜α10との差を、経路パターンPT1〜PT10毎に算出して、その算出した差分Δα1〜Δα10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定しても良い。このように構成すれば、経路パターン優先順位テーブルをフラッシュメモリ92に記憶しなくて良いので、記憶容量のより小さいフラッシュメモリ92を利用できコストを抑制できる。尚、上述したように、10の各経路パターンPT1〜PT10に、ステアリング13の角度β1〜β10を設定しておき、S63の処理で取得されたパターン番号から、その番号に対応する経路パターンPT1〜PT10に設定されているステアリング13の角度β1〜β10を取得し、その取得したステアリング13の角度β1〜β10と、経路パターンPT1〜PT10に設定されている車両1のステアリング13の角度β1〜β10との差分Δβ1〜Δβ10を、経路パターンPT1〜PT10毎に算出し、その算出した差分Δβ1〜Δβ10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定しても良い。
【0298】
また、上記実施形態では、10の経路パターンPT1〜PT10に優先順位が繰り返し設定されるが、1回目の優先順位が設定される場合にだけ、シチュエーション判定テーブルが参照される。そして、参照の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する情報があれば、その情報に基づいて、10の経路パターンPT1〜PT10に優先順位が設定される。しかしながら、1回目だけでなく、他の回(毎回、又は、所定の回)についても、シチュエーション判定テーブルを参照するように構成しても良い。そして、参照の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する情報があれば、その情報に基づいて、10の経路パターンPT1〜PT10に優先順位を設定しても良い。尚、他の回において、シチュエーション判定テーブルの中に、判定パラメータに対応する情報がなければ、経路パターン優先順位テーブルを参照し、そのテーブルから、S63の処理で取得された経路パターン番号に対応する優先順位の情報を取得し、10の経路パターンPT1〜PT10に優先順位を設定するように構成しても良い。
【0299】
また、上記実施形態のシチュエーション判定テーブルには、10の経路パターンPT1〜PT10に優先順位を設定するための情報が格納されているが、優先順位を設定するための情報は、1回目の設定を行う分しか格納されていない。これに対して、1回目から所定の回までの各設定が行えるように、優先順位を設定するための情報を、複数回分格納しておいても良い。尚、仮の走行経路RT1は、出発地点を始点として延長されていくため、仮の走行経路RT1の生成開始時や生成開始初期に用いられる経路パターンPT1〜PT10により、最終的な走行経路RT1の概ねの形状が決まる。即ち、出発地点からの一区間や、出発地点付近の区間の生成に用いられる経路パターンPT1〜PT10の影響を大きく受ける。そのため、1回目や、2回目などの初期に行われる優先順位を適切に設定することで、仮の走行経路RT1を延長していく場合に、好適に延長できる可能性を高めることができ、好適な形状の走行経路RT1を生成できる可能性を高くできる。
【0300】
また、上記実施形態の点経路第1生成処理(図13参照)では、まず、シチュエーション判定テーブルを参照し、参照の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する情報がなければ、次に、車両1の現在の操舵角δvに基づいて、10の経路パターンPT1〜PT10に優先順位を設定しているが、シチュエーション判定テーブルを参照するか否かは、任意に決めれば良い。
【0301】
また、上記実施形態のシチュエーション判定テーブルでは、車両1の車両位置(xv,yv)と、目標とする駐車位置によって決まるx1,x2,y1,y2と、車両1の車両方位θvとの3つの条件に応じて、10の経路パターンPT1〜PT10の優先順位が設定されているが、条件は3つに限らず、1つや、4つなど任意の数で良い。また、条件は、車両位置や駐車位置や車両方位だけ限らず、ハンドル角や、路面状況や、障害物の位置などを条件としても良い。
【0302】
また、上記実施形態では、目標とする駐車位置に車両1を停車させる場合、最終的には車両1を後退直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しているが、最終的に車両1を前進直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しても良い。
【0303】
また、上記実施形態では、10種類の経路パターンPT1〜PT10を設けているが、パターンの数は10種類に限らず、減らしても良いし、増やしても良い。また、各経路パターンPT1〜PT10に対応する各走行経路の距離CLを全て2mとしているが、数値は適宜設定すれば良い。また、経路パターンPT1〜PT10に対応する走行経路の形状も適宜設定すれば良い。
【0304】
また、上記実施形態では、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qを生成しているが、走行制御点Qを設ける間隔は、0.01m間隔や、0.1m間隔や、0.5m間隔など適宜設定すれば良い。
【0305】
また、上記実施形態の走行制御装置100は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の車両速度Vは運転者がアクセルペダル11およびブレーキペダル12により操作できるように構成し、走行制御装置100は車両1のステアリング13のみを制御するように構成しても良い。
【0306】
また、上記実施形態の走行制御装置100は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の自律走行は行わず、現在位置から運転者により設定される駐車位置までの走行経路を運転者に報知するように構成しても良い。例えば、車両1内のモニタに、走行経路RT1〜RT3を表示しても良い。また、音声により運転者の運転操作を誘導して、車両1が走行経路RT1〜RT3上を走行するようにしても良い。
【0307】
また、上記実施形態では、目標とする駐車位置に車両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とした座標系を用いても良い。
【0308】
また、上記実施形態では、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成するように構成しているが、任意の2つの経路点P間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。例えば、走行経路上に3つ以上の経路点Pが順番に並んでいる場合には、その3つ以上の経路点Pのうち最初(出発点に最も近い側)の経路点Pと、その3つ以上の経路点のうち最後(最終目的地に最も近い側)の経路点Pとの間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。
【0309】
また、上記実施形態では、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3を生成して、その走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させているが、単に、現在位置から目標とする位置まで車両1を自律走行させるように構成も良い。例えば、目標とする位置を遠方に設定し、自律走行により車両1を長距離走行させるように構成しても良い。
【0310】
また、上記実施形態では、経路点P0(出発地点)上に走行制御点Qを設けていないが、経路点P0上にも走行制御点Qを設けて、車両1を自律走行させる場合に参照するように構成して良い。
【0311】
また、上記実施形態は、車両1が4輪車である場合の実施形態であるが、本発明は、車輪の数に関係なく車両であれば適用できるし、ショベルカーなどの建設機械などにも適用できる。
【符号の説明】
【0312】
1 車両
21 ステアリングセンサ装置(検出手段)
100 走行制御装置
S62,S63 特定手段
S64,S65 設定手段
S66,S71 選択手段
S67,S69 仮経路生成手段
S70 判定手段
S72:No 選択制御手段
S75〜S78,S11〜S13 走行経路生成手段
PT1〜PT10 経路パターン(走行経路パターン)
【技術分野】
【0001】
本発明は、走行制御装置に関し、特に、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる走行制御装置に関するものである。
【背景技術】
【0002】
従来より、運転者が自車両を目標位置まで走行させる場合に、自車両を現在の車両位置から目標位置まで走行させることが可能な走行経路を生成し、運転者がハンドル操作を行わなくても、自車両が走行経路に沿って走行するように自車両の走行を制御する走行制御装置が知られている。この種の走行制御装置に関し、次の特許文献1に記載の走行制御装置では、運転者が走行経路の生成を指示すると、自車両を現在の車両位置から後退により目標位置へ走行させることが可能な走行経路の生成が試みられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−284969号公報(第0062段落など)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の走行制御装置は、複数の走行経路パターンを繋ぎ合わせた走行経路を生成するものの、走行経路パターンの種類があまりない上、単純な走行経路しか生成しないものである。そのため、自車両を現在の車両位置から目標位置まで走行させる走行経路が生成される可能性が低かった。そこで、走行経路パターンの種類を増やすことが考えられるが、走行経路パターンの数を増やすにしても、走行経路パターンを記憶しておく記憶手段の記憶容量によって数が制限されるという問題が生じる。
【0005】
本発明は、上述した問題点を解決するためになされたものであり、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる走行制御装置を提供することを目的としている。
【課題を解決するための手段および発明の効果】
【0006】
請求項1記載の走行制御装置によれば、走行経路パターンの中から、走行経路パターンが順番に選択手段により選択されると、その選択された走行経路パターンが選択された順序で仮経路生成手段により用いられて基準位置からの仮経路が生成され、その仮経路を車両に走行させたと仮定した場合にその車両が目標位置へ到着可能か否かが判定手段により判定される。判定手段による到着不可能という判定が仮経路生成手段より生成される仮経路についてなされると、選択制御手段によって、その到着不可能な仮経路の終端を新たな基準位置として選択手段において走行経路パターンの選択が開始されるように制御される。一方、判定手段により到着可能と判定されると、最初の基準位置からその到着可能な仮経路までの一連の仮経路が用いられて、車両を最初の基準位置から目標位置まで走行させるための走行経路が走行経路生成手段により生成される。よって、仮経路生成手段により生成された仮経路が判定手段により到着不可能と判定された場合に、その到着不可能な仮経路を扱わないようにするのではなく、その到着不可能な仮経理を用いて新たに仮経路の生成を試みることができる。従って、走行経路パターンの種類を多くしておかなくても、生成する仮経路の数を増やすことができ、仮経路が生成された場合に、判定手段により到着可能と判定される可能性を向上させることができる。故に、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる。
【0007】
請求項2記載の走行制御装置によれば、請求項1記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、選択制御手段の制御に伴って走行経路パターンの選択が開始される以前に、その制御の対象とされる仮経路が何れの走行経路パターンに基づいて生成されたものかが特定手段により特定され、その特定された走行経路パターンに基づいて、選択手段における走行経路パターンの選択順序が設定手段により設定される。よって、設定手段による設定の後に、選択手段により走行経路パターンが選択される場合には、走行経路パターンの中から、選択制御手段の制御の対象になった仮経路に応じた順番で、走行経路パターンを選択できるので、その制御の対象になった仮経路の終端から新たな仮経路を生成する場合に、その制御の対象になった仮経路に対してより相応しい仮経路から順番に生成できる。ここで、新たな仮経路について、判定手段により到着可能と判定されると、最初の基準位置からその到着可能な仮経路までの一連の仮経路が用いられて走行経路が生成されるため、走行経路が生成される場合に、より相応しい仮経路が用いられる可能性を高めることができる。従って、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる上、より好適な走行経路を生成できるという効果がある。
【0008】
請求項3記載の走行制御装置によれば、請求項2記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、走行経路パターンは、車両が走行すべき経路と、その経路を車両が走行する場合の操舵角またはハンドル角とを示すものであり、設定手段では、走行経路パターンの中で、特定手段により特定される走行経路パターンの示す操舵角に対する操舵角の差、または、特定手段により特定される走行経路パターンの示すハンドル角に対するハンドル角の差が小さい順に走行経路パターンが並ぶ順序が、走行経路パターンの選択順序として設定される。よって、設定手段による設定の後に、選択手段により走行経路パターンが選択される場合には、走行経路パターンの中で、車両の操舵角の変化量が小さいものを優先的に選択できる。従って、選択制御手段の制御の対象になった仮経路の終端から新たな仮経路を生成する場合に、車両の操舵角の変化量が小さい仮経路から優先的に生成できるので、走行経路が生成される場合に、車両の操舵角の変化量の小さい仮経路が優先的に用いられるようすることができる。故に、車両がスムーズに走行できる走行経路を優先的に生成できる。その結果、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる上、より好適な走行経路を優先的に生成できるという効果がある。
【0009】
請求項4記載の走行制御装置によれば、請求項1から3の何れかに記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、走行経路パターンは、車両が走行すべき経路と、その経路を車両が走行する場合の操舵角またはハンドル角とを示すものである。そして、車両の操舵角またはハンドル角が検出手段により検出される。選択手段では、仮経路生成手段において最初の基準位置からの仮経路が生成される場合、走行経路パターンの中から、検出手段により検出される操舵角に対する操舵角の差、または、検出手段により検出されるハンドル角に対するハンドル角の差が小さい順に、走行経路パターンが選択される。よって、最初の基準位置からの仮経路を生成するための走行経路パターンが、選択手段により選択される場合には、走行経路パターンの中で、車両の操舵角の変化量が小さいものを優先的に選択できる。従って、最初の基準位置からの仮経路を生成する場合に、車両の操舵角の変化量が小さい仮経路から優先的に生成できるので、走行経路が生成される場合に、最初の基準位置において車両の操舵角の変化量の小さい仮経路が優先的に用いられるようにすることができる。故に、車両が走行開始時にスムーズに走行できる走行経路を優先的に生成できる。その結果、予め用意しておく走行経路パターンの数を抑制しつつ、車両を基準位置から目標位置まで走行させる走行経路を生成する可能性を向上させることができる上、より好適な走行経路をより優先的に生成できるという効果がある。
【図面の簡単な説明】
【0010】
【図1】本発明の一例である走行制御装置が搭載される車両の上面視を模式的に示した模式図である。
【図2】走行経路全体に対して生成される走行制御点の一例を説明するための模式図である。
【図3】走行経路全体のうち、パターン走行部を生成するために用いる経路パターンの一例を示す模式図である。
【図4】経路パターンに応じて車両を移動させた場合の移動先と、その車両方位とを説明するための模式図である。
【図5】(a)は、走行経路上の経路点の一例を説明するための模式図であり、(b)は、駐車可能条件を説明するための模式図である。
【図6】走行制御装置の電気的構成を示したブロック図である。
【図7】(a)は、シチュエーション判定テーブルの一例を示す模式図であり、(b)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、(c)は、(b)に示すシチュエーション判定テーブルの内容を説明するための模式図である。
【図8】(a)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、(b)は、(a)に示すシチュエーション判定テーブルの内容を説明するための模式図である。
【図9】経路パターン優先順位テーブルの一例を示す模式図である。
【図10】走行制御点メモリの内容の一例を示す模式図である。
【図11】判定済み順列メモリの内容の一例を示す模式図である。
【図12】走行制御装置の自動駐車処理を示すフローチャートである。
【図13】走行制御装置の点経路第1生成処理を示すフローチャートである。
【図14】車両の現在の操舵角に基づいて、10の経路パターンに優先順位を設定する場合の一例を説明するための模式図である。
【図15】走行制御装置の点経路第2生成処理を示すフローチャートである。
【図16】走行制御装置のパターン走行部制御点生成処理を示すフローチャートである。
【図17】走行経路全体のうち、パターン走行部に対して生成される走行制御点の一例を説明するための模式図である。
【図18】走行制御装置の後退旋回部制御点生成処理を示すフローチャートである。
【図19】走行経路全体のうち、後退旋回部に対して生成される走行制御点の一例を説明するための模式図である。
【図20】走行制御装置の最終後退部制御点生成処理を示すフローチャートである。
【図21】走行経路全体のうち、最終後退部に対して生成される走行制御点の一例を説明するための模式図である。
【発明を実施するための形態】
【0011】
以下、本発明の好ましい実施形態について添付図面を参照して、説明する。図1は、本発明の一例である走行制御装置100が搭載される車両1の上面視を模式的に示した模式図である。なお、図1の矢印U−D,L−R,F−Bは、車両1の上下方向、左右方向、前後方向をそれぞれ示している。
【0012】
まず、図1を参照して、車両1の概略構成について説明する。車両1は、運転者により運転操作可能に構成された車両であり、現在の車両位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させることができる走行制御装置100が搭載されている。なお、本実施形態における自律走行とは、運転者の運転操作なしで車両1を走行させることを意味する。即ち、車両1が自律走行している場合、運転者は、後述するアクセルペダル11、ブレーキペダル12及びステアリング13を操作しなくて良い。
【0013】
走行制御装置100は、目標とする駐車位置が運転者により設定されると、予め記憶されている10の経路パターンPT1〜PT10(図3参照)を複数組み合わせて、現在の車両位置から目標とする駐車位置までの車両1の走行経路を生成し、その生成した走行経路に従って車両1を自律走行させて、目標とする駐車位置に車両1を停車させるものである。
【0014】
詳細については後述するが、この走行制御装置100によれば、走行経路を生成する場合に、距離の短い走行経路や、搭乗者が想定する可能性の高い走行経路や、車両1が走行開始時にスムーズに走行できる走行経路や、車両1がスムーズに走行できる走行経路を優先的に生成することができる。
【0015】
尚、本実施形態では、目標とする駐車位置に車両1を駐車させた時の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いて、車両1の位置や、走行経路などの位置を算出する。
【0016】
よって、以下の説明では、この座標系を用いて、車両1や、走行経路などの各位置を示す。また、車両1の前後軸と、車両1における左右の後輪2RL,2RRの車軸との交点を車両1の基準点とし、上述した座標系における車両1の基準点の位置を、車両1の車両位置とする。また、車両1の前後軸方向のうち車両1が進行している方向を、車両1の進行方向とする。
【0017】
図1に示すように、車両1は、車体フレームBFと、その車体フレームBFに支持される複数(本実施形態では4輪)の車輪2FL,2FR,2RL,2RRと、それら複数の車輪2FL〜2RRの内の一部(本実施形態では、左右の前輪2FL,2FR)を回転駆動する車輪駆動装置3と、各車輪2を車体フレームBFに懸架する懸架装置4と、複数の車輪2の内の一部(本実施形態では、左右の前輪2FL,2FR)を操舵するステアリング装置6および操舵駆動装置5とを主に備えている。
【0018】
次いで、各部の詳細構成について説明する。車体フレームBFは、車両1の骨格をなすものであり、懸架装置4を支持すると共に、その懸架装置4を介して車輪2を支持している。懸架装置4は、いわゆるサスペンションとして機能する装置であり、図1に示すように、各車輪2に独立して設けられている。
【0019】
車輪2FL,2FRは、図1に示すように、車体フレームBFの前方側(矢印F側)に配置される左右の前輪であり、車輪駆動装置3によって回転駆動される駆動輪として構成されている。一方、車輪2RL,2RRは、車体フレームBFの後方側(矢印B側)に配置される左右の後輪であり、車両1の走行に伴って従動する従動輪として構成されている。4つの車輪2FL〜2RRのうち、左右の前輪2FL,2FRには共に、車輪の回転量を検出する車輪回転センサ23が取り付けられている。
【0020】
車輪回転センサ23は、センサ23が取り付けられている車輪2の回転量を検出して、その検出結果をCPU91に出力するセンサであり、車輪2が所定の角度回転する度に、回転検出信号をCPU91に出力するものである。車輪2の外周の長さと、回転検出信号が出力される回転角度とは予め決まっているので、回転検出信号が出力されから次の回転検出信号が出力されるまでに車両1が走行する走行距離も予め決まる。CPU91は、車両1が自律走行をする場合、2つの車輪回転センサ23の回転検出信号を個別にカウントし、2つのカウント数の平均値を用いて出発地点からの走行距離を算出する。
【0021】
ジャイロセンサ装置22は、車両1の水平面に対するロール角およびピッチ角と、ヨー
角とを検出すると共に、その検出結果をCPU91に出力するための装置であり、車両1の重心を通る基準軸(図1矢印F−B,L−R,U−D方向軸)回りの車両1(車体フレームBF)の回転角(ロール角、ピッチ角、ヨー角)をそれぞれ検出するジャイロセンサ(図示せず)と、そのジャイロセンサの検出結果を処理してCPU91に出力する出力回路(図示せず)とを主に備えている。
【0022】
なお、以下の説明では、車両1のヨー角のことを、車両1の車両方位と記載する。なお、車両1における車両方位の基準軸は、上述したx軸とし、そのx軸から車両1の進行方向までの反時計回りの角度を、車両1の車両方位とする。
【0023】
CPU91は、車両1が自律走行する場合、ジャイロセンサ装置22から出力される車両1の車両方位を取得し、車両1の進行方向を算出する。そして、その車両1の進行方向と、車輪回転センサ23の回転検出信号から算出される車両1の走行距離とに基づいて、出発地点からの移動距離を算出する。出発地点は原点Oを基準に設定されているので、CPU91は、出発地点からの移動距離に基づいて、原点Oを基準とした車両1の現在位置を算出できる。
【0024】
車輪駆動装置3は、左右の前輪2FL,2FRに回転駆動力を付与するモータ3a(図6参照)を備えて構成されている。なお、モータ3aは、ディファレンシャルギヤ(図示せず)及び一対のドライブシャフト31を介して左右の前輪2FL,2FRに接続されている。
【0025】
例えば、運転者がアクセルペダル11を操作した場合には、モータ3aから左右の前輪2FL,2FRに回転駆動力が付与され、それら左右の前輪2FL,2FRがアクセルペダル11の傾斜状態(傾斜角度、傾斜する速度など)に応じた速度で回転駆動される。なお、左右の前輪2FL,2FRの回転差は、ディファレンシャルギヤにより吸収される。
【0026】
ステアリング装置6は、図1に示すように、ステアリングシャフト61と、フックジョイント62と、ステアリングギヤ63と、タイロッド64と、ナックルアーム65とを主に備えて構成されている。なお、ステアリング装置6は、ステアリングギヤ63がピニオン(図示せず)とラック(図示せず)とを備えたラックアンドピニオン機構によって構成されている。
【0027】
例えば、運転者がステアリング13を操作した場合には、ステアリング13の操作がステアリングシャフト61を介してフックジョイント62に伝達されると共にフックジョイント62によって角度を変えられ、ステアリングギヤ63のピニオンに回転運動として伝達される。そして、ピニオンに伝達された回転運動がラックの直線運動に変換され、ラックが直線運動することで、ラックの両端に接続されたタイロッド64が移動し、ナックルアーム65を介して車輪2が操舵される。
【0028】
ステアリングシャフト61には、左右の前輪2FL,2FRの操舵角δを算出してCPU91へ出力するステアリングセンサ装置21が取り付けられている。ステアリングセンサ装置21は、基準位置からのステアリングシャフト61の回転角度に基づいて、左右の前輪2FL,2FRの操舵角δを算出し、その算出結果を走行制御装置100に設けられたCPU91(図6参照)へ出力する。尚、操舵角δに加えて、ステアリング13の角度をCPU91に出力するように構成しても良い。
【0029】
操舵駆動装置5は、ステアリング装置6と同様に、左右の前輪2FL,2FRを操舵するための装置であり、ステアリングシャフト61に回転駆動力を付与するモータ5a(図6参照)を備えて構成されている。即ち、モータ5aが駆動されてステアリングシャフト61が回転すると、運転者によりステアリング13が操作された場合と同様に車輪2が操舵される。
【0030】
アクセルペダル11、ブレーキペダル12及びステアリング13は、いずれも運転者により制御される操作部材であり、各ペダル11,12の傾斜状態(傾斜角度、傾斜する速度など)に応じて車両1の加速力や制動力が決定されると共に、ステアリング13の操作状態(操作量、操作方向)に応じて車両1の旋回半径や旋回方向が決定される。
【0031】
自動駐車スイッチ25は、自律走行により目標とする駐車位置に車両1を駐車させたい場合に、運転者が押下するスイッチであり、これが運転者により押下されると、走行制御装置100において後述する自動駐車処理(図12参照)が実行される。その結果、現在の車両位置から運転者により設定される駐車位置まで車両1が自律走行させられ、その駐車位置に車両1が停車させられる。
【0032】
第1から第3までの各距離センサ24a〜24cは、車両1の周辺に存在する物体までの距離データをCPU91(図6参照)に出力するための装置である。各距離センサ24a,24b,24cは、レーザ光を対象物に向けて照射し、その反射の度合いで対象物までの距離を測定するレーザレンジファインダで構成されている。
【0033】
第1距離センサ24aは、車両1の前面右端に、第2距離センサ24bは、車両1の前面左端に、第3距離センサ24cは、車両1の後面中央に取り付けられている。本実施形態では、3つの距離センサ24a〜24cにより、車両1を中心として少なくとも60m四方の領域内に存在する各対象物までの距離を検出可能に構成されている。
【0034】
走行制御装置100は、車輪駆動装置3、操舵駆動装置5、及び、ブレーキ装置(図示せず)などを制御して、現在の車両位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものである。
【0035】
本実施形態では、運転者により自動駐車スイッチ25が押下され、運転者により目標とする駐車位置が設定されると、走行制御装置100によって、現在の車両位置から目標位置へ到達可能な走行経路RT1〜RT3が生成される(図2参照)。走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成されている。
【0036】
この走行経路RT1〜RT3は線として連続的に構成されるが、走行経路RT1〜RT3を示すデータについては、走行経路RT1〜RT3を構成する点のうち、所定間隔ごとの点を示すデータより構成される。以下、この所定間隔ごとの点を、経路点Pと称し、経路点Pを示すデータを、経路点情報と称する。なお、この経路点Pは、車両1が走行経路RT1〜RT3を自律走行する場合に経由すべき点であり、経路点情報は、経路点Pにおける車両1の車両位置と、その経路点Pにおける車両1の車両方位θとにより構成される。各経路点Pの経路点情報は、後述する点経路メモリ93b(図6参照)に記憶される。詳細については後述するが、例えば、走行経路RT1であれば、走行経路RT1上を構成する点のうち、2m間隔ごとの点を経路点Pとしている。
【0037】
そして、本実施形態では、走行経路RT1〜RT3全体が生成されると、次に、走行制御装置100が車両1を自律走行させる場合に車両1の車両状態を制御する点である走行制御点Qが、走行経路RT1〜RT3上に、0.05m間隔で仮想的に生成される。つまり、本実施形態では、車両1の走行状態が0.05m毎に制御される。
【0038】
なお、経路点P0(車両1の出発位置)上には走行制御点Qは生成されず、経路点P0から0.05mだけ目標とする駐車位置に近づいた位置から走行制御点Qが生成されて行き、経路点P0を除く各経路点P上には、必ず走行制御点Qが生成される。また、各走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成され、各走行制御点Qの車両設定情報は、後述する走行制御点メモリ93c(図6参照)にそれぞれ記憶される。
【0039】
車両設定情報の詳細については後述するが、走行制御装置100は、走行経路RT1〜RT3に沿って車両1を自律走行させる場合に、各走行制御点Qに到達する度に、その走行制御点Qに対応する車両設定情報に基づいて車両1の走行状態を設定し、運転者により設定される駐車位置まで車両1を自律走行させる。
【0040】
ここで、図2を参照して、走行制御装置100により生成される走行経路RT1〜RT3と、走行経路RT1〜RT3に対して生成される走行制御点Qについて説明する。図2は、走行経路RT1〜RT3全体と、その走行経路RT1〜RT3を示す経路点Pと、その走行経路RT1〜RT3に対して生成される走行制御点Qとの一例を説明するための模式図である。
【0041】
以下、図2を含め、走行経路RT1〜RT3を示す図においては、経路点Pを白抜きの丸で示し、走行制御点Qを黒塗りの丸で示す。また、経路点P0は、車両1の出発位置を示し、経路点P8は、運転者により設定された駐車位置を示す。なお、他の経路点P1〜P7の詳細については後述する。また、走行制御点Qは、本来なら0.05m間隔で仮想的に生成されるが、図を見易くするために一部の走行制御点Qのみを示す。
【0042】
上述したように、走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成される。パターン走行部RT1は、後述する経路パターンメモリ92a(図6参照)に格納されている経路パターンPT1〜PT10の組み合わせにより生成される走行経路である。図2に示す例では、経路点P0から経路点P6までの走行経路が、パターン走行部RT1となる。
【0043】
また、後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に車両1を後退直進させることが可能となる車両位置までの走行経路である。図2に示す例では、経路点P6から経路点P7までの経路が、後退旋回部RT2となる。なお、この後退旋回部RT2では、車両1が同一の操舵角δで後退旋回するように走行経路が決定される。
【0044】
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置までの走行経路である。図2に示す例では、経路点P7から経路点P8までの経路が、最終後退部RT3となる。なお、この最終後退部RT3は、車両1が後退直進するように走行経路が決定される。
【0045】
パターン走行部RT1が生成され、後退旋回部RT2、および、最終後退部RT3が決定されると、各走行経路RT1〜RT3ごとに走行制御点Qが仮想的に生成される。走行制御点Qが仮想的に生成される場合には、走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成されると共に、その走行制御点Qを識別するためのインデックス番号(以下、「ID番号」と称す)が設定される。
【0046】
このID番号は、走行経路RT1〜RT3上における走行制御点Qのうち、経路点P0(車両1の出発位置)に最も近い位置の走行制御点Qが1番に設定される。その後は、走行経路RT1〜RT3に沿ってID番号が1番ずつ大きくなるように、目標とする駐車位置に重なる走行制御点Qまで順番にID番号が設定される。
【0047】
ここで、図3を参照して、経路パターンPT1〜PT10について説明する。図3は、走行経路RT1〜RT3全体のうち、パターン走行部RT1を生成するために用いる経路パターンPT1〜PT10の一例を示す模式図である。
【0048】
本実施形態では、10種類の断片的な走行経路が予め設定されており、それぞれが経路パターンとして、後述する経路パターンメモリ92a(図6参照)に格納されている。10種類の経路パターンPT1〜PT10には、「PT1」から「PT10」までのパターン番号が付されている。10種類の経路パターンPT1〜PT10では、各走行経路の軌跡はそれぞれ異なるが、各走行経路の長さ(即ち、走行距離)CLは全て2mに設定されている。パターン走行部RT1は、この経路パターンPT1〜PT10に対応する走行経路が組み合わされて生成される。
【0049】
そして、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。つまり、経路点P1〜P5は、経路パターンPT1〜PT10に対応する走行経路の接続点を示している。
【0050】
経路パターンPT1は、経路点Piから車両1を前方直進させ2m移動させる走行経路を示すパターンであり、経路パターンPT2は、経路点Piから車両1を後退直進させ2m移動させる走行経路を示すパターンである。
【0051】
経路パターンPT3は、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT4は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を前方右旋回させ、経路パターンPT5は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を後退左旋回させ、経路パターンPT6は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を旋回半径Rで後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
【0052】
また、経路パターンPT7は、車両1の旋回半径Rを最小旋回半径とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT8は、車両1の旋回半径Rを最小旋回半径とし車両1を前方右旋回させ、経路パターンPT9は、車両1の旋回半径Rを最小旋回半径とし車両1を後退左旋回させ、経路パターンPT10は、車両1の旋回半径Rを最小旋回半径とし車両1を後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
【0053】
ここで、図4を参照して、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する各経路点Pおよび車両方位θについて説明する。図4は、経路パターンPT1〜PT10に応じて車両1を移動させた場合の移動先に対応する各経路点Pおよび車両方位θを算出するための模式図である。ここで、経路点Pi(xi,yi)は、移動前の車両1の車両位置を示す。また、経路点Piにおける車両1の車両方位をθiと示し、車両1の進行方向を矢印で示す。
【0054】
まず、経路パターンPT8に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PA(xA,yA)と、その経路点PAにおける車両方位θAを算出する方法について説明する。
【0055】
車両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および車両方位θを算出できる。
【0056】
次に、経路パターン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および車両方位θを算出できる。
【0057】
以下同様に、経路パターン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および車両方位θを算出できる。
【0058】
また、経路パターン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および車両方位θを算出できる。
【0059】
また、図示はしていないが、経路パターンPT1に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PE(xE,yE)と、その経路点PEにおける車両方位θEとは、
θE=θi
xE=xi+CL・cos(θi)
yE=yi+CL・sin(θi)
により算出できる。
【0060】
また、経路パターンPT2に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PF(xF,yF)と、その経路点PFにおける車両方位θFとは、
θF=θi
xF=xi+CL・cos(θi+π)
yF=yi+CL・sin(θi+π)
により算出できる。
【0061】
以上の図4を参照して説明した数式を用いることにより、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点Pと、その車両方位θとを算出できる。よって、パターン走行部RT1を生成できる。
【0062】
本実施形態では、パターン走行部RT1の生成が試みられる場合、経路パターンPT1〜PT10が組み合わされて、仮の走行経路RT1が生成される。すると、次に、その仮の走行経路RT1に続く後退旋回部RT2と、その後退旋回部RT2に続く最終後退部RT3とが有るか否かが判定される。この判定条件のことを、本実施形態では、駐車可能条件と称する。
【0063】
なお、ここで駐車可能条件が成立する場合には、仮の走行経路RT1がパターン走行部RT1とされ、成立した駐車可能条件に基づいて、後退旋回部RT2および最終後退部RT3が決定され、走行経路RT1〜RT3全体が生成される。一方、駐車可能条件が成立しない場合には、別の仮の走行経路RT1が生成され、再度、駐車可能条件が成立しているかが判定される。仮の走行経路RT1の生成と、駐車可能条件の判定とは、駐車可能条件が成立するか、又は、予め定められている経路パターンPT1〜PT10の組み合わせが全て生成されるまで、繰り返される。
【0064】
ここで、図5(a),(b)を参照して、走行経路RT1〜RT3全体が生成されるまでの流れと、駐車可能条件とについて説明する。図5(a)は、走行経路RT1〜RT3上の経路点Pの一例を説明するための模式図であり、図5(b)は、駐車可能条件を説明するための模式図である。図5(a)では、経路点P0〜P6までの走行経路が、パターン走行部RT1に対応し、経路点P6〜P7までの走行経路が、後退旋回部RT2に対応し、経路点P7〜P8までの走行経路が、最終後退部RT3に対応している。
【0065】
本実施形態では、走行経路RT1〜RT3全体の生成が試みられる場合、まず、走行経路RT1の生成が試みられる。例えば、図5(a)に示すように、車両1の出発地点である経路点P0では、点線および実線で示した10通りの仮の走行経路RT1が一つずつ順番に生成される。
【0066】
より具体的には、仮の走行経路RT1の生成が開始される以前に、まず、車両1の現在の車両位置P0と、目標とする駐車位置P8と、車両1の車両方位θとの3つの条件、または、車両1の現在の操舵角δに基づいて、10の経路パターンPT1〜PT10に優先順位が設定される。尚、優先順位の詳細については後述するが、この優先順位は、走行経路RT1を生成する場合に、距離の短い走行経路RT1や、搭乗者が想定する可能性の高い走行経路RT1や、車両1が走行開始時にスムーズに走行できる走行経路RT1を優先的に生成するためのものである。
【0067】
そして、優先順位の高いものから順に一つずつ経路パターンPT1〜PT10が選択され、経路パターンPT1〜PT10が一つ選択される度に、その1個の経路パターンPT1〜PT10に対応する経路であって、経路点P0を始点とする仮の走行経路RT1が生成される。
【0068】
本実施形態では、仮の走行経路RT1が生成されると、その度に、仮の走行経路RT1の終端に対応する経路点Pにおいて、駐車可能条件が成立しているかが判定され(図9のS34参照)、駐車可能条件が成立していなければ、別の仮の走行経路RT1が生成される。
【0069】
そのため、経路点P0では、優先順位の高い経路パターンPT1〜PT10の順に、点線および実線で示した10通りの仮の走行経路RT1が一つずつ順番に生成され、各走行経路RT1が生成される度に、その終端となる経路点P1において、駐車可能条件が成立しているかが判定される。
【0070】
ここで、駐車可能条件が成立していると判定されると、仮の走行経路RT1が、車両1の走行経路RT1とされて、走行経路RT1〜RT3全体が生成され、そこで仮の走行経路RT1の生成が終了する。一方、全ての経路パターンPT1〜PT10が選択され、生成された何れの仮の走行経路RT1において駐車可能条件が成立しなければ、次に、組み合わせる経路パターンPT1〜PT10の数が1つ増やされ、経路パターンPT1〜PT10を2個組み合わせた仮の走行経路RT1が一つずつ順番に生成される。
【0071】
具体的には、先ほど生成した10の走行経路RT1毎に、その終端から10通りの方向に走行経路を延長するように、10通りの仮の走行経路RT1が一つずつ順番に生成される。但し、本実施形態では、組み合わせる経路パターンPT1〜PT10の数が一つ増やされる度に、10の経路パターンPT1〜PT10に優先順位が設定される。そして、仮の走行経路RT1が生成される場合には、優先順位の高い経路パターンPT1〜PT10の順に、10通りの方向に走行経路を延長するように、10通りの仮の走行経路RT1が一つずつ順番に生成され、それぞれ駐車可能条件が成立しているかが判定される。
【0072】
尚、組み合わせる経路パターンPT1〜PT10の数が一つ増やされる場合は、今回増やす経路パターンPT1〜PT10の直前に並ぶ経路パターンPT1〜PT10の種別に基づいて、優先順位が設定される。この優先順位は、走行経路RT1を生成する場合に、車両1の操舵角δの変化が少ない走行経路RT1を優先的に生成するためのものである。
【0073】
そして、仮の走行経路RT1を全通り生成しても、駐車可能条件が成立しなければ、更に、経路パターンPT1〜PT10を3つ組み合わせた仮の走行経路RT1を生成するというように、組み合わせる経路パターンPT1〜PT10の数が一つずつ増やされながら仮の走行経路RT1が繰り返し生成される。この仮の走行経路RT1の生成は、駐車可能条件が成立するか、又は、組み合わせる経路パターンPT1〜PT10の数が所定数に達するまで、繰り返される。
【0074】
上述したように、別の仮の走行経路RT1の生成と、駐車可能条件の成立の判定とが繰り返される。図5(a)の例では、経路点P0〜P6までの走行経路が生成され、経路点P6において、駐車可能条件が成立した状態を示している。
【0075】
この駐車可能条件は、2つの条件から構成されており、1つ目の条件は、仮の走行経路RT1の終端に対応する経路点Pから車両1を同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
【0076】
ここで、図5(b)を参照して、駐車可能条件が成立する経路点Pおよび車両方位θについて説明する。上述したとおり、駐車可能条件における1つ目の条件は、車両1を経路点Pから同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
【0077】
図5(b)は、駐車可能条件を説明するための模式図であり、経路点Pv0(xv0,yv0)は、駐車可能条件が成立しているかを判定する車両1の車両位置を示し、経路点PVn(xvn,yvn)は、運転者により設定された駐車位置を示す。また、経路点Pv0における車両1の車両方位をθvと示し、経路点Pvnにおける車両1の車両方位をθpと示す。
【0078】
経路点Pv0から経路点Pvnへ向けて引いた直線と、x軸(図5(a)参照)とのなす角度をθとした場合、その角度θは、
θ=tan−1((yv0−yvn)/(xv0−xvn))
により算出できる。よって、経路点Pv0から経路点Pvnまでのx軸(図5(a)参照)に平行な距離をPxとし、経路点Pv0から経路点Pvnまでのy軸(図5(a)参照)に平行な距離を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)|
により算出できる。
【0079】
また、車両1の旋回中心Kからy軸に向けて垂直に引いた直線と、車両1の旋回中心Kから車両1の経路点PV0に向けて引いた直線とのなす角度をθvpとした場合、その角度θvpは、
θvp=θv0−θvn
により算出できる。よって、これらの式から、車両1の旋回半径Rpを次の式で算出できる。
【0080】
Rp=Px/(1−cos(θVp))
なお、この旋回半径Rpが車両1の最小旋回半径以上となる場合に、上述した駐車可能条件の1つ目の条件が成立する。つまり、この式が、駐車可能条件における1つ目の条件である。
【0081】
そして、経路点Pv0から車両1の旋回中心Kまでのy軸に平行な距離をPryとした場合、距離Pryは、
Pry=Rp・sin(θvp)
により算出できる。ここで、駐車スペースの入り口から経路点Pvnまでのy軸に平行な距離をPLとすると、
Py−PL>Pry
が成立している場合にのみ、車両1を後退直進させて駐車スペースに進入させることができる。つまり、この式が、駐車可能条件における2つ目の条件である。
【0082】
走行制御装置100は、仮の走行経路RT1の終端に対応する経路点Pにおいて、上述した駐車可能条件における2つの条件が成立していれば、仮の走行経路RT1をパターン走行部RT1とし、そして、後退旋回部RT2と、最終後退部RT3とを決定し、走行経路RT1〜RT3全体を生成する。
【0083】
なお、後退旋回部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とになる。
【0084】
次に、図6を参照して、走行制御装置100の詳細構成について説明する。図6は、走行制御装置100の電気的構成を示したブロック図である。走行制御装置100は、CPU91、フラッシュメモリ92及びRAM93を備え、それらがバスライン94を介して入出力ポート95に接続されている。また、入出力ポート95には、車輪駆動装置3、操舵駆動装置5、ステアリングセンサ装置21、ジャイロセンサ装置22、車輪回転センサ23、第1から第3までの各距離センサ24a〜24c、自動駐車スイッチ25及びその他の入出力装置99などが接続されている。
【0085】
CPU91は、バスライン94によって接続された各部を制御する演算装置であり、フラッシュメモリ92は、CPU91によって実行される制御プログラムや固定値データ等を記憶するための書き換え不能な不揮発性のメモリである。なお、後述する図12のフローチャートに示す自動駐車処理、図13のフローチャートに示す点経路第1生成処理、図15のフローチャートに示す点経路第2生成処理、図16のフローチャートに示すパターン走行部制御点生成処理、図18のフローチャートに示す後退旋回部制御点生成処理、図20のフローチャートに示す最終後退部制御点生成処理を実行する各プログラムは、フラッシュメモリ92に格納されている。
【0086】
また、フラッシュメモリ92には、経路パターンメモリ92aと、シチュエーション判定テーブルメモリ92bと、経路パターン優先順位テーブルメモリ92cとが設けられている。経路パターンメモリ92aは、上述した10種類の各経路パターンPT1〜PT10の形状や特性などを示すデータが格納されている。例えば、走行経路の長さや、走行経路を走行する場合の車両1の旋回半径Rや、車両1を前進させるものか後退させるものかや、車両1を直進させるものか旋回させるものかなどを示すデータが、10種類の経路パターンPT1〜PT10毎に格納されている。
【0087】
シチュエーション判定テーブルメモリ92bは、シチュエーション判定テーブルが格納されているメモリである。シチュエーション判定テーブルは、仮の走行経路RT1の生成が開始される以前に、10の経路パターンPT1〜PT10に優先順位を設定するためのテーブルである。このシチュエーション判定テーブルは、走行制御装置100において仮の走行経路RT1の生成が開始される以前に、CPU91により参照される。
【0088】
ここで、図7および図8を参照して、シチュエーション判定テーブルについて説明する。尚、車両1の現在の車両位置を(xv、yv)とし、目標とする駐車位置のうち、x軸上の最小値をx1、x軸上の最大値をx2、y軸上の最小値をy1、y軸上の最大値をy2として説明する(図7(c)参照)。
【0089】
図7(a)は、シチュエーション判定テーブルの一例を示す模式図であり、図7(b)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、図7(c)は、図7(b)に示すシチュエーション判定テーブルの内容を説明するための模式図である。また、図8(a)は、シチュエーション判定テーブルの内容の一例を示す模式図であり、図8(b)は、図8(a)に示すシチュエーション判定テーブルの内容を説明するための模式図である。
【0090】
図7(a)に示すように、シチュエーション判定テーブルでは、車両1の車両位置(xv,yv)と、目標とする駐車位置によって決まるx1,x2,y1,y2と、車両1の車両方位θvとの3つの条件に応じて、10の経路パターンPT1〜PT10の優先順位が設定されている。
【0091】
例えば、目標とする駐車位置に対し左上のエリアに車両1が存在しており、即ち、「(xv≦x1)および(yv≧y1)」という条件を満たし、且つ、車両方位θvが「0≦θv<45」という条件を満たす場合の優先順位としては、図7(b)に示す優先順位が設定されている。
【0092】
具体的には、10の経路パターンPT1〜PT10のうち、経路パターンPT7が優先順位1位に設定され、経路パターンPT3が優先順位2位に設定されている。また、経路パターンPT1が優先順位3位、経路パターンPT4が優先順位4位、・・・と、以後同様に設定されている。
【0093】
この優先順位は、走行経路RT1〜RT3全体を生成する場合に、距離の短い走行経路RT1〜RT3や、搭乗者が想定する可能性の高い走行経路RT1〜RT3を優先的に生成するためのものである。目標とする駐車位置に対し左上のエリアに車両1が存在しており、且つ、車両方位θvが「0≦θv<45」という条件を満たす場合には、図7(c)に示すように、駐車可能条件の成立する可能性が高くなるように、優先順位が設定される。
【0094】
この条件の場合は、車両1を前方左旋回させる方が、車両1を他方向へ進行させるよりも、目標とする駐車位置に対して後退旋回が行い易くなると共に、車両方位θvがより90度に近づくので、駐車可能条件の成立する可能性が高くなる。また、車両1を前方直進や前方右旋回させる方が、車両1を他方向へ後退させるよりも、目標とする駐車位置に近づくので、走行経路RT1〜RT3が短くなる可能性が高い。また、車両1を前方左旋回させるという経路は、搭乗者が想定する可能性の高い経路である。
【0095】
また、例えば、目標とする駐車位置に対し左上のエリアに車両1が存在しており、即ち、「(xv≦x1)および(yv≧y1)」という条件を満たし、且つ、車両方位θvが「90≦θv<135」という条件を満たす場合の優先順位としては、図8(a)に示す優先順位が設定されている。
【0096】
具体的には、10の経路パターンPT1〜PT10のうち、経路パターンPT4が優先順位1位に設定されており、経路パターンPT1が優先順位2位に設定されている。また、経路パターンPT3が優先順位3位、経路パターンPT7が優先順位4位、・・・と、以後同様に設定されている。
【0097】
この優先順位も、走行経路RT1〜RT3を生成する場合に、距離の短い走行経路RT1〜RT3や、搭乗者が想定する可能性の高い走行経路RT1〜RT3を優先的に生成させるためのものである。目標とする駐車位置に対し左上のエリアに車両1が存在しており、且つ、車両方位θvが「90≦θv<135」の場合にも、図8(b)に示すように、駐車可能条件の成立する可能性が高くなるように、優先順位が設定される。
【0098】
この条件の場合は、車両1を前方に緩やかに(即ち、最小旋回半径の2倍で)右旋回させる方が、車両1を他方向へ進行させるよりも、目標とする駐車位置に対して後退旋回が行い易くなると共に、車両方位θvがより90度に近づくので、駐車可能条件の成立する可能性が高くなる。また、車両1を前方直進や前方左旋回や、前方にきつい角度で(即ち、最小旋回半径で)右旋回させる方が、車両1を他方向へ後退させるよりも、目標とする駐車位置に対して後退旋回が行い易い位置に車両1を移動させることができるので、切り返しを抑制でき、走行経路RT1〜RT3が長くなることを抑制できる。また、車両1を前方に緩やかに(即ち、最小旋回半径の2倍で)右旋回させるという経路は、搭乗者が想定する可能性の高い経路である。
【0099】
以上、図7および図8を参照して、シチュエーション判定テーブルにおいて設定されている2つの優先順位の例について説明したが、これ以外の場合にも、車両1の車両位置(xv,yv)と、目標とする駐車位置によって決まるx1,x2,y1,y2と、車両1の車両方位θvとの3つ条件に応じて、10の経路パターンPT1〜PT10の優先順位が予め設定されている。尚、その他の優先順位の説明については、同様な説明となるため省略する。
【0100】
ここで、図6の説明に戻る。経路パターン優先順位テーブルメモリ92cは、経路パターン優先順位テーブルが格納されているメモリである。上述したシチュエーション判定テーブルは、仮の走行経路RT1の生成が開始される以前に、10の経路パターンPT1〜PT10に優先順位を設定するためのテーブルであったが、経路パターン優先順位テーブルは、仮の走行経路RT1の生成中に、10の経路パターンPT1〜PT10に優先順位を設定するためのテーブルである。
【0101】
この経路パターン優先順位テーブルは、走行制御装置100において経路パターンPT1〜PT10の組み合わせを生成する場合に、組み合わせる経路パターンPT1〜PT10の数が一つ増える度に、CPU91により参照される。
【0102】
ここで、図9を参照して、経路パターン優先順位テーブルについて説明する。図9は、経路パターン優先順位テーブルの内容の一例を示す模式図である。経路パターン優先順位テーブルでは、直近に並ぶ経路パターンPT1〜PT10の種別毎に、10経路パターンPT1〜PT10の優先順位が設定されている。尚、直近に並ぶ経路パターンPT1〜PT10とは、経路パターンPT1〜PT10の組み合わせにおいて、今回増やす経路パターンPT1〜PT10の直前に並ぶ経路パターンPT1〜PT10のことである。
【0103】
これらの優先順位は、走行経路RT1を生成する場合に、直近に並ぶ経路パターンPT1〜PT10に対して、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10を優先的に組み合わせるためのものであり、車両1がスムーズに走行できる走行経路RT1を優先的に生成するためのものである。車両1の操舵角δの変化が小さい経路パターンPT1〜PT10を優先的に組み合わせて、仮の走行経路RT1を生成することで、車両1がスムーズに走行できる走行経路RT1〜RT3を生成できる可能性を高めることができる。
【0104】
例えば、直近に並ぶ経路パターンPT1〜PT10の種別が、経路パターンPT1の場合の優先順位は、図9に示すテーブルの1段目に示すように、10の経路パターンPT1〜PT10のうち、経路パターンPT1が優先順位1位に設定されており、経路パターンPT2が優先順位2位に設定されている。また、経路パターンPT3が優先順位3位、経路パターンPT4が優先順位4位、・・・と、以後同様に設定されている。
【0105】
上述したように(図3参照)、経路パターンPT1は、車両1を前方直進させるための走行経路であるから、経路パターンPT1に対し、車両1の操舵角δの変化が最も小さい走行経路としては、車両1を前方直進させる経路パターンPT1と、車両1を後退直進させる経路パターンPT2との2つが該当する。本実施形態では、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10が複数存在する場合、車両1を前方へ走行させる経路パターンPT1〜PT10を優先するように、優先順位を設定している。
【0106】
よって、ここでは、経路パターンPT1を優先順位1と設定し、経路パターンPT2を優先順位2位と設定している。尚、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10が複数存在する場合、車両1を前方へ走行させるものか、後退させるものかに関わらず、どの経路パターンPT1〜PT10を優先させるかは任意に決めれば良い。
【0107】
そして、経路パターンPT1,PT2を除き、経路パターンPT1に対して、車両1の操舵角δの変化が小さい走行経路としては、車両1を最小旋回半径の2倍で前方左旋回させる経路パターンPT3と、車両1を最小旋回半径の2倍で前方右旋回させる経路パターンPT4と、車両1を最小旋回半径の2倍で後退左旋回させる経路パターンPT5と、車両1を最小旋回半径の2倍で後退左旋回させる経路パターンPT6との4つが該当する。
【0108】
この4つの経路パターンPT3〜PT6のうち、車両1を前方へ走行させるものは、経路パターンPT3,4の2つ存在するが、本実施形態では、このように車両1を前方または後方へ走行させる経路パターンPT1〜PT10が複数存在する場合、左旋回するものを優先するように、優先順位を設定している。よって、ここでは、経路パターンPT3を優先順位3位とし、経路パターンPT4を優先順位4位とし、経路パターンPT5を優先順位5位とし、経路パターンPT6を優先順位6位としている。以後同様に、残りの経路パターンPT7〜PT10についても、優先順位が設定されている。
【0109】
尚、車両1を前方または後方へ走行させる経路パターンPT1〜PT10が複数存在する場合、車両1を左旋回させるものか、右旋回させるものかに関わらず、どの経路パターンPT1〜PT10を優先させるかは任意に決めれば良い。
【0110】
また、例えば、直近に並ぶ経路パターンPT1〜PT10の種別が、経路パターンPT3の場合の優先順位は、図9に示すテーブルの3段目に示すように、10の経路パターンPT1〜PT10のうち、経路パターンPT3が優先順位1位に設定されており、経路パターンPT5が優先順位2位に設定されている。また、経路パターンPT7が優先順位3位、経路パターンPT9が優先順位4位、・・・と、以後同様に設定されている。尚、直近に並ぶ経路パターンPT1〜PT10の種別が、他の種別である場合の説明については、同様な説明となるため省略する。
【0111】
ここで、図6の説明に戻る。RAM93は、書き換え可能な揮発性のメモリであり、CPU91によって実行される制御プログラムの実行時に各種のデータを一時的に記憶するためのメモリである。RAM93には、点経路パターンメモリ93aと、点経路メモリ93bと、走行制御点メモリ93cと、判定済み順列メモリ93dとが設けられている。
【0112】
点経路パターンメモリ93aは、パターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせ(以後、経路パターン番号「PT1〜PT10」の順列と称す)が記憶されるメモリである。点経路パターンメモリ93aは、後述する自動駐車処理(図12参照)が実行された場合に、CPU91によりクリアされる。そして、現在の車両位置から目標とする駐車位置までの走行経路RT1〜RT3全体がCPU91により生成される場合に、そのパターン走行部RT1を示す経路パターン番号「PT1〜PT10」の順列が記憶される。
【0113】
この点経路パターンメモリ93aに記憶される経路パターン番号「PT1〜PT10」の順列は、走行経路RT1〜RT3上の各経路点Pにおいて、車両1が前進しているか後退しているかの状態を取得する場合や、切り返しの有無の状態を取得する場合に参照される(図16のS89、図18のS110、図20のS129参照)。また、パターン走行部RT1における経路点Pの位置を算出する場合にも参照される(図4参照)。
【0114】
点経路メモリ93bは、走行経路RT1〜RT3を示す各経路点Pの経路点情報が記憶されるメモリである。上述したように、経路点情報は、経路点Pにおける車両1の車両位置と、経路点Pにおける車両1の車両方位θにより構成されている。また、上述したように、走行経路RT1〜RT3のうち、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。また、後退旋回部RT2および最終後退部RT3では、各走行経路RT2,RT3の始端および終端を、経路点Pとしている。
【0115】
CPU91は、走行経路RT1〜RT3全体を生成した場合に、パターン走行部RT1における経路点Pの経路点情報と、後退旋回部RT2における経路点Pの経路点情報と、最終後退部RT3における経路点Pの経路点情報とをそれぞれ点経路メモリ93bに記憶する(図13のS50、図15の図78参照)。この点経路メモリ93bに記憶されている各経路点Pの経路点情報は、走行制御点Qを生成するために参照される。
【0116】
走行制御点メモリ93cは、走行経路RT1〜RT3に対して生成される点である各走行制御点Qの車両設定情報が記憶されるメモリである。上述したように、走行制御点Qは、走行制御装置100が車両1を走行経路RT1〜RT3に沿って自律走行させる場合に、進行方向などの車両1の走行状態を制御するための点である。
【0117】
本実施形態では、走行経路RT1〜RT3に対して走行制御点Qが生成される場合、現在の車両位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qが生成される(図12のS11,S12,S13参照)。なお、経路点P0(車両1の出発位置)を除く各経路点P上には、必ず走行制御点Qが生成される。そして、各走行制御点Qごとに、車両設定情報が生成されると共に、その走行制御点Qを識別するためのID番号が設定され、生成された走行制御点Qの車両設定情報と、設定された走行制御点QのID番号とが関連づけられて、この走行制御点メモリ93cにそれぞれ記憶される。
【0118】
ここで、図10を参照して、走行制御点メモリ93cの内容の一例について説明する。図10は、走行制御点メモリ93cの内容の一例を示す模式図である。図10に示すように、走行制御点メモリ93cには、各走行制御点Qの車両設定情報を示すテーブルが記憶される。このテーブルは、各走行制御点Qに対応する車両設定情報が、その走行制御点Qに対応するID番号に関連づけられている状態を示している。また、このテーブルでは、各車両設定情報がID番号順に並べられている。
【0119】
各走行制御点Qの車両設定情報は、走行制御点Qにおける車両1の車両位置と、走行制御点Qにおける車両1の車両方位と、走行制御点Qにおける車両1の操舵角δと、走行制御点Qにおける進行方向フラグと、走行制御点Qにおける切り返し判定フラグとにより構成される。そして、これらの各走行制御点Qの車両設定情報には、それぞれID番号が関連づけられている。尚、テーブルにおけるID番号の最大値は、最大インデックス番号IDmaxとして、RAM93の所定領域に記憶されている。
【0120】
車両位置と、車両方位と、操舵角δと、ID番号とについては上述したので、その説明を省略する。進行方向フラグは、走行制御点Qにおいて車両1が前進するか、後退するかを示すフラグであり、走行制御点Qにおいて車両1が前進する場合には「1」に設定される一方、車両1が後退する場合には「−1」に設定される。切り返し判定フラグは、走行制御点Qにおいて車両1が前進または後退を切り替えるかを示すフラグであり、走行制御点Qにおいて車両1が前進または後退を維持し走行する場合には「0」に設定される一方、車両1が前進を後退に切り替える場合や、車両1が後退を前進に切り替える場合には「1」に設定される。
【0121】
CPU91は、走行経路RT1〜RT3を車両1が自律走行している場合、所定間隔(例えば、50ms)ごとに、車両1の現在の車両位置に最も近い走行制御点Qに基づいて車両1の走行状態を設定し、車両1が次に通過すべき走行制御点Qへ向かうように車両1を自律走行させる。
【0122】
ここで、図6の説明に戻る。判定済み順列メモリ93dは、仮の走行経路RT1を生成するために作成される経路パターン番号「PT1〜PT10」の順列を記憶するためのメモリである。判定済み判定メモリ93dには、経路パターン番号「PT1〜PT10」の順列が生成される度に、その生成された順列が、その生成順に記憶される。
【0123】
詳細については後述するが、本実施形態では、仮の走行経路RT1が生成される場合、まず、経路パターンPT1〜PT10が優先順位の高い順に一つずつ特定され、その特定された1個の経路パターンPT1〜PT10のパターン番号「PT1〜PT10」で構成される順列(1個でも順列とみなす)が順番に生成され、その順列に対応する仮の走行経路RT1が順番に生成される。
【0124】
そして、仮の走行経路RT1が生成される度に、駐車可能条件が成立しているかが判定され(図9のS34参照)、生成された何れの仮の走行経路RT1において、駐車可能条件が成立していなければ、次に、2個の経路パターン番号「PT1〜PT10」で構成される経路パターン番号「PT1〜PT10」の順列が順番に生成され、その順列に対応する仮の走行経路RT1が順番に生成される。
【0125】
以後同様に、仮の走行経路RT1が生成される度に、駐車可能条件が成立しているかが判定され(図9のS34参照)、生成された全ての仮の走行経路RT1において、駐車可能条件が成立しない場合は、更に、3個の経路パターン番号「PT1〜PT10」で構成される経路パターン番号「PT1〜PT10」の順列を順番に生成するというように、組み合わせる経路パターン番号「PT1〜PT10」の数を一つずつ増やしながら仮の走行経路RT1が順番に生成される。
【0126】
この判定済み順列メモリ93dは、2個以上の経路パターン番号「PT1〜PT10」で構成される順列を生成するために、CPU91により参照される。詳細について後述するが、CPU91は、n個の経路パターン番号「PT1〜PT10」で構成される順列を生成する場合、判定済み順列メモリ93dから、(n−1)個の経路パターン番号「PT1〜PT10」で構成される順列を、記憶された順に一つずつ特定する。
【0127】
そして、順列が特定される度に、その特定された順列に、10の経路パターン番号「PT1〜PT10」を個別に追加して、10通りの新たな順列を生成する。尚、本実施形態では、10の経路パターン番号「PT1〜PT10」を個別に追加する場合にも、経路パターンPT1〜PT10を優先順位の高い順に一つずつ特定し、その特定された1個の経路パターンPT1〜PT10のパターン番号「PT1〜PT10」から順番に追加する。また、この判定済み順列メモリ93dは、後述する自動駐車処理(図12参照)が実行された場合に、CPU91によりクリアされる。
【0128】
次に、図12〜図21までのフローチャートと、模式図とを参照して、車両1に搭載された走行制御装置100のCPU91により実行される自動駐車処理について説明する。図12は、走行制御装置100により実行される自動駐車処理を示すフローチャートである。自動駐車処理は、車両1を現在位置から運転者により設定される駐車位置まで自律走行させて、その駐車位置に車両1を停車させるものであり、運転者により自動駐車スイッチ25が押下された場合に実行される。
【0129】
自動駐車処理では、まず、RAM93の点経路パターンメモリ93a、及び、判定済み順列メモリ93dをクリアする(S1)。次に、運転者により設定される駐車位置を最終目的地として取得し、その最終目的地に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1の前後軸上をy軸とし、x軸およびy軸の交点を原点Oに決定する(S2)。例えば、車両1の車内に設けられているタッチパネル(図示せず)上に、車両1の周囲画像を表示し、運転者に駐車位置を入力するように報知する。そして、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を算出して、原点Oとする。
【0130】
次に、車両1の現在地点を出発地点として(S3)、点経路第1生成処理を実行する(S4)。ここで、図13を参照して、車両1に搭載された走行制御装置100のCPU91により実行される点経路第1生成処理について説明する。図13は、走行制御装置100により実行される点経路第1生成処理を示すフローチャートである。
【0131】
点経路第1生成処理は、10の経路パターンPT1〜PT10を一つずつ順番に特定し、その特定された1個の経路パターンPT1〜PT10だけで仮の走行経路RT1を生成するための処理である。また、生成した仮の走行経路RT1の終端において駐車可能条件が成立している場合に、出発地点から出発最終目的地までの走行経路RT1〜RT3全体を生成する。
【0132】
点経路第1生成処理では、変数aに0を設定して、変数aの初期設定を行う(S31)。尚、変数aには、パターン走行部RT1を構成する経路パターンPT1〜PT10の合計数が設定される。そして、出発地点において駐車可能条件が成立しているかを判定し(S32)、S32の判定が肯定される場合には(S32:Yes)、S48の処理へ移行する。一方、S32の判定が否定される場合には(S32:No)、変数aに1を設定する(S33)。
【0133】
次に、車両1の現在の車両位置(xv,yv)と、現在の車両方位θvと、最終目的地によって決まる各位置x1,x2,y1,y2とを判定パラメータとして取得し(S34)、その取得した判定パラメータと、シチュエーション判定テーブルメモリ92bに格納されているシチュエーション判定テーブルとを比較する(S35)。
【0134】
そして、S35の処理による比較の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する優先順位の設定があるかを判定する(S36)。具体的には、シチュエーション判定テーブルにおいて、車両1の車両位置(xv,yv)と、目標とする駐車位置と、車両1の車両方位θvとの3つの条件が満たされたマス目を特定し、そのマス目について、10の経路パターンPT1〜PT10の優先順位が設定されているか否かを判定する。
【0135】
S36の判定が肯定される場合には(S36:Yes)、シチュエーション判定テーブルの中から、判定パラメータに対応する情報を取得し(S37)、取得した情報に基づいて、10の経路パターンPT1〜PT10に優先順位を設定して(S38)、S42の処理へ移行する。
【0136】
例えば、「(xv≦x1)および(yv≧y1)」という条件を満たしており、且つ、車両方位θvが「0≦θv<45」という条件を満たす場合には、シチュエーション判定テーブル(図7(a)参照)の中から、図7(b)に示す優先順位の情報が取得されて、10の経路パターンPT1〜PT10にそれぞれ優先順位が設定される。
【0137】
一方、S36の判定が否定される場合(S36:No)、即ち、3つの条件が満たされるマス目が無い場合や、3つの条件を満たすマス目を特定できたものの、優先順位の設定が無い場合には、車両1の現在の操舵角δvを取得する(S39)。尚、ここでの車両1の現在の操舵角δvとは、出発地点における車両1の操舵角δのことである。
【0138】
次に、S39の処理で取得した車両1の操舵角δvと、経路パターンPT1〜PT10に設定されている車両1の操舵角α1〜α10との差分Δα1〜Δα10を、経路パターンPT1〜PT10毎に算出し(S40)、算出した差分Δα1〜Δα10の小さいものから優先されるように、10の経路パターンPT1〜PT10に優先順位を設定する(S41)。
【0139】
ここで、図14を参照して、10の各経路パターンPT1〜PT10に設定されている車両1の操舵角α1〜α10と、経路パターンPT1〜PT10の優先順位の設定方法とについて説明する。
【0140】
図14は、車両1の現在の操舵角δvに基づいて、10の各経路パターンPT1〜PT10に優先順位を設定する場合の一例を説明するための模式図である。まず、10の各経路パターンPT1〜PT10に設定されている操舵角α1〜α10について説明する。
【0141】
上述したように、本実施形態では、経路パターンPT1〜PT10毎に、断片的な走行経路が設定されており、それぞれの断片的な走行経路においては、車両1が同一の旋回半径Rで走行するように経路が設定されている。車両1の操舵角δは、車両1の旋回半径Rに対し相対的に決まるので、経路パターンPT1〜PT10毎に、車両1を走行させるための操舵角α1〜α10が一意に決まる。そこで、本実施形態では、10の各経路パターンPT1〜PT10に対して、車両1を走行させるための操舵角α1〜α10を予め設定している。
【0142】
例えば、図14に示すように、経路パターンPT1には、車両1を前方直進させるための操舵角としてα1が設定されており、経路パターンPT2には、車両1を後退直進させるための操舵角としてα2が設定されている。
【0143】
同様に、経路パターンPT3には、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を前方左旋回させるための操舵角としてα3が設定され、経路パターンPT4には、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を前方右旋回させるための操舵角としてα4が設定されている。その他の経路パターンPT4〜PT10についても、操舵角α4〜α10がそれぞれ設定されている。
【0144】
次に、経路パターンPT1〜PT10の優先順位の設定方法について説明する。経路パターンPT1〜PT10に優先順位を設定する場合には、まず、車両1の現在の操舵角δvと、経路パターンPT1〜PT10に設定されている操舵角α1〜α10との差分Δα1〜Δα10を、経路パターンPT1〜PT10毎に算出する。
【0145】
具体的には、まず、車両1の現在の操舵角δvと、経路パターンPT1に設定されている操舵角α1との差分Δα1を算出する。続けて、車両1の現在の操舵角δvと、経路パターンPT2に設定されている操舵角α2との差分Δα2を算出し、以後同様に、他の経路パターンPT3〜PT10に設定されている操舵角α3〜α10についても、差分Δα3〜Δα10をそれぞれ算出する。
【0146】
そして、算出した差分Δα1〜Δα10を、絶対値の小さい順に並べる。尚、絶対値が同一となる差分Δα1〜Δα10が複数存在する場合には、車両1の現在の操舵角δvと符号が同一のものを先に並べる。次に、10の経路パターンPT1〜PT10を、絶対値の小さい順に並べた差分Δα1〜Δα10と同じ並び順となるように並べる。例えば、Δα1の絶対値が最も小さい場合には、経路パターンPT1を先頭とし、Δα5の絶対値が2番目に小さい場合には、経路パターンPT5を2番目に並べる。
【0147】
これにより、10の経路パターンPT1〜PT10を、車両1の現在の操舵角δvに対して操舵角δの変化量が小さい順に並べることができる。本実施形態では、操舵角δの変化量が小さい順に並んだ経路パターンPT1〜PT10のうち、先頭に並ぶものを優先順位1位とし、2番目に並ぶものを優先順位2位とし、以下同様に、1番ずつ優先順位を低くしていき、10の経路パターンPT1〜PT10に、1位〜10位までの優先順位を設定している。
【0148】
詳細については後述するが、ここで優先順位が設定された後、S42〜S46の処理が繰り返し実行されると、車両1の現在の操舵角δvに対して操舵角δの変化量が小さい順に、経路パターンPT1〜PT10が一つずつ特定される。そして、経路パターンPT1〜PT10が特定される度に、その1個の経路パターンPT1〜PT10で、仮の走行経路RT1が生成される。よって、車両1の現在の操舵角δvに対して、操舵角δvの変化量の小さい仮の走行経路RT1から優先的に生成できる。よって、車両1が走行開始時にスムーズに走行できる走行経路RT1を優先的に生成できるので、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0149】
ここで、図13の説明に戻る。S38の処理、又は、S41の処理によって、10の経路パターンPT1〜PT10に優先順位が設定されると、次に、10の経路パターンPT1〜PT10を、優先順位の高い順に一つ特定し、その特定した経路パターンPT1〜PT10の経路パターン番号「PT1〜PT10」を取得する(S42)。
【0150】
そして、その取得した経路パターン番号を、経路パターン番号により構成される一つの順列として、判定済み順列メモリ93dに追加し(S43)、次に、取得した経路パターン番号に対応する仮の走行経路RT1を生成し、その到着地点を取得する(S44)。尚、上述したように、本実施形態では、仮の走行経路RT1が生成される場合、仮の走行経路RT1を構成する点のうち、2m間隔の点である経路点Pの位置が、仮の走行経路RT1を示すデータとして生成される。
【0151】
次に、到着地点を示す経路点Pにおいて、駐車可能条件が成立しているかを判定し(S45)、S45の判定が否定される場合には(S45:No)、経路パターンPT1〜PT10に優先順位を設定してから、10の経路パターン番号「PT1〜PT10」を全て取得したかを判定する(S46)。S46の判定が否定される場合には(S46:No)、S42の処理に戻る。
【0152】
例えば、S37の処理において、シチュエーション判定テーブル(図7(a)参照)の中から、図7(b)に示す優先順位の情報が取得され、S38の処理おいて、10の経路パターンPT1〜PT10にそれぞれ優先順位が設定されたとする。この場合に、S42の処理が実行されると、優先順位が1位である経路パターンPT7が特定され、その経路パターン番号「PT7」が取得される。
【0153】
その後、S43の処理により、その経路パターン番号「PT7」が順列として判定済み順列メモリ93dの先頭に記憶され、次に、S44の処理により、経路パターン番号「PT7」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。
【0154】
すると、S45の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S46の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、経路パターン番号「PT7」しか取得していないので、S42の処理に戻り、S42〜S46の処理が繰り返される。
【0155】
ここで再度、S42の処理が実行されると、今回は、優先順位が2位である経路パターンPT3が特定され、その経路パターン番号「PT3」が取得される。そして、S43の処理により、その経路パターン番号「PT3」が順列として判定済み順列メモリ93dに追加される。即ち、判定済み順列メモリ93dには、先頭から順番に「PT7」、「PT3」という順列が記憶される(図11参照)。
【0156】
次に、S44の処理により、経路パターン番号「PT3」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。すると、S45の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S46の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、取得していない経路パターン番号があるので、S42の処理に戻り、S42〜S46の処理が繰り返される。
【0157】
このS42〜S46の処理が繰り返されると、最終的には、判定済み順列メモリ93dに、図7に示す優先順位と同様の順番で、先頭から「PT7」、「PT3」、「PT1」、・・・、「PT6」、「PT10」という順列が記憶される(図11参照)と共に、これらの経路パターン番号の順番に、その経路パターン番号に対応する仮の走行経路RT1が生成される。
【0158】
上述したように、図7に示す優先順位は、走行経路RT1〜RT3全体を生成する場合に、距離の短い走行経路RT1〜RT3や、搭乗者が想定する可能性の高い走行経路RT1〜RT3を優先的に生成するためのものである。よって、S42〜S46の処理を繰り返して、1個の経路パターンPT1〜PT10で、仮の走行経路RT1を生成する場合に、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0159】
そして、S46の判定が肯定される場合は(S46:Yes)、10の経路パターンPT1〜PT10を一つずつ順番に特定し、その特定された1個の経路パターンPT1〜PT10だけで仮の走行経路RT1を生成したが、何れの仮の走行経路RT1においても駐車可能条件が成立しなかった場合である。この場合は、点経路第1生成処理を終了し、自動駐車処理(図12参照)に戻る。
【0160】
S45の判定が肯定される場合には(S45:Yes)、S42の処理で取得した経路パターン番号「PT1〜PT10」を、経路パターン番号により構成される一つの順列として、点経路パターンメモリ93aに記憶する(S47)。尚、本実施形態では、S45の処理において駐車可能条件が成立していると判定されると、駐車可能条件の成立している仮の走行経路RT1が、パターン走行部RT1に決定される。
【0161】
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S48)、最終後退部RT3の経路点Pを決定する(S49)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位)を点経路メモリ93bに記憶して(S50)、この点経路生成処理を終了し、自動駐車処理(図12参照)に戻る。
【0162】
以上の図13に示す点経路第1生成処理により、シチュエーション判定テーブル、又は、車両1の現在の操舵角δvに基づいて、10の経路パターンPT1〜PT10に優先順位を設定できる。シチュエーション判定テーブルにより、10の経路パターンPT1〜PT10に優先順位が設定された場合には、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1を優先的に生成できる。また、車両1の現在の操舵角δvに基づいて、10の経路パターンPT1〜PT10に優先順位が設定された場合には、車両1が走行開始時にスムーズに走行できる仮の走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0163】
上述した点経路第1生成処理は、仮の走行経路RT1のうち、出発地点からの一区間分だけを生成するものである。この仮の走行経路RT1は、後述する点経路第2生成処理により、徐々に延長されていくため、最終的な走行経路RT1の形状は、仮の走行経路RT1のうち、出発地点からの一区間や、出発地点付近の区間の生成に用いられる経路パターンPT1〜PT10により概ね決まる。即ち、最終的な走行経路RT1の形状は、出発地点からの一区間や、出発地点付近の区間の生成に用いられる経路パターンPT1〜PT10の影響を大きく受ける。
【0164】
本実施形態では、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いて、出発地点からの一区間の生成に用いられる経路パターンPT1〜PT10に優先順位を設定している。よって、この優先順位を適切に設定することで、仮の走行経路RT1を延長していく場合に、好適に延長できる可能性を高めることができ、好適な形状の仮の走行経路RT1を優先的に生成することができる。従って、より好適な形状の走行経路RT1〜RT3を優先的に生成できる。
【0165】
ここで、図12の説明に戻る。点経路第1生成処理(S4)が終了したら、次に、S4の処理によって走行経路RT1〜RT3が生成されたかを判定する(S5)。S5の判定が肯定される場合には(S5:Yes)、S9の処理へ移行する。S5の判定が否定される場合は(S5:No)、1個の経路パターンPT1〜PT10だけで、走行経路RT1を生成できなかった場合である。この場合は、点経路第2生成処理を実行する(S6)。
【0166】
ここで、図15を参照して、車両1に搭載された走行制御装置100のCPU91により実行される点経路第2生成処理について説明する。図15は、走行制御装置100により実行される点経路第2生成処理を示すフローチャートである。
【0167】
点経路第2生成処理は、経路パターン番号「PT1〜PT10」を複数組み合わせて、経路パターン番号「PT1〜PT10」の順列を生成し、その順列に対応する仮の走行経路RT1を生成するための処理である。また、生成した仮の走行経路RT1の終端において駐車可能条件が成立している場合に、出発地点から出発最終目的地までの走行経路RT1〜RT3全体を生成する。
【0168】
尚、点経路第2生成処理の開始時には、判定済み順列メモリ93dに、図7(b)に示す優先順位と同様の順番で、先頭から「PT7」、「PT3」、「PT1」、・・・、「PT6」、「PT10」という順列(経路パターン番号)が記憶されているものとして説明する(図11参照)。
【0169】
点経路第2生成処理では、まず、変数aに2を設定し、変数mに6を設定して、変数a,mの初期設定を行う(S61)。尚、変数mは、パターン走行部RT1を構成する経路パターンPT1〜PT10数の最大値を設定するものである。
【0170】
次に、判定済み順列メモリ93dに記憶されている順列の中から、(a−1)個の経路パターン番号「PT1〜PT10」で構成される順列を、追加された順に一つ特定する(S62)。そして、特定した順列における最後尾の経路パターン番号を取得して(S63)、経路パターン優先順位テーブルから、S63の処理で取得した経路パターン番号に対応する優先順位の情報を取得し(S64)、その取得した優先順位の情報に基づいて、10の経路パターンPT1〜PT10に優先順位を設定する(S65)。
【0171】
例えば、点経路第2生成処理が実行開始されると、まず、変数a=2に設定されるため、S62の処理では、判定済み順列メモリ93dに記憶されている順列の中から、1個の経路パターン番号「PT1〜PT10」で構成される順列が、追加された順に一つ特定される。よって、初回には、経路パターン番号「PT7」(経路パターン番号の順列とみなす)が特定される。
【0172】
そして、特定された順列は、経路パターン番号「PT7」のみで構成されているため、S63の処理では、経路パターン番号「PT7」特定される。次に、S64の処理が実行されると、経路パターン優先順位テーブル(図9参照)から、経路パターン番号「PT7」に対応する優先順位の情報が取得される。
【0173】
具体的には、経路パターン優先順位テーブル(図9参照)の7段目から、優先順位の情報として、優先順位1位が経路パターンPT7、優先順位2位が経路パターンPT9、優先順位3位が経路パターンPT3、・・・、優先順位9位が経路パターンPT8、優先順位10位が経路パターンPT10という情報が取得される。
【0174】
そして、S65の処理により、10の経路パターンPT1〜PT10の各優先順位が、S64の処理で取得した優先順位の情報と同一となるように、10の経路パターンPT1〜PT10のそれぞれに優先順位が設定される。
【0175】
S65の処理により優先順位が設定されると、次に、10の経路パターンPT1〜PT10を、優先順位の高い順に一つ特定し、その特定した経路パターンPT1〜PT10の経路パターン番号「PT1〜PT10」を取得する(S66)。そして、S66の処理で取得した一の経路パターン番号を、S62の処理で特定した順列の最後尾に組み合わせて、経路パターン番号の順列を新たに作成し(S67)、その作成した順列を、判定済み順列メモリ93dに追加する(S68)。
【0176】
次に、S67の処理で作成した順列に対応する仮の走行経路RT1を生成し、その到着地点を取得して(S69)、その到着地点を示す経路点Pにおいて、駐車可能条件が成立しているかを判定する(S70)。S70の判定が否定される場合には(S70:No)、経路パターンPT1〜PT10に優先順位を設定してから、10の経路パターン番号「PT1〜PT10」を全て取得したかを判定する(S71)。S71の判定が否定される場合には(S71:No)、S66の処理に戻る。
【0177】
上述したように、S65の処理では、経路パターン優先順位テーブル(図9参照)の7段目と同様に、10の経路パターンPT1〜PT10のそれぞれに優先順位が設定される。そのため、S66の処理が実行されると、まず、優先順位が1位である経路パターンPT7が特定され、その経路パターン番号「PT7」が取得される。
【0178】
その後、S67の処理により、S66の処理で取得した経路パターン番号「PT7」が、S62の処理で特定した順列「PT7」の最後尾に組み合わされて、「PT7−PT7」という順列が新たに作成される。
【0179】
そして、S68の処理により、その作成された順列が、判定済み順列メモリ93dに追加され、次に、S69の処理により、作成した順列「PT7−PT7」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。
【0180】
すると、S70の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S70の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、経路パターン番号「PT7」しか取得していないので、S66の処理に戻り、S66〜S71の処理が繰り返される。
【0181】
ここで再度、S66の処理が実行されると、今回は、優先順位が2位である経路パターンPT9が特定され、その経路パターン番号「PT9」が取得される。そして、S67の処理により、S66の処理で取得した経路パターン番号「PT9」が、S62の処理で特定した順列「PT7」の最後尾に組み合わされて、「PT7−PT9」という順列が新たに作成される。
【0182】
そして、作成された順列「PT7−PT9」が、判定済み順列メモリ93dに追加される。即ち、点経路第2生成処理が実行されると、判定済み順列メモリ93dには、1番目に「PT7−PT7」という順列が、2番目に「PT7−PT9」という順列が追加される(図11参照)。
【0183】
次に、S69の処理により、作成された順列「PT7−PT9」に対応する仮の走行経路RT1が生成され、その仮の走行経路RT1の到着地点が取得される。すると、S70の処理により、その到着地点において駐車可能条件が成立しているかが判定され、駐車可能条件が成立していない場合には、S71の処理により、10の経路パターン番号「PT1〜PT10」を全て取得したかが判定される。ここでは、まだ、取得していない経路パターン番号があるので、S66の処理に戻り、S66〜S71の処理が繰り返される。
【0184】
このS66〜S71の処理が繰り返されると、最終的には、判定済み順列メモリ93dに、「PT7−PT7」、「PT7−PT3」、「PT7−PT3」、・・・、「PT7−PT8」、「PT7−PT10」という順列が追加される(図11参照)。
【0185】
尚、S65の処理で設定された優先順位は、走行経路RT1を生成する場合に、車両1がスムーズに走行できる走行経路RT1を優先的に生成するためのものである。よって、S66〜S71の処理を繰り返して、仮の走行経路RT1を生成する場合に、車両1の操舵角δの変化量が小さい仮の走行経路RT1を優先的に生成できるので、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0186】
S71の判定が肯定される場合には(S71:Yes)、(a−1)個の経路パターン番号で構成される順列を、判定済み順列メモリ93dの中から全て取得したかを判定する(S72)。S72の判定が否定される場合には(S72:No)、S62の処理に戻り、S62〜S72の処理を繰り返す。
【0187】
ここで再度、S62の処理が実行されると、今回は、判定済み順列メモリ93dに記憶されている順列の中から、1個の経路パターン番号「PT1〜PT10」で構成される順列のうち、追加された順が次に早いものが一つ特定される。即ち、2回目には、経路パターン番号「PT3」(経路パターン番号の順列とみなす)が特定される。
【0188】
そして、特定された順列は、経路パターン番号「PT3」のみで構成されているため、S63の処理では、経路パターン番号「PT3」特定される。次に、S64の処理が実行されると、経路パターン優先順位テーブル(図9参照)から、経路パターン番号「PT3」に対応する優先順位の情報が取得される。
【0189】
具体的には、経路パターン優先順位テーブル(図9参照)の3段目から、優先順位の情報として、優先順位1位が経路パターンPT3、優先順位2位が経路パターンPT5、・・・、優先順位10位が経路パターンPT10という情報が取得される。
【0190】
そして、S65の処理により、10の経路パターンPT1〜PT10の各優先順位が、S64の処理で取得した優先順位の情報と同一となるように、10の経路パターンPT1〜PT10のそれぞれに優先順位が設定される。そして、上述したように、S66〜S71の処理が繰り返される。
【0191】
ここで、S66〜S71の処理が繰り返されると、判定済み順列メモリ93dに、「PT3−PT3」、「PT3−PT5」、・・・、「PT3−PT10」という順列が追加される(図11参照)。そして、以後同様に、S72の判定が否定される間、S62〜S72の処理が繰り返される。
【0192】
S72の判定が肯定される場合は(S72:Yes)、a個の経路パターン番号で構成される順列を全て作成し、各順列に対応する仮の走行経路RT1を全て生成したが、何れの仮の走行経路RT1においても駐車可能条件が成立しなかった場合である。
【0193】
この場合は、変数aの値が、変数mの値未満であるかを判定し(S73)、S73の判定が肯定される場合には(S73:Yes)、変数aに1を加算して(S74)、S62の処理に戻る。即ち、組み合わせる経路パターン番号の数を1増やして順列を生成し、仮の走行経路RT1を生成する。例えば、変数aが2の場合には、変数a=3と設定されて、S62の処理に戻る。その結果、次は、3個の経路パターン番号で構成される順列が順番に生成されて、各順列に対応する仮の走行経路RT1が生成される。
【0194】
一方、S73の判定が否定される場合は(S73:No)、1個からm個までの経路パターン番号で構成される順列を全て作成し、各順列に対応する仮の走行経路RT1を全て生成したが、走行経路RT1〜RT3が見つからなかった場合である。この場合は、点経路第2生成処理を終了して、自動駐車処理(図12参照)に戻る。
【0195】
S70の判定が肯定される場合には(S70:Yes)、S67の処理で作成した順列を、点経路パターンメモリ93aに記憶する(S75)。尚、本実施形態では、S70の処理において駐車可能条件が成立していると判定されると、駐車可能条件の成立している仮の走行経路RT1が、パターン走行部RT1に決定される。
【0196】
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S76)、最終後退部RT3の経路点Pを決定する(S77)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位)を点経路メモリ93bに記憶して(S78)、この点経路生成処理を終了し、自動駐車処理(図12参照)に戻る。
【0197】
以上の図15に示す点経路第2生成処理により、経路パターン優先順位テーブルに基づいて、10の経路パターンPT1〜PT10に優先順位を設定できる。経路パターン優先順位テーブルにより、10の経路パターンPT1〜PT10に優先順位が設定された場合には、車両1の操舵角δの変化量が小さい仮の走行経路RT1を優先的に生成できるので、車両1がスムーズに走行できる仮の走行経路RT1を優先的に生成できる。よって、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0198】
また、点経路第2生成処理では、判定済み順列メモリ93dの中から、(a−1)個の経路パターン番号「PT1〜PT10」で構成される順列を、追加された順に一つ特定し、その順列の最後尾に経路パターン番号「PT1〜PT10」を追加して、新たな順列を生成している。
【0199】
上述したように、判定済み順列メモリ93dには、経路パターン番号「PT1〜PT10」の順列が、生成された順に追加されていく。本実施形態では、生成された順が早いものほど、優先度の高い順列であるので、判定済み順列メモリ93dの中から、順列を取得する場合には、優先度の高い順に順列を取得できる。従って、仮の走行経路RT1を繰り返し生成する場合に、優先度の高い順に新たな順列を作成でき、優先すべきものから順に仮の走行経路RT1を生成できる。
【0200】
また、上述したように、点経路第1生成処理(図13参照)では、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いて、仮の走行経路RT1のうち、出発地点からの一区間のみを生成している。一方、その後の区間については、上述した点経路第2生成処理により、経路パターン優先順位テーブルを用いて生成している。
【0201】
よって、仮の走行経路RT1が生成される場合に、シチュエーション判定テーブルと、経路パターン優先順位テーブルとが用いられると、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1が優先的に生成される。加えて、車両1がスムーズに走行できる仮の走行経路RT1が優先的に生成される。従って、距離の短い走行経路RT1や、搭乗者が想定する可能性の高い走行経路RT1であって、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。故に、さらに好適な走行経路RT1〜RT3を優先的に生成できる。
【0202】
一方、仮の走行経路RT1が生成される場合に、車両1の現在の操舵角δと、経路パターン優先テーブルとが用いられると、車両1が走行開始時にスムーズに走行できる仮の走行経路RT1を優先的に生成できる。加えて、車両1がスムーズに走行できる仮の走行経路RT1を優先的に生成できる。従って、車両1が走行開始時にスムーズに走行でき、その後も、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。故に、さらに好適な走行経路RT1〜RT3を優先的に生成できる。
【0203】
また、本実施形態では、点経路第1生成処理(図13参照)においてのみ、即ち、出発地点からの一区間を生成する場合のみ、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いている。これは、シチュエーション判定テーブルが、経路パターン優先順位テーブルよりも複雑に構成されているためであり、シチュエーション判定テーブルを参照して、10の経路パターンPT1〜PT10に優先順位を設定するよりも、経路パターン優先順位テーブルを参照して優先順位を設定した方が、処理が簡単だからである。同様に、車両1の現在の操舵角δvを用いて演算を行い、その結果に基づいて10の経路パターンPT1〜PT10に優先順位を設定するよりも、経路パターン優先順位テーブルを参照して優先順位を設定した方が、処理が簡単だからである。
【0204】
本実施形態では、仮の走行経路RT1を延長される場合、最大10通りの方向へ延長されるので、仮の走行経路RT1が延長される回数が多くなるほど、分岐点の数が増え、更に、様々な方向へ向かって経路が延長されていく。その結果、10の経路パターンPT1〜PT10に優先順位を設定する回数も多くなる。よって、仮の走行経路RT1を延長する場合に、毎回、シチュエーション判定テーブルや、車両1の現在の操舵角δvを用いて、10の経路パターンPT1〜PT10に優先順位を設定すると、CPU91に負担が掛かるおそれがある。
【0205】
しかしながら、初回だけ用いることで、CPU91に掛かる制御的負担を抑制できる。また、上述したように、シチュエーション判定テーブルが用いられた場合には、距離の短くなる可能性が高い仮の走行経路RT1や、搭乗者が想定する可能性の高い仮の走行経路RT1を優先的に生成できる。よって、シチュエーション判定テーブルを、初回だけ用いることで、制御的負担を抑制しつつ、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0206】
また、上述したように、仮の走行経路RT1を生成して、その生成した仮の走行経路RT1ついて駐車可能条件が成立しない場合、その駐車可能条件が成立しなかった仮の走行経路RT1を、以後、扱わないようにするのではなく、逆に、その駐車可能条件が成立しなかった仮の走行経路RT1を用いて、新たな仮の走行経路RT1を生成している。具体的には、仮の走行経路RT1の終端から10通りの方向に走行経路を延長するように、10通りの新たな仮の走行経路RT1を一つずつ順番に生成していく。
【0207】
これにより、経路パターンPT1〜PT10の種類が多くなくても、多種多様な仮の走行経路RT1を生成できると共に、生成する仮の走行経路RT1の数を増やすことができ、仮の走行経路RT1を生成した場合に、駐車可能条件が成立する可能性を高めることができる。よって、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる。
【0208】
一方で、多種多様な仮の走行経路RT1を生成して、生成する仮の走行経路RT1の数を増やすと、車両1の搭乗者の意図に反する仮の走行経路RT1が生成される可能性も高くなる。例えば、切り返しの多い仮の走行経路RT1や、車両1の操舵角δの変化が多い仮の走行経路RT1や、走行距離の長い仮の走行経路RT1などが生成される可能性も高くなる。
【0209】
しかしながら、本実施形態では、上述したように、シチュエーション判定テーブルや、車両1の現在の操舵角δvや、経路パターン優先順位テーブルを用いて、仮の走行経路RT1を生成するように構成している。よって、車両1の搭乗者の意図に反する仮の走行経路RT1が生成される可能性を抑制できる。
【0210】
即ち、仮の走行経路RT1が生成される場合に、シチュエーション判定テーブルと、経路パターン優先順位テーブルとが用いられると、多種多様な仮の走行経路RT1の中から、距離の短い走行経路RT1や、搭乗者が想定する可能性の高い走行経路RT1であって、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。従って、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる上、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0211】
一方、仮の走行経路RT1が生成される場合に、車両1の現在の操舵角δと、経路パターン優先テーブルとが用いられると、多種多様な仮の走行経路RT1の中から、車両1が走行開始時にスムーズに走行でき、その後も、車両1がスムーズに走行できる走行経路RT1を優先的に生成できる。よって、予め用意しておく経路パターンPT1〜PT10の数を抑制しつつ、走行経路RT1〜RT3が生成される可能性を向上させることができる上、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0212】
ここで、図12の説明に戻る。点経路第2生成処理(S6)が終了したら、次に、S6の処理によって走行経路RT1〜RT3が生成されたかを判定する(S7)。S7の判定が否定される場合は(S7:No)、最終目的地までの走行経路が見つからなかった場合なので、最終目的地までの走行経路RT1〜RT3が無いことを運転者に報知して(S8)、自動駐車処理を終了する。
【0213】
一方、S7の判定が肯定される場合には(S7:Yes)、変数である最大インデックス番号IDmaxの初期設定を行う(S9)。そして、後述するS11〜S13の処理を実行して、S4またはS6の処理で生成した走行経路RT1〜RT3に対する走行制御点Qを生成する。
【0214】
具体的には、まず、変数aの値が0より大きいかを判定し(S10)、S10の判定が肯定される場合は(S10:Yes)、パターン走行部RT1が生成されている場合なので、パターン走行部制御点生成処理を実行して(S11)、パターン走行部RT1に対する走行制御点Qを生成する。そして、S12処理へ移行する。
【0215】
一方、S10の判定が否定される場合は(S10:No)、出発地点において駐車可能条件が成立した場合である。この場合は、パターン走行部RT1が存在しないので、S11の処理をスキップして、S12の処理へ移行する。S12の処理では、後退旋回部制御点生成処理を実行して(S12)、後退旋回部RT2に対する走行制御点Qを生成する。その後、最終後退部制御点生成処理を実行して(S13)、最終後退部RT3に対する走行制御点Qを生成する。
【0216】
図2を参照して上述したように、本実施形態では、走行経路RT1〜RT3上のうち、各経路点Pに対応する位置だけでなく、各経路点P間にも仮想的に走行制御点Qを生成している。理想的には、各経路点P間に対応する位置にだけ仮想的に走行制御点Qを生成し、その走行制御点Qに基づいて車両1を自律走行させれば、車両1が走行経路RT1〜RT3上を走行できるが、実際には、路面の状況や、車両1の搭乗者数や荷重などの様々な外乱により、走行経路RT1〜RT3上から車両位置がズレてしまう場合がある。
【0217】
そこで、本実施形態では、各経路点Pに対応する位置に加え、各経路点P間にも仮想的に走行制御点Qを生成し、各走行制御点Qごとに、進行方向などの車両1の走行状態を補正できるようにしている。よって、走行制御装置100が、車両1を自律走行させて走行経路RT1〜RT3上を走行させる場合に、走行経路RT1〜RT3上を車両1がスムーズに走行できるように、車両1の走行状態を制御できる。
【0218】
ここで、図16〜図21を参照して、パターン走行部制御点生成処理(S11)、後退旋回部制御点生成処理(S12)、最終後退部制御点生成処理(S13)について説明する。まず、図16を参照して、パターン走行部制御点生成処理(S11)について説明する。図16は、走行制御装置100により実行されるパターン走行部制御点生成処理を示すフローチャートである。
【0219】
パターン走行部制御点生成処理は、S4またはS6の処理で生成された走行経路RT1〜RT3のうち、パターン走行部RT1に対する走行制御点Qを生成するための処理であり、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成する。パターン走行部RT1では、隣接する経路点P間の走行距離CLが全て2mとなるので、隣接する経路点P間には常に41個の走行制御点Qが必要となるが、このパターン走行部制御点生成処理では、出発地点に近い側の経路点Pに重なる走行制御点は生成せずに、それ以外の40個の走行制御点Qを生成する。
【0220】
より具体的には、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成する。そして、順番に走行制御点Qを生成し、40番目の走行制御点Qが第2経路点Pに重なるようにしている。
【0221】
パターン走行部制御点生成処理では、まず、変数jに0を設定し、変数nに40を設定して、変数j,nの初期設定を行う(S81)。次に、出発地点からj番目の経路点Pを第1経路点Pとし、(j+1)番目の経路点Pを第2経路点Pとする(S82)。例えば、図2に示す走行経路RT1では、経路点PがP0〜P6まで7個設けられている。ここで、変数jが0の場合には、経路点P0を第1経路点Pとし、経路点P1を第2経路点Pとする。
【0222】
次に、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93bから取得し(S83)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93bから取得する(S84)。
【0223】
そして、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S85)。S85の処理では、点経路パターンメモリ93a記憶されている経路パターン番号の順列に基づいて、操舵角δと、旋回中心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へ移動した場合の車両方位の変化量Δθを算出する(S86)。なお、車両方位の変化量Δθを算出する式については後述する。
【0224】
そして、変数iを1に設定して、変数iの初期設定を行う(S87)。次に、第1経路点Pから第2経路点Pまでの経路上に設ける各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S88)。なお、1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
【0225】
ここで、図17を参照して、パターン走行部RT1に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図17は、走行経路RT1〜RT3のうち、パターン走行部RT1に対して生成される走行制御点Qの一例を説明するための模式図であり、隣接している2つの経路点P間を図示したものである。ここでは、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(xvn,yvn)と示している。
【0226】
パターン走行部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
により算出される。
【0227】
図16のS86の処理では、この式により車両方位の変化量Δθを算出する。そして、第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に重なるようにしている。
【0228】
以上の図17を参照して説明した数式を用いることにより、パターン走行部RT1の各経路点P間において、40個の走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、パターン走行部RT1に対応する各走行制御点Qを全て生成できる。
【0229】
本実施形態では、経路パターンPT1〜PT10の組み合わせに基づいて、2m間隔で大まかに経路点Pを生成し走行経路RT1を生成しても、その後、走行経路RT1の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。また、詳細については後述するが、走行経路RT2,RT3についても、走行経路RT2,RT3の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。
【0230】
従って、経路パターンPT1〜PT10に対応する各走行経路の長さCLを短く(例えば、0.05mなど)しておき、詳細に走行経路RT1を生成したり、経路パターンPT1〜PT10のパターンの種類を多数設けて記憶しておく必要が無いので、処理コストを抑制できる。
【0231】
ここで、図16の説明に戻る。そして、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S89)。S89の処理において、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、何番目の走行制御点Qかに関係なく、全て同じ方向(前進または後退)を示す値が取得される。
【0232】
なお、進行方向は、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜RT10に基づいて一意に決まり、点経路パターンメモリ93aの内容に基づいて取得される。より具体的には、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜PT10が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であれば、進行方向として前進を示す値が取得される。一方、車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、進行方向として後退を示す値が取得される。
【0233】
また、切り返しの有無は、第2経路点Pに重なる走行制御点Qを除き、切り返しなしを示す値が取得される。そして、第2経路点Pと重なる走行制御点Qについては、切り返しの有無が、点経路パターンメモリ93aの内容に基づいて取得される。より具体的には、第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の切り返しの有無として、切り返しなしを示す値が取得される。
【0234】
一方、第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の切り返しの有無として、切り返しありを示す値が取得される。
【0235】
S89の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位θ、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93cに記憶する(S90)。
【0236】
上述したように、最大インデックス番号IDmaxは、図12のS9の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけていくことができる。
【0237】
なお、S89の処理において、進行方向として前進を示す値が取得されていれば、S90の処理では、進行方向フラグが「1」に設定され、進行方向として後退を示す値が取得されていれば、進行方向フラグが「−1」に設定される。また、S89の処理において、切り返しの有無として切り返しなしを示す値が取得されていれば、S90の処理では、切り返しフラグが「0」に設定され、切り返しの有無として切り返しありを示す値が取得されていれば、切り返しフラグが「1」に設定される。
【0238】
また、S90の処理において、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する(図10参照)。
【0239】
S90の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S91)。
【0240】
次に、変数iの値が、変数nの値未満であるかを判定し(S92)、S92の判定が肯定される場合には(S92:Yes)、変数iに1を加算して(S93)、S88の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、40個の走行制御点Qを順番に生成する。
【0241】
一方、S92の判定が否定される場合は(S92:No)、第1経路点Pから第2経路点Pの間に、40個の走行制御点Qを設定した場合なので、パターン走行部RT1の走行制御点Qを全て生成したかを判定する(S94)。
【0242】
S94の判定が否定される場合には(S94:No)、変数jに1を加算して(S95)、S82の処理に戻り、次の経路点P間についても、40個の走行制御点Qを生成する。S94の判定が肯定される場合には(S94:Yes)、パターン走行部制御点生成処理を終了して、自動駐車処理(図12参照)に戻る。
【0243】
尚、S90の処理が実行された場合に、パターン走行部RT1における最後の走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶されると、その後、S91の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S92の判定が否定されてS92:Noへ分岐し、更に、S94の判定が否定されてS94:Noへ分岐して、パターン走行部制御点生成処理が終了する。
【0244】
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する後退旋回部制御点生成処理が実行された場合に、後退旋回部RT2の最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
【0245】
次に、図18を参照して、後退旋回部制御点生成処理(S12)について説明する。図18は、走行制御装置100により実行される後退旋回部制御点生成処理を示すフローチャートである。
【0246】
後退旋回部制御点生成処理は、S4またはS6の処理で生成された走行経路RT1〜RT3のうち、後退旋回部RT2に対する走行制御点Qを生成するための処理であり、後退旋回部RT2を示す2つの各経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、後退旋回部RT2は、パターン走行部RT1のように走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
【0247】
尚、後退旋回部制御点生成処理でも、パターン走行部制御点生成処理(図16参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
【0248】
後退旋回部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、後退旋回部RT2を示す2つの各経路点Pを特定する(S101)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P6と、経路点P7とが特定される。
【0249】
次に、特定した2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとする(S102)。そして、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93bから取得し(S103)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93bから取得する(S104)。
【0250】
次に、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S105)。なお、ここでの車両1の旋回中心Kと、車両1の旋回半径Rは、駐車可能条件が成立した場合に算出された旋回中心Kと、旋回半径Rpとである。そして、車両1の旋回半径をRとし、車両1のホイールベースをWLとした場合、車両1の操舵角δは、
δ=tan−1(WL/R)
により算出される。また、車両1が第1経路点Pから第2経路点Pへ移動した場合の車両方位の変化量Δθを算出する(S106)。なお、車両方位の変化量Δθを算出する式については後述する。
【0251】
そして、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S107)。なお、走行制御点Qの数を算出する数式についても後述する。
【0252】
次に、変数iを1に設定して、変数iの初期設定を行う(S108)。そして、第1経路点Pから第2経路点Pまでの走行経路に対して生成する各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S109)。なお、1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、n番目の走行制御点Qは、第2経路点Pに重なるようにしている。
【0253】
ここで、図19を参照して、後退旋回部RT2に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図19は、走行経路RT1〜RT3のうち、後退旋回部RT2に対して生成される走行制御点Qの一例を説明するための模式図であり、後退旋回部RT2を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(0,yvn)と示している。なお、第2経路点Pvnでは、車両1の前後軸がy軸と必ず重なるため、x値が0になると共に車両方位がπ/2となる。
【0254】
後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に、車両1が同一の操舵角δで後退旋回するように走行経路が決定される(図13のS48、図15のS76参照)。よって、後退旋回部RT2が決定された場合には、その旋回中心K(xk,yk)と、旋回半径Rとが確定する。
【0255】
従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位π/2との変化量をΔθとした場合、その変化量Δθは、
Δθ=θv0−π/2
により算出される。図18のS107の処理では、この式により車両方位の変化量Δθを算出する。そして、第1経路点Pv0から第2経路点Pvnまでの走行距離CLは、
CL=R・Δθ
により算出される。
【0256】
故に、第1経路点Pv0から第2経路点Pvnまでの間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=R・Δθ/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図18のS107の処理では、この式により算出される合計数nを、変数nに代入している。
【0257】
そして、第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と重なるようにしている。
【0258】
以上の図19を参照して説明した数式を用いることにより、後退旋回部RT2の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、後退旋回部RT2に対応する各走行制御点Qを全て生成できる。
【0259】
ここで、図18の説明に戻る。次に、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S110)。なお、S110の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。
【0260】
S110の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93cに記憶する(S111)。
【0261】
上述したように、最大インデックス番号IDmaxは、図12のS9の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。また、図12のS10の判定において、S10の判定が肯定されていれば、上述したパターン走行部制御点生成処理(図16参照)が実行された後である。よって、最初にS111の処理が実行される場合には、図16のS91の処理により、最大インデックス番号IDmaxが、後退旋回部RT2の最初のID番号に更新されている。
【0262】
従って、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT2まで通して連続するIDを、各走行制御点Qの車両設定情報に順番に関連づけることができる。
【0263】
一方、図12のS10の処理において、S10の判定が否定されていれば、上述したパターン走行部制御点生成処理(図16参照)がスキップされるので、最大インデックス番号IDmaxは1に初期設定された状態である。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけることができる。
【0264】
なお、ここでは、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
【0265】
S111の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S112)。次に、変数iの値が、変数nの値未満であるかを判定し(S113)、S113の判定が肯定される場合には(S113:Yes)、変数iに1を加算して(S114)、S109の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S113の判定が否定される場合は(S113:No)、n個の走行制御点Qを全て生成した場合なので、後退旋回部制御点生成処理を終了して、自動駐車処理(図12参照)に戻る。
【0266】
尚、S111の処理が実行された場合に、後退旋回部RT2における最後の走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶されると、その後、S112の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S113の判定が否定されてS113:Noへ分岐して、パターン走行部制御点生成処理が終了する。
【0267】
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する最終後退部制御点生成処理が実行された場合に、最終後退部RT3の最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
【0268】
次に、図20を参照して、最終後退部制御点生成処理(S13)について説明する。図20は、走行制御装置100により実行される最終後退部制御点生成処理を示すフローチャートである。
【0269】
最終後退部制御点生成処理は、S4またはS6の処理で生成された走行経路RT1〜RT3のうち、最終後退部RT3に対する走行制御点Qを生成するための処理であり、最終後退部RT3を示す2つの経路点P間に、0.05m間隔で走行制御点Qを生成する。なお、最終後退部RT3は、後退旋回部RT2と同様に走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
【0270】
尚、最終後退部制御点生成処理でも、パターン走行部制御点生成処理(図16参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、最終目的地に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
【0271】
最終後退部制御点生成処理におけるS122〜S125の各処理は、上述した図18の後退旋回部制御点生成処理におけるS102〜S105の各処理と同様な処理であり、最終後退部制御点生成処理におけるS127〜S130の各処理は、上述した図18の後退旋回部制御点生成処理におけるS108〜S111の各処理と同様な処理である。
【0272】
また、最終後退部制御点生成処理におけるS131,S132の各処理は、上述した図18の後退旋回部制御点生成処理におけるS113,S114の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S121,S126,S133)についてのみ詳細に説明する。
【0273】
最終後退部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、最終後退部RT3を示す2つの各経路点Pを特定する(S121)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P7と、経路点P8とが特定される。そして、S122〜S125の各処理を実行し、次に、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S126)。なお、走行制御点Qの数を算出する数式については後述する。
【0274】
そして、S127〜S130の各処理を実行する。なお、最終後退部RT3では、車両1の前後軸がy軸と必ず重なる状態で、車両1が後退直進するため、車両方位が常にπ/2となる。よって、S129の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て0が取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。よって、S130の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。
【0275】
また、上述したように、最大インデックス番号IDmaxは、図12のS9の処理により1に初期設定され、その後、最終目的地に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。最初にS130の処理が実行される場合は、図16のS91の処理や、図18のS112の処理が実行された後なので、最大インデックス番号IDmaxが、最終後退部RT3の最初のID番号に更新されている。
【0276】
よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT3まで通して連続するIDを、各走行制御点Qの車両設定情報に関連づけることができる。
【0277】
なお、S130の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
【0278】
S130の処理が終了したら、次に、S131の処理を実行する。S131の判定が肯定される場合には(S131:Yes)、S132の処理を実行する。そして、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S133)。その後、S128の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S131の判定が否定される場合は(S131:No)、n個の走行制御点Qを全て生成した場合なので、最終後退部制御点生成処理(S13)を終了して、自動駐車処理(図18参照)に戻る。
【0279】
尚、最終後退部制御点生成処理では、S130の処理が実行されて、走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶された後、S131の判定が肯定された場合にだけ、S133の処理が実行され、最大インデックス番号IDmaxが更新される。
【0280】
即ち、次に生成すべき走行制御点Qが存在する場合にだけ、最大インデックス番号IDmaxが更新されるので、最終後退部RT3における最後の走行制御点Qが生成された後には、最大インデックス番号IDmaxは更新されない。よって、最大インデックス番号IDmaxには最後の走行制御点QのID番号が設定される。
【0281】
ここで、図20を参照して、最終後退部RT3に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図20は、走行経路RT1〜RT3のうち、最終後退部RT3に対して生成される走行制御点Qの一例を説明するための模式図であり、最終後退部RT3を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pv0(xv0,yv0)と示し、最終目的地に近い側の経路点Pを第2経路点Pvn(xvn,yvn)と示している。
【0282】
なお、第1経路点Pv0および第2経路点Pvnでは共に、車両1の前後軸がy軸と必ず重なるため、x値が0になり、車両方位がπ/2になり、操舵角δが0になる。
【0283】
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置に、車両1を後退直進させて停車できるように走行経路が決定される(図13のS49、図15のS77参照)。よって、第1経路点Pv0(xv0,yv0)から第2経路点Pvn(xvn,yvn)までの走行距離CLは、
CL=((xv0−xvn)2+(yv0−yvn)2)1/2
により算出される。なお、本実施形態では、xv0およびxvnが共に0なので、「CL=|yv0−yvn|」として算出しても良い。
【0284】
従って、第1経路点Pv0から第2経路点Pvnまで間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=CL/0.05
となる。なお、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図20のS126の処理では、この式により算出される合計数nを、変数nに代入している。
【0285】
そして、第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と重なるようにしている。
【0286】
以上の図20を参照して説明した数式を用いることにより、最終後退部RT3の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、最終後退部RT3に対応する各走行制御点Qを全て生成できる。
【0287】
ここで、図12の説明に戻る。S11〜S13の処理が実行され、各走行経路RT1〜RT3に対する走行制御点Qが生成されたら、次に、運転者により設定された駐車位置に車両1を駐車させることが可能であることを、運転者に報知する(S14)。
【0288】
そして、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示されたか、又は、自律走行による駐車を中止することが運転者により指示されたかを判定し(S15)、自律走行による駐車を中止することが運転者により指示された場合には(S15:中止)、自動駐車処理を終了する。
【0289】
一方、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S15:開始)、出発地点に対応する走行制御点Qを現在地点として(S16)、走行制御点メモリ93cから現在地点の車両設定情報を取得する(S17)。そして、車両1が次に通過する予定の走行制御点Qを目標地点とし(S18)、走行制御点メモリ93cから目標地点の車両設定情報を取得する(S19)。
【0290】
次に、車両1に対して設定されている障害物判定領域E内に、障害物が有るかを判定する(S20)。例えば、障害物判定領域Eは、矩形状の領域であって、車体1を囲むように設定されている。S20の判定が肯定される場合は(S20:Yes)、障害物に衝突する可能性があるので、車両1を停車させ(S21)、障害物を発見したため自律走行を中止したことを、運転者に報知して(S22)、自動駐車処理を終了する。
【0291】
S20の判定が否定される場合には(S20:No)、現在地点の車両設定情報に基づいて車両1を走行させ、車両1を目標地点まで移動させる(S23)。例えば、S23の処理では、ステアリングセンサ装置21により検出される車両1の操舵角δが、車両設定情報の操舵角δと一致するように、操舵駆動装置5を制御し、ステアリングシャフト61を回転させる。また、進行方向フラグが「1」であれば、車両1が前進するように車輪駆動装置3を制御し、進行方向フラグが「−1」であれば、車両1が後退するように車輪駆動装置3を制御する。
【0292】
そして、S23の処理が終了したら、次に、最終目的地に到着したかを判定し(S24)、S24の判定が否定される場合には(S24:No)、目標地点の車両設定情報を現在地点の車両設定情報として(S25)、S18の処理に戻る。そして、車両1を次の目標地点まで走行させる。S24の判定が肯定される場合には(S24:Yes)、車両1を停車させて、最終目的地に到着したことを運転者に報知し(S26)、自動駐車処理を終了する。
【0293】
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【0294】
例えば、上記実施形態の点経路第1生成処理(図13参照)では、車両1の現在の操舵角δvを取得し、その取得した操舵角δvと、経路パターンPT1〜PT10に設定されている車両1の操舵角α1〜α10との差分Δα1〜Δα10を、経路パターンPT1〜PT10毎に算出し、その算出した差分Δα1〜Δα10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定している。これに代えて、車両1の現在の操舵角δvから、10の経路パターンPT1〜PT10の優先順位を決定するためのテーブルを予め作成しておき、車両1の現在の操舵角δvを取得した場合に、そのテーブルに基づいて、10の経路パターンPT1〜PT10に優先順位を設定するように構成しても良い。本実施形態では、車両1の操舵角δが所定の範囲(例えば、約−π/6〜約π/6)で変化するので、例えば、その範囲を複数の区間に分割し、その分割した各区間ごとに、10の経路パターンPT1〜PT10の優先順位を対応付けたテーブルを作成しておく。このように構成しておけば、車両1の現在の操舵角δvを取得した場合に、予め作成しておくテーブルを参照すれば、取得した操舵角δvに対応する優先順位の情報を取得でき、その情報に従って、10の経路パターンPT1〜PT10に優先順位を設定できる。よって、差分Δα1〜Δα10を算出して優先順位を設定する場合よりも、優先順位を簡単に設定できる。
【0295】
また、上記実施形態では、10の各経路パターンPT1〜PT10に、操舵角α1〜α10を設定しているが、操舵角α1〜α10に代えて、ステアリング13の角度β1〜β10を設定しても良い。尚、「ステアリング13の角度β1〜β10」が、特許請求の範囲に記載の「ハンドル角」に対応する。このステアリング13の角度β1〜β10は、操舵角α1〜α10に対し相対的に決まるので、経路パターンPT1〜PT10毎に、車両1を走行させるためのステアリング13の角度β1〜β10が一意に決まる。例えば、このように構成した場合、点経路第1生成処理(図13参照)では、車両1の現在の操舵角δvに代えて、車両1の現在のステアリング13の角度を取得するように構成する。そして、その取得したステアリング13の角度と、経路パターンPT1〜PT10に設定されている車両1の操舵角β1〜β10との差分Δβ1〜Δβ10を、経路パターンPT1〜PT10毎に算出し、その算出した差分Δβ1〜Δβ10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定する。これにより、仮の走行経路RT1を生成する場合に、車両1の現在のステアリング13の角度に対して、その角度の変化量が小さい仮の走行経路RT1から優先的に生成できる。よって、車両1が走行開始時にスムーズに走行できる走行経路RT1を優先的に生成できるので、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0296】
また、上記実施形態の経路パターン優先順位テーブルでは、直近に並ぶ経路パターンPT1〜PT10に対して、車両1の操舵角δの変化が小さい経路パターンPT1〜PT10を優先的に組み合わせることができるように、10の経路パターンPT1〜PT10に優先順位が設定されているが、直近に並ぶ経路パターンPT1〜PT10に対して、車両1のステアリング13の角度の変化が小さい経路パターンPT1〜PT10を優先的に組み合わせることができるように、優先順位を設定しても良い。このように構成することで、車両1のステアリング13の角度の変化が小さい経路パターンPT1〜PT10を優先的に組み合わせて、仮の走行経路RT1を生成することができる。これにより、仮の走行経路RT1を生成する場合に、車両1のステアリング13の角度の変化量が小さい仮の走行経路RT1を優先的に生成できる。よって、車両1がスムーズに走行できる走行経路RT1を優先的に生成できるので、無作為な走行経路RT1〜RT3ではなく、より好適な走行経路RT1〜RT3を優先的に生成できる。
【0297】
また、上記実施形態の点経路第2生成処理(図15参照)では、経路パターン優先順位テーブルを参照し、そのテーブルから、S63の処理で取得された経路パターン番号に対応する優先順位の情報を取得して、10の経路パターンPT1〜PT10に優先順位を設定している。これに代えて、経路パターン優先順位テーブルは使わずに、10の経路パターンPT1〜PT10に優先順位を設定するように構成しても良い。例えば、S63の処理で取得された経路パターン番号から、その番号に対応する経路パターンPT1〜PT10に設定されている操舵角α1〜α10を取得する。そして、その取得した操舵角α1〜α10と、経路パターンPT1〜PT10に設定されている操舵角α1〜α10との差を、経路パターンPT1〜PT10毎に算出して、その算出した差分Δα1〜Δα10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定しても良い。このように構成すれば、経路パターン優先順位テーブルをフラッシュメモリ92に記憶しなくて良いので、記憶容量のより小さいフラッシュメモリ92を利用できコストを抑制できる。尚、上述したように、10の各経路パターンPT1〜PT10に、ステアリング13の角度β1〜β10を設定しておき、S63の処理で取得されたパターン番号から、その番号に対応する経路パターンPT1〜PT10に設定されているステアリング13の角度β1〜β10を取得し、その取得したステアリング13の角度β1〜β10と、経路パターンPT1〜PT10に設定されている車両1のステアリング13の角度β1〜β10との差分Δβ1〜Δβ10を、経路パターンPT1〜PT10毎に算出し、その算出した差分Δβ1〜Δβ10を小さい順に並べ、その並び順に対応するように、10の経路パターンPT1〜PT10に優先順位を設定しても良い。
【0298】
また、上記実施形態では、10の経路パターンPT1〜PT10に優先順位が繰り返し設定されるが、1回目の優先順位が設定される場合にだけ、シチュエーション判定テーブルが参照される。そして、参照の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する情報があれば、その情報に基づいて、10の経路パターンPT1〜PT10に優先順位が設定される。しかしながら、1回目だけでなく、他の回(毎回、又は、所定の回)についても、シチュエーション判定テーブルを参照するように構成しても良い。そして、参照の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する情報があれば、その情報に基づいて、10の経路パターンPT1〜PT10に優先順位を設定しても良い。尚、他の回において、シチュエーション判定テーブルの中に、判定パラメータに対応する情報がなければ、経路パターン優先順位テーブルを参照し、そのテーブルから、S63の処理で取得された経路パターン番号に対応する優先順位の情報を取得し、10の経路パターンPT1〜PT10に優先順位を設定するように構成しても良い。
【0299】
また、上記実施形態のシチュエーション判定テーブルには、10の経路パターンPT1〜PT10に優先順位を設定するための情報が格納されているが、優先順位を設定するための情報は、1回目の設定を行う分しか格納されていない。これに対して、1回目から所定の回までの各設定が行えるように、優先順位を設定するための情報を、複数回分格納しておいても良い。尚、仮の走行経路RT1は、出発地点を始点として延長されていくため、仮の走行経路RT1の生成開始時や生成開始初期に用いられる経路パターンPT1〜PT10により、最終的な走行経路RT1の概ねの形状が決まる。即ち、出発地点からの一区間や、出発地点付近の区間の生成に用いられる経路パターンPT1〜PT10の影響を大きく受ける。そのため、1回目や、2回目などの初期に行われる優先順位を適切に設定することで、仮の走行経路RT1を延長していく場合に、好適に延長できる可能性を高めることができ、好適な形状の走行経路RT1を生成できる可能性を高くできる。
【0300】
また、上記実施形態の点経路第1生成処理(図13参照)では、まず、シチュエーション判定テーブルを参照し、参照の結果、シチュエーション判定テーブルの中に、判定パラメータに対応する情報がなければ、次に、車両1の現在の操舵角δvに基づいて、10の経路パターンPT1〜PT10に優先順位を設定しているが、シチュエーション判定テーブルを参照するか否かは、任意に決めれば良い。
【0301】
また、上記実施形態のシチュエーション判定テーブルでは、車両1の車両位置(xv,yv)と、目標とする駐車位置によって決まるx1,x2,y1,y2と、車両1の車両方位θvとの3つの条件に応じて、10の経路パターンPT1〜PT10の優先順位が設定されているが、条件は3つに限らず、1つや、4つなど任意の数で良い。また、条件は、車両位置や駐車位置や車両方位だけ限らず、ハンドル角や、路面状況や、障害物の位置などを条件としても良い。
【0302】
また、上記実施形態では、目標とする駐車位置に車両1を停車させる場合、最終的には車両1を後退直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しているが、最終的に車両1を前進直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しても良い。
【0303】
また、上記実施形態では、10種類の経路パターンPT1〜PT10を設けているが、パターンの数は10種類に限らず、減らしても良いし、増やしても良い。また、各経路パターンPT1〜PT10に対応する各走行経路の距離CLを全て2mとしているが、数値は適宜設定すれば良い。また、経路パターンPT1〜PT10に対応する走行経路の形状も適宜設定すれば良い。
【0304】
また、上記実施形態では、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qを生成しているが、走行制御点Qを設ける間隔は、0.01m間隔や、0.1m間隔や、0.5m間隔など適宜設定すれば良い。
【0305】
また、上記実施形態の走行制御装置100は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の車両速度Vは運転者がアクセルペダル11およびブレーキペダル12により操作できるように構成し、走行制御装置100は車両1のステアリング13のみを制御するように構成しても良い。
【0306】
また、上記実施形態の走行制御装置100は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の自律走行は行わず、現在位置から運転者により設定される駐車位置までの走行経路を運転者に報知するように構成しても良い。例えば、車両1内のモニタに、走行経路RT1〜RT3を表示しても良い。また、音声により運転者の運転操作を誘導して、車両1が走行経路RT1〜RT3上を走行するようにしても良い。
【0307】
また、上記実施形態では、目標とする駐車位置に車両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とした座標系を用いても良い。
【0308】
また、上記実施形態では、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成するように構成しているが、任意の2つの経路点P間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。例えば、走行経路上に3つ以上の経路点Pが順番に並んでいる場合には、その3つ以上の経路点Pのうち最初(出発点に最も近い側)の経路点Pと、その3つ以上の経路点のうち最後(最終目的地に最も近い側)の経路点Pとの間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。
【0309】
また、上記実施形態では、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3を生成して、その走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させているが、単に、現在位置から目標とする位置まで車両1を自律走行させるように構成も良い。例えば、目標とする位置を遠方に設定し、自律走行により車両1を長距離走行させるように構成しても良い。
【0310】
また、上記実施形態では、経路点P0(出発地点)上に走行制御点Qを設けていないが、経路点P0上にも走行制御点Qを設けて、車両1を自律走行させる場合に参照するように構成して良い。
【0311】
また、上記実施形態は、車両1が4輪車である場合の実施形態であるが、本発明は、車輪の数に関係なく車両であれば適用できるし、ショベルカーなどの建設機械などにも適用できる。
【符号の説明】
【0312】
1 車両
21 ステアリングセンサ装置(検出手段)
100 走行制御装置
S62,S63 特定手段
S64,S65 設定手段
S66,S71 選択手段
S67,S69 仮経路生成手段
S70 判定手段
S72:No 選択制御手段
S75〜S78,S11〜S13 走行経路生成手段
PT1〜PT10 経路パターン(走行経路パターン)
【特許請求の範囲】
【請求項1】
走行経路パターンの中から走行経路パターンを順番に選択する選択手段と、
その選択手段により選択される走行経路パターンを選択された順序に用いて基準位置からの仮経路を生成する仮経路生成手段と、
その仮経路生成手段により生成される仮経路を車両に走行させたと仮定した場合に、その車両が目標位置へ到着可能か否かを判定する判定手段と、
その判定手段による到着不可能という判定が前記仮経路生成手段より生成される仮経路についてなされた場合に、その到着不可能な仮経路の終端を新たな基準位置として前記選択手段において走行経路パターンの選択が開始されるように制御する選択制御手段と、
前記判定手段により到着可能と判定される場合に、最初の基準位置からその到着可能な仮経路までの一連の仮経路を用いて、前記車両を前記最初の基準位置から前記目標位置まで走行させるための走行経路を生成する走行経路生成手段とを備えていることを特徴とする走行制御装置。
【請求項2】
前記選択制御手段の制御により前記走行経路パターンの選択が開始される以前に、その制御の対象とされる仮経路が何れの走行経路パターンに基づいて生成されたものかを特定する特定手段と、
その特定手段により特定される走行経路パターンに基づいて、前記選択手段における走行経路パターンの選択順序を設定する設定手段とを備えていることを特徴とする請求項1記載の走行制御装置。
【請求項3】
前記走行経路パターンは、前記車両が走行すべき経路と、その経路を前記車両が走行する場合の操舵角またはハンドル角とを示すものであり、
前記設定手段は、
前記走行経路パターンの中で、前記特定手段により特定される走行経路パターンの示す操舵角に対する操舵角の差、または、前記特定手段により特定される走行経路パターンの示すハンドル角に対するハンドル角の差が小さい順に走行経路パターンが並ぶ順序を、前記走行経路パターンの選択順序として設定することを特徴とする請求項2記載の走行制御装置。
【請求項4】
前記走行経路パターンは、前記車両が走行すべき経路と、その経路を前記車両が走行する場合の操舵角またはハンドル角とを示すものであり、
前記車両の操舵角またはハンドル角を検出する検出手段を備え、
前記選択手段は、
前記仮経路生成手段において前記最初の基準位置からの仮経路が生成される場合、前記走行経路パターンの中から、前記検出手段により検出される操舵角に対する操舵角の差、または、前記検出手段により検出されるハンドル角に対するハンドル角の差が小さい順に、走行経路パターンを選択することを特徴とする請求項1から3の何れかに記載の走行制御装置。
【請求項1】
走行経路パターンの中から走行経路パターンを順番に選択する選択手段と、
その選択手段により選択される走行経路パターンを選択された順序に用いて基準位置からの仮経路を生成する仮経路生成手段と、
その仮経路生成手段により生成される仮経路を車両に走行させたと仮定した場合に、その車両が目標位置へ到着可能か否かを判定する判定手段と、
その判定手段による到着不可能という判定が前記仮経路生成手段より生成される仮経路についてなされた場合に、その到着不可能な仮経路の終端を新たな基準位置として前記選択手段において走行経路パターンの選択が開始されるように制御する選択制御手段と、
前記判定手段により到着可能と判定される場合に、最初の基準位置からその到着可能な仮経路までの一連の仮経路を用いて、前記車両を前記最初の基準位置から前記目標位置まで走行させるための走行経路を生成する走行経路生成手段とを備えていることを特徴とする走行制御装置。
【請求項2】
前記選択制御手段の制御により前記走行経路パターンの選択が開始される以前に、その制御の対象とされる仮経路が何れの走行経路パターンに基づいて生成されたものかを特定する特定手段と、
その特定手段により特定される走行経路パターンに基づいて、前記選択手段における走行経路パターンの選択順序を設定する設定手段とを備えていることを特徴とする請求項1記載の走行制御装置。
【請求項3】
前記走行経路パターンは、前記車両が走行すべき経路と、その経路を前記車両が走行する場合の操舵角またはハンドル角とを示すものであり、
前記設定手段は、
前記走行経路パターンの中で、前記特定手段により特定される走行経路パターンの示す操舵角に対する操舵角の差、または、前記特定手段により特定される走行経路パターンの示すハンドル角に対するハンドル角の差が小さい順に走行経路パターンが並ぶ順序を、前記走行経路パターンの選択順序として設定することを特徴とする請求項2記載の走行制御装置。
【請求項4】
前記走行経路パターンは、前記車両が走行すべき経路と、その経路を前記車両が走行する場合の操舵角またはハンドル角とを示すものであり、
前記車両の操舵角またはハンドル角を検出する検出手段を備え、
前記選択手段は、
前記仮経路生成手段において前記最初の基準位置からの仮経路が生成される場合、前記走行経路パターンの中から、前記検出手段により検出される操舵角に対する操舵角の差、または、前記検出手段により検出されるハンドル角に対するハンドル角の差が小さい順に、走行経路パターンを選択することを特徴とする請求項1から3の何れかに記載の走行制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2012−56522(P2012−56522A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−203759(P2010−203759)
【出願日】平成22年9月10日(2010.9.10)
【出願人】(591261509)株式会社エクォス・リサーチ (1,360)
【Fターム(参考)】
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成22年9月10日(2010.9.10)
【出願人】(591261509)株式会社エクォス・リサーチ (1,360)
【Fターム(参考)】
[ Back to top ]