以下、本発明の実施の形態について図面を参照して説明する。
[第1実施形態]
図1は、本発明を適用したナビゲーション装置を搭載した車両1の一例を示す構成図である。
車両1には、自車両前方の道路形状を検出するためのナビゲーション装置2、単眼カメラ3、カメラコントローラ4、及びコントローラ10が搭載される。なお、図1において、1FL、1FRは左右の前輪、1RL、1RRは、左右の後輪、21はステアリングホイールである。
ナビゲーション装置2は、測位部2a、記憶部2b、表示処理部2c、位置補正部2d、分岐情報計算部2eを備えている。測位部2aは、GPS測位を行って自車両の現在位置を計測する。
記憶部2bは、道路地図情報が格納されたハードディスク装置等からなる。表示処理部2cは、自車両の現在位置周辺の道路地図情報を表示手段に表示すると共に、測位部2aで計測された自車両の現在位置を地図上の位置に変換し、地図上に自車両の現在位置を表示する。
位置補正部2dは、後述のコントローラ10からの位置補正要求フラグFrをもとに自車両の現在位置を補正する。ここで、位置補正要求フラグFrが「1」である場合には、自車両前方の分岐に対して左に進行したことを表す。また、位置補正要求フラグFrが「2」である場合には、自車両前方の分岐に対して右に進行したことを表す。そして、位置補正部2dは、位置補正要求フラグFrに従って、ナビゲーション装置2にて認識している自車両の現在位置を補正する。
分岐情報計算部2eは、自車両前方の一定範囲内に存在する分岐路の分岐情報を取得する。このとき、分岐情報計算部2eは、測位部2aにより測位された自車両の現在位置情報と記憶部2bに格納されている地図情報とを用いて、自車両前方における現在位置から所定範囲内に存在する分岐路の情報を得る。分岐情報計算部2eは、取得した分岐情報を、コントローラ10に出力する。
表示処理部2cは、測位部2aにより計測した自車両の現在位置に対応する、自車両前方の予め設定した所定区間(分岐判定区間)内の各ノードのノード情報(Xn,Yn,Ln)を、記憶部2bに格納されている道路地図情報から取得する。ノード情報は、ノードの位置情報(Xn,Yn)、及び、自車両からノードまでの距離Lnを含むと共に、リンク情報を含んでいる。このリンク情報は、ノード間の接続や、ランプやジャンクションへのリンクであることを表す情報等を含んで構成される。なお、“n”は各ノードを識別するための識別子である。
単眼カメラ3は、撮像手段として機能する。単眼カメラ3の撮像画像はカメラコントローラ4に入力される。この単眼カメラ3は、車両が走行している前方を撮像方向として、車両1の前方に設置されている。また、単眼カメラ3は、車線を区分する車両幅方向両側(車両左右)の車線区分線(例えば白線)を検出する撮像範囲となっている。これにより、単眼カメラ3により撮像された撮像画像に基づいて、白線と車両1との位置関係を求めることができる。
カメラコントローラ4は、単眼カメラ3により撮像された撮像画像に基づいて、公知の手順で自車両前方の道路白線や所定の道路標示情報を検出する。また、カメラコントローラ4は、自車両が走行する道路上の幅方向両側白線状態としての道路白線の線種を抽出し、コントローラ10に出力する(白線認識手段)。また、カメラコントローラ4は、道路上の幅方向両側白線状態を用いて、自車両の単眼カメラ3の位置から左右幅方向両側白線までの距離から車線幅を算出して、コントローラ10に出力する。これにより、カメラコントローラ4は、単眼カメラ3により取得された撮像画像に基づいて、自車両が走行する走行車線幅方向両側の車線区分線を認識する(車線区分線認識手段)。また、カメラコントローラ4は、単眼カメラ3により取得された撮像画像に基づいて、車両が走行する走行車線の車線幅を検出する(車線幅検出手段)。
なお、撮像手段として車両1の前部に搭載された単眼カメラ3を用いた場合について説明したが、これに限るものではなく、例えば、リアビューカメラを用いても良い。すなわち、車両1が走行している道路白線や道路標示情報を検出することの可能な手段であれば良い。
コントローラ10では、カメラコントローラ4により認識されている白線状態及びカメラコントローラ4により検出されている車線幅に基づいて、自車両の分岐路進入判断をする(分岐路進入検出手段)。このとき、コントローラ10は、カメラコントローラ4により検出された車線幅が増加した後に、カメラコントローラ4により認識された幅方向両側白線状態のうち一方の白線状態が認識された状態で他方の白線状態の認識が不能となった場合に、自車両の分岐路進入判断をする。
このとき、コントローラ10は、ナビゲーション装置2からの自車両の現在位置情報及び自車両前方の道路地図情報を取得する。また、コントローラ10は、カメラコントローラ4からの道路白線の線種及び道路標示情報の特徴点を取得する。そして、コントローラ10は、これらの取得した情報に基づいて、分岐路進入検出処理を実行する。この分岐路進入検出処理は、例えば、高速道路を走行中の自車両がインターチェンジ出口への分岐地点において、分岐路に進んだか否かを判断する。
この分岐路進入検出処理の判断結果に応じて、コントローラ10は、ナビゲーション装置2に対して、現在位置を補正する位置補正要求フラグFrを、ナビゲーション装置2に出力する。これにより、コントローラ10は、車両1が分岐路に進入したことに応じて、ナビゲーション装置2の位置補正部2dにより現在位置を補正させる。
具体的には、コントローラ10は、ナビゲーション装置2から供給された自車両前方の分岐方向、現在位置から分岐点までの距離、連続分岐有無フラグ、連続分岐間の距離、上述した幅方向両側白線状態及び車線幅に基づいて、分岐路進入検出処理を実行する。これにより、コントローラ10は、国道(自動車専用道路)、有料道路、都市内高速、都市間高速を走行中の自車両がインターチェンジ、サービスエリア、ジャンクション等の分岐地点において、分岐路に進んだか否かを判断し、判断結果に応じて位置補正要求フラグFrを設定して、ナビゲーション装置2に出力する。
「分岐路進入検出処理」
図2に、コントローラ10による分岐路進入検出処理の処理手順の一例を示すフローチャートを示す。
コントローラ10では、まず、ステップS1の処理で、ナビゲーション装置2及びカメラコントローラ4から各種データを読み込む。
具体的には、コントローラ10は、ナビゲーション装置2からは、自車両前方に存在する分岐路情報を読み込む。この分岐路情報には、自車両の位置から所定距離内に存在する分岐路の情報である。この分岐路情報として、コントローラ10は、当該分岐路の分岐方向、当該分岐路までの距離、複数の分岐路が連続するかを示す連続分岐有無フラグと、連続する分岐路間の距離を読み込む。
図3に示すように、分岐路情報は、分岐路による分岐点を挟む分岐前後の所定の分岐判定区間A内(L_start[m]〜L_end[m])に含まれる情報である。ここで、L_startは、分岐点前判定点を表し、プラス符号となる。L_endは、分岐点後判定点を表し、マイナス符号となる。
図3に示すように、手前分岐点aと次分岐点bの距離が、L_startとL_endとを加算した距離以下の場合がある。
この場合、ナビゲーション装置2は、手前分岐点aを含む分岐判定区間A(L_start〜L_end)が、次分岐点bを含む分岐判定区間B(L_start〜L_end)と重複していると判断する。そして、ナビゲーション装置2は、手前分岐点aまでの距離、連続分岐であることを示す値「1」の連続分岐有無フラグ、手前分岐点aと次分岐点bまでの連続分岐間距離L_between[m]も、コントローラ10に出力する。
ナビゲーション装置2は、車両1が手前分岐点aを含む分岐判定区間A(L_start〜L_end)を走行している場合のみ、手前分岐点aまでの距離、値が「1」の連続分岐有無フラグ、連続分岐間距離L_betweenを出力する。すなわち、車両1が分岐判定区間Aを通過し、手前分岐点aと連続している次分岐点bを含む分岐判定区間Bに進入した場合は、次分岐点bの分岐情報を、ナビゲーション装置2からコントローラ10に出力する。この場合、ナビゲーション装置2は、連続分岐有無フラグとして、値「0」の連続分岐有無フラグ、次分岐点bまでの距離、連続分岐間距離L_betweenを無効値として出力する。
そして、コントローラ10は、ナビゲーション装置2から供給された分岐情報のうち、分岐方向に基づいて自車両前方に分岐路が存在するか否か、及び当該分岐路の分岐方向を表す分岐判定フラグFdivを設定する。
自車両前方の分岐判定区間内に左側分岐の分岐路が存在する場合には分岐判定フラグFdivは「1」、自車両前方の分岐判定区間内に右側分岐が存在する場合には分岐判定フラグFdivは「2」、自車両前方の分岐判定区間内に分岐が存在しない場合には分岐判定フラグFdivは「0」に設定する。具体的には、この分岐判定フラグFdivは、自車両が、図3のように分岐点を含むL_startからL_endの分岐判定区間に存在する場合に、「1」(左分岐)または、「2」(右分岐)となり、それ以外の地点に自車両が存在する場合は、「0」と設定される。
分岐点前判定点L_startと分岐点後判定点L_endは、通常、分岐の存在するインターチェンジ出口等では分岐への誘導路区間が設定されている。ナビゲーション装置2の記憶部2bに記憶されている地図上の分岐点を起点として、実際の道路形状により分岐路に進行できる範囲が、L_startからL_endまでに収まるように設定される。また、分岐点前判定点L_startと分岐点後判定点L_endの距離は、測位部2a(GPS測位)による誤差及び地図精度による自車両の道路地図情報における誤差を考慮して設定される。
また、分岐点前判定点L_startと分岐点後判定点L_endの距離は、道路種別によって変更されることが望ましい。例えば、有料道路、都市内高速は、分岐路へ進行する誘導路が短いので、分岐点前判定点L_startと分岐点後判定点L_endの距離は短く設定される。一方、都市間高速は、分岐へ進行できる範囲が長い(誘導路が長い)ので、有料道路、都市内高速に比べて、分岐点前判定点L_startと分岐点後判定点L_endの距離が長く設定される。さらに、通常、分岐路への誘導路区間は、分岐点より手前に長いので、L_startから分岐点までの距離が、分岐点からL_endまでの距離よりも長くなる。
また、このステップS1において、コントローラ10は、カメラコントローラ4から、自車両が走行している右側白線種別と左側白線種別を読み込む。ここで、カメラコントローラ4は、白線種別として、実線、破線、図5に示すような高速道路の本線とインターチェンジ出口への分岐路との境界線Lを表すような太破線を検出する。また、カメラコントローラ4は、自車前方の近傍付近に判別できる白線が存在しない場合には、ロスト(認識不能)を検出する。
次のステップS2において、コントローラ10は、後述の出口判断処理を行う。この出口判断処理は、自車両前方に高速道路のインターチェンジ出口への分岐地点がある場合に、道路白線の線種判別結果及び車線幅を用いて自車両が分岐路側に進んだかどうかを判断する。車両1が左側の分岐路に進んだと判定した場合は分岐判定フラグFdivを「1」に、右側の分岐路に進んだと判定した場合は分岐判定フラグFdivを「2」に設定する。分岐路に進んでいないと判定した場合は分岐判定フラグFdivを「0」に設定する。
次のステップS3において、コントローラ10は、ナビゲーション装置2からの分岐までの距離、連続分岐有無フラグ、連続分岐間の距離情報に基づいて、ステップS2の出口判断処理の結果をナビゲーション装置2に対して出力するか否かの、連続分岐に伴う出力フィルタ処理を行う。
このとき、コントローラ10は、まず連続分岐有無フラグの値が「1」であり対象分岐が連続分岐か、「0」であり対象分岐が連続分岐でないかを判定する。自車両前方に連続して分岐路がないと判断される場合、ステップS3の処理は何も行わずにステップS4の処理に移行する。一方、自車両前方に連続して分岐があると判断される場合、分岐点までの距離、連続分岐間の距離情報に基づいて、ステップS2による出口判断処理の結果をステップS4の処理にそのまま出力するか否かの出力可否判定を行う。そして、コントローラ10は、出口判断処理の結果の出力を禁止する場合は、ステップS2における分岐判定フラグFdivを「0」、すなわち分岐路がない状態に設定して、ステップS4に処理を進める。
このコントローラ10による出力可否判定は、先ず、分岐点前判定点L_startと連続分岐間の距離L_betweenを比較する。ここで、図4に示すように、L_start≦L_betweenの場合、分岐までの距離がL_start以上かつL_between−L_start以下のときは出力可と判定して、ステップS3の処理は何も行わずにステップS4の処理に移行する。一方、分岐までの距離が上記以外の場合は、分岐判定出力禁止範囲Cを設けることにより出力不可と判断し、ステップS2での分岐判定フラグFdivを「0」、すなわち分岐判定なしに設定して、ステップS4に処理を進める。
このステップS3における出力フィルタ処理では、分岐判定区間が重複した場合に、重複した区間では前後どちらの分岐路に進行したのか判断できない。このために、分岐判定区間が重複している場合には、出口判断処理の結果をナビゲーション装置2へ出力することを制限する。これにより、分岐誤判定を防止することができる。
次のステップS4において、コントローラ10は、ステップS2による出口判断処理の結果である、分岐判定フラグFdivを参照する。分岐判定フラグFdivが「1」、すなわち自車両が左側分岐路に進入したと判断された場合には、ナビゲーション装置2に対して、位置補正要求フラグFrを「1」、すなわち右側分岐路への進行したことを出力して、図2の分岐路進入検出処理を終了する。同様に、分岐判定フラグFdivが「2」、すなわち自車両が右側分岐路に進入したと判断された場合には、ナビゲーション装置2に対して、位置補正要求フラグFrが「2」、すなわち左側分岐路への進行したことを出力し、図2の分岐路進入検出処理を終了する。分岐判定フラグFdivが「0」、すなわち自車両が分岐路に進入したと判断されない場合には、位置補正要求フラグFrを「0」として出力する。そして、図2の分岐路進入検出処理を終了する。
「出口判断処理」
つぎに、ステップS2における出口判断処理について、図6乃至図9を参照して説明する。
この出口判断処理は、コントローラ10(分岐路進入検出手段)が、カメラコントローラ4(車線幅検出手段)により検出された車線幅が増加した後に、カメラコントローラ4(白線認識手段)により認識された幅方向両側白線状態のうち一方の白線状態が認識された状態で他方の白線状態の認識が不能となった場合に、自車両の分岐路進入判断をするものである。
この出口判断処理は、図6の処理により、カメラコントローラ4が、車線幅の広がりを検出する。次に出口判断処理は、図7の処理により、外側白線に対して実線の白線認識を継続した状態で、内側白線がロストした状態を検出する。その後、出口判断処理は、図8の処理により、外側白線に対して実線の白線認識を引き続き継続した状態で、内側白線がロストから白線を認識する状態に復帰した場合、自車両が分岐路に進入したかどうかを判定する。
先ず、図6の車線幅の広がり検出処理について説明する。
ステップS10において、分岐判定フラグFdivを「0」に初期化する。
次のステップS11において、コントローラ10は、分岐判定ステータスFstatusが「0」、「1」、「2」の何れに設定されているかを判断する。
なお、分岐判定ステータスFstatusが「0」である状態は、分岐判定が何も行われていない状態である。分岐判定ステータスFstatusが「1」である状態は、車線幅の広がりを検出した状態である。分岐判定ステータスFstatusが「2」である状態は、車線幅の広がりを検出した後、外側白線に対しては実線の白線認識を継続した状態であり内側白線をロストした状態である。分岐判定ステータスFstatusが「0」の場合、コントローラ10は、処理をステップS12に進める。コントローラ10は、分岐判定ステータスFstatusが「1」の場合には図7に処理を進め、分岐判定ステータスFstatusが「2」の場合には図8に処理を進める。
ステップS12及びステップS13において、コントローラ10は、分岐判定フラグFdivの値を判定する。分岐判定フラグFdivが「1」である場合にはステップS14に処理を進め、分岐判定フラグFdivが「2」である場合にはステップS19に処理を進め、分岐判定フラグFdivが「0」である場合には処理を終了する。
すなわち、コントローラ10は、分岐判定フラグFdivが「1」であり自車両前方の分岐判定区間内に左側分岐の分岐路が存在する場合にはステップS14に処理を進める。分岐判定フラグFdivが「2」であり右側分岐の分岐路が存在する場合には、ステップS19に処理を移行する。分岐判定フラグFdivが「0」の自車両前方に分岐路が存在しない場合には処理を終了する。
ステップS14において、コントローラ10は、カメラコントローラ4から取得した走行レーン情報に基づいて、自車両が走行レーンのうち左端車線を走行しているか否かを判定する(走行レーン検出手段)。このとき、コントローラ10は、
カメラコントローラ4により認識されている走行車線幅方向両側の車線区分線種別を検出し(車線区分線種別検出手段)、当該認識されている走行車線幅方向両側の車線区分線種別から自車両が走行している走行レーンを検出する(走行レーン検出手段)。
具体的には、コントローラ10は、カメラコントローラ4(白線認識手段)で検出した右側白線認識結果により得られる右側白線種別と左側白線認識結果により得られる左側白線種別との組み合わせを判断する。左側白線が実線、右側白線が破線の場合には、左端レーンを走行中と判断する。逆に、左側白線が破線、右側白線が実線の場合には、右端レーンを走行中と判断する。左端レーンを走行している場合、コントローラ10は、ステップS15に処理を進め、左端レーンを走行していない場合、ステップS18に処理を進める。
ステップS15において、コントローラ10は、カメラコントローラ4から供給された車線幅laneWと、後述のステップS17にて算出する車線幅平均値LaneW_AVEとを用いて、車線幅laneWが、(車線幅平均値LaneW_AVEの×1/5)以上か否か(lanew≧LaneW_AVE+LaneW_AVE×1/5)を判断する。
laneW≧LaneW_AVE+LaneW_AVE×1/5を満足する場合には、コントローラ10は、走行車線幅が変化(急変)したと判断、つまり左側分岐路が出現した状態にあると判断して、ステップS16に処理を移行させる。このステップS16において、コントローラ10は、分岐判定ステータスFstatusを「1」に設定する。
一方、ステップ15にてlaneW≧LaneW_AVE+LaneW_AVE×1/5を満足しない場合には、コントローラ10は、左側分岐が自車前方に存在する本線上において左端レーンを走行中であると判断し、車線幅平均値LaneW_AVEを求める。車線幅平均値LaneW_AVEの算出方法は、例えば、本処理の所定周期の過去10回分の車線幅laneWの平均値を算出する。車線幅平均値LaneW_AVEの算出後、出口判断処理を終了する。
ステップS12にて分岐判定フラグFdivが「1」と判断され、ステップS14にて左端レーンを走行していないと判定された場合、コントローラ10は、ステップS18にて、車線幅平均値LaneW_AVEを「0」に設定して、処理を終了する。この場合、自車両前方に左側分岐が存在するにも関わらず、車両1が走行している走行レーンが左端ではない。したがって、車線幅laneWが変化(急激に)することはないので、コントローラ10は、車線幅laneWが変化(急激に)したことを判断する車線幅平均値LaneW_AVEをリセットして、出口判断処理を終了する。
ステップS13にて分岐判定フラグFdivが「2」と判断された場合、すなわち自車両前方に右側分岐の分岐路が存在すると判断された場合には、コントローラ10は、ステップS19以降の処理を行う。このステップS19〜ステップS22は、上述のステップS14〜ステップS17と同様の処理である。
ステップS19において、コントローラ10は、カメラコントローラ4から取得した走行レーン情報に基づいて、自車両が走行レーンのうち左端車線を走行しているか否かを判定する(走行レーン検出手段)。このとき、コントローラ10は、カメラコントローラ4(白線認識手段)で検出した右側白線認識結果により得られる右側白線種別と左側白線認識結果により得られる左側白線種別との組み合わせを判断する。具体的には、右側白線が実線、左側白線が破線の場合には、右端レーンを走行中と判断する。逆に、右側白線が破線、左側白線が実線の場合には、左端レーンを走行中と判断する。右端レーンを走行している場合、コントローラ10は、ステップS20に処理を進め、左端レーンを走行していない場合、ステップS18に処理を進める。
ステップS20において、コントローラ10は、カメラコントローラ4から供給された車線幅laneWと、後述のステップS22にて算出する車線幅平均値LaneW_AVEとを用いて、車線幅laneWが、(車線幅平均値LaneW_AVEの×1/5)以上か否か(lanew≧LaneW_AVE+LaneW_AVE×1/5)を判断する。
laneW≧LaneW_AVE+LaneW_AVE×1/5を満足する場合には、コントローラ10は、走行車線幅が変化したと判断、つまり右側分岐路が出現した状態にあると判断して、ステップS21に処理を移行させる。このステップS21において、コントローラ10は、分岐判定ステータスFstatusを「1」に設定する。なおここで、laneW≧LaneW_AVE+LaneW_AVE×1/5を満足する場合とは、一制御周期間でlaneWがLaneW_AVE×1/5以上増大した場合を意味する。すなわち、LaneW_AVE×1/5は走行車線幅が急変した(走行車線幅の増大速度が所定値以上)と判断できる程度の予め実験等によって求めた値であり、適宜変更可能な値である。
一方、ステップ20にてlaneW≧LaneW_AVE+LaneW_AVE×1/5を満足しない場合には、コントローラ10は、右側分岐が自車前方に存在する本線上において右端レーンを走行中であると判断し、車線幅平均値LaneW_AVEを求める。車線幅平均値LaneW_AVEの算出方法は、例えば、本処理の所定周期の過去10回分の車線幅laneWの平均値を算出する。車線幅平均値LaneW_AVEの算出後、出口判断処理を終了する。
ステップS13にて分岐判定フラグFdivが「2」と判断され、ステップS19にて右端レーンを走行していないと判定された場合、コントローラ10は、ステップS18にて、車線幅平均値LaneW_AVEを「0」に設定して、処理を終了する。この場合、自車両前方に右側分岐が存在するにも関わらず、車両1が走行している走行レーンが右端ではない。したがって、車線幅laneWが急激に変化することはないので、コントローラ10は、車線幅平均値LaneW_AVEをリセットして、出口判断処理を終了する。
つぎに、図7により、外側白線に対して実線の白線認識を継続した状態で、内側白線がロストした状態を検出する分岐線跨ぎ判定処理について説明する。
この図7の分岐線跨ぎ判定処理は、図6にて分岐判定ステータスFstatusが「1」、つまり車線幅の広がりを検出した状態であった場合において実行される。
先ずステップS31において、コントローラ10は、分岐判定フラグFdivが「1」に設定されているか、つまり分岐路が左側分岐であるか否かを判定する。分岐路が左側分岐であった場合には、コントローラ10は、処理をステップS32に移行する。
ステップS32において、コントローラ10は、カメラコントローラ4から供給された道路白線の線種判別結果が実線か否かを判定する。例えば、自車両前方に左側分岐の分岐路が存在し、分岐路が現れた直後に自車両が本線から分岐路へ進行した場合であっても、左側白線は実線を捉え続けるはずである。したがって、コントローラ10は、ステップS32の判断を行う。左側白線種別が実線の場合、コントローラ10は、処理をステップS33に移行させる。
ステップS33において、コントローラ10は、左側白線とは逆の右側白線がロストしていないか否かを判定する。
一方、ステップS32にて左側白線が実線以外である場合には、コントローラ10は、処理をステップS35に移行させる。ステップS35において、コントローラ10は、分岐判定を行っていないことを示す「0」の分岐判定ステータスFstatusに設定し、車線幅平均値LaneW_AVEを「0」にクリアして、処理を終了する。すなわち、ステップS32にて否定判定された場合、分岐路が現れた直後に自車両が本線から分岐路へ進行した場面以外の要因で、車線幅が広がったものと判断する。
コントローラ10は、ステップS33において右側白線がロストしたと判断した場合は、処理をステップS34に移行する。このステップS34において、コントローラ10は、車線幅の広がりを検出した後、外側白線に対しては実線の白線認識を継続した状態である「2」の分岐判定ステータスFstatusに設定して、処理を終了する。これは、分岐路が現れた直後に自車両が本線から分岐路へ進行した結果、本線の左端レーンの右側破線をロストしたことを判断している。右側白線がロスト以外の場合には、車線は広がったもののまだ本線の左端レーンの右側破線を認識していると判断し、この周期での処理は以降何も行わずに、処理を終了する。
ステップS31にて分岐判定フラグFdivが「1」ではない場合、コントローラ10は、処理をステップS36に進める。ステップS36において、コントローラ10は、分岐判定フラグFdivが「2」に設定されているか否かを判定する。すなわち、分岐路が右側分岐であるか否かを判定し(分岐判定フラグFdiv=1?)、右側分岐(分岐判定フラグFdiv=2)であった場合には、コントローラ10は、処理をステップS37に移行させる。
一方、分岐判定フラグFdivが「2」に以外に設定されている場合は、自車両前方にインターチェンジ出口のような分岐地点が存在しないと判断して、処理をステップS40に移行させる。ステップS40において、コントローラ10は、分岐判定ステータスFstatusを「0」、車線幅平均値LaneW_AVEを「0」にクリアして、処理を終了する。
ステップS37において、コントローラ10は、右側白線が実線であるか否かを判定する。右側白線が実線である場合には、コントローラ10は、処理をステップS38に進め、そうでない場合には、処理を終了する。
ステップS38において、コントローラ10は、右側白線とは逆の左側白線がロストしていないか否かを判定する。
コントローラ10は、ステップS38において左側白線がロストしたと判断した場合は、処理をステップS39に移行する。このステップS39において、コントローラ10は、車線幅の広がりを検出した後、外側白線に対しては実線の白線認識を継続した状態である「2」の分岐判定ステータスFstatusに設定して、処理を終了する。これは、分岐路が現れた直後に自車両が本線から分岐路へ進行した結果、本線の右端レーンの左側破線をロストしたことを判定したことを判断している。左側白線がロスト以外の場合には、車線は広がったもののまだ本線の右端レーンの左側破線を認識していると判断し、この周期での処理は以降何も行わずに、処理を終了する。
つぎに、図8により、外側白線に対して実線の白線認識を引き続き継続した状態で、内側白線がロストから白線を認識する状態に復帰した場合、自車両が分岐路に進入したかどうかを判定する処理について説明する。
この図8の理は、図6にて分岐判定ステータスFstatusが「2」、すなわち、車線幅の広がりを検出した後、外側白線に対しては実線の白線認識を継続した状態であり内側白線をロストした状態であった場合において実行される。
先ずステップS51において、コントローラ10は、分岐判定フラグFdivが「1」に設定されているか、つまり分岐路が左側分岐であるか否かを判定する。分岐路が左側分岐であった場合には、コントローラ10は、処理をステップS52に移行させる。
ステップS52において、コントローラ10は、カメラコントローラ4から供給された道路白線の線種判別結果が実線か否かを判定する。例えば、自車両前方に左側分岐の分岐路が存在し、分岐路が現れた直後に自車両が本線から分岐路へ進行した場合であっても、左側白線は実線を捉え続けるはずである。したがって、コントローラ10は、ステップS52の判断を行う。左側白線種別が実線の場合、コントローラ10は、処理をステップS53に移行させる。
ステップS53において、コントローラ10は、左側白線とは逆の右側白線がロストしていないか否かを判定する。
一方、ステップS52にて左側白線が実線以外である場合には、コントローラ10は、処理をステップS55に移行させる。ステップS55において、コントローラ10は、分岐判定を行っていないことを示す「0」の分岐判定ステータスFstatusに設定し、車線幅平均値LaneW_AVEを「0」にクリアして、処理を終了する。すなわち、ステップS52にて否定判定された場合、分岐路が現れた直後に自車両が本線から分岐路へ進行した場面以外の要因で、車線幅が広がったものと判断する。
コントローラ10は、ステップS53において右側白線がロストしていないと判断した場合は、処理をステップS54に移行する。このステップS54において、コントローラ10は、自車両が本線から左側に分岐した分岐路に進入したと判断し、分岐判定フラグFdivを「1」、分岐判定ステータスFstatusを「0」、車線幅平均値LaneW_AVEを「0」にクリアして、処理を終了する。
これは、図5に示す状況において、分岐路が出現した直後に左端の実線に沿うように分岐路に進入した場合、コントローラ10は、カメラコントローラ4により、車線幅の広がりを検出し、左白線の実線認識を継続したままで、右白線の認識状態がロストした後に、自車両が完全に分岐路に進入した時には右側白線の認識状態がロストから復帰することを判断している。これにより、コントローラ10は、自車両が本線から左側に分岐した分岐路に進んだことを判断している。
一方、ステップS53において、右側白線の認識状態がロストを継続していると判断した場合は、処理を終了する。ここで、分岐路の出現により車線幅が広がり、自車両が分岐路方向に進行したことにより右側白線はロストしたものの、まだ分岐路への進行が完了していないと判断し、この周期での処理は以降何も行わずに処理を終了する。
ステップS51にて分岐判定フラグFdivが「1」ではない場合、コントローラ10は、処理をステップS56に進める。ステップS56において、コントローラ10は、分岐判定フラグFdivが「2」に設定されているか否かを判定する。すなわち、分岐路が右側分岐であるか否かを判定し(分岐判定フラグFdiv=1?)、右側分岐(分岐判定フラグFdiv=2)であった場合には、コントローラ10は、処理をステップS57に移行させる。
一方、分岐判定フラグFdivが「2」に以外に設定されている場合は、自車両前方にインターチェンジ出口のような分岐地点が存在しないと判断して、処理をステップS60に移行させる。ステップS60において、コントローラ10は、分岐判定ステータスFstatusを「0」、車線幅平均値LaneW_AVEを「0」にクリアして、処理を終了する。
ステップS57において、コントローラ10は、右側白線が実線であるか否かを判定する。右側白線が実線である場合には、コントローラ10は、処理をステップS58に進め、そうでない場合には、処理を終了する。
ステップS58において、コントローラ10は、右側白線とは逆の左側白線がロストしていないか否かを判定する。
コントローラ10は、ステップS58において左側白線がロストしていないと判断した場合は、処理をステップS59に移行する。このステップS59において、コントローラ10は、自車両が本線から右側に分岐した分岐路に進入したと判断し、分岐判定フラグFdivを「1」、分岐判定ステータスFstatusを「0」、車線幅平均値LaneW_AVEを「0」にクリアして、処理を終了する。
一方、ステップS58において、左側白線の認識状態がロストを継続していると判断した場合は、処理を終了する。ここで、分岐路の出現により車線幅が広がり、自車両が分岐路方向に進行したことにより左側白線はロストしたものの、まだ分岐路への進行が完了していないと判断し、この周期での処理は以降何も行わずに処理を終了する。
以上のような処理をコントローラ10が行うことにより、ナビゲーション装置2は、図9のような動作をすることができる。図9は次のようなことを示している。先ず、分岐路に進入する位置P1にて、(1)分岐情報を取得し、(2)車線幅平均値LaneW_AVEを算出し、(3)右側白線種別と左側白線種別を認識しておく。位置P2まで進行すると、(4)車線幅の広がりを検出し、位置P3にて、(5)左側白線は実線検出を継続するが右側白線はロスト状態となる。その後、位置P5まで進入すると、(6)右側白線のロスト状態から復帰し、これにより、分岐路に進入したことを判定できる。
具体的には、ナビゲーション装置2は、車両1が国道(自動車専用道路)、有料道路、都市内高速、都市間高速を走行中である時に、自車両の現在位置を検出し、自車両前方の所定領域の道路地図情報を抽出し、道路地図上における自車両の現在位置を表示し、ドライバに経路案内を行うと共に自車両前方の分岐情報をコントローラ10に出力する。
また、カメラコントローラ4は、単眼カメラ3により取得された撮像画像を処理し、車両1の幅方向両側白線状態を検出し、右側白線種別と左側白線種別を判断し、単眼カメラ3の位置から幅方向両側白線までの距離に基づいて車線幅を算出する。そして、カメラコントローラ4は、右側白線種別と左側白線種別、車線幅をコントローラ10に出力する。
コントローラ10は、ナビゲーション装置2から供給された分岐情報、カメラコントローラ4から供給された右側白線種別と左側白線種別、車線幅を読み込み、自車両前方にインターチェンジ出口への分岐地点が存在しないと判断されるときには、分岐判定フラグFdivを「0」に設定する。
このため、コントローラ10は、図6のステップS10で分岐判定フラグFdivを「0」に初期化した後、ステップS12からステップS13に処理を移行し、処理を終了する。分岐判定フラグFdivが「0」であることから、コントローラ10は、ナビゲーション装置2に対して位置補正要求フラグFrを「0」として出力する。
ナビゲーション装置2の位置補正部2dは、位置補正要求フラグFrが「0」に設定されているために補正要求が行われていないことから、自車両の位置補正は行わない。
このような状態から、自車両前方にインターチェンジ出口等の分岐地点が検出される状態となり且つ自車両が分岐地点手前のLa〔m〕の距離の地点に到達した場合は、図2のステップS1の処理により、コントローラ10が、分岐判定フラグFdivを「1」(左分岐)又は「2」(右分岐)に設定させる。
このため、例えば分岐判定フラグFdivが「1」に設定された場合は、コントローラ10は、図6のステップS10、S11、S12を経て、処理をステップS14に移行する。車両1が左端レーンを走行中でない場合は、ステップS18を経て処理を終了する。
そして、車両1が図9の位置P1に存在する場合、車両1が左側に分岐する分岐地点近傍で左端レーンを走行している状態になる。なお、P1’〜P4’は、位置P1〜P4における単眼カメラ3の撮像範囲を示している。位置P1の場合、コントローラ10は、図6のステップS14を経てステップS15に達し、カメラコントローラ4からの車線幅情報と過去の車線幅情報の平均値を比較し、車線幅の広がりの有無を判断する。このとき、過去の車線幅情報がまだ保持されていない場合は、比較を行わずにステップS17の車線幅情報の平均値算出を行い、処理を終了する。同様に、車線幅の広がりを検出できない場合も、ステップS17の車線幅情報の平均値算出を行い、処理を終了する。
ステップS15において、車両1が図9の位置P2に移動し、コントローラ10が車線の広がりを検出した状態となると、ステップS17に移行し、分岐判定ステータスFstatusに「1」を設定し、処理を終了する。
分岐判定ステータスFstatusが「1」の状態になると、図6のステップS11を経て、図7のステップS31へ移行する。分岐判定ステータスFstatusが「1」の状態ということは、分岐点付近で車線幅の広がりを検出した状態である。そして、ステップS31にて分岐方向を判断し、左分岐を表す分岐判定フラグFdivに「1」が設定されている場合には、処理は、ステップS32に移行する。
図9に示すように、分岐が現れた直後に分岐路に進入した場合、カメラコントローラ4が分岐を表す太短破線を認識できずに、本線外側車線の実線からつながる分岐路の外側実線の認識を継続するはずである。コントローラ10は、ステップS32において、外側白線となる左側白線が実線か否かを判定している。
ここで、左側白線が実線以外の場合は、ステップS35に移行し、分岐判定ステータスFstatusを「0」の状態に、また車線幅平均値LaneW_AVEも「0」に初期化して、処理を終了する。カメラコントローラ4が左側白線における実線の認識を継続している場合は、コントローラ10が、処理をステップS33に移行させ、逆の右側白線のロスト状態を判断する。右側白線の認識状態がロスト状態にはなっていない場合には、このまま処理を終了する。
そして、図9の位置P3に進行して分岐路への進入が進むと、カメラコントローラ4が右側白線の認識状態をロストする状態となる。ここで、単眼カメラ3は、通常車両に搭載されているものであり、自車の左右近傍の一定範囲内に白線があるか否かを検出する。図9の位置P3のように車両1が分岐路へ進入すると、車両1の向きと左側白線の実線に引っ張られる形となり、本線上走行中に捕捉していた右側白線をいずれロストする。この状態になると、図7のステップS33にて、コントローラ10が、右側白線のロストを判断し、処理をステップS34に移行させ、分岐判定ステータスFstatusを「2」に設定して、処理を終了する。
更に、図9の位置P4に示すように、完全に分岐路へ進入し、カメラコントローラ4により右側白線を認識して、ロスト状態から復帰する状態となる。すると、コントローラ10は、図6のステップS11、図8のステップS51、S52と処理を移行させ、ステップS53において、右側白線のロスト状態を判定する。ステップS52にて左側白線が実線ではなかった場合には、ステップS55に処理を移行させ、分岐判定ステータスFstatusを「0」の状態に、車線幅平均値LaneW_AVEも「0」に初期化して処理を終了する。
ステップS53で、カメラコントローラ4により右側白線の認識状態がロスト状態ではなく、白線認識の状態に復帰したと判定した場合は、コントローラ10は、処理をステップS54に移行させ、分岐判定フラグFdivに「1」を設定し、左分岐路への進行を判定する。
一方、ステップS53で右側の白線がロストを継続している状態の場合は、分岐判定ステータスFstatusを「2」に設定した継続したまま処理を終了する。
その後、分岐判定フラグFdivが「1」であることから、コントローラ10は、図2のステップS4の位置補正要求出力処理により、ナビゲーション装置2に対して位置補正要求フラグFrを「1」として出力する。
ナビゲーション装置2の位置補正部2dでは、位置補正要求フラグFrが「1」であることから、自車両の現在位置の補正を行う。ここで、位置補正要求フラグFrが「1」となった時点は、自車両が分岐路へ進入した直後であることから、ナビゲーション装置2のセンサー情報だけでは、この時点で分岐路のどちらに進行したかを判別することは難しい。このときに、このナビゲーション装置2では、位置補正要求フラグFrが「1」に切り換わった時点で、記憶部2bの地図情報を参照して、保持している自車両の現在位置を、インターチェンジ出口等の分岐路へ補正する。
以上詳細に説明したように、本発明の実施形態として示すナビゲーション装置2によれば、車線幅が増加した後に、幅方向両側車線区分線のうち一方の車線区分線が認識された状態で他方の車線区分線の認識が不能となった場合に、自車両の分岐路進入判断をするので、道路上の指標が認識できない場合であっても、車両が分岐路に進入したことを判断できる。
したがって、このナビゲーション装置2によれば、図9に示す(2)〜(5)のように車線幅が増加を検出した後に、左右の白線のうち外側白線の検出を継続した状態で、中央車線側の一方の白線側のみが検出できなくなった場合は、自車両が分岐路に進入したと判断できる。
また、このナビゲーション装置2によれば、自車両の前方方向に左側に分岐する分岐路が存在することを検出し自車両が左端車線を走行している場合、又は、自車両の前方方向に右側に分岐する分岐路が存在することを検出し自車両が右端車線を走行している場合にのみ、自車両の分岐路進入判断をする。これにより、ナビゲーション装置2によれば、図9の(3)に示すように、分岐路進入判断を行う場面を限定し、車線幅の広がりと左右白線の認識状態で分岐路への侵入を検知する分岐路進入判断の誤判断を減らすことができる。
更に、ナビゲーション装置2によれば、白線認識が不能となった後、図9の(6)のように幅方向両側の白線認識が可能となった場合に、自車両の分岐路進入判断をするので、分岐路進入判断を行う条件として、幅方向両側白線が認識できたことを利用する。これにより、車線幅の広がりと左右白線の認識状態で分岐路への侵入を検知する分岐路進入判断の誤判断を減らすことができる。
更にまた、ナビゲーション装置2によれば、図3に示したように、自車両の位置が分岐路による分岐点を挟む分岐前後の分岐判定区間A内である場合にのみ、自車両の分岐路進入判断をするので、分岐路進入判断を行う場面を分岐判定区間Aに限定し、車線幅の広がりと左右白線の認識状態で分岐路への侵入を検知する分岐路進入判断の誤判断を減らすことができる。
更にまた、このナビゲーション装置2によれば、図4に示した分岐判定出力禁止範囲Cのように、分岐路が自車両から所定距離内にて連続して存在する場合であって、当該複数の分岐路の分岐方向が同じである場合には、自車両が分岐路に進入する判断を禁止する。これにより、分岐路への進入判断を分岐前後の一定区間に限定した場合に起こる判定区間の重複について、前後どちらの分岐に対する判断を行った不明となる場合には出口判断処理を禁止とする。したがって、ナビゲーション装置2によれば、車線幅の広がりと左右白線の認識状態で分岐路への侵入を検知する分岐路進入判断の誤判断を減らすことができる。
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。