(57)【要約】    【構成】  ネットワークロボットシステム１０は、ロボット１２を含み、ロボット１２はサービスの提供に係る移動経路の生成要求の要求メッセージをロボット制御装置１０２に送信する。ロボット制御装置１０２は、要求メッセージを受けて、ロボット１２同士が衝突しないように、当該要求メッセージについての移動経路を生成する。そして、ロボット制御装置１０２は、移動経路のうちの一定時間（Ｔ秒）分の移動経路についての移動経路データをロボット１２に送信する。    【効果】  他のロボットと干渉することなく、確実に移動することができる。【選択図】  図１
2010231698.tif 000002
【特許請求の範囲】
【請求項１】
自走可能な複数のロボットと、
前記複数のロボットの各々と通信可能に接続されるロボット制御装置とを備える、ネットワークロボットシステムであって、
前記複数のロボットの各々は、
サービスの提供に係る移動経路データの生成要求を前記ロボット制御装置に送信する生成要求送信手段、
前記ロボット制御装置から送信された移動経路データを受信する移動経路データ受信手段、および
前記移動経路データ受信手段によって受信された移動経路データに従って移動する移動手段を備え、
前記ロボット制御装置は、
前記複数のロボットからの前記生成要求を受信する生成要求受信手段、
前記複数のロボット同士が衝突しないように、前記生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および
前記経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ネットワークロボットシステム。
【請求項２】
前記生成要求は前記移動経路データの生成についての優先度を含み、
前記経路生成手段は、前記生成要求受信手段によって前記複数のロボットからの前記生成要求を受信したとき、複数の前記生成要求に応じた移動経路データを、前記優先度の高い順に生成する、請求項１記載のネットワークロボットシステム。
【請求項３】
前記ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行するコミュニケーションロボットを含む、請求項１または２記載のネットワークロボットシステム。
【請求項４】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置であって、
前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信手段、
前記複数のロボット同士が衝突しないように、前記生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および
前記経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ロボット制御装置。
【請求項５】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置のロボット制御方法であって、
（ａ）前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信し、
（ｂ）前記複数のロボット同士が衝突しないように、前記ステップ（ａ）によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成し、そして
（ｃ）前記ステップ（ｂ）によって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する、ロボット制御方法。
【請求項６】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置で実行されるロボット制御プログラムであって、
前記ロボット制御装置のコンピュータに、
前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信ステップ、
前記複数のロボット同士が衝突しないように、前記生成要求受信ステップによって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成ステップ、および
前記経路生成ステップによって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する移動経路データ送信ステップを実行させる、ロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関し、特にたとえば、自走可能なロボットを用いた、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関する。
【背景技術】
【０００２】
この種のネットワークロボットシステムの一例が特許文献１に開示される。この特許文献１のロボット制御システムでは、複数のロボットの各々は、ロボット制御装置からの実行命令信号を受信することによってタスク（自律移動）を実行する。ロボット制御装置では、タスク開始位置（スタート）とタスク終了位置（ゴール）との間に有限個のノードであるサブゴールを設定する。また、ロボット制御装置では、選択した２台のロボットＲＡ，ＲＢのタスクを監視し、衝突可能性がある場合には、各タスクの優先度に応じて、そのような状況を退避または回避するように、ロボットＲＡ，ＲＢの移動経路を変更させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１３３８６３[G05D 1/02,B25J 5/00,B25J 19/06]
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、この特許文献１の技術では、衝突の可能性がある場合には、衝突を退避または回避するように、ロボットの移動経路を変更させる必要があるため、そのための移動経路の計算や退避または回避後に元のタスクを実行する動作に復帰するための移動経路の計算が必要であり、処理が煩雑になってしまう。
【０００５】
それゆえに、この発明の主たる目的は、新規な、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【０００６】
また、この発明の他の目的は、複雑な処理を必要とせず、通信が遅延したり瞬断したりしても、安全に移動を継続させることができる、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、自走可能な複数のロボットと、複数のロボットの各々と通信可能に接続されるロボット制御装置とを備える、ネットワークロボットシステムである。複数のロボットの各々は、サービスの提供に係る移動経路データの生成要求をロボット制御装置に送信する生成要求送信手段、ロボット制御装置から送信された移動経路データを受信する移動経路データ受信手段、および移動経路データ受信手段によって受信された移動経路データに従って移動する移動手段を備える。ロボット制御装置は、複数のロボットからの生成要求を受信する生成要求受信手段、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える。
【０００９】
第１の発明では、ネットワークロボットシステム（１０）は、自走可能な複数のロボット（１２）と、複数のロボットの各々と通信可能に接続されるロボット制御装置（１０２）とを備える。複数のロボットの各々は、生成要求送信手段（６０，Ｓ６３）、移動経路データ受信手段（６０，Ｓ３３）、および移動手段（２４，６０，６６，Ｓ３５）を備えている。一方、ロボット制御装置は、生成要求受信手段（Ｓ３）、経路生成手段（Ｓ１３，Ｓ１５）、および移動経路データ送信手段（Ｓ１７）を備えている。
【００１０】
複数のロボットの各々の生成要求送信手段は、サービスの提供に係る移動経路データの生成要求をロボット制御装置に送信する。ロボット制御装置では、生成要求受信手段は、複数のロボットからの生成要求を受信する。生成要求を受信すると、ロボット制御装置の経路生成手段は、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する。そして、移動経路データ送信手段は、経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する。したがって、ロボットの移動経路データ受信手段は、ロボット制御装置から送信された移動経路データを受信する。そして、移動手段は、移動経路データ受信手段によって受信された移動経路データに従って移動する。
【００１１】
第１の発明によれば、ロボット同士が衝突しないように生成した移動経路のうち、一定時間分のみを通知するので、無線通信が遅延したり瞬断したりした場合であっても、互いに移動経路が干渉せず、安全に移動を継続することができる。
【００１２】
第２の発明は、第１の発明に従属し、生成要求は移動経路データの生成についての優先度を含み、経路生成手段は、生成要求受信手段によって複数のロボットからの生成要求を受信したとき、複数の生成要求に応じた移動経路データを、優先度の高い順に生成する。
【００１３】
第２の発明では、生成要求は、移動経路データの生成についての優先度を含む。経路生成手段は、生成要求受信手段によって複数のロボットからの生成要求を受信したとき、複数の生成要求に応じた移動経路データを、優先度の高い順に生成する。したがって、たとえば、優先度の高い生成要求について既に生成された移動経路に交差しないように、優先度の低い生成要求についての移動経路を生成すればよい。
【００１４】
第２の発明によれば、優先度に従う順序で移動経路を生成するので、移動経路の生成が簡単であり、処理負荷を軽減することができる。
【００１５】
第３の発明は、第１または第２の発明に従属し、ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行するコミュニケーションロボットを含む。
【００１６】
第３の発明では、ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する。したがって、たとえば、人間や他のロボットとの間でコミュニケーションが実行される。
【００１７】
第３の発明によれば、コミュニケーションロボットを用いるので、単に移動するのみならず、様々なサービスを提供することができる。
【００１８】
第４の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置であって、複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信手段、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ロボット制御装置である。
【００１９】
第５の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置のロボット制御方法であって、（ａ）複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信し、（ｂ）複数のロボット同士が衝突しないように、ステップ（ａ）によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成し、そして（ｃ）ステップ（ｂ）によって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する、ロボット制御方法である。
【００２０】
第６の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置で実行されるロボット制御プログラムであって、ロボット制御装置のコンピュータに、複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信ステップ、複数のロボット同士が衝突しないように、生成要求受信ステップによって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成ステップ、および経路生成ステップによって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する移動経路データ送信ステップを実行させる、ロボット制御プログラムである。
【００２１】
第４ないし第６の発明においても、第１の発明と同様に、通信が遅延したり瞬断したりしても、安全にロボットの移動を継続させることができる。
【発明の効果】
【００２２】
この発明によれば、互いに干渉しない移動経路を算出し、移動経路の一定時間分をロボットに通知するので、複雑な処理を必要とせず、通信が遅延したり瞬断したりしても、安全にロボットの移動を継続させることができる。
【００２３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２４】
【図１】図１はこの発明の一実施例のネットワークロボットシステムの構成を示す図解図である。
【図２】図２は図１に示すロボットの外観を正面から見た正面図である。
【図３】図３は図１に示すロボットの電気的な構成を示すブロック図である。
【図４】図４は図１に示す環境センサに含まれるレーザーレンジファインダの計測範囲を示す図解図である。
【図５】図５は図４に示すレーザーレンジファインダをロボットが配置される環境下に複数配置した場合における検出領域を示す図解図である。
【図６】図６は図１に示すロボット制御装置において生成および管理されるリクエストリストを示す図解図である。
【図７】図７は図１に示すロボット制御装置における経路の生成方法を説明するための説明図である。
【図８】図８は図１に示すロボット制御装置とロボットとの間の無線通信おけるデータ到着率に対する遅延時間の関係を示すグラフである。
【図９】図９は図１に示すロボット制御装置の内部メモリのメモリマップの一例を示す図解図である。
【図１０】図１０は図１に示すロボット制御装置のコンピュータ（ＣＰＵ）の全体処理を示すフロー図である。
【図１１】図１１は図３に示すロボットのＣＰＵのサービス提供処理を示すフロー図である。
【図１２】図１２は図３に示すロボットのＣＰＵの送信処理を示すフロー図である。
【発明を実施するための形態】
【００２５】
図１を参照して、この実施例のネットワークロボットシステム（以下、単に「システム」という）１０は、複数のロボット１２を含む。各ロボット１２は、ネットワーク１００を介して、ロボット制御装置１０２に通信可能に接続される。また、ロボット制御装置１０２には、環境センサ１０４が接続される。
【００２６】
ロボット１２は、相互作用指向のロボット（コミュニケーションロボット）であり、主として人間のようなコミュニケーションの対象（コミュニケーション対象）との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。ロボット１２は、受付や道案内などの様々なサービスを提供し、たとえば或る会社やイベント会場などの様々な場所ないし状況（環境）に配置される。
【００２７】
図２を参照して、ロボット１２のハードウェアの構成について説明する。また、図２はこの実施例のロボット１２の外観を示す正面図である。ロボット１２は台車１８を含み、台車１８の下面にはロボット１２を自律移動させる２つの車輪２０および１つの従輪２２が設けられる。２つの車輪２０は車輪モータ２４（図３参照）によってそれぞれ独立に駆動され、台車１８すなわちロボット１２を前後左右の任意方向に動かすことができる。また、従輪２２は車輪２０を補助する補助輪である。したがって、ロボット１２は、配置された空間内を自律制御によって移動可能である。
【００２８】
台車１８の上には、円柱形のセンサ取り付けパネル２６が設けられ、このセンサ取り付けパネル２６には、多数の赤外線距離センサ２８が取り付けられる。これらの赤外線距離センサ２８は、センサ取り付けパネル２６すなわちロボット１２の周囲の物体（人間や障害物など）との距離を測定するものである。
【００２９】
センサ取り付けパネル２６の上には、胴体３０が直立するように設けられる。また、胴体３０の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ２８がさらに設けられ、ロボット１２の前方の主として人間との距離を計測する。また、胴体３０には、その側面側上端部のほぼ中央から伸びる支柱３２が設けられ、支柱３２の上には、全方位カメラ３４が設けられる。全方位カメラ３４は、ロボット１２の周囲を撮影するものであり、後述する眼カメラ５８とは区別される。この全方位カメラ３４としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ２８および全方位カメラ３４の設置位置は、当該部位に限定されず適宜変更され得る。
【００３０】
胴体３０の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節３６Ｒおよび肩関節３６Ｌによって、上腕３８Ｒおよび上腕３８Ｌが設けられる。図示は省略するが、肩関節３６Ｒおよび肩関節３６Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節３６Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕３８Ｒの角度を制御できる。肩関節３６Ｒの或る軸（ヨー軸）は、上腕３８Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節３６Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕３８Ｌの角度を制御できる。肩関節３６Ｌの或る軸（ヨー軸）は、上腕３８Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００３１】
また、上腕３８Ｒおよび上腕３８Ｌのそれぞれの先端には、肘関節４０Ｒおよび肘関節４０Ｌが設けられる。図示は省略するが、肘関節４０Ｒおよび肘関節４０Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕４２Ｒおよび前腕４２Ｌの角度を制御できる。
【００３２】
前腕４２Ｒおよび前腕４２Ｌのそれぞれの先端には、人の手に相当する球体４４Ｒおよび球体４４Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車１８の前面，肩関節３６Ｒと肩関節３６Ｌとを含む肩に相当する部位，上腕３８Ｒ，上腕３８Ｌ，前腕４２Ｒ，前腕４２Ｌ，球体４４Ｒおよび球体４４Ｌには、それぞれ、接触センサ（図３で包括的に示す）４６が設けられる。台車１８の前面の接触センサ４６は、台車１８への人間や障害物の接触を検知する。したがって、ロボット１２は、その自身の移動中に人間や障害物との接触が有ると、それを検知し、直ちに車輪２０の駆動を停止してロボット１２の移動を急停止させることができる。また、その他の接触センサ４６は、当該各部位に触れたかどうかを検知する。なお、接触センサ４６の設置位置は、当該部位に限定されず、適宜な位置（人の胸，腹，脇，背中および腰に相当する位置）に設けられてもよい。
【００３３】
胴体３０の中央上部（人の首に相当する位置）には首関節４８が設けられ、さらにその上には頭部５０が設けられる。図示は省略するが、首関節４８は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１２の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００３４】
頭部５０には、人の口に相当する位置に、スピーカ５２が設けられる。スピーカ５２は、ロボット１２が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク５４Ｒおよびマイク５４Ｌが設けられる。以下、右のマイク５４Ｒと左のマイク５４Ｌとをまとめてマイク５４ということがある。マイク５４は、周囲の音、とりわけコミュニケーションを実行する対象である人間の声を取り込む。さらに、人の目に相当する位置には、眼球部５６Ｒおよび眼球部５６Ｌが設けられる。眼球部５６Ｒおよび眼球部５６Ｌは、それぞれ眼カメラ５８Ｒおよび眼カメラ５８Ｌを含む。以下、右の眼球部５６Ｒと左の眼球部５６Ｌとをまとめて眼球部５６ということがある。また、右の眼カメラ５８Ｒと左の眼カメラ５８Ｌとをまとめて眼カメラ５８ということがある。
【００３５】
眼カメラ５８は、ロボット１２に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ５８は、上述した全方位カメラ３４と同様のカメラを用いることができる。たとえば、眼カメラ５８は、眼球部５６内に固定され、眼球部５６は、眼球支持部（図示せず）を介して頭部５０内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部５０の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部５０の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部５６ないし眼カメラ５８の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ５２，マイク５４および眼カメラ５８の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００３６】
このように、この実施例のロボット１２は、車輪２０の独立２軸駆動，肩関節３６の３自由度（左右で６自由度），肘関節４０の１自由度（左右で２自由度），首関節４８の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００３７】
図３はロボット１２の電気的な構成を示すブロック図である。この図３を参照して、ロボット１２は、ＣＰＵ６０を含む。ＣＰＵ６０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス６２を介して、メモリ６４，モータ制御ボード６６，センサ入力／出力ボード６８および音声入力／出力ボード７０に接続される。
【００３８】
メモリ６４は、図示は省略をするが、ＲＯＭ，ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、ロボット１２の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力（センサ情報）を検知するための検知プログラム、および外部コンピュータ（ロボット制御装置１０２など）との間で必要なデータやコマンド（メッセージ）を送受信するための通信プログラムなどが記録される。また、ＲＡＭは、ワークメモリやバッファメモリとして用いられる。
【００３９】
モータ制御ボード６６は、たとえばＤＳＰで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右眼球部５６Ｒの２軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「右眼球モータ７２」と示す）の回転角度を制御する。同様にして、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、左眼球部５６Ｌの２軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「左眼球モータ７４」と示す）の回転角度を制御する。
【００４０】
また、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右肩関節３６Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと右肘関節４０Ｒの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「右腕モータ７６」と示す）の回転角度を制御する。同様にして、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、左肩関節３６Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと左肘関節４０Ｌの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「左腕モータ７８」と示す）の回転角度を制御する。
【００４１】
さらに、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、首関節４８の直交する３軸のそれぞれの角度を制御する３つのモータ（図３では、まとめて「頭部モータ８０」と示す）の回転角度を制御する。そして、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、車輪２０を駆動する２つのモータ（図３では、まとめて「車輪モータ２４」と示す）の回転角度を制御する。なお、この実施例では、車輪モータ２４を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ２４と同様に直流モータを用いるようにしてもよい。また、ロボット１２の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【００４２】
センサ入力／出力ボード６８もまた、同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ６０に与える。すなわち、赤外線距離センサ２８のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード６８を通じてＣＰＵ６０に入力される。また、全方位カメラ３４からの映像信号が、必要に応じてセンサ入力／出力ボード６８で所定の処理を施してからＣＰＵ６０に入力される。眼カメラ５８からの映像信号も、同様にして、ＣＰＵ６０に入力される。また、上述した複数の接触センサ（図３では、まとめて「接触センサ４６」と示す）からの信号がセンサ入力／出力ボード６８を介してＣＰＵ６０に与えられる。
【００４３】
音声入力／出力ボード７０もまた、同様に、ＤＳＰで構成され、ＣＰＵ６０から与えられる音声合成データに従った音声または声がスピーカ５２から出力される。また、マイク５４からの音声入力が、音声入力／出力ボード７０を介してＣＰＵ６０に与えられる。
【００４４】
また、ＣＰＵ６０は、バス６２を介して通信ＬＡＮボード８２に接続される。通信ＬＡＮボード８２は、ＤＳＰで構成され、ＣＰＵ６０から与えられた送信データを無線通信装置８４に与え、無線通信装置８４から送信データを、ネットワーク１００を介して外部コンピュータ（ロボット制御装置１０２など）に送信する。また、通信ＬＡＮボード８２は、無線通信装置８４を介してデータを受信し、受信したデータをＣＰＵ６０に与える。つまり、ロボット１２は、通信ＬＡＮボード８２および無線通信装置８４によって、ロボット制御装置１０２と無線通信を行うことができる。
【００４５】
さらに、ＣＰＵ６０は、バス６２を介して無線タグ読取装置８６が接続される。無線タグ読取装置８６は、アンテナ（図示せず）を介して、無線タグ（ＲＦＩＤタグ）から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置８６は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調（デコード）してＣＰＵ６０に与える。無線タグは、会社やイベント会場などに居る人間に装着されており、無線タグ読取装置８６は、通信可能範囲内の無線タグを検出する。なお、無線タグは、アクティブ型であってもよいし、無線タグ読み取り装置８６から送信される電波に応じて駆動されるパッシブ型であってもよい。
【００４６】
図１に戻って、ロボット制御装置１０２は、汎用のＰＣないしサーバであり、複数のロボット１２の移動を制御する。この実施例では、ロボット制御装置１０２は、ロボット１２からの移動経路データの生成要求に応答して、ロボット１２間の衝突を避けるように、移動経路データを生成する。そして、生成した移動経路データを、要求元のロボット１２に送信する。
【００４７】
また、図示は省略するが、環境センサ１０４は、複数の距離計測センサ（レーザーレンジファインダ）および複数の無線タグ読取装置を含む。複数のレーザーレンジファインダおよび複数の無線タグ読取装置は、ロボット１２が配置される環境に設置される。この環境センサ１０４からの出力に基づいて、人間を追跡（人間の位置、移動速度および向きを推定）したり、人間を個別に識別したりする。
【００４８】
レーザーレンジファインダは、レーザを照射し、物体に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、レーザーレンジファインダでは、トランスミッタから照射したレーザを回転ミラーで反射させて、前方を扇状に一定角度（たとえば、０．５度）ずつスキャンする。
【００４９】
ここで、レーザーレンジファインダとしては、ＳＩＣＫ社製のレーザーレンジファインダ（型式  LMS 200）を用いることができる。このレーザーレンジファインダを用いた場合には、距離８ｍを±１５ｍｍ程度の誤差で計測可能である。具体的には、図４に示すように、レーザーレンジファインダの計測領域は、半径Ｒ（Ｒ≒８ｍ）の半円形状（扇形）で示される。つまり、レーザーレンジファインダは、その正面方向を中心とした場合に、左右９０度の方向を所定の距離（Ｒ）以内で計測可能である。
【００５０】
なお、使用しているレーザは、日本工業規格  JIS C 6892  「レーザ製品の安全基準」におけるクラス１レーザであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、レーザーレンジファインダのサンプリングレートは３．８５Hzとしてある。これは、歩行するなどにより移動する人間を追跡するためである。
【００５１】
また、図５に示すように、複数（たとえば、６個）のレーザーレンジファインダは、或る建物内の或る領域を検出可能な位置に配置される。ただし、或る建物内の或る領域は、ロボット１２がサービスを提供する領域（移動可能な範囲）である。また、図５においては、レーザーレンジファインダと柱とは丸印で示されるため、それらを区別するために、レーザーレンジファインダを示す丸印には、アルファベット（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ）を記載してある。さらに、図５に示すレーザーレンジファインダの丸印から延びる矢印は、そのレーザーレンジファインダの計測領域の正面方向（図４参照）を示す。この実施例では、２以上のレーザーレンジファインダの計測領域（人間やロボット１２を追跡可能な領域）が重なる領域を検出領域としてあるため、図５に示す例では、斜線を付した閉領域が検出領域となる。
【００５２】
なお、検出領域のうち、玄関を入って直ぐの階段と、奥の窓と、左右の柱で囲まれた領域の幅は１９ｍであり、その奥行きは８ｍである。
【００５３】
また、図示は省略するが、レーザーレンジファインダの各々は、床面から約９０ｃｍの高さに固定される。この高さは、人間の胴体と腕（両腕）とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、システム１０が適用される場所（地域ないし国）や人間の年齢ないし年代（たとえば、子供，大人）に応じて、レーザーレンジファインダを固定する高さを適宜変更するようにしてよい。
【００５４】
なお、レーザーレンジファインダを用いた人間の追跡方法としては、本件出願人が先に出願した特願２００８−００６１０５号（第２５回  日本ロボット学会  学術講演会  2007.9.13-15  「レーザ距離計による適応型人形状モデルを利用した人追跡手法」）に記載されている計測方法を採用することができる。
【００５５】
また、図示は省略するが、複数の無線タグ読取装置は、複数のレーザーレンジファインダによる検出領域に存在するタグすなわちタグを装着ないし所持する人間を検出可能に、一定の距離を隔てた要所に配置される。なお、環境センサ１０４に含まれる無線タグ読取装置としては、ロボット１２に設けられる無線タグ読取装置８６と同じものを用いることができる。
【００５６】
このようなシステム１０では、ロボット１２はサービスの提供のために、目標位置に移動したり、目的の人物に対人するように移動したり、目的の人物を追従したりする。
【００５７】
そのような場合、ロボット１２は他のロボット１２と通信することにより、事前に衝突を回避するようにすることもできるが、ロボット１２間での通信が瞬断してしまうと、ロボット１２同士が衝突してしまうことがある。また、予め算出した現在位置から目標位置までの移動経路に従ってロボット１２を移動させる場合には、人間が多く存在する環境下では、移動途中で人間を回避する行動を頻繁に行う必要があり、また、他のロボット１２などの障害物との衝突を回避する必要があり、処理が複雑になってしまう。
【００５８】
そこで、この実施例では、ロボット制御装置１０２が、他のロボット１２と衝突しないように、各ロボット１２の移動経路を生成することとし、しかも移動経路のうちの一定時間分だけをロボット１２に通知するようにしてある。
【００５９】
ロボット１２が、サービスを提供（実行）する場合、当該サービスの提供に係る移動経路についてのデータ（移動経路データ）の生成要求がロボット制御装置１０２に送信する。詳細な説明は省略するが、要求メッセージは、ロボット１２からロボット制御装置１０２に対して一定時間（たとえば、５００ｍｓ）毎に送信され、対応するサービスの提供を終了すると、要求メッセージの送信も終了する。通信環境にもよるが、一定時間は、１００ｍｓ−５００ｍｓの間で設定可能である。
【００６０】
ただし、要求メッセージは、サービスを提供するための行動（コミュニケーション行動）を実行するロボット１２から送信されるため、常に全部のロボット１２から要求メッセージが送信されるとは限らない。
【００６１】
また、サービスの提供（実行）は、ロボット１２が自律行動によって開始するが、ロボット１２を遠隔で操作するオペレータからの指示に従って開始してもよい。なお、ロボット１２を遠隔で操作するための端末（オペレータ端末）は図１では省略してある。たとえば、オペレータ端末は、直接、または、ネットワーク１００を介して、遠隔操作するロボット１２と通信可能に接続される。
【００６２】
たとえば、ロボット１２からの要求メッセージには、ロボット名、優先度、サービス名、生成方針および位置が含まれる。「ロボット名」は、要求メッセージの発信元（要求元）のロボット１２の名称ないしロボット１２の識別情報（ＩＤ）である。「優先度」は、サービスの重要度に対応しており、経路を生成する場合の優先順位を決定するための数値である。この実施例では、優先度は０から１０までの整数で表わされ、数値が大きいほど優先度が高い。
【００６３】
「サービス名」は、ロボット１２が提供（実行）するサービスの名称である。たとえば、サービスとしては、「速達運搬」、「追従」、「出迎え」、「荷物運搬」、「待機」などが該当する。「速達運搬」は、所定の場所（部屋）または宛先の人間に速達郵便のような急ぎの書類を運搬するサービスである。「追従」は、人間や他のロボット１２の移動に追従するサービスである。「出迎え」は、受付や道案内などのために、人間（客）や他のロボット１２を出迎えるサービスである。「荷物運搬」は、所定の場所（部屋）または宛先の人間に小包のような荷物を運搬するサービスである。「待機」は、他のサービスの提供を待機するサービスである。
【００６４】
「生成方針」は、サービスを提供する場合のロボット１２の移動経路の生成方針を示す情報である。たとえば、「目標位置への最短経路」、「追従（人の後ろを歩く）」、「対人（人の前から近づく）」、「邪魔にならない遠回り経路」などの生成方針がある。「目標位置への最短経路」は、現在位置から目標位置までの移動距離が最短になるように、移動経路を生成する方針である。「追従（人の後ろを歩く）」は、目標の人物を追従するように、移動経路を生成する方針である。「対人（人の前から近づく）」は、目標の人物の前から近づくように、移動経路を生成する方針である。「邪魔にならない遠回り経路」は、現在位置から目標位置までを距離が最大になるように、移動経路を生成する方針である。
【００６５】
「位置」は、ロボット１２の現在位置を示す２次元の座標である。この実施例では、ロボット１２が配置される環境についてのマップに対応するデータ（マップデータ）は、ロボット制御装置１０２の内部メモリ（図示せず）に記憶されており、マップにおけるＸＹ座標と、ロボット１２が配置される環境におけるＸＹ座標とが対応するように設定されている。ただし、ロボット１２は、マップに対応して当該ロボット１２が配置される環境に設定された原点（０，０）からの移動距離および移動方向によって自身の現在位置を把握している。
【００６６】
一方、ロボット制御装置１０２では、要求メッセージを受信すると、その要求メッセージに記載された生成方針に従って移動経路を生成する。ただし、この実施例では、複数のロボット１２についての移動経路を生成するため、ロボット１２同士が衝突しないように移動経路を生成する必要がある。したがって、複数の要求メッセージを受信した場合には、優先度に従う順番で、各ロボット１２の移動経路が干渉しないように、各要求メッセージに応じた移動経路を生成するようにしてある。つまり、優先度の低い要求メッセージについての移動経路は、優先度の高い要求メッセージについて既に生成した移動経路と交差しないように生成される。ただし、当然のことながら、壁、柱、段差のような障害物や人間と衝突しないように、移動経路は生成される。
【００６７】
たとえば、ロボット制御装置１０２では、複数の要求メッセージが受信されると、図６に示したように、優先度に従ってソートされた要求メッセージのリスト（リクエストリスト）が生成され、優先度の大きい順（インデックス番号の小さい順）に、移動経路が生成される。ただし、優先度が同じである場合には、要求メッセージを受信した順番で（リクエスト順に）、要求メッセージについての移動経路が生成される。
【００６８】
なお、他の実施例としては、優先度が同じである場合には、現在位置と目標位置との距離が短い（または長い）方の要求メッセージについての移動経路が先に生成される。
【００６９】
図７は、マップ上に移動経路が生成される様子を示す図解図である。ただし、図７では、マップの一部が示される。また、図７においては、ロボット１２を逆三角形の印Ｒで示し、人間を円形の印Ｈで示してある。ただし、ロボット１２同士を区別するために、参照記号に数字を付加してある。同様に、人間同士を区別するために、参照記号に数字を付加してある。マップは、ロボット１２が配置されるすなわちこのシステム１０が適用される環境についてのものであり、ＸＹ平面で表わされるとともに、グリッド線で分割されている。たとえば、グリッド線は、縦横それぞれ等間隔であり、現実世界において、一枡にロボット１２や人間が収まる大きさ（たとえば、１メートル四方）になるように、その間隔が設定される。
【００７０】
たとえば、図７において、ロボットＲ１およびロボットＲ２について算出（生成）された移動経路Path_1,Path_2は、それぞれ点線および太線で示される。図面では分からないが、点線は開始位置（現在のロボット１２の位置）と目標位置とを直線的に結んでいる。なお、図７では、一例として、「目標位置への最短経路」の生成方針に従って生成された移動経路Path_1,Path_2が示される。
【００７１】
ただし、移動経路Path_1では、目標位置への最短経路を算出した場合、一点鎖線で示すように、ロボットＲ３が存在する枡目（グリッド線で囲まれた領域）上を移動してしまうことになる。したがって、これを回避するように、移動経路Path_1は生成される。図示は省略するが、ロボット１２同士の移動経路Path_iが干渉しないように、つまり、既に生成された移動経路Path_iが記載されている桝目上を通過しないように、他の移動経路Path_iが生成される。
【００７２】
詳細な説明は省略するが、移動経路Path_iの生成方法としては、任意の生成方法を採用することができる。たとえば、特開平９−３１９４３３、特開２００５−３２１９６、特開２００６−２５９９６３、特開２００７−２４９６３１、特開２００７−２４９６３２および特開２００７−２８０２５１に開示されているいずれかの生成方法を採用することができる。
【００７３】
また、人間を追従したり、人間に対人したりするサービスを提供する場合には、目標位置としての人間が移動する場合がある。この場合には、上述した計測方法により、人間の位置と移動速度とをパーティクルフィルタによって推定し、腕と胴体とを３つの円で組み合わせた人形状モデルを用いて人間の身体の方向および腕の動きを推定することにより、一定時間後の目標位置を決定することができる。
【００７４】
また、人間を個別に識別するために、環境センサ１０４として無線タグ読取装置を設けてある。ただし、タグ情報（ＩＤ）と人間（名称など）とを対応付けたテーブルデータが、ロボット制御装置１０２の内部メモリまたはロボット制御装置１０２がアクセス可能なデータベース（図示せず）に記憶されている。したがって、ロボット制御装置１０２は、無線タグ読取装置から無線タグのタグ情報を取得することにより、当該タグ情報に対応する人間が当該無線タグ読取装置の周辺ないし近傍に存在することを知ることができる。
【００７５】
他の実施例としては、無線タグ読取装置に代えてカメラを設け、その撮影画像に基づく顔認識によって、人間を個別に識別するようにしてもよい。かかる場合には、顔画像データや顔の特徴データと人間と対応付けたテーブルデータを、ロボット制御装置１０２の内部メモリなどに記憶しておく必要がある。
【００７６】
ただし、無線タグ読取装置やカメラは、ロボット１２が備えているため、無線タグ読取装置８６や全方位カメラ３４ないし眼カメラ５８を用いることにより、ロボット１２を環境センサ１０４として機能させることもできる。
【００７７】
また、図７において、太線は、生成した移動経路Path_1,Path_2のうち、ロボット１２（Ｒ１，Ｒ２）に通知する一定時間（Ｔ秒）分の移動経路を示す。ここで、算出した移動経路Path_iのうちのＴ秒分は、ロボット１２の移動速度とＴ秒とから距離ｄを算出し、ロボット１２の現在位置を始点として移動経路Path_iから距離ｄに相当する線分を切り出すことにより求められる。
【００７８】
ロボット制御装置１０２は、太線を構成する複数の点の座標についての座標データを、移動経路Path_iのＴ秒分のデータ（移動経路データ）としてロボット１２に通知する。ただし、ロボット１２を制御するための他の必要なデータも通知される。ここで、他の必要なデータとしては、推定した人間や他のロボット１２の位置についての位置データが該当する。また、無線通信による時間遅延が発生するため、Ｔ秒分の移動経路Path_iの座標データを通知する時点における時刻（現在時刻）ｔのデータ（現在時刻データ）も該当する。したがって、ロボット１２では、無線通信による遅延時間を考慮して、Ｔ秒分の移動経路Path_iに従う移動が可能である。
【００７９】
なお、ロボット制御装置１０２は、図示しない内部タイマ（ＲＴＣ）から現在時刻ｔを取得し、それに対応する現在時刻データをロボット１２に通知する。
【００８０】
この実施例では、同時に移動するロボット１２の台数、ロボット１２が移動可能な領域の大きさ、無線遅延の特性およびロボット１２が提供するサービスの特性のような要素に基づいてＴ秒が決定される。
【００８１】
具体的に示すと、Ｔ秒を比較的長く設定した場合（たとえば、５秒）には、長時間無線通信が遮断してもロボット１２は安全に移動することができるが、優先度の低いサービスを提供する他のロボット１２が移動可能な経路を取得することができず、長時間停止してしまう可能性がある。一方、Ｔ秒を短くし過ぎた場合（たとえば、５００ｍｓ）には、無線通信の遅延や無線通信の遮断により、移動経路データを取得できず、ロボット１２が停止する可能性が高い。
【００８２】
また、図８に示すように、ロボット１２が配置される環境においては、無線通信を行った際に、２秒以上遅延するデータが約１％存在することが実験の結果得られた（図８では丸で囲んで示す）。ロボット１２を実際に移動させている環境下における実験であり、Ｔ秒分（２秒分）の移動経路データと他の必要なデータとをロボット制御装置１０２からロボット１２に送信した。たとえば、Ｔ秒分（２秒分）の移動経路データと他の必要なデータとを合わせたデータ量は、１〜２Ｍｂｐｓである。
【００８３】
さらに、或る場所（部屋）に荷物や郵便物を届ける場合には、その場所ないし部屋すなわち目標位置は移動しないため、Ｔ秒を比較的長く設定しても何ら問題無いと考えられる。しかし、人間に対人したり、人間を追従したりするサービスでは、サービスを提供する対象である人間すなわち目標位置が移動する可能性があるため、Ｔ秒を比較的短く設定して、短い時間間隔で移動経路Path_iを算出して、環境の変化に対応する必要があると考えられる。
【００８４】
これらの要素を総合的に考慮して、この実施例では、Ｔ＝２に設定してある。ただし、これは単なる一例であり、限定されるべきでなく、Ｔ秒は上述した各要素を考慮して適宜設定されるべきである。
【００８５】
図９は、図１に示したロボット制御装置１０２の内部メモリ（ハードディスク，ＲＡＭ）のメモリマップ２００を示す。図９に示すように、内部メモリには、プログラム記憶領域２０２およびデータ記憶領域２０４が設けられる。プログラム記憶領域２０２には、ロボット１２を制御するためのプログラム（制御プログラム）が記憶され、制御プログラムは、メイン処理プログラム２０２ａ、通信プログラム２０２ｂ、リスト作成プログラム２０２ｃおよび経路生成プログラム２０２ｄなどによって構成される。
【００８６】
メイン処理プログラム２０２ａは、ロボット制御のメインルーチンを処理するためのプログラムである。通信プログラム２０２ｂは、他の機器と通信するためのプログラムであり、主として、ロボット１２との間の通信処理を実行する。リスト作成プログラム２０２ｃは、図６に示したような要求メッセージのリクエストリストを作成するためのプログラムである。経路生成プログラム２０２ｄは、要求メッセージに記載された生成方針に従って移動経路データを生成するためのプログラムである。
【００８７】
なお、図示は省略するが、制御プログラムには、人間の位置および当該人間を識別するためのプログラムなども含まれる。
【００８８】
データ記憶領域２０４には、リクエストバッファ２０４ａが設けられる。また、データ記憶領域２０４には、識別データ２０４ｂ、マップデータ２０４ｃ、位置データ２０４ｄおよびリクエストリストデータ２４０ｅが記憶される。リクエストバッファ２０４ａは、通信プログラム２０２ｂに従って受信されたロボット１２からの要求メッセージを記憶（一時記憶）するための領域である。識別データ２０４ｂは、各ロボット１２や各人間を識別するための情報（この実施例では、名称やタグ情報（ＩＤ）など）についてのデータである。マップデータ２０４ｃは、ロボット１２が配置される環境についてのマップのデータである。位置データ２０４ｄは、ロボット１２および人間の位置についての座標データである。リクエストリストデータ２０４ｅは、リスト作成プログラム２０２ｃに従って作成されたリクエストリストのデータである。
【００８９】
なお、図示は省略するが、データ記憶領域２０４には、他のデータが記憶されるとともに、制御プログラムの実行に必要なカウンタ（タイマ）やフラグなども設けられる。
【００９０】
具体的には、図１に示したロボット制御装置１０２のコンピュータ（ＣＰＵ）が図１０に示す全体処理のフローを実行する。後述するように、ロボット１２は、一定時間（たとえば、５００ｍｓ）毎に、要求メッセージをロボット制御装置１０２に送信する。詳細な説明は省略するが、図１０に示す全体処理は、一定時間（たとえば、５００ｍｓ）毎に実行される。ただし、全体処理の実行間隔は、ロボット１２からの要求メッセージの送信間隔と同様に、１００ｍｓ−５００ｍｓの間で設定可能であるが、理想的には１００ｍｓ以下である。
【００９１】
図１０に示すように、ＣＰＵは全体処理を開始すると、ステップＳ１で、終了かどうかを判断する。ここでは、ユーザからの終了指示があるかどうかが判断される。ステップＳ１で“ＹＥＳ”であれば、つまり終了であれば、そのまま全体処理を終了する。一方、ステップＳ１で“ＮＯ”であれば、つまり終了でなければ、ステップＳ３で、各ロボット１２から受信した要求メッセージを取り込む。つまり、ＣＰＵは、要求メッセージをリクエストバッファ２０４ａに一時記憶する。
【００９２】
次のステップＳ５で、変数ｉに初期値を設定し（ｉ＝０）、変数Ｎにロボット１２の台数すなわち要求メッセージの総数を設定する。続いて、ステップＳ７では、優先度の高い順に、要求メッセージを０からＮまで並べて、リクエストリストを作成する。つまり、ＣＰＵは、リクエストバッファ２０４ａに記憶されたすべての要求メッセージを用いて、図６に示したようなリクエストリストに対応するリクエストリストデータ２０４ｅを作成する。ただし、優先度が同じ複数の要求メッセージについては、受信した順に並べられる。そして、ステップＳ９では、経路生成の地図に書き込まれた移動経路をクリアする。つまり、ＣＰＵは、マップデータ２０４ｃが示すマップ上に生成された移動経路Path_iを削除する。
【００９３】
次のステップＳ１１では、変数ｉが変数Ｎ以上であるかどうかを判断する。つまり、ＣＰＵは、すべての要求メッセージについての移動経路Path_iを算出および通知したかどうかを判断する。ステップＳ１１で“ＹＥＳ”であれば、つまり変数ｉが変数Ｎ以上であれば、すべての要求メッセージについての移動経路Path_iの算出（生成）および通知を終了したと判断して、ステップＳ１に戻る。一方、ステップＳ１１で“ＮＯ”であれば、つまり変数ｉが変数Ｎ未満であれば、未だ移動経路Path_iを算出していない要求メッセージが有ると判断して、ステップＳ１３で、ｉ番目の要求メッセージに応じた移動経路Path_iを算出する。ただし、移動経路Path_iの算出は、要求メッセージに記載された生成方針に従う。
【００９４】
続いて、ステップＳ１５では、経路生成の地図に、移動経路Path_iをＴ秒（この実施例では、２秒）分書き込む。次のステップＳ１７では、要求元のロボット１２に、現在時刻ｔとＴ秒分の移動経路Path_iとを含む制御情報（制御データ）を通知する。そして、ステップＳ１９で、変数ｉに１加算して（ｉ＝ｉ＋１）、ステップＳ１１に戻る。
【００９５】
図１１は図３に示したロボット１２のＣＰＵ６０のサービス提供処理を示すフロー図である。また、図１２は図３に示したロボット１２のＣＰＵ６０の送信処理を示すフロー図である。これらの処理は、ロボット１２のＣＰＵ６０によって並列的に実行される。
【００９６】
図１１に示すように、ＣＰＵ６０は、サービス提供処理を開始すると、ステップＳ３１で、要求メッセージの送信処理を開始する。つまり、後述する送信処理（タスク）の実行を開始する。次のステップＳ３３では、制御情報を受信したかどうかを判断する。つまり、ＣＰＵ６０は、ロボット制御装置１０２からの制御データを受信したかどうかを判断する。
【００９７】
ステップＳ３３で“ＮＯ”であれば、つまり制御情報を受信していなければ、そのままステップＳ３３に戻る。一方、ステップＳ３３で“ＹＥＳ”であれば、つまり制御情報を受信すれば、ステップＳ３５で、制御情報に従って移動する。つまり、ＣＰＵ６０は、制御情報に含まれるＴ秒分の移動経路データが示す複数の座標に対応する複数の位置を順番に通過するように、モータ制御ボード６６を制御し、車輪モータ２４を駆動する。ただし、このとき、制御情報に含まれる現在時刻ｔを参照して、通信遅延にかかる時間Δｔだけ移動した位置から移動経路データに従って移動される。
【００９８】
次のステップＳ３７では、ロボット１２自身の現在位置を更新する。そして、ステップＳ３９で、目標位置に到着したかどうかを判断する。サービス毎に目標位置は異なるため、実行するサービスに応じて適宜判断される。たとえば、所定の場所ないし部屋に到着したか、所望の人物との距離が一定以下になるまで近づいたかなどが判断される。
【００９９】
ステップＳ３９で“ＮＯ”であれば、つまり目標位置に到着していなければ、ステップＳ３３に戻る。一方、ステップＳ３９で“ＹＥＳ”であれば、つまり目標位置に到着すれば、ステップＳ４１で、提供するサービスに応じコミュニケーション行動を実行する。たとえば、ロボット１２は、ＣＰＵ６０の指示に従って、郵便物や荷物を届けたり、所望の人物に対面したり、所望の人物を追従したりする。そして、ステップＳ４３で、サービス終了かどうかを判断する。ステップＳ４３で“ＮＯ”であれば、つまりサービス終了で無ければ、ステップＳ４１に戻って、提供するサービスに応じたコミュニケーション行動の実行を継続する。一方、ステップＳ４３で“ＹＥＳ”であれば、つまりサービス終了であれば、ステップＳ４５で、要求メッセージの送信処理を終了して、サービス提供処理を終了する。つまり、ＣＰＵ６０は、ステップＳ４５で、図１２に示す送信処理の実行を終了させる。
【０１００】
また、上述したように、ステップＳ３１で要求メッセージの送信処理が開始されると、図１２に示すように、ＣＰＵ６０は送信処理を開始し、ステップＳ６１で、提供するサービスに応じた要求メッセージを生成する。ただし、ロボット名は、ロボット１２自身の名称ないし識別情報であり、「サービス名」は提供するサービスの名称である。また、「優先度」および「生成方針」は、サービス名（サービス）に対応して予め決定されている。「位置」は、ロボット１２の現在位置であり、自身で監視してある。ただし、ロボット制御装置１０２から現在位置を取得するようにしてもよい。または、ロボット制御装置１０２から現在位置を取得して、それによって自身で監視している現在位置を修正してもよい。
【０１０１】
次のステップＳ６３では、要求メッセージをロボット制御装置１０２に送信する。続いて、ステップＳ６５で、タイマをリセットおよびスタートする。なお、図３では省略したが、タイマは、ロボット１２に内蔵されている。続いて、ステップＳ６７では、送信終了かどうかを判断する。つまり、上述したように、ステップＳ４５で、要求メッセージの送信処理が終了されたかどうかを判断する。
【０１０２】
ステップＳ６７で“ＹＥＳ”であれば、つまり送信終了であれば、そのまま送信処理を終了する。一方、ステップＳ６７で“ＮＯ”であれば、つまり送信終了でなければ、ステップＳ６９で、一定時間（たとえば、５００ｍｓ）が経過したかどうかを判断する。つまり、ＣＰＵ６０は、タイマのカウント値が５００ｍｓ以上になったかどうかを判断する。ステップＳ６９で“ＮＯ”であれば、つまり一定時間を経過していなければ、同じステップＳ６９に戻って、一定時間の経過を待機する。一方、ステップＳ６９で“ＹＥＳ”であれば、つまり一定時間を経過すれば、ステップＳ６１に戻る。したがって、一定時間毎に、要求メッセージが送信される。
【０１０３】
なお、ステップＳ６９で“ＹＥＳ”となり、ステップＳ６１に戻ると、「位置」のみが変更された要求メッセージが生成される。つまり、一回の送信処理では、２回目以降の要求メッセージでは、「位置」のみを、ロボット１２の現在位置の更新に従って更新すればよい。
【０１０４】
この実施例によれば、ロボット同士が衝突しないように生成した移動経路のうち、Ｔ秒分のみを通知するので、無線通信が遅延したり瞬断したりした場合であっても、互いに移動経路が干渉せず、安全に移動を継続することができる。また、比較的短い時間で、移動経路が更新されるため、環境の動的な変化に対応してロボットを移動させることができる。
【０１０５】
なお、この実施例では、Ｔ秒分の移動経路をロボットに通知するようにしたが、移動して良い領域をロボットに通知するようにしてもよい。かかる場合には、移動して良い領域およびその領域までの経路が他のロボットと干渉しないようにする必要がある。
【０１０６】
また、この実施例では、現在位置から目標位置までの移動経路が干渉しないように、各ロボットの移動経路を計算するようにしたが、少なくともＴ秒分の移動経路が干渉しないように、各ロボットの移動経路を計算するようにしてもよい。
【符号の説明】
【０１０７】
１０  …ネットワークロボットシステム
１２  …ロボット
２４，７２，７４，７６，７８，８０  …モータ
２８  …赤外線距離センサ
３４  …全方位カメラ
５２  …スピーカ
５４  …マイク
５８  …眼カメラ
６０  …ＣＰＵ
６４  …メモリ
６６  …モータ制御ボード
６８  …センサ入力／出力ボード
７０  …音声入力／出力ボード
８２  …通信ＬＡＮボード
１６ｃ  …加速度センサ
８４  …無線通信装置
８６  …無線タグ読取装置
１００  …ネットワーク
１０２  …ロボット制御装置
１０４  …環境センサ
【図１】
2010231698.tif 000003
【図２】
2010231698.tif 000004
【図３】
2010231698.tif 000005
【図４】
2010231698.tif 000006
【図５】
2010231698.tif 000007
【図６】
2010231698.tif 000008
【図７】
2010231698.tif 000009
【図８】
2010231698.tif 000010
【図９】
2010231698.tif 000011
【図１０】
2010231698.tif 000012
【図１１】
2010231698.tif 000013
【図１２】
2010231698.tif 000014