説明

位置推定装置、位置推定方法及びプログラム記録媒体

【課題】 推定値が逸脱したか否かを検査し、誤った推定値の場合は回復を試みることのできる位置推定装置を提供する。
【解決手段】 予測部11はオドメトリセンサ17が搭載された移動体の位置を予測する。観測部12は環境内の特徴点を追跡する。予測正誤チェック部13は、予測部11における位置の予測の正誤を判断する。予測修正部14は、予測を修正する。更新部15は、正しい予測に基づいて移動体の位置及び/又は姿勢を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラ等のセンサが搭載された移動体の位置を推定する位置推定装置、位置推定方法及び位置推定プログラムを記録したプログラム記録媒体に関する。
【背景技術】
【0002】
加速度センサや速度センサ等のオドメトリセンサと、測距センサや撮像センサ等の撮像センサという2種類のセンサからなるセンサ群を搭載した移動体では、センサ群の情報を用いて自己の位置及び/又は姿勢の推定を行う。適用できる移動体の例としては、例えば自走又は自律型のロボットや、自動車等がある。移動体は、自身のおかれた環境内で障害物を避けた行動経路を採る必要がある。この場合には、例えばステレオビジョンを用いて周囲の環境の3次元情報を計測し、この3次元情報から環境情報を得、上記センサ群を用いて環境内の自己の姿勢・位置を推定する。
【0003】
下記特許文献1には、外部状態検出手段によって検出された外部状態に基づいて3次元グリッドの占有状態を表す3次元地図を作成し、3次元地図の情報に基づいて対基準面高さ地図の情報を変更し、変更された地図情報を環境地図として自律的に行動経路を決定し移動動作を制御する移動型ロボット装置が記載されている。また、自動車は、GPSなどが使用できない状態、例えばトンネル内を走行する場合に、自己の位置を推定するときに使用する。
【0004】
図8は、環境が固定(変化しない)の状況におかれた、オドメトリセンサ41とビジョンセンサ42を搭載したロボット40を示す。環境が固定であり、特徴点43〜47の位置は既知である。特徴点43〜47を基に、例えばカルマンフィルタのような予測フィルタを用いて位置を推定するアルゴリズムを採る。なお、オドメトリセンサ41とビジョンセンサ42からのセンサ値は、例えば無線信号により、パーソナルコンピュータ48に送信されてもよい。パーソナルコンピュータ48は、上記センサ値を受信し、既知である特徴点43〜47を基に、例えばカルマンフィルタのような予測フィルタを用いてロボットの位置を推定してもよい。
【0005】
カルマンフィルタについては、非特許文献1に記載されている。直接観測できないある状態(例えば、位置、速度、加速度などの現在の車の状態)を間接的な情報から計算し、最適な推定を行うフィルタである。状態は確率分布モデルで表現する。確率分布モデルとしては、例えば正規分布を用いることができる。
【0006】
図9は、カルマンフィルタのアルゴリズムを示すフローチャートである。初期化ステップ(S0)の後に予測ステップ(S1)、観測ステップ(S2)、更新ステップ(S3)がある。予測ステップ(S1)は、加速度センサや速度センサ等のオドメトリセンサ41と、前フレームのシステムの状態の推定結果から、現フレームのロボットの状態を予測する。オドメトリセンサ41の値や前フレームのカメラの位置は過去の情報であるため、オドメトリセンサ41の出力値から計算したロボットの位置は予測値となる。観測ステップ(S2)は、予測ステップ(S1)で使用したオドメトリセンサ41とは別の観測センサ(カメラ等)42で環境を計測する。具体的には、ロボット40に搭載されている撮像センサ42を用いて環境を撮像し、撮像した画像から特徴点(画像処理で識別できる目印、ランドマーク)43〜47を観測する。更新ステップ(S3)は、ロボットの位置及び/又は姿勢を観測ステップ(S2)の観測結果から更新(修正)する。ロボットの位置及び/又は姿勢(状態)を更新する方法は、非特許文献1に記載されている、非線形に対応した一般の拡張カルマンフィルタと同じ方法である。
【0007】
【特許文献1】特開2006−11880号公報
【非特許文献1】“A Introduction to the Kalman Filter”, Greg Welch, Gary Bishop, Technical Report 95-041Department of Computer Science, University of North Carolina (1995).
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、上記図9に示したカルマンフィルタのアルゴリズムを用いた位置推定システムにあって、位置の推定値が実際の値から大きく逸脱している場合には、推定値が逸脱したまま計算を続けてしまう。このため、従来の自己推定システムは、ロバストではない。また、たとえ推定が間違ったことがわかったとしても、推定値が間違っていないときのセンサシステムの位置の軌跡が使えないため、蓄えた情報は捨てて再度位置の初期化を行ってから推定するシステムである場合が多い。
【0009】
本発明は、上記実情に鑑みてなされたものであり、推定値が逸脱したか否かを検査し、誤った推定値の場合は回復を試みることのできる位置推定装置、位置推定方法及びプログラム記録媒体の提供を目的とする。
【課題を解決するための手段】
【0010】
本発明に係る位置推定装置は、上記課題を解決するために、予測部が現フレームにおけるオドメトリセンサのセンサ値と、前フレームの移動体の位置推定結果とを予測フィルタによりフィルタリングし、センサが搭載された移動体の位置を予測し、観測部が上記予測部で使用したオドメトリセンサとは別の観測センサにより環境を計測し、環境内の特徴点を毎フレーム毎に追跡して位置を観測し、予測正誤チェック部が上記観測部における環境内の特徴点の追跡結果に基づいて上記予測部における移動体の位置の予測の正誤を判断し、予測修正部が上記予測正誤チェック部により上記位置の予測が正しくないと判断すると予測を修正し、更新部が上記予測正誤チェック部により上記位置の予測が正しいと判断すると移動体の位置及び/又は姿勢を更新する。
【0011】
本発明に係る位置推定方法は、上記課題を解決するために、予測工程が現フレームにおけるオドメトリセンサのセンサ値と、前フレームの移動体の位置推定結果とを予測フィルタによりフィルタリングし、センサが搭載された移動体の位置を予測し、観測工程が上記予測工程で使用したオドメトリセンサとは別の観測センサにより環境を計測し、環境内の特徴点を毎フレーム毎に追跡して位置を観測し、予測正誤チェック工程が上記観測工程における環境内の特徴点の追跡結果に基づいて上記予測工程における移動体の位置予測の正誤を判断し、予測修正工程が上記予測正誤チェック工程により上記位置の予測が正しくないと判断すると予測を修正し、更新工程が上記予測正誤チェック工程により上記位置の予測が正しいと判断すると移動体の位置及び/又は姿勢を更新する。
【0012】
本発明に係るプログラム記録媒体は、上記課題を解決するために、移動体の位置を予測する位置推定装置にて実行される位置推定プログラムを記録しており、上記位置推定プログラムは、予測工程が現フレームにおけるオドメトリセンサのセンサ値と、前フレームの移動体の位置推定結果とを予測フィルタによりフィルタリングし、センサが搭載された移動体の位置を予測し、観測工程が上記予測工程で使用したオドメトリセンサとは別の観測センサにより環境を計測し、環境内の特徴点を毎フレーム毎に追跡して位置を観測し、予測正誤チェック工程が上記観測工程における環境内の特徴点の追跡結果に基づいて上記予測工程における移動体の位置の予測の正誤を判断し、予測修正工程が上記予測正誤チェック工程により上記位置の予測が正しくないと判断すると予測を修正し、更新工程が上記予測正誤チェック工程により上記位置の予測が正しいと判断すると移動体の位置及び/又は姿勢を更新する。
【0013】
なお、本発明では、上記図8に示したパーソナルコンピュータのような外部信号処理装置にあって、上記オドメトリセンサや観測センサからのセンサ値を無線信号又は有線信号にて受信し、環境内の特徴点を基に、例えばカルマンフィルタのような予測フィルタを用いてロボットの位置を推定してもよい。
【発明の効果】
【0014】
本発明によれば、推定値が逸脱したか否かを検査し、誤った推定値の場合は回復を試みることができる。このため、推定が誤った場合にはセンサシステムの位置の推定値を回復させることにより前回までのセンサシステムの位置の軌跡を反映させることができるため、システムはロバストである。
【発明を実施するための最良の形態】
【0015】
以下、本発明を実施するための最良の形態について図面を参照しながら説明する。
【0016】
先ず、環境が固定(変化しない)の状況におかれた、移動体(例えばロボット)に適用される位置推定装置を実施の形態として説明する。移動体は、オドメトリセンサとビジョンセンサを搭載しており、位置推定装置はオドメトリセンサとビジョンセンサの各センサ値を用いる。
【0017】
図1は、位置推定装置10の機能ブロック構成を示すブロック図である。実際には、位置推定装置のハードウェアは、バスを介してCPU、RAM、ROM、HDD及び各種センサを接続した構成である。CPUが本発明の位置推定方法に基づいた位置推定プログラムをHDD、又はROMから取り出し、RAMをワークエリアとして逐次実行することにより、図1の機能ブロックが構成される。本発明のプログラム記録媒体は、例えば、CD−ROMや半導体メモリなどであり、上記HDD等に位置推定プログラムを転送している。もちろん、HDもプログラム記録媒体に相当する。
【0018】
図1の機能ブロックにおける位置推定装置10は、上記センサが搭載された移動体の位置を予測する予測部11と、環境内の特徴点を追跡する観測部12と、予測部11における位置の予測の正誤を判断する予測正誤チェック部13と、予測を修正する予測修正部14と、正しい予測に基づいて移動体の位置及び/又は姿勢を更新する更新部15とを備える。
【0019】
予測部11にはバッファ18が接続されている。バッファ18には、オドメトリセンサ17により検知されセンサ値が格納される。予測部11は、バッファ18に格納されたセンサ値を読み出す。また、予測部11には更新部15により更新された位置の推定結果が前フレームの位置の推定結果として次のフレームにおける予測部11での予測時に用いられるように供給される。このため、予測部11は、現フレームにおけるオドメトリセンサ17のセンサ値と、前フレームの位置の推定結果とを予測フィルタによりフィルタリングし、各センサが搭載された移動体の位置を予測する。
【0020】
オドメトリセンサ17は、加速度センサや速度センサ等である。移動体の加速度や移動速度を検知する。
【0021】
観測部12にはバッファ20が接続されている。バッファ20には、上記予測部11で使用したオドメトリセンサ17とは別の観測センサ19により検知されたセンサ値が格納される。観測部12は、バッファ20に格納された上記観測センサ19のセンチ値を読み出す。また、観測部12には予測修正部14により修正された予測修正値が供給される。観測部12は予測部11で使用したオドメトリセンサ17とは別の観測センサ19により環境を計測し、特徴点を毎フレーム毎に追跡して位置を観測する。観測部12は、予測部11で求めた予測位置及び/又は姿勢を用いて探索範囲を決め、上記特徴点の追跡を行うようにしてもよい。その場合、観測部12は、事前にわかっている三次元空間上の特徴点の位置とカルマンフィルタで推定したロボットの位置データから画像内の特徴点の位置を推定し、特徴点付近の輝度画像データと特徴点付近の輝度画像の姿勢データから、移動体の位置からみた特徴点付近のテンプレートをアフィン拘束にしたがって変形し、上記探索範囲と上記テンプレートを基にテンプレートマッチングを行って上記特徴点の追跡を行う。
【0022】
予測正誤チェック部13は、観測部12における特徴点の追跡結果に基づいて予測部11における位置の予測の正誤を判断する。具体的に、予測正誤チェック部13は、観測部12における特徴点追跡で成功した特徴点の数と失敗した特徴点の数をカウントし、一定の確率以上の成功率で特徴点追跡が出来ている場合を予測が正しいと判断し、それ以外を予測は正しくないと判断する。
【0023】
予測修正部14は、予測正誤チェック部13により上記位置の予測が正しくないと判断されると予測を修正する。具体的に、予測修正部14は、予測正誤チェック部13にて、予測が正しくないと判断されると、存在確率分布モデルの標準偏差の値が大きくなるよう変更し、観測部12における上記探索範囲を広げる。
【0024】
更新部15は、予測正誤チェック部13により上記位置の予測が正しいと判断されると移動体の位置及び/又は姿勢を更新し、更新結果を出力端子16からフレームごとに出力する。また、更新部15で更新した位置の推定結果は、上記前フレームの位置の推定結果として次のフレームにおける上記予測部11での予測時に使われる。
【0025】
次に、位置推定装置10の動作について図2のフローチャートを用いて説明する。このフローチャートは、ロボットの位置及び/又は姿勢の推定を目的とした位置推定方法の処理手順を示す。初期化(ステップS10)の後に予測ステップ(S11)、観測ステップ(S12)、予測の正誤チェックステップ(S13)、更新ステップ(S15)が続く。また、予測の正誤チェックステップ(S13)では、予測の修正ステップ(S14)への分岐もある。予測の修正ステップ(S14)からは、観測ステップ(S12)に戻る。また、更新ステップ(S15)の後にはステップS16にて次のフレームの処理に移る。これは、上記図9に示した従来のカルマンフィルタシステムに、形式的には近いものであるが、予測の正誤チェックステップと予測の修正ステップとを新たに設けており、この二つのステップは技術的に容易に想到できるものではない。
【0026】
ステップS11の予測ステップは、加速度センサや速度センサ等のオドメトリセンサ17のセンサ値と、前フレームのシステムの状態の推定結果から、現フレームのロボットの状態を予測する。オドメトリセンサ17の値や前フレームのカメラの位置は過去の情報であるため、オドメトリセンサ17の出力値から計算したロボットの位置は予測値となる。
【0027】
ステップS12の観測ステップは、予測ステップで使用したオドメトリセンサ17とは別の観測センサ(カメラ等)19で環境を計測する。具体的には、ロボットに搭載されている撮像センサを用いて環境を撮像し、撮像した画像から特徴点(画像処理で識別できる目印、ランドマーク)を観測する。この観測ステップ(S12)は、毎フレーム毎に特徴点のトラッキング(追跡)を行い、位置を観測する。
【0028】
この観測ステップ(S12)は、予測ステップ(S11)で求めた予測位置及び/又は姿勢を用いて探索範囲を決めて特徴点の追跡を行うことができる。
【0029】
撮像センサがピンホールカメラモデルに近い場合について説明する。ピンホールカメラモデルは、図3に示すように、大きく分けて2種類のパラメータで構成される。カメラ間の位置及び/又は姿勢に関する外部パラメータ(Extrinsic Parameter)PEと、各カメラ内のパラメータであるカメラ内部パラメータ(Intrinsic Parameter)PIである。
【0030】
外部パラメータPEは、図3にあって、世界座標系(World Coord)WCと3次元空間上のカメラ座標系(Camera Coord)CCとの位置及び/又は姿勢の関係を表している。図3中の世界座標系WCで定義されたw=[wと、3次元空間上のカメラ座標系CCで定義されたx=[xとは以下の(1)式の関係が成り立つ。ただし、Rは3×3の回転行列、tは3×1の並進行列を示す。
【0031】
【数1】

【0032】
内部パラメータは3次元空間上のカメラ座標系CCとの位置関係を表す。カメラ内部パラメータAは以下の(2)式で表される。
【0033】
【数2】

【0034】
ただし、fは焦点距離、ku,kvは画素と3次元空間の距離との比率(スケール因子)、u0,v0は像平面の中心の位置(単位は画素)、θは光軸oに対するu軸とv軸とのねじれ(skew)を表す。
【0035】
3次元空間上のカメラ座標系CCで定義されたx=[xと、カメラの像平面π上にある画素の位置m=[m 1](同次座標系で表現)との位置関係は以下の(3)式のとおりである。ただし、λは任意の数である。
【0036】
【数3】

【0037】
探索範囲の大きさは、カルマンフィルタの(観測結果と、予測から計算された「予測される観測値」との)予測偏差の共分散行列Σから求める。求める共分散行列Σは下記の(4)式で求める。
【0038】
【数4】

【0039】
ただし、上記(4)式にあって、Σは、ロボットの位置及び/又は姿勢を表す存在確率分布の共分散行列である。また、▽Hは上記(4)式を、[m=H(R,t,[X Y Z])とλを消すように式変形した関数Hのナブラ(各入力パラメータでの偏微分値を各項目に持つ偏微分行列)、Σは観測時に生じる観測ノイズ(前提として正規分布に従う)の共分散行列とする。
【0040】
本実施の形態では、存在確率分布として正規分布モデルを用いている。図4は正規分布モデルを説明するための図である。横軸は状態を示し、縦軸は存在確率を示す。移動体が存在する範囲を確率で示している。図4に示すように、状態の平均μから、±2倍の標準偏差(±2)の範囲には、約95%の確率で移動体が存在する。本実施の形態は、図4で示す範囲(状態の平均μから、±2倍の標準偏差(±2σ)の範囲)を探索範囲とする。もちろん、標準偏差の 3倍の範囲(±3倍)でも構わない。その時は約 97.5%の確率で存在することになる。範囲が大きくなるほど、探索範囲内に存在する確率は大きくなるが、計算量は多くなる。状況に応じて変更するのが好ましい。
【0041】
観測ステップ(S12)では探索範囲が決まると、特徴点追跡のために、特徴点のマッチングを行う。マッチングの方法は色々ある。どの方法でも構わないが、本実施の形態は輝度情報を用いた特徴点周辺のテンプレートマッチングを行う。図5は、特徴点周辺のテンプレートマッチングを説明するための図である。例えば、ハードディスクHDに記憶されている、事前にわかっている三次元空間上の特徴点の位置D0とカルマンフィルタで推定したロボットの位置データD1から、まずステップS21にて画像内の特徴点の位置を推定する。また、特徴点付近の輝度画像(初期設定)データD2と特徴点付近の輝度画像の姿勢(初期設定)データD3から、ロボットの位置からみた特徴点付近のテンプレートをアフィン拘束にしたがって変形する(ステップS22)。以上のステップS21とステップS22から、探索範囲とテンプレートが得られるので、ステップS23にて、その情報(探索範囲とテンプレート)を元にテンプレートマッチングを行う。ステップS23の結果が特徴点の前フレームにあった特徴点追跡の結果データD4となる。
【0042】
次に、ステップS13の予測の正誤チェックステップについて説明する。ロボットの位置及び/又は姿勢の推定が実際の位置及び/又は姿勢と近い予測を行っている場合は、特徴点追跡は成功すると考えられる。逆に、ロボットの位置及び/又は姿勢の推定が実際とは逸脱した予測を行っている場合は、特徴点追跡は失敗すると考えられる。図6は予測が正しい場合(a)と、誤った予測をした場合(b)を示す図である。カメラ焦点位置21の予測が正しい場合(図6(a))、実際の特徴点22は像平面23の予測探索範囲24内にあり、カメラ位置からの予測特徴点25の近くにある。カメラ焦点位置の予測が正しくない場合(図6(b))、実際の特徴点22は像平面23の予測探索範囲24外にあり、カメラ位置からの予測特徴点25から大きくはずれている。特徴点追跡の結果が成否であるかの判断は、マッチングスコアで行う。
【0043】
具体的に、予測の正誤チェックステップ(S13)では、特徴点追跡で成功した特徴点の数と失敗した特徴点の数をカウントし、一定の確率以上の成功率で特徴点追跡が出来ている場合を予測が正しいと判断し、それ以外を予測は正しくないと判断する。
【0044】
次に、ステップS15の更新ステップについて説明する。更新ステップ(S15)は、ロボットの位置及び/又は姿勢を観測ステップの観測結果から更新する。ロボットの位置及び/又は姿勢(状態)を更新する方法は、非特許文献1に記載されている、非線形に対応した一般の拡張カルマンフィルタと同じ方法である。
【0045】
次に、ステップS14の予測の修正ステップについて説明する。予測の正誤チェックステップ(ステップS13)にて、予測が正しくないと判断したときには、予測の修正ステップ(ステップS14)にて予測を修正する。ロボットの位置が正しくないので、図4に示した存在確率分布モデルの標準偏差の値が大きくなるよう変更する。この処理で、ロボットの位置及び/又は姿勢の存在確率分布が曖昧になるが、多くの範囲の可能性を広げ、実際の状態をカバーすることが出来るようになる。
【0046】
ロボットの位置が1次元で表現している場合を例として説明する。ロボットの位置が1次元で表現されている場合は、存在確率分布は図7のようになる。予測の正誤チェックステップ(S13)にて、図7(a)のように予測が間違っていると判断したとき、実際のロボットの位置は存在確率分布26の範囲にはないと考えられる。
【0047】
言い換えると、予測の正誤チェックステップ(S13)にて予測が間違っていると判断したとき、ロボットの位置は間違って予測した存在確率分布の範囲26から外れた範囲27又は28にあると考えられる。本実施の形態では、図7(b)に示すようにロボットの位置の存在確率分布の標準偏差σの値を大きくする。そのことにより、ロボットの位置の曖昧さが大きくなるが、ロボットの位置の予測の範囲(存在確率)29も、上記範囲26に範囲30及び31を加えた分、大きくなる。これは、1次元の例であるが2次元以上の状態変数の場合も同様に標準偏差の値を大きくすることで予測を修正する。
【0048】
予測の修正ステップ(S14)にて予測の修正を行った後に再度ステップS12の観測フェーズに移り、同じフレーム(時間)で処理を行い、次のフレーム(時間)には移らない。ステップS13の予測の正誤チェックステップで、予測が正しいと判断されるまで繰り返す。但し、予測があまりにも大きく逸脱している時は、トラッキングしたい特徴点が画像内にない場合があるため、トラッキングが成功することがないという問題がある。
【0049】
その間、各センサの出力は、バッファ18及び20に保存する。計算速度が充分速いと、ステップS14の予測の修正フェーズにより予測が時間的に合わなくなったとしても、バッファ18及び20に格納されている過去の各センサの出力値を使って時間的に追いつくことが可能である。
【0050】
次に、上記存在確率分布の共分散行列Σについて詳細に説明する。まず、状態変数ベクトルxは(5)式によって表される。ただし、xはカメラの位置、ωはカメラの姿勢を表す。また、Pは特徴点の位置#1、Pは特徴点の位置#nを表す。
【0051】
【数5】

【0052】
すると、状態変数の共分散行列Σは(6)式によって表される。この(6)式では、各行、各列に状態変数成分に対応する共分散値が入る。
【0053】
【数6】

【0054】
ここで、本発明の位置推定方法がマルコフ連鎖であることを考える。マルコフ連鎖は、考慮すべき過去が一つ前の時点のみの過程(process)を指し、それより前の過去は考慮していない。以下の(7)式で表される。
【0055】
【数7】

【0056】
このマルコフ連鎖で考えると、上記図2に示したフローチャートは以下の各ステップとなる。先ず、予測ステップでは、オドメトリセンサから得られる移動体の速度x'、角速度ω'を用いて次フレームの移動体の位置を予測する。式は以下(8)式の通りである。但し、xt+1は、時刻 t+1 の予測状態である。Σxt+1は時刻 t+1 の予測状態の共分散行列、Σは予測ノイズ(平均0分散Σの速度であるとしている)。▽はナブラ、▽Fは関数Fを状態変数を元に一次偏微分した行列を表す。
【0057】
【数8】

【0058】
次に、観測ステップについて説明する。時刻 t+1 の予測状態Σxt+1より、カメラと特徴点の予測位置がわかっているため、カメラ画像の特徴点の射影位置を予測することが可能である。特徴点#の予測された射影位置s#t+1を算出する式は以下(9)式の通りである。但し、λはある数、Aはカメラ内部パラメータ行列、R(ωt+1)は回転行列を表す。
【0059】
【数9】

【0060】
予測とは別に、特徴点の画像内の位置がs#t+1と観測されたとする。観測値(トラッキングで求めた位置) s#t+1と予測値s#t+1との間に差vが発生する。その予測値と観測値との差vの分散Σv^を求めることができる。式は以下の(10)式となる。
【0061】
【数10】

【0062】
上記(10)式にあって、▽はナブラ,∇Hは関数Hを,状態変数を元に一次偏微分した行列を表し、Σは計測誤差を表す。また、vは、単位は画素で、予測した画像内の特徴点の位置と、観測した画像内の特徴点の位置との差を示している。vは平均0,分散Σv^,の分布をすると仮定すると,予測位置s#t+1を中心とした2.0*sqrt(Σv^) ( 標準偏差の2倍 )の範囲に観測値s#t+1がある確率は約95%であるといえる。言い換えると、予測位置s#t+1を中心とした2.0*sqrt(Σv^)の範囲を探索すれば、95%の確率で探索が成功する。
【0063】
次に、更新ステップについて説明する。観測ステップで得られた、観測値をもとに、画素vを次の(11)式のように求める。
【0064】
【数11】

【0065】
そしてカルマンゲインWを次の(12)式のように求め、状態変数xt+1を(13)式のように、また共分散行列Σxt+1を(14)式のように更新する。
【0066】
【数12】

【0067】
【数13】

【0068】
【数14】

【0069】
以上の処理で1フレームの処理が完了する。
【0070】
さらに、上記1フレームの処理の中で、予測の正誤チェックステップは、観測ステップの「観測値(トラッキングで求めた位置) s#t+1と予測値s#t+1との間に発生する差v」がvの分散Σv^から求めた2.0*sqrt(Σv^) (標準偏差の2倍) の範囲内にないことがわかったとき、その特徴点とカメラとの位置関係の推定は間違っているとする。トラッキングの場合に言い換えると、予測の画像内の特徴点の位置s#t+1を中心とした2.0*sqrt(Σv^) (標準偏差の2倍)の範囲でのトラッキングが失敗した時、その特徴点とカメラとの位置関係の推定は間違っているとする。
【0071】
カメラフレームに入っていると予想される特徴点群の半分以上の推定が間違っている時、状態変数全体の推定が間違っていると判断する。
【0072】
次に、予測の修正ステップについて説明する。予測の修正ステップでは、状態変数全体の推定が間違っている状態は、カメラの位置推定が間違っている状態とする。
【0073】
本発明では、「全体の推定が間違っている」ことは、カメラの推定位置が間違っていることと同じなので、カメラの状態変数の分散の値を大きくすることで対処する。数式で表すと以下(15)式のようになる。
【0074】
【数15】

【0075】
カメラの位置及び/又は姿勢の分散が大きくなると、観測フェーズの観測値s#t+1と予測値s#t+1との間の差vの分散の値が(16)式のように大きくなる。
【0076】
【数16】

【0077】
これは、探索範囲が大きくなることを意味している。
【図面の簡単な説明】
【0078】
【図1】位置推定装置の構成を示すブロック図である。
【図2】位置推定装置の動作を説明するためのフローチャートである。
【図3】ピンホールカメラモデルを説明するための図である。
【図4】正規分布モデルを説明するための図である。
【図5】特徴点周辺のテンプレートマッチングを説明するための図である。
【図6】予測が正しい場合と、誤った予測をした場合を示す図である。
【図7】ロボットの位置が1次元で表現されている場合の存在確率分布を示す図である。
【図8】環境が固定(変化しない)の状況におかれた、オドメトリセンサとビジョンセンサを搭載したロボットを示す図である。
【図9】カルマンフィルタのアルゴリズムを示すフローチャートである。
【符号の説明】
【0079】
10 位置推定装置、11 予測部、12 観測部、13 予測正誤チェック部、14 予測修正部、15 更新部、17 オドメトリセンサ、18,20 バッファ、19 観測センサ

【特許請求の範囲】
【請求項1】
現フレームにおけるオドメトリセンサのセンサ値と、前フレームの移動体の位置推定結果とを予測フィルタによりフィルタリングし、センサが搭載された移動体の位置を予測する予測部と、
上記予測部で使用したオドメトリセンサとは別の観測センサにより環境を計測し、環境内の特徴点を毎フレーム追跡して位置を観測する観測部と、
上記観測部における環境内の特徴点の追跡結果に基づいて上記予測部における位置の予測の正誤を判断する予測正誤チェック部と、
上記予測正誤チェック部により上記位置の予測が正しくないと判断すると予測を修正する予測修正部と、
上記予測正誤チェック部により上記位置の予測が正しいと判断すると移動体の位置及び/又は姿勢を更新する更新部と
を備えることを特徴とする位置推定装置。
【請求項2】
上記観測部は、上記予測部で求めた予測位置及び/又は姿勢を用いて探索範囲を決め、上記特徴点の追跡を行うことを特徴とする請求項1記載の位置推定装置。
【請求項3】
上記観測部は、事前に判っている三次元空間上の特徴点の位置とカルマンフィルタで推定した移動体の位置データから画像内の特徴点の位置を推定し、特徴点付近の輝度画像データと特徴点付近の輝度画像の姿勢データから、移動体の位置からみた特徴点付近のテンプレートをアフィン拘束にしたがって変形し、上記探索範囲と上記テンプレートを基にテンプレートマッチングを行って上記特徴点の追跡を行うことを特徴とする請求項2記載の位置推定装置。
【請求項4】
上記予測正誤チェック部は、上記観測部における特徴点追跡で成功した特徴点の数と失敗した特徴点の数をカウントし、一定の確率以上の成功率で特徴点追跡が出来ている場合を予測が正しいと判断し、それ以外を予測は正しくないと判断することを特徴とする請求項1記載の位置推定装置。
【請求項5】
上記更新部は、更新した移動体の位置推定結果を上記前フレームの移動体の位置推定結果として次のフレームにおける上記予測部での予測時に使わせることを請求項1記載の位置推定装置。
【請求項6】
上記予測修正部は、上記予測正誤チェック部にて予測が正しくないと判断されると、移動体の存在確率分布モデルの標準偏差の値が大きくなるよう変更し、上記観測部における上記探索範囲を広げることを特徴とする請求項1記載の位置推定装置。
【請求項7】
現フレームにおけるオドメトリセンサのセンサ値と、前フレームの移動体の位置推定結果とを予測フィルタによりフィルタリングし、センサが搭載された移動体の位置を予測する予測工程と、
上記予測工程で使用したオドメトリセンサとは別の観測センサにより環境を計測し、環境内の特徴点を毎フレーム追跡して位置を観測する観測工程と、
上記観測工程における環境内の特徴点の追跡結果に基づいて上記予測工程における位置の予測の正誤を判断する予測正誤チェック工程と、
上記予測正誤チェック工程により上記位置の予測が正しくないと判断すると予測を修正する予測修正工程と、
上記予測正誤チェック工程により上記位置の予測が正しいと判断すると移動体の位置及び/又は姿勢を更新する更新工程と
を備えることを特徴とする位置推定方法。
【請求項8】
移動体の位置を予測する位置推定装置にて実行される位置推定プログラムを記録しているプログラム記録媒体において、
現フレームにおけるオドメトリセンサのセンサ値と、前フレームの移動体の位置推定結果とを予測フィルタによりフィルタリングし、センサが搭載された移動体の位置を予測する予測工程と、
上記予測工程で使用したオドメトリセンサとは別の観測センサにより環境を計測し、環境内の特徴点を毎フレームに追跡して位置を観測する観測工程と、
上記観測工程における環境内の特徴点の追跡結果に基づいて上記予測工程における位置の予測の正誤を判断する予測正誤チェック工程と、
上記予測正誤チェック工程により上記位置の予測が正しくないと判断すると予測を修正する予測修正工程と、
上記予測正誤チェック工程により上記位置の予測が正しいと判断すると移動体の位置及び/又は姿勢を更新する更新工程と
を備える位置推定プログラムを記録しているプログラム記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−303886(P2007−303886A)
【公開日】平成19年11月22日(2007.11.22)
【国際特許分類】
【出願番号】特願2006−130602(P2006−130602)
【出願日】平成18年5月9日(2006.5.9)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】