移動ロボットが他の物体に接触したことを検出する接触検知センサと、前記接触検知センサの検出結果に応じた、接触による移動を推定した接触移動推定モデルに基づいて、接触による前記移動ロボットの移動量を推定する移動量推定部と、前記移動量推定部によって推定された移動量に基づいて、自己位置を推定する自己位置推定部を有する移動ロボット。ここで、移動ロボットに人や障害物等の他の物体が接触した場合には、移動ロボットに設けられている車輪が空転、若しくは横滑り等が発生することがある。しかしながら、従来の移動ロボットでは、このような他の物体との接触による移動ロボットの移動については、なんら考慮されていなかった。そのため、従来の移動ロボットでは、他の物体が移動ロボットに接触した場合、オドメトリと実際の移動ロボットの真の位置に修正できないほどの差異が生じれば、真の自己位置を推定することができないという問題がある。本発明は、このような問題点に対してなされたものであり、他の物体に接触したことによる移動ロボットの移動を、自己位置推定に反映することができる移動ロボットを提供することを目的とする。本発明に係る移動ロボットの一態様は、移動ロボットが他の物体に接触したことを検出する接触検知センサと、前記接触検知センサの検出結果に応じた、接触による移動を推定した接触移動推定モデルに基づいて、接触による前記移動ロボットの移動量を推定する移動量推定部と、前記移動量推定部によって推定された移動量に基づいて、自己位置を推定する自己位置推定部を有することを特徴とする。上記の移動ロボットの一態様によれば、移動ロボットが他の物体に接触したことを接触センサにより検出し、接触センサの検出結果に応じた接触移動推定モデルを用いて、接触による前記移動ロボットの移動を推定することによって、他の物体との接触による移動ロボットの移動を、自己位置推定に反映させることができる。本発明に係る移動ロボットによれば、移動ロボットが他の物体に接触したことによる移動を自己位置推定に反映させることができ、自己位置推定の精度を向上させることができる。実施の形態.以下、図面を参照して本発明の実施の形態について説明する。図1は、本発明の実施の形態に係る移動ロボット10の全体構成を示す斜視図である。また、図2は、移動ロボット10の平面図であり、図3は、移動ロボット10の左側面図である。なお、移動ロボット10は、左右対称に構成されているため、右側面図は、図3の左側面図と左右対称に現れる。説明のため、移動ロボット10の進行方向側の面を正面、進行方向と逆方向側の面を背面、進行方向に向かって右側を右側面、左側を左側面と呼ぶ。図1及び図3に示すように、移動ロボット10は、本体1、駆動輪2、補助輪3及びバンパー4を備えている。駆動輪2は、本体1の右側面及び左側面に1つずつ設けられている。両側面の駆動輪2は、図示しない制御部によって駆動制御されている。補助輪3は、本体1の正面側及び背面側に1つずつ設けられている。補助輪3は、駆動輪2のように駆動制御されておらず、移動ロボット10の移動に追従して回転する。なお、本体1の形状や、駆動輪2及び補助輪3の数及び配置等については、任意の設定することが可能である。バンパー4は、本体1の外周を囲むように配置されている。バンパー4は、本体1よりも外側に突出するように設けられている。バンパー4は、図2に示すように、複数のバンパー部材4a~4fを備えている。具体的には、バンパー部材4aは、移動ロボット10の正面に設置されている。バンパー部材4bは、右側面の前方に設置され、バンパー4cは、右側面の後方に設置されている。また、バンパー部材4dは、移動ロボット10の背面に設置されている。バンパー部材4eは、左側面の後方に設置され、バンパー部材4fは左側面の前方に設置されている。なお、バンパー部材の配置や数については、任意に設計することができる。例えば、バンパー部材は、本体1の上面や底面に設けられていてもよい。また、バンパー部材は、1個であってもよく、6個以上であってもよい。次に、本実施の形態に係る移動ロボット10の構成について更に説明する。図4は、本発明の移動ロボット10の構成を示す機能ブロック図である。この移動ロボット10は、接触検知センサ11、接触移動推定部12、オドメトリ算出部13、自己位置推定部14、エンコーダ計測部15、及び環境センサ16を備えている。接触検知センサ11は、他の物体人や障害物等が移動ロボット10に接触したことを検知する。接触検知センサ11は、バンパー部材4a~4fのそれぞれに対応するように設けられている。実施の形態では、接触検知センサ11は、6個のバンパー部材4a~4f毎に設けられている。説明のため、図2に示すように、それぞれのバンパー部材4aに対応する接触検知センサを、11a~11fとする。例えば、接触検知センサ11aにより、バンパー部材4aに他の物体が接触したことを検知し、接触検知センサ11bにより、バンパー部材11bに他の物体が接触したことを検知する。接触検知センサ11は、自己に対応するバンパー部材4a~4fに他の物体が接触すると、自己に割り当てられた識別情報ID:identificationを出力することにより、接触を検知したことを示す接触検知情報を出力する。この接触検知情報は、接触移動推定部12に入力される。なお、接触検知センサ11は、移動ロボット10が他の物体に接触したことを検出することができればよく、1つの移動ロボット10に対し、少なくとも1つ設けられていればよい。接触検知センサ11を1つだけ設けた場合には、接触検知センサ11からは、識別情報を出力する必要はなく、接触を検知したことを示す接触検知情報を接触移動推定部12に出力すればよい。なお、上述においては、バンパー部材4a~4fと接触検知センサ11a~11fは、1対1に対応するように設けられている。しかしながら、バンパー部材4a~4fと接触検知センサ11は、必ずしも1対1に対応する必要はない。例えば、1つのバンパー部材の接触を、2以上の接触検知センサにより検出するよう構成してもよい。逆に、2以上のバンパー部材に他の物体が接触したことを、1つの接触検知センサによって検出してもよい。また、他の物体が移動ロボット10に接触したことを検知することができれば、すなわち、接触検知センサ11さえ設けられていれば、バンパー4は設けられていなくてもよい。接触移動推定部12は、接触検知センサ11から入力された接触検知情報IDと、移動推定モデルに基づいて、接触によって移動ロボット10が移動した移動量を推定する。具体的には、接触移動推定部12は、接触検知センサ11から入力された接触検知情報IDによって、どの位置に物体が接触したのかを知る。ここで、他の物体の接触によって生じる移動ロボット10の移動は、物体が接触した位置に応じてモデル化することができる。そのため、接触移動推定部12は、接触検知センサ11から出力される識別情報に基づいて、接触移動推定モデルを選択し、選択した接触移動推定モデルに基づいて、物体との接触によって移動ロボット10に生じた移動量を算出する。そして、接触移動推定部12は、算出した接触による移動ロボット10の移動量を示す情報を、接触移動推定情報として自己位置推定部14に出力する。なお、接触移動推定モデルは、移動ロボット10の内部に保持されていてもよく、ネットワークを介して外部の記憶装置や他のコンピュータ装置から取得するように構成してもよい。オドメトリ算出部13は、駆動輪2の回転状態を示す物理量回転角度、回転速度、回転量等に基づいて、オドメトリを算出する。例えば、2つの駆動輪2の回転角度から、移動ロボット10の座標を求めることでオドメトリを算出する。例えば、図5に示すように、本実施の形態における自己位置推定に用いられる座標を、px、y、θとする。図5において、X軸は、移動ロボット10の進行方向を向いて右手方向である。また、Y軸は、移動ロボット10の進行方向である。また、θは、Y軸に対して反時計回りの回転量である。なお、自己位置推定に用いる座標軸は、これに限られず任意の座標軸を利用することができる。エンコーダ計測部15は、駆動輪2の回転速度を算出する。エンコーダ計測部15によって算出された駆動輪2の回転速度は、自己位置推定部14に出力される。環境センサ16は、オドメトリ誤差を補正するために必要な移動ロボット10の周囲の環境情報を取得する。環境センサ16は、例えば、移動ロボット10の周囲の障害物を認識するランドマーク認識用センサ、障害物ランドマークとの距離を計測する距離計測用センサ、GPSGrobalPositioningSystem等によって構成することができる。また、環境センサ16は、これらの複数の種類のセンサを組み合わせて構成することもできる。自己位置推定部14は、環境センサ16によって取得される移動ロボット10の位置px、y、θに関する情報を入力する。また、自己位置推定部14は、オドメトリ算出部13によって算出されたオドメトリ移動量を入力する。また、自己位置推定部14は、接触移動推定部12によって算出された接触による移動ロボット10の移動量を入力する。そして、自己位置推定部14は、入力された環境センサ16によって取得される移動ロボット10の位置、オドメトリ移動量、接触による移動量に基づいて、自己位置を算出する。算出された自己位置は、自己位置推定結果として出力される。次に、このように構成された移動ロボット10の動作について説明する。図6は、本発明の実施の形態に係る移動ロボット10の処理を示すフローチャートである。ステップS1に示すように、はじめに、接触検知センサ11は、他の物体が移動ロボット10に接触したことを検知する。次に、ステップS2に示すように、接触移動推定部12は、接触を検知した接触検知センサ11の識別情報ID及び接触移動モデルに基づいて、接触により移動ロボット10がどのように移動したかを示す接触移動推定情報を出力する。そして、ステップS3に示すように、自己位置推定部14は、ステップS2によって推定された接触移動推定情報、オドメトリ算出部13によって算出された移動ロボット10のオドメトリ移動量座標px、y、θ、及び環境センサ16によって取得された周囲の環境情報に基づいて、自己位置を推定する。次に、図6に示すステップ2及びステップS3の処理について、より詳細に説明する。ここで、ステップS2において算出される接触移動推定情報は、自己位置推定部14によって用いられる自己位置の算出手法に合わせて種々の形態を持つ。そのため、ステップS3における自己位置推定部14の処理を先に説明する。本実施の形態では、自己位置推定部14は、MCLMonteCarloLocalizationアルゴリズムを用いて自己位置推定を行うものとする。ここで、MCLとは、移動ロボット10の位置を複数のパーティクルで表現し、最も尤度が大きいパーティクルを自己位置結果とするアルゴリズムである。ここで、MCLの具体的な処理について説明する。はじめに、所定の数、例えば数百個のパーティクルをロボット位置へ散布する。この自己位置推定に用いられるパーティクルを、説明のために自己位置推定パーティクルと呼ぶ。この散布された自己位置推定パーティクルを、エンコーダ計測部15によって取得されたオドメトリ移動量にガウシアンノイズを足し合わせることで移動させる。そして、環境センサ16が取得したデータに基づいて、最も尤度が大きい自己位置推定用パーティクルを、移動ロボット10の自己位置として決定する。この自己位置推定パーティクルの散布から、自己位置の決定までの一連の処理を繰り返すことにより、オドメトリの誤差を修正する。なお、エンコーダ計測部15によって取得されたオドメトリ移動量にガウシアンノイズを足し続けると、自己位置推定パーティクルの分布が広がり、自己位置パーティクルの示す位置が、移動ロボット10の真位置から外れてしまうおそれがある。そこで、本実施の形態では、尤度の低い自己位置推定パーティクルについては消去し、適宜、尤度の高い自己位置推定パーティクルの周辺に散布する処理サンプリング処理を行うものとする。次に、上記の一連の処理中に、人間や障害物等の他の物体が移動ロボット10に接触した場合の処理について説明する。通常の動作においては、移動ロボット10の駆動輪2には、駆動トルクが負荷されている。換言すれば、通常、駆動輪2は、負荷される駆動トルクによってロックされている。よって、他の物体が移動ロボット10に接触すれば、移動ロボット10は、駆動輪2をスリップさせながら、その位置が変化することとなる。このスリップ移動の様子は、物体が接触した箇所によって、一定の特徴を有している。なお、この接触による移動の様子は、空のダンボール箱を軽く蹴飛ばしたときの箱の滑り方のイメージに近い。ここで、他の物体が正面の接触検知センサ11aによって検出された場合について、図7A乃至7Cを用いて説明する。なお、図7A乃至7Cにおいて、上の図は、図2の平面図に対応している。また、図7A乃至7Cの上の図は、物体が移動ロボット10に接触する前の状態を示している。また図7A乃至7Cの上の図における矢印は、他の物体の接触方向を示している。一方、図7A乃至7Cにおいて、下の図は、他の物体が移動ロボット10に接触したことによって移動ロボット10が移動した移動後の状態を示している。図7A乃至7Cの下の図において、破線は移動前の移動ロボット10の位置を示し、実線は移動ロボット10の接触による移動後の位置を示している。図7Aの上の図に示すように、他の物体が、移動ロボット10から見て、前面左側接触検知センサ11aの左側に接触した場合には、移動ロボット10は、図7Aの下の図に示すように、半時計回りθ方向に移動すると共に、物体が接触した方向と反対側-Y方向に移動する。なお、移動ロボット10は、右手方向X方向にわずかに移動する。また、図7Bの上の図に示すように、他の物体が、移動ロボット10から見て、前面の左右方向において中央接触検知センサ11aの中央に接触した場合には、移動ロボット10は、図7Bの下の図に示すように、物体が接触した方向と反対側-Y方向に移動する。なお、この場合には、移動ロボット10は、X方向及びθ方向にはほとんど移動しない。さらに、図7Cの上の図に示すように、他の物体が、移動ロボット10から見て、前面右側接触検知センサ11aの右側に接触した場合、移動ロボット10は、図7Cの下の図に示すように、時計回り-θ方向に移動すると共に、物体が接触した方向と反対側-Y方向に移動する。なお、この場合には、移動ロボット10は、左手方向-X方向にわずかに移動する。次に、他の物体の接触が接触検知センサ11bによって検出された場合について、図8A及び8Bを参照して説明する。図8Aに示すように、他の物体が、移動ロボット10から見て、右側面の前方接触検知センサ11bに接触した場合、移動ロボット10は、反時計回りθ方向に回転しながら、物体が接触した方向と反対側-X方向に移動する。なお、このとき移動ロボット10は、-Y方向にわずかに移動する。また、図8Bに示すように、他の物体が、移動ロボット10から見て、右側面の前後方向中央に接触した場合には、移動ロボット10は、ほぼ回転せずに、物体が接触した方向と反対側-X方向に移動する。なお、このとき移動ロボット10は、Y方向にはほとんど移動しない。なお、他の物体との接触が接触検知センサ11cによって検知された場合は、図8A及び8Bを上下方向に反転した場合と同じであるため、その説明を省略する。また、他の物体との接触が接触検知センサ11dによって検知された場合には、図7A乃至7Cを上下方向に反転した場合と同じである。また、他の物体との接触が接触検知センサ11eによって検知された場合には、接触検知センサ11cによって検知された場合の図を左右方向に反転した場合と同じである。さらに、他の物体との接触が接触検知センサ11fによって検知された場合は、図8A及び8Bを左右方向に反転した場合と同じである。そのため、これらの説明については省略する。以上に示すように、他の物体との接触によって生じる移動ロボット10の接触移動は、物体が接触した位置に応じてモデル化することができる。なお、他の物体との接触によって生じる移動ロボット10のスリップ現象等による移動は、駆動輪2と床の表面状態に応じて大きく変化するため、力学モデルから確立密度関数を理論的に導き出すことは難しい。よって、本実施の形態では、試行実験を複数回行うことにより、以下に示すような、接触による移動モデル接触移動推定パーティクルを求めることとしている。図9A乃至9Cは、接触検知センサ11aによって接触が検出された場合の接触による移動パターンを、確率分布として示した確立密度関数表現である。ここで、図9Aは、X方向における移動ロボット10の移動量の確立密度分布であり、図9Bは、Y方向における移動ロボット10の移動量の確立密度分布であり、図9Cは、θ方向における移動ロボット10の移動量の確立密度分布である。また、図10A乃至10Cは、図9A乃至9Cのそれぞれをパーティクル表現によって表した図である。はじめに、図9Aの分布について説明する。図7Aに示すように、物体が移動ロボット10の前面の左端に接触した場合には、移動ロボット10は、X方向にわずかに移動する。また、図7Bに示すように、物体が移動ロボット10の前面の左右方向中心に接触した場合には、移動ロボット10は、X方向にはほとんど移動しない。さらに、図7Cに示すように、物体が移動ロボット10の前面の右端に接触した場合には、移動ロボット10は、-X方向にわずかに移動する。よって、図9Aに示すX方向における確立密度関数表現は、確立分布及びパーティクル分布が方向及び-方向に狭く分布することになる。なお、図9Aに示す確率密度分布をパーティクル表現としたものが図10Aである。そのため、図10Aのパーティクルの分布の外形は、図9Aと同様の形状となる。次に、図9Bの分布について説明する。図7Aに示すように、物体が移動ロボット10の前面の左端に接触した場合には、移動ロボット10は、-Y方向に移動する。また、図7Bに示すように、物体が移動ロボット10の前面の左右方向中心に接触した場合には、移動ロボット10は、-Y方向に移動する。さらに、図7Cに示すように、物体が移動ロボット10の前面の右端に接触した場合には、移動ロボット10は、-Y方向に移動する。よって、図9Bに示すY方向における確立密度関数表現では、分布が-方向にのみに存在することになる。なお、図9Bに示す確率密度分布をパーティクル表現としたものが図10Bである。さらに、図9Cの分布について説明する。図7Aに示すように、物体が移動ロボット10の前面の左端に接触した場合には、移動ロボット10は、θ方向に移動する。また、図7Bに示すように、物体が移動ロボット10の前面の左右方向中心に接触した場合には、移動ロボット10はθ方向に移動しない。さらに、図7Cに示すように、物体が移動ロボット10の前面の右端に接触した場合には、移動ロボット10は、-θ方向に移動する。よって、図9Cのθ方向における確立密度関数表現及では、確立分布が方向及び-方向に広く分布することになる。なお、図9Cに示す確率密度分布をパーティクル表現としたものが図10Cである。これと同様に、図8A及び8Bに示される移動パターンについては、図11A乃至11Cのように示される。図11A乃至11Cは、接触検知センサ11bによって接触が検出された場合の移動パターンを、確率分布として示した確立密度関数表現である。また、図12A乃至12Cは、そのパーティクル表現である。まず、図11Aの分布について説明する。図8Aに示すように、物体が移動ロボット10の右側面の前方に接触した場合には、移動ロボット10は、-X方向に移動する。また、図8Bに示すように、物体が移動ロボット10の右側面の前後方向中央に接触した場合には、移動ロボット10は、-X方向に移動する。よって、図11Aに示すX方向における確立密度関数表現では、分布が-X方向にのみ存在することになる。なお、図11Aに示す確率密度分布をパーティクル表現としたものが図12Aである。次に、図11Bの分布について説明する。図8Aに示すように、物体が移動ロボット10の右側面の前方に接触した場合には、移動ロボット10は、-Y方向にわずかに移動する。また、図8Bに示すように、物体が移動ロボット10の右側面の前後方向中央に接触した場合には、移動ロボット10は、Y方向にほとんど移動しない。よって、図11Bに示すY方向における確立密度関数表現は、-Y方向にのみ狭く分布することになる。なお、図11Bに示す確率密度分布をパーティクル表現としたものが図12Bである。さらに、図11Cの分布について説明する。図8Aに示すように、物体が移動ロボット10の右側面の前方に接触した場合には、移動ロボット10は、θ方向に移動する。また、図8Bに示すように、物体が移動ロボット10の右側面の前後方向中央に接触した場合には、移動ロボット10は、θ方向にほとんど移動しない。よって、図11Cに示すθ方向における確立密度関数表現では、θ方向にのみ分布することになる。なお、図11Cに示す確率密度分布をパーティクル表現としたものが図12Cである。このように、接触によって生じる移動パターンは、物体が移動ロボット10に接触する位置に応じて異なり、その移動パターンは、上述のように確立密度関数表現及びパーティクル表現によって表すことができる。そのため、複数の位置に設置された接触検知センサ11a~11fによって、物体が接触した位置を検出することにより、接触による移動ロボット10の移動パターンを、確率密度分布表現やパーティクル表現から推定することができる。ここで、図10A乃至10Cや、図12A乃至12Cのパーティクル表現におけるパーティクルは、図13に示すようなテーブルとして保持されている。なお、この接触による移動を示すパーティクルを、接触移動パーティクルと呼ぶ。図13に示されているように、それぞれの接触移動パーティクルには、識別情報としてパーティクル番号が付与されている。例えば、図13に示すテーブルでは、接触移動パーティクルの数を200としている。次に、このように図13に示される接触移動パーティクルの作成方法について説明する。図14は、本発明の実施の形態に係る移動ロボットにおいて用いられる接触移動パーティクルの作成処理を示すフローチャートである。ステップS11に示すように、自己位置推定パーティクルの数をN、接触移動パーティクルの数をMに設定する。ステップS12において、以下の式を満たす乱数Rを発生させる。ステップS13において、R番目の接触移動パーティクルの座標値を、図13に示されるテーブルから取得する。そして、ステップS15及びS16に示すように、この処理を、ループ回数がNに至るまで繰り返す。これにより、N個の座標値の集合が得られる。次に、図6のステップS3の処理、すなわち、接触移動パーティクル、オドメトリ移動量、環境センサによって取得されたデータに基づいて、自己位置を推定する処理について、さらに詳細に説明する。図15は、接触移動情報に基づいて、自己位置を推定する処理を示すフローチャートである。ここで、ステップS2によって取得された接触移動推定情報の座標値をxS、yS、θS、自己位置推定パーティクルの座標値をxL、yL、θLとする。これにより、接触移動後の自己位置推定パーティクルの位置は、xSxL、ySyL、θSθLと示すことができる。前述のステップS11で説明したように図14、自己位置推定パーティクルの数は、Nである。ステップS21において、補正対象の自己位置推定パーティクルのパーティクル番号をiとする。ステップS22において、パーティクル番号iに初期値i=1を設定する。ステップS23において、接触移動推定情報のi番目のパーティクル番号の座標値xS、yS、θSの移動量だけ、i番目の自己位置推定パーティクルを移動させる。これにより、移動後の自己位置推定パーティクルの座標値は、xSxL、ySyL、θSθLとなる。このステップS23の処理を、ループ回数がNに至るまで、iを1ずつカウントアップさせながら繰り返すステップS24、S25。これにより、N個の自己位置推定パーティクルの座標値に、接触による移動量を加算することができる。次に、このように構成された移動ロボットの効果について説明する。図6に示すステップS3の処理によって、自己位置推定パーティクルを、接触移動推定情報接触移動パーティクルの位置情報を用いて、接触移動後の位置に修正する。これにより、移動ロボット10に、物体が接触した場合であっても、接触移動後の位置補正を行うことができる。これにより、他の物体との接触によって、車輪が空転、横滑りした場合であっても、接触による移動量を自己位置推定に反映させることができる。これにより、自己位置推定の精度を向上させることができる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、接触検知センサ11は、他の物体が移動ロボット10に接触したか否かを検知する機能を有していれば、どのようなセンサであってもよい。例えば、接触検知センサ11は、バンパーセンサ、力センサをはじめとして、移動ロボット10他の物体と接触したときに発生する摩擦熱を検出する温度センサや、移動ロボット10他の物体と接触したときに生じる音を検出する音センサ等、種々のセンサを用いることができる。また、接触検知センサ11は、これらの複数の種類のセンサを組み合わせて構成してもよい。また、接触検知センサ11は、他の物体が移動ロボット10に接触したか否かのみを検出するセンサだけでなく、どの程度の接触であったかを検出するセンサとして構成することができる。例えば、移動ロボット10と他の物体が接触した面積や、移動ロボット10と他の物体が接触した強さ接触した圧力を検出するように構成することができる。これにより、より正確に、接触によって生じたロボットの移動量を推定することができる。