(57)【要約】【課題】高価なセンサを用いることなく、移動ロボットの周囲に存在する障害物をより効率的に検知することができる移動ロボットおよび移動ロボット制御システムを提供することである。【解決手段】移動ロボット１００は、移動ロボットを移動させる移動機構と、複数の第１の距離取得手段１０６とを含む。複数の第１の距離取得手段１０６の各々は、複数の測定方向に位置する障害物までの測定距離を取得する。複数の第１の距離取得手段１０６は、所定時間毎に同期して測定方向を切り替える。移動ロボットは、第１の距離取得手段の間に第１の距離取得手段の測定可能レンジよりも短い第２の距離取得手段１２６を含む。【選択図】図５
2010009371.tif 000002
【特許請求の範囲】
【請求項１】
移動ロボットであって、
前記移動ロボットを移動させる移動機構と、
複数の第１の距離取得手段とを含み、
前記複数の第１の距離取得手段の各々は、複数の測定方向に位置する障害物までの測定距離を取得し、
前記複数の第１の距離取得手段は、所定時間毎に同期して前記測定方向を切り替える、移動ロボット。
【請求項２】
前記複数の第１の距離取得手段は、前記移動ロボットの側面に配置され、
前記複数の第１の距離取得手段の各々は、
複数の方向に向けて赤外線を発するエミッタと、
前記赤外線の反射光を受光するディテクタとを含み、
前記エミッタは、前記所定時間毎に赤外線を発する方向を切り替える、請求項１に記載の移動ロボット。
【請求項３】
前記移動ロボットの側面に配置される複数の第２の距離取得手段をさらに含み、
前記第２の距離取得手段は、
前記第１の距離取得手段の間に配置され、
前記移動ロボット近傍の障害物までの測定距離を取得し、
前記第２の距離取得手段の測定可能レンジは、前記第１の距離取得手段の測定可能レンジよりも短い、請求項１または２に記載の移動ロボット。
【請求項４】
前記移動ロボットは、前記複数の第１の距離取得手段として、
前記移動ロボットの前面に配置される３個の前記第１の距離取得手段と、
前記移動ロボットの右面に配置される１個の前記第１の距離取得手段と、
前記移動ロボットの左面に配置される１個の前記第１の距離取得手段と、
前記移動ロボットの背面に配置される３個の前記第１の距離取得手段とを含む、請求項１から３のいずれか１項に記載の移動ロボット。
【請求項５】
請求項１から４のいずれか１項に記載の移動ロボットを制御するための移動ロボット制御システムであって、
サーバ装置を備え、
前記移動ロボットは、前記第１および第２の距離取得手段のそれぞれによって取得された測定距離を前記サーバ装置へと送信する第１の送信手段をさらに含み、
前記サーバ装置は、
前記測定距離のそれぞれが所定の距離未満であるか否かを判断する判断手段と、
前記測定距離のいずれかが前記所定の距離未満である場合に、前記移動ロボットに所定の動作命令を送信する第２の送信手段とを含み、
前記移動ロボットは、前記所定の動作命令に基づいて所定の動作を実行する、移動ロボット制御システム。
【請求項６】
前記所定の動作命令は、前記移動ロボットの移動を停止する旨の命令である、請求項５に記載の移動ロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、周囲に存在する障害物を検知することができる移動ロボットおよび移動ロボット制御システムに関し、特に、安価なセンサを用いて周囲の障害物を検知することができる移動ロボットおよび移動ロボット制御システムに関する。
【背景技術】
【０００２】
移動ロボットがロバストに自律移動を行うためには、逐次、移動ロボットもしくは移動ロボットの制御装置が周囲の移動環境を把握しておく必要がある。近年では、移動ロボットが移動環境を把握するための手法として、赤外線ビームを機械的に回転させて物体までの距離を連続的に測定する測域センサ（スキャナ型レンジセンサ）などを利用することによって、移動ロボットの周囲に存在する障害物を検知する構成が知られている。
【０００３】
たとえば、特開２００５−２２１３３３号公報（特許文献１）には、床と平行移動するロボット類に搭載されるＡＭ変調方式の２Ｄレンジセンサが開示されている。特開２００５−２２１３３３号公報（特許文献１）によると、レンジセンサは、床と非平行な所定の傾斜角度で投射光をスキャニングする光学系と、回転ミラーの回転速度を可変に制御する回転制御回路を備え、複数の同種レンジセンサにおける回転ミラーの回転速度、スキャニング時間を相違させることで、１スキャン時に１回相互干渉が発生しても、２回目以降のスキャニング時での発生を抑制して、事実上に相互干渉による誤動作を防止する。
【特許文献１】特開２００５−２２１３３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような測域センサ（スキャナ型レンジセンサ）は、他のセンサ、たとえば赤外線を利用した測距センサなどと比較して価格が高い。また、測域センサは、他のセンサと比較して重量も大きい。そのため、測域センサを、小型の移動ロボットなどに搭載することは困難である。
【０００５】
この発明は、かかる問題を解決するためになされたものであり、その目的は、高価なセンサを用いることなく、移動ロボットの周囲に存在する障害物をより効率的に検知することができる移動ロボットおよび移動ロボット制御システムを提供することである。
【課題を解決するための手段】
【０００６】
この発明のある局面に従うと、移動ロボットが提供される。移動ロボットは、移動ロボットを移動させる移動機構と、複数の第１の距離取得手段とを含む。複数の第１の距離取得手段の各々は、複数の測定方向に位置する障害物までの測定距離を取得する。複数の第１の距離取得手段は、所定時間毎に同期して測定方向を切り替える。
【０００７】
好ましくは、複数の第１の距離取得手段は、移動ロボットの側面に配置される。複数の第１の距離取得手段の各々は、複数の方向に向けて赤外線を発するエミッタと、赤外線の反射光を受光するディテクタとを含む。エミッタは、所定時間毎に赤外線を発する方向を切り替える。
【０００８】
好ましくは、移動ロボットは、移動ロボットの側面に配置される複数の第２の距離取得手段をさらに含む。第２の距離取得手段は、第１の距離取得手段の間に配置され、移動ロボット近傍の障害物までの測定距離を取得する。第２の距離取得手段の測定可能レンジは、第１の距離取得手段の測定可能レンジよりも短い。
【０００９】
好ましくは、移動ロボットは、複数の第１の距離取得手段として、移動ロボットの前面に配置される３個の第１の距離取得手段と、移動ロボットの右面に配置される１個の第１の距離取得手段と、移動ロボットの左面に配置される１個の第１の距離取得手段と、移動ロボットの背面に配置される３個の第１の距離取得手段とを含む。
【００１０】
この発明の別の局面に従うと、上記の移動ロボットを制御するための移動ロボット制御システムが提供される。移動ロボット制御システムは、サーバ装置を備える。移動ロボットは、第１および第２の距離取得手段のそれぞれによって取得された測定距離をサーバ装置へと送信する第１の送信手段をさらに含む。サーバ装置は、測定距離のそれぞれが所定の距離未満であるか否かを判断する判断手段と、測定距離のいずれかが所定の距離未満である場合に、移動ロボットに所定の動作命令を送信する第２の送信手段とを含む。移動ロボットは、所定の動作命令に基づいて所定の動作を実行する。
【００１１】
好ましくは、所定の動作命令は、移動ロボットの移動を停止する旨の停止命令である。移動ロボットは、停止命令に応じて停止する。
【発明の効果】
【００１２】
この発明によれば、高価なセンサを用いることなく、移動ロボット周囲に位置する障害物をより効率的に検知することができる移動ロボットおよび移動ロボット制御システムが提供される。
【発明を実施するための最良の形態】
【００１３】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１４】
＜移動ロボットの制御システム１の全体構成＞
図１は、この発明の実施の形態に従う移動ロボット１００の制御システム１の概略構成図である。
【００１５】
図１を参照して、移動ロボット１００の制御システム１は、家屋２００内を移動する移動ロボット１００と、移動ロボット１００から発信される超音波信号を受信する超音波受信機４１と、各種センサからデータを受け取って移動ロボット１００の現在位置を計算するサーバ装置５０とを含む。本実施の形態に係る移動ロボット１００は、４本の脚部１０３を有して、４足歩行を行う形態としているが、人のように２足歩行を行う形態であってもよい。ただし、本発明に係る移動ロボット１００の周囲の障害物を検知するための構成は、脚式ロボットだけでなく、車輪を有する走行ロボットにも適用することができる。
【００１６】
サーバ装置５０と移動ロボット１００とは、相互にデータ通信可能に構成される。そして、サーバ装置５０は、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）などの専用回線や、インターネットや仮想プライベートネットワーク（Virtual Private Network）などの公衆回線を介して、外部から移動ロボット１００に対する動作命令などを受信する。
【００１７】
移動ロボット１００は、代表的に、外部からの移動命令に応じて自律移動（４足歩行）を行ったり、外部からの撮影命令に応じて移動ロボット１００の周囲を撮影したりすることができる。より詳細には、移動ロボット１００は、頭部１０１と胴部１０２と脚部１０３とを有している。頭部１０１と脚部１０３とは、それぞれアクチュエータ等の駆動機構を有しており、これらの駆動機構によって各種の動作が行われる。たとえば、アクチュエータを制御することによって、移動ロボット１００の４足歩行の制御を行うことができる。
【００１８】
＜移動ロボットの制御システム１の動作概要＞
ここで、本実施の形態に係る移動ロボット１００の制御システム１の動作概要について説明する。図２は、この発明の実施の形態に従う移動ロボット１００の制御システム１における動作概要を示すシーケンス図である。図１および図２に示すように、まず、移動ロボット１００が移動する（ステップＳ００２）。移動ロボット１００は、後述する長距離測距センサや短距離測距センサなどを利用して障害物（人や動物や家具など）までの測定距離を取得し（ステップＳ００４）、当該障害物までの測定距離をサーバ装置５０へと送信する（ステップＳ０１６）。サーバ装置５０は、障害物までの測定距離を受信する（ステップＳ０１８）。
【００１９】
ただし、サーバ装置５０が測定距離を計算する構成であってもよい。すなわち、移動ロボット１００は、測距センサから得られたデータ、たとえば電圧値などをサーバ装置５０へと送信し、サーバ装置５０が移動ロボット１００からのデータ（電圧値）に基づいて測定距離を計算してもよい。なお、説明のために、長距離測距センサ１０６が電圧値をサーバ装置５０へと送信する構成の場合には、当該電圧値を「測定距離」と表現したり、より詳細に「測定距離に関するデータ」と表現したりする。
【００２０】
サーバ装置５０は、取得した測定距離に基づいて、移動ロボット１００に対する動作命令（停止命令や移動命令や撮影命令など）を生成する（ステップＳ０２０）。サーバ装置５０は、動作命令を移動ロボット１００へと送信する（ステップＳ０２２）。移動ロボット１００は、サーバ装置５０から動作命令を受信して（ステップＳ０２４）、当該動作命令に基づいて各種動作（停止・移動・撮影など）を実行する（ステップＳ０２６）。
【００２１】
以下、このような機能を実現するための構成について詳述する。
＜移動ロボットの制御システム１のハードウェア構成＞
図３は、この発明の実施の形態に従う移動ロボット１００の制御システム１のハードウェア構成を示す模式図である。
【００２２】
図３を参照して、移動ロボット１００は、無線通信によって無線ＬＡＮアクセスポイント４９と接続される。たとえば、移動ロボット１００は、内部の無線ＬＡＮ子機１１９を利用して無線ＬＡＮアクセスポイント４９に接続される。無線ＬＡＮアクセスポイント４９は、ＬＡＮなどを介してサーバ装置（外部ＰＣサーバ）５０と接続されている。
【００２３】
サーバ装置５０は、ＬＡＮなどを介して、マイクアレイ用環境サーバ２０や、セキュリティサーバ３０や、超音波用環境サーバ４０や、図示しない端末装置などに接続されている。マイクアレイ用環境サーバ２０は、たとえば、外部マイクロフォンアレイ２１と接続されている。セキュリティサーバ３０は、たとえば、家屋２００内に設置される複数のセキュリティセンサ３１に接続されている。超音波用環境サーバ４０は、家屋内に設置される複数の超音波受信機４１に接続されている。
【００２４】
サーバ装置５０は、移動ロボット１００を管理（制御）するものであり、無線ＬＡＮアクセスポイント４９やＬＡＮなどを介して、移動ロボット１００に対して移動や撮影などの各種制御を行うと共に、移動ロボット１００に対して必要な情報を提供する。
【００２５】
以下、移動ロボット１００について説明する。
移動ロボット１００は、移動ロボット１００の各部に電力を供給するバッテリ電源１１２と、無線ＬＡＮアクセスポイント４９と通信を行う無線ＬＡＮ子機１１９と、無線ＬＡＮ子機１１９に接続されるＬＡＮ用ハブ１１８と、ＬＡＮ用ハブ１１８に接続される画像送信ユニット１１３と、各種のセンサに接続されるセンサコントロールユニット１２１と、アクチュエータ１０８などに接続されるモータコントロールボード１０７とを含む。
【００２６】
画像送信ユニット１１３は、移動ロボット１００外部に超音波を発信する超音波発信タグ１１４と、周囲の物体や人物を撮影するカメラ１１５と、音声を出力するスピーカ１１６と、周囲の音声を受け付けるマイク１１７とに接続される。カメラ１１５は、映像をデジタルデータとして取り込むことができるものであり、たとえば、カラーＣＣＤ(Charge-Coupled Device)カメラが使用される。
【００２７】
カメラ１１５は、サーバ装置５０からの撮影命令に基づいて、移動ロボット１００の周囲（たとえば頭部１０１の前方など）を撮影する。カメラ１１５は、撮影した画像データを画像送信ユニット１１３に出力する。画像データは、無線ＬＡＮ子機１１９を介して、サーバ装置５０へと送信される。このカメラ１１５と、マイク１１７とは、いずれも脚式ロボット１００の頭部１０１に配設される。そして、スピーカ１１６などは脚式ロボット１００の胴部１０２（背中）に配設される。
【００２８】
センサコントロールユニット１２１は、移動ロボット１００の向きを測定するための方位センサ１０４と、人間の存在を検知する人感センサ１０５と、ロボットから障害物（人や動物や壁や家具等）までの距離を測定する長距離測距センサ１０６と、壁や物体までの距離を測定する短距離測距センサ１２６と、床までの距離を測定する赤外線測距センサ１３６とに接続される。
【００２９】
長距離測距センサ１０６、短距離測距センサ１２６、赤外線測距センサ１３６は、たとえば三角測量によって障害物や床までの距離を測定する。より詳細には、長距離測距センサ１０６、短距離測距センサ１２６、赤外線測距センサ１３６は、移動ロボット１００の周囲に赤外線を照射して、その反射光を受光することによって移動ロボット１００から障害物や床までの距離を測定する。
【００３０】
なお、本実施の形態に係る長距離測距センサ１０６の測定レンジは、４０ｃｍ〜３００ｃｍである。短距離測距センサ１２６の測定レンジは、たとえば１０ｃｍ〜５０ｃｍである。また、長距離測距センサ１０６は、検知角度が２５度、分解能が５度の、広角測距センサである。
【００３１】
図４は、長距離測距センサ１０６の概観を示す斜視図である。図４に示すように、長距離測距センサ１０６は、その正面方向に配置されるエミッタ１０６ａとディテクタ１０６ｂとを有する。エミッタ１０６ａは、赤外線を照射する。ディテクタ１０６ｂは、障害物で反射した赤外線を受光する。
【００３２】
より詳細には、長距離測距センサ１０６は、ディテクタ１０６ｂにＰＳＤ（Position Sensitive Detector）素子を利用する。ＰＳＤ素子は、出力端子を２つ有し、赤外線の入射位置から出力端子までの距離に比例する抵抗に応じて出力端子間の電圧や電流が変化するものである。このようにしてディテクタ１０６ｂにて測定された電圧値（電流値）に基づき、移動ロボット１００あるいはサーバ装置５０は、長距離測距センサ１０６から障害物までの距離を取得することができる。
【００３３】
短距離測距センサ１２６の構成も、長距離測距センサ１０６のそれと同様であるため、ここでは説明を繰り返さない。
【００３４】
図５は、移動ロボット１００における長距離測距センサ１０６と短距離測距センサ１２６の配置構成を示す平面概略図である。図５に示すように、本実施の形態に係る移動ロボット１００においては、その周囲に８つの長距離測距センサ１０６と８つの短距離測距センサ１２６とが配置されている。換言すれば、移動ロボット１００の側面には、８つの長距離測距センサ１０６と８つの短距離測距センサ１２６とが、交互に並べて配置されている。このように、障害物の存否の検知に死角が生じないように構成されている。
【００３５】
より詳細には、移動ロボット１００の前部（正面）には、３つの長距離測距センサ１０６が配置されており、長距離測距センサ１０６の間には、短距離測距センサ１２６が配置されている。加えて、長距離測距センサ１０６の外側にも、短距離測距センサ１２６が配置されている。すなわち、移動ロボット１００の前部（正面）には、３の長距離測距センサ１０６と４つの短距離測距センサ１２６とが配置されている。
【００３６】
また、移動ロボット１００の後部（背面）には、３つの長距離測距センサ１０６が配置されており、長距離測距センサ１０６の間には、短距離測距センサ１２６が配置されている。すなわち、移動ロボット１００の後部（背面）には、３の長距離測距センサ１０６と２つの短距離測距センサ１２６とが配置されている。
【００３７】
また、移動ロボット１００の左部（左側面）には、１つの長距離測距センサ１０６と１つの短距離測距センサ１２６とが配置されている。移動ロボット１００の右部（右側面）にも、１つの長距離測距センサ１０６と１つの短距離測距センサ１２６とが配置されている。
【００３８】
そして、それぞれの長距離測距センサ１０６のエミッタ１０６ａは、所定時間が経過する度に、同期して（同時に）、測定方向をＡ→Ｂ→Ｃ→Ｄ→Ｅ→Ａと切り替えながら、赤外線を照射する。ここで、図５における矢印は、赤外線を示す。これによって、右側に位置する長距離測距センサ１０６から測定方向Ａに照射された赤外線と、左側に位置する長距離測距センサ１０６から測定方向Ｅに照射された赤外線とが干渉し難くなる。
【００３９】
より詳細には、左側に位置する長距離測距センサ１０６のディテクタ１０６ｂが、右側に位置する長距離測距センサ１０６から測定方向Ａに照射された赤外線の反射光を、自身のエミッタ１０６ａから照射された赤外線の反射光として認識してしまう可能性が低減する。すなわち、本実施の形態に係る移動ロボット１００においては、隣り合う長距離測距センサ１０６が、似通った測定方向に赤外線を照射することがないように構成されている。たとえば、右側の長距離測距センサ１０６が測定方向Ａに、左側の長距離測距センサ１０６が測定方向Ｅに、同時に赤外線を照射することがないように構成されている。
【００４０】
図６（ａ）は、本実施の形態に係る長距離測距センサ１０６の固設構成を示す側面断面図である。図６（ｂ）は、先行の長距離測距センサ１０６の固設構成を示す側面断面図である。
【００４１】
図６（ｂ）に示すように、先行の長距離測距センサ１０６は赤外線の照射方向が実質的に水平方向であったため、長距離測距センサ１０６の測定レンジ内において赤外線が地面（移動ロボット１００の歩行面）に照射されてしまう。そのため、ディテクタ１０６ｂが地面にて反射した赤外線を受光してしまい、移動ロボット１００から障害物までの正確な距離が測定できなかった。
【００４２】
本実施の形態においては、図６（ａ）に示すように、赤外線の照射方向が若干上向きとなるように、長距離測距センサ１０６が移動ロボット１００に固設されている。より詳細には、長距離測距センサ１０６の下部と移動ロボット１００との間にワッシャ１２７などを挟んで、長距離測距センサ１０６を移動ロボット１００の側面に固設する。
【００４３】
これによって、長距離測距センサ１０６の測定レンジ内では赤外線が地面（移動ロボット１００の歩行面）に照射されない。その結果、ディテクタ１０６ｂが測定レンジ内の地面にて反射した赤外線を受光することがなくなり、移動ロボット１００から障害物までのより正確な距離が測定できる。
【００４４】
換言すれば、本実施の形態においては、赤外線が測定レンジ内の地面に照射されることがない角度で、長距離測距センサ１０６が移動ロボット１００に固設されている。
【００４５】
図３に戻って、モータコントロールボード１０７は、移動ロボット１００の頭部１０１や脚部１０３を動かすための各種のアクチュエータ１０８や、移動ロボット１００の向きを測定するための３つの１軸ジャイロセンサ１０９や、移動ロボット１００の加速度を測定するための３軸加速度センサ１１０に接続される。ここで、アクチュエータ１０８は、バッテリ電源１１１にも接続される。
【００４６】
＜サーバ装置５０のハードウェア構成＞
図７は、この発明の実施の形態に従うサーバ装置５０のハードウェア構成を示す模式図である。
【００４７】
図７を参照して、サーバ装置５０は、オペレーティングシステムを含む各種プログラムを実行するＣＰＵ５５と、ＣＰＵ５５でのプログラムの実行に必要なデータを一時的に記憶するメモリ５６と、ＣＰＵ５５で実行されるプログラムを不揮発的に記憶する固定ディスク５７とを備える。このようなプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）駆動装置６３またはフレキシブルディスク（ＦＤ：Flexible Disk）駆動装置６１によって、それぞれＣＤ−ＲＯＭ６４またはフレキシブルディスク６２などから読取られる。
【００４８】
ＣＰＵ５５は、キーボード５３やマウス５４を介してユーザから操作要求を受け取るとともに、プログラムの実行によって生成されるテキストデータや画像データを表示部インターフェイス６５を介してディスプレイ部５２へ出力する。また、ＣＰＵ５５は、ＬＡＮカードなどからなる通信インターフェイス５９を介して、移動ロボット１００との間でデータ通信を行う。なお、これらの部位は、内部バス５８を介して互いに接続される。
【００４９】
移動ロボット１００や超音波受信機４１からＬＡＮを介して送信されてくるデータは、通信インターフェイス５９にて受信される。ＣＰＵ５５は、受信したデータをメモリ５６などに格納する。ＣＰＵ５５は、受信したデータに応じて、移動ロボット１００から要求されたデータなどを固定ディスク５７から読み出して、通信インターフェイス５９を介して移動ロボット１００へと送信する。
【００５０】
また、ＣＰＵ５５は、キーボード５３やマウス５４を介してユーザから入力される命令や、インターネットと通信インターフェイス５９とを介して入力される命令などに基づいて、ＬＡＮを介して移動命令や撮影命令などを移動ロボット１００に送信する。
【００５１】
次に、サーバ装置５０の有する機能構成について詳述する。
＜サーバ装置５０の機能構成＞
図８は、この発明の実施の形態に従うサーバ装置５０における機能構成を示すブロック図である。図８を参照して、サーバ装置５０は、サーバ装置５０の各部を制御するメイン処理部５５Ａと、プログラムやデータベースなどを格納する記憶部５７Ｓと、移動ロボット１００の位置を検知する第１の位置取得部５５Ｂと、設定された経路上を移動ロボット１００を移動させるための経路追従部５５Ｃと、セキュリティ部５５Ｄと、ＬＡＮを介して室内に配置された複数のマイクやマイクサーバ２０から受信した音声データに基づいて会話を認識する音声認識部５５Ｅと、人間の存在やその位置などを検知する人検知部５５Ｆと、人間の顔が位置するエリアを認識する顔認識部５５Ｇと、ＬＡＮを介して移動ロボット１００から音声データを受信する音声受信部５５Ｈと、ＬＡＮを介して移動ロボット１００から脚部の動作に関する動作データや障害物の存否に関するデータなどを受信するコマンド受信部５５Ｊと、ＬＡＮを介して移動ロボット１００から方位データを受信する方位データ受信部５５Ｋとを含む。
【００５２】
ここで、メイン処理部５５Ａや経路追従部５５Ｃは、ＣＰＵ５５が固定ディスク５７などに予め格納されていたプログラムをメモリ５６に読出して実行することで実現されるものである。経路追従部５５Ｃは、計算された現在位置と入力された目的地（あるいは計算された目的地）とに基づいて、各種のアルゴリズムに沿って移動ロボット１００の移動経路を生成する。経路追従部５５Ｃは、移動経路に沿って移動ロボット１００が移動するように、移動ロボット１００に対する具体的な移動命令を生成する。
【００５３】
第１の位置取得部５５Ｂは、ＣＰＵ５５や通信インターフェイス５９によって実現されるものであって、超音波サーバ４０（超音波受信機４１）から受信したデータに基づいて、移動ロボット１００の現在位置（測定位置）を計算する。
【００５４】
セキュリティ部５５Ｄは、ＣＰＵ５５や通信インターフェイス５９によって実現されるものであって、セキュリティサーバ３０から受信したセキュリティ情報に基づいて、セキュリティモードを切り替えたり、セキュリティに関する動作命令（たとえば警報の出力命令など）を生成したりする。
【００５５】
音声認識部５５Ｅは、ＣＰＵ５５や通信インターフェイス５９によって実現される。音声認識部５５Ｅは、移動ロボット１００から受信した音声データに基づいて、移動ロボット１００に入力された音声に対応する音声認識テキストをメイン処理部５５Ａに入力する。
【００５６】
人検知部５５Ｆは、ＣＰＵ５５や通信インターフェイス５９によって実現される。人検知部５５Ｆは、移動ロボット１００から受信した人感センサ１０５の反応データと画像データなどに基づいて、移動ロボット１００の周囲に人が存在するか否かを判断し、人が存在する位置を取得する。
【００５７】
顔認識部５５Ｇは、ＣＰＵ５５や通信インターフェイス５９によって実現される。顔認識部５５Ｇは、移動ロボット１００から受信した画像データに基づいて、人間の顔の検知と認証とを行う。
【００５８】
音声受信部５５Ｈは、ＣＰＵ５５や通信インターフェイス５９によって実現される。音声受信部５５Ｈは、移動ロボット１００から音声データを受信する。
【００５９】
コマンド受信部５５Ｊは、ＣＰＵ５５や通信インターフェイス５９によって実現される。コマンド受信部５５Ｊは、移動ロボット１００から、移動ロボット１００の近傍に障害物が存在する旨のデータや、移動ロボット１００が障害物に接触した旨のデータや、移動ロボット１００に関する状態情報などを取得する。
【００６０】
コマンド受信部５５Ｊは、移動ロボット１００から、それぞれの長距離測距センサ１０６および短距離測距センサ１２６に係る電圧値に関するデータを受信する。コマンド受信部５５Ｊは、そのデータに基づいて、それぞれの長距離測距センサ１０６および短距離測距センサ１２６から障害物までの距離を計算し、測定距離をメイン処理部５５Ａへと受け渡す。
【００６１】
方位データ受信部５５Ｋは、ＣＰＵ５５や通信インターフェイス５９によって実現される。方位データ受信部５５Ｋは、ＬＡＮを介して、移動ロボット１００から移動ロボット１００の測定方向（測定向きあるいは測定方位）を受信する。
【００６２】
＜移動ロボットの制御システム１の機能構成＞
図９は、この発明の実施の形態に従う移動ロボット１００の制御システム１における機能構成を示すブロック図である。図９を参照して、移動ロボット１００の制御システム１は、移動ロボット１００と、サーバ装置５０と、超音波受信機４１とを含む。
【００６３】
移動ロボット１００は、移動機構１０８Ａと、送受信部１１９Ａと、発信部１１４Ａと、方位取得部１０４Ａと、第１の距離取得部１０６Ａと、第２の距離取得部１２６Ａとを含む。
【００６４】
図３および図９に示すように、送受信部１１９Ａは、無線ＬＡＮ子機１１９やＬＡＮ用ハブ１１８などによって実現される。送受信部１１９Ａは、ＬＡＮを介してサーバ装置５０から各種命令を受信したり、ＬＡＮを介してサーバ装置５０に各種データを送信したりする。より詳細には、送受信部１１９Ａは、サーバ装置５０に測定距離や測定方向を送信し、サーバ装置５０から動作命令（たとえば停止命令や移動命令や撮影命令など）を受信する。
【００６５】
移動機構１０８Ａは、たとえば、それぞれの脚部１０３を動作させるための複数のアクチュエータ１０８を含む複数の脚部１０３によって実現される。たとえば、移動機構１０８Ａは、送受信部１１９Ａを介して入力される移動命令に応じて、アクチュエータ１０８を作動させることによって移動ロボット１００を移動させる。たとえば、移動機構１０８Ａは、送受信部１１９Ａを介して入力される停止命令に応じて、アクチュエータ１０８を停止させることによって移動ロボット１００を停止させる。より詳細には、サーバ装置５０から受信した「○歩前進、肩の角度○○度」という移動命令に基づいて、それぞれのアクチュエータ１０８（脚部１０３）が作動することによって、移動ロボット１００が移動する。
【００６６】
発信部１１４Ａは、たとえば超音波発信タグ１１４によって実現される。発信部１１４Ａは定期的に超音波を発信する。発信部１１４Ａから発信された超音波は超音波受信機４１にて受信される。ただし、発信部１１４Ａは、電波を発信してもよい。
【００６７】
方位取得部１０４Ａは、たとえば方位センサ１０４やセンサコントロールユニット１２１などによって実現される。方位取得部１０４Ａは、移動ロボット１００の測定方向を取得して、当該測定方向を送受信部１１９Ａを介してサーバ装置５０に送信する。
【００６８】
第１の距離取得部１０６Ａの各々は、たとえば移動ロボット１００周囲に設けられた長距離測距センサ１０６の各々やセンサコントロールユニット１２１によって実現される。第１の距離取得部１０６Ａの各々は、移動ロボット１００から障害物までの距離を測定して、当該測定距離を送受信部１１９Ａを介してサーバ装置５０へ送信する。ここで、障害物とは、たとえば人や動物や壁やドアや家具などのように、家屋２００内に存在する様々なオブジェクトをいう。
【００６９】
図１０は、第１の距離取得部１０６Ａが障害物までの距離を測定する場合のイメージ図である。図１０に示すように、第１の距離取得部１０６Ａの各々は、所定期間毎に測定方向Ａ，Ｂ，Ｃ，Ｄ，Ｅを切り替えながら赤外線を照射する。第１の距離取得部１０６Ａの各々は、それぞれの測定方向Ａ，Ｂ，Ｃ，Ｄ，Ｅに存在する障害物までの距離を測定する。ただし、前述したように、長距離測距センサ１０６が電圧値を測定し、サーバ装置５０が電圧値に基づいて測定距離を計算する構成であってもよい。
【００７０】
本実施の形態においては、後述するように、第１の距離取得部１０６Ａから２つ以上の測定方向（たとえば測定方向ＢおよびＣ）に照射された赤外線の反射光に基づいて、サーバ装置５０が障害物までの距離を測定する。
【００７１】
図５および図９を参照して、第２の距離取得部１２６Ａの各々は、たとえば移動ロボット１００周囲に設けられた短距離測距センサ１２６の各々やセンサコントロールユニット１２１によって実現される。第２の距離取得部１２６Ａは、移動ロボット１００（第２の距離取得部１２６Ａ）から障害物までの距離を測定して、当該測定距離を送受信部１１９Ａを介してサーバ装置５０へと送信する。
【００７２】
送受信部１０９Ａは、測定方向Ａ（Ｂ，Ｃ，Ｄ，Ｅ）毎に、全ての長距離測距センサ１０６によって取得された測定距離に関するデータを、同一パケットに格納して、サーバ装置５０へと送信する。送受信部１０９Ａは、長距離測距センサ１０６によって取得された測定距離に関するデータと共に、短距離測距センサ１２６によって取得された測定距離に関するデータを、同一パケットに格納して、サーバ装置５０へと送信しても良い。すなわち、サーバ装置５０は、全ての長距離測距センサ１０６によって取得された測定方向Ａについての測定距離を受信する。
【００７３】
図９に示すように、サーバ装置５０は、入力部５３Ａと、記憶部５７Ｓと、第１の位置取得部５５Ｂと、パーティクル取得部５５Ｌと、設定部５５Ｍと、計算部５５Ｎと、経路生成部５５Ｐと、命令生成部５５Ｑと、判断部５５Ｒと、送受信部５９Ａとを含む。
【００７４】
図７および図９に示すように、入力部５３Ａは、キーボード５３やマウス５４や通信インターフェイス５９などによって実現される。より詳細には、入力部５３Ａは、キーボード５３やマウス５４などを介して、直接ユーザからの動作命令を受け付ける。また、入力部５３Ａは、通信インターフェイス５９を介して、ＬＡＮやインターネットや外部の情報機器などを介して動作命令を受け付ける。
【００７５】
記憶部５７Ｓは、固定ディスク５７やメモリ５６によって実現される。記憶部５７Ｓは、移動ロボット１００が移動するエリアに関する地図データ５７Ａや、パーティクルフィルタを用いて移動ロボット１００の現在地位や現在方向（現在向きあるいは現在方位）を計算するために必要な各種データを格納するパーティクルファイル５７Ｂや、パーティクルフィルタを用いて計算された現在位置や現在方向を格納する現在情報ファイル５７Ｃなどを記憶する。
【００７６】
図１１は、地図データ５７Ａの内容を示すイメージ図である。図１１に示すように、地図データ５７Ａは、移動ロボット１００が移動する家屋２００に配置されている壁や扉や家具などの障害物の存在位置（図１１におけるハッチング部）を示す情報を有している。地図データ５７Ａは、たとえばテレビジョン装置やオーディオ機器などの存在位置なども示す。
【００７７】
そして、地図データ５７Ａは、それぞれの障害物から所定距離以内の接触エリア（図１１におけるドット付与部）を示す情報を格納している。接触エリアは、安全確保のためのエリアとして規定されている。すなわち、移動ロボット１００が接触エリアに侵入した場合には、移動ロボット１００が障害物に接触する虞がある。後述する経路生成部５５Ｐは、地図データ５７Ａを参照して、移動ロボット１００が接触エリアに侵入することがないように、現在位置（スタート地点）から目的位置（ゴール地点）までの移動経路を生成する。
【００７８】
図１２は、パーティクルファイル５７Ｂのデータ構造を示すイメージ図である。図１２に示すように、パーティクルファイル５７Ｂは、パーティクル毎に、前回の現在位置のＸ座標Ｘ１、前回の現在位置のＹ座標Ｙ１、前回の現在方向θ１、所定の重みＷ１（１をパーティクル数で除した数）を格納している。パーティクルファイル５７Ｂは、パーティクル毎に、前回のＸ１、Ｙ１、θ１のそれぞれにノイズを加えた仮想位置（Ｘ２，Ｙ２）と仮想方向（仮想向きあるいは仮想方位）θ２とを格納する。
【００７９】
パーティクルファイル５７Ｂは、パーティクル毎に、超音波受信機４１からの測定位置が考慮された、ガウス関数に基づいて計算されるＸ２およびＹ２の観測確率ＰＵＳを格納する。ここで、観測確率ＰＵＳとは、移動ロボット１００がその現在位置にある場合に、その測定位置が観測される確率をいう。
【００８０】
同様に、パーティクルファイル５７Ｂは、パーティクル毎に、移動ロボット１００からの測定方向が考慮された、ガウス関数に基づいて計算されるθ２の観測確率ＰＣＯＭを格納する。
【００８１】
同様にパーティクルファイル５７Ｂは、パーティクル毎に、移動ロボット１００からの障害物までの測定距離が考慮された、ガウス関数に基づいて計算されるＸ２やＹ２の観測確率ＰＤＩＳを格納する。ここで、パーティクルファイル５７Ｂは、パーティクル毎に、各種センサにて取得されるデータがセンサの許容範囲内である場合と許容範囲外である場合とでそれぞれ所定の確率ＰＯＵＴを格納する。
【００８２】
このように、パーティクルファイル５７Ｂは、パーティクル毎に、かつセンサ毎に、このような観測確率を格納する。
【００８３】
そして、パーティクルファイル５７Ｂは、全ての観測確率ＰＵＳ、ＰＣＯＭ、ＰＤＩＳ、ＰＯＵＴを乗算した観測確率乗算値Ｅｖａｌを格納する。パーティクルファイル５７Ｂは、パーティクルの観測確率乗算値Ｅｖａｌの合計が１となるように、パーティクルの観測確率乗算値Ｅｖａｌの各々を正規化したものを、各パーティクルの重みＷ２として格納する。
【００８４】
図１３は、現在情報ファイル５７Ｃのデータ構造を示すイメージ図である。図１３に示すように、現在情報ファイル５７Ｃは、各パーティクルの仮想位置のＸ座標Ｘ２を重みＷ２によって加重平均した値を、移動ロボット１００の現在位置を示すＸ座標として格納する。現在情報ファイル５７Ｃは、各パーティクルの仮想位置のＹ座標Ｙ２を重みＷ２によって加重平均した値を、移動ロボット１００の現在位置を示すＹ座標として格納する。現在情報ファイル５７Ｃは、各パーティクルのθ２を重みＷ２によって加重平均した値を、移動ロボット１００の現在方向を示す値θとして格納する。
【００８５】
図７と図９とを参照して、第１の位置取得部５５Ｂと、パーティクル取得部５５Ｌと、設定部５５Ｍと、計算部５５Ｎと、経路生成部５５Ｐと、命令生成部５５Ｑと、判断部５５Ｒとは、ＣＰＵ５５が固定ディスク５７などに予め格納されていたプログラムをメモリ５６に読出して実行することで実現されるものである。すなわち、第１の位置取得部５５Ｂと、パーティクル取得部５５Ｌと、設定部５５Ｍと、計算部５５Ｎと、経路生成部５５Ｐと、命令生成部５５Ｑとは、サーバ装置５０のＣＰＵ５５が有する機能である。
【００８６】
第１の位置取得部５５Ｂは、超音波受信機４１から受信した音波に関するデータに基づいて、移動ロボット１００の測定位置を計算する。ただし、移動ロボット１００が、電波を発信する構成とし、第１の位置取得部５５Ｂが、図示しない電波受信機から受信した電波に関するデータに基づいて移動ロボット１００の測定位置を計算するものであってもよい。
【００８７】
パーティクル取得部５５Ｌは、各々が移動ロボット１００の仮想位置および仮想方向を示す複数のパーティクルを取得する、あるいは新たに生成する。より詳細には、パーティクル取得部５５Ｌは、前回の現在位置を計算した際のパーティクルのＸ座標Ｘ２やＹ座標Ｙ２や方向θ２に今回の移動方向および歩数などに対応するノイズを加えることによって、パーティクルを更新する。この際、前回の現在位置を計算した際の重みＷ２が、所定のしきい値未満であるパーティクルを削除して、新たなパーティクルを生成してもよい。新たなパーティクルの生成方法としては、前回の現在位置を計算した際の重みＷ２が最も大きなパーティクルを２つに分割してもよい。
【００８８】
設定部５５Ｍは、測定位置と測定距離と地図データ５７Ａと測定方向とに基づいて、パーティクルの各々に重みＷ２を設定する。
【００８９】
より詳細には、設定部５５Ｍは、超音波受信機４１からの測定位置を参照しながら、ガウス関数に基づいて計算されるＸ２およびＹ２の観測確率ＰＵＳを計算する。ここで、観測確率ＰＵＳとは、移動ロボット１００がその現在位置にある場合に、その測定位置が観測される確率をいう。同様に、設定部５５Ｍは、パーティクル毎に、移動ロボット１００からの測定方向を参照しながら、ガウス関数に基づいて計算されるθ２の観測確率ＰＣＯＭを計算する。同様に、設定部５５Ｍは、パーティクル毎に、移動ロボット１００からの障害物までの測定距離を参照しながら、ガウス関数に基づいて計算されるＸ１やＹ２の観測確率ＰＤＩＳを計算する。ここで、設定部５５Ｍは、パーティクル毎に、各種センサにて取得されるデータがセンサの許容範囲内である場合と許容範囲外である場合とでそれぞれ所定の確率ＰＯＵＴを計算する。このように、設定部５５Ｍは、パーティクル毎に、かつセンサ毎に、このような観測確率を計算する。
【００９０】
計算部５５Ｎは、それぞれのパーティクルの仮想位置（Ｘ２，Ｙ２）と重みＷ２とに基づいて移動ロボット１００の現在位置（Ｘ，Ｙ）を計算する。すなわち、計算部５５Ｎは、それぞれのパーティクルの仮想位置（Ｘ２，Ｙ２）を対応する重みＷ２に基づいて加重平均することによって、移動ロボット１００の現在位置（Ｘ，Ｙ）を計算する。
【００９１】
計算部５５Ｎは、それぞれのパーティクルの仮想方向θ２と重みＷ２とに基づいて移動ロボット１００の現在方向θを計算する。すなわち、計算部５５Ｎは、それぞれのパーティクルの仮想方向θ２を対応する重みＷ２に基づいて加重平均することによって、移動ロボット１００の現在方向θを計算する。
【００９２】
このようにして、パーティクル取得部５５Ｌと、設定部５５Ｍと、計算部５５Ｎとは、第２の位置取得部を構成する。第２の位置取得部は、パーティクルフィルタを用いることによって、前回の現在位置と測定位置と測定方向と測定距離と地図データとに基づいて、移動ロボット１００の現在位置を計算する。すなわち、第２の位置取得部は、前回の現在位置と測定方向と測定距離と地図データ５７Ａとに基づいて、超音波受信機４１から受信したデータから得られた測定位置を補正することによって、測定位置よりも正確な現在位置を取得する。
【００９３】
経路生成部５５Ｐは、地図データ５７Ａを参照して、各種アルゴリズムに沿って現在位置と目的地点とに基づき移動ロボット１００の移動経路を生成する。
【００９４】
命令生成部５５Ｑは、移動経路と現在位置とに基づいて移動命令を生成する。たとえば、命令生成部５５Ｑは、移動経路と現在位置とに基づいて、「肩を○度開く」旨の要求や「○歩前進する」旨の要求を生成し、当該要求を送受信部５９Ａを介して移動ロボット１００に送信する。
【００９５】
送受信部５９Ａは、通信インターフェイス５９などによって実現される。送受信部５９Ａは、ＬＡＮを介して移動ロボット１００から、測定距離や測定方向などに関するデータを受信して、当該データを設定部５５Ｍに渡す。また、送受信部５９Ａは、ＬＡＮを介して移動ロボット１００から、測定距離に関するデータを受信して、当該データを判断部５５Ｒに渡す。
【００９６】
判断部５５Ｒは、送受信部５９Ａを介して、第１の距離取得部１０６Ａおよび第２の距離取得部１２６Ａからそれぞれの測定距離を取得する。あるいは、判断部５５Ｒは、送受信部５９Ａを介して、第１の距離取得部１０６Ａおよび第２の距離取得部１２６Ａから取得したそれぞれの測定距離に関するデータ（たとえば電圧値など）に基づいて、移動ロボット１００から障害物までのそれぞれの測定距離を計算する。
【００９７】
図９および図１０に示すように、本実施の形態においては、判断部５５Ｒが、１つの第１の距離取得部１０６Ａにおける隣り合う２つ以上の測定方向（たとえば測定方向ＢおよびＣ）上に障害物が検知された場合に、それらの障害物が検知された位置の中間地点Ｆ（中心位置）に障害物があると決定して（認識して）、第１の距離取得部１０６Ａからその中間地点までの距離を測定距離とする。つまり、判断部５５Ｒは、長距離測距センサ１０６のそれぞれにて取得された測定方向Ｂにおける障害物までの距離と、対応する長距離測距センサ１０６にて取得された測定方向Ｃにおける障害物までの距離とに基づいて、障害物の存否を判断したり、障害物までの距離を計算したりする。
【００９８】
本実施の形態においては、障害物までの距離（障害物が検知された位置）が、隣り合う測定方向同士（たとえば測定方向ＡおよびＢ）で大きく異なる場合には、判断部５５Ｒは、それらの障害物が検知された位置の中間地点（中心位置）を計算しない。すなわち、本実施の形態に係る判断部５５Ｒは、１つの第１の距離取得部１０６Ａに関する隣り合う２つ以上の測定方向上に障害物が検知された場合であって、検知された位置同士の距離が所定の距離未満である場合に、当該位置の中間地点に障害物があると決定するため、障害物の存否の判断がより精度の高いものとなる。
【００９９】
そして、判断部５５Ｒは、測定距離の各々が所定の距離未満であるか否かを判断し、それぞれの判断結果を命令生成部５５Ｑに渡す。命令生成部５５Ｑは、判断結果に基づいて、移動ロボット１００に対する動作命令を生成する。より詳細には、命令生成部５５Ｑは、測定距離のいずれかが所定の距離未満である場合に、移動ロボット１００の移動を停止する旨の停止命令を生成し、当該停止命令を移動ロボット１００に送信する。
【０１００】
あるいは、命令生成部５５Ｑは、測定距離のいずれかが所定の距離未満である場合に、障害物から離間する方向に移動する旨の移動命令を生成し、当該移動命令を移動ロボット１００に送信する。
【０１０１】
＜メイン処理＞
図１４は、移動ロボット１００の制御システム１におけるメイン処理の処理手順を示すフローチャートである。図１４に示すように、まず、ＣＰＵ５５は、ステータス情報を取得する（ステップＳ０５２）。より詳細には、ＣＰＵ５５は、通信インターフェイス５９を介して移動ロボット１００からステータスに関するデータを受信する。あるいは、ＣＰＵ５５は、記憶部５７Ｓから、既に記憶されている移動ロボット１００のステータスに関するデータを読み出す。
【０１０２】
ＣＰＵ５５は、各種センサからデータを取得する（ステップＳ０５４）。たとえば、ＣＰＵ５５は、前回のループ（メイン処理）と今回のループ（メイン処理）との間に、新たに取得された長距離測距センサ１０６や短距離測距センサ１２６からの測定距離に関するデータなどを取得する。
【０１０３】
ＣＰＵ５５は、各種センサからのデータに基づいて、移動ロボット１００が反射運動を行う必要があるか否かを判断する（ステップＳ０５６）。より詳細には、ＣＰＵ５５は、長距離測距センサ１０６あるいは短距離測距センサ１２６によって取得される測定距離のそれぞれが、予め設定された第１の距離未満であるか否かを判断する。
【０１０４】
反射運動を行う必要がある場合、すなわち長距離測距センサ１０６あるいは短距離測距センサ１２６によって取得される測定距離のいずれかが第１の距離未満である場合（ステップＳ０５６にてＹＥＳである場合）、ＣＰＵ５５は通信インターフェイス５９を介して移動ロボット１００に停止命令を送信する（ステップＳ０５８）。あるいは、ＣＰＵ５５は、障害物の反対方向へ移動する旨の移動命令を送信する。移動ロボット１００は、停止命令を受信して移動を停止する。あるいは、移動ロボット１００は、移動命令を受信して障害物の反対方向へ移動する。
【０１０５】
その後、ＣＰＵ１０６は、外部から動作命令が入力されたか否かを判断する（ステップＳ０６０）。一方、反射運動を行う必要がない場合、すなわち長距離測距センサ１０６あるいは短距離測距センサ１２６によって取得される全ての測定距離が第１の距離以上である場合（ステップＳ０５６にてＮＯである場合）、ＣＰＵ５５は、外部から動作命令が入力されたか否かを判断する（ステップＳ０６０）。
【０１０６】
外部から動作命令が入力された場合（ステップＳ０６０にてＹＥＳである場合）、ＣＰＵ５５は通信インターフェイス５９を介して、当該動作命令を移動ロボット１００へと送信する（ステップＳ０６２）。移動ロボット１００は、動作命令を受信して、動作命令に応じて動作する。たとえば、ＣＰＵ５５は、インターネットや通信インターフェイス５９などを介して、目的地点の入力を受け付ける。ＣＰＵ５５は、目的地点までの経路情報を生成し、通信インターフェイス５９を介して逐次具体的な移動命令を移動ロボット１００へと送信する。
【０１０７】
ＣＰＵ５５は、現在位置取得処理（ステップＳ１００）を実行する。現在位置取得処理については後述する。現在位置が取得されると（ステップＳ１００終了後）、ＣＰＵ５５は、ステップＳ０５４にて長距離測距センサ１０６あるいは短距離測距センサ１２６にて障害物が検知されたか否かを判断する（ステップＳ０６４）。障害物が検知された場合（ステップＳ０６４にてＹＥＳである場合）、ＣＰＵ５５は地図データ５７Ａを更新する（ステップＳ０６６）。より詳細には、ＣＰＵ５５は、長距離測距センサ１０６や短距離測距センサ１２６にて取得された測定距離に基づいて、地図データ５７Ａに障害物が存在する旨の情報を追加する。
【０１０８】
そして、ＣＰＵ５５は新たな地図データ５７Ａに基づいて、移動命令などの動作命令を修正する（ステップＳ０６８）。ＣＰＵ５５は、修正された動作命令を移動ロボット１００へと送信する（ステップＳ０７０）。
【０１０９】
一方、長距離測距センサ１０６や短距離測距センサ１２６によって障害物が検知されなかった場合（ステップＳ０６４にてＮＯである場合）、ＣＰＵ５５は、ステップＳ０５２からの処理を繰り返す。
【０１１０】
＜現在位置取得処理＞
図１５は、サーバ装置５０における現在位置取得処理の処理手順を示すフローチャートである。図１５に示すように、まず、ＣＰＵ５５は、移動ロボット１００から移動ロボット１００が移動した旨のデータを受信したか否かを判断する（ステップＳ１０２）。移動ロボット１００から移動した旨のデータを受信した場合（ステップＳ１０２にてＹＥＳの場合）、ＣＰＵ５５は、前回の現在位置が記憶部５７Ｓ（パーティクルファイル５７Ｂあるいは現在情報ファイル５７Ｃ）に格納されているか否か、すなわち当該移動前に現在位置（Ｘ１，Ｙ１）が計算されているか否かを判断する（ステップＳ１０６）。
【０１１１】
一方、サーバ装置５０が移動ロボット１００から移動した旨のデータを受信しない場合（ステップＳ１０２にてＮＯの場合）、ＣＰＵ５５は、前回の現在位置を取得したときから所定時間が経過したか否かを判断する（ステップＳ１０４）。前回の現在位置を取得したときから未だ所定時間が経過していない場合（ステップＳ１０４にてＮＯの場合）、ＣＰＵ５５はステップＳ１０２からの処理を繰り返す。一方、前回の現在位置を取得してから所定時間が経過している場合（ステップＳ１０４にてＹＥＳの場合）、ＣＰＵ５５はステップＳ１０６からの処理を実行する。
【０１１２】
前回の現在位置が記憶部５７Ｓに格納されている場合（ステップＳ１０６にてＹＥＳの場合）、ＣＰＵ５５は、パーティクルのリサンプリングを行う（ステップＳ１０８）。すなわち、ＣＰＵ５５は、パーティクルファイル５７Ｂに格納されている各パーティクルのＸ座標Ｘ１、Ｙ座標Ｙ１、角度（方向）θ１にノイズを付与し、ノイズが付与されたデータＸ２、Ｙ２、θ２をパーティクルファイル５７Ｂに格納する。
【０１１３】
そして、ＣＰＵ５５は、各種センサから取得されるデータ、たとえば、超音波受信機４１から得られる測定位置や、ジャイロセンサ１０９から得られる測定方向、測距センサ１０６から得られる測定距離などに基づいて、各パーティクルの測定確率（発生確率）を計算することによって、各パーティクルに重み付けを行う（ステップＳ２００）。重み付け処理（ステップＳ２００）については後述する。
【０１１４】
ＣＰＵ５５は、各パーティクルのノイズ付与後のＸ座標Ｘ２、Ｙ座標Ｙ２、角度θ２に重みＷ２を乗じることによって、Ｘ座標、Ｙ座標、角度θの荷重平均値（Ｘ，Ｙ，θ）を求める（ステップＳ１１２）。
【０１１５】
一方、前回の現在位置が記憶部５７Ｓに格納されていない場合（ステップＳ１０６にてＮＯの場合）、ＣＰＵ５５は、超音波受信機４１からのデータに基づいて、移動ロボット１００の測定位置を取得する（ステップＳ１１４）。そして、ＣＰＵ５５は、測定位置を取得できた場合（ステップＳ１１６にてＹＥＳである場合）にはステップＳ１０８からの処理を実行し、測定位置が取得できない場合（ステップＳ１１６にてＮＯである場合）にはステップＳ１０２からの処理を実行する。
【０１１６】
＜重み付け処理＞
図１６は、サーバ装置５０における重み付け処理の処理手順を示すフローチャートである。図１６に示すように、ここでは、Ｍ個のセンサを用いるとともに、Ｎ個のパーティクルを利用することによって、現在位置と現在方向とを取得する場合について説明する。
【０１１７】
まず、ＣＰＵ５５は、１つ目のパーティクルについて、１つ目のセンサで得られたデータに基づいて（ステップＳ２０２）、観測確率を計算する（ステップＳ２０４〜Ｓ２０６）。より詳細には、ＣＰＵ５５は、たえば測距センサ１０６からの測定距離を示すデータを取得して（ステップＳ２０４）、対象パーティクルのＸ座標とＹ座標と地図データとから、現在位置が対象パーティクルの座標に一致する場合に測定距離が測定される確率を計算する（ステップＳ２０６）。
【０１１８】
ＣＰＵ５５は、次のセンサについての処理に進み（ステップＳ２０８）、次のセンサがある場合（ステップＳ２１０にてＮＯである場合）、ステップＳ２０４からの処理を繰り返す。一方、ＣＰＵ５５は、各パーティクルについて次のセンサがない場合（ステップＳ２１０にてＹＥＳの場合）、各パーティクルに係る観測確率を全て乗算することによって当該パーティクルに係る観測確率を計算する（ステップＳ２１２）。
【０１１９】
ＣＰＵ５５は、次のパーティクルについての処理に進み（ステップＳ２１４）、次のパーティクルがある場合（ステップＳ２１６にてＮＯである場合）、ステップＳ２０４からの処理を繰り返す。一方、ＣＰＵ５５は、次のパーティクルがない場合（ステップＳ２１６にてＹＥＳである場合）、それぞれのパーティクルに係る観測確率の合計が「１」となるように、それぞれのパーティクルに係る観測確率を正規化する（ステップＳ２１８）。
【０１２０】
［その他の実施の形態］
本発明に係るプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１２１】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１２２】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記憶媒体とを含む。
【０１２３】
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
【０１２４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１２５】
【図１】この発明の実施の形態に従う移動ロボットの制御システムの概略構成図である。
【図２】この発明の実施の形態に従う移動ロボットの制御システムにおける動作概要を示すシーケンス図である。
【図３】この発明の実施の形態に従う移動ロボットの制御システムのハードウェア構成を示す模式図である。
【図４】この発明の実施の形態に従うサーバ装置のハードウェア構成を示す模式図である。
【図５】移動ロボットにおける長距離測距センサと短距離測距センサの配置構成を示す平面概略図である。
【図６】本実施の形態に係る長距離測距センサの固設構成を示す側面断面図と先行の長距離測距センサの固設構成を示す側面断面図である。
【図７】この発明の実施の形態に従うサーバ装置のハードウェア構成を示す模式図である。
【図８】この発明の実施の形態に従うサーバ装置における機能構成を示すブロック図である。
【図９】この発明の実施の形態に従う移動ロボットの制御システムにおける機能構成を示すブロック図である。
【図１０】第１の距離取得部が障害物までの距離を測定する場合のイメージ図である。
【図１１】地図データの内容を示すイメージ図である。
【図１２】パーティクルファイルのデータ構造を示すイメージ図である。
【図１３】現在情報ファイルのデータ構造を示すイメージ図である。
【図１４】移動ロボットの制御システムにおけるメイン処理の処理手順を示すフローチャートである。
【図１５】サーバ装置における現在位置取得処理の処理手順を示すフローチャートである。
【図１６】サーバ装置における重み付け処理の処理手順を示すフローチャートである。
【符号の説明】
【０１２６】
１  制御システム、２０  マイクアレイ用環境サーバ、２１  外部マイクロフォンアレイ、３０  セキュリティサーバ、３１  セキュリティセンサ、４０  超音波用環境サーバ、４１  超音波受信機、４９  アクセスポイント、５０  サーバ装置、５２  ディスプレイ部、５３  キーボード、５３Ａ  入力部、５４  マウス、５５Ａ  メイン処理部、５５Ｂ  位置取得部、５５Ｃ  経路追従部、５５Ｄ  セキュリティ部、５５Ｅ  音声認識部、５５Ｆ  人検知部、５５Ｇ  顔認識部、５５Ｈ  音声受信部、５５Ｊ  コマンド受信部、５５Ｋ  方位データ受信部、５５Ｌ  パーティクル取得部、５５Ｍ  設定部、５５Ｎ  計算部、５５Ｐ  経路生成部、５５Ｑ  命令生成部、５５Ｒ  判断部、５６  メモリ、５７  固定ディスク、５７Ａ  地図データ、５７Ｂ  パーティクルファイル、５７Ｃ  現在情報ファイル、５７Ｓ  記憶部、５８  内部バス、５９  通信インターフェイス、５９Ａ  送受信部、６５  表示部インターフェイス、１００  移動ロボット、１０１  頭部、１０２  胴部、１０３  脚部、１０４  方位センサ、１０４Ａ  方位取得部、１０５  人感センサ、１０６  長距離測距センサ、１０６Ａ  第１の距離取得部、１０７  モータコントロールボード、１０８  アクチュエータ、１０８Ａ  移動機構、１０９  ジャイロセンサ、１０９  １軸ジャイロセンサ、１１０  ３軸加速度センサ、１１１  バッテリ電源、１１２  バッテリ電源、１１３  画像送信ユニット、１１４  超音波発信タグ、１１４Ａ  発信部、１１５  カメラ、１１６  スピーカ、１１７  マイク、１１８  ＬＡＮ用ハブ、１１９  無線ＬＡＮ子機、１１９Ａ  送受信部、１２１  センサコントロールユニット、１２６  短距離測距センサ、１２６Ａ  第２の距離取得部、２００  家屋。
【図１】
2010009371.tif 000003
【図２】
2010009371.tif 000004
【図３】
2010009371.tif 000005
【図４】
2010009371.tif 000006
【図５】
2010009371.tif 000007
【図６】
2010009371.tif 000008
【図７】
2010009371.tif 000009
【図８】
2010009371.tif 000010
【図９】
2010009371.tif 000011
【図１０】
2010009371.tif 000012
【図１１】
2010009371.tif 000013
【図１２】
2010009371.tif 000014
【図１３】
2010009371.tif 000015
【図１４】
2010009371.tif 000016
【図１５】
2010009371.tif 000017
【図１６】
2010009371.tif 000018