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