(57)【要約】【課題】他の物体に接触したことによる移動を、自己位置推定に反映することができる移動ロボットを提供する。【解決手段】本発明の移動ロボットは、移動ロボットが他の物体に接触したことを検出する接触検知センサと、接触検知センサの検出結果に応じた、接触による移動を推定した接触移動推定モデルに基づいて、接触による移動ロボットの移動量を推定する移動量推定部と、移動量推定部によって推定された移動量に基づいて、自己位置を推定する自己位置推定部を有する。【選択図】図４
2012256209.tif 000002
【特許請求の範囲】
【請求項１】
移動ロボットが他の物体に接触したことを検出する接触検知センサと、
前記接触検知センサの検出結果に応じた、接触による移動を推定した接触移動推定モデルに基づいて、接触による前記移動ロボットの移動量を推定する移動量推定部と、
前記移動量推定部によって推定された移動量に基づいて、自己位置を推定する自己位置推定部を有する移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボットに関し、特に、自己位置を推定することができる移動ロボットに関する。
【背景技術】
【０００２】
従来より、自律走行を行う移動ロボットにおいて、自己の位置を車輪の回転量によって推定するオドメトリに関する技術が広く用いられている。特許文献１には、ランドマーク認識を利用し、オドメトリとロボットが存在する真の位置との誤差を修正するためのパラメータを自動調整することが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−８６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、移動ロボットに人や障害物等の他の物体が接触した場合には、移動ロボットに設けられている車輪が空転、若しくは横滑り等が発生することがある。
【０００５】
しかしながら、従来の移動ロボットでは、このような他の物体との接触による移動ロボットの移動については、なんら考慮されていなかった。そのため、従来の移動ロボットでは、他の物体が移動ロボットに接触した場合、オドメトリと実際の移動ロボットの真の位置に修正できないほどの差異が生じれば、真の自己位置を推定することができないという問題がある。
【０００６】
本発明は、このような問題点に対してなされたものであり、他の物体に接触したことによる移動ロボットの移動を、自己位置推定に反映することができる移動ロボットを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る移動ロボットの一態様は、移動ロボットが他の物体に接触したことを検出する接触検知センサと、前記接触検知センサの検出結果に応じた、接触による移動を推定した接触移動推定モデルに基づいて、接触による前記移動ロボットの移動量を推定する移動量推定部と、前記移動量推定部によって推定された移動量に基づいて、自己位置を推定する自己位置推定部を有することを特徴とする。
【０００８】
上記の移動ロボットの一態様によれば、移動ロボットが他の物体に接触したことを接触センサにより検出し、接触センサの検出結果に応じた接触移動推定モデルを用いて、接触による前記移動ロボットの移動を推定することによって、他の物体との接触による移動ロボットの移動を、自己位置推定に反映させることができる。
【発明の効果】
【０００９】
本発明に係る移動ロボットによれば、移動ロボットが他の物体に接触したことによる移動を自己位置推定に反映させることができ、自己位置推定の精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る移動ロボットの全体構成を示す斜視図である。
【図２】本発明の実施の形態に係る移動ロボットの全体構成を示す平面図である。
【図３】本発明の実施の形態に係る移動ロボットの全体構成を示す左側面図である。
【図４】本発明の実施の形態に係る移動ロボットの構成を示す機能ブロック図である。
【図５】本発明の実施の形態に係る移動ロボットの位置推定に用いられる座標軸を示す図である。
【図６】本発明の実施の形態に係る移動ロボット１０の動作を示すフローチャートである。
【図７Ａ】本発明の実施の形態に係る移動ロボットに、他の物体が衝突したときの動作を示す図である。
【図７Ｂ】本発明の実施の形態に係る移動ロボットに、他の物体が衝突したときの動作を示す図である。
【図７Ｃ】本発明の実施の形態に係る移動ロボットに、他の物体が衝突したときの動作を示す図である。
【図８Ａ】本発明の実施の形態に係る移動ロボットに、他の物体が衝突したときの動作を示す図である。
【図８Ｂ】本発明の実施の形態に係る移動ロボットに、他の物体が衝突したときの動作を示す図である。
【図９Ａ】本発明の実施の形態に係る移動ロボットの、図７Ａ乃至７Ｃに示す移動パターンの確立密度関数表現を示す図である。
【図９Ｂ】本発明の実施の形態に係る移動ロボットの、図７Ａ乃至７Ｃに示す移動パターンの確立密度関数表現を示す図である。
【図９Ｃ】本発明の実施の形態に係る移動ロボットの、図７Ａ乃至７Ｃに示す移動パターンの確立密度関数表現を示す図である。
【図１０Ａ】本発明の実施の形態に係る移動ロボットの、図７Ａ乃至７Ｃに示す移動パターンのパーティクル表現を示す図である。
【図１０Ｂ】本発明の実施の形態に係る移動ロボットの、図７Ａ乃至７Ｃに示す移動パターンのパーティクル表現を示す図である。
【図１０Ｃ】本発明の実施の形態に係る移動ロボットの、図７Ａ乃至７Ｃに示す移動パターンのパーティクル表現を示す図である。
【図１１Ａ】本発明の実施の形態に係る移動ロボットの、図８Ａ及び８Ｂに示す移動パターンの確立密度関数表現を示す図である。
【図１１Ｂ】本発明の実施の形態に係る移動ロボットの、図８Ａ及び８Ｂに示す移動パターンの確立密度関数表現を示す図である。
【図１１Ｃ】本発明の実施の形態に係る移動ロボットの、図８Ａ及び８Ｂに示す移動パターンの確立密度関数表現を示す図である。
【図１２Ａ】本発明の実施の形態に係る移動ロボットの、図８Ａ乃び８Ｂに示す移動パターンのパーティクル表現を示す図である。
【図１２Ｂ】本発明の実施の形態に係る移動ロボットの、図８Ａ乃び８Ｂに示す移動パターンのパーティクル表現を示す図である。
【図１２Ｃ】本発明の実施の形態に係る移動ロボットの、図８Ａ乃び８Ｂに示す移動パターンのパーティクル表現を示す図である。
【図１３】本発明の実施の形態に係る移動ロボットの自己位置推定に用いられる接触移動パーティクルを示すテーブルである。
【図１４】本発明の実施の形態に係る移動ロボットにおいて用いられる接触移動パーティクルの作成処理を示すフローチャートである。
【図１５】本発明の実施の形態における、接触移動情報に基づいて、自己位置を推定する処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態．
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明の実施の形態に係る移動ロボット１０の全体構成を示す斜視図である。また、図２は、移動ロボット１０の平面図であり、図３は、移動ロボット１０の左側面図である。なお、移動ロボット１０は、左右対称に構成されているため、右側面図は、図３の左側面図と左右対称に現れる。説明のため、移動ロボット１０の進行方向側の面を正面、進行方向と逆方向側の面を背面、進行方向に向かって右側を右側面、左側を左側面と呼ぶ。
【００１２】
図１及び図３に示すように、移動ロボット１０は、本体１、駆動輪２、補助輪３及びバンパー４を備えている。駆動輪２は、本体１の右側面及び左側面に１つずつ設けられている。両側面の駆動輪２は、図示しない制御部によって駆動制御されている。補助輪３は、本体１の正面側及び背面側に１つずつ設けられている。補助輪３は、駆動輪２のように駆動制御されておらず、移動ロボット１０の移動に追従して回転する。なお、本体１の形状や、駆動輪２及び補助輪３の数及び配置等については、任意の設定することが可能である。
【００１３】
バンパー４は、本体１の外周を囲むように配置されている。バンパー４は、本体１よりも外側に突出するように設けられている。バンパー４は、図２に示すように、複数のバンパー部材４ａ〜４ｆを備えている。具体的には、バンパー部材４ａは、移動ロボット１０の正面に設置されている。バンパー部材４ｂは、右側面の前方に設置され、バンパー４ｃは、右側面の後方に設置されている。また、バンパー部材４ｄは、移動ロボット１０の背面に設置されている。バンパー部材４ｅは、左側面の後方に設置され、バンパー部材４ｆは左側面の前方に設置されている。なお、バンパー部材の配置や数については、任意に設計することができる。例えば、バンパー部材は、本体１の上面や底面に設けられていてもよい。また、バンパー部材は、１個であってもよく、６個以上であってもよい。
【００１４】
次に、本実施の形態に係る移動ロボット１０の構成について更に説明する。図４は、本発明の移動ロボット１０の構成を示す機能ブロック図である。この移動ロボット１０は、接触検知センサ１１、接触移動推定部１２、オドメトリ算出部１３、自己位置推定部１４、エンコーダ計測部１５、及び環境センサ１６を備えている。
【００１５】
接触検知センサ１１は、他の物体（人や障害物等）が移動ロボット１０に接触したことを検知する。接触検知センサ１１は、バンパー部材４ａ〜４ｆのそれぞれに対応するように設けられている。実施の形態では、接触検知センサ１１は、６個のバンパー部材４ａ〜４ｆ毎に設けられている。説明のため、図２に示すように、それぞれのバンパー部材４ａに対応する接触検知センサを、１１ａ〜１１ｆとする。例えば、接触検知センサ１１ａにより、バンパー部材４ａに他の物体が接触したことを検知し、接触検知センサ１１ｂにより、バンパー部材１１ｂに他の物体が接触したことを検知する。
【００１６】
接触検知センサ１１は、自己に対応するバンパー部材４ａ〜４ｆに他の物体が接触すると、自己に割り当てられた識別情報（ＩＤ：ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を出力することにより、接触を検知したことを示す接触検知情報を出力する。この接触検知情報は、接触移動推定部１２に入力される。なお、接触検知センサ１１は、移動ロボット１０が他の物体に接触したことを検出することができればよく、１つの移動ロボット１０に対し、少なくとも１つ設けられていればよい。接触検知センサ１１を１つだけ設けた場合には、接触検知センサ１１からは、識別情報を出力する必要はなく、接触を検知したことを示す接触検知情報を接触移動推定部１２に出力すればよい。
【００１７】
なお、上述においては、バンパー部材４ａ〜４ｆと接触検知センサ１１ａ〜１１ｆは、１対１に対応するように設けられている。しかしながら、バンパー部材４ａ〜４ｆと接触検知センサ１１は、必ずしも１対１に対応する必要はない。例えば、１つのバンパー部材の接触を、２以上の接触検知センサにより検出するよう構成してもよい。逆に、２以上のバンパー部材に他の物体が接触したことを、１つの接触検知センサによって検出してもよい。また、他の物体が移動ロボット１０に接触したことを検知することができれば、すなわち、接触検知センサ１１さえ設けられていれば、バンパー４は設けられていなくてもよい。
【００１８】
接触移動推定部１２は、接触検知センサ１１から入力された接触検知情報（ＩＤ）と、移動推定モデルに基づいて、接触によって移動ロボット１０が移動した移動量を推定する。具体的には、接触移動推定部１２は、接触検知センサ１１から入力された接触検知情報（ＩＤ）によって、どの位置に物体が接触したのかを知る。ここで、他の物体の接触によって生じる移動ロボット１０の移動は、物体が接触した位置に応じてモデル化することができる。そのため、接触移動推定部１２は、接触検知センサ１１から出力される識別情報に基づいて、接触移動推定モデルを選択し、選択した接触移動推定モデルに基づいて、物体との接触によって移動ロボット１０に生じた移動量を算出する。
【００１９】
そして、接触移動推定部１２は、算出した接触による移動ロボット１０の移動量を示す情報を、接触移動推定情報として自己位置推定部１４に出力する。なお、接触移動推定モデルは、移動ロボット１０の内部に保持されていてもよく、ネットワークを介して外部の記憶装置や他のコンピュータ装置から取得するように構成してもよい。
【００２０】
オドメトリ算出部１３は、駆動輪２の回転状態を示す物理量（回転角度、回転速度、回転量等）に基づいて、オドメトリを算出する。例えば、２つの駆動輪２の回転角度から、移動ロボット１０の座標を求めることでオドメトリを算出する。
【００２１】
例えば、図５に示すように、本実施の形態における自己位置推定に用いられる座標を、ｐ（ｘ、ｙ、θ）とする。図５において、Ｘ軸は、移動ロボット１０の進行方向を向いて右手方向である。また、Ｙ軸は、移動ロボット１０の進行方向である。また、θは、Ｙ軸に対して反時計回りの回転量である。なお、自己位置推定に用いる座標軸は、これに限られず任意の座標軸を利用することができる。
【００２２】
エンコーダ計測部１５は、駆動輪２の回転速度を算出する。エンコーダ計測部１５によって算出された駆動輪２の回転速度は、自己位置推定部１４に出力される。
【００２３】
環境センサ１６は、オドメトリ誤差を補正するために必要な移動ロボット１０の周囲の環境情報を取得する。環境センサ１６は、例えば、移動ロボット１０の周囲の障害物を認識するランドマーク認識用センサ、障害物（ランドマーク）との距離を計測する距離計測用センサ、ＧＰＳ（Ｇｒｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）等によって構成することができる。また、環境センサ１６は、これらの複数の種類のセンサを組み合わせて構成することもできる。
【００２４】
自己位置推定部１４は、環境センサ１６によって取得される移動ロボット１０の位置ｐ（ｘ、ｙ、θ）に関する情報を入力する。また、自己位置推定部１４は、オドメトリ算出部１３によって算出されたオドメトリ移動量を入力する。また、自己位置推定部１４は、接触移動推定部１２によって算出された接触による移動ロボット１０の移動量を入力する。そして、自己位置推定部１４は、入力された環境センサ１６によって取得される移動ロボット１０の位置、オドメトリ移動量、接触による移動量に基づいて、自己位置を算出する。算出された自己位置は、自己位置推定結果として出力される。
【００２５】
次に、このように構成された移動ロボット１０の動作について説明する。図６は、本発明の実施の形態に係る移動ロボット１０の処理を示すフローチャートである。ステップＳ１に示すように、はじめに、接触検知センサ１１は、他の物体が移動ロボット１０に接触したことを検知する。
【００２６】
次に、ステップＳ２に示すように、接触移動推定部１２は、接触を検知した接触検知センサ１１の識別情報（ＩＤ）及び接触移動モデルに基づいて、接触により移動ロボット１０がどのように移動したかを示す接触移動推定情報を出力する。
【００２７】
そして、ステップＳ３に示すように、自己位置推定部１４は、ステップＳ２によって推定された接触移動推定情報、オドメトリ算出部１３によって算出された移動ロボット１０のオドメトリ移動量（座標ｐ（ｘ、ｙ、θ））、及び環境センサ１６によって取得された周囲の環境情報に基づいて、自己位置を推定する。
【００２８】
次に、図６に示すステップ２及びステップＳ３の処理について、より詳細に説明する。ここで、ステップＳ２において算出される接触移動推定情報は、自己位置推定部１４によって用いられる自己位置の算出手法に合わせて種々の形態を持つ。そのため、ステップＳ３における自己位置推定部１４の処理を先に説明する。
【００２９】
本実施の形態では、自己位置推定部１４は、ＭＣＬ（Ｍｏｎｔｅ  Ｃａｒｌｏ  Ｌｏｃａｌｉｚａｔｉｏｎ）アルゴリズムを用いて自己位置推定を行うものとする。ここで、ＭＣＬとは、移動ロボット１０の位置を複数のパーティクルで表現し、最も尤度が大きいパーティクルを自己位置結果とするアルゴリズムである。
【００３０】
ここで、ＭＣＬの具体的な処理について説明する。はじめに、所定の数、例えば数百個のパーティクルをロボット位置へ散布する。この自己位置推定に用いられるパーティクルを、説明のために「自己位置推定パーティクル」と呼ぶ。この散布された自己位置推定パーティクルを、エンコーダ計測部１５によって取得されたオドメトリ移動量にガウシアンノイズを足し合わせることで移動させる。そして、環境センサ１６が取得したデータに基づいて、最も尤度が大きい自己位置推定用パーティクルを、移動ロボット１０の自己位置として決定する。
【００３１】
この自己位置推定パーティクルの散布から、自己位置の決定までの一連の処理を繰り返すことにより、オドメトリの誤差を修正する。なお、エンコーダ計測部１５によって取得されたオドメトリ移動量にガウシアンノイズを足し続けると、自己位置推定パーティクルの分布が広がり、自己位置パーティクルの示す位置が、移動ロボット１０の真位置から外れてしまうおそれがある。そこで、本実施の形態では、尤度の低い自己位置推定パーティクルについては消去し、適宜、尤度の高い自己位置推定パーティクルの周辺に散布する処理（サンプリング処理）を行うものとする。
【００３２】
次に、上記の一連の処理中に、人間や障害物等の他の物体が移動ロボット１０に接触した場合の処理について説明する。通常の動作においては、移動ロボット１０の駆動輪２には、駆動トルクが負荷されている。換言すれば、通常、駆動輪２は、負荷される駆動トルクによってロックされている。よって、他の物体が移動ロボット１０に接触すれば、移動ロボット１０は、駆動輪２をスリップさせながら、その位置が変化することとなる。このスリップ移動の様子は、物体が接触した箇所によって、一定の特徴を有している。なお、この接触による移動の様子は、空のダンボール箱を軽く蹴飛ばしたときの箱の滑り方のイメージに近い。
【００３３】
ここで、他の物体が正面の接触検知センサ１１ａによって検出された場合について、図７Ａ乃至７Ｃを用いて説明する。なお、図７Ａ乃至７Ｃにおいて、上の図は、図２の平面図に対応している。また、図７Ａ乃至７Ｃの上の図は、物体が移動ロボット１０に接触する前の状態を示している。また図７Ａ乃至７Ｃの上の図における矢印は、他の物体の接触方向を示している。一方、図７Ａ乃至７Ｃにおいて、下の図は、他の物体が移動ロボット１０に接触したことによって移動ロボット１０が移動した移動後の状態を示している。図７Ａ乃至７Ｃの下の図において、破線は移動前の移動ロボット１０の位置を示し、実線は移動ロボット１０の接触による移動後の位置を示している。
【００３４】
図７Ａの上の図に示すように、他の物体が、移動ロボット１０から見て、前面左側（接触検知センサ１１ａの左側）に接触した場合には、移動ロボット１０は、図７Ａの下の図に示すように、半時計回り（＋θ方向）に移動すると共に、物体が接触した方向と反対側（−Ｙ方向）に移動する。なお、移動ロボット１０は、右手方向（＋Ｘ方向）にわずかに移動する。
【００３５】
また、図７Ｂの上の図に示すように、他の物体が、移動ロボット１０から見て、前面の左右方向において中央（接触検知センサ１１ａの中央）に接触した場合には、移動ロボット１０は、図７Ｂの下の図に示すように、物体が接触した方向と反対側（−Ｙ方向）に移動する。なお、この場合には、移動ロボット１０は、Ｘ方向及びθ方向にはほとんど移動しない。
【００３６】
さらに、図７Ｃの上の図に示すように、他の物体が、移動ロボット１０から見て、前面右側（接触検知センサ１１ａの右側）に接触した場合、移動ロボット１０は、図７Ｃの下の図に示すように、時計回り（−θ方向）に移動すると共に、物体が接触した方向と反対側（−Ｙ方向）に移動する。なお、この場合には、移動ロボット１０は、左手方向（−Ｘ方向）にわずかに移動する。
【００３７】
次に、他の物体の接触が接触検知センサ１１ｂによって検出された場合について、図８Ａ及び８Ｂを参照して説明する。図８Ａに示すように、他の物体が、移動ロボット１０から見て、右側面の前方（接触検知センサ１１ｂ）に接触した場合、移動ロボット１０は、反時計回り（＋θ方向）に回転しながら、物体が接触した方向と反対側（−Ｘ方向）に移動する。なお、このとき移動ロボット１０は、−Ｙ方向にわずかに移動する。
【００３８】
また、図８Ｂに示すように、他の物体が、移動ロボット１０から見て、右側面の前後方向中央に接触した場合には、移動ロボット１０は、ほぼ回転せずに、物体が接触した方向と反対側（−Ｘ方向）に移動する。なお、このとき移動ロボット１０は、Ｙ方向にはほとんど移動しない。
【００３９】
なお、他の物体との接触が接触検知センサ１１ｃによって検知された場合は、図８Ａ及び８Ｂを上下方向に反転した場合と同じであるため、その説明を省略する。また、他の物体との接触が接触検知センサ１１ｄによって検知された場合には、図７Ａ乃至７Ｃを上下方向に反転した場合と同じである。また、他の物体との接触が接触検知センサ１１ｅによって検知された場合には、接触検知センサ１１ｃによって検知された場合の図を左右方向に反転した場合と同じである。さらに、他の物体との接触が接触検知センサ１１ｆによって検知された場合は、図８Ａ及び８Ｂを左右方向に反転した場合と同じである。そのため、これらの説明については省略する。
【００４０】
以上に示すように、他の物体との接触によって生じる移動ロボット１０の接触移動は、物体が接触した位置に応じてモデル化することができる。なお、他の物体との接触によって生じる移動ロボット１０のスリップ現象等による移動は、駆動輪２と床の表面状態に応じて大きく変化するため、力学モデルから確立密度関数を理論的に導き出すことは難しい。よって、本実施の形態では、試行実験を複数回行うことにより、以下に示すような、接触による移動モデル（接触移動推定パーティクル）を求めることとしている。
【００４１】
図９Ａ乃至９Ｃは、接触検知センサ１１ａによって接触が検出された場合の接触による移動パターンを、確率分布として示した確立密度関数表現である。ここで、図９Ａは、Ｘ方向における移動ロボット１０の移動量の確立密度分布であり、図９Ｂは、Ｙ方向における移動ロボット１０の移動量の確立密度分布であり、図９Ｃは、θ方向における移動ロボット１０の移動量の確立密度分布である。また、図１０Ａ乃至１０Ｃは、図９Ａ乃至９Ｃのそれぞれをパーティクル表現によって表した図である。
【００４２】
はじめに、図９Ａの分布について説明する。図７Ａに示すように、物体が移動ロボット１０の前面の左端に接触した場合には、移動ロボット１０は、＋Ｘ方向にわずかに移動する。また、図７Ｂに示すように、物体が移動ロボット１０の前面の左右方向中心に接触した場合には、移動ロボット１０は、Ｘ方向にはほとんど移動しない。さらに、図７Ｃに示すように、物体が移動ロボット１０の前面の右端に接触した場合には、移動ロボット１０は、−Ｘ方向にわずかに移動する。よって、図９Ａに示すＸ方向における確立密度関数表現は、確立分布及びパーティクル分布が＋方向及び−方向に狭く分布することになる。なお、図９Ａに示す確率密度分布をパーティクル表現としたものが図１０Ａである。そのため、図１０Ａのパーティクルの分布の外形は、図９Ａと同様の形状となる。
【００４３】
次に、図９Ｂの分布について説明する。図７Ａに示すように、物体が移動ロボット１０の前面の左端に接触した場合には、移動ロボット１０は、−Ｙ方向に移動する。また、図７Ｂに示すように、物体が移動ロボット１０の前面の左右方向中心に接触した場合には、移動ロボット１０は、−Ｙ方向に移動する。さらに、図７Ｃに示すように、物体が移動ロボット１０の前面の右端に接触した場合には、移動ロボット１０は、−Ｙ方向に移動する。よって、図９Ｂに示すＹ方向における確立密度関数表現では、分布が−方向にのみに存在することになる。なお、図９Ｂに示す確率密度分布をパーティクル表現としたものが図１０Ｂである。
【００４４】
さらに、図９Ｃの分布について説明する。図７Ａに示すように、物体が移動ロボット１０の前面の左端に接触した場合には、移動ロボット１０は、＋θ方向に移動する。また、図７Ｂに示すように、物体が移動ロボット１０の前面の左右方向中心に接触した場合には、移動ロボット１０はθ方向に移動しない。さらに、図７Ｃに示すように、物体が移動ロボット１０の前面の右端に接触した場合には、移動ロボット１０は、−θ方向に移動する。よって、図９Ｃのθ方向における確立密度関数表現及では、確立分布が＋方向及び−方向に広く分布することになる。なお、図９Ｃに示す確率密度分布をパーティクル表現としたものが図１０Ｃである。
【００４５】
これと同様に、図８Ａ及び８Ｂに示される移動パターンについては、図１１Ａ乃至１１Ｃのように示される。図１１Ａ乃至１１Ｃは、接触検知センサ１１ｂによって接触が検出された場合の移動パターンを、確率分布として示した確立密度関数表現である。また、図１２Ａ乃至１２Ｃは、そのパーティクル表現である。
【００４６】
まず、図１１Ａの分布について説明する。図８Ａに示すように、物体が移動ロボット１０の右側面の前方に接触した場合には、移動ロボット１０は、−Ｘ方向に移動する。また、図８Ｂに示すように、物体が移動ロボット１０の右側面の前後方向中央に接触した場合には、移動ロボット１０は、−Ｘ方向に移動する。よって、図１１Ａに示すＸ方向における確立密度関数表現では、分布が−Ｘ方向にのみ存在することになる。なお、図１１Ａに示す確率密度分布をパーティクル表現としたものが図１２Ａである。
【００４７】
次に、図１１Ｂの分布について説明する。図８Ａに示すように、物体が移動ロボット１０の右側面の前方に接触した場合には、移動ロボット１０は、−Ｙ方向にわずかに移動する。また、図８Ｂに示すように、物体が移動ロボット１０の右側面の前後方向中央に接触した場合には、移動ロボット１０は、Ｙ方向にほとんど移動しない。よって、図１１Ｂに示すＹ方向における確立密度関数表現は、−Ｙ方向にのみ狭く分布することになる。なお、図１１Ｂに示す確率密度分布をパーティクル表現としたものが図１２Ｂである。
【００４８】
さらに、図１１Ｃの分布について説明する。図８Ａに示すように、物体が移動ロボット１０の右側面の前方に接触した場合には、移動ロボット１０は、＋θ方向に移動する。また、図８Ｂに示すように、物体が移動ロボット１０の右側面の前後方向中央に接触した場合には、移動ロボット１０は、θ方向にほとんど移動しない。よって、図１１Ｃに示すθ方向における確立密度関数表現では、＋θ方向にのみ分布することになる。なお、図１１Ｃに示す確率密度分布をパーティクル表現としたものが図１２Ｃである。
【００４９】
このように、接触によって生じる移動パターンは、物体が移動ロボット１０に接触する位置に応じて異なり、その移動パターンは、上述のように確立密度関数表現及びパーティクル表現によって表すことができる。
【００５０】
そのため、複数の位置に設置された接触検知センサ１１ａ〜１１ｆによって、物体が接触した位置を検出することにより、接触による移動ロボット１０の移動パターンを、確率密度分布表現やパーティクル表現から推定することができる。
【００５１】
ここで、図１０Ａ乃至１０Ｃや、図１２Ａ乃至１２Ｃのパーティクル表現におけるパーティクルは、図１３に示すようなテーブルとして保持されている。なお、この接触による移動を示すパーティクルを、接触移動パーティクルと呼ぶ。図１３に示されているように、それぞれの接触移動パーティクルには、識別情報としてパーティクル番号が付与されている。例えば、図１３に示すテーブルでは、接触移動パーティクルの数を２００としている。
【００５２】
次に、このように図１３に示される接触移動パーティクルの作成方法について説明する。図１４は、本発明の実施の形態に係る移動ロボットにおいて用いられる接触移動パーティクルの作成処理を示すフローチャートである。
【００５３】
ステップＳ１１に示すように、自己位置推定パーティクルの数をＮ、接触移動パーティクルの数をＭに設定する。ステップＳ１２において、以下の式を満たす乱数Ｒを発生させる。
【数１】
2012256209.tif 000003
【００５４】
ステップＳ１３において、Ｒ番目の接触移動パーティクルの座標値を、図１３に示されるテーブルから取得する。そして、ステップＳ１５及びＳ１６に示すように、この処理を、ループ回数がＮに至るまで繰り返す。これにより、Ｎ個の座標値の集合が得られる。
【００５５】
次に、図６のステップＳ３の処理、すなわち、接触移動パーティクル、オドメトリ移動量、環境センサによって取得されたデータに基づいて、自己位置を推定する処理について、さらに詳細に説明する。図１５は、接触移動情報に基づいて、自己位置を推定する処理を示すフローチャートである。ここで、ステップＳ２によって取得された接触移動推定情報の座標値を（ｘＳ、ｙＳ、θＳ）、自己位置推定パーティクルの座標値を（ｘＬ、ｙＬ、θＬ）とする。これにより、接触移動後の自己位置推定パーティクルの位置は、（ｘＳ＋ｘＬ、ｙＳ＋ｙＬ、θＳ＋θＬ）と示すことができる。
【００５６】
前述のステップＳ１１で説明したように（図１４）、自己位置推定パーティクルの数は、Ｎである。ステップＳ２１において、補正対象の自己位置推定パーティクルのパーティクル番号をｉとする。ステップＳ２２において、パーティクル番号ｉに初期値（ｉ＝１）を設定する。ステップＳ２３において、接触移動推定情報のｉ番目のパーティクル番号の座標値（ｘＳ、ｙＳ、θＳ）の移動量だけ、ｉ番目の自己位置推定パーティクルを移動させる。これにより、移動後の自己位置推定パーティクルの座標値は、（ｘＳ＋ｘＬ、ｙＳ＋ｙＬ、θＳ＋θＬ）となる。
【００５７】
このステップＳ２３の処理を、ループ回数がＮに至るまで、ｉを１ずつカウントアップさせながら繰り返す（ステップＳ２４、Ｓ２５）。これにより、Ｎ個の自己位置推定パーティクルの座標値に、接触による移動量を加算することができる。
【００５８】
次に、このように構成された移動ロボットの効果について説明する。図６に示すステップＳ３の処理によって、自己位置推定パーティクルを、接触移動推定情報（接触移動パーティクルの位置情報）を用いて、接触移動後の位置に修正する。これにより、移動ロボット１０に、物体が接触した場合であっても、接触移動後の位置補正を行うことができる。これにより、他の物体との接触によって、車輪が空転、横滑りした場合であっても、接触による移動量を自己位置推定に反映させることができる。これにより、自己位置推定の精度を向上させることができる。
【００５９】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００６０】
例えば、接触検知センサ１１は、他の物体が移動ロボット１０に接触したか否かを検知する機能を有していれば、どのようなセンサであってもよい。例えば、接触検知センサ１１は、バンパーセンサ、力センサをはじめとして、移動ロボット１０他の物体と接触したときに発生する摩擦熱を検出する温度センサや、移動ロボット１０他の物体と接触したときに生じる音を検出する音センサ等、種々のセンサを用いることができる。
【００６１】
また、接触検知センサ１１は、これらの複数の種類のセンサを組み合わせて構成してもよい。また、接触検知センサ１１は、他の物体が移動ロボット１０に接触したか否かのみを検出するセンサだけでなく、どの程度の接触であったかを検出するセンサとして構成することができる。例えば、移動ロボット１０と他の物体が接触した面積や、移動ロボット１０と他の物体が接触した強さ（接触した圧力）を検出するように構成することができる。これにより、より正確に、接触によって生じたロボットの移動量を推定することができる。
【符号の説明】
【００６２】
１０  移動ロボット
１１  接触検知センサ
１２  接触移動推定部
１３  オドメトリ算出部
１４  自己位置推定部
１５  エンコーダ計測部
１６  環境センサ
４ａ-４ｆ  バンパー部材
１１ａ-１１ｆ  接触検知センサ
【図１】
2012256209.tif 000004
【図２】
2012256209.tif 000005
【図３】
2012256209.tif 000006
【図４】
2012256209.tif 000007
【図５】
2012256209.tif 000008
【図６】
2012256209.tif 000009
【図７Ａ】
2012256209.tif 000010
【図７Ｂ】
2012256209.tif 000011
【図７Ｃ】
2012256209.tif 000012
【図８Ａ】
2012256209.tif 000013
【図８Ｂ】
2012256209.tif 000014
【図９Ａ】
2012256209.tif 000015
【図９Ｂ】
2012256209.tif 000016
【図９Ｃ】
2012256209.tif 000017
【図１０Ａ】
2012256209.tif 000018
【図１０Ｂ】
2012256209.tif 000019
【図１０Ｃ】
2012256209.tif 000020
【図１１Ａ】
2012256209.tif 000021
【図１１Ｂ】
2012256209.tif 000022
【図１１Ｃ】
2012256209.tif 000023
【図１２Ａ】
2012256209.tif 000024
【図１２Ｂ】
2012256209.tif 000025
【図１２Ｃ】
2012256209.tif 000026
【図１３】
2012256209.tif 000027
【図１４】
2012256209.tif 000028
【図１５】
2012256209.tif 000029