(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の一実施形態について図面を参照して説明する。
【0012】
[自己位置算出装置の構成]
図1は、本発明の一実施形態に係る自己位置算出装置100の構成を示すブロック図である。
図1に示すように、自己位置算出装置100は、投光器11と、カメラ12(撮像部)と、エンジンコントロールユニット(ECU)13と、車速センサ14とを備える。投光器11は、車両に搭載され、車両周囲の路面に周期的に輝度が変化するパターン光を投光する。パターン光の詳細については後述する。カメラ12は、車両に搭載され、パターン光が投光された領域を含む車両周囲の路面を撮像して画像を取得する。ECU13は、投光器11の作動を制御し、且つカメラ12により取得された画像から車両の移動量を推定する一連の情報処理サイクルを実行する制御部の一例である。
【0013】
投光器11は、
図2に示すように、カメラ12の撮像範囲内の路面31に向けて、正方形や長方形の格子像を含む所定の形状を有するパターン光32bを投光する。この際、パターン光制御部27により、パターン光32bの輝度が、周期的に変化するように制御される。
【0014】
カメラ12は、固体撮像素子、例えばCCD及びCMOSを用いたデジタルカメラであって、画像処理が可能なデジタル画像を取得する。カメラ12の撮像対象は車両周囲の路面であって、車両周囲の路面には、車両の前部、後部、側部、車両底部の路面が含まれる。例えば、
図2に示すように、カメラ12は、車両10の前部、具体的にはフロントバンパ上に搭載することができる。
【0015】
車両10の前方の路面31上の特徴点(「テクスチャ」ともいう)及び投光器11により投光されたパターン光32bを撮像できるように、カメラ12が設置される高さ及び向きが調整され、且つ、カメラ12が備えるレンズの焦点及び絞りが自動調整される。ここで、「特徴点」とは、アスファルト上に存在する凹凸部分である。
【0016】
カメラ12は、所定の時間間隔をおいて繰り返し撮像を行い、一連の画像(フレーム)群を取得する。例えば、パターン光32bの輝度を変化させる周期を50[Hz]とした場合、1秒間に600回の撮像を行う。これにより、パターン光32bの輝度が最も高い時点、及び最も低い時点の画像を周期的に撮像することができる。カメラ12により取得された画像データは、撮像周期毎にECU13へ転送され、ECU13が備えるメモリ(図示省略)に記憶される。
【0017】
カメラ12は、路面31に照射されたパターン光を撮像する。投光器11は、例えば、レーザポインター及び回折格子を備える。レーザポインターから射出されたレーザ光を回折格子で回折することにより、投光器11は、
図2〜
図4に示すように、格子像、或いは行列状に配列された複数のスポット光からなるパターン光(32b、32a)を生成する。
図3及び
図4に示す例では、5×7のスポット光からなるパターン光32aを生成している。
【0018】
図1に戻り、ECU13は、CPU、メモリ、及び入出力部を備えるマイクロコントローラからなり、予めインストールされたコンピュータプログラムを実行することにより、自己位置算出装置100が備える複数の情報処理部を構成する。ECU13は、カメラ12により取得された画像から車両の移動量を推定する一連の情報処理サイクルを、画像(フレーム)毎に繰り返し実行する。ECU13は、車両10に関連する他の制御に用いるECUと兼用しても良い。
【0019】
車速センサ14は、車輪、或いはディファレンシャルギア等に装着されたロータリーエンコーダ等の出力から車両10の現在の車速を算出する。
【0020】
複数の情報処理部には、パターン光抽出部21と、姿勢角算出部22と、特徴点検出部23と、姿勢変化量算出部24と、自己位置算出部26と、パターン光制御部27と、車速検出部28とが含まれる。姿勢変化量算出部24には、特徴点検出部23が含まれる。
【0021】
パターン光制御部27は、投光器11によるパターン光32aの投光を制御する。例えば、車両10のイグニションスイッチがオン状態となり、自己位置算出装置100が起動すると同時に、パターン光制御部27は、周期的に輝度が変化するパターン光32aの投光を開始する。その後、パターン光制御部27は、自己位置算出装置が停止するまで、パターン光32aを連続して投光する。或いは、必要に応じてパターン光32aを投光してもよい。本実施形態では、輝度変化の一例として、投光パターンの輝度が所定周波数の正弦波状に変化するように、投光器11に供給する電力を制御する。例えば、後述の
図8に示すように正弦波状に輝度が変化するように制御する。
【0022】
パターン光抽出部21は、カメラ12により取得された画像をメモリから読み込み、更に、前述した所定周波数にて同期検波処理を実施することにより、画像に含まれるパターン光32aを抽出する。同期検波処理については後述する。そして、取得したパターン光32aから、該パターン光32aの位置を抽出する。
図3(a)に示すように、例えば、投光器11が、行列状に配列された複数のスポット光からなるパターン光32aを路面31に向けて投光し、路面31で反射したパターン光32aを同期検波処理、或いは差分演算処理により検出する。
【0023】
更に、抽出したパターン光の画像に対して二値化処理を施すことにより、
図4(a)及びその拡大図である
図4(b)に示すように、スポット光Spの画像のみを抽出する。パターン光抽出部21は、
図4(c)に示すように、各スポット光Spの重心の位置He、即ち、スポット光Spの画像上の座標(Uj、Vj)を算出することにより、パターン光32aの位置を抽出する。座標は、カメラ12の撮像素子の画素を単位とし、5×7のスポット光Spの場合、“j”は1以上35以下の整数である。スポット光Spの画像上の座標(Uj、Vj)は、パターン光32aの位置を示すデータとしてメモリに記憶される。
【0024】
次に、同期検波処理について説明する。カメラ12で撮像した画像に含まれる測定信号をsin(ω0+α)とすると、この測定信号には投光パターン以外に様々な周波数成分の太陽光や人工光が含まれている。そこで、周波数が変調周波数ωrとなる参照信号sin(ωr+β)を測定信号sin(ω0+α)に乗じると、その結果は、cos(ω0−ωr+α−β)/2−cos(ω0+ωr+α+β)/2となる。
【0025】
この測定信号をローパスフィルタに通すと、ω0≠ωrの信号、即ち、周波数がωrではない投光パターン以外の太陽光や人工光は除去される。その一方で、ω0=ωrの信号、即ち、周波数がωrの投光パターンは、cos(α−β)/2となって抽出することができる。このように、同期検波処理を用いることにより、様々な周波数成分を含む測定信号の中から、投光パターンのみを抽出した画像を得ることができる。
【0026】
即ち、本実施形態では、パターン光制御部27は、予め設定した所定の変調周波数ωrにてパターン光32aを輝度変調する。従って、路面には周波数ωrで輝度変調された投光パターンが投光される。そして、パターン光抽出部21は、カメラ12で撮像される画像(測定信号)に変調周波数ωrを乗じることにより、投光パターンのみを抽出することができる。
【0027】
図1に示す姿勢角算出部22は、パターン光32aの位置を示すデータをメモリから読み込み、カメラ12により取得された画像におけるパターン光32aの位置から、路面31に対する車両10の距離及び姿勢角を算出する。例えば、
図3(a)に示すように、投光器11とカメラ12の間の基線長Lbと、各スポット光の画像上の座標(Uj、Vj)とから、三角測量の原理を用いて、各スポット光が照射された路面31上の位置を、カメラ12に対する相対位置として算出する。そして、姿勢角算出部22は、カメラ12に対する各スポット光の相対位置から、パターン光32aが投光された路面31の平面式、即ち、路面31に対するカメラ12の距離及び姿勢角(法線ベクトル)を算出する。なお、車両10に対するカメラ12の搭載位置及び撮像方向は既知であるので、実施形態においては、路面31に対する車両10の距離及び姿勢角の一例として、路面31に対するカメラ12の距離及び姿勢角を算出する。以後、路面31に対するカメラ12の距離及び姿勢角を、「距離及び姿勢角」と略す。姿勢角算出部22により算出された距離及び姿勢角は、メモリに記憶される。
【0028】
具体的には、カメラ12及び投光器11は車両10にそれぞれ固定されているので、パターン光32aの照射方向と、カメラ12と投光器11との距離(
図3の基線長Lb)は既知である。そこで、姿勢角算出部22は、三角測量の原理を用いて、各スポット光の画像上の座標(Uj、Vj)から各スポット光が照射された路面31上の位置を、カメラ12に対する相対位置(Xj,Yj,Zj)として求めることができる。
【0029】
なお、カメラ12に対する各スポット光の相対位置(Xj,Yj,Zj)は同一平面上に存在しない場合が多い。なぜなら、路面31に表出するアスファルトの凹凸に応じて各スポット光の相対位置が変化するからである。そこで、最小二乗法を用いて、各スポット光との距離誤差の二乗和が最小となるような平面式を求めても良い。
【0030】
特徴点検出部23は、カメラ12により取得された画像をメモリから読み込み、メモリから読み込んだ画像から、路面31上の特徴点を検出する。詳細には、所定周波数で正弦波状に輝度が変化するパターン光の輝度が、予め設定した閾値輝度以下となった時間帯に特徴点検出フラグを「1」に設定し、この時間帯において特徴点を検出する。
【0031】
更に、特徴点検出部23は、路面31上の特徴点を検出するために、例えば、「D.G. Lowe,“Distinctive Image Features from Scale-Invariant Keypoints,” Int. J. Comput. Vis., vol.60, no.2, pp. 91-110, Nov. 200 」、或いは、「金澤 靖, 金谷健一, “コンピュータビジョンのための画像の特徴点抽出,” 信学誌, vol.87, no.12, pp.1043-1048, Dec. 2004」に記載の手法を用いることができる。
【0032】
具体的には、特徴点検出部23は、例えば、ハリス(Harris)作用素又はSUSANオペレータを用いて、物体の頂点のように周囲に比べて輝度値が大きく変化する点を特徴点として検出する。或いは、特徴点検出部23は、SIFT(Scale-Invariant Feature Transform)特徴量を用いて、その周囲で輝度値がある規則性のもとで変化している点を特徴点として検出しても良い。そして、特徴点検出部23は、1つの画像から検出した特徴点の総数Nを計数し、各特徴点に識別番号(i(1≦i≦N))を付す。各特徴点の画像上の位置(Ui、Vi)は、ECU13内のメモリに記憶される。
図6(a)及び
図6(b)は、カメラ12により取得された画像から検出された特徴点Teの例を示す。更に、各特徴点Teの変化方向及び変化量をベクトルDteとして示している。
【0033】
なお、実施形態において、路面31上の特徴点は、主に大きさが1cm以上2cm以下のアスファルト混合物の粒を想定している。この特徴点を検出するために、カメラ12の解像度はVGA(約30万画素)である。また、路面31に対するカメラ12の距離は、おおよそ70cmである。更に、カメラ12の撮像方向は、水平面から約45degだけ路面31に向けて傾斜させる。また、カメラ12により取得される画像をECU13に転送するときの輝度数値は、0〜255(0:最も暗い、255:最も明るい)の範囲内である。
【0034】
姿勢変化量算出部24は、一定の情報処理サイクル毎に撮像される各フレームの画像のうち、前回(時刻t)フレームの画像に含まれる複数の特徴点の画像上の位置座標(Ui,Vi)をメモリから読み込む。更に、今回(時刻t+Δt)フレームの画像に含まれる複数の特徴点の画像上の位置座標(Ui,Vi)をメモリから読み込む。そして、複数の特徴点の画像上での位置変化に基づいて、車両10の姿勢変化量を求める。ここで、「車両の姿勢変化量」とは、路面に対する車両10の「距離及び姿勢角の変化量」、及び路面上での「車両の移動量」の双方を含んでいる。以下、「距離及び姿勢角の変化量」及び「車両の移動量」の算出方法について説明する。
【0035】
距離及び姿勢角の変化量は、例えば、以下のようにして求めることができる。
図6(a)は、時刻tに取得された第1フレームの画像38の一例を示す。
図5及び
図6(a)に示すように、画像38において、例えば3つの特徴点Te1、Te2、Te3の相対位置(xi,yi,zi)がそれぞれ算出されている場合を考える。この場合、特徴点Te1、Te2、Te3によって特定される平面G(
図6(a)参照)を路面と見なすことができる。よって、姿勢変化量算出部24は、各特徴点の相対位置(xi,yi,zi)から、路面(平面G)に対するカメラ12の距離及び姿勢角(法線ベクトル)を求めることができる。更に、姿勢変化量算出部24は、既知のカメラモデルによって、各特徴点Te1、Te2、Te3の間の距離(l1,l2,l3)及び夫々の特徴点Te1、Te2、Te3を結ぶ直線が成す角度を求めることができる。
図5のカメラ12は、第1フレーム(時刻t)におけるカメラの位置を示す。
【0036】
なお、カメラ12に対する特徴点の相対位置を示す3次元座標(xi,yi,zi)として、カメラ12の撮像方向をZ軸に設定し、撮像方向を法線とし且つカメラ12を含む平面内に、互いに直交するX軸及びY軸を設定する。一方、画像38上の座標として、水平方向及び垂直方向をそれぞれV軸及びU軸に設定する。
【0037】
図6(b)は、時刻tから時間Δtだけ経過した時刻(t+Δt)に取得された第2フレームの画像38’を示す。
図5のカメラ12’は、第2フレームの画像38’を撮像したときのカメラ12の位置を示す。
図5及び
図6(b)に示すように、画像38’において、カメラ12’が特徴点Te1、Te2、Te3を撮像し、特徴点検出部23が特徴点Te1、Te2、Te3を検出する。この場合、姿勢変化量算出部24は、時刻tにおける各特徴点Te1、Te2、Te3の相対位置(xi,yi,zi)と、各特徴点の画像38’上の位置P1(Ui,Vi)と、カメラ12のカメラモデルとから、時間Δtにおけるカメラ12の移動量ΔL(
図5参照)を算出できる。ひいては車両10の移動量を算出できる。更には、距離及び姿勢角の変化量も算出することができる。例えば、以下の式(1)からなる連立方程式をR、Tについて解くことにより、姿勢変化量算出部24は、カメラ12(車両)の移動量(ΔL)、及び、距離及び姿勢角の変化量を算出することができる。ここで、Rはカメラの姿勢角変化量を表す3次元回転行列であり、Tはカメラの移動方向を表す3次元並進ベクトルである。なお、下記の(1)式はカメラ12が歪みや光軸ずれのない理想的なピンホールカメラとしてモデル化したものであり、λiは定数、fは焦点距離である。カメラモデルのパラメータは、予めキャリブレーションをしておけばよい。
【0039】
なお、姿勢変化量算出部24は、時刻tと時刻t+Δtで検出された特徴点の全てを用いるのではなく、特徴点同士の位置関係に基づいて最適な特徴点を選定してもよい。選定方法としては、例えば、エピポーラ幾何(エピ極線幾何,R.I. Hartley: “A linear method for reconstruction from lines and points,” Proc. 5th International Conference on Computer Vision, Cambridge, Massachusetts, pp.882-887(1995))を用いることができる。
【0040】
このように、姿勢変化量算出部24が、時刻tのフレーム画像38で相対位置(xi,yi,zi)が算出された特徴点Te1、Te2、Te3を、時刻t+Δtにおけるフレーム画像38’からも検出した場合には、車両の姿勢変化量及び移動量を算出できる。すなわち、姿勢変化量算出部24は、路面上の複数の特徴点の相対位置(xi,yi,zi)と特徴点の画像上の位置(Ui,Vi)の時間変化から、「車両の姿勢変化量」を算出することができる。更には、車両10の移動量を算出することができる。
【0041】
したがって、前回フレームと今回フレームの間で対応関係が取れる3点以上の特徴点を検出し続けることができれば、距離及び姿勢角の変化量を加算する処理(即ち、積分演算)を継続することにより、パターン光32aを用いることなく、距離及び姿勢角を更新し続けることができる。但し、最初の情報処理サイクルにおいては、パターン光32aを用いて算出された距離及び姿勢角、或いは所定の初期的な距離及び姿勢角を用いてもよい。つまり、積分演算の起点となる距離及び姿勢角は、パターン光32aを用いて算出しても、或いは、所定の初期値を用いても構わない。所定の初期的な距離及び姿勢角は、少なくとも車両10への乗員及び搭載物を考慮した距離及び姿勢角であることが望ましい。例えば、車両10のイグニションスイッチがオン状態で、且つシフトポジションがパーキングから他のポジションへ移動した時に、パターン光32aを投光し、パターン光32aから算出された距離及び姿勢角を、所定の初期的な距離及び姿勢角として用いればよい。これにより、車両10の旋回や加減速によるロール運動或いはピッチ運動が発生していない時の距離や姿勢角を求めることができる。
【0042】
なお、前後フレーム間で特徴点を対応付けるには、例えば、検出した特徴点の周辺の小領域の画像をメモリに記録しておき、輝度や色情報の類似度から判断すればよい。具体的には、ECU13は、検出した特徴点を中心とする5×5(水平×垂直)画素分の画像をメモリに記録する。姿勢変化量算出部24は、例えば、輝度情報が20画素以上で誤差1%以下に収まっていれば、前後フレーム間で対応関係が取れる特徴点であると判断する。そして、上記の処理で取得した姿勢変化量は、後段の自己位置算出部26にて車両10の自己位置を算出する際に用いられる。
【0043】
図1に示す自己位置算出部26は、姿勢変化量算出部24で算出された「距離及び姿勢角の変化量」から車両10の距離及び姿勢角を算出する。更に、姿勢変化量算出部24で算出された「車両の移動量」から車両10の自己位置を算出する。
【0044】
具体的な例として、姿勢角算出部22にて算出された距離及び姿勢角(パターン光を用いて算出された距離及び姿勢角)が起点として設定された場合について説明する。この場合には、この起点(距離及び姿勢角)に対して、自己位置算出部26は、姿勢変化量算出部24で算出された各フレーム毎の距離及び姿勢角の変化量を逐次加算して(積分演算して)、距離及び姿勢角を最新な数値に更新する。また、姿勢角算出部22にて距離及び姿勢角が算出された際の車両位置を起点(車両の初期位置)とし、この初期位置からの車両10の移動量を逐次加算して(積分演算して)、車両10の自己位置を算出する。例えば、地図上の位置と照合された起点(車両の初期位置)を設定することで、地図上の車両の現在位置を逐次算出することができる。
【0045】
従って、姿勢変化量算出部24は、時間Δtの間でのカメラ12の移動量(ΔL)を求めることにより、車両10の自己位置を算出することができる。更には、距離及び姿勢角の変化量も同時に算出することができるので、姿勢変化量算出部24は、車両10の距離及び姿勢角の変化量を考慮して、6自由度(前後、左右、上下、ヨー、ピッチ、ロール)の移動量(ΔL)を精度よく算出することができる。即ち、車両10の旋回や加減速によるロール運動或いはピッチ運動によって距離や姿勢角が変化しても、移動量(ΔL)の推定誤差を抑制することができる。
【0046】
なお、実施形態では、距離及び姿勢角の変化量を算出し、距離及び姿勢角を更新することにより、カメラ12の移動量(ΔL)を算出した。しかし、路面31に対するカメラ12の姿勢角だけを変化量算出及び更新の対象としても構わない。この場合、路面31とカメラ12との距離は一定と仮定すればよい。これにより、姿勢角の変化量を考慮して、移動量(ΔL)の推定誤差を抑制しつつ、ECU13の演算負荷を軽減し、且つ演算速度を向上させることもできる。
【0047】
車速検出部28は、車速センサ14で算出された車両10の車速を検出し、車速が所定の閾値Vth[m/s]以下であるか否かを判定する。この判定結果は、パターン光制御部27と自己位置算出部26に出力される。
【0048】
[自己位置算出処理の手順]
次に、カメラ12により取得された画像38(
図5参照)から車両10の移動量を推定する自己位置算出方法の一例として、ECU13により繰り返し実行される情報処理サイクルを、
図7に示すフローチャート、
図8に示す特性曲線を参照して説明する。
【0049】
図8は、投光器11より投光されるパターン光32aの輝度変化を示す特性図である。
図7に示す情報処理サイクルは、車両10のイグニションスイッチがオン状態となり、自己位置算出装置100が起動すると同時に開始され、該自己位置算出装置100が停止するまで、繰り返し実行される。
【0050】
初めに、
図7のステップS11において、車速検出部28は、車速センサ14で算出された車両10の現在の車速を検出し、車速が所定の閾値Vth[m/s]以下であるか否かを判断する。同期検波の原理から、車速が速くて1周期の間での移動量が大きくなり、路面状態が変化してしまうと、投光パターン以外の太陽光や人工光が変化し、同期検波の前提が崩れる可能性がある。このような場合には、パターン光32aの安定した抽出が難しくなり、姿勢角算出部22で算出される路面に対する距離や姿勢角の誤差が大きくなる、或いは算出できなくなって車両の移動量を高精度に検出できなくなる。そこで、車速が所定の閾値Vth以下の場合に限って、以下のステップで説明するように、パターン光を投光し、同期検波でパターン光を抽出して路面に対する距離及び姿勢角を算出するようにしている。
【0051】
尚、閾値Vthとしては、例えば5.0[m/s]に設定すればよい。これは、上述したように同期検波の前提が崩れないようにするためであり、具体的には1周期での移動量を0.1m以下に抑えるためである。ただし、より高速なフレームレートを有するカメラを用いる場合には閾値Vthをより大きくできる。また、閾値Vthをより低い車速に設定すれば、より低速なフレームレートを有する安価なカメラを使用することができ、システムのコストダウンを図ることが可能となる。
【0052】
そして、車速が閾値Vth以下の場合には(ステップS11でYES)、ステップS12において、パターン光制御部27は、投光器11を制御して、車両周囲の路面31にパターン光を投光する。この際、パターン光制御部27は、
図8に示すように、パターン光の輝度が所定周期の正弦波状に変化するように投光電力を制御する。例えば、正弦波の周波数を50[Hz]とする。その結果、時間経過に伴い輝度が正弦波状に変化するパターン光が路面31に投光される。ここで、本実施形態では、最も日照量が多い夏至(6月)に近い晴天下でもパターン光32aが検出できるように、パターン光32aの最大輝度(
図8の輝度波形が最大となるピーク)が設定されている。
【0053】
ステップS13において、カメラ12は、パターン光が投光されている領域を含む路面31を撮像して画像を取得する。例えば、600[fps]、即ち、1秒間当たり600画像の撮像速度で画像を撮像する。
【0054】
ステップS14において、パターン光抽出部21は、上述した同期検波処理によりパターン光32aを抽出する。そして、パターン光32aの位置を示すデータとして、スポット光Spの画像上の座標(Uj、Vj)を算出し、これをメモリに記憶する。更に、姿勢角算出部22は、パターン光32aの位置を示すデータをメモリから読み込み、パターン光32aの位置から、距離及び姿勢角を算出し、メモリに記憶する。距離及び姿勢角の算出方法は、前述した通りである。なお、以下では、パターン光を用いて距離及び姿勢角を求め、これをカメラ12の距離及び姿勢角として採用する処理を「距離及び姿勢角をリセットする」と表現する。その後、ステップS16に処理を進める。
【0055】
一方、車速が閾値Vthより大きい場合には(ステップS11でNO)、ステップS20において、カメラ12は、パターン光が投光されていない路面31を撮像して画像を取得する。例えば、600[fps]、即ち、1秒間当たり600画像の撮像速度で路面31を撮像する。
【0056】
ステップS21において、特徴点検出部23は、路面31に存在する特徴点を検出する。更に、姿勢変化量算出部24は、特徴点検出部23で検出された特徴点の画像上の位置に基づき、カメラ12に対する特徴点の変化量を算出する。
【0057】
ここで、特徴点検出部23は、画像38から特徴点(例えば、アスファルト上に存在する凹凸部位)を検出し、前回の情報処理サイクルと今回の情報処理サイクルの間で対応関係が取れる特徴点を抽出する。そして、姿勢変化量算出部24は、特徴点の画像上の位置(Ui、Vi)から距離及び姿勢角を更新する。具体的には、特徴点検出部23は、カメラ12により取得された画像38をメモリから読み込み、画像38から路面31上の特徴点を検出し、各特徴点の画像上の位置(Ui、Vi)をメモリに記憶する。姿勢変化量算出部24は、各特徴点の画像上の位置(Ui、Vi)をメモリから読み込み、距離及び姿勢角と、特徴点の画像上の位置(Ui、Vi)とから、カメラ12に対する特徴点の相対位置(Xi,Yi,Zi)を算出する。姿勢変化量算出部24は、カメラ12に対する特徴点の相対位置(Xi,Yi,Zi)をメモリに記憶する。
【0058】
そして、姿勢変化量算出部24は、特徴点の画像上の位置(Ui、Vi)と、前回の情報処理サイクルのステップS21において算出された特徴点の相対位置(Xi,Yi,Zi)をメモリから読み込む。姿勢変化量算出部24は、前回の情報処理サイクルと今回の情報処理サイクルの間で対応関係が取れる特徴点の相対位置(Xi,Yi,Zi)及び画像上の位置(Ui、Vi)を用いて、距離及び姿勢角の変化量を算出する。姿勢変化量算出部24は、前回の情報処理サイクルで求められた距離及び姿勢角に、上記した距離及び姿勢角の変化量を加算することにより、距離及び姿勢角を更新する。そして、更新後の距離及び姿勢角をメモリに記憶する。つまり、前回のサイクルのステップS16(後述)の処理で設定された距離及び姿勢角に対して、今回の情報処理サイクルの距離及び姿勢角の変化量を積分演算することにより、距離及び姿勢角を更新する処理を実行する。その後、ステップS16に処理を進める。
【0059】
ステップS16において、ECU13は、積分演算の起点を設定する。この処理では、初期的には、パターン光32aより算出される距離及び姿勢角を選択して設定する。更に、ステップS11において、車両10の現在の車速が閾値Vth[m/s]以下の場合には(ステップS11でYES)、移動量算出の起点をパターン光により算出する距離及び姿勢角、即ちステップS14の処理で算出された距離及び姿勢角にリセットする。他方、ステップS11において、車両10の現在の車速が閾値Vth[m/s]より大きい場合には(ステップS11でNO)、該特徴点の位置に基づいて距離及び姿勢角を更新する。
【0060】
次いで、ステップS17において、自己位置算出部26は、車両10の距離及び姿勢角と、車両10の自己位置を算出する。即ち、ステップS14或いはS21の処理で求められた距離及び姿勢角と、積分演算の起点、及び、特徴点の画像上の位置(Ui、Vi)の変化量とから、路面31に対するカメラ12の移動量(ΔL)、即ち車両10の移動量を算出する。
【0061】
こうして、本実施形態に係る自己位置算出装置では、上記した一連の情報処理サイクルを繰り返し実行して車両10の移動量を積算することにより、車両10の位置を算出することができるのである。
【0062】
このようにして、本実施形態に係る自己位置算出装置100では、投光器11より所定の変調周波数で正弦波状に輝度が変化するパターン光32aを路面に投光し、このパターン光32aを含む画像をカメラ12で撮像する。この画像を同期検波処理することにより、パターン光32aを抽出する。従って、路面上に投光したパターン光32aを高精度に検出することが可能となる。その後、パターン光32aの位置に基づいてカメラ12の距離及び姿勢角を算出する。
【0063】
ところが、路面の照度が高い、特に晴天下の日向等のシーンでは、撮像した画像からパターン光を抽出することが難しく、パターン光から路面に対する距離や姿勢角を算出することが難しい。このような場合でも路面上の複数の特徴点から姿勢変化量を算出し、基点となる車両の初期位置及び姿勢角に姿勢変化量を加算することで、車両の現在位置を求めることはできるが、積分を継続すれば積分誤差が蓄積して誤差が大きくなってしまう。
【0064】
そこで、本実施形態に係る自己位置算出装置100では、最も日照量が多い夏至(6月)に近い晴天下においてもパターン光32aを検出できるように、パターン光32aの最大輝度(
図8に示す輝度波形が最大となるピーク)を設定している。また、パターン光の輝度変調の周波数を50[Hz]とし、カメラ12のフレームレート(1秒間の撮影数)を600[fps]としている。
【0065】
さらに、本実施形態に係る自己位置算出装置100では、車速が所定の閾値以下の時にパターン光の輝度を周期的に変化させ、同期検波技術を用いてパターン光を抽出し、基点となる車両の初期位置及び姿勢角を設定する。そして、この基点に対して車速が閾値より大きい場合には、各特徴点の時間変化に基づいて算出した車両の姿勢変化量を加算する。これにより、路面の照度が高くなる晴天下の日中のような場合でも、積分誤差の影響を低減して車両の移動量を安定的、且つ高精度に算出することができる。
【0066】
また、本実施形態では、所定の変調周波数で輝度変調したパターン光を照射し、更に、撮像した画像を同期検波処理することにより、パターン光32aを抽出する例について説明した。しかし、同期画像を所定回数積算した画像を生成し、この積算した画像からパターン光32aを抽出するようにしてもよい。つまり、1周期の同期検波処理により得られる同期画像では、パターン光32aが投光された部分が十分強調されずにノイズが多く含まれてしまい、2値化処理を高精度に実施することができなくなる場合がある。そこで、2周期以上で取得した同期画像を積分し、パターン光32aが投光された部分を、より一層強調した同期検波画像を作成することにより、ノイズの影響をより排除して画像上の投光パターンを検出することができる。
【0067】
ただし、その場合、車速の閾値Vthはより小さい値に設定する必要がある。具体的に2周期とする場合には、5.0÷2=2.5[m/s]のように、同期検波でパターン光を抽出する間の移動量が、0.1[m]を超えないように設定する必要がある。
【0068】
以上、本発明の自己位置算出装置、及び自己位置算出方法を図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置き換えることができる。