説明

位置姿勢推定システム、位置姿勢推定装置、および位置姿勢推定方法

【課題】センシングデータリストに基づくマッチング方法において、さらなる計算量の削減を実現すること位置姿勢推定システム10を提供する。
【解決手段】本発明の位置姿勢推定システム10は、参照データ群を作成する手段150において、第1の参照データ群103を環境地図101から作成する処理102と、第2の参照データ群105を第1の参照データ群103の差分処理により作成する処理104とを行い、位置姿勢を推定する手段170において、センシングデータ107に基づいて、第1の参照データ群103および第2の参照データ群105の中から必要なデータを選択する処理120と、選択された複数の参照データと前回作成した評価のためのデータ122とを加算することで新たな評価のためのデータ122を作成する処理121と、評価のためのデータ122から位置姿勢推定値124を求める処理123とを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動ロボットの自律移動制御等において利用される、実環境内における自己の位置姿勢を認識する技術に関する。特に、移動ロボットが目的地まで人の操作なしに自動的に到達することを目的とし、移動ロボットの位置姿勢を、移動ロボットに搭載された距離センサからのセンシングデータと、環境の幾何状況を示した二次元の環境地図とを用いて算出する技術に関する。
【背景技術】
【0002】
まず、距離センサと二次元の環境地図を用いて移動ロボットの位置姿勢を推定する従来の方法について説明する。
【0003】
ここで距離センサとは、距離センサの周辺の複数の方向について、障害物までの距離を計測できるものである。仕様としてさまざまなものが考えられるが、ここでは図13および図14に示すように、ある高さの水平面上を距離センサ421の正面に対して-90°から+90°の方向に、1°毎の合計181通りの異なる方向について、障害物422までの距離データが瞬時に計測できるものを想定する。よって各センシングデータ431は、角度φと距離dの組み合わせとして(d00),(d11),...,(d180180)としてあらわされる。
【0004】
ここで各変数の数字の添え字はデータ番号で、φiはi番目の測定方向を示す。測定方向とは、反時計回りを正方向とし、距離センサの主方向となす角度であり、主方向とのなす角度が小さい順にデータ番号が割り当てられる。すなわちφ0=-90°,φ1=-89°,...,φ180=+90.0°を示す。また、diは、それぞれの方向における障害物までの距離を示す。
【0005】
なお、ここでは距離センサの測定能力を考慮し、測定可能距離を0.0mより大きく4.0m以下と想定し、diの値の範囲を、0.0m<di≦4.0mに制限することとする。また、この181個の距離データを1まとまりとして、1フレーム分のセンシングデータ群430と呼ぶこととする。また、(dii)であらわされたパラメータは、センシングデータの位置、すなわち障害物の位置を、距離センサの原点位置を原点とした極座標で表現したものと等価になるが、これをxi=di・cos(φi)、yi=di・sin(φi)とすることで、(xi,yi)の形の直交座標表現に変換することもできる。
【0006】
一方、二次元の環境地図とは、距離センサ421による測定高さ断面での障害物422の存在を、図15に示すようなディジタル画像としてあらわしたものである。ここでは図15に示すように、障害物が存在しない場所を白を示す画素値441、障害物が存在する場所を黒を示す画素値442としてあらわすことにする。
【0007】
移動ロボット420は、図13に示すように平らな地面上を移動するものと仮定する。よってその移動によって変化する位置姿勢に関する自由度は、位置について(x,y)の2パラメータ、姿勢については移動ロボットが向く方向角度に関するθの1パラメータの、合計3パラメータである。なお、これらのパラメータをあらわす座標系は、図15に示すような環境地図があらわわれる座標系と一致させるものとする。
【0008】
移動ロボットの位置姿勢を推定することとは、任意の位置姿勢にある移動ロボットのセンシングデータから、上記(x,y,θ)の3パラメータを求めることを意味する。よって、本発明が対象とする機能は、任意の位置姿勢にある移動ロボットの位置姿勢パラメータ(x,y,θ)を、移動ロボットに搭載された距離センサによるセンシングデータと、あらかじめ用意された環境地図を用いて求めることとなる。
【0009】
本機能を実現する手段として、いくつかの方法が考えられるが、ここではその最も基本的な方法となるマッチング方法を説明する。
【0010】
マッチング方法とは、あるフレームにおいて計測されたセンシングデータ全体の位置および姿勢(方向)を変えながら、当該センシングデータを環境地図に重ね合わせ、センシングデータと環境地図とが最もマッチする位置および姿勢を探し出し、これをもって移動ロボットの位置姿勢パラメータの推定値とするというものである。その原理は、移動ロボットがその位置および姿勢にあるときに、計測されたデータと同じデータが最も高い確率で得られるであろうという考え方に基づいている。
【0011】
このようなマッチング方法は、具体的には以下に述べるような処理によって実施される。
(1) あるフレームにおけるすべてのセンシングデータ(前述した距離センサの例では181個)に対して、これを地図上でθだけ回転させ、(x,y)だけ平行移動させた位置を求める。
(2) それらの位置の環境地図上の画素値を参照し、1の値をもつもの(障害物があるもの)の数を数え、これをそのパラメータ (x,y,θ)における評価値とする。
(3) 上記(1)および(2)の処理を、考えられうるすべての値をもつ(x,y,θ)の組み合わせについて、評価値が最も大きい(x,y,θ)を解とする。
【0012】
上記の手法を、基本手法によるマッチング方法と呼ぶことにする。図16に基本手法によるマッチング方法の概要を示す。図15に示した環境地図440と、図16(a)に示したセンシングデータ群430とが与えられたときに、この方法によって最もマッチすると判断された状況が図16(b)の位置450および方向451となる。このときの平行移動成分(x,y)と、回転成分θが、移動ロボット位置姿勢パラメータの推定値となる。
【0013】
さて、基本手法によるマッチング方法は、処理量が膨大になるという問題がある。具体的には、環境地図のサイズ、すなわち対象とする部屋等移動ロボットが移動可能なエリアのサイズを例えば10m×10mとし、マッチングの粒度、すなわちどの程度の細かさでマッチングの際のパラメータを変化させていくかについて、その最小単位を、位置すなわち(x,y)パラメータに関して例えば10cm、姿勢すなわちθパラメータに関して例えば1°とすると、上述した基本手法によるマッチング方法では、181×360×101×101 = 664,697,160回の画素値の参照演算が必要となる。
【0014】
ここで、「181」はデータ数、「360」は回転角度θがとりうる値の数(0°,1°,2°,...,359°の360通り)、「101」はx方向の移動量がとりうる値の数(-5.0m,-4.9m,...,+5.0mの101通り、次の「101」は同じようにy方向の移動量がとりうる値の数(-5.0m,-4.9m,...,+5.0mの101通り)である。
【0015】
マッチング方法は、一般にコンピュータ等の計算機で行うことが想定される。上述した基本手法によるマッチング方法で行われる画素値の参照演算は、1つ1つはそれほど大きな計算負荷にならないが、その量が膨大であれば、その量にほぼ比例して計算負荷が増大することになる。上述した参照演算回数の具体例は、一般的に流通している現在の計算機の能力を考慮すると、一般的に、実用上また実装上無視できないオーダの計算量となっている。
【0016】
このような、処理量が膨大になるという基本手法によるマッチング方法の問題点を解決する方法として、例えば非特許文献1には、センシングデータリストセンシングデータリストに基づくマッチング方法が提案されている。この考えに基づく処理について説明する。なお以降本処理を、センシングデータリストに基づくマッチング方法と呼ぶことにする。
【0017】
ここで説明を簡単にするため、移動ロボットの移動は並進運動だけで、回転運動は行われないものと仮定する。すなわち、推定するパラメータは(x,y)の2つで、θについてはここでは0に固定するものとする。
【0018】
まず、上述した基本手法によるマッチング方法を考える。ここでは、図17に示すようなセンシングデータ群460と環境地図463とが与えられることを想定する。なお以降用いる図では説明を簡単にするため、画素の詳細度を荒くし、センシングデータの数を少なくして解説するものとする。ここで、図17において、461はセンサ原点、462はセンシングデータであり、図17に示した(0)から(3)の数字の順に、第0番目のセンシングデータ、第1番目のセンシングデータ、第2番目のセンシングデータ、第3番目のセンシングデータと呼ぶこととする。
【0019】
基本手法によるマッチング方法では、図18に示すように、センシングデータ全体を平行移動させながら環境地図に重ね合わせ、各センシングデータが指し示す、すなわちセンシングデータが重なる画素の値が1であるものの数を、評価値として数えていくことになる。例えば、図18の(x,y)=(-3,-3)では評価値が0、(x,y)=(-1,-3)では評価値が1である。(x,y)=(-1,-1)では評価値が4となり、評価値として最大値となる。この場合、推定値は、(x,y)=(-1,-1)となる。
【0020】
次に、センシングデータリストに基づくマッチング方法を説明する。
【0021】
いま、図17のセンシングデータ群460における第0番目のセンシングデータに着目すると共に、この第0番目のセンシングデータが指し示す環境地図上の画素値が1になるのは、センシングデータ群全体をどこに移動させた場合であるかを考える。図18からそのような移動は、図19に示した10通りであることがわかる。なお、図19に示す470が、第0番目のセンシングデータである。本例では、環境地図上に画素値が1となる点が10個あるので、移動方法も10通りあることになる。
【0022】
次に、このときのセンシングデータの原点位置471を、白紙の地図上にプロットすると、その結果は図20に示すようになる。このように作成されたパターンを参照地図、より詳しくは、第0番目のセンシングデータに関する参照地図480と呼ぶこととする。
【0023】
ところで、この第0番目のセンシングデータに関する参照地図480をよく見ると、色のついた画素パターンは、図17(b)に示した環境地図の画素パターンを図21(d)に示すベクトル成分495だけ平行移動させたものであることがわかる。また、このベクトル成分495は、センシングデータ群における第0番目のセンシングデータ494とセンサ原点493から決まるベクトルの逆方向であることがわかる。
【0024】
よって、第0番目のセンシングデータを(d00)とすると、x0=d0・cos(φ0)、y0=d0・sin(φ0)の計算を行うことで、上記ベクトル成分を(x0,y0)の形の直交座標系で表現することができる。これを算出した後に、もとの環境地図をこのベクトル分だけ逆方向に平行移動させてやれば、この第0番目のセンシングデータに関する参照地図480が作成されることになる。
【0025】
このようにして作成された参照地図480(第0番目のデータに関する参照地図)における、センサ原点481がプロットされた画素の意味は次のようになる。それは、「この位置に原点位置がくるようにセンシングデータを平行移動させてやれば、第0番目のセンシングデータが、環境地図データの1の値を持つ画素に一致する」ということである。
【0026】
これは、第0番目のセンシングデータについて考えたときであるが、これを別のセンシングデータについても同様に考えることができる。すなわち、第n番目のセンシングデータについて、それとセンサ原点とがなすベクトルを考え、そのベクトル成分だけ環境地図を反対方向に平行移動させることにより、第n番目のセンシングデータに関する参照地図を作成することができる。
【0027】
具体的には、第0番目のセンシングデータのときと同様に第n番目のセンシングデータが(dnn)と得られたときに、まずこの直交座標表現の値(xn,yn)をxn=dn・cos(φn)、yn=dn・sin(φn)の計算を行うことにより求める。次に、この値(xn,yn)の分だけ地図画像を平行移動させる。このようにして作成される第n番目のセンシングデータに関する参照地図は、この中の斜線のついた画素にセンシングデータの原点を平行移動させれば、第n番目のセンシングデータが、環境地図の1の値を持つ画素に一致することを意味することになる。
【0028】
上の例ではセンシングデータが4つあるので、それぞれについて参照地図、すなわち図22に示すように、第0番目のセンシングデータに関する参照地図500、第1番目のセンシングデータに関する参照地図501、第2番目のセンシングデータに関する参照地図502、第3番目のセンシングデータに関する参照地図503の合計4つを準備する。
【0029】
次に、図23に示すように、この4つの参照地図を重ね合わせ、それぞれの画素についていくつ色のついた画素が重なるかを足し合わせて数えることを考える。それぞれの参照地図の意味が上に述べたとおりなので、この数字は、それぞれの画素の位置にセンシングデータの原点が移動したときに、4つのセンシングデータの中で、環境地図の1の値を持つ画素と一致するものの数をあらわすことになる。
【0030】
この足し合わせた値を画素値とした画像データは、例えば図24に示すようになり、これを評価画像510と呼ぶことにする。すなわちこの評価画像510における(x,y)の位置の画素値が、上で述べた基本手法によるマッチング方法において、センサを(x,y)だけ移動させたときに算出される評価値をあらわすことになる。よって基本手法によるマッチング方法と同様に、この評価画像510の中で最も大きな画素値をもつものを見つけ、その点の画像上での座標位置を調べてやれば、これが求めるべき移動ロボット位置の推定値となることになる。
【0031】
なお、ここで各参照地図を重ね合わせる処理は、各画像の画素値を調べていくのではなく、予め各参照地図の中で、1の値を持つ画素の位置を (x0,y0),(x1,y1), ... ,(xn,yn)の形で記録しておき、この記録された座標値が示す評価画像の画素の値を、1つずつ増やしていく、すなわちその画素に対して投票していく、という方法で行うものとする。これは後に述べる、参照地図の各画素に対する参照回数を少なくする、すなわち参照地図の中で0の値を持つ画素については参照する必要がなくなる、という効果をもたらすことになる。
【0032】
この原理に基づき、センシングデータリストに基づくマッチング方法は、以下の手順で処理が行われる。
(1) 考えうるすべてのセンシングデータ位置について、それぞれ参照地図を作成しておく。これはすなわち上の説明で述べたとおり、考えうるすべてのセンシングデータ位置とセンサ原点がなすベクトル毎に、参照地図を作成することになる。なお、参照地図は、実際には画像データの形で記録するのではなく、上に述べたとおり、1の値を持つ画素の位置を順に(x0,y0),(x1,y1), ... ,(xn,yn)のように並べたものとして記録するものとする。
(2) 1フレーム分のセンシングデータ群が与えられたときに、各センシングデータ(合計181個)それぞれの位置と、センサ原点がなすベクトルを算出し、そのベクトルに関する参照地図を選んでくる(合計181枚)。
(3) 選ばれたすべての参照地図を重ね合わせ、画素毎に画素値を足し合わせた画像を、評価画像として作成する。これは、それぞれの画素について色のついているものの数を求めることになる。
(4) 作成された評価画像の中で、最大の画素値をもつ画素の位置(x,y)を探し、このときの(x,y)をマッチングの解とする。
【0033】
ここで、上記の説明で述べた、考えうるすべてのセンシングデータという部分を補足する。冒頭でも述べたように、距離センサによるセンシングデータは、(d00),(d11), ... ,(d180180)の形であらわされる。ここで、角度φiについては、センシング方向が1°ずつに固定されているので、φ0=-90°,φ1=-89°, ... ,φ180=+90°の決まった値になる。
【0034】
しかし、距離diについては、測定範囲内(0.0m<di≦4.0m)においてさまざまな値をとりうるので、これは無限に考えられることになる。そこでこれを、予め定められた離散的な値に代表させることを考える。すなわち、代表値として例えば0.1m,0.2m, ... ,4.0mの40通りを考え、di≦0.15mであれば、di=0.1m、0.15m<di≦0.25mであれば、di=0.2mのような規則で値を割り当てていく。このようにすれば、センシングデータ(dii)のとりうる値の組み合わせは、diについて40通り、φiについて180通りあることになるので、考えうるすべてのセンシングデータは、合計40×180通りの有限個になる。
【0035】
これは、いわゆるディジタル処理における量子化の操作を行ったことにほかならないが、このような10cm程度の単位で行う量子化に伴う精度の劣化は、例えば位置姿勢推定における初期値の算出といった用途においてはほとんど問題がない。なお、センシングデータの量子化と同様に、参照地図についても、以下の説明では同様に10cm単位での量子化を行うことにする。すなわち画像上の1ピクセルが、実環境における10cm×10cmの領域を示すことになる。
【0036】
さて、以上の説明においては移動ロボットの移動が平行移動のみ行われることを仮定し、マッチングについては(x,y)の2パラメータのみで行われることとしたが、実際にはこれに加えて回転(姿勢)θに関するパラメータも求める必要がある。これについては、予め考えうるすべての回転θ、すなわちこれについても上に述べた量子化の考え方を導入し離散値としてθ=0°, 1°, 2°, ..., 359°の360通りの値を持つものとすると、これらの角度それぞれについて、予めセンシングデータ群全体を回転させ、これをもとに上述の評価画像をそれぞれ作成し(合計360枚)、この全ての評価画像の中で、最も値の大きな画素を見つけ、その画像が属するθ値およびその画素の位置(x,y)をもって求める解(x,y,θ)とすることになる。
【0037】
以上の方法では、181×360×101×101×1/2=約5億回以下の画素値の参照演算が行われる。ここで、「181」、「360」、「101」、「101」の各数字の持つ意味は、基本手法によるマッチング方法のときと同様である。ここで新たに加わる「1/2」は、環境地図の画像内において全体の画素数に対する障害物が存在する画素数のおおよその割合である。すなわち、センシングデータリストに基づくマッチング方法は、基本手法によるマッチング方法に比べて、この数字の分、言い換えると環境地図画像中の障害物が存在しない画素の割合分、参照演算回数が削減されることになる。これがセンシングデータリストによる効果である。
【0038】
ただし、一方で、予め参照地図を作成しておき、これを1の値を持つ画素の位置情報として(x0,y0),(x1,y1), ..., (xn,yn)のように記録しておかなければならないので、(1)参照地図を作る処理が必要になる、(2)メモリ使用量が膨大になる、という2つの問題が新たに発生する。(1)については、移動ロボットの駆動前に参照地図を予め作成しておけばよいので、実用上の問題は少ないものと考えられる。(2)については、おおよその見積もりで、上の例では必要なメモリ量は数ギガバイト程度と見込まれ、現在の主記憶あるいは補助記憶装置の性能から、実現可能なオーダとなっている。
【0039】
【非特許文献1】L. M. Paz, P. Pinies, J. Neira, J. D. Tardos, "Global Localization in SLAM in Bilinear Time," In Proc. International Conference on Intelligent Robots and Systems, 2005, pp. 1445-1450.
【発明の開示】
【発明が解決しようとする課題】
【0040】
距離センサによって測定されたセンシングデータと環境地図とを用いて移動ロボットの位置姿勢を推定する方法に関し、上述した基本手法によるマッチング方法では、処理量が膨大になり計算時間が長くなる問題がある。また、センシングデータリストに基づくマッチング方法では、これに比べ処理量がある程度削減されるものの、移動ロボットの軽量化・低コスト化等の観点から、さらなる計算処理の削減が望まれる。
【0041】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、センシングデータリストに基づくマッチング方法において、さらなる計算量の削減を実現することにある。
【課題を解決するための手段】
【0042】
上記課題を解決するために本発明では、例えば図1に示すような構成により、以下の特徴を有する位置姿勢推定方法を提供する。
【0043】
すなわち、予め準備された環境地図101と、距離センサ106によって測定されたセンシングデータ107とに基づいて、マッチングにより距離センサ106の位置姿勢値124を推定する位置姿勢推定方法において、当該位置推定方法は、環境地図101からマッチングのための第1の参照データ群103および第2の参照データ群105を作成する手段150と、測定されたセンシングデータ107、第1の参照データ群103、および第2の参照データ群105に基づいて位置姿勢値124を推定する手段170とを有する位置姿勢推定システムにおいて、参照データ群を作成する手段150では、第1の参照データ群103を環境地図101から作成する処理102と、第2の参照データ群105を第1の参照データ群103の差分処理により作成する処理104とを行い、位置姿勢を推定する手段170では、センシングデータ107に基づいて、第1の参照データ群103および第2の参照データ群105の中から必要なデータを選択する処理120と、選択された複数の参照データと前回作成した評価のためのデータ122とを加算することで新たな評価のためのデータ122を作成する処理121と、評価のためのデータ122から位置姿勢推定値124を求める処理123とを行う。
【発明の効果】
【0044】
本発明によれば、センシングデータリストに基づくマッチング方法に比べて、さらなる計算量の削減を実現することができる。
【発明を実施するための最良の形態】
【0045】
以下、本発明の実施の形態について説明する。
【0046】
図2は、本発明の一実施形態に係る位置姿勢推定システム10の構成を示すシステム構成図である。位置姿勢推定システム10は、参照データ作成サーバ20および移動ロボット30を備える。参照データ作成サーバ20は、LAN等の通信回線11に接続されている。移動ロボット30は、通信回線11に接続された基地局12と、無線LAN等の通信方式により無線通信を行い、当該基地局12を介して参照データ作成サーバ20と通信する。
【0047】
参照データ作成サーバ20は、二次元の環境地図から参照地図および後述する差分画像を作成し、作成した参照地図および差分画像を、通信回線11を介して移動ロボット30へ送る。
【0048】
移動ロボット30は、無線通信装置31、位置姿勢推定装置32、距離センサ33、および移動装置34を有する。無線通信装置31は、基地局12と無線通信を行い、基地局12を介して、参照データ作成サーバ20から参照地図および差分画像を受信して位置姿勢推定装置32に供給する。位置姿勢推定装置32は、無線通信装置31から供給された参照地図および差分画像と、距離センサ33によって測定されたセンシングデータとを用いて、環境地図内における移動ロボット30の位置および向き(姿勢)を推定する。移動装置34は、位置姿勢推定装置32によって算出された、環境地図内における移動ロボット30の位置および向きに基づき、予め設定された移動プランに従って、移動ロボット30を移動させる。
【0049】
図3は、参照データ作成サーバ20の機能構成の一例を示すブロック図である。参照データ作成サーバ20は、環境地図格納部21、参照地図作成部22、参照地図格納部23、差分画像作成部24、差分画像格納部25、およびデータ送信部26を備える。
【0050】
ここで、「背景技術」の欄で述べたセンシングデータリストに基づくマッチング方法において、平行移動だけでなく回転についての推定も同時に行う方法について述べる。すなわち移動ロボットは平行移動に関する自由度(x, y)に加え、回転(姿勢)に関する自由度θについてのパラメータ推定を同時に行うものとする。
【0051】
本実施形態においても、「背景技術」の欄のセンシングデータリストに基づくマッチング方法の説明で述べた参照地図を用いる。すなわち、センシングデータとして考えられるすべての値(d,φ)毎に、参照地図を予め用意しておくものとする。なお以下の説明では、それぞれの値(d,φ)に関する参照地図を、クラス(d,φ)の参照地図と呼ぶこととする。
【0052】
ここで、図4(a)に示すように、クラス(d,-φ)の参照地図400が与えられたときに、これがどのような意味を持つかについて説明する。
【0053】
移動ロボットの回転方向θが0°のときにクラス(d,-φ)の参照地図400を用いるのは、距離d、方向−φのセンシングデータ401(図4(b)参照)を対象にしたときであるが、移動ロボットの回転方向θを考えると、これを次のように解釈することもできる。それは、距離d、方向(-φ-θ)のセンシングデータ402(図4(c)参照)が得られたときに、移動ロボットの方向と環境地図の主方向(本実施形態ではx軸方向)とのなす角度がθ、すなわち、センシングデータ全体が環境地図に対してθだけ回転した場合である(図4(d)参照)。
【0054】
このような場合、回転していない(すなわちθ=0°)状態の距離センサにおいて、距離d、方向-φのセンシングデータが得られたときと全く等価なセンシングが行われることになるので、距離d、方向-φであり、且つ、距離センサ(移動ロボット)の回転方向がθ=0°のセンシングデータと、距離d、方向(-φ-θ)であり、且つ、距離センサ(移動ロボット)の回転θのセンシングデータとは、計算上は同様に扱うことができる。
【0055】
一方、「背景技術」の欄で説明したとおり、クラス(d,-φ)の参照地図400上で色がついた部分(1の値を持つ部分)は、センシングデータとして(d,-φ)の値が観測されたときに、センサ原点がこの位置にあればそのセンシングデータに関する評価値が1になることを示している。これは、環境地図と移動ロボットとの方向の差θが0°の場合であった。しかし上で述べた通り、移動ロボットが回転することも考慮に入れると、この状況はセンシングデータとして(d,-φ-θ)の値が観測されたときに、移動ロボットが環境地図に対してθだけ回転したときと等価になる。
【0056】
よって、上記参照地図400上で1の値を持つ部分の意味は、下記のように360通りに解釈することができる。
(0) 移動ロボットの方向θがθ=0°で、なおかつセンシングデータとして(d,-φ)の値が観測されたときに、センサ原点がこの位置にあればそのセンシングデータに関する評価値が1になる。
(1) 移動ロボットの方向θがθ=1°で、なおかつセンシングデータとして(d,-φ-1°)の値が観測されたときに、センサ原点がこの位置にあればそのセンシングデータに関する評価値が1になる。
(2) 移動ロボットの方向θがθ=2°で、なおかつセンシングデータとして(d,-φ-2°)の値が観測されたときに、センサ原点がこの位置にあればそのセンシングデータに関する評価値が1になる。



(359) 移動ロボットの方向θがθ=359°で、なおかつセンシングデータとして(d,-φ-359°)の値が観測されたときに、センサ原点がこの位置にあればそのセンシングデータに関する評価値が1になる。
【0057】
このような原理に基づき、以下の手順で評価値画像を作成すれば、位置(x,y)に加え回転方向θについても同時に推定できるマッチングが実施できることになる。
【0058】
まず、参照地図を、図5に示すような(r,φ)の形の極座標表現であらわされる各クラス毎に予め作成しておく。ここでrおよびφはそれぞれr = 0.1m, 0.2m, ..., 4.0m、φ = 0°, 1°, ..., 359°の値をとりうるので、この全ての組み合わせについて並べている。これらの参照地図は、移動ロボットが移動する前で、なおかつ、移動ロボットが移動する部屋の環境地図画像が与えられた後に作成しておくものである。またその作成方法は、「背景技術」の項のセンシングデータリストに基づくマッチング方法の説明で述べた通りである。
【0059】
次に移動ロボットが移動して、図14に示したセンシングデータ群430が、(d0, -90°),(d1, -89°), ... ,(d180, +90°)の181個のセンシングデータとして得られたときに、このセンシングデータと図5に示した参照地図230から、移動ロボットの位置姿勢を推定する方法を説明する。
(1) まず、移動ロボットの方向θを、θ=0°と仮定する。
(2) (d0, -90°),(d1, -89°),... ,(d180, +90°)の各クラスの参照地図(合計181枚)を図5における一連の参照地図群の中から選び出す。なお、選び出す際に、(di,ψ)におけるψの値が0より小さい場合は、これに360°を加えてψ+360°とすることで、0°≦ψ<360°の範囲にψの値が収まるようにする。このようにしても指し示す角度の意味は変わらない。この考え方は、以下の説明における、全ての角度を扱う処理においても同様に用いるものとする。
(3) 選び出された181枚の参照地図全てについて、これを各画素毎に足し合わせた評価値画像を作成する。この評価値画像の(x,y)の位置にある画素値が、(x,y,θ)(ただしθ=0°)のパラメータにおける評価値となる。
(4) 次にθ=1°と仮定する。
(5) (d0, -90°-θ),(d1, -89°-θ), ... ,(d180, +90°-θ)の各クラスの参照地図(合計181枚)を(2)と同様に図5における一連の参照地図群の中から選び出す。
(6) (3)と同様にこれを各画素毎に足し合わせた評価値画像を作成する。この評価値画像の(x,y)の位置にある画素値が、(x,y,θ)のパラメータにおける評価値となる。
(7) θの値を1°増やし、(5)、(6)の処理を行う。これをθ=359°になるまで繰り返す。
(8) 以上の処理により、θ=0°,1°,・・・,359°の合計360枚の評価値画像が作成されるが、この中で最も評価値が大きい画素を見つけ、この画素の環境地図上の位置(x,y)と、その評価値が属するθの値の組み合わせ(x,y,θ)が推定値となる。
【0060】
以上述べた方法は、本発明において、「背景技術」の欄で述べたセンシングデータリストに基づく方法を用いて、移動ロボットの回転方向θを移動ロボットの平行移動量(x,y)と同時に求める方法である。本方法を用いるだけでは、「背景技術」の欄で述べたセンシングデータリストに基づく方法に比べて特に効果は見出せないが、以下に述べる差分処理を用いる方法の説明をわかりやすくするためにここで詳しく述べた。なおこの方法を、センシングデータリストに基づく回転を含めたマッチング方法、と呼ぶことにする。
【0061】
次に、本発明において、差分処理を用いる方法について述べる。これは一言で言うと、上に述べたセンシングデータリストに基づく回転を含めたマッチング方法の考え方を基本にして、これに、参照地図に関する差分処理を加えるものである。
【0062】
まず、図6に示すように、2つの参照地図410および参照地図411から、差分画像412を作成することを考える。
【0063】
ここで、差分画像412は、距離パラメータrが同じ値を持ち、角度パラメータφが隣り合う値を持つ組みを選んで作成するものとする。すなわち、クラス(r,ψ)の参照地図と、クラス(r,ψ+1°)の参照地図を選ぶことになる(ここでr = 0.1, 0.2, ..., 4.0m、ψ = 0°, 1°, ..., 359°である)。これによって作成される差分画像を、クラス (r,ψ+1°)の差分画像と呼ぶこととする。
【0064】
クラス(r,ψ)の差分画像G(r,ψ)は、クラス(r,ψ)の参照地図F(r,ψ)を用いて、下記の数式1により算出することができる。
【0065】
G(r,ψ+1°)(x, y) = F(r,ψ+1°)(x, y) - F(r,ψ)(x, y) ・・・数式1
なお、(x,y)は、それぞれの画像における座標を示している。
【0066】
上に述べた通り、rの値としてはr = 0.1m, 0.2m, ..., 4.0mの40通り、ψの値としては、ψ= 0°, 1°, ..., 359°の360通りあるので、この差分画像Gは全部で 40×359枚作成されることになる。
【0067】
ところで、差分画像Gを作るときに用いられる隣り合う角度、すなわちψとψ+1°のそれぞれの角度からなる2つのクラス(r,ψ+1°)と(r,ψ)の参照地図を考えたときに、前者の画像は、後者の画像を1°だけ微小に回転させたものであるので、画像の形状が非常に似たようなものになるという性質をもっている。このため上の式に基づいて差分画像Gを作成すると、2つの画像において各画素値が同一であるものが多いため、画像中の各画素の多くの部分の差分値は0になることになる。
【0068】
本発明では、差分画像Gについて、全ての画素の画素値を差分画像Gとして保持するのではなく、0以外の画素値を持つ画素について、その画素の位置と画素値を差分画像として保持する。具体的には、対応する画素の画素値をvkとして、(x0, y0, v0), (x1, y1, v1), ..., (xn, yn, vn) の形で記録しておくものとする。これにより、差分画像Gの各画素に対する参照回数を少なくする、すなわち差分画像Gの中で0の値を持つ画素については参照する必要がなくなる、という効果をもたらすことになる。従って、データ量の削減および演算量の削減を実現することができる。
【0069】
図3に戻り、説明を続ける。環境地図格納部21には、例えば図15を用いて説明した二次元の環境地図が格納される。参照地図作成部22は、環境地図格納部21に格納されている環境地図から、r(本実施形態では、r = 0.1m, 0.2m, ..., 4.0m)およびφ(本実施形態では、φ = 0°, 1°, ..., 359°)のそれぞれのクラスに対応する参照地図を、合計40×360枚作成し、作成した参照地図を参照地図格納部23に格納する。参照地図格納部23には、図5で説明した参照地図230が格納される。
【0070】
差分画像作成部24は、上述した数式1に基づいて、参照地図格納部23に格納されている参照地図を用いて、各クラスの差分画像を作成し、作成した差分画像を差分画像格納部25に格納する。差分画像格納部25には、例えば図7に示すように、クラス250毎に、当該クラスに対応する差分画像中で画素値が0でない画素の位置を示す画素位置251、および、当該画素位置251にある画素の画素値252が格納される。
【0071】
データ送信部26は、環境地図格納部21に格納されている環境地図、参照地図格納部23に格納されている参照地図、および差分画像格納部25に格納されている差分画像を、通信回線11を介して移動ロボット30へ送信する。
【0072】
図8は、位置姿勢推定装置32の機能構成の一例を示すブロック図である。位置姿勢推定装置32は、データ取得部320、データ格納部321、第一の評価画像作成部322、統合差分画像作成部323、第一の評価値算出部324、第二の評価画像作成部325、位置姿勢推定部326、評価値格納部327、および第二の評価値算出部328を備える。
【0073】
ここで、本発明において差分画像を用いてマッチングを行う方法を述べる。ここでは、各クラス(rjk)(rj = 0.1m, 0.2m, 0.3m, ..., 4.0m、ψk = 0°, 1°, ..., 359°)の参照地図、ならびにクラス(rjk)(rj = 0.1m, 0.2m, 0.3m, ..., 4.0m、ψk = 1°, 2°, ..., 359°)の差分画像が予め作成されており、センシングデータとして(d0 ,-90°),(d1 ,-89°), ..., (d180 ,+90°)の181個のデータが得られていることを想定する。
(1) まず、移動ロボットの方向θを、θ=0°と仮定する。
(2) (d0 ,-90°), (d1 ,-89°), ..., (d180 ,+90°)の各クラスの参照地図(合計181枚)を一連の参照地図群の中から選び出す。なお、角度は適宜360°を加えることで、0°以上360°未満の範囲に収まるようにするのは、上で述べた通りである。
(3) 選び出された181枚全ての参照地図について、これを各画素毎に足し合わせた評価値画像を作成する。この評価値画像の(x,y)の位置にある画素値が、(x,y,θ)(ただしθ=0°)のパラメータにおける評価値となる。
(4) 次にθ=1°と仮定する。
(5) (d0 ,-90°-θ),(d1 ,-89°-θ),...,(d180 ,+90°-θ)の各クラスの参照地図(合計181枚)を、今度は参照地図ではなく、差分画像群の中から選び出す。
(6) 選びだされた全ての差分画像について、これを各画素毎に足し合わせた画像データを作成する。このように作成された画像データを、統合差分画像と呼ぶ。
(7) 作成された統合差分画像と、前回、すなわち(3)で作成されたθ=0°のときの評価値画像を、各画素毎に足し合わせた画像データを作成する。これが移動ロボットの回転角度がθのときの評価値画像となる。すなわち、この評価値画像の(x,y)の位置にある画素値が、(x,y,θ)のパラメータにおける評価値となる。
(8) θの値を1° 増やし、(5), (6), (7) の処理を行う。これをθ=359°になるまで繰り返す。
(9) 以上の処理により、θ= 0°, 1°, ..., 359°の合計360枚の評価値画像が作成されるが、この中で最も値が大きい画素を見つけ、この画素の画像上の位置(x,y)と、その画像が属するθの値の組み合わせ(x,y,θ)が、パラメータの推定値となる。
【0074】
本発明による差分画像を用いる方法では、センシングデータリストに基づく回転を含めたマッチング方法に比べ、計算時に用いる画像データの枚数は変わらない。具体的には、センシングデータリストに基づく回転を含めたマッチング方法では、θ= 0°, 1°, ..., 359°のときにそれぞれ(d0 ,-90°-θ), (d1 ,-89°-θ), ..., (d180 ,+90°-θ) の合計181の異なるクラスの参照地図を用いることとなり、扱う総画像枚数は181×360枚となる。
【0075】
これに対して、本発明による差分画像を用いる方法では、θ=0°ときの(d0 ,-90°), (d1 ,-89°), ..., (d180 ,+90°)の合計181枚の異なるクラスの参照地図と、θ= 1°, 2°, ..., 359°のそれぞれのときに(d0 ,-90°-θ), (d1 ,-89°-θ), ..., (d180 ,+90°-θ) の合計181枚の異なる差分画像を用いるので、扱う総画像枚数は181×(1+359)枚となる。
【0076】
このように、計算に利用する画像の枚数は、センシングデータリストに基づく回転を含めたマッチング方法も、本発明による差分画像を用いる方法も変わらないことになる。しかし、それぞれの画像データに着目したとき、0以外の値を持つ画素の数、すなわち計算に用いられる画素の数という点において、参照地図に比べて、差分画像は大幅に削減されることになる。そのため、計算に用いられる画素の数はこの削減分と同じだけ削減されることになり、計算処理量もこれに比例して削減されることになる。
【0077】
これは、差分画像を作成するときに用いられる隣り合う角度の2つのクラスの参照地図が非常に似ているために、差分画像における大部分の画素値が0になる、という性質によってもたらされるものである。もし、この差分画像における0以外の値を持つ画素の数が、もとの参照地図の0以外の値を持つ画素の数の例えば1/3になれば、マッチング方法における画素値の参照演算の回数は以下のとおりとなる。
181×360×101×101×1/2×1/3 (回)
ここで、「181」、「360」、「101」、「101」、「1/2」の各数値の持つ意味は、センシングデータリストに基づくマッチング方法のときと同様である。これに新たに加わる「1/3」の数値が、上に述べた0以外の値を持つ画素の数の削減割合である。すなわち、本発明における差分処理を用いた方法は、この数字の分、参照演算数が処理が削減されることになる。これが本発明における差分処理の効果である。
【0078】
図8に戻って、位置姿勢推定装置32の機能構成の説明を続ける。データ取得部320は、無線通信装置31を介して参照データ作成サーバ20から、環境地図、各クラスの参照地図、および各クラスの差分画像を取得し、取得した環境地図、参照地図、および差分画像をデータ格納部321に格納する。
【0079】
第一の評価画像作成部322は、181個のセンシングデータ(dii)(i=0,1,・・・,180)を距離センサ33から取得する。そして、第一の評価画像作成部322は、取得したそれぞれのセンシングデータ(dii)について、当該センシングデータ(dii)に示される距離diおよび方向φiと同一の距離および方向に対応する参照地図(dii)をデータ格納部321から抽出する。そして、第一の評価画像作成部322は、抽出した181個の参照地図(dii)の画素値を画素毎に加算することにより、加算された画素値から構成される評価画像(θ0)を作成する。評価画像(θ0)は、移動ロボット30の向きと環境地図において予め定められた方向(本実施形態では図16におけるx軸方向)とのなす角がθ0(本実施形態ではθ0=0°)であると仮定した場合の評価画像を意味する。
【0080】
第一の評価値算出部324は、第一の評価画像作成部322によって作成された評価画像(θ0)内の(x,y)の位置にある画素値を、(x,y,θ0)における評価値として評価値格納部327に格納する。評価値格納部327には、例えば図9に示すように、環境地図内の画素の位置を示すx座標3270およびy座標3271に対応付けて、当該位置にある画素の評価値3273、および、当該評価値3273が算出される際に仮定された、環境地図における所定の方向に対する移動ロボット30の向きを示す方向3272が格納される。
【0081】
統合差分画像作成部323は、距離センサ33によって測定された181個のセンシングデータ(diij)のそれぞれについて、当該センシングデータ(diij)に示される距離diおよび方向φijと同一の距離および方向に対応する差分画像(diij)を、データ格納部321から抽出する。そして、統合差分画像作成部323は、抽出した181個の差分画像(diij)の画素値を画素毎に加算することにより、加算された画素値から構成される統合差分画像(θj)を作成する。統合差分画像(θj)は、移動ロボット30の向きと環境地図において予め定められた方向とのなす角がθjであると仮定した場合の統合差分画像を意味する。
【0082】
第二の評価画像作成部325は、評価画像(θj-1)と、統合差分画像(θj)とを、画素毎に加算することにより、評価画像(θj)を作成する。第二の評価値算出部328は、第二の評価画像作成部325によって作成された評価画像(θj)内の(x,y)の位置にある画素値を、(x,y,θj)における評価値として評価値格納部327に格納する。
【0083】
なお、統合差分画像作成部323、第一の評価値算出部324、および第二の評価画像作成部325は、第一の評価画像作成部322によって評価画像(θ0)が作成された後に、j=1からj=m-1まで、統合差分画像(θj)を作成する処理、評価画像(θj)を作成する処理、および評価画像(θj)内の(x,y)の位置にある画素の評価値を格納する処理を、それぞれ実行する。
【0084】
位置姿勢推定部326は、評価値格納部327を参照して、最大の評価値が対応付けられている(x,y,θ)を特定し、環境地図の所定方向とのなす角度がθの向きで、環境地図内の(x,y)の位置に、移動ロボット30の向きおよび位置を推定し、推定した向きおよび位置を移動装置34に通知する。
【0085】
図10は、参照データ作成サーバ20の動作の一例を示すフローチャートである。例えば環境地図が環境地図格納部21に格納される等の所定のタイミングで、参照データ作成サーバ20は、本フローチャートに示す動作を開始する。
【0086】
まず、参照地図作成部22は、jの値を1に、kの値を0に、それぞれ初期化し(S100)、環境地図格納部21を参照して、環境地図からクラス(rjk)の参照地図を作成し、作成した参照地図を参照地図格納部23に格納する(S101)。そして、参照地図作成部22は、jの値が40か否かを判定し、jの値が40未満の場合(S102:No)、jの値を1増やし(S103)、再びステップS101に示した処理を実行する。
【0087】
jの値が40の場合(S102:Yes)、参照地図作成部22は、jの値を0に初期化すると共に、kの値を1増やし(S104)、kの値が181よりも大きいか否かを判定する(S105)。kの値が181以下の場合(S105:No)、参照地図作成部22は、再びステップS101に示した処理を実行する。
【0088】
kの値が181よりも大きい場合(S105:Yes)、差分画像作成部24は、jおよびkの値を1に初期化し(S106)、参照地図格納部23を参照して、下記の数式2を用いて、クラス(rjk)における差分画像を算出し、算出した差分画像(rjk)を差分画像格納部25に格納する(S107)。
【0089】
差分画像(rjk)=参照地図(rjk)−参照地図(rjk-1) ・・・数式2
次に、差分画像作成部24は、kの値が181であるか否かを判定し、kの値が181未満の場合(S108:No)、kの値を1増やし(S109)、再びステップS107に示した処理を実行する。kの値が181の場合(S108:Yes)、差分画像作成部24は、jの値を1増やすと共に、kの値を1に初期化し(S110)、jの値が40よりも大きいか否かを判定する(S111)。
【0090】
jの値が40以下の場合(S111:No)、差分画像作成部24は、再びステップS107に示した処理を実行する。jの値が40より大きい場合(S111:Yes)、データ送信部26は、環境地図格納部21に格納されている環境地図、参照地図格納部23に格納されている参照地図、および差分画像格納部25に格納されている差分画像を、通信回線11を介して移動ロボット30へ送信し(S112)、参照データ作成サーバ20は、本フローチャートに示した動作を終了する。
【0091】
図11は、位置姿勢推定装置32の動作の一例を示すフローチャートである。移動ロボット30は、環境地図、参照地図、および差分画像を、参照データ作成サーバ20から受信した後に、所定のタイミングで本フローチャートに示す動作を開始する。
【0092】
まず、第一の評価画像作成部322は、iの値を0に初期化し(S200)、距離センサ33によって測定されたセンシングデータ(dii)に対応する参照地図(dii)をデータ格納部321から抽出する(S201)。そして、第一の評価画像作成部322は、iの値が180であるか否かを判定し、iの値が180未満である場合には(S202:No)、iの値を1増やし(S203)、再びステップS201に示した処理を実行する。
【0093】
iの値が180である場合(S202:Yes)、第一の評価画像作成部322は、抽出した参照地図(dii)を画素毎に加算することにより、評価画像(θ0)を作成する(S204)。そして、第一の評価値算出部324は、第一の評価画像作成部322によって作成された評価画像(θ0)内の(x,y)の位置にある画素値を、(x,y,θ0)における評価値として評価値格納部327に格納する(S205)。
【0094】
次に、統合差分画像作成部323、第二の評価画像作成部325、および第二の評価値算出部328は、iの値を0に、jの値を1に、それぞれ初期化する(S206)。そして、統合差分画像作成部323は、距離センサ33によって測定されたセンシングデータ(diij)に対応する差分画像(diij)をデータ格納部321から抽出し(S207)、iの値が180であるか否かを判定する(S208)。iの値が180未満である場合(S208:No)、統合差分画像作成部323は、iの値を1増やし(S203)、再びステップS207に示した処理を実行する。
【0095】
iの値が180である場合(S208:Yes)、統合差分画像作成部323は、抽出した181個の差分画像(diij)の画素値を画素毎に加算することにより、加算された画素値から構成される統合差分画像(θj)を作成する(S210)。そして、第二の評価画像作成部325は、評価画像(θj-1)と、統合差分画像(θj)とを、画素毎に加算することにより、評価画像(θj)を作成する(S211)。
【0096】
次に、第二の評価値算出部328は、第二の評価画像作成部325によって作成された評価画像(θj)内の(x,y)の位置にある画素値を、(x,y,θj)における評価値として評価値格納部327に格納し(S212)、jの値が359であるか否かを判定する(S213)。jの値が359未満である場合(S213:No)、統合差分画像作成部323は、jの値を1増やし(S214)、再びステップS207に示した処理を実行する。
【0097】
jの値が359である場合(S213:Yes)、位置姿勢推定部326は、評価値格納部327を参照して、最大の評価値が対応付けられている(x,y,θ)を特定し、環境地図の所定方向とのなす角度がθの向きで、環境地図内の(x,y)の位置に、移動ロボット30の向きおよび位置を推定し(S215)、位置姿勢推定装置32は、本フローチャートに示した動作を終了する。
【0098】
図12は、参照データ作成サーバ20または位置姿勢推定装置32の機能を実現するコンピュータ40のハードウェア構成の一例を示すハードウェア構成図である。コンピュータ40は、CPU(Central Processing Unit)41、RAM(Random Access Memory)42、ROM(Read Only Memory)43、HDD(Hard Disk Drive)44、通信インターフェイス(I/F)45、入出力インターフェイス(I/F)46、およびメディアインターフェイス(I/F)47を備える。
【0099】
CPU41は、ROM43またはHDD44に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM43は、コンピュータ40の起動時にCPU41が実行するブートプログラムや、コンピュータ40のハードウェアに依存するプログラム等を格納する。HDD44は、CPU41によって実行されるプログラムを格納する。通信インターフェイス45は、通信回線を介して他の機器からデータを受信してCPU41へ送ると共に、CPU41が生成したデータを、通信回線を介して他の機器へ送信する。
【0100】
CPU41は、入出力インターフェイス46を介して、モニタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU41は、入出力インターフェイス46を介して、入力装置からデータを取得する。また、CPU41は、生成したデータを、入出力インターフェイス46を介して出力装置へ出力する。なお、コンピュータ40が位置姿勢推定装置32として機能する場合、コンピュータ40には通信インターフェイス45が設けられず、コンピュータ40は、入出力インターフェイス46に接続された無線通信装置31を介して通信を行う。また、コンピュータ40が位置姿勢推定装置32として機能する場合、距離センサ33および移動装置34とのデータやり取りは、入出力インターフェイス46を介して行われる。
【0101】
メディアインターフェイス47は、記録媒体48に格納されたプログラムまたはデータを読み取り、RAM42に提供する。RAM42を介してCPU41に提供されるプログラムは、記録媒体48に格納されている。当該プログラムは、記録媒体48から読み出されて、RAM42を介してコンピュータ40にインストールされ、CPU41によって実行される。記録媒体48は、例えばDVD(Digital Versatile Disk)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0102】
コンピュータ40が参照データ作成サーバ20として機能する場合、コンピュータ40にインストールされて実行されるプログラムは、コンピュータ40を、環境地図格納部21、参照地図作成部22、参照地図格納部23、差分画像作成部24、差分画像格納部25、およびデータ送信部26として機能させる。
【0103】
また、コンピュータ40が位置姿勢推定装置32として機能する場合、コンピュータ40にインストールされて実行されるプログラムは、コンピュータ40を、データ取得部320、データ格納部321、第一の評価画像作成部322、統合差分画像作成部323、第一の評価値算出部324、第二の評価画像作成部325、位置姿勢推定部326、評価値格納部327、および第二の評価値算出部328として機能させる。
【0104】
コンピュータ40は、これらのプログラムを、記録媒体48から読み取って実行するが、他の例として、他の装置から、通信媒体を介してこれらのプログラムを取得してもよい。通信媒体とは、有線もしくは無線の通信回線、または、当該通信回線を伝搬するディジタル信号もしくは搬送波を指す。
【0105】
以上、本発明の実施の形態について説明した。
【0106】
上記説明から明らかなように、本実施形態の位置姿勢推定システム10によれば、センシングデータリストに基づくマッチング方法に比べて、さらなる計算量の削減を実現することができる。
【0107】
ここで、今まで述べた説明をもとに、「課題を解決するための手段」の欄で図1を参照して述べた本発明の構成と、上記した実施形態との対応関係を補足する。
【0108】
図1において、環境地図101は、「背景技術」の項で説明したように、距離センサ106による測定高さ断面での障害物の存在を、ディジタル画像としてあらわしたものである。ここでは、障害物が存在しない場所を画素値0(白色)、障害物が存在する場所を画素値1(黒色)としてあらわすことにする。
【0109】
距離センサ106は、「背景技術」の項で説明したように、自分の周辺の予め決められた複数の方向について、障害物までの距離を計測できるものである。ここでは、測定は正面に対して-90°から+90°に1°毎の合計181の異なる方向について行われるものとする。
【0110】
センシングデータ107は、「背景技術」の項で説明したように、上記距離センサ106によって障害物の位置が、角度と距離の組み合わせとして(d0 ,-90°),(d1 ,-89°), ...,,(d180 ,+90°)の合計181個の極座標表現によるデータとしてあらわされるものである。また、d0, d1, ..., d180 は、0.1m, 0.2m, 0.3m, ..., 4.0mのいずれかの値として量子化されているものである。
【0111】
位置姿勢推定値124とは、「背景技術」の欄で説明したように、移動ロボットが平面運動を行うことを想定するので、位置と方向に関する合計3パラメータ(x, y,θ)としてあらわされるものである。
【0112】
まず、図1における参照データ群を作成する手段150において、環境地図からマッチングのための第1の参照データ群103を作成する方法について説明する。ここで第1の参照データ群とは、「背景技術」の項で説明した一連の参照地図を示す。具体的には、(rjk)(ただし、rj = 0.1m, 0.2m, 0.3m, ..., 4.0mの40通り、ψk = 0°, 1°, ..., 359°の360通り)のクラスとして作成するので、合計40×360枚になる。このデータは、環境地図を(x,y)の方向に移動させることで作成される。なお、x = rj・cos(ψk), y = rj・sin(ψk) である。
【0113】
また、各画素は実環境における10cm×10cmの大きさの領域を示すように量子化されるものとする。さらに、この参照地図は、画像そのものではなく、画像上において、1の値を持つ画素の座標値を列挙したデータとして、(x0, y0), (x1, y1), ..., (xn, yn) のように記録されるものとする。
【0114】
次に、図1における参照データ群を作成する手段150において、第1の参照データ群から第2の参照データ群105を作成する方法について説明する。ここで、第2の参照データ群とは、第1の実施例で説明した一連の差分画像を示す。具体的には、(rjk)(ただし、rj = 0.1m, 0.2m, 0.3m, ..., 4.0mの40通り、ψk = 1°, 2°, ..., 359°の359通りのクラスとして作成するので、合計40×359枚になる。このデータは、上に述べた参照地図の中で角度パラメータについて隣り合うクラスのものを2つ組み合わせ、この画像の画素毎の差分処理を行うことで作成される。
【0115】
すなわち、クラス(rj,ψ+1°)と、クラス(rj,ψ)の参照地図から、クラス(rj,ψ+1°)の差分画像が作成されることになる。その具体的な作成方法は、発明を実施するための最良の形態の前半部分で説明した通りである。この差分画像は、画像そのものではなく、画像上において、0以外の値をもつ画素の座標値と、その値を列挙したデータとして、(x0, y0 v0), (x1, y1, v1), ..., (xn, yn, vn) のように記録されるものとする。
【0116】
次に、図1における位置姿勢を推定する手段170における、センシングデータに基づいて、第1の参照データ群と第2の参照データ群の中から必要なデータを選択する処理について説明する。ここでは、移動ロボットの回転をθと仮定し、この値とセンシングデータとから算出される値に基づき、第1の参照データ群、すなわち各クラスの参照地図と、第2の参照データ群、すなわち各クラスの差分画像から、適切なクラスのものを選択する。選択されるものは複数枚になる。その具体的な選択方法は、発明を実施するための最良の形態の前半部分で説明したとおりである。
【0117】
次に、図1の位置姿勢を推定する手段170における、選択されたデータを加算することで評価のためのデータ122を作成する処理121について説明する。ここでは、仮定した移動ロボットの回転θの値毎に、上で選択した各クラスの参照地図と差分画像を画素毎に足し合わせ、さらにこれに、移動ロボットの回転(θ-1°)として作成した評価値画像を足し合わせ、これを移動ロボットの回転θの評価値画像とする。その具体的な方法は、発明を実施するための最良の形態の前半部分で説明したとおりである。なお、この評価値画像が、図1における評価のためのデータとなる。
【0118】
次に、図1の位置姿勢を推定する手段170における、評価のためのデータから位置姿勢推定値を求める処理123について説明する。これは、上で求められた各移動ロボットの回転θ毎に算出された評価値画像の中から、最大の値をもつ画素を見つけ出し、これが属する回転角度θと、その画素の画像上の位置(x,y)から、位置姿勢推定値を(x,y,θ)として求めるものである。その具体的な方法は、発明を実施するための最良の形態の前半部分で説明した通りである。
【0119】
また、本発明は、上記した実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【0120】
例えば、上記した実施形態において、位置姿勢推定装置32は、パラメータ推定時には、参照データ作成サーバ20によって予め作成された参照地図および差分画像の両方を利用するが、本発明はこれに限られない。他の形態として、位置姿勢推定装置32は、参照データ作成サーバ20によって予め作成された差分画像と一部の参照地図とを用いて各パラメータを推定するようにしてもよい。
【0121】
例えば、参照データ作成サーバ20は、参照地図としてψ=0°のクラス、すなわちクラス(0.1m, 0°), クラス(0.2m, 0°), ..., クラス(4.0m, 0°)の参照地図を作成し、位置姿勢推定装置32は、参照データ作成サーバ20によって作成されたクラスの参照地図をデータ格納部321に保存する。これは、上記した実施形態においてψ= 0°, 1°, ..., 359°の全てのクラスの参照地図を記録しておくのに比べて1/360のメモリ量となる。なお、差分画像については、参照データ作成サーバ20は、上記した実施形態と同様に全てのクラスについて差分画像を作成し、位置姿勢推定装置32は、参照データ作成サーバ20によって作成された全てのクラスの差分画像をデータ格納部321に保存する。
【0122】
このような準備のもと、第一の評価画像作成部322は、以下のステップに従い、方向θをθ=0°と仮定したときの評価値画像を作成する。
(1) θ=0°とする。
(2) センシングデータ(d0 ,-90°), (d1,-89°), ..., (d180 ,+90°)について、距離パラメータはそれぞれの値とし、角度パラメータは0°に置き換えたクラスの参照地図を選び出す。すなわち(d0 ,0°), (d1 ,0°), ..., (d180 ,0°)のクラスの参照地図を選び出すことになる。
(3) これらのデータについて、角度パラメータがセンシングデータのものになるまで、差分画像を足し合わせていく。この足し合わせた画像データが、そのクラスの参照地図となる。例えば、(d0 ,-90°)のセンシングデータについては、-90° → -90°+ 360° = +270°の変換処理を行ったのちに、以下の計算を行うことで、目的となる (d0 ,+270°)のクラスの参照地図を作成する。
【0123】
F(d0 ,270°) = F(d0 ,0°) + G(d0 ,1°) + G(d0 ,2°) + ... + G(d0 ,270°)
・・・数式3 ここで、F(d,ψ)およびG(d,ψ) は、それぞれ、クラス(d,ψ)の参照地図およびクラス(d,ψ)の差分画像である。
【0124】
以上の処理により、θ=0°のときの各クラスの参照地図が求められるので、それ以降は、この参照地図に、それぞれの角度における統合差分画像を加算していくことにより、目的となる推定値が求められることになる。このようにすることにより、センシングデータに対応する各クラスの参照地図を作成する処理が新たに必要になるものの、データ格納部321内に参照地図の大部分を記憶する必要がないため、メモリ量を削減することができる。
【0125】
また、上記した実施形態において、移動ロボット30は、有線または無線通信により、環境地図、参照地図、および差分画像を参照データ作成サーバ20から取得するが、他の形態として、移動ロボット30は、可搬性の記録媒体を介して、これらのデータを参照データ作成サーバ20から取得するようにしてもよい。
【0126】
また、上記した実施形態において、位置姿勢推定システム10は、参照データ作成サーバ20と移動ロボット30とを備えるが、他の形態として、参照データ作成サーバ20の機能を移動ロボット30内に設けることにより、移動ロボット30単体で位置姿勢推定システム10の機能を実現するように構成されていてもよい。
【0127】
また、上記した実施形態において用いられている様々な具体的な数値は、説明に対する理解を助けるために仮に設定したものであり、本発明の実施時にその値が使われることを限定するものではない。例えば、上記した実施形態では、角度の分解能が1°であったが、本発明を適用するシステムの仕様や要求される精度等に応じて、0.5°や0.1°等であってもよい。
【図面の簡単な説明】
【0128】
【図1】本発明の位置姿勢推定システム10の全体構成の一例を説明するための概念図である。
【図2】本発明の一実施形態に係る位置姿勢推定システム10の構成を示すシステム構成図である。
【図3】参照データ作成サーバ20の機能構成の一例を示すブロック図である。
【図4】参照地図400の意味を説明するための概念図である。
【図5】参照地図格納部23に格納されるデータ構造の一例を説明するための概念図である。
【図6】差分画像412の作成過程を説明するための概念図である。
【図7】差分画像格納部25に格納されるデータ構造の一例を示す図である。
【図8】位置姿勢推定装置32の機能構成の一例を示すブロック図である。
【図9】評価値格納部327に格納されるデータ構造の一例を示す図である。
【図10】参照データ作成サーバ20の動作の一例を示すフローチャートである。
【図11】位置姿勢推定装置32の動作の一例を示すフローチャートである。
【図12】参照データ作成サーバ20の機能を実現するコンピュータ40の一例を示すハードウェア構成図である。
【図13】移動ロボット420の動作概要を説明するための概念図である。
【図14】距離センサ421によって測定されたセンシングデータ群430の一例を示す図である。
【図15】環境地図440の一例を示す図である。
【図16】移動ロボットの位置を特定する過程を説明するための概念図である。
【図17】センシングデータ群460および環境地図463の一例を示す概念図である。
【図18】基本手法によるマッチング方法の過程を説明するための概念図である。
【図19】第0番目のセンシングデータ470と環境地図内の黒い画素とが一致する場合を抜き出した図である。
【図20】第0番目のセンシングデータ470と環境地図内の黒い画素とが一致する場合のセンサ原点481の位置をプロットした図である。
【図21】図20と環境地図との関係を説明するための概念図である。
【図22】各センシングデータと参照地図との関係を説明するための概念図である。
【図23】評価画像が作成される過程を説明するための概念図である。
【図24】評価画像510の一例を示す図である。
【符号の説明】
【0129】
10・・・位置姿勢推定システム、101・・・環境地図、102・・・第1の参照データ群の作成処理、103・・・第1の参照データ群、104・・・第2の参照データ群の作成処理、105・・・第2の参照データ群、106・・・距離センサ、107・・・センシングデータ、120・・・参照データ選択処理、121・・・加算処理、122・・・評価のためのデータ、123・・・位置姿勢推定値を求めるための処理、124・・・位置姿勢推定値、150・・・参照データ群を作成する手段、170・・・位置姿勢を推定する手段、11・・・通信回線、12・・・基地局、20・・・参照データ作成サーバ、21・・・環境地図格納部、22・・・参照地図作成部、23・・・参照地図格納部、24・・・差分画像作成部、25・・・差分画像格納部、26・・・データ送信部、30・・・移動ロボット、31・・・無線通信装置、32・・・位置姿勢推定装置、320・・・データ取得部、321・・・データ格納部、322・・・第一の評価画像作成部、323・・・統合差分画像作成部、324・・・第一の評価値算出部、325・・・第二の評価画像作成部、326・・・位置姿勢推定部、327・・・評価値格納部、328・・・第二の評価値算出部、33・・・距離センサ、34・・・移動装置

【特許請求の範囲】
【請求項1】
距離センサの主方向とのなす角度が異なり、主方向とのなす角度が小さい順にψ01,・・・ψm-1とするm個の方向ψk(k=0,1,・・・m-1)と、前記距離センサから異なる距離rとにおいて、方向ψkおよび距離rの組み合わせ毎にベクトルA(r,ψk)を定義し、
それぞれのベクトルA(r,ψk)毎に、複数の画素から構成される二次元の環境地図を、当該ベクトルA(r,ψk)で示される方向と逆方向へ、当該ベクトルA(r,ψk)で示される距離分平行移動することにより、参照地図(r,ψk)を作成し、
作成した参照地図(r,ψk)と、前記距離センサによって測定されたセンシングデータであって、前記距離センサの主方向とのなす角度が異なるn個の方向φi(i=0,1,・・・n-1)、および、それぞれの方向φiにおける前記距離センサから物体までの距離di(i=0,1,・・・n-1)を示すセンシングデータ(dii)とから、前記距離センサが搭載された装置の位置および向きを前記環境地図内で推定する位置姿勢推定システムにおける位置姿勢推定方法であって、
前記位置姿勢推定システムは、
参照データ作成サーバと、
前記距離センサが搭載された装置に搭載される位置姿勢推定装置と
を備え、
前記参照データ作成サーバが、
前記環境地図から参照地図(r,ψk)(k=0,1,・・・m-1)を作成する参照地図作成ステップと、
作成した参照地図(r,ψk)を参照して、同一の距離r毎に、参照地図(r,ψk)−参照地図(r,ψk-1)により、隣り合う方向における参照地図の差分を画素毎に算出し、算出した画素毎の差分において、0以外の画素値を有する画素を集めた差分画像(r,ψk)(k=1,2,・・・m-1)を作成する差分画像作成ステップと
を実行し、
前記位置姿勢推定装置が、
前記距離センサによって測定されたn個のセンシングデータ(dii)(i=0,1,・・・n-1)のそれぞれについて、当該センシングデータ(dii)に示される距離diおよび方向φiと同一の距離および方向に対応する参照地図(dii)を、前記参照データ作成サーバによって算出された参照地図の中から抽出し、抽出したn個の参照地図(dii)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθ0とする評価画像(θ0)を作成する第一の評価画像作成ステップと、
前記評価画像(θ0)内の(x,y)の位置にある画素値を、(x,y,θ0)における評価値として算出する第一の評価値算出ステップと、
j=1からj=m-1まで、前記距離センサによって測定されたn個のセンシングデータ(diij)のそれぞれについて、当該センシングデータ(diij)に示される距離diおよび方向φijと同一の距離および方向に対応する差分画像(diij)を、前記参照データ作成サーバによって作成された差分画像の中から抽出し、抽出したn個の差分画像G(diij)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθjとする統合差分画像(θj)を作成し、評価画像(θj-1)と、統合差分画像(θψj)とを、画素毎に加算することにより、評価画像(θj)を作成し、作成した評価画像(θj)内の(x,y)の位置にある画素値を、(x,y,θj)における評価値として算出する第二の評価値算出ステップと、
前記第一の評価値算出ステップにおいて算出した評価値、および、前記第二の評価値算出ステップにおいて算出した評価値の中で、最大の評価値に対応する(x,y,θ)を特定し、前記環境地図の主方向とのなす角度がθの向きで、前記環境地図内の(x,y)の位置に前記距離センサが搭載された装置の向きおよび位置を推定する位置姿勢推定ステップと
を実行することを特徴とする位置姿勢推定方法。
【請求項2】
距離センサの主方向とのなす角度が異なり、主方向とのなす角度が小さい順にψ01,・・・ψm-1とするm個の方向ψk(k=0,1,・・・m-1)と、前記距離センサから異なる距離rとにおいて、方向ψkおよび距離rの組み合わせ毎にベクトルA(r,ψk)を定義し、
それぞれのベクトルA(r,ψk)毎に、複数の画素から構成される二次元の環境地図を、当該ベクトルA(r,ψk)で示される方向と逆方向へ、当該ベクトルA(r,ψk)で示される距離分平行移動することにより、参照地図(r,ψk)を作成し、
作成した参照地図(r,ψk)と、前記距離センサによって測定されたセンシングデータであって、前記距離センサの主方向とのなす角度が異なるn個の方向φi(i=0,1,・・・n-1)、および、それぞれの方向φiにおける前記距離センサから物体までの距離di(i=0,1,・・・n-1)を示すセンシングデータ(dii)とから、前記距離センサが搭載された装置の位置および向きを前記環境地図内で推定する位置姿勢推定システムであって、
参照データ作成サーバと、
前記距離センサが搭載された装置に搭載される位置姿勢推定装置と
を備え、
前記参照データ作成サーバは、
前記環境地図から参照地図(r,ψk)(k=0,1,・・・m-1)を作成する参照地図作成手段と、
前記参照地図作成手段によって作成された参照地図(r,ψk)を参照して、同一の距離r毎に、参照地図(r,ψk)−参照地図(r,ψk-1)により、隣り合う方向における参照地図の差分を画素毎に算出し、算出した画素毎の差分において、0以外の画素値を有する画素を集めた差分画像(r,ψk)(k=1,2,・・・m-1)を作成する差分画像作成手段と
を有し、
前記位置姿勢推定装置は、
前記距離センサによって測定されたn個のセンシングデータ(dii)(i=0,1,・・・n-1)のそれぞれについて、当該センシングデータ(dii)に示される距離diおよび方向φiと同一の距離および方向に対応する参照地図(dii)を、前記参照データ作成サーバによって算出された参照地図の中から抽出し、抽出したn個の参照地図(dii)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθ0とする評価画像(θ0)を作成する第一の評価画像作成手段と、
前記評価画像(θ0)内の(x,y)の位置にある画素値を、(x,y,θ0)における評価値として算出する第一の評価値算出手段と、
j=1からj=m-1まで、前記距離センサによって測定されたn個のセンシングデータ(diij)のそれぞれについて、当該センシングデータ(diij)に示される距離diおよび方向φijと同一の距離および方向に対応する差分画像(diij)を、前記参照データ作成サーバによって作成された差分画像の中から抽出し、抽出したn個の差分画像(diij)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθjとする統合差分画像(θj)を作成する統合差分画像作成手段と、
j=1からj=m-1まで、評価画像(θj-1)と、統合差分画像(θj)とを、画素毎に加算することにより、評価画像(θj)を作成する第二の評価画像作成手段と、
j=1からj=m-1まで、前記評価画像(θj)内の(x,y)の位置にある画素値を、(x,y,θj)における評価値として算出する第二の評価値算出手段と、
前記第一の評価値算出手段によって算出された評価値、および、前記第二の評価値算出手段によって算出された評価値の中で、最大の評価値に対応する(x,y,θ)を特定し、前記環境地図の主方向とのなす角度がθの向きで、前記環境地図内の(x,y)の位置に前記距離センサが搭載された装置の向きおよび位置を推定する位置姿勢推定手段と
を有することを特徴とする位置姿勢推定システム。
【請求項3】
距離センサの主方向とのなす角度が異なり、主方向とのなす角度が小さい順にψ01,・・・ψm-1とするm個の方向ψk(k=0,1,・・・m-1)と、前記距離センサから異なる距離rとにおいて、方向ψkおよび距離rの組み合わせ毎にベクトルA(r,ψk)を定義し、
それぞれのベクトルA(r,ψk)毎に、複数の画素から構成される二次元の環境地図を、当該ベクトルA(r,ψk)で示される方向と逆方向へ、当該ベクトルA(r,ψk)で示される距離分平行移動することにより、参照地図(r,ψk)を作成し、
作成した参照地図(r,ψk)と、前記距離センサによって測定されたセンシングデータであって、前記距離センサの主方向とのなす角度が異なるn個の方向φi(i=0,1,・・・n-1)、および、それぞれの方向φiにおける前記距離センサから物体までの距離di(i=0,1,・・・n-1)を示すセンシングデータ(dii)とから、前記距離センサが搭載された装置の位置および向きを前記環境地図内で推定する位置姿勢推定装置における位置姿勢推定方法であって、
前記位置姿勢推定装置は、
前記環境地図から参照地図(r,ψk)(k=0,1,・・・m-1)を作成する参照地図作成ステップと、
前記参照地図作成ステップにおいて作成した参照地図(r,ψk)を参照して、同一の距離r毎に、参照地図(r,ψk)−参照地図(r,ψk-1)により、隣り合う方向における参照地図の差分を画素毎に算出し、算出した画素毎の差分において、0以外の画素値を有する画素を集めた差分画像(r,ψk)(k=1,2,・・・m-1)を作成する差分画像作成ステップと、
前記距離センサによって測定されたn個のセンシングデータ(dii)(i=0,1,・・・n-1)のそれぞれについて、当該センシングデータ(dii)に示される距離diおよび方向φiと同一の距離および方向に対応する参照地図(dii)を参照地図の中から抽出し、抽出したn個の参照地図(dii)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθ0とする評価画像(θ0)を作成する第一の評価画像作成ステップと、
前記評価画像(θ0)内の(x,y)の位置にある画素値を、(x,y,θ0)における評価値として算出する第一の評価値算出ステップと、
j=1からj=m-1まで、前記距離センサによって測定されたn個のセンシングデータ(diij)のそれぞれについて、当該センシングデータ(diij)に示される距離diおよび方向φijと同一の距離および方向に対応する差分画像(diij)を差分画像の中から抽出し、抽出したn個の差分画像(diij)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθjとする統合差分画像(θj)を作成し、評価画像(θj-1)と、統合差分画像(θj)とを、画素毎に加算することにより、評価画像(θj)を作成し、前記評価画像(θj)内の(x,y)の位置にある画素値を、(x,y,θj)における評価値として算出する第二の評価値算出ステップと、
前記第一の評価値算出ステップにおいて算出した評価値、および、前記第二の評価値算出ステップにおいて算出した評価値の中で、最大の評価値に対応する(x,y,θ)を特定し、前記環境地図の主方向とのなす角度がθの向きで、前記環境地図内の(x,y)の位置に前記距離センサが搭載された装置の向きおよび位置を推定する位置姿勢推定ステップと
を実行することを特徴とする位置姿勢推定方法。
【請求項4】
距離センサの主方向とのなす角度が異なり、主方向とのなす角度が小さい順にψ01,・・・ψm-1とするm個の方向ψk(k=0,1,・・・m-1)と、前記距離センサから異なる距離rとにおいて、方向ψkおよび距離rの組み合わせ毎にベクトルA(r,ψk)を定義し、
それぞれのベクトルA(r,ψk)毎に、複数の画素から構成される二次元の環境地図を、当該ベクトルA(r,ψk)で示される方向と逆方向へ、当該ベクトルA(r,ψk)で示される距離分平行移動することにより、参照地図(r,ψk)を作成し、
作成した参照地図(r,ψk)と、前記距離センサによって測定されたセンシングデータであって、前記距離センサの主方向とのなす角度が異なるn個の方向φi(i=0,1,・・・n-1)、および、それぞれの方向φiにおける前記距離センサから物体までの距離di(i=0,1,・・・n-1)を示すセンシングデータ(dii)とから、前記距離センサが搭載された装置の位置および向きを前記環境地図内で推定する位置姿勢推定装置であって、
前記環境地図から参照地図(r,ψk)(k=0,1,・・・m-1)を作成する参照地図作成手段と、
前記参照地図作成手段によって作成された参照地図(r,ψk)を参照して、同一の距離r毎に、参照地図(r,ψk)−参照地図(r,ψk-1)により、隣り合う方向における参照地図の差分を画素毎に算出し、算出した画素毎の差分において、0以外の画素値を有する画素を集めた差分画像(r,ψk)(k=1,2,・・・m-1)を作成する差分画像作成手段と、
前記距離センサによって測定されたn個のセンシングデータ(dii)(i=0,1,・・・n-1)のそれぞれについて、当該センシングデータ(dii)に示される距離diおよび方向φiと同一の距離および方向に対応する参照地図(dii)を参照地図の中から抽出し、抽出したn個の参照地図(dii)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθ0とする評価画像(θ0)を作成する第一の評価画像作成手段と、
前記評価画像(θ0)内の(x,y)の位置にある画素値を、(x,y,θ0)における評価値として算出する第一の評価値算出手段と、
j=1からj=m-1まで、前記距離センサによって測定されたn個のセンシングデータ(diij)のそれぞれについて、当該センシングデータ(diij)に示される距離diおよび方向φijと同一の距離および方向に対応する差分画像(diij)を差分画像の中から抽出し、抽出したn個の差分画像(diij)の画素値を画素毎に加算することにより、加算された画素値から構成される、前記距離センサが搭載された装置の向きと前記環境地図の主方向とのなす角をθjとする統合差分画像(θj)を作成する統合差分画像作成手段と、
j=1からj=m-1まで、評価画像(θj-1)と、統合差分画像(θj)とを、画素毎に加算することにより、評価画像(θj)を作成する第二の評価画像作成手段と、
j=1からj=m-1まで、前記評価画像(θj)内の(x,y)の位置にある画素値を、(x,y,θj)における評価値として算出する第二の評価値算出手段と、
前記第一の評価値算出手段によって算出された評価値、および、前記第二の評価値算出手段によって算出された評価値の中で、最大の評価値に対応する(x,y,θ)を特定し、前記環境地図の主方向とのなす角度がθの向きで、前記環境地図内の(x,y)の位置に前記距離センサが搭載された装置の向きおよび位置を推定する位置姿勢推定手段と
を有することを特徴とする位置姿勢推定装置。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate