以下、本発明の好ましい実施形態について添付図面を参照して、説明する。図1は、本発明の第1実施形態における走行制御装置100が搭載される車両1の上面視を模式的に示した模式図である。尚、図1の矢印U−D,L−R,F−Bは、車両1の上下方向、左右方向、前後方向をそれぞれ示している。
車両1は、運転者により運転操作可能に構成された車両であり、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させることができる走行制御装置100を有している。尚、本実施形態における自律走行とは、運転者の運転操作なしで車両1を走行させることを意味する。即ち、車両1が自律走行している場合、運転者は、後述するアクセルペダル11、ブレーキペダル12及びステアリング13を操作しなくて良い。
走行制御装置100は、目標とする駐車位置が運転者により設定されると、予め記憶されている10の経路パターンPT1〜PT10(図3参照)を複数組み合わせて、現在の車両位置から目標とする駐車位置までの車両1の走行経路を生成し、その生成した走行経路に従って車両1を自律走行させるように構成されている。更に、この走行制御装置100は、車両1の自律走行を開始した後、車両1から目標とする駐車位置までの直線距離が短くなり、車両1が目標とする駐車位置に近づく度に、目標とする駐車位置の再認識を行って、自律走行中に生じた車両1の位置ずれを補正し、車両1を目標とする駐車位置に精度良く停車させるように構成されている。
尚、本実施形態では、目標とする駐車位置に車両1を駐車させた時の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1中央の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いて、車両1の位置や、走行経路RT1〜RT3などの位置を算出する。
よって、以下の説明では、この座標系を用いて、車両1や、走行経路RT1〜RT3などの各位置を示す。また、車両1の前後軸と、車両1における左右の後輪2RL,2RRの車軸との交点を車両1の基準点とし、上述した座標系における車両1の基準点の位置を、車両1の車両位置とする。また、車両1の前後軸方向のうち車両1が進行している方向を、車両1の進行方向とする。
車両1は、走行制御装置100の他、車体フレームBFと、その車体フレームBFに支持される複数(本実施形態では4輪)の車輪2FL,2FR,2RL,2RRと、それら複数の車輪2FL〜2RRの内の一部(本実施形態では、左右の前輪2FL,2FR)を回転駆動する車輪駆動装置3と、各車輪2FL〜2RRを車体フレームBFに懸架する懸架装置4と、複数の車輪2FL〜2RRの内の一部(本実施形態では、左右の前輪2FL,2FR)を操舵するステアリング装置6と、操舵駆動装置5と、ステアリングセンサ装置21と、ジャイロセンサ装置22と、車輪回転センサ23と、アクセルペダル11と、ブレーキペダル12と、ステアリング13と、第1から第3までの距離センサ24a〜24cと、自動駐車スイッチ25と、第1から第4までのカメラ26a〜26dと、を主に備えている。
車輪2FL,2FRは、図1に示すように、車体フレームBFの前方側(矢印F側)に配置される左右の前輪であり、車輪駆動装置3によって回転駆動される駆動輪として構成されている。一方、車輪2RL,2RRは、車体フレームBFの後方側(矢印B側)に配置される左右の後輪であり、車両1の走行に伴って従動する従動輪として構成されている。4つの車輪2FL〜2RRのうち、左右の前輪2FL,2FRには共に、車輪の回転量を検出する車輪回転センサ23が取り付けられている。
車輪回転センサ23は、センサ23が取り付けられている車輪2FL,2FRの回転量を検出して、その検出結果をCPU91(図6参照)に出力するセンサであり、車輪2FL,2FRが所定の角度回転する度に、回転検出信号をCPU91に出力するものである。車輪2FL,2FRの外周の長さと、回転検出信号が出力される回転角度とは予め決まっているので、回転検出信号が出力されから次の回転検出信号が出力されるまでに車両1が走行する走行距離も予め決まる。CPU91は、車両1が自律走行をする場合、2つの車輪回転センサ23の回転検出信号を個別にカウントし、2つのカウント数の平均値を用いて出発地点からの走行距離を算出する。
ジャイロセンサ装置22は、車両1の水平面に対するロール角およびピッチ角と、ヨー
角とを検出すると共に、その検出結果をCPU91に出力するための装置であり、車両1の重心を通る基準軸(図1矢印F−B,L−R,U−D方向軸)回りの車両1(車体フレームBF)の回転角(ロール角、ピッチ角、ヨー角)をそれぞれ検出するジャイロセンサ(図示せず)と、そのジャイロセンサの検出結果を処理してCPU91に出力する出力回路(図示せず)とを主に備えている。
尚、以下の説明では、車両1のヨー角のことを、車両1の車両方位と記載する。尚、車両1における車両方位の基準軸は、上述したx軸とし、そのx軸から車両1の進行方向までの反時計回りの角度を、車両1の車両方位とする。
CPU91は、車両1が自律走行する場合、ジャイロセンサ装置22から出力される車両1の車両方位を取得し、車両1の進行方向を算出する。そして、その車両1の進行方向と、車輪回転センサ23の回転検出信号から算出される車両1の走行距離とに基づいて、出発地点からの移動距離を算出する。CPU91は、出発地点からの移動距離に基づいて、原点Oを基準とした車両1の現在位置を算出できる。
尚、車両1の車両方位は計算でも算出できる。具体的には、ヨー方向の角速度を検出するジャイロセンサ装置を車両1に搭載しておく。そして、その検出される角速度を時間積分することで、車両1の車両方位を算出できる。
車輪駆動装置3は、左右の前輪2FL,2FRに回転駆動力を付与するモータ3a(図6参照)を備えて構成されている。尚、モータ3aは、ディファレンシャルギヤ(図示せず)及び一対のドライブシャフト31を介して左右の前輪2FL,2FRに接続されている。
例えば、運転者がアクセルペダル11を操作した場合には、モータ3aから左右の前輪2FL,2FRに回転駆動力が付与され、それら左右の前輪2FL,2FRがアクセルペダル11の傾斜状態(傾斜角度、傾斜する速度など)に応じた速度で回転駆動される。
ステアリング装置6は、図1に示すように、ステアリングシャフト61と、フックジョイント62と、ステアリングギヤ63と、タイロッド64と、ナックルアーム65とを主に備えて構成されている。尚、ステアリング装置6は、ステアリングギヤ63がピニオン(図示せず)とラック(図示せず)とを備えたラックアンドピニオン機構によって構成されている。
例えば、運転者がステアリング13を操作した場合には、ステアリング13の操作がステアリングシャフト61を介してフックジョイント62に伝達されると共にフックジョイント62によって角度を変えられ、ステアリングギヤ63のピニオンに回転運動として伝達される。そして、ピニオンに伝達された回転運動がラックの直線運動に変換され、ラックが直線運動することで、ラックの両端に接続されたタイロッド64が移動し、ナックルアーム65を介して車輪2FL〜2RRが操舵される。
操舵駆動装置5は、ステアリング装置6と同様に、左右の前輪2FL,2FRを操舵するための装置であり、ステアリングシャフト61に回転駆動力を付与するモータ5a(図6参照)を備えて構成されている。即ち、モータ5aが駆動されてステアリングシャフト61が回転すると、運転者によりステアリング13が操作された場合と同様に車輪2FL,2FRが操舵される。
ステアリングシャフト61には、左右の前輪2FL,2FRの操舵角δを算出してCPU91へ出力するステアリングセンサ装置21が取り付けられている。ステアリングセンサ装置21は、基準位置からのステアリングシャフト61の回転角度に基づいて、左右の前輪2FL,2FRの操舵角δを算出し、その算出結果を走行制御装置100に設けられたCPU91(図6参照)へ出力する。
アクセルペダル11、ブレーキペダル12及びステアリング13は、いずれも運転者により制御される操作部材であり、各ペダル11,12の傾斜状態(傾斜角度、傾斜する速度など)に応じて車両1の加速力や制動力が決定されると共に、ステアリング13の操作状態(操作量、操作方向)に応じて車両1の旋回半径や旋回方向が決定される。
第1から第3までの各距離センサ24a〜24cは、車両1の周辺に存在する物体までの距離データをCPU91(図6参照)に出力するための装置である。各距離センサ24a,24b,24cは、レーザ光を対象物に向けて照射し、その反射の強度で対象物までの距離を測定するレーザレンジファインダで構成されている。
第1距離センサ24aは、車両1の前面右端に、第2距離センサ24bは、車両1の前面左端に、第3距離センサ24cは、車両1の後面中央に取り付けられている。本実施形態では、3つの距離センサ24a〜24cにより、車両1を中心として少なくとも60m四方の領域内に存在する各対象物までの距離を検出可能に構成されている。
自動駐車スイッチ25は、自律走行により目標とする駐車位置に車両1を駐車させたい場合に、運転者が押下するスイッチであり、これが運転者により押下されると、走行制御装置100において後述する自動駐車処理(図8参照)が実行される。その結果、現在位置から運転者により設定される駐車位置まで車両1が自律走行させられ、その駐車位置に車両1が停車させられる。
第1から第4までの各カメラ26a〜26dは、車両1の周囲を撮像するための撮像装置であり、CCDイメージセンサや、CMOSイメージセンサなどの撮像素子が搭載されたデジタルカメラで構成されている。この第1から第4までの各カメラ26a〜26dは、撮像した画像を画像データに変換してCPU91(図6参照)に出力するものである。
第1カメラ26aは、車両1の前方中央に取り付けられており、第2カメラ26bは、車両1の右側面のサイドミラー(非図示)に取り付けられており、第3カメラ26cは、車両1の後方中央に取り付けられており、第4カメラ26dは、車両1の左側面のサイドミラー(非図示)に取り付けられている。本実施形態では、第1から第4までの4つのカメラ26a〜26dにより、車両1を中心として車両1の前後方向に少なくとも15m、且つ、車両1を中心として車両1の左右方向に少なくとも12mの範囲を撮像可能に構成されている。
走行制御装置100は、車輪駆動装置3、操舵駆動装置5、及び、ブレーキ装置(図示せず)などを制御して、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものである。
次に、図2〜図5を参照して、走行制御装置100により生成される走行経路RT1〜RT3について説明する。本実施形態では、運転者により自動駐車スイッチ25が押下され、運転者により目標とする駐車位置が設定されると、走行制御装置100によって、現在位置から目標とする駐車位置へ到達可能な走行経路RT1〜RT3が生成される(図2参照)。詳細については後述するが、走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成されている。
この走行経路RT1〜RT3は線として連続的に構成されるが、走行経路RT1〜RT3を示すデータについては、走行経路RT1〜RT3を構成する点のうち、所定間隔ごとの点Pを示すデータより構成される。以下、この所定間隔ごとの点を、経路点Pと称し、経路点Pを示すデータを、経路点情報と称する。尚、この経路点Pは、車両1が走行経路RT1〜RT3を自律走行する場合に経由すべき点であり、経路点情報は、経路点Pにおける車両1の車両位置と、その経路点Pにおける車両1の車両方位θとにより構成される。各経路点Pの経路点情報は、後述する点経路メモリ93b(図6参照)に記憶される。詳細については後述するが、例えば、走行経路RT1であれば、走行経路RT1上を構成する点のうち、2m間隔ごとの点を経路点Pとしている。
そして、本実施形態では、走行経路RT1〜RT3全体が生成されると、次に、走行制御装置100が車両1を自律走行させる場合に車両1の車両状態を制御する点である走行制御点Qが、走行経路RT1〜RT3上に、0.05m間隔で仮想的に生成される。つまり、本実施形態では、車両1の走行状態が0.05m毎に制御される。尚、各走行制御点Qの車両設定情報は、後述する走行制御点メモリ93c(図6参照)にそれぞれ記憶される。
車両設定情報の詳細については後述するが、走行制御装置100は、走行経路RT1〜RT3に沿って車両1を自律走行させる場合に、各走行制御点Qに到達する度に、その走行制御点Qに対応する車両設定情報に基づいて車両1の走行状態を設定し、運転者により設定された駐車位置まで車両1を自律走行させる。
ここで、図2を参照して、走行制御装置100により生成される走行経路RT1〜RT3と、走行経路RT1〜RT3に対して生成される走行制御点Qについて説明する。図2は、走行経路RT1〜RT3全体と、その走行経路RT1〜RT3を示す経路点Pと、その走行経路RT1〜RT3に対して生成される走行制御点Qとの一例を説明するための模式図である。尚、走行制御点Qは、経路点P0(車両1の出発位置)上には生成されず、経路点P0から0.05mだけ目標とする駐車位置に近づいた位置から生成されて行く。
以下、図2を含め、走行経路RT1〜RT3を示す図においては、経路点Pを白抜きの丸で示し、走行制御点Qを黒塗りの丸で示す。また、経路点P0は、車両1の出発位置を示し、経路点P8は、運転者が目標とする駐車位置を示す。尚、他の経路点P1〜P7の詳細については後述する。また、走行制御点Qは、本来なら0.05m間隔で仮想的に生成されるが、図を見易くするために一部の走行制御点Qのみを示す。
上述したように、走行経路RT1〜RT3全体は、パターン走行部RT1と、後退旋回部RT2と、最終後退部RT3との3つにより構成される。パターン走行部RT1は、後述する経路パターンメモリ92a(図6参照)に格納されている経路パターンPT1〜PT10の組み合わせにより生成される走行経路である。図2に示す例では、経路点P0から経路点P6までの走行経路が、パターン走行部RT1となる。
また、後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に車両1を後退直進させることが可能となる車両位置までの走行経路である。図2に示す例では、経路点P6から経路点P7までの経路が、後退旋回部RT2となる。尚、この後退旋回部RT2では、車両1が同一の操舵角δで後退旋回するように走行経路が決定される。
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置までの走行経路である。図2に示す例では、経路点P7から経路点P8までの経路が、最終後退部RT3となる。尚、この最終後退部RT3は、車両1が後退直進するように走行経路が決定される。
ここで、図3を参照して、経路パターンPT1〜PT10について説明する。図3は、走行経路RT1〜RT3全体のうち、パターン走行部RT1を生成するために用いる経路パターンPT1〜PT10の一例を示す模式図である。
本実施形態では、10種類の断片的な走行経路が予め設定されており、それぞれが経路パターンとして、後述する経路パターンメモリ92a(図6参照)に格納されている。10種類の経路パターンPT1〜PT10には、「PT1」から「PT10」までのパターン番号が付されている。10種類の経路パターンPT1〜PT10では、各走行経路の軌跡はそれぞれ異なるが、各走行経路の長さ(即ち、走行距離)CLは全て2mに設定されている。パターン走行部RT1は、この経路パターンPT1〜PT10に対応する走行経路が組み合わされて生成される。
そして、パターン走行部RT1では、経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。つまり、経路点P1〜P5は、経路パターンPT1〜PT10に対応する走行経路の接続点を示している。
経路パターンPT1は、経路点Piから車両1を前方直進させ2m移動させる走行経路を示すパターンであり、経路パターンPT2は、経路点Piから車両1を後退直進させ2m移動させる走行経路を示すパターンである。
経路パターンPT3は、車両1の旋回半径Rを最小旋回半径の2倍とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT4は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を前方右旋回させ、経路パターンPT5は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を後退左旋回させ、経路パターンPT6は、車両1の旋回半径Rを最小旋回半径の2倍とし車両1を旋回半径Rで後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
また、経路パターンPT7は、車両1の旋回半径Rを最小旋回半径とし、車両1を経路点Piから前方左旋回させ2m移動させる走行経路を示すパターンであり、以下同様に、経路パターンPT8は、車両1の旋回半径Rを最小旋回半径とし車両1を前方右旋回させ、経路パターンPT9は、車両1の旋回半径Rを最小旋回半径とし車両1を後退左旋回させ、経路パターンPT10は、車両1の旋回半径Rを最小旋回半径とし車両1を後退右旋回させ、それぞれ2m移動させる走行経路を示すパターンである。
ここで、図4を参照して、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する各経路点Pおよび車両方位θについて説明する。図4は、経路パターンPT1〜PT10に応じて車両1を移動させた場合の移動先に対応する各経路点Pおよび車両方位θを算出するための模式図である。ここで、経路点Pi(xi,yi)は、移動前の車両1の車両位置を示す。また、経路点Piにおける車両1の車両方位をθiと示し、車両1の進行方向を矢印で示す。
まず、経路パターンPT8に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PA(xA,yA)と、その経路点PAにおける車両方位θAを算出する方法について説明する。
車両1の走行距離をCLとし、車両1の旋回半径をRとし、更に、経路点PAにおける車両方位θAと、経路点Piにおける車両方位θiとの変化量をΔθとした場合、その変化量Δθは、
Δθ=CL/R
により算出できる。従って、経路点PA(xA,yA)と、その経路点PAにおける車両方位θAとは、
θA=θi−Δθ
xA=xi+2R・sin(Δθ/2)・cos(θi−Δθ/2)
yA=yi+2R・sin(Δθ/2)・sin(θi−Δθ/2)
により算出できる。尚、経路パターンPT4についても同様に、この式により経路点Pおよび車両方位θを算出できる。
次に、経路パターンPT7に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PB(xB,yB)と、その経路点PBにおける車両方位θBを算出する方法について説明する。尚、経路点PBにおける車両方位θBと、経路点Piにおける車両方位θiとの変化量Δθは、上述した式により同様に算出できる。よって、経路点PB(xB,yB)と、その経路点PBにおける車両方位θBとは、
θB=θi+Δθ
xB=xi+2R・sin(Δθ/2)・cos(θi+Δθ/2)
yB=yi+2R・sin(Δθ/2)・sin(θi+Δθ/2)
により算出できる。尚、経路パターンPT3についても同様に、この式により経路点Pおよび車両方位θを算出できる。
以下同様に、経路パターンPT9に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PC(xC,yC)と、その経路点PCにおける車両方位θCとは、
θC=θi−Δθ
xC=xi+2R・sin(Δθ/2)・cos(θi−Δθ/2−π)
yC=yi+2R・sin(Δθ/2)・sin(θi−Δθ/2−π)
により算出できる。尚、経路パターンPT5についても同様に、この式により経路点Pおよび車両方位θを算出できる。
また、経路パターンPT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PD(xD,yD)と、その経路点PDにおける車両方位θDとは、
θD=θi+Δθ
xD=xi+2R・sin(Δθ/2)・cos(θi+Δθ/2−π)
yD=yi+2R・sin(Δθ/2)・sin(θi+Δθ/2−π)
により算出できる。尚、経路パターンPT6についても同様に、この式により経路点Pおよび車両方位θを算出できる。
また、図示はしていないが、経路パターンPT1に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PE(xE,yE)と、その経路点PEにおける車両方位θEとは、
θE=θi
xE=xi+CL・cos(θi)
yE=yi+CL・sin(θi)
により算出できる。
また、経路パターンPT2に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点PF(xF,yF)と、その経路点PFにおける車両方位θFとは、
θF=θi
xF=xi+CL・cos(θi+π)
yF=yi+CL・sin(θi+π)
により算出できる。
以上の図4を参照して説明した数式を用いることにより、経路パターンPT1〜PT10に応じて車両1を経路点Piから移動させた場合の移動先に対応する経路点Pと、その車両方位θとを算出できる。よって、パターン走行部RT1を構成する各経路点Pを特定できる。
本実施形態では、予め定められている順序で、経路パターンPT1〜PT10が組み合わされて、仮の走行経路RT1が生成されていく。この仮の走行経路RT1が生成されると、次に、その仮の走行経路RT1に続く後退旋回部RT2と、その後退旋回部RT2に続く最終後退部RT3とを生成できるかが判定される。この判定条件のことを、本実施形態では、駐車可能条件と称する。
尚、ここで駐車可能条件が成立する場合には、仮の走行経路RT1がパターン走行部RT1とされ、成立した駐車可能条件に基づいて、後退旋回部RT2および最終後退部RT3が決定され、走行経路RT1〜RT3全体が生成される。一方、駐車可能条件が成立しない場合には、別の仮の走行経路RT1が生成され、再度、駐車可能条件が成立しているかが判定される。仮の走行経路RT1の生成と、駐車可能条件の判定とは、駐車可能条件が成立するか、又は、予め定められている経路パターンPT1〜PT10の組み合わせが全て生成されるまで、繰り返される。
ここで、図5(a),(b)を参照して、走行経路RT1〜RT3全体が生成されるまでの流れと、駐車可能条件とについて説明する。図5(a)は、走行経路RT1〜RT3上の経路点Pの一例を説明するための模式図であり、図5(b)は、駐車可能条件を説明するための模式図である。図5(a)では、経路点P0〜P6までの走行経路が、パターン走行部RT1に対応し、経路点P6〜P7までの走行経路が、後退旋回部RT2に対応し、経路点P7〜P8までの走行経路が、最終後退部RT3に対応している。
本実施形態では、走行経路RT1〜RT3全体の生成が試みられる場合、まず、走行経路RT1の生成が試みられる。例えば、図5(a)に示すように、車両1の出発地点である経路点P0では、点線および実線で示した10通りの仮の走行経路RT1が一つずつ順番に生成される。そして、仮の走行経路RT1が生成される度に、仮の走行経路RT1の終端に対応する経路点Pにおいて、駐車可能条件が成立しているかが判定される(図9のS34参照)。
ここで、駐車可能条件が成立していると判定されると、仮の走行経路RT1が、車両1の走行経路RT1とされて、走行経路RT1〜RT3全体が生成され、そこで仮の走行経路RT1の生成が終了する。一方、生成された何れの仮の走行経路RT1においても、駐車可能条件が成立しなければ、次に、別の仮の走行経路RT1が生成される。具体的には、先ほど生成した10の仮の走行経路RT1毎に、その終端から10通りの方向に走行経路を延長するように、別の仮の走行経路RT1を生成する。そして、それぞれの仮の走行経路RT1ごとに、駐車可能条件が成立しているかを判定する。
以後同様に、別の仮の走行経路RT1の生成と、駐車可能条件の成立の判定とが繰り返される。図5(a)の例では、経路点P0〜P6までの走行経路が生成され、経路点P6において、駐車可能条件が成立した状態を示している。
駐車可能条件は、2つの条件から構成されており、1つ目の条件は、仮の走行経路RT1の終端に対応する経路点Pから車両1を同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
ここで、図5(b)を参照して、駐車可能条件が成立する経路点Pおよび車両方位θについて説明する。上述したとおり、駐車可能条件における1つ目の条件は、車両1を経路点Pから同一の旋回半径Rにより後退旋回させ、続けて車両1を後退直進させることで、車両1を目標とする駐車位置に停車させることが可能かという条件である。
図5(b)は、駐車可能条件を説明するための模式図であり、経路点Pv0(xv0,yv0)は、駐車可能条件が成立しているかを判定する車両1の車両位置を示し、経路点PVn(xvn,yvn)は、運転者が目標とする駐車位置と示す。また、経路点Pv0における車両1の車両方位をθvと示し、経路点Pvnにおける車両1の車両方位をθpと示す。
経路点Pv0から経路点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)|
により算出できる。
また、車両1の旋回中心Kからy軸に向けて垂直に引いた直線と、車両1の旋回中心Kから車両1の経路点PV0に向けて引いた直線とのなす角度をθvpとした場合、その角度θvpは、
θvp=θv0−θvn
により算出できる。よって、これらの式から、車両1の旋回半径Rpを次の式で算出できる。
Rp=Px/(1−cos(θVp))
尚、この旋回半径Rpが車両1の最小旋回半径以上となる場合に、上述した駐車可能条件の1つ目の条件が成立する。つまり、この式が、駐車可能条件における1つ目の条件である。
そして、経路点Pv0から車両1の旋回中心Kまでのy軸に平行な距離をPryとした場合、距離Pryは、
Pry=Rp・sin(θvp)
により算出できる。ここで、駐車スペースの入り口から経路点Pvnまでのy軸に平行な距離をPLとすると、
Py−PL>Pry
が成立している場合にのみ、車両1を後退直進させて駐車スペースに進入させることができる。つまり、この式が、駐車可能条件における2つ目の条件である。
走行制御装置100は、仮の走行経路RT1の終端に対応する経路点Pにおいて、上述した駐車可能条件における2つの条件が成立していれば、仮の走行経路RT1をパターン走行部RT1とし、そして、後退旋回部RT2と、最終後退部RT3とを決定し、走行経路RT1〜RT3全体を生成する。
尚、後退旋回部RT2と、最終後退部RT3との接続位置に対応する経路点Pは、(xv0−Px,yv0−Pry)となるので、後退旋回部RT2を示す2つの経路点Pは、経路点PV0と、経路点P(xv0−Px,yv0−Pry)とになり、最終後退部RT3を示す2つの経路点Pは、経路点P(xv0−Px,yv0−Pry)と、経路点Pvnとになる。
パターン走行部RT1が生成され、後退旋回部RT2、および、最終後退部RT3が決定されると、各走行経路RT1〜RT3ごとに走行制御点Qが仮想的に生成される。走行制御点Qが仮想的に生成される場合には、走行制御点Qごとに、車両1の車両状態を設定するための車両設定情報が生成されると共に、その走行制御点Qを識別するためのインデックス番号(以下、「ID番号」と称す)が設定される(図2参照)。
このID番号は、走行経路RT1〜RT3上における走行制御点Qのうち、経路点P0(車両1の出発位置)に最も近い位置の走行制御点Qが1番に設定される。その後は、走行経路RT1〜RT3に沿ってID番号が1番ずつ大きくなるように、目標とする駐車位置に重なる走行制御点Qまで順番にID番号が設定される。このID番号は、走行制御点Qがどのセクションの走行制御点Qであるかを識別するために、CPU91により使用される。
次に、図6を参照して、走行制御装置100の詳細構成について説明する。図6は、走行制御装置100の電気的構成を示したブロック図である。走行制御装置100は、CPU91、フラッシュメモリ92及びRAM93を備え、それらがバスライン94を介して入出力ポート95に接続されている。また、入出力ポート95には、車輪駆動装置3、操舵駆動装置5、ステアリングセンサ装置21、ジャイロセンサ装置22、車輪回転センサ23、第1から第3までの各距離センサ24a〜24c、自動駐車スイッチ25、第1から第4までの各カメラ26a〜26d、及び、その他の入出力装置99などが接続されている。
CPU91は、バスライン94によって接続された各部を制御する演算装置であり、フラッシュメモリ92は、CPU91によって実行される制御プログラムや固定値データ等を記憶するための書き換え不能な不揮発性のメモリである。尚、後述する図8のフローチャートに示す自動駐車処理、図9のフローチャートに示す点経路生成処理、図10のフローチャートに示すパターン走行部制御点生成処理、図12のフローチャートに示す後退旋回部制御点生成処理、図14のフローチャートに示す最終後退部制御点生成処理、図18のフローチャートに示す経路走行処理、図19のフローチャートに示す補正可否判定処理、及び、図21のフローチャート示す位置ずれ補正処理を実行する各プログラムは、フラッシュメモリ92に格納されている。
また、フラッシュメモリ92には、経路パターンメモリ92aが設けられている。経路パターンメモリ92aは、上述した10種類の各経路パターンPT1〜PT10の形状や特性などを示すデータが格納されている。例えば、走行経路の長さや、走行経路を走行する場合の車両1の旋回半径Rや、車両1の操舵量や、車両1を前進させるものか後退させるものかや、車両1を直進させるものか旋回させるものかなどを示すデータが、10種類の経路パターンPT1〜PT10毎に格納されている。
RAM93は、書き換え可能な揮発性のメモリであり、CPU91によって実行される制御プログラムの実行時に各種のデータを一時的に記憶するためのメモリである。RAM93には、点経路パターンメモリ93aと、点経路メモリ93bと、走行制御点メモリ93cと、現在位置メモリ93dと、位置ずれ補正フラグ93eと、再認識開始位置メモリ93fと、再認識終了位置メモリ93gと、前回補正時直線距離メモリ93hとが設けられている。
点経路パターンメモリ93aは、パターン走行部RT1を示す経路パターン番号「PT1〜PT10」の組み合わせ(以後、経路パターン番号「PT1〜PT10」の順列と称す)が記憶されるメモリである。点経路パターンメモリ93aは、後述する自動駐車処理(図8参照)が実行された場合に、CPU91によりクリアされる。そして、現在の車両位置から目標とする駐車位置までの走行経路RT1〜RT3全体がCPU91により生成される場合に、そのパターン走行部RT1を示す経路パターン番号「PT1〜PT10」の順列が記憶される。
この点経路パターンメモリ93aに記憶される経路パターン番号「PT1〜PT10」の順列は、走行経路RT1〜RT3上の各経路点Pにおいて、車両1が前進しているか後退しているかの状態を取得する場合や、切り返しの有無の状態を取得する場合に参照される(図10のS59、図12のS80、図14のS99参照)。また、パターン走行部RT1における経路点Pの位置を算出する場合にも参照される(図4参照)。
点経路メモリ93bは、走行経路RT1〜RT3を示す各経路点Pの経路点情報が記憶されるメモリである。上述したように、経路点情報は、経路点Pにおける車両1の車両位置と、経路点Pにおける車両1の車両方位θにより構成されている。また、上述したように、走行経路RT1〜RT3のうち、パターン走行部RT1では、各経路パターンPT1〜PT10に対応する走行経路の始端および終端を、それぞれ経路点Pとしている。また、後退旋回部RT2および最終後退部RT3では、各走行経路RT2,RT3の始端および終端を、経路点Pとしている。
CPU91は、走行経路RT1〜RT3全体を生成した場合に、パターン走行部RT1における経路点Pの経路点情報と、後退旋回部RT2における経路点Pの経路点情報と、最終後退部RT3における経路点Pの経路点情報とをそれぞれ点経路メモリ93bに記憶する(図9のS42参照)。この点経路メモリ93bに記憶されている各経路点Pの経路点情報は、走行制御点Qを生成するために参照される。
走行制御点メモリ93cは、走行経路RT1〜RT3に対して生成される点である各走行制御点Qの車両設定情報が記憶されるメモリである。上述したように、走行制御点Qは、走行制御装置100が車両1を走行経路RT1〜RT3に沿って自律走行させる場合に、進行方向や操舵量などの車両1の走行状態を制御するための点である。
本実施形態では、走行経路RT1〜RT3に対して走行制御点Qが生成される場合、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qが生成される(図8のS8,S9,S10参照)。尚、経路点P0(車両1の出発位置)を除く各経路点P上には、必ず走行制御点Qが生成される。そして、各走行制御点Qごとに、車両設定情報が生成されると共に、その走行制御点Qを識別するためのID番号が設定され、生成された走行制御点Qの車両設定情報と、設定された走行制御点QのID番号とが関連づけられて、この走行制御点メモリ93cにそれぞれ記憶される。
ここで、図7を参照して、走行制御点メモリ93cの内容の一例について説明する。図7は、走行制御点メモリ93cの内容の一例を示す模式図である。図7に示すように、走行制御点メモリ93cには、各走行制御点Qの車両設定情報を示すテーブルが記憶される。このテーブルは、各走行制御点Qに対応する車両設定情報が、その走行制御点Qに対応するID番号に関連づけられている状態を示している。また、このテーブルでは、各車両設定情報がID番号順に並べられている。
各走行制御点Qの車両設定情報は、走行制御点Qにおける車両1の車両位置と、走行制御点Qにおける車両1の車両方位θと、走行制御点Qにおける車両1の操舵角δと、走行制御点Qにおける進行方向フラグと、走行制御点Qにおける切り返し判定フラグとにより構成される。そして、これらの各走行制御点Qの車両設定情報には、それぞれID番号が関連づけられている。尚、テーブルにおけるID番号の最大値は、最大インデックス番号IDmaxとして、RAM93の所定領域に記憶されている。
車両位置と、車両方位θと、操舵角δと、ID番号とについては上述したので、その説明を省略する。進行方向フラグは、走行制御点Qにおいて車両1が前進するか、後退するかを示すフラグであり、走行制御点Qにおいて車両1が前進する場合には「1」に設定される一方、車両1が後退する場合には「−1」に設定される。切り返し判定フラグは、走行制御点Qにおいて車両1が前進または後退を切り替えるかを示すフラグであり、走行制御点Qにおいて車両1が前進または後退を維持し走行する場合には「0」に設定される一方、車両1が前進を後退に切り替える場合や、車両1が後退を前進に切り替える場合には「1」に設定される。
CPU91は、走行経路RT1〜RT3を車両1が自律走行している場合、所定間隔(例えば、50ms)ごとに、現在の車両1の車両位置に最も近い走行制御点Qに基づいて車両1の走行状態を設定し、車両1が次に通過すべき走行制御点Qへ向かうように車両1を自律走行させる。
ここで、図6の説明に戻る。現在位置メモリ93dは、現在の車両1の車両位置と、現在の車両1の車両方位θとを記憶するためのメモリである。現在位置メモリ93dには、後述する自動駐車処理(図8参照)が実行開始された場合に、CPU91により、経路点P0(車両1の出発位置)における車両位置と、経路点P0における車両方位θとが設定される(図18のS112参照)。
そして、現在位置メモリ93dの値は、走行経路RT1〜RT3を車両1が自律走行している場合、所定間隔(例えば、50ms)ごとに、値が更新される。具体的には、CPU91により、所定間隔(例えば、50ms)ごとに、ジャイロセンサ装置22から車両1の車両方位θが取得され、車両1の進行方向が算出される。
また、CPU91により、2つの車輪回転センサ23の回転検出信号を個別にカウントする各カウンタから、現在位置メモリ93dの値が前回更新された後にカウントされたカウント数が取得され、その2つのカウント数の平均値が用いられて、前回行われた値の更新からの車両1の走行距離が算出される。例えば、2つの車輪回転センサ23の回転検出信号を個別にカウントする各カウンタを、現在位置メモリ93dの値が更新される度にクリアして、現在位置メモリ93dの値が前回更新された後にカウントされたカウント数をカウントする。
そして、CPU91により、算出された車両1の進行方向と、算出された車両1の走行距離とに基づいて、現在位置メモリ93dの値が前回更新された地点からの車両1の移動量(移動した距離、及び、変化した車両方位)が算出され、その移動量が現在位置メモリ93dに記憶されている車両位置および車両方位θに加算され、現在位置メモリ93dの値が更新される。
現在位置メモリ93dは、後述する位置ずれ補正処理(図21参照)が実行され、目標とする駐車位置の再認識が成功した場合にも、更新される。詳細については後述するが、位置ずれ補正処理が実行されると、CPU91により、目標とする駐車位置が再認識される。そして、自律走行中に生じた車両1の位置ずれを補正するために、再認識した駐車位置を基準とした場合の車両1の車両位置と、車両方位θとが算出され、それぞれの値が現在位置メモリ93dに記憶される。
本実施形態では、現在位置メモリ93dに記憶されている車両位置および車両方位θが、現在の車両1の車両位置および車両方位θを示しているという前提で、走行制御装置100が車両1を自律走行させる。ところが、車両1が走行経路RT1〜RT3に沿って走行している場合に、路面の状況や、車両1の搭乗者数や荷重などの様々な外乱により、車両1が横滑りなどを起こし、走行経路RT1〜RT3上から車両1の車両位置がずれてしまう場合がある。
しなしながら、その横滑りなどによるずれについては、車両1の移動量として算出されないため、現在位置メモリ93dの値には反映されず、実際の車両1の車両位置および車両方位θと、現在位置メモリ93dに記憶されている車両位置および車両方位θとが異なってしまう。そして、実際の車両1の車両位置および車両方位θと、現在位置メモリ93dに記憶されている車両位置および車両方位θとが異なっている(以下、「車両1が位置ずれしている」と称す)と、最終的には、目標とする駐車位置ではなく、別の場所(以後、「間違った駐車位置」と称す)に、車両1が駐車してしまう。尚、車両1の位置ずれは、車両1の走行に伴って生じるものなので、車両1の走行距離が長くなるほど、車両の位置ずれは大きくなり易い。
詳細については図17を参照して後述するが、そこで、本実施形態では、目標とする駐車エリアPK’として車両1が向かっている場所(以後、「駐車予定エリア」と称す)PKに車両1が到着するより前に、駐車予定エリア(ここでは、間違った駐車位置とする)PK付近を含む撮像エリアKFを第3カメラ26cにより撮像する。そして、撮像された画像を解析して、目標とする駐車位置O’と、車両1の車両位置との実際の位置関係から、現在の車両1の車両位置および車両方位θを補正し、一旦、位置ずれを無くした状態にしてから、車両1を目標とする駐車位置O’に向かわせている。
位置ずれ補正フラグ93eは、車両1が自律走行している場合に、走行制御装置100において目標とする駐車位置の再認識を行って、車両1の位置ずれを補正するか否かを示すフラグである。位置ずれ補正フラグ93eがオンであれば、車両1が自律走行している場合に、走行制御装置100において目標とする駐車位置の再認識を行い、再認識が成功すれば車両1の位置ずれを補正することを示す。一方、位置ずれ補正フラグ93eがオフであれば、車両1が自律走行していても、走行制御装置100では目標とする駐車位置の再認識を行わず、車両1の位置ずれも補正しないことを示す。
車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間、位置ずれ補正フラグ93eは、出発地点に車両1が居た時と比較して、車両1から目標とする駐車位置までの直線距離が短くなった場合にオンに設定される一方、出発地点に車両1が居た時と比較して、車両1から目標とする駐車位置までの直線距離が長くなった場合にオフに設定される。
そして、走行制御装置100において車両1の位置ずれが補正された後については、位置ずれ補正フラグ93eは、前回の補正時と比較して、車両1から目標とする駐車位置までの直線距離が短くなった場合にオンに設定される。一方、前回の補正時と比較して、車両1から目標とする駐車位置までの直線距離が長くなった場合にオフに設定される。
再認識開始位置メモリ93f、及び、再認識終了位置メモリ93gは、目標とする駐車位置の再認識中に車両1が移動した移動量を算出するために、CPU91により用いられるメモリである。再認識開始位置メモリ93fは、走行制御装置100により目標とする駐車位置の再認識が開始される場合に、現在位置メモリ93dの値(車両位置および車両方位θ)が記憶される。一方、再認識終了位置メモリ93gは、走行制御装置100により目標とする駐車位置の再認識が終了した場合に、現在位置メモリ93dの値(車両位置および車両方位θ)が記憶される。尚、駐車位置の再認識中に車両1が移動した移動量を算出する方法については、図20を参照して後述する。
前回補正時直線距離メモリ93hは、走行制御装置100において車両1の位置ずれが補正された場合に、その補正時の車両1の車両位置から目標とする駐車位置までの直線距離dnを、直線距離daとして記憶するためのメモリである。後述する経路走行処理(図18参照)が実行開始される場合に、前回補正時直線距離メモリ93hには、車両1の出発地点から目標とする駐車位置までの直線距離d0が、直線距離daとして設定される。
その後は、車両1の位置ずれが補正される度に、その補正時の車両1の車両位置から目標とする駐車位置までの直線距離dnが、直線距離daとして記憶される。この前回補正時直線距離メモリ93hは、車両1の位置ずれが補正されてから、車両1がさらに目標位置へ近づいたか否かを判定するために、CPU91により参照される。
次に、図8〜図22までのフローチャートと、模式図とを参照して、車両1に搭載された走行制御装置100のCPU91により実行される自動駐車処理について説明する。図8は、走行制御装置100により実行される自動駐車処理を示すフローチャートである。自動駐車処理は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を停車させるものであり、運転者により自動駐車スイッチ25が押下された場合に実行される。
自動駐車処理では、まず、RAM93の点経路パターンメモリ93aをクリアする(S1)。次に、運転者により設定される駐車位置を取得し、その駐車位置に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1中央の前後軸上をy軸とし、x軸およびy軸の交点を原点Oに決定する(S2)。例えば、4つのカメラ26a〜26dで撮像した画像を繋ぎ合わせて、車両1の周囲画像を作成する。そして、その作成した画像を、車両1の車内に設けられているタッチパネル(図示せず)上に表示して、運転者に駐車位置を入力するように報知する。その後、表示画面が運転者により触れられたら、その触れられた画面位置に対応する駐車位置を算出して、原点Oとする。
次に、現在地点を出発地点として(S3)、点経路生成処理を実行する(S4)。ここで、図9を参照して、車両1に搭載された走行制御装置100のCPU91により実行される点経路生成処理について説明する。図9は、走行制御装置100により実行される点経路生成処理を示すフローチャートである。点経路生成処理は、経路パターン番号「PT1〜PT10」を1つ、又は、複数組み合わせて、経路パターン番号「PT1〜PT10」の順列を生成し、その順列に対応する仮の走行経路RT1を生成するための処理である。また、生成した仮の走行経路RT1の終端において駐車可能条件が成立している場合に、出発地点から運転者により設定された駐車位置までの走行経路RT1〜RT3全体を生成する。
点経路生成処理では、変数aに0を設定し、変数mに6を設定して、変数a,mの初期設定を行う(S31)。尚、変数aは、仮の走行経路RT1を構成する経路パターンPT1〜PT10の合計数を設定するものであり、変数mは、仮の走行経路RT1を構成する経路パターンPT1〜PT10数の最大値を設定するものである。
次に、10の経路パターン番号「PT1〜PT10」のうち、重複を許すa個の経路パターン番号で構成される重複順列の中から、順列を一つ取得する(S32)。尚、ここでは、経路パターン番号の小さいものから順に、重複順列を一つずつ取得する。例えば、a=0の場合には何も取得されず、a=1の場合の1番目には「PT1」が取得され、2番目には「PT2」が取得され、以下同様に重複順列が取得される。また、a=2の場合の1番目には「PT1,PT1」が取得され、2番目には「PT1,PT2」が取得され、3番目には「PT1,PT3」が取得され、以下同様に重複順列が取得され、a=6の場合の最後には「PT10,PT10,PT10,PT10,PT10,PT10」が取得される。
次に、S32の処理で取得した重複順列に対応する仮の走行経路RT1を生成し、その到着地点を取得する(S33)。尚、上述したように、本実施形態では、仮の走行経路RT1を生成する場合、その仮の走行経路RT1を示す経路点Pが生成される。次に、仮の走行経路RT1を示す各経路点Pのうち、到着地点を示す経路点Pにおいて、駐車可能条件が成立しているかを判定する(S34)。
尚、本実施形態では、S31の処理において、a=1と初期設定せずに、a=0と初期設定を行っている。これは、S34の処理により、出発地点において駐車可能条件が成立しているかを判定するためである。もし、a=1と初期設定すると、必ず走行経路RT1が生成されることになり、出発地点において駐車可能条件が成立する場合には、無駄な走行経路RT1を生成してしまう。よって、a=0と初期設定することにより、無駄な走行経路RT1の生成を抑制できる。
S34の判定が否定される場合には(S34:No)、a個の経路パターン番号で構成される重複順列を全て取得したかを判定する(S35)。S35の判定が否定される場合には(S35:No)、S32の処理に戻る。S35の判定が肯定される場合には(S35:Yes)、変数aの値が、変数mの値未満であるかを判定する(S36)。S36の判定が肯定される場合には(S36:Yes)、変数aに1を加算して(S37)、S32の処理に戻る。
S36の判定が否定される場合は(S36:No)、予め規定していた重複順列を全て取得したが、走行経路RT1〜RT3が見つからなかった場合なので、RAM93の点経路メモリ93bをクリアして(S38)、点経路生成処理を終了し、自動駐車処理(図8参照)に戻る。
一方、S34の判定が肯定される場合には(S34:Yes)、S32の処理で取得した経路パターン番号「PT1〜PT10」の重複順列を、RAM93の点経路パターンメモリ93aに記憶する(S39)。尚、本実施形態では、S34の処理において駐車可能条件が成立していると判定されると、駐車可能条件の成立している仮の走行経路RT1が、パターン走行部RT1に決定される。
次に、図5(b)で説明したように、後退旋回部RT2の経路点Pを決定し(S40)、最終後退部RT3の経路点Pを決定する(S41)。そして、一連の走行経路RT1〜RT3に対応する各経路点Pの経路点情報(車両位置および車両方位θ)を点経路メモリ93bに記憶して(S42)、この点経路生成処理を終了し、自動駐車処理(図8参照)に戻る。
ここで、図8の説明に戻る。点経路生成処理(S4)が終了したら、次に、S4の処理によって走行経路RT1〜RT3が生成されたかを判定する(S5)。例えば、点経路メモリ93bに経路点情報が記憶されている場合は、走行経路RT1〜RT3が生成されたと判定し、経路点情報が記憶されていない場合は、走行経路RT1〜RT3が生成されなかったと判定する。S5の判定が否定される場合は(S5:No)、運転者により設定された駐車位置までの走行経路が見つからなかった場合なので、運転者により設定された駐車位置までの走行経路RT1〜RT3が無いことを運転者に報知して(S12)、自動駐車処理を終了する。
一方、S5の判定が肯定される場合には(S5:Yes)、変数である最大インデックス番号IDmaxに1を設定して、変数である最大インデックス番号IDmaxの初期設定を行う(S6)。そして、後述するS7〜S10の処理を実行して、S4の処理で生成した走行経路RT1〜RT3に対する走行制御点Qを生成する。
具体的には、まず、上述した点経路生成処理(図9参照)において設定された変数aの値が0より大きいかを判定し(S7)、S7の判定が肯定される場合は(S7:Yes)、パターン走行部制御点生成処理を実行して(S8)、パターン走行部RT1に対する走行制御点Qを生成する。そして、S9処理へ移行する。
一方、S7の判定が否定される場合は(S7:No)、出発地点において駐車可能条件が成立した場合である。この場合は、パターン走行部RT1が存在しないので、S8の処理をスキップして、S9の処理へ移行する。S9の処理では、後退旋回部制御点生成処理を実行して(S9)、後退旋回部RT2に対する走行制御点Qを生成する。その後、最終後退部制御点生成処理を実行して(S10)、最終後退部RT3に対する走行制御点Qを生成する。
このように、本実施形態では、上述した点経路生成処理(S4)が実行され、走行経路RT1〜RT3が生成された場合(S5:Yesの場合)に限り、S6〜S10の各処理が実行されて、走行経路RT1〜RT3に対する走行制御点Qが生成される。
よって、目標とする駐車位置に車両1が到達できない仮の走行経路RT1が生成された場合には、走行制御点Qを生成する処理は実行されない。従って、目標とする駐車位置まで車両1を自律走行させるために関係のない無駄な処理が実行されることを抑制できる。
また、図2を参照して上述したように、本実施形態では、走行経路RT1〜RT3上のうち、各経路点Pに対応する位置だけでなく、各経路点P間にも仮想的に走行制御点Qを生成している。理想的には、各経路点P間に対応する位置にだけ仮想的に走行制御点Qを生成し、その走行制御点Qに基づいて車両1を自律走行させれば、車両1が走行経路RT1〜RT3上を走行できるが、実際には、路面の状況や、車両1の搭乗者数や荷重などの様々な外乱により、車両1が横滑りなどを起こし、走行経路RT1〜RT3上から車両位置がズレてしまう場合がある。
そこで、本実施形態では、各経路点Pに対応する位置に加え、各経路点P間にも仮想的に走行制御点Qを生成し、各走行制御点Qごとに、進行方向などの車両1の走行状態を補正できるようにしている。よって、走行制御装置100が、車両1を自律走行させて走行経路RT1〜RT3上を走行させる場合に、走行経路RT1〜RT3上を車両1がスムーズに走行できるように、車両1の走行状態を制御できる。
ここで、図10〜図15を参照して、パターン走行部制御点生成処理(S8)、後退旋回部制御点生成処理(S9)、最終後退部制御点生成処理(S10)について説明する。まず、図10を参照して、パターン走行部制御点生成処理(S8)について説明する。図10は、走行制御装置100により実行されるパターン走行部制御点生成処理を示すフローチャートである。
パターン走行部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、パターン走行部RT1に対する走行制御点Qを生成するための処理であり、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成する。パターン走行部RT1では、隣接する経路点P間の走行距離CLが全て2mとなるので、隣接する経路点P間には常に41個の走行制御点Qが必要となるが、このパターン走行部制御点生成処理では、出発地点に近い側の経路点Pに重なる走行制御点は生成せずに、それ以外の40個の走行制御点Qを生成する。
より具体的には、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、運転者により設定された駐車位置に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成する。そして、順番に走行制御点Qを生成し、40番目の走行制御点Qが第2経路点Pに重なるようにしている。
パターン走行部制御点生成処理では、まず、変数jに0を設定し、変数nに40を設定して、変数j,nの初期設定を行う(S51)。次に、出発地点からj番目の経路点Pを第1経路点Pとし、(j+1)番目の経路点Pを第2経路点Pとする(S52)。例えば、図2に示す走行経路RT1では、経路点PがP0〜P6まで7個設けられている。ここで、変数jが0の場合には、経路点P0を第1経路点Pとし、経路点P1を第2経路点Pとする。
次に、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93bから取得し(S53)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93bから取得する(S54)。
そして、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S55)。S55の処理では、点経路パターンメモリ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へ移動した場合の車両方位の変化量Δθを算出する(S56)。尚、車両方位の変化量Δθを算出する式については後述する。
そして、変数iを1に設定して、変数iの初期設定を行う(S57)。次に、第1経路点Pから第2経路点Pまでの経路上に設ける各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S58)。尚、1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
ここで、図11を参照して、パターン走行部RT1に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図11は、走行経路RT1〜RT3のうち、パターン走行部RT1に対して生成される走行制御点Qの一例を説明するための模式図であり、隣接している2つの経路点P間を図示したものである。ここでは、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(xvn,yvn)と示している。
パターン走行部RT1は、経路パターンPT1〜PT10に対応する走行経路に基づいて生成されるものなので、走行距離CLと、旋回半径Rとがそもそも決まっている。よって、車両1が第1経路点Pv0から第2経路Pvnへ移動する場合の、旋回半径Rと、旋回中心K(xk,yk)とが予め定まる。また、第1経路点Pv0から第2経路Pvnまでの車両1の走行距離CLは全て2mとなる。従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位θvnとの変化量をΔθとした場合、その変化量Δθは、
Δθ=CL/R
により算出される。図10のS56の処理では、この式により車両方位の変化量Δθを算出する。そして、第1経路点Pからi番目の走行制御点をQ(xvi,yvi)とし、その車両方位をθiとすると、
θi=i・Δθ/40
xvi=xk+R・cos(θv0−π/2+θi)
yvi=yk+R・sin(θv0−π/2+θi)
により算出される。ここで、第1経路点Pから1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、40番目の走行制御点Qは、第2経路点Pに重なるようにしている。
以上の図11を参照して説明した数式を用いることにより、パターン走行部RT1の各経路点P間において、40個の走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、パターン走行部RT1に対応する各走行制御点Qを全て生成できる。
本実施形態では、経路パターンPT1〜PT10の組み合わせに基づいて、2m間隔で大まかに経路点Pを設けた走行経路RT1を生成しても、その後、走行経路RT1の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。また、詳細については後述するが、走行経路RT2,RT3についても、走行経路RT2,RT3の各経路点P間に、0.05m間隔で仮想的に走行制御点Qを生成できる。
従って、経路パターンPT1〜PT10に対応する各走行経路の長さCLを短く(例えば、0.05mなど)しておき、詳細に走行経路RT1を生成したり、経路パターンPT1〜PT10のパターンの種類を多数設けて記憶しておく必要が無いので、処理コストを抑制できる。故に、走行制御装置100によれば、少ない処理コストで初期位置から目標とする駐車位置までの車両の走行経路RT1〜RT3を運転者に提供できる。
ここで、図10の説明に戻る。そして、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S59)。S59の処理において、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、何番目の走行制御点Qかに関係なく、全て同じ方向(前進または後退)を示す値が取得される。
尚、進行方向は、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜RT10に基づいて一意に決まり、点経路パターンメモリ93aの内容に基づいて取得される。より具体的には、第1経路点Pから第2経路点Pに向かう経路パターンPT1〜PT10が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であれば、進行方向として前進を示す値が取得される。一方、車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、進行方向として後退を示す値が取得される。
また、切り返しの有無は、第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の切り返しの有無として、切り返しなしを示す値が取得される。
一方、第1経路点Pから第2経路点Pへ向かう経路パターンPT1〜PT10と、第2経路点Pからその次の経路点Pに向かう経路パターンPT1〜PT10との一方が、車両1を前進させる経路パターンPT1,PT3,PT4,PT7,PT8であり、他方が車両1を後退させる経路パターンPT2,PT5,PT6,PT9,PT10であれば、第2経路点Pに重なる走行制御点Qの切り返しの有無として、切り返しありを示す値が取得される。
S59の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93cに記憶する(S60)。
上述したように、最大インデックス番号IDmaxは、図8のS6の処理により1に初期設定され、その後、運転者により設定された駐車位置に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけていくことができる(図7参照)。
尚、S59の処理において、進行方向として前進を示す値が取得されていれば、S60の処理では、進行方向フラグが「1」に設定され、進行方向として後退を示す値が取得されていれば、進行方向フラグが「−1」に設定される。また、S59の処理において、切り返しの有無として切り返しなしを示す値が取得されていれば、S60の処理では、切り返しフラグが「0」に設定され、切り返しの有無として切り返しありを示す値が取得されていれば、切り返しフラグが「1」に設定される。
また、S60の処理において、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する(図7参照)。
S60の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S61)。
次に、変数iの値が、変数nの値未満であるかを判定し(S62)、S62の判定が肯定される場合には(S62:Yes)、変数iに1を加算して(S63)、S58の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、40個の走行制御点Qを順番に生成する。
一方、S62の判定が否定される場合は(S62:No)、第1経路点Pから第2経路点Pの間に、40個の走行制御点Qを設定した場合なので、パターン走行部RT1の走行制御点Qを全て生成したかを判定する(S64)。
S64の判定が否定される場合には(S64:No)、変数jに1を加算して(S65)、S52の処理に戻り、次の経路点P間についても、40個の走行制御点Qを生成する。S64の判定が肯定される場合には(S64:Yes)、パターン走行部制御点生成処理(S8)を終了して、自動駐車処理(図8参照)に戻る。
尚、S60の処理が実行された場合に、パターン走行部RT1における最後の走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶されると、その後、S61の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S62の判定が否定されてS62:Noへ分岐し、更に、S64の判定が否定されてS64:Noへ分岐して、パターン走行部制御点生成処理が終了する。
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する後退旋回部制御点生成処理が実行された場合に、後退旋回部RT2の最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
次に、図12を参照して、後退旋回部制御点生成処理(S9)について説明する。図12は、走行制御装置100により実行される後退旋回部制御点生成処理を示すフローチャートである。
後退旋回部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、後退旋回部RT2に対する走行制御点Qを生成するための処理であり、後退旋回部RT2を示す2つの各経路点P間に、0.05m間隔で走行制御点Qを生成する。尚、後退旋回部RT2は、パターン走行部RT1のように走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
尚、後退旋回部制御点生成処理でも、パターン走行部制御点生成処理(図10参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、運転者により設定された駐車位置に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
後退旋回部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、後退旋回部RT2を示す2つの各経路点Pを特定する(S71)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P6と、経路点P7とが特定される。
次に、特定した2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pとし、運転者により設定された駐車位置に近い側の経路点Pを第2経路点Pとする(S72)。そして、第1経路点Pの経路点情報である車両位置および車両方位を、RAM93の点経路メモリ93bから取得し(S73)、同様に、第2経路点Pの経路点情報である車両位置および車両方位を、点経路メモリ93bから取得する(S74)。
次に、車両1が第1経路点Pから第2経路点Pへ向かうための車両1の操舵角δと、車両1の旋回中心Kと、車両1の旋回半径Rとをそれぞれ算出する(S75)。尚、ここでの車両1の旋回中心Kと、車両1の旋回半径Rは、駐車可能条件が成立した場合に算出された旋回中心Kと、旋回半径Rpとである。そして、車両1の旋回半径をRとし、車両1のホイールベースをWLとした場合、車両1の操舵角δは、
δ=tan−1(WL/R)
により算出される。また、車両1が第1経路点Pから第2経路点Pへ移動した場合の車両方位の変化量Δθを算出する(S76)。尚、車両方位の変化量Δθを算出する式については後述する。
そして、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S77)。尚、走行制御点Qの数を算出する数式についても後述する。
次に、変数iを1に設定して、変数iの初期設定を行う(S78)。そして、第1経路点Pから第2経路点Pまでの走行経路に対して生成する各走行制御点Qのうち、第1経路点Pからi番目の走行制御点Qの位置(車両位置)と、その車両方位とを算出する(S79)。尚、1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点Pに近づく走行制御点Qとなり、n番目の走行制御点Qは、第2経路点Pに重なるようにしている。
ここで、図13を参照して、後退旋回部RT2に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図13は、走行経路RT1〜RT3のうち、後退旋回部RT2に対して生成される走行制御点Qの一例を説明するための模式図であり、後退旋回部RT2を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、第1経路点をPv0(xv0,yv0)と示し、第2経路点をPvn(0,yvn)と示している。尚、第2経路点Pvnでは、車両1の前後軸がy軸と必ず重なるため、x値が0になると共に車両方位がπ/2となる。
後退旋回部RT2は、パターン走行部RT1に続く走行経路であって、パターン走行部RT1の終端から目標とする駐車位置に、車両1が同一の操舵角δで後退旋回するように走行経路が決定される(図9のS41参照)。よって、後退旋回部RT2が決定された場合には、その旋回中心K(xk,yk)と、旋回半径Rとが確定する。
従って、第1経路点Pv0における車両方位θv0と、第2経路点Pvnにおける車両方位π/2との変化量をΔθとした場合、その変化量Δθは、
Δθ=θv0−π/2
により算出される。図12のS76の処理では、この式により車両方位の変化量Δθを算出する。そして、第1経路点Pv0から第2経路点Pvnまでの走行距離CLは、
CL=R・Δθ
により算出される。
故に、第1経路点Pv0から第2経路点Pvnまでの間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=R・Δθ/0.05
となる。尚、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図12のS77の処理では、この式により算出される合計数nを、変数nに代入している。
そして、第1経路点Pv0からi番目の走行制御点をQ(xvi,yvi)とし、その車両方位をθiとすると、
θi=Δθ・(n−i)/n
xvi=xk+R・cos(θi)
yvi=yk+R・sin(θi)
により算出される。ここで、第1経路点Pv0から1番目の走行制御点Qは、第1経路点Pv0から0.05mだけ第2経路点Pに近づく走行制御点Qとなり、第1経路点Pv0からn番目の走行制御点Qは、第2経路点Pvnと重なるようにしている。
以上の図13を参照して説明した数式を用いることにより、後退旋回部RT2の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、後退旋回部RT2に対応する各走行制御点Qを全て生成できる。
ここで、図12の説明に戻る。次に、第1経路点Pからi番目の走行制御点Qにおける操舵角δと、進行方向(前進または後退)と、切り返しの有無とを取得する(S80)。尚、S80の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て第1経路点Pと同一の操舵角δが取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。
S80の処理が終了したら、i番目の走行制御点Qに対応する車両設定情報(車両位置、車両方位、操舵角δ、進行方向フラグ、切り返しフラグ)に、現在の最大インデックス番号IDmaxを関連づけて、RAM93の走行制御点メモリ93cに記憶する(S81)。
上述したように、最大インデックス番号IDmaxは、図8のS6の処理により1に初期設定され、その後、運転者により設定された駐車位置に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。また、図8のS7の判定において、S7の判定が肯定されていれば、上述したパターン走行部制御点生成処理(図10参照)が実行された後である。よって、最初にS81の処理が実行される場合には、図10のS61の処理により、最大インデックス番号IDmaxが、後退旋回部RT2の最初のID番号に更新されている。
従って、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT2まで通して連続するIDを、各走行制御点Qの車両設定情報に順番に関連づけることができる。
一方、図8のS7の処理において、S7の判定が否定されていれば、上述したパターン走行部制御点生成処理(図10参照)がスキップされるので、最大インデックス番号IDmaxは1に初期設定された状態である。よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、各走行制御点Qの車両設定情報に、連続するID番号を1から順番に関連づけることができる。
尚、ここでは、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
S81の処理が終了したら、次に、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S82)。次に、変数iの値が、変数nの値未満であるかを判定し(S83)、S83の判定が肯定される場合には(S83:Yes)、変数iに1を加算して(S84)、S79の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S83の判定が否定される場合は(S83:No)、n個の走行制御点Qを全て生成した場合なので、後退旋回部制御点生成処理(S9)を終了して、自動駐車処理(図8参照)に戻る。
尚、S81の処理が実行された場合に、後退旋回部RT2における最後の走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶されると、その後、S82の処理が実行されて、最大インデックス番号IDmaxが更新される。そして、S83の判定が否定されてS83:Noへ分岐して、パターン走行部制御点生成処理が終了する。
その結果、最大インデックス番号IDmaxは、実在しない走行制御点QのID番号を示すことになるが、この最大インデックス番号IDmaxは、後述する最終後退部制御点生成処理が実行された場合に、最終後退部RT3の最初の走行制御点Qの車両設定情報に関連づけられる。よって、走行制御点Qの車両設定情報に不連続となるID番号が関連づけられることはない。
次に、図14を参照して、最終後退部制御点生成処理(S10)について説明する。図14は、走行制御装置100により実行される最終後退部制御点生成処理を示すフローチャートである。
最終後退部制御点生成処理は、S4の処理で生成された走行経路RT1〜RT3のうち、最終後退部RT3に対する走行制御点Qを生成するための処理であり、最終後退部RT3を示す2つの経路点P間に、0.05m間隔で走行制御点Qを生成する。尚、最終後退部RT3は、後退旋回部RT2と同様に走行距離CLが一定とならないため、走行距離CLに応じた数の走行制御点Qが、2つの経路点P間に生成される。
尚、最終後退部制御点生成処理でも、パターン走行部制御点生成処理(図10参照)と同様に、隣接する2つの経路点のうち、出発地点に近い側の経路点Pを第1経路点Pとし、運転者により設定された駐車位置に近い側の経路点Pを第2経路点Pとした場合、第1経路点P上には走行制御点Qを生成せず、第1経路点Pから0.05mだけ第2経路点Pに近づいた位置に1番目の走行制御点Qを生成している。そして、順番に走行制御点Qを生成し、最後の走行制御点Qが第2経路点Pに重なるようにしている。
最終後退部制御点生成処理におけるS92〜S95の各処理は、上述した図12の後退旋回部制御点生成処理におけるS72〜S75の各処理と同様な処理であり、最終後退部制御点生成処理におけるS97〜S100の各処理は、上述した図12の後退旋回部制御点生成処理におけるS78〜S81の各処理と同様な処理である。
また、最終後退部制御点生成処理におけるS101,S102の各処理は、上述した図12の後退旋回部制御点生成処理におけるS83,S84の各処理と同様な処理である。よって、同様な処理についてはその詳細な説明を省略し、異なる部分(S91,S96,S103)についてのみ詳細に説明する。
最終後退部制御点生成処理では、まず、走行経路RT1〜RT3を示す各経路点Pのうち、最終後退部RT3を示す2つの各経路点Pを特定する(S91)。例えば、図2に示す走行経路RT1〜RT3であれば、経路点P7と、経路点P8とが特定される。そして、S92〜S95の各処理を実行し、次に、第1経路点Pから第2経路点Pの間に生成する走行制御点Qの数を算出し、変数nに代入する(S96)。尚、走行制御点Qの数を算出する数式については後述する。
そして、S97〜100の各処理を実行する。尚、最終後退部RT3では、車両1の前後軸がy軸と必ず重なる状態で、車両1が後退直進するため、車両方位が常にπ/2となる。よって、S99の処理では、操舵角δは、何番目の走行制御点Qかに関係なく、全て0が取得される。また、進行方向は、全て後退を示す値が取得される。また、切り返しの有無は、全て切り返しなしを示す値が取得される。よって、S100の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。
また、上述したように、最大インデックス番号IDmaxは、図8のS6の処理により1に初期設定され、その後、運転者により設定された駐車位置に重なる走行制御点Qが生成されるまで、走行制御点Qが生成される度に1が加算される。最初にS100の処理が実行される場合は、図10のS61の処理や、図12のS82の処理が実行された後なので、最大インデックス番号IDmaxが、最終後退部RT3の最初のID番号に更新されている。
よって、走行制御点Qを生成して、その走行制御点Qに対応する車両設定情報に、現在の最大インデックス番号IDmaxを関連づける処理を繰り返すことで、走行経路RT1〜RT3まで通して連続するIDを、各走行制御点Qの車両設定情報に関連づけることができる。
尚、S100の処理では、進行方向フラグは全て「−1」に設定され、切り返しフラグは全てオフに設定される。また、走行制御点Qの車両設定情報を走行制御点メモリ93cに記憶する場合には、他の走行制御点Qの車両設定情報を上書しないように、各走行制御点Qの車両設定情報をそれぞれ個別に記憶する。
S100の処理が終了したら、次に、S101の処理を実行する。S101の判定が肯定される場合には(S101:Yes)、S102の処理を実行する。そして、現在の最大インデックス番号IDmaxに1を加算して、最大インデックス番号IDmaxを更新する(S103)。その後、S98の処理に戻る。そして、第1経路点Pから第2経路点Pまでの経路上に、n個の走行制御点Qを順番に生成する。一方、S101の判定が否定される場合は(S101:No)、n個の走行制御点Qを全て生成した場合なので、最終後退部制御点生成処理(S8)を終了して、自動駐車処理(図8参照)に戻る。
尚、最終後退部制御点生成処理では、S100の処理が実行されて、走行制御点Qの車両設定情報が走行制御点メモリ93cに記憶された後、S101の判定が肯定された場合にだけ、S103の処理が実行され、最大インデックス番号IDmaxが更新される。
即ち、次に生成すべき走行制御点Qが存在する場合にだけ、最大インデックス番号IDmaxが更新されるので、最終後退部RT3における最後の走行制御点Qが生成された後には、最大インデックス番号IDmaxは更新されない。よって、最大インデックス番号IDmaxには最後の走行制御点QのID番号が設定される。
ここで、図15を参照して、最終後退部RT3に対して生成される走行制御点Qの位置と、その車両方位とについて説明する。図15は、走行経路RT1〜RT3のうち、最終後退部RT3に対して生成される走行制御点Qの一例を説明するための模式図であり、最終後退部RT3を示す2つの経路点P間を図示したものである。ここでは、2つの経路点Pのうち、走行経路RT1〜RT3上で出発地点に近い側の経路点Pを第1経路点Pv0(xv0,yv0)と示し、運転者により設定された駐車位置に近い側の経路点Pを第2経路点Pvn(xvn,yvn)と示している。
尚、第1経路点Pv0および第2経路点Pvnでは共に、車両1の前後軸がy軸と必ず重なるため、x値が0になり、車両方位がπ/2になり、操舵角δが0になる。
最終後退部RT3は、後退旋回部RT2に続く走行経路であって、後退旋回部RT2の終端から目標とする駐車位置に、車両1を後退直進させて停車できるように走行経路が決定される(図9のS41参照)。よって、第1経路点Pv0(xv0,yv0)から第2経路点Pvn(xvn,yvn)までの走行距離CLは、
CL=((xv0−xvn)2+(yv0−yvn)2)1/2
により算出される。尚、本実施形態では、xv0およびxvnが共に0なので、「CL=|yv0−yvn|」として算出しても良い。
従って、第1経路点Pv0から第2経路点Pvnまで間に、0.05m間隔で走行制御点Qを生成すると、その合計数nは、
n=CL/0.05
となる。尚、合計数nが整数にならない場合は、少数点以下を切り上げて整数にする。図14のS96の処理では、この式により算出される合計数nを、変数nに代入している。
そして、第1経路点Pv0からi番目の走行制御点をQ(xvi,yvi)とし、その車両方位をθiとすると、
θi=π/2
xvi=0
yvi=yv0−0.05・n
により算出される。ここで、第1経路点Pv0から1番目の走行制御点Qは、第1経路点Pから0.05mだけ第2経路点に近づく走行制御点Qとなり、第1経路点Pv0からn番目の走行制御点Qは、第2経路点Pvnと重なるようにしている。
以上の図15を参照して説明した数式を用いることにより、最終後退部RT3の経路点P間において、n個の各走行制御点Qの位置と、その位置における車両1の車両方位θiとを算出できるので、最終後退部RT3に対応する各走行制御点Qを全て生成できる。
ここで、図8の説明に戻る。S6〜S10の処理が実行され、各走行経路RT1〜RT3に対する走行制御点Qが生成されたら、次に、運転者により設定された駐車位置に車両1を駐車させることが可能であることを、運転者に報知する(S11)。
そして、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示されたか、又は、自律走行による駐車を中止することが運転者により指示されたかを判定し(S13)、自律走行による駐車を中止することが運転者により指示された場合には(S13:中止)、自動駐車処理を終了する。一方、自律走行を開始して車両1を駐車位置に駐車させることが運転者により指示された場合には(S13:開始)、経路走行処理を実行する(S14)。
詳細については後述するが、経路走行処理(S14)が実行されると、車両1が走行経路RT1〜RT3に沿って自律走行させられる。ここで、図16および図17を参照して、車両1の自律走行の概略について説明する。図16(a)は、車両1が走行経路RT1〜RT3に沿って自律走行する場合の一例を説明するための模式図であり、図16(b)は、車両1の形状と障害物判定領域Eの形状との一例を示す模式図である。
本実施形態では、車両1が自律走行している間、車両1に対して設定される障害物判定領域E内に障害物が有るか無いかが、所定間隔(例えば、50ms)ごとに監視され、その障害物判定領域E内に障害物が見つかった場合には、自律走行が中止され、障害物が見つからない場合には、自律走行が継続される。
例えば、車両1が自律走行する場合、図16(a)に示すように、車両1を囲むように障害物判定領域Eが設定される。この障害物判定領域Eは、車両1に対して設定される領域であるため、車両1の移動に伴って障害物判定領域Eの位置が移動していく。また、障害物判定領域Eは、車両1が前進するか後退するかに応じて、車両1の前面から前方向に広がる距離と、車両1の後面から後方向に広がる距離とが異なるように設定される。
具体的には、車両1が前進している間、障害物判定領域Eは、図16(b)に示すように、車両1の前方向に広がる距離がΔL1と長くなり、車両1の後方向に広がる距離がΔL2と短くなる。一方、車両1が後退している間は、車両1の後方向に広がる距離がΔL1と長くなり、車両1の前方向に広がる距離がΔL2と短くなる。このように、本実施形態では、車両1の進行方向の長さが大きくなるように、障害物判定領域Eを構成しているので、車両1の進行方向の前方を精度良く監視することができる。
また、本実施形態では、位置ずれ補正フラグ93eがオンの状態で、走行経路RT1〜RT3を車両1が自律走行する場合、走行制御御装置100において目標とする駐車位置の再認識が試みられる。ここで、駐車位置の再認識が成功すると、自律走行中に生じた車両1の位置ずれが補正される。その結果、一旦、位置ずれをより少なくしてから、車両1を目標とする駐車位置へ自律走行させることができる。
ここで、図17を参照して、走行制御装置100において駐車位置が再認識されて、車両1の位置ずれが補正される場合の一例について説明する。図17(a)は、走行制御装置100により駐車位置が再認識される場合の一例を説明するための模式図であり、図17(b)は、走行制御装置100により車両1の車両位置が補正される場合の一例を説明するための模式図であり、図17(c)は、車両1が再認識した駐車位置O’へ向けて走行する場合の一例を説明するための模式図である。
図17(a)に示す例では、自律走行中に車両1が横滑りなどを起こし、走行経路RT1〜RT3に対し、車両1が位置ずれを起こした状態で自律走行しており、この状態のまま自律走行を継続すると、最終的には、目標とする駐車エリアPK’ではなく、間違った駐車エリアPKに駐車することを示している。つまり、実際の車両1の車両位置および車両方位θと、現在位置メモリ93dに記憶されている車両位置および車両方位θとが異なっている状態で、車両が自律走行していることを示している。
上述したように、本実施形態では、現在位置メモリ93dに記憶されている車両位置および車両方位θが、現在の車両1の車両位置および車両方位θであるという前提で、走行制御装置100が車両1を自律走行させる。そのため、実際の車両1の車両位置および車両方位θと、現在位置メモリ93dに記憶されている車両位置および車両方位θとが異なっている(位置ずれしている)と、走行制御装置100が目標とする駐車位置に車両1を停車させたとしても、実際には、間違った駐車位置に車両1が停車してしまう。そこで、本実施形態では、車両1が駐車予定位置(ここでは、間違った駐車位置O)に近づく度に、現在の車両1の車両位置および車両方位θを補正するように構成している。
具体的には、車両1が駐車予定エリアPKに近づく度に、図17(a)に示すように、駐車予定エリアPK付近を含む撮像エリアKFが、第3カメラ26cにより撮像される。すると、その撮像された画像がCPU91により解析され、撮像された画像の中から実際の駐車エリアPK’が特定される。例えば、撮像された画像中から、駐車場の区画線として、台形や、菱形や、矩形などの四角形を構成する白線が特定される。ここで、駐車場の区画線が特定されると、その特定した駐車場の区画線で包囲されているエリアが、駐車エリアPK’として再認識される。
そして、図17(b)に示すように、再認識された駐車エリアPK’に車両1が駐車した場合の、左右の後輪2RL,2RRの車軸上がx’軸とされ、車両1中央の前後軸上がy’軸とされ、x’軸およびy’軸の交点が原点O’として認識される。次に、撮像された画像全体の大きさと、特定された駐車エリアPK’の画像の大きさとの比率や、その駐車エリアPK’の画像の形状や、その駐車エリアPK’の画像の傾き具合などに基づいて、実際の駐車位置O’と、車両1の車両位置との相対的な位置関係が算出される。
具体的には、相対的な位置関係として、原点O’から車両1の車両位置までの直線距離が算出される。また、上述したx’軸を基準軸として、そのx’軸から車両1の進行方向までの反時計回りの角度が、車両1の車両方位θとして算出される。即ち、目標とする駐車位置O’と、車両1の車両位置との実際の位置関係が算出される。
尚、本実施形態では、撮像された画像の中から対象物を特定するための処理や、撮像地点(本実施形態では、車両1の車両位置)と、画像中の対象物(本実施形態では、原点O’)との相対的な位置関係を算出するための処理については、画像処理の分野において一般的に知られている方法を用いて構成している。即ち、これらの方法については既知の方法を用いているため、ここではその説明は省略する。また、撮像エリアKFの大きさについては、適宜設定すれば良い。
そして、目標とする駐車位置O’と、車両1の車両位置との相対的な位置関係が算出されると、次に、x’軸およびy’軸の交点を原点O’とする座標系が用いられて、その座標系における現在の車両1の車両位置と、その座標系における現在の車両1の車両方位θとが算出され、それぞれの値が、現在位置メモリ93dに記憶される。
図17(b)に示すように、駐車予定エリアPKと、実際の駐車エリアPK’との場所が異なる場合は、駐車予定エリアPKに対応する原点Oの位置と、実際の駐車エリアPK’に対応する原点O’との位置も異なる。
本実施形態では、車両1の自律走行が開始され、その自律走行が継続されている間、x軸およびy軸の交点を原点Oとする座標系が用いられて、車両1の車両位置および車両方位θが算出される。ところが、車両1の自律走行中に、目標とする駐車位置O’が再認識されると、原点Oが間違った原点(到着地点)であることが判明する。そのため、それが判明した後は、x軸およびy軸の交点を原点Oとする座標系を用いて、車両1の車両位置および車両方位θを算出し続けても、車両1の正しい車両位置および車両方位θを算出できないため、意味が無い。
一方で、車両1の自律走行中に、目標とする駐車位置O’が再認識されると、原点O’が正しい原点(到着地点)であることも判明する。そこで、それが判明した後は、x’軸およびy’軸の交点を原点O’とする座標系を用いて、車両1の車両位置および車両方位θを算出し、それを現在位置メモリ93dに記憶する。すると、これ以後は、x’軸およびy’軸の交点を原点O’とする座標系が用いられて、車両1の車両位置および車両方位θが算出されていく。
また、車両1の自律走行中に、目標とする駐車位置O’が再認識されて、原点Oが間違った原点であることが判明すると、原点Oを到着地点とする走行経路RT1〜RT3についても、間違っていることが判明する。そのため、原点Oを到着地点とする走行経路RT1〜RT3が、原点O’を到着地点とする走行経路RT1〜RT3となるように、走行経路RT1〜RT3の位置を補正しなければならない。
上述したように、本実施形態では、車両1の自律走行が開始される前に、x軸およびy軸の交点を原点Oとする座標系が用いられて、走行経路RT1〜RT3の位置が算出される。この時点では、そもそも車両1に位置ずれが無く、x軸およびy軸の交点を原点Oとする座標系と、x軸およびy軸の交点を原点Oとする座標系とが同一であり、原点O’と、原点Oとも一致している。つまり、この時点では、走行経路RT1〜RT3の到着地点が原点O’となっている。
ところが、車両1の自律走行中に、車両1に位置ずれが起きると、図17(b)に示すように、x軸およびy軸の交点を原点Oとする座標系と、x軸およびy軸の交点を原点Oとする座標系とが異なる座標系となってしまい、原点O’と、原点Oとの位置がずれて一致しなくなる。その結果、走行経路RT1〜RT3の到着地点が原点O’から原点Oに変化してしまう。
これは、走行経路RT1〜RT3の位置を、x’軸およびy’軸の交点を原点O’とする座標系の値として扱う必要があるのに、車両1に位置ずれが起きた後は、x軸およびy軸の交点を原点Oとする座標系の値として扱われてしまうことにより生じる。このように、行経路RT1〜RT3は、そもそも原点O’を到着地点とする走行経路RT1〜RT3であるが、自律走行中に車両1に位置ずれが起きると、原点Oを到着地点とする走行経路RT1〜RT3へと変化してしまう。
そこで、本実施形態では、目標とする駐車位置O’を再認識した場合に、x’軸およびy’軸の交点を原点O’とする座標系を用いて、現在の車両1の車両位置と、現在の車両1の車両方位θとを算出し、それらを現在位置メモリ93dに記憶している。これにより、車両1の自律走行が開始される前と同様に、x’軸およびy’軸の交点を原点O’とする座標系において、車両1が位置ずれを起こしていない状態に戻せる。よって、走行経路RT1〜RT3を、原点O’を到着地点とする走行経路RT1〜RT3へと戻すことができる。
そして、この後は、上述したように、x’軸およびy’軸の交点を原点O’とする座標系が用いられて、車両1の車両位置および車両方位θが算出されていく。よって、走行制御装置100により車両1が自律走行させられると、図17(c)に示すように、車両1は、原点O’を到着地点とする走行経路RT1〜RT3に沿って走行していく。従って、車両1を目的とする駐車位置O’に精度良く駐車させることができる。
以上、図17を参照して説明したように、本実施形態では、単に、x’軸およびy’軸
の交点を原点O’とする座標系を用いて、正しい車両1の車両位置および車両方位θを算出し、それらを現在位置メモリ93dに記憶するだけで、原点Oと到着地点とする走行経路RT1〜RT3を、原点O’を到着地点とする走行経路RT1〜RT3に戻すことができる。よって、座標変換などの複雑な演算を行って、原点Oを到着地点とする走行経路RT1〜RT3の位置を、原点O’を到着地点とする走行経路RT1〜RT3の位置に補正しなくても良いので、走行制御装置100に掛かる負担を抑制できる。
また、本実施形態では、目標とする駐車位置O’を再認識した場合に、現在の車両1の車両位置から、再認識した駐車位置O’まで車両1を走行させるための走行経路を再生成するのではなく、既存の走行経路RT1〜RT3をそのまま利用するように構成されている。つまり、走行経路を再生成し、その再生成された走行経路に沿って車両1を走行させるのではなく、既存の走行経路RT1〜RT3に沿って車両1を走行させるように構成されている。
目標とする駐車位置O’を再認識した場合に、走行経路の再生成を行うと、一旦、車両1を駐車位置O’から遠ざけて、切り返しを行ってから駐車位置O’に近づける経路など、既存の走行経路RT1〜RT3を車両1に走行させた場合と比較して、走行距離の長い走行経路が生成されるおそれがある。また、再認識されるたびに、切り返しを行う経路が生成される場合があり、車両1が前進および後退を繰り返し、駐車を完了することができなくなってしまうおそれもある。よって、走行経路を再生成せずに、既存の走行経路RT1〜RT3に沿って車両1を走行させることで、現在の車両1の車両位置から、再認識した駐車位置O’までの車両1の走行距離が長くなることと、駐車不可能になることとを抑制できる。
従って、目標とする駐車位置O’を再認識して、車両1の位置ずれを補正した後に、車両1の走行に伴って、再度、車両1が位置ずれを起こすことを抑制できる。故に、車両1が走行経路RT1〜RT3から外れることを抑制できるので、車両1を実際の駐車位置O’に精度良く滑らかに駐車させることができる。
ここで、図18〜図22を参照して、経路走行処理(S14)について説明する。図18は、走行制御装置100により実行される経路走行処理を示すフローチャートである。経路走行処理は、走行経路RT1〜RT3に沿って車両1を自律走行させるための処理であり、車両1から目標とする駐車位置O(図17参照)までの直線距離が短くなる度に、実際の駐車位置O’(図17参照)の再認識を試みる。
経路走行処理(S14)では、まず、RAM93の点経路メモリ93bの中から、経路点P0(車両1の出発位置)における経路点情報を取得して(S111)、その経路点情報の車両位置と、その経路点情報の車両方位θとを、RAM93の現在位置メモリ93dに記憶する(S112)。
そして、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)から、目標とする駐車位置O(即ち、原点O)までの直線距離d0を算出して(S113)、その算出した直線距離d0を、直線距離daとして前回補正時直線距離メモリ93hに記憶する(S114)。
次に、走行制御点メモリ93cに記憶されている走行制御点Qの中から、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)に、車両位置が最も近い走行制御点Qを一つ特定する(S115)。尚、上述したように、経路点P0(車両1の出発位置)上には走行制御点Qが生成されていない。よって、経路走行処理が開始された場合に、S115の処理が実行されると、経路点P0から0.05mだけ目標とする駐車位置Oに近づいた位置の走行制御点Qが特定される。つまり、「ID番号=1」の走行制御点Qが特定される。
そして、S115の処理で特定された走行制御点Qに対応する車両設定情報を、走行制御点メモリ93cから取得する(S116)。次に、車両1に対して設定される障害物判定領域E(図16参照)内に障害物が有るかを判定し(S117)、S117の判定が肯定される場合には(S117:Yes)、障害物に衝突する可能性があるので、S124の処理へ移行する。
一方、S117の判定が否定される場合には(S117:No)、S116の処理で取得した車両設定情報に基づいて、車両を走行させる(S118)。具体的には、現在位置メモリ93dに記憶されている車両方位および車両方位θが、S116の処理で取得された車両位置および車両方位θと一致するように、車両1の走行が制御される。その結果、車両1が走行経路RT1〜RT3上を自律走行するように、車両1の走行が制御される。
そして、現在の車両1の車両位置および車両方位θを算出して、その算出した各値を、現在位置メモリ93dに記憶する(S119)。具体的には、最後に現在位置メモリ93dの値が更新されてから、今回のS119の処理が実行されるまでの車両1の移動量(移動した距離、及び、変化した車両方位)を算出し、その算出した移動量を、現在位置メモリ93dの値に加算して、現在の車両1の車両位置と、現在の車両1の車両方位θとを更新する。
次に、目標とする駐車位置Oに車両1が到着したかを判定する(S120)。具体的には、現在位置メモリ93dに記憶されている車両位置と、目標とする駐車位置Oとの距離が、所定距離(例えば、0.1m)以内であれば、目標とする駐車位置Oに車両1が到着したと判定する。そして、S120の判定が肯定される場合には(S120:Yes)、S124の処理へ移行する。
S124の処理では、車両1を停車させ(S124)、そして、経路走行処理を終了し、自動駐車処理(図8参照)に戻る。一方、S120の判定が否定される場合には(S120:No)、補正可否判定処理を実行する(S121)。
ここで、図19を参照して、補正可否判定処理(S121)について説明する。図19は、走行制御装置100により実行される補正可否判定処理を示すフローチャートである。補正可否判定処理は、車両1の位置ずれを補正するために、走行制御装置100において目標とする駐車位置Oの再認識を試みるか否かを判定するための処理である。
本実施形態では、車両1の位置ずれを補正するために、走行制御装置100において目標とする駐車位置Oの再認識を試みるが、この目標とする駐車位置Oの再認識は、目標とする駐車位置Oに車両1が近づいている場合に行い、車両1が目標とする駐車位置Oから遠ざかっている場合には行わない。
その理由は、目標とする駐車位置Oに車両1が近いほど、実際の駐車位置O’を精度良く特定できる可能性が高いからである。上述したように、本実施形態では、駐車予定エリアPK付近を含む撮像エリアKFを、第3カメラ26cにより撮像して、その撮像された画像の中から実際の駐車エリアPK’を特定している。
例えば、第3カメラ26cにより同一の解像度および倍率で、近くの対象物と、遠くの対象物とをそれぞれ撮像した場合は、近くの対象物を撮像した時の方が、画像全体のうち対象物の占める領域が大きくなるため、画像処理において対象物までの距離や位置を特定し易い。
また、撮像された画像に基づいて、第3カメラ26cから対象物までの距離や位置を特定する場合は、画像全体のうち基準画素(例えば、最も車両1に近い画素)から対象物を示す画素までの間に並ぶ画素数を計数して、第3カメラ26から対象物までの距離を換算する。しかしながら、一画素に相当する距離は、基準画素に近い画素ほど短くなり、基準画素から離れている画素ほど大きくなる。また、基準画素から対象物を示す画素までの間に並ぶ画素数は、対象物が第3カメラ26cに近いほど少なく、遠いほど多くなる。
そのため、測定誤差は、近くの対象物を撮像した時の方が小さくなり、遠くの対象物を撮像した時の方が大きくなる。よって、近くの対象物までの距離や位置を特定する場合よりも、遠くの対象物までの距離や位置を特定する場合の方が、測定誤差が大きくなる可能性が高くなり、対象物までの距離や位置に含まれる誤差も大きくなる可能性が高い。
そこで、本実施形態では、車両1が目標とする駐車位置Oから遠ざかっており、測定誤差が大きくなる可能性が高い場合には、目標とする駐車位置Oの再認識を行わず、目標とする駐車位置Oに車両1が近づいており、測定誤差を抑制できる可能性が高い場合に、目標とする駐車位置Oの再認識を行っている。
これにより、目標とする駐車位置Oが再認識された場合に、再認識された駐車位置O’に含まれる誤差を抑制できる可能性を高めることができる。よって、再認識された駐車位置O’に基づいて車両1の位置ずれが補正される場合に、正しく補正できる可能性を向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
尚、詳細については後述するが、本実施形態では、車両1から目標とする駐車位置Oまでの直線距離を基準にして、目標とする駐車位置Oに車両1が近づいているか、遠ざかっているかを判定している。
ここで、補正可否判定処理の説明に戻る。補正可否判定処理(S121)では、まず、RAM93の現在位置メモリ93dから、現在の車両1の車両位置を取得して(S131)、現在の車両1の車両位置から、目標とする駐車位置O(即ち、原点O)までの直線距離dnを算出する(S132)。例えば、現在の車両1の車両位置が、(xn,yn)であれば、直線距離dnは、
dn=(xn 2+yn 2)1/2
により算出される。
次に、前回補正時直線距離メモリ93hから直線距離daを取得する(S133)。尚、車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間であれば、直線距離daとして、車両1の出発地点から目標とする駐車位置O(即ち、原点O)までの直線距離d0が取得される。一方、車両1の位置ずれが補正された後については、直線距離daとして、前回の補正が行われた時の車両1の車両位置から目標とする駐車位置Oまでの直線距離が取得される。
そして、直線距離daが直線距離dn以上であるかを判定する(S134)。即ち、車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間であれば、出発地点に車両1が居た時と比較して、目標とする駐車位置Oに車両1が近づいたか、又は、同一であるかが判定される。一方、車両1の位置ずれが補正された後については、前回の補正時と比較して、目標とする駐車位置Oに車両1が近づいたか、又は、同一であるかが判定される。
S134の判定が否定される場合は(S134:No)、車両1が目標とする駐車位置Oから遠ざかっている場合である。この場合は、目標とする駐車位置Oを再認識しても、測定誤差が大きくなる可能性が高いので、目標とする駐車位置Oの再認識を行わない。具体的には、位置ずれ補正フラグ93eをオフに設定して(S136)、補正可否判定処理を終了し、経路走行処理(図18参照)に戻る。
一方、S134の判定が肯定される場合は(S134:Yes)、目標とする駐車位置Oに車両1が近づいている場合である。この場合は、目標とする駐車位置Oの再認識を行った場合に、測定誤差を抑制できる可能性が高いので、目標とする駐車位置Oの再認識を試みる。具体的には、位置ずれ補正フラグ93eをオンに設定して(S135)、補正可否判定処理を終了し、経路走行処理(図18参照)に戻る。
以上の図19に示す補正可否判定処理によって、車両1が目標とする駐車位置Oから遠ざかっており、測定誤差が大きくなる可能性が高い場合には、目標とする駐車位置Oの再認識を行わず、目標とする駐車位置Oに車両1が近づいており、測定誤差を抑制できる可能性が高い場合に、目標とする駐車位置Oの再認識を行える。
よって、目標とする駐車位置Oが再認識された場合に、再認識された駐車位置O’に含まれる誤差を抑制できる可能性を高めることができる。従って、再認識された駐車位置O’に基づいて車両1の位置ずれが補正される場合に、正しく補正できる可能性を向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
また、車両1が目標位置Oに近づく度に、目標とする駐車位置O’の再認識が試みられるので、再認識された駐車位置O’に含まれる誤差を徐々に(段階的に)低下させることができる。よって、目標とする駐車位置O’の特定精度を徐々に(段階的に)向上させることができるので、再認識された駐車位置O’に基づいて車両1の位置ずれが補正する度に、正しく補正できる可能性を徐々に(段階的に)向上させることができる。従って、車両1が目標位置O’に近づく度に、車両1が目標とする駐車位置O’に到着する可能性を徐々に(段階的に)向上させることができる。
また、車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間については、出発地点に車両1が居た時と比較され、目標とする駐車位置Oに車両1が近づいた場合に、目標とする駐車位置Oの再認識が行われる。
よって、車両1の走行開始時よりも、目標とする駐車位置Oから遠ざかり、測定誤差が大きくなる可能性が高くなる場合には、目標とする駐車位置Oの再認識を中止できる。従って、目標とする駐車位置Oが再認識された場合に、再認識された駐車位置O’に含まれる誤差を抑制できる可能性を高めることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
ここで、図20を参照して、図20に示す走行経路RT1〜RT3を車両1が走行する場合に、走行制御装置100によって目標とする駐車位置Oが再認識される区間について説明する。図20(a),(b)は、走行経路RT1〜RT3のうち、走行制御装置100により駐車位置O’が再認識される区間の一例を説明するための説明図である。
尚、図20(a),(b)では、経路点P10が出発地点であり、経路点P13が目標とする駐車位置Oであって、車両1が出発地点を出発した後、経路点P11および経路点P12を経由して、目標とする駐車位置Oへ至る走行経路RT1〜RT3を示している。
また、図20(a),(b)では、目標とする駐車位置O’を原点(0,0)する座標系を示しており、x座標値は、原点O’から右に向かうほど大きくなり、原点O’から左に向かうほど小さくなる。また、y座標値は、原点O’から上に向かうほど大きくなり、原点O’から下に向かうほど小さくなる。
図20(a)に示す例では、最初、出発地点から目標とする駐車位置O’までの直線距離がd0であるが、車両1が出発地点から経路点P11へ前進するに伴って、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnが徐々に短くなり、一旦、直線距離dn1まで短くなる。
上述したように、車両1が走行開始した直後は、まだ、走行制御装置100において車両1の位置ずれが、一度も補正されていないため、出発地点から目標とする駐車位置O’までの直線距離d0と、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnとが比較される。
ここでは、直線距離dnが直線距離d0よりも短いので、目標とする駐車位置O’に車両1が近づいたと判定され、目標とする駐車位置O’の再認識が試みられる。そして、目標とする駐車位置O’の再認識が成功すると、車両1の位置ずれが補正されて、今回算出された直線距離dnが、直線距離da(図示しない)として設定される。以後、説明を簡単にするために、目標とする駐車位置O’の再認識は常に成功するものとして、説明を続ける。
車両1の位置ずれが補正された後、更に、車両1が出発地点から経路点P11へ前進すると、次は、前回の補正が行われた時に設定された直線距離daと、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnとが比較される。ここでも、直線距離dnが直線距離daよりも短いので、目標とする駐車位置O’に車両1が近づいたと判定され、目標とする駐車位置O’の再認識が試みられる。そして、車両1の位置ずれが補正される。
以後同様に、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnが、直線距離dn1となるまで、目標とする駐車位置O’の再認識が試みられ、車両1の位置ずれが補正される。その結果、図20(b)に示すように、車両1が出発地点から経路点P11へ前進する区間のうち、車両1の車両位置から目標とする駐車位置O’までの直線距離dnが、直線距離d0から直線距離dn1になるまでの間、目標とする駐車位置O’の再認識が試みられる。そして、目標とする駐車位置O’の再認識が成功すると、車両1の位置ずれが補正される。
そして、図20(a)に示すように、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離がdn1となった後、更に、車両1が経路点P11へ前進すると、経路点P11へ前進するに伴って、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnが徐々に長くなり、直線距離dn2となって、更に直線距離dn3となる。
その結果、前回の補正が行われた時に設定された直線距離daと、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnとが比較されても、直線距離dnが直線距離daよりも長くなるので、車両1が目標とする駐車位置O’から遠ざかったと判定される。よって、目標とする駐車位置O’の再認識と、車両1の位置ずれの補正とが共にスキップされる。
次に、車両1が経路点P11を経由すると、今度は、経路点P12へ後退するに伴って、直線距離dnが徐々に短くなる。しかしながら、車両1が経路点P12を経由するまでは、前回の補正が行われた時に設定された直線距離daと、現在の車両1の車両位置から目標とする駐車位置Oまでの直線距離dnとが比較されても、直線距離dnが直線距離daよりも長くなるので、車両1が目標とする駐車位置O’から遠ざかったと判定される。よって、目標とする駐車位置O’の再認識と、車両1の位置ずれの補正とが共にスキップされる。
一方、車両1が経路点P12を経由すると、その直線距離dnが、直線距離dn4となって、直線距離da(即ち、直線距離dn1)よりも短くなる。よって、目標とする駐車位置O’に車両1が近づいたと判定され、目標とする駐車位置O’の再認識が試みられる。そして、車両1の位置ずれが補正される。
以後同様に、車両1が目標とする駐車位置O’へ走行するに伴って、現在の車両1の車両位置から目標とする駐車位置O’までの直線距離dnが、直線距離dn4から徐々に小さくなり、最終的に0になる。よって、車両1が目標とする駐車位置O’へ到着するまでの間、目標とする駐車位置O’の再認識が試みられ、車両1の位置ずれが補正される。
即ち、図20(b)に示すように、車両1が経路点P12から目標位置まで後退する区間において、目標とする駐車位置O’の再認識が試みられる。そして、目標とする駐車位置Oの再認識が成功すると、車両1の位置ずれが補正される。
上述したように、測定誤差は、近くの対象物を撮像した時の方が小さくなり、遠くの対象物を撮像した時の方が大きくなる。よって、車両1の位置ずれが補正されたときと比較して、車両1が目標位置Oに近づく度に、目標とする駐車位置O’を再認識することで、再認識された駐車位置O’に含まれる誤差を徐々に(段階的に)低下させることができるので、目標とする駐車位置O’の特定精度を徐々に(段階的に)向上させることができる。
従って、再認識された駐車位置O’に基づいて車両1の位置ずれが補正する度に、正しく補正できる可能性を徐々に(段階的に)向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を徐々に(段階的に)向上させることができる。
ここで、図18の説明に戻る。補正可否判定処理(S121)が終了したら、次に、位置ずれ補正フラグ93eがオンであるかを判定し(S122)、S122の判定が否定される場合には(S122:No)、S115の処理へ戻る。一方、S122の判定が肯定される場合には(S122:Yes)、位置ずれ補正処理を実行して(S123)、S115の処理へ戻る。
ここで、図21を参照して、位置ずれ補正処理(S123)について説明する。図21は、走行制御装置100により実行される位置ずれ補正処理を示すフローチャートである。位置ずれ補正処理は、目標とする駐車位置O’(図17参照)を再認識して、車両1の正しい車両位置および車両方位θを算出し直すための処理である。
位置ずれ補正処理(S123)では、まず、現在の車両1の車両位置および車両方位θ(即ち、現在位置メモリ93dに記憶されている車両位置および車両方位θ)を、RAM93の再認識開始位置メモリ93fに記憶する(S141)。そして、駐車予定エリアPK付近を含む撮像エリアKF(図17参照)を、第3カメラ26cにより撮像し(S142)、その撮像された画像を取得して画像解析を行い、目標とする駐車位置O’(図17参照)を再認識する(S143)。
そして、目標とする駐車位置O’を再認識できたかを判定し(S144)、S144の判定が否定される場合は(S144:No)、駐車位置を再認識できなかった場合である。この場合は、位置ずれ補正処理を終了し、経路走行処理(図18参照)に戻る。
一方、S144の判定が肯定される場合には(S144:Yes)、現在の車両1の車両位置および車両方位θを算出して、その算出した各値を、現在位置メモリ93dに記憶する(S145)。尚、具体的には、図18のS119と同様な処理を実行する。
次に、現在の車両1の車両位置および車両方位θ(即ち、現在位置メモリ93dに記憶されている車両位置および車両方位θ)を、RAM93の再認識終了位置メモリ93gに記憶する(S146)。そして、再認識開始位置メモリ93fに記憶されている車両位置および車両方位θと、再認識終了位置メモリ93gに記憶されている車両位置および車両方位θとに基づいて、目標とする駐車位置O’の再認識中に、車両1が移動した移動量(移動した距離、及び、変化した車両方位)を算出する(S147)。尚、移動量の算出方法については、図22を参照して後述する。
そして、再認識した駐車位置O’を原点とする座標系を用いて、再認識開始時の車両1の車両位置および車両方位θを算出し(S148)、S148の処理で算出した車両1の車両位置および車両方位θと、S147の処理で算出した再認識中の移動量とに基づいて、現在の車両1の車両位置および車両方位θを算出する(S149)。
ここで、図22を参照して、目標とする駐車位置O’の再認識中に、車両1が移動した移動量を算出する方法と、再認識した駐車位置O’を原点とする座標系を用いて、再認識が終了した時の車両1の車両位置および車両方位θを算出する方法とについて説明する。
図22(a)は、目標とする駐車位置O’の再認識中に、車両1が移動した移動量を算出する方法を説明するための模式図であり、図22(b)は、再認識した駐車位置O’を原点とする座標系を用いて、再認識が終了した時の車両1の車両位置および車両方位θを算出する方法を説明するための模式図である。
尚、図22(a)では、x軸およびy軸の交点を原点Oとする座標系のみを用いて、車両1の車両位置および車両方位を示している。一方、図22(b)では、x軸およびy軸の交点を原点Oとする座標系と、x’軸およびy’軸の交点を原点O’とする座標系との2つの座標系を用いて、車両1の車両位置および車両方位を示している。
より具体的には、図22(a)では、目標とする駐車位置O’の再認識が開始された時の車両1の車両位置をQa(xa,ya)と示すと共に、その時の車両1の車両方位をθaと示している。また、目標とする駐車位置O’の再認識が終了した時の車両1の車両位置をQb(xb,yb)と示すと共に、その時の車両1の車両方位をθbと示している。但し、これらの車両位置Qa,Qbおよび車両方位θa,θbは、x軸およびy軸の交点を原点Oとする座標系における値とする。
一方、図22(b)では、図22(a)で示す車両位置Qa,Qbおよび車両方位θa,θbに加えて、目標とする駐車位置O’の再認識が開始された時の車両1の車両位置をQa’(xa’,ya’)と示すと共に、その車両1の車両方位をθa’と示している。また、走行制御装置100において目標とする駐車位置O’の再認識が終了した時の車両1の車両位置をQb’(xb’,yb’)と示すと共に、その車両1の車両方位をθb’と示している。但し、これらの車両位置Qa’,Qb’および車両方位θa’,θb’は、x’軸およびy’軸の交点を原点O’とする座標系における値とする。
本実施形態では、走行制御装置100において、目標とする駐車位置O’の再認識が試みられる場合、第3カメラ26cによって撮像エリアKF(図17参照)が撮像され、その撮像された画像に基づいて画像解析が行われる。尚、画像解析に用いられる画像は、再認識が開始された時の画像であるので、画像解析において目標とする駐車位置O’が再認識されると、再認識が開始された時の車両1の車両位置Qa’(xa’,ya’)と、その車両1の車両方位θa’とが算出される。
ところが、この画像解析には所定の時間を要する一方、車両1の自律走行は継続される。そのため、目標とする駐車位置O’の再認識が開始されてから、再認識が開始された時の車両1の車両位置Qa’(xa’,ya’)と、その車両1の車両方位θa’とが算出されるまでの間に車両1は移動して、その結果、車両1の車両位置および車両方位θが変化してしまう。よって、車両1の車両位置Qa’(xa’,ya’)と、その車両1の車両方位θa’とが算出されたとしても、再認識中に車両1が移動した分、算出された各値は、実際の車両1の車両位置および車両方位θと一致しなくなる。
そこで、本実施形態では、再認識中に車両1が移動した移動量(移動した距離、及び、変化した車両方位)を算出して、その移動量を、車両1の車両位置Qa’(xa’,ya’)と、その車両1の車両方位θa’とに加えて、再認識が終了した時の車両1の車両位置車両位置Qb’(xb’,yb’)と、その車両1の車両方位をθb’とを算出する。これにより、再認識が終了した時の、車両1の正しい車両位置および車両方位θを算出できるので、車両1の位置ずれを精度良く補正できる。従って、再認識された駐車位置O’に車両1を精度良く向かわせることができ、車両1を駐車位置O’に精度良く停車させることができる。
図22(a)に示すように、目標とする駐車位置O’の再認識が開始された時の車両1の車両位置Qa(xa,ya)から、目標とする駐車位置O’の再認識が終了した時の車両1の車両位置Qb(xb,yb)までの直線距離をdとした場合、その直線距離dは、
d=((xb−xa)2+(yb−ya)2)1/2
により算出される。また、変化した車両方位をΔθvとした場合、その車両方位をΔθvは、
Δθv=θb−θa
により算出される。これにより、再認識中に車両1が移動した移動量(直線距離d、及び、変化した車両方位Δθv)を算出できる。そして、x軸から直線距離dまでの時計回りの角度をθdとした場合、その角度θdは、
θd=tan−1((yb−ya)/(xb−xa))
により算出される。ここで、目標とする駐車位置O’が再認識され、x’軸およびy’軸の交点を原点O’する座標系が用いられて、目標とする駐車位置O’の再認識が開始された時の車両1の車両位置Qa’(xa’,ya’)と、その車両1の車両方位θa’とが算出されたとする。
すると、図22(b)に示すように、目標とする駐車位置O’の再認識が開始された時の車両1の車両位置Qa,Qa’が2つ決まる。具体的には、x軸およびy軸の交点を原点Oする座標系における車両位置Qaと、x’軸およびy’軸の交点を原点O’する座標系における車両位置Qa’との2つが決まる。同様に、x軸およびy軸の交点を原点Oする座標系における車両方位θaと、x’軸およびy’軸の交点を原点O’する座標系における車両方位θbとの2つも決まる。
この2つの車両位置Qa,Qa’は、同一地点を示すものであり、2つの車両方位θa,θa’は、同一の車両方位を示すものである。よって、この2つの車両位置Qa,Qa’と、2つの車両方位θa,θa’とを比較することで、2つの座標系の傾き具合などを算出できる。
ここで、x軸と、x’軸とのなす角度をΔθとすると、その角度Δθは、
Δθ=θa’−θa
により算出される。そして、x’軸およびy’軸の交点を原点O’とする座標系において、再認識が終了した時の車両1の車両位置をQb’(xb’,yb’)とし、その時の車両1の車両方位をθb’とすると、車両位置Qb’(xb’,yb’)と、車両方位θb’とは、
xb’=xa’+d・cos(θd−Δθ)
yb’=ya’+d・sin(θd−Δθ)
θb’=θa’+Δθv
により算出される。
このように、図22を参照して説明した数式を用いることにより、再認識中に車両1が移動した移動量(直線距離d、及び、変化した車両方位ΔθV)を算出でき、その移動量を、再認識された駐車位置O’を原点とした座標系における車両1の車両位置Qa’に加えて、再認識が終了した時の車両1の車両位置Qb’を算出できる。
よって、目標とする駐車位置O’の再認識中に車両1が移動することを考慮せず、画像解析により算出される車両位置(即ち、再認識を開始した時の車両1の車両位置)Qa’を、再認識が終了した時の車両1の車両位置とする場合よりも、車両1の位置ずれを精度良く補正できる。従って、再認識された駐車位置O’に車両1を精度良く向かわせることができ、車両1を駐車位置O’に精度良く停車させることができる。
ここで、図21の説明に戻る。S149の処理が終了したら、S149の処理で算出した車両1の車両位置Qb’(xb’,yb’)および車両方位θb’(図22参照)を、現在位置メモリ93dに記憶する(S150)。次に、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)を用いて、再認識された駐車位置O’(即ち、原点O’)までの直線距離dnを算出し、その直線距離dnから所定量Δdを引いたものを、新たな直線距離daとして算出する(S151)。
尚、所定量Δdは、適宜決めれば良い。直線距離dnから所定量Δdを引いたものを、新たな直線距離daとすることで、車両1が所定量Δdだけ、再認識された駐車位置O’に近づいた場合に、位置ずれ補正フラグ93eがオンに設定される(図19のS134,S135参照)。よって、所定量Δdを設けない場合と比較して、次に、位置ずれ補正処理が実行されるまでに猶予ができる。従って、位置ずれ補正処理が実行された直後に、続けて位置ずれ補正処理が実行されることを抑制できる。
つまり、再認識された駐車位置O’に含まれる誤差の程度が、殆ど変化しないにも関わらず、位置ずれ補正処理が実行されることを抑制できるので、不要な処理を抑制でき、CPU91に掛かる負担を軽減できる。
そして、S151の処理が終了したら、次に、S151の処理で算出した直線距離daを、前回補正時直線距離メモリ93hに記憶して(S152)、位置ずれ補正処理を終了し、経路走行処理(図18参照)に戻る。
以上の図21に示す位置ずれ補正処理によって、再認識が終了した時の、車両1の正しい車両位置を算出できるので、車両1の位置ずれを精度良く補正できる。従って、再認識された駐車位置O’に車両1を精度良く向かわせることができ、車両1を駐車位置O’に精度良く停車させることができる。
また、車両1の位置ずれを補正した場合に、前回補正時直線距離メモリ93hに記憶している直線距離daを更新できる。よって、以降は、現在の車両1の車両位置よりも、車両1が再認識した目標位置O’に近づいた場合に、位置ずれ補正フラグ93eをオンに設定できる(図19のS134,S135参照)。
従って、再認識される駐車位置O’に含まれる誤差が小さくなる可能性が高い場合に、再度、車両1の位置ずれを補正できる。従って、車両1の位置ずれを補正した場合に、正しく補正できる可能性を向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
また、上述したように、本実施形態では、車両1の位置ずれを補正した場合に、前回補正時直線距離メモリ93hの直線距離daを更新している。例えば、目標とする駐車位置O’を再認識する度に、前回補正時直線距離メモリ93hの直線距離daを更新すると、車両1の位置ずれを補正しないにも関わらず、直線距離daが徐々に短くなる可能性がある。
その結果、位置ずれ補正フラグ93eがオンに設定される機会が抑制されてしまい(図19のS134,S135参照)、再認識される駐車位置O’に含まれる誤差が小さくなる可能性が高くても、車両1の位置ずれを補正できないおそれがある。本実施形態のように、車両1の位置ずれを補正した場合に、前回補正時直線距離メモリ93hに記憶している直線距離daを更新することで、車両1の位置ずれを補正できる機会が減ることを抑制できるので、正しく補正できる可能性を向上させることができる。従って、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
また、車両1の走行開始時に、運転者により設定される駐車位置Oを取得した場合に、その駐車位置Oに誤差が含まれていたとしても、駐車位置O’を再認識し、車両1の位置ずれを補正することで、その誤差も補正できる。
ここで、図18の説明に戻る。位置ずれ補正処理(S123)が終了したら、次に、S115の処理に戻る。すると、S115の処理において、走行制御点メモリ93cに記憶されている走行制御点Qの中から、現在の車両1の車両位置(即ち、位置ずれ補正処理(図21参照)において補正された車両位置)に、車両位置が最も近い走行制御点Qが一つ特定される。その後、S118の処理が実行されると、現在位置メモリ93dに記憶されている車両方位および車両方位θが、S115の処理で取得された車両位置および車両方位θと一致するように、車両1の走行が制御される。
ここでは、現在位置メモリ93dに、位置ずれ補正処理により位置ずれの補正された車両方位および車両方位θが記憶されている。よって、上述した位置ずれ補正処理が行われるまで、車両1が走行経路RT1〜RT3から外れた状態で自律走行していたとしても、これ以後は、車両1が走行経路RT1〜RT3上を自律走行するように、車両1の走行が制御される。
次に、図23および図24を参照して、位置ずれ補正処理(図21参照)の変形例について説明する。図21に示す位置ずれ補正処理では、走行経路RT1〜RT3の位置は正しく、現在の車両1の車両位置および車両方位θが間違っているという前提で、目標とする駐車位置O’を再認識し、車両1の正しい車両位置および車両方位θを算出し直すというものであった。
これに対し、図23に示す位置ずれ補正処理では、その前提を反対にしたものであり、現在の車両1の車両位置および車両方位θは正しく、走行経路RT1〜RT3の位置が間違っているという前提で、目標とする駐車位置O’を再認識し、走行経路RT1〜RT3の正しい位置を算出し直す。
ここで、図23を参照して、位置ずれ補正処理(S123)の変形例について説明する。図23は、走行制御装置100により実行される位置ずれ補正処理の変形例を示すフローチャートである。この位置ずれ補正処理は、目標とする駐車位置O’(図17参照)を再認識して、走行経路RT1〜RT3の正しい位置を算出し直すための処理である。尚、図21に示す位置ずれ補正処理における処理と、同一の処理を実行するステップについては、同一の符号を付してその説明を省略し、異なる部分についてのみ説明する。
この位置ずれ補正処理(S123)では、まず、S141〜S144の各処理を実行する。そして、S144の判定が否定される場合には(S144:No)、位置ずれ補正処理を終了し、経路走行処理(図18参照)に戻る。一方、S144の判定が肯定される場合には(S144:Yes)、S145の処理を実行する。
S145の処理が終了したら、次に、走行制御点メモリ93cに記憶されている走行制御点Qの中から、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)に、車両位置が最も近い走行制御点Qを一つ特定する(S161)。
次に、S161の処理で特定された走行制御点Qに設定されているID番号を、変数iに設定し(S162)、ID番号がiである走行制御点Qの車両設定情報を、走行制御点メモリ93cから取得する(S163)。
次に、S163の処理で取得した車両設定情報の車両位置および車両方位θを、再認識開始時の車両位置および車両方位θと、再認識した駐車位置O’とに基づいて補正する(S164)。尚、補正方法については、図24を参照して後述する。そして、変数iに1を加算して、変数iの値を更新し(S165)、変数iの値が、変数IDmaxの値以下であるかを判定する(S166)。
S166の判定が肯定される場合は(S166:Yes)、走行経路RT1〜RT3上において、S161の処理で特定された走行制御点Qから、再認識された駐車位置O’までの間に、他にも走行制御点Qがある場合である。この場合は、S164の処理に戻り、S164〜S166の処理を繰り返す。これにより、S161の処理で特定された走行制御点Qから、再認識された駐車位置O’までの間の各走行制御点Qについて、その車両位置および車両方位θを補正できる。
ここで、図24を参照して、走行制御点Qの車両位置および車両方位θを、再認識開始時の車両位置および車両方位θと、再認識した駐車位置O’とに基づいて補正する方法について説明する。
図24(a)は、走行制御装置100により走行経路RT2〜RT3の位置が補正される場合の一例を説明するための模式図であり、図24(b)は、走行経路RT2〜RT3の位置を補正する方法を説明するための模式図である。
尚、図24(a),(b)では、駐車予定位置(ここでは、間違った駐車位置O)を原点Oと示し、再認識した駐車位置を原点O’と示している。また、図24(b)では、再認識を開始した時の車両位置および車両方位θを、x軸およびy軸の交点を原点Oとする座標系と、x’軸およびy’軸の交点を原点O’とする座標系との2つの座標系を用いて示している。
具体的には、x軸およびy軸の交点を原点Oとする座標系において、再認識を開始した時の車両位置を(xv,yv)と示し、その車両位置における車両方位をθvと示す。また、x’軸およびy’軸の交点を原点O’とする座標系において、再認識を開始した時の車両位置を、(xv’,yv’)と示し、その車両位置における車両方位をθv’と示している。
上述したように、車両1は、原点Oを到着地点とする走行経路RT1〜RT3に沿って自律走行していくが、車両1の自律走行中に、目標とする駐車位置O’が再認識されると、原点Oが間違った原点(到着地点)であることが判明する。つまり、このまま車両1を自律走行させても、目標とする駐車位置O’に到着できないことが判明する。
そこで、本実施形態では、図24(a)に示すように、走行経路RT1〜RT3の到着地点が駐車位置O’となるように、走行経路RT1〜RT3の位置を補正し、車両1を目標とする駐車位置O’へ到着させる。
上述したように、本実施形態では、車両1の自律走行が開始される前に、x軸およびy軸の交点を原点Oとする座標系が用いられて、走行経路RT1〜RT3の位置が算出される。この時点では、そもそも車両1に位置ずれが無く、x軸およびy軸の交点を原点Oとする座標系と、x軸およびy軸の交点を原点Oとする座標系とが同一であり、原点O’と、原点Oとも一致している。つまり、この時点では、走行経路RT1〜RT3の到着地点が原点O’となっている。
ところが、車両1の自律走行中に、車両1に位置ずれが起きると、図24(a)に示すように、x軸およびy軸の交点を原点Oとする座標系と、x軸およびy軸の交点を原点Oとする座標系とが異なる座標系となってしまい、原点O’と、原点Oとの位置がずれて一致しなくなる。その結果、走行経路RT1〜RT3の到着地点が原点O’から原点Oに変化してしまう。
これは、走行経路RT1〜RT3の位置を、x’軸およびy’軸の交点を原点O’とする座標系の値として扱う必要があるのに、車両1に位置ずれが起きた後は、x軸およびy軸の交点を原点Oとする座標系の値として扱われてしまうことにより生じる。このように、行経路RT1〜RT3は、そもそも原点O’を到着地点とする走行経路RT1〜RT3であるが、自律走行中に車両1に位置ずれが起きると、原点Oを到着地点とする走行経路RT1〜RT3へと変化してしまう。
そのため、車両1に自律走行を継続させると、x’軸およびy’軸の交点を原点O’とする座標系における原点O’を、x軸およびy軸の交点を原点Oとする座標系に投影した点(即ち、原点O)に、車両1が到着してしまう。
そこで、本実施形態では、x’軸およびy’軸の交点を原点O’とする座標系において、駐車位置O’に到着する走行経路RT1〜RT3の位置を、x軸およびy軸の交点を原点Oとする座標系の値に補正(変更)する。即ち、座標変換を行って、正しい座標を算出し直す。
これにより、x’軸およびy’軸の交点を原点O’とする座標系における走行経路RT1〜RT3を、x軸およびy軸の交点を原点Oとする座標系に投影でき、x’軸およびy’軸の交点を原点O’とする座標系の値として扱う必要があった走行経路RT1〜RT3の位置を、x軸およびy軸の交点を原点Oとする座標系の値として扱うことができる。よって、走行経路RT1〜RT3を、原点O’を到着地点とする走行経路RT1〜RT3へ戻すことができる。
具体的には、次のように座標変換を行う。図24(b)に示すように、x’軸およびy’軸の交点を原点O’とする座標系において、任意の走行制御点Qnの車両位置を(xn,yn)とし、その車両方位をθvnとする。
そして、走行制御点Qnの車両位置から、再認識を開始した時の車両位置(xv、yv)までの直線距離をdnとすると、その直線距離dnは、
dn=((xn−xv)2+(yn−yv)2)1/2
により算出される。また、x軸と、x’軸とのなす角度をΔθvとすると、その角度Δθvは、
Δθv=θv’−θv
により算出される。
ここで、x’軸およびy’軸の交点を原点O’とする座標系における走行制御点Qnの車両位置(xn’,yn’)を、x軸おびy軸の交点を原点Oとする座標系の車両位置(xn,yn)とすると、その車両位置(xn,yn)は、
xn=xn’+dn・cos(θn−Δθv)
yn=yn’+dn・sin(θn−Δθv)
により算出される。
また、x軸おびy軸の交点を原点Oとする座標系における車両位置(xn,yn)の車両方位をθvとすると、その車両方位θvは、
θv=θvn−Δθv
により算出される。
このように、図24を参照して説明した数式を用いることにより、x’軸およびy’軸の交点を原点O’とする座標系において、駐車位置O’に到着する走行経路RT1〜RT3の位置を、x軸およびy軸の交点を原点Oとする座標系の値に補正(変更)できる。即ち、座標変換を行って、正しい座標を算出し直すことができる。
ここで、図23の説明に戻る。S166の判定が否定される場合は(S166:No)、S161の処理で特定された走行制御点Qから、再認識された駐車位置O’までの間の各走行制御点Qについて、その車両位置および車両方位θを補正した場合である。この場合は、S151〜S152の各処理を実行して、位置ずれ補正処理を終了し、経路走行処理(図18参照)に戻る。
以上の図23に示す位置ずれ補正処理によって、x’軸およびy’軸の交点を原点O’とする座標系において、駐車位置O’に到着する走行経路RT1〜RT3の位置を、x軸およびy軸の交点を原点Oとする座標系の値に補正(変更)できる。
つまり、車両1の位置ずれにより、到着地点が原点Oに変わった走行経路RT1〜RT3を、到着地点が原点O’となる走行経路RT1〜RT3へ戻すことができる。よって、再認識された駐車位置O’に車両1を精度良く向かわせることができ、車両1を駐車位置O’に精度良く停車させることができる。
また、上述したように、走行経路RT1〜RT3上の全ての走行制御点Qについて、車両位置および車両方位θ補正するのではなく、S161の処理で特定された走行制御点Qから、再認識された駐車位置O’までの間の各走行制御点Qについて、その車両位置および車両方位θを補正している。よって、今後の車両1の走行に必要となる走行制御点Qについてのみ、車両位置および車両方位θを補正できる。従って、全ての走行制御点Qの車両位置および車両方位θを補正する場合よりも、制御的負担を軽減できる。
また、本実施形態では、目標とする駐車位置O’を再認識した場合に、現在の車両1の車両位置から、再認識した駐車位置O’まで車両1を走行させるための走行経路を再生成するのではなく、既存の走行経路RT1〜RT3を利用するように構成されている。つまり、走行経路を再生成し、その再生成された走行経路に沿って車両1を走行させるのではなく、到着地点が駐車位置O’となるように既存の走行経路RT1〜RT3の位置を補正し、その補正した走行経路RT1〜RT3に沿って車両1を走行させるように構成されている。
目標とする駐車位置O’を再認識した場合に、走行経路の再生成を行うと、一旦、車両1を駐車位置O’から遠ざけて、切り返しを行ってから駐車位置O’に近づける経路など、補正した走行経路RT1〜RT3を車両1に走行させた場合と比較して、走行距離の長い走行経路が生成されるおそれがある。また、再認識されるたびに、切り返しを行う経路が生成される場合があり、車両1が前進および後退を繰り返し、駐車を完了することができなくなってしまうおそれもある。よって、走行経路を再生成せずに、補正した走行経路RT1〜RT3に沿って車両1を走行させることで、現在の車両1の車両位置から、再認識した駐車位置O’までの車両1の走行距離が長くなることと、駐車不可能になることとを抑制できる。
従って、目標とする駐車位置O’を再認識して、車両1の位置ずれを補正した後に、車両1の走行に伴って、再度、車両1が位置ずれを起こすことを抑制できる。故に、車両1が補正した走行経路RT1〜RT3から外れることを抑制できるので、車両1を目標とする駐車位置O’に精度良く駐車させることができる。
また、車両1の走行開始時に、運転者により設定される駐車位置Oを取得した場合に、その駐車位置Oに誤差が含まれていたとしても、駐車位置O’を再認識し、車両1の位置ずれを補正することで、その誤差も補正できる。
また、本実施形態でも、車両1の位置ずれを補正した場合に、前回補正時直線距離メモリ93hの直線距離daを更新している。よって、上述したように、車両1の位置ずれを補正できる機会が減ることを抑制できるので、正しく補正できる可能性を向上させることができる。従って、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
次に、本発明の第2実施形態における走行制御装置100について説明する。尚、第1実施形態の走行制御装置100と同一な構成については、同一の符号を付してその説明を省略し、異なる部分についてのみ説明する。
上述した第1実施形態では、目標とする駐車位置Oに車両1が近づいたか否かを判定するために、現在の車両1の車両位置から目標とする駐車位置Oまでの直線距離dnを算出し、その算出した直線距離dnがより短くなったかを判定していた。これに対して、第2実施形態では、現在の車両1の車両位置を構成しているx座標値と、y座標値とのうち、少なくとも一方の値が、目標とする駐車位置にOに近づいたかを判定する。そして、現在の車両1の車両位置を構成しているx座標値と、y座標値とのうち、少なくとも一方の値が、目標とする駐車位置にOに近づいた場合に、目標とする駐車位置Oに車両1が近づいていると推定する。
まず、図25を参照して、第2実施形態における走行制御装置100の電気的構成について説明する。尚、第2実施形態における走行制御装置100の電気的構成において、第1実施形態と異なる部分は、フラッシュメモリ92(図示しない)およびRAM93である。
フラッシュメモリ92には、上述した図18のフローチャートに示す経路走行処理、図19のフローチャートに示す補正可否判定処理、及び、図21のフローチャートに示す位置ずれ補正処理に代えて、図26のフローチャートに示す経路走行処理、図27のフローチャートに示す補正可否判定処理、及び、図29に示す位置ずれ補正処理を実行する各プログラムが格納されている。
そして、RAM93には、上述した点経路パターンメモリ93aと、点経路メモリ93bと、走行制御点メモリ93cと、現在位置メモリ93dと、位置ずれ補正フラグ93eと、再認識開始位置メモリ93fと、再認識終了位置メモリ93gとに加えて、新たに、前回補正時x値メモリ93iと、前回補正時y値メモリ93jとが設けられている。
前回補正時x値メモリ93iは、走行制御装置100において車両1の位置ずれが補正された場合に、その補正時の車両1の車両位置を構成しているx座標値の絶対値を、x座標値xaとして記憶するためのメモリである。また、前回補正時y値メモリ93jは、走行制御装置100において車両1の位置ずれが補正された場合に、その補正時の車両1の車両位置を構成しているy座標値の絶対値を、y座標値yaとして記憶するためのメモリである。
後述する経路走行処理(図26参照)が実行開始される場合に、前回補正時x値メモリ93iには、車両1の出発地点におけるx座標値の絶対値が、x座標値xaとして記憶される。また、前回補正時y値メモリ93jには、車両1の出発地点におけるy座標値の絶対値が、y座標値yaとして記憶される。
その後は、車両1の位置ずれが補正される度に更新される。具体的には、車両1の位置ずれが補正される度に、前回補正時x値メモリ93iには、その補正時の車両1の車両位置を構成するx座標値の絶対値が、x座標値xaとして記憶される。また、前回補正時y値メモリ93jには、その補正時の車両1の車両位置を構成するy座標値の絶対値が、y座標値yaとしてが記憶される。前回補正時x値メモリ93iおよび前回補正時y値メモリ93jの各値は、車両1の位置ずれが補正されてから、車両1がさらに目標位置Oへ近づいたか否かを推定するために、CPU91により参照される。
次に、図26〜図29を参照して、第2実施形態の経路走行処理(S14)について説明する。図26は、第2実施形態の走行制御装置100により実行される経路走行処理を示すフローチャートである。尚、第1実施形態の経路走行処理(図18参照)における処理と、同一の処理を実行するステップについては、同一の符号を付してその説明を省略し、異なる部分についてのみ説明する。
第2実施形態の経路走行処理は、第1実施形態の経路走行処理(図18参照)におけるS113、S114、S121、及び、S123の各処理を変更したものである。具体的には、S113およびS114の各処理を、S171およびS171の各処理に変更した。また、S121の補正可否判定処理における一部の処理と、S123の位置ずれ補正処理における一部の処理とを、後述するように別の処理に変更した。第2実施形態の経路走行処理も、第1実施形態と同様に、走行経路RT1〜RT3に沿って車両1を自律走行させるための処理である。
第2実施形態の経路走行処理では、S111およびS112の処理を実行し、次に、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)のうち、x座標値の絶対値をx座標値xaとして、前回補正時x値メモリ93iに記憶する(S171)。
次に、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)のうち、y座標値の絶対値をy座標値yaとして、前回補正時y値メモリ93jに記憶する(S172)。そして、S115の処理へ移行する。
そして、S120の判定が否定される場合には(S120:No)、第2実施形態の補正可否判定処理を実行する(S121)。S121の処理が終了したら、次に、S122の判定を実行し、S122の処理が肯定される場合には(S122:Yes)、第2実施形態の位置ずれ補正処理を実行する(S123)。そして、S123の処理が終了したら、S115の処理へ戻る。
ここで、図27を参照して、第2実施形態の補正可否判定処理(S121)について説明する。図27は、第2実施形態の走行制御装置100により実行される補正可否判定処理を示すフローチャートである。尚、第1実施形態の補正可否判定処理(図19参照)における処理と、同一の処理を実行するステップについては、同一の符号を付してその説明を省略し、異なる部分についてのみ説明する。
第2実施形態の補正可否判定処理は、目標とする駐車位置Oに車両1が近づいていると推定できる場合に、走行制御装置100において目標とする駐車位置O’の再認識が試みられるように制御し、車両1が目標とする駐車位置Oから遠ざかっていると推定できる場合には再認識が行わないように制御する。上述したように、第2実施形態では、現在の車両1の車両位置を構成しているx座標値と、y座標値とのうち、少なくとも一方の値が、目標とする駐車位置にOに近づいた場合に、目標とする駐車位置Oに車両1が近づいていると推定する。
第2実施形態の補正可否判定処理(S121)では、まず、RAM93の現在位置メモリ93dから、現在の車両1の車両位置を取得する(S181)。尚、ここで取得される車両位置のうち、x座標値をxvnと記載し、y座標値をyvnと記載する。そして、前回補正時x値メモリ93iから、x座標値xa(絶対値)を取得し(S182)、前回補正時y値メモリ93jから、y座標値ya(絶対値)を取得する(S183)。
尚、車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間であれば、x座標値xaとして、車両1の出発地点におけるx座標値の絶対値が取得され、y座標値yaとして、車両1の出発地点におけるy座標値の絶対値が取得される。一方、車両1の位置ずれが補正された後については、x座標値xaとして、前回の補正が行われた時の車両1の車両位置のうちx座標値の絶対値が取得され、y座標値yaとして、前回の補正が行われた時の車両1の車両位置のうちy座標値の絶対値が取得される。
次に、S182の処理で取得したx座標値xa(絶対値)が、S181の処理で取得したx座標値xvnの絶対値以上であるかを判定し(S184)、S184の判定が否定される場合は(S184:No)、x軸方向に関して、車両1が目標とする駐車位置Oから遠ざかっていると推定できる場合である。この場合は、y軸方向に関する評価を行うために、S185の処理へ移行する。S185の処理では、S183の処理で取得したy座標値ya(絶対値)が、S181の処理で取得したy座標値yvnの絶対値以上であるかを判定する(S185)。
第2実施形態では、S184およびS185の処理によって、車両1が目標とする駐車位置Oに近づいているか、否かが判定される。具体的には、車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間であれば、出発地点におけるx座標値およびy座標値のうち少なくとも一方が、目標とする駐車位置Oに車両1が近づいたか、又は、同一であるかが判定される。一方、車両1の位置ずれが補正された後については、前回の補正が行われた時の車両1の車両位置を構成するx座標値およびy座標値の少なくとも一方が、目標とする駐車位置Oに車両1が近づいたか、又は、同一であるかが判定される。
S185の判定が否定される場合は(S185:No)、y軸方向に関して、車両1が目標とする駐車位置Oから遠ざかっていると推定できる場合である。この場合は、x軸方向およびy軸方向の両方において、車両1が目標位置Oから遠ざかっているので、測定誤差が大きくなる可能性が高い。よって、目標とする駐車位置Oの再認識を行わない。具体的には、位置ずれ補正フラグ93eをオフに設定して(S187)、補正可否判定処理を終了し、経路走行処理(図26参照)に戻る。
一方、S185の判定が肯定される場合は(S185:Yes)、y軸方向に関して、目標とする駐車位置Oに車両1が近づいていると推定できる場合である。この場合は、測定誤差を抑制できる可能性があるので、目標とする駐車位置Oの再認識を試みる。具体的には、S186の処理へ移行する。
一方、S184の処理が肯定される場合は(S184:Yes)、x軸方向に関して、目標とする駐車位置Oに車両1が近づいていると推定できる場合である。この場合も、測定誤差を抑制できる可能性があるので、目標とする駐車位置Oの再認識を試みる。即ち、位置ずれ補正フラグ93eをオンに設定して(S186)、補正可否判定処理を終了し、経路走行処理(図26参照)に戻る。
以上の図27に示す補正可否判定処理によって、車両1が目標とする駐車位置Oから遠ざかっていると推定でき、測定誤差が大きくなる可能性が高い場合には、目標とする駐車位置Oの再認識を行わず、目標とする駐車位置Oに車両1が近づいていると推定でき、測定誤差を抑制できる可能性が高い場合に、目標とする駐車位置Oの再認識を行える。
よって、目標とする駐車位置Oが再認識された場合に、再認識された駐車位置O’に含まれる誤差を抑制できる可能性を高めることができる。従って、再認識された駐車位置O’に基づいて車両1の位置ずれが補正される場合に、正しく補正できる可能性を向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
また、車両1が目標位置Oに近づいたと推定される度に、目標とする駐車位置O’の再認識が試みられるので、再認識された駐車位置O’に含まれる誤差を徐々に(段階的に)低下させることができる可能性を高められる。よって、目標とする駐車位置O’の特定精度を徐々に(段階的に)向上させることができる可能性を高められるので、再認識された駐車位置O’に基づいて車両1の位置ずれが補正する度に、正しく補正できる可能性を徐々に(段階的に)向上させることができる。従って、車両1が目標位置O’に近づく度に、車両1が目標とする駐車位置O’に到着する可能性を徐々に(段階的に)向上させることができる。
また、車両1の自律走行が開始されてから、走行制御装置100において車両1の位置ずれが補正されるまでの間については、出発地点に車両1が居た時と比較され、目標とする駐車位置Oに車両1が近づいたと推定される場合に、目標とする駐車位置Oの再認識が行われる。
よって、車両1の走行開始時よりも、目標とする駐車位置Oから遠ざかり、測定誤差が大きくなる可能性が高くなる場合には、目標とする駐車位置Oの再認識を中止できる。従って、目標とする駐車位置Oが再認識された場合に、再認識された駐車位置O’に含まれる誤差を抑制できる可能性を高めることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
ここで、図28を参照して、図28に示す走行経路RT1〜RT3を車両1が走行する場合に、走行制御装置100によって目標とする駐車位置O’が再認識される区間について説明する。図28(a),(b)は、走行経路RT1〜RT3のうち、走行制御装置100により駐車位置O’が再認識される区間の一例を説明するための説明図である。
尚、図28(a),(b)では、経路点P20が出発地点であり、経路点P23が目標とする駐車位置O’であって、車両1が出発地点を出発した後、経路点P21および経路点P22を経由して、目標とする駐車位置O’へ至る走行経路RT1〜RT3を示している。また、図28(a),(b)では、目標とする駐車位置O’を原点(0,0)する座標系を示しており、x座標値は、原点O’から右に向かうほど大きくなり、原点O’から左に向かうほど小さくなる。また、y座標値は、原点O’から上に向かうほど大きくなり、原点O’から下に向かうほど小さくなる。
図28(a)に示す例では、最初、出発地点における車両1のx座標値がxv0であり、y座標値がyv0であるが、車両1が出発地点から経路点P21へ前進するに伴って、車両1が走行開始すると、車両1のy座標値yvnが徐々に大きくなり、x座標値xvnが徐々に小さくなる。
上述したように、車両1が走行開始した直後は、まだ、走行制御装置100において車両1の位置ずれが、一度も補正されていないため、出発地点における車両1のx座標値xv0(絶対値)と、現在の車両1のx座標値xvn(絶対値)とが比較される。ここでは、現在の車両1のx座標値xvn(絶対値)が、x座標値xv0(絶対値)以下となるので、目標とする駐車位置O’に車両1が近づいたと推定され、目標とする駐車位置O’の再認識が試みられる。
そして、目標とする駐車位置O’の再認識が成功すると、車両1の位置ずれが補正される。更に、今のx座標値xa(絶対値)よりも、現在の車両1のx座標値xvn(絶対値)が小さければ、そのx座標値xvn(絶対値)が、新たなx座標値xa(絶対値)として設定(更新)される。同様に、今のy座標値ya(絶対値)よりも、現在の車両1のy座標値yvn(絶対値)が小さければ、そのy座標値yvn(絶対値)が、新たなy座標値ya(絶対値)として設定(更新)される。
よって、今回の場合は、x座標値xaのみが更新される。尚、上述したように、現在の車両1のx座標値xvn(絶対値)がx座標値xa(絶対値)以下の場合、現在の車両1のy座標値yvnについての比較はスキップされる。以後、説明を簡単にするために、目標とする駐車位置Oの再認識は常に成功するものとして、説明を続ける。
車両1の位置ずれが補正された後、更に、車両1が出発地点から経路点P22へ前進すると、再度、前回の補正時に更新されたx座標値xa(絶対値)と、現在の車両1のx座標値xvn(絶対値)とが比較される。ここでも、現在の車両1のx座標値xvn(絶対値)がx座標値xa(絶対値)以下となるので、目標とする駐車位置O’に車両1が近づいたと推定され、目標とする駐車位置Oの再認識が試みられる。そして、車両1の位置ずれが補正されると共に、x座標値xaおよびy座標値yaが更新される。
以後、車両1の走行に伴って、現在の車両1のx座標値xvnは、一旦、x座標値xv1(即ち、0)になるまで徐々に小さくなる。その結果、図28(b)に示すように、車両1が出発地点から経路点P21へ前進する区間のうち、現在の車両1のx座標値xvnが、x座標値xv0からx座標値xv1になるまでの間、目標とする駐車位置Oの再認識が試みられる。そして、車両1の位置ずれが補正されると共に、x座標値xaおよびy座標値yaが更新される。つまり、ここでは、x座標値xaが最小値である0に更新される。
そして、図28(a)に示すように、現在の車両1のx座標値xvnが、x座標値xv1となった後、更に、車両1が経路点P22へ前進すると、車両1が経路点P21へ前進するに伴って、現在の車両1のx座標値xvnが徐々に大きくに長くなり、x座標値xvn2となる。
その結果、前回の補正時に更新されたx座標値xa(即ち、0)と、現在の車両1のx座標値xvn(絶対値)とが比較されても、現在の車両1のx座標値xvn(絶対値)がx座標値xa(絶対値)よりも大きくなり、x軸方向に関しては、目標とする駐車位置O’から車両1が遠ざかったと推定される。すると、次は、前回の補正時に設定されたy座標値ya(絶対値)と、現在の車両1のy座標値yvn(絶対値)とが比較される。
しかしながら、現在の車両1のy座標値yyn(絶対値)もy座標値ya(絶対値)よりも大きいため、y軸方向に関しても、目標とする駐車位置O’から車両1が遠ざかったと推定される。その結果、x軸方向に関しても、y軸方向に関しても、目標とする駐車位置O’から車両1が遠ざかったと推定されて、目標とする駐車位置Oの再認識と、車両1の位置ずれの補正とが共にスキップされる。
その後、車両1が経路点P21を経由すると、車両1は経路点P22へ向かって後退し始める。すると、今度は、車両1が経路点P22へ後退するに伴って、y座標値yvnが徐々に小さくなる。そして、図28(a)に示すように、現在の車両1のy座標値yvnが、y座標値yv3から更に小さくなり、y座標値yv4となった場合に、現在の車両1のy座標値yvn(絶対値)と、y座標値ya(絶対値)とが比較されると、現在の車両1のy座標値yvn(絶対値)がy座標値ya(絶対値)以下となり、目標とする駐車位置O’に車両1が近づいたと推定される。
よって、目標とする駐車位置O’の再認識が試みられ、車両1の位置ずれが補正されると共に、x座標値xaおよびy座標値yaが更新される。以後同様に、車両1が目標とする駐車位置に到着するまで、車両1が後退するに伴って、y座標値yvnが徐々に小さくなり、最終的に0になる。
従って、現在の車両1のy座標値yvn(絶対値)と、y座標値ya(絶対値)とが比較されると、現在の車両1のy座標値yvn(絶対値)がy座標値ya(絶対値)以下となり、目標とする駐車位置O’に車両1が近づいたと推定される。故に、目標とする駐車位置O’の再認識が試みられ、車両1の位置ずれが補正されると共に、x座標値xaおよびy座標値yaが更新される。
その結果、図28(b)に示すように、車両1が経路点P21から目標位置まで後退する区間のうち、現在の車両1のy座標値yvnが、y座標値yv4から0になるまでの間、目標とする駐車位置Oの再認識が試みられる。そして、車両1の位置ずれが補正されると共に、x座標値xaおよびy座標値yaが更新される。
上述したように、測定誤差は、近くの対象物を撮像した時の方が小さくなり、遠くの対象物を撮像した時の方が大きくなる。よって、車両1の位置ずれが補正されたときと比較して、車両1が目標位置Oに近づいたと推定される場合に、目標とする駐車位置Oを再認識することで、再認識された駐車位置O’に含まれる誤差を抑制できる可能性を高められる。従って、目標とする駐車位置O’の特定精度を向上させることができる可能性を高められる。
故に、再認識された駐車位置O’に基づいて車両1の位置ずれが補正する度に、正しく補正できる可能性を徐々に(段階的に)向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を徐々に(段階的に)向上させることができる。
次に、図29を参照して、第2実施形態の位置ずれ補正処理(S123)について説明する。図29は、第2実施形態の走行制御装置100により実行される位置ずれ補正処理を示すフローチャートである。尚、第1実施形態の位置ずれ補正処理(図21参照)における処理と、同一の処理を実行するステップについては、同一の符号を付してその説明を省略し、異なる部分についてのみ説明する。
第2実施形態の位置ずれ補正処理は、第1実施形態における位置ずれ補正処理(図21参照)S151およびS152の各処理を、後述するS191〜S197の各処理に変更したものである。第2実施形態の位置ずれ補正処理も、第1実施形態と同様に、目標とする駐車位置O’(図17参照)を再認識して、車両1の正しい車両位置および車両方位θを算出し直すための処理である。
第2実施形態の位置ずれ補正処理(S123)では、S150の処理が終了すると、次に、前回補正時x値メモリ93iに記憶されているx座標値xaが、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)を構成するx座標値xvnの絶対値以上であるかを判定する(S191)。
S191の判定が肯定される場合は(S191:Yes)、x軸方向に関して、目標とする駐車位置O’に車両1が近づいたと推定できる場合である。この場合は、現在の車両1のx座標値xvn(絶対値)から所定量Δxを引いたものを、新たなx座標値xaとして算出する(S192)。そして、新たに算出したx座標値xaの絶対値を、前回補正時x値メモリ93iに記憶して(S193)、S194の処理へ移行する。
一方、S191の判定が否定される場合は(S191:No)、x軸方向に関して、目標とする駐車位置O’から車両1が遠ざかったと推定できる場合である。この場合は、y軸方向に関して、目標とする駐車位置O’に車両1が近づいたか否かを推定するために、S195の処理へ移行する。
S195の処理では、前回補正時y値メモリ93jに記憶されているy座標値yaが、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)を構成するy座標値yvnの絶対値以上であるかを判定する(S195)。
S195の判定が否定される場合は(S195:No)、y軸方向に関して、目標とする駐車位置O’から車両1が遠ざかったと推定できる場合である。この場合は、x軸方向およびy軸方向の両方に関して、目標とする駐車位置O’から車両1が遠ざかったと推定できる場合である。よって、何もせずに、位置ずれ補正処理を終了し、経路走行処理(図26参照)に戻る。一方、S195の処理が肯定される場合は(S195:Yes)、y軸方向に関して、目標とする駐車位置O’に車両1が近づいたと推定できる場合なので、S196の処理へ移行する。
S194の処理では、前回補正時y値メモリ93jに記憶されているy座標値yaが、現在の車両1の車両位置(即ち、現在位置メモリ93dに記憶されている車両位置)を構成するy座標値yvnの絶対値以上であるかを判定する(S194)。
S194の処理が否定される場合は(S194:No)、y軸方向に関して、目標とする駐車位置O’から車両1が遠ざかったと推定できる場合である。この場合は、何もせずに、位置ずれ補正処理を終了し、経路走行処理(図26参照)に戻る。一方、S194の処理が肯定される場合は(S194:Yes)、y軸方向に関して、目標とする駐車位置O’に車両1が近づいたと推定できる場合なので、S196の処理へ移行する。
S196の処理では、現在の車両1のy座標値yvn(絶対値)から所定量Δyを引いたものを、新たなy座標値yaとして算出する(S196)。そして、新たに算出したy座標値yaの絶対値を、前回補正時y値メモリ93jに記憶して(S197)、位置ずれ補正処理を終了し、経路走行処理(図26参照)に戻る。
尚、上述した所定量Δxおよび所定量Δyは、適宜決めれば良い。現在の車両1のx座標値xvn(絶対値)から所定量Δxを引いたものを、新たなx座標値xaとし、現在の車両1のy座標値yvn(絶対値)から所定量Δyを引いたものを、新たなy座標値yaとすることで、車両1が所定量Δxまたは所定量Δyだけ、再認識された駐車位置O’に近づいたと推定できる場合に、位置ずれ補正フラグ93eがオンに設定される(図27のS184,S185参照)。
よって、所定量Δxおよび所定量Δyを設けない場合と比較して、次に、位置ずれ補正処理が実行されるまでに猶予ができる。従って、位置ずれ補正処理が実行された直後に、続けて位置ずれ補正処理が実行されることを抑制できる。故に、再認識された駐車位置O’に含まれる誤差の程度が、殆ど変化しないにも関わらず、位置ずれ補正処理が実行されることを抑制できるので、不要な処理を抑制でき、CPU91に掛かる負担を軽減できる。
以上の図29に示す位置ずれ補正処理によって、再認識が終了した時の、車両1の正しい車両位置を算出できるので、車両1の位置ずれを精度良く補正できる。そして、車両1の位置ずれを補正した場合に、前回補正時x値メモリ93iに記憶しているx座標値xaと、前回補正時y値メモリ93jに記憶しているy座標値yaとを更新できる。よって、以降は、x軸方向またはy軸方向に関して、現在の車両1の車両位置よりも、車両1が再認識した目標位置O’に近づいたと推定できる場合に、位置ずれ補正フラグ93eをオンに設定できる(図27のS184,S185参照)。
従って、再認識される駐車位置O’に含まれる誤差が小さくなる可能性が高い場合に、再度、車両1の位置ずれを補正できる。故に、車両1の位置ずれを補正した場合に、正しく補正できる可能性を向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
また、車両1の走行開始時に、運転者により設定される駐車位置Oを取得した場合に、その駐車位置Oに誤差が含まれていたとしても、駐車位置O’を再認識し、車両1の位置ずれを補正することで、その誤差も補正できる。
次に、図30を参照して、第2実施形態における位置ずれ補正処理(図29参照)の変形例について説明する。尚、この位置ずれ補正処理の変形例は、第1実施形態における位置ずれ補正処理の変形例(図23参照)に対応するものである。
図30は、第2実施形態の走行制御装置100により実行される位置ずれ補正処理の変形例を示すフローチャートである。尚、第2実施形態の位置ずれ補正処理(図29参照)における処理や、第1実施形態の位置ずれ補正処理(図23参照)における処理と、同一の処理を実行するステップについては、同一の符号を付してその説明を省略し、異なる部分についてのみ説明する。
この位置ずれ補正処理は、第1実施形態の位置ずれ補正処理の変形例における(図23参照)S151およびS152の各処理を、S191〜S197の各処理に変更したものである。この位置ずれ補正処理も、第1実施形態の変形例(図23参照)と同様に、目標とする駐車位置O’(図17参照)を再認識して、走行経路RT1〜RT3の正しい位置を算出し直すための処理である。
この位置ずれ補正処理(S123)では、S166の処理が実行され、S166の判定が否定された場合に(S166:No)、S191〜S197の各処理を実行する。そして、位置ずれ補正処理を終了し、経路走行処理(図26参照)に戻る。
以上の図30に示す位置ずれ補正処理によって、x’軸およびy’軸の交点を原点O’とする座標系において、駐車位置O’に到着する走行経路RT1〜RT3の位置を、x軸およびy軸の交点を原点Oとする座標系の値に補正(変更)できる。
そして、車両1の位置ずれを補正した場合に、前回補正時x値メモリ93iに記憶しているx座標値xaと、前回補正時y値メモリ93jに記憶しているy座標値yaとを更新できる。よって、以降は、x軸方向またはy軸方向に関して、現在の車両1の車両位置よりも、車両1が再認識した目標位置O’に近づいたと推定できる場合に、位置ずれ補正フラグ93eをオンに設定できる(図27のS184,S185参照)。
従って、再認識される駐車位置O’に含まれる誤差が小さくなる可能性が高い場合に、再度、車両1の位置ずれを補正できる。故に、車両1の位置ずれを補正した場合に、正しく補正できる可能性を向上させることができるので、車両1が目標とする駐車位置O’に到着する可能性を向上させることができる。
また、車両1の走行開始時に、運転者により設定される駐車位置Oを取得した場合に、その駐車位置Oに誤差が含まれていたとしても、駐車位置O’を再認識し、車両1の位置ずれを補正することで、その誤差も補正できる。
尚、上記実施形態に記載の「駐車位置O」が、特許請求の範囲の「目標位置」に対応し、上記実施形態に記載の「駐車位置O’」が、特許請求の範囲の「現実の前記目標位置」に対応する。また、上記実施形態に記載の「走行制御点メモリ93cに記憶されている車両設定情報」が、特許請求の範囲に記載の「経路情報」に対応する。また、上記実施形態に記載の「現在位置メモリ93dに記憶されている車両位置および車両方位θ」が、特許請求の範囲に記載の「車両情報」に対応する。また、上記実施形態に記載の「駐車位置O’と車両1の車両位置との相対的な位置関係」が、特許請求の範囲に記載の「前記車両と前記目標位置との現実の位置関係」に対応する。
以上、実施の形態に基づき本発明を説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施形態では、車両1が目標とする駐車位置Oに近づいている場合に、目標とする駐車位置Oの再認識を試みているが、走行経路RT1〜RT3のうち目標とする駐車位置Oに車両1が近づく区間を車両1が走行している場合に、目標とする駐車位置Oの再認識を試みるように構成しても良い。
また、上記実施形態では、車両1の走行中に、走行制御装置100において車両1が目標とする駐車位置Oに近づいているか否かを判定し、車両1が目標とする駐車位置Oに近づいている場合に、目標とする駐車位置Oの再認識を試みている。これに対し、走行経路RT1〜RT3を生成して、走行制御点Qを生成する場合に、車両1が目標とする駐車位置Oに近づく場合の走行制御点Qを特定しておき、走行制御点Qの車両設定情報に新たなフラグなどを設けて、その情報を記憶させておく。そして、車両1の走行中は、車両設定情報に新たに設けたフラグを参照し、車両1が目標とする駐車位置Oに近づいている場合に、目標とする駐車位置Oの再認識を試みても良い。これにより、車両1の走行中に走行制御装置100において行われる判定処理を抑制できるので、車両1の走行中に走行制御装置100に掛かる負担を軽減できる。
また、上記実施形態では、現在位置メモリ93dに記憶されている車両位置を用いて、現在の車両1の車両位置から目標とする駐車位置までの直線距離dnや、現在の車両1のx座標値xvnや、現在の車両1のy座標値yvnを算出しているが、その代わりに、現在の走行制御に用いられている走行制御点Qの車両位置を用いて、直線距離dnや、x座標値xvnや、y座標値yvnを算出しても良い。
また、上記実施形態では、車両1の位置ずれが補正された場合に、前回補正時直線距離メモリ93hの値(直線距離da)や、前回補正時x値メモリ93iの値(x座標値xa)や、前回補正時y値メモリ93jの値(y座標値ya)を更新しているが、目標とする駐車位置Oの再認識が試みられた場合に、更新するように構成しても良い。
また、上記実施形態では、車両1の位置ずれを補正する場合に、走行経路R1〜RT3を再生成しなように構成しているが、走行経路を再生成しても良い。
また、上記実施形態では、所定量Δd、所定量Δx、所定量Δyを設けているが、設けなくても良い。
また、図19に示す補正可否判定処理のS134の処理では、直線距離daが直線距離dn以上であるかを判定しているが、直線距離daが直線距離dnを超えているかを判定しても良い。このように構成すれば、再認識された駐車位置O’に含まれる誤差の程度が、殆ど変化しないにも関わらず、位置ずれ補正処理が実行されることを抑制できるので、不要な処理を抑制でき、CPU91に掛かる負担を軽減できる。
また、図27に示す補正可否判定処理のS184の処理では、x座標値xa(絶対値)がx座標値xvnの絶対値以上であるかを判定しているが、x座標値xa(絶対値)がx座標値xvnの絶対値を超えているかを判定しも良い。また、S185の処理では、y座標値ya(絶対値)がy座標値yvnの絶対値以上であるかを判定しているが、y座標値ya(絶対値)がy座標値yvnの絶対値を超えているかを判定しも良い。このように構成すれば、再認識された駐車位置O’に含まれる誤差の程度が、殆ど変化しないにも関わらず、位置ずれ補正処理が実行されることを抑制できるので、不要な処理を抑制でき、CPU91に掛かる負担を軽減できる。
また、図23に示す位置ずれ補正処理では、走行経路RT1〜RT3のうち、S161の処理で特定された走行制御点Qから、再認識された駐車位置O’までの間の各走行制御点Qについて、その車両位置および車両方位θを補正している。これに対して、走行経路RT1〜RT3上の全ての走行制御点Qや、走行経路RT1〜RT3上の全ての走行制御点Qについて、その車両位置および車両方位θを補正しても良い。
また、図23に示す位置ずれ補正処理では、目標とする駐車位置O’の再認識中に車両1が移動した移動量を算出し、その移動量を、再認識された駐車位置O’を原点とした座標系における車両1の車両位置Qa’に加えて、再認識が終了した時の車両1の車両位置Qb’を算出している。これに対して、移動量を加えずに、再認識を開始した時の車両1の車両位置Qa’を、単に、再認識が終了した時の車両1の車両位置Qb’として扱っても良い。例えば、車両1の走行速度が遅い場合や、目標とする駐車位置O’を再認識するための処理に要する時間が短ければ、車両1の移動量は微量であるから、移動量を誤差とみなすことができる。よって、再認識を開始した時の車両1の車両位置Qa’を、再認識が終了した時の車両1の車両位置Qb’として扱っても問題はない。そして、このように構成した場合には、移動量を算出する処理と、移動量に基づいて再認識が終了した時の車両1の車両位置Qb’を算出する処理との各処理を実行しなくて済むので、制御的負担を軽減できる。
また、本実施形態では、目標とする駐車位置O’の再認識を試みる場合、車両1が自律走行している状態で、第3カメラ26cによって撮像エリアKF(図17参照)を撮像しているが、車両1を停車させて、又は、車両1の走行速度を遅くして、第3カメラ26cによって撮像エリアKF(図17参照)を撮像しても良い。また、複数台のカメラ26a〜26dにより、撮像エリアKFを撮像しても良い。これにより、第3カメラ26cにより撮像エリアKFを精度良く(ぶれを抑えて)撮像できるので、画像の精度を向上させることができ、画像解析の精度を向上させることができる。また、車両1の移動量を計算する必要がなくなる、又は、車両1の移動量を誤差とみなすことができるので、移動量を算出する処理と、移動量に基づいて再認識が終了した時の車両1の車両位置Qb’を算出する処理との各処理を実行しなくて済み、制御的負担を軽減できる。
また、本実施形態では、第3カメラ26cにより撮像エリアKFを撮像し、その撮像した画像を画像解析することで、目標とする駐車位置O’の再認識を試みているが、別の方法で駐車位置O’の再認識を試みても良い。例えば、レーザレーダなどの測定装置により、目標とする駐車位置O’の再認識を試みても良い。また、GPS等を利用して、駐車位置O’の再認識を試みても良い。
また、上記実施形態では、目標とする駐車位置に車両1を停車させる場合、最終的には車両1を後退直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しているが、最終的に車両1を前進直進させて、目標とする駐車位置に車両1を停車させるように走行経路RT1〜RT3を生成しても良い。
また、上記実施形態では、10種類の経路パターンPT1〜PT10を設けているが、パターンの数は10種類に限らず、減らしても良いし、増やしても良い。また、各経路パターンPT1〜PT10に対応する各走行経路の距離CLを全て2mとしているが、数値は適宜設定すれば良い。また、経路パターンPT1〜PT10に対応する走行経路の形状も適宜設定すれば良い。
また、上記実施形態では、現在位置から目標とする駐車位置まで0.05m間隔で、走行経路RT1〜RT3上に仮想的に走行制御点Qを生成しているが、走行制御点Qを設ける間隔は、0.01m間隔や、0.1m間隔や、0.5m間隔など適宜設定すれば良い。
また、上記実施形態の走行制御装置100は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の車両速度Vは運転者がアクセルペダル11およびブレーキペダル12により操作できるように構成し、走行制御装置100は車両1のステアリング13のみを制御するように構成しても良い。
また、上記実施形態の走行制御装置100は、現在位置から運転者により設定される駐車位置まで車両1を自律走行させて、その駐車位置に車両1を駐車させるように構成されているが、車両1の自律走行は行わず、現在位置から運転者により設定される駐車位置までの走行経路を運転者に報知するように構成しても良い。例えば、車両1内のモニタに、走行経路RT1〜RT3を表示しても良い。また、音声により運転者の運転操作を誘導して、車両1が走行経路RT1〜RT3上を走行するようにしても良い。
また、上記実施形態では、目標とする駐車位置に車両1を駐車させた時の、左右の後輪2RL,2RRの車軸上をx軸とし、車両1中央の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いて、車両1の位置や、走行経路RT1〜RT3などの位置を算出しているが、車両1の現在位置における左右の後輪2FL,2FRの車軸上をx軸とし、車両1中央の前後軸上をy軸とし、x軸およびy軸の交点を原点Oとした座標系を用いても良い。また、任意にx軸およびy軸を設けて、x軸およびy軸の交点を原点Oとした座標系を用いても良い。
また、上記実施形態では、隣接する経路点P間ごとに0.05m間隔で走行制御点Qを生成するように構成しているが、任意の2つの経路点P間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。例えば、走行経路上に3つ以上の経路点Pが順番に並んでいる場合には、その3つ以上の経路点Pのうち最初(出発点に最も近い側)の経路点Pと、その3つ以上の経路点のうち最後(運転者により設定された駐車位置に最も近い側)の経路点Pとの間に、0.05m間隔で走行制御点Qを生成するように構成しても良い。
また、上記実施形態では、現在位置から目標とする駐車位置までの車両1の走行経路RT1〜RT3を生成して、その走行経路RT1〜RT3に従って車両1を自律走行させ、目標とする駐車位置に車両1を停車させているが、単に、現在位置から目標とする位置まで車両1を自律走行させるように構成も良い。例えば、目標とする位置を遠方に設定し、自律走行により車両1を長距離走行させるように構成しても良い。
また、上記実施形態では、経路点P0(出発地点)上に走行制御点Qを設けていないが、経路点P0上にも走行制御点Qを設けて、車両1を自律走行させる場合に参照するように構成して良い。
また、上記実施形態は、車両1が4輪車である場合の実施形態であるが、本発明は、車輪の数に関係なく車両であれば適用できるし、ショベルカーなどの建設機械などにも適用できる。
<その他>
<手段>
技術的思想1記載の走行制御装置は、車両を目標位置まで走行経路に沿って走行させるための経路情報を記憶する経路情報記憶手段と、前記車両の車両位置と、その車両の向きを表す車両方位とを示す車両情報をその車両の走行に伴って更新し車両情報記憶手段に記憶する車両情報更新手段と、前記車両情報記憶手段に記憶されている車両情報と、前記経路情報記憶手段に記憶されている経路情報とに基づいて、前記車両の走行を制御する走行制御手段と、前記車両情報記憶手段の車両情報により示される車両位置と前記目標位置との距離が短くなるかを推定する第1推定手段と、その第1推定手段により前記車両位置と前記目標位置との距離が短くなると推定される場合に、前記車両と前記目標位置との現実の位置関係を特定する特定手段と、その特定手段により特定される現実の前記目標位置へ前記車両が至るように、前記走行制御手段により用いられる情報を前記特定手段により特定される前記現実の位置関係に基づいて変更する情報変更手段とを備えている。
技術的思想2記載の走行制御装置は、技術的思想1記載の走行制御装置において、前記情報変更手段による変更が行われた後、その変更で用いられた前記現実の位置関係が前記特定手段において特定されたときと比較して、前記車両情報記憶手段の車両情報により示される車両位置と前記目標位置との距離が短くなるかを推定する第2推定手段と、その第2推定手段により前記車両位置と前記目標位置との距離が短くなると判定される場合に、前記特定手段により前記現実の位置関係が特定されるように制御する特定制御手段とを備えている。
技術的思想3記載の走行制御装置は、技術的思想1または2記載の走行制御装置において、前記第1推定手段は、前記車両が走行を開始するときと比較して、前記車両情報記憶手段の車両情報により示される車両位置と前記目標位置との距離が短くなる場合に、前記現実の位置関係を特定するものである。
技術的思想4記載の走行制御装置は、技術的思想1から3の何れかに記載の走行制御装置において、前記情報変更手段は、前記特定手段により特定される現実の前記目標位置へ前記車両が前記経路情報記憶手段に記憶されている経路情報を利用して至るように、前記走行制御手段により用いられる情報を前記特定手段により特定される前記現実の位置関係に基づいて補正するものである。
<効果>
技術的思想1記載の走行制御装置によれば、車両を目標位置まで走行経路に沿って走行させるための経路情報が経路情報記憶手段に記憶され、車両の車両位置と、その車両の向きを表す車両方位とを示す車両情報がその車両の走行に伴って車両情報更新手段により更新されて車両情報記憶手段に記憶される。そして、車両情報記憶手段に記憶されている車両情報と、経路情報記憶手段に記憶されている経路情報とに基づいて、車両の走行が走行制御手段により制御され、第1推定手段によって車両情報記憶手段の車両情報により示される車両位置と目標位置との距離が短くなると推定されると、車両と目標位置との現実の位置関係が特定手段により特定される。そして、現実の目標位置へ車両が至るように、走行制御手段により用いられる情報が特定手段により特定される現実の位置関係に基づいて情報変更手段により変更される。測定開始位置から測定対象までの距離を測定する場合には、基準位置から測定対象までの距離が長いほど測定誤差が大きくなり、短くなるほど測定誤差が小さくなる。そのため、車両が目標位置から遠ざかっている場合よりも、目標位置に近づいている場合に、特定手段により現実の位置関係を特定した方が、その現実の位置関係に含まれる誤差を抑制できる可能性が高い。請求項1記載の走行制御装置によれば、車両位置と目標位置との距離が短くなると推定され、現実の位置関係に含まれる誤差を抑制できる可能性が高い場合に、特定手段により現実の位置関係を特定して、その特定された現実の位置関係に基づいて情報変更手段による変更を行える。よって、情報変更手段による変更により、車両が目標位置へ到着する可能性を向上させることができるという効果がある。尚、車両と目標位置との現実の位置関係としては、車両と目標位置との距離や、車両および目標位置の一方から見た他方の方位などが例示される。
技術的思想2記載の走行制御装置によれば、技術的思想1記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、情報変更手段による変更が行われた後、その変更で用いられた現実の位置関係が特定手段において特定されたときと比較して、車両情報記憶手段の車両情報により示される車両位置と目標位置との距離が短くなるかが第2推定手段により推定される。ここで、車両位置と目標位置との距離が短くなると推定されると、特定手段により現実の位置関係が特定されるように特定制御手段により制御される。よって、車両が目標位置に近づくにつれて、現実の位置関係に含まれる誤差が小さくなる可能性が高まる度に、特定手段よって現実の位置関係を特定して、その特定された現実の位置関係に基づいて情報変更手段による変更を行える。従って、車両が目標位置に近づくにつれて、車両が目標位置へ到着する可能性を段階的に向上させることができるという効果がある。
技術的思想3記載の走行制御装置によれば、技術的思想1または2記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、第1推定手段では、車両が走行を開始するときと比較して、車両情報記憶手段の車両情報により示される車両位置と目標位置との距離が短くなる場合に、現実の位置関係が特定される。基準位置から測定対象までの距離を測定する場合には、基準位置から測定対象までの距離が長いほど測定誤差が大きくなる。そのため、車両が走行を開始するときと比較して、車両位置と目標位置との距離が長い場合に、特定手段により現実の位置関係を特定すると、現実の位置関係に含まれる誤差が大きくなり、車両が走行を開始するときよりも、かえって目標位置がずれてしまうおそれがある。請求項3記載の走行制御装置によれば、車両が走行を開始するときよりも、目標位置がずれてしまうおそれがある場合には、特定手段による特定を抑制でき、情報変更手段による変更を抑制できる。従って、情報変更手段による変更により、目標位置がずれてしまう可能性を抑制できるので、車両が目標位置へ到着する可能性をより向上させることができるという効果がある。
技術的思想4記載の走行制御装置によれば、技術的思想1から3の何れかに記載の走行制御装置の奏する効果に加え、次の効果を奏する。即ち、特定手段により特定される現実の目標位置へ車両が経路情報記憶手段に記憶されている経路情報を利用して至るように、走行制御手段により用いられる情報が、特定手段により特定される現実の位置関係に基づいて情報変更手段により補正される。よって、走行制御手段の制御により、走行経路から車両が外れた状態で走行していても、現実の目標位置まで車両が既存の走行経路を利用して至るように、走行制御手段により用いられる情報を補正できる。従って、その後は、現実の目標位置まで走行経路に沿って車両が走行するように車両の走行を制御できる。また、車両と目標位置との現実の位置関係を特定した場合に、走行経路を新たに生成し、その新たな走行経路を車両に走行させるのではなく、既存の走行経路を利用して車両を走行させることができる。よって、走行経路を新たに生成する場合と比較して、車両の走行経路が延びることを抑制できる。従って、情報変更手段による補正が行われた後に、走行経路から車両が外れることを抑制できるので、車両が目標位置に到着する可能性をさらに向上させることができるという効果がある。