ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラム
【構成】 ネットワークロボットシステム10は、ロボット12を含み、ロボット12はサービスの提供に係る移動経路の生成要求の要求メッセージをロボット制御装置102に送信する。ロボット制御装置102は、要求メッセージを受けて、ロボット12同士が衝突しないように、当該要求メッセージについての移動経路を生成する。そして、ロボット制御装置102は、移動経路のうちの一定時間(T秒)分の移動経路についての移動経路データをロボット12に送信する。
【効果】 他のロボットと干渉することなく、確実に移動することができる。
【効果】 他のロボットと干渉することなく、確実に移動することができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関し、特にたとえば、自走可能なロボットを用いた、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関する。
【背景技術】
【0002】
この種のネットワークロボットシステムの一例が特許文献1に開示される。この特許文献1のロボット制御システムでは、複数のロボットの各々は、ロボット制御装置からの実行命令信号を受信することによってタスク(自律移動)を実行する。ロボット制御装置では、タスク開始位置(スタート)とタスク終了位置(ゴール)との間に有限個のノードであるサブゴールを設定する。また、ロボット制御装置では、選択した2台のロボットRA,RBのタスクを監視し、衝突可能性がある場合には、各タスクの優先度に応じて、そのような状況を退避または回避するように、ロボットRA,RBの移動経路を変更させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−133863[G05D 1/02,B25J 5/00,B25J 19/06]
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、この特許文献1の技術では、衝突の可能性がある場合には、衝突を退避または回避するように、ロボットの移動経路を変更させる必要があるため、そのための移動経路の計算や退避または回避後に元のタスクを実行する動作に復帰するための移動経路の計算が必要であり、処理が煩雑になってしまう。
【0005】
それゆえに、この発明の主たる目的は、新規な、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【0006】
また、この発明の他の目的は、複雑な処理を必要とせず、通信が遅延したり瞬断したりしても、安全に移動を継続させることができる、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、自走可能な複数のロボットと、複数のロボットの各々と通信可能に接続されるロボット制御装置とを備える、ネットワークロボットシステムである。複数のロボットの各々は、サービスの提供に係る移動経路データの生成要求をロボット制御装置に送信する生成要求送信手段、ロボット制御装置から送信された移動経路データを受信する移動経路データ受信手段、および移動経路データ受信手段によって受信された移動経路データに従って移動する移動手段を備える。ロボット制御装置は、複数のロボットからの生成要求を受信する生成要求受信手段、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える。
【0009】
第1の発明では、ネットワークロボットシステム(10)は、自走可能な複数のロボット(12)と、複数のロボットの各々と通信可能に接続されるロボット制御装置(102)とを備える。複数のロボットの各々は、生成要求送信手段(60,S63)、移動経路データ受信手段(60,S33)、および移動手段(24,60,66,S35)を備えている。一方、ロボット制御装置は、生成要求受信手段(S3)、経路生成手段(S13,S15)、および移動経路データ送信手段(S17)を備えている。
【0010】
複数のロボットの各々の生成要求送信手段は、サービスの提供に係る移動経路データの生成要求をロボット制御装置に送信する。ロボット制御装置では、生成要求受信手段は、複数のロボットからの生成要求を受信する。生成要求を受信すると、ロボット制御装置の経路生成手段は、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する。そして、移動経路データ送信手段は、経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する。したがって、ロボットの移動経路データ受信手段は、ロボット制御装置から送信された移動経路データを受信する。そして、移動手段は、移動経路データ受信手段によって受信された移動経路データに従って移動する。
【0011】
第1の発明によれば、ロボット同士が衝突しないように生成した移動経路のうち、一定時間分のみを通知するので、無線通信が遅延したり瞬断したりした場合であっても、互いに移動経路が干渉せず、安全に移動を継続することができる。
【0012】
第2の発明は、第1の発明に従属し、生成要求は移動経路データの生成についての優先度を含み、経路生成手段は、生成要求受信手段によって複数のロボットからの生成要求を受信したとき、複数の生成要求に応じた移動経路データを、優先度の高い順に生成する。
【0013】
第2の発明では、生成要求は、移動経路データの生成についての優先度を含む。経路生成手段は、生成要求受信手段によって複数のロボットからの生成要求を受信したとき、複数の生成要求に応じた移動経路データを、優先度の高い順に生成する。したがって、たとえば、優先度の高い生成要求について既に生成された移動経路に交差しないように、優先度の低い生成要求についての移動経路を生成すればよい。
【0014】
第2の発明によれば、優先度に従う順序で移動経路を生成するので、移動経路の生成が簡単であり、処理負荷を軽減することができる。
【0015】
第3の発明は、第1または第2の発明に従属し、ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行するコミュニケーションロボットを含む。
【0016】
第3の発明では、ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する。したがって、たとえば、人間や他のロボットとの間でコミュニケーションが実行される。
【0017】
第3の発明によれば、コミュニケーションロボットを用いるので、単に移動するのみならず、様々なサービスを提供することができる。
【0018】
第4の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置であって、複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信手段、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ロボット制御装置である。
【0019】
第5の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置のロボット制御方法であって、(a)複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信し、(b)複数のロボット同士が衝突しないように、ステップ(a)によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成し、そして(c)ステップ(b)によって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する、ロボット制御方法である。
【0020】
第6の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置で実行されるロボット制御プログラムであって、ロボット制御装置のコンピュータに、複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信ステップ、複数のロボット同士が衝突しないように、生成要求受信ステップによって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成ステップ、および経路生成ステップによって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する移動経路データ送信ステップを実行させる、ロボット制御プログラムである。
【0021】
第4ないし第6の発明においても、第1の発明と同様に、通信が遅延したり瞬断したりしても、安全にロボットの移動を継続させることができる。
【発明の効果】
【0022】
この発明によれば、互いに干渉しない移動経路を算出し、移動経路の一定時間分をロボットに通知するので、複雑な処理を必要とせず、通信が遅延したり瞬断したりしても、安全にロボットの移動を継続させることができる。
【0023】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0024】
【図1】図1はこの発明の一実施例のネットワークロボットシステムの構成を示す図解図である。
【図2】図2は図1に示すロボットの外観を正面から見た正面図である。
【図3】図3は図1に示すロボットの電気的な構成を示すブロック図である。
【図4】図4は図1に示す環境センサに含まれるレーザーレンジファインダの計測範囲を示す図解図である。
【図5】図5は図4に示すレーザーレンジファインダをロボットが配置される環境下に複数配置した場合における検出領域を示す図解図である。
【図6】図6は図1に示すロボット制御装置において生成および管理されるリクエストリストを示す図解図である。
【図7】図7は図1に示すロボット制御装置における経路の生成方法を説明するための説明図である。
【図8】図8は図1に示すロボット制御装置とロボットとの間の無線通信おけるデータ到着率に対する遅延時間の関係を示すグラフである。
【図9】図9は図1に示すロボット制御装置の内部メモリのメモリマップの一例を示す図解図である。
【図10】図10は図1に示すロボット制御装置のコンピュータ(CPU)の全体処理を示すフロー図である。
【図11】図11は図3に示すロボットのCPUのサービス提供処理を示すフロー図である。
【図12】図12は図3に示すロボットのCPUの送信処理を示すフロー図である。
【発明を実施するための形態】
【0025】
図1を参照して、この実施例のネットワークロボットシステム(以下、単に「システム」という)10は、複数のロボット12を含む。各ロボット12は、ネットワーク100を介して、ロボット制御装置102に通信可能に接続される。また、ロボット制御装置102には、環境センサ104が接続される。
【0026】
ロボット12は、相互作用指向のロボット(コミュニケーションロボット)であり、主として人間のようなコミュニケーションの対象(コミュニケーション対象)との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。ロボット12は、受付や道案内などの様々なサービスを提供し、たとえば或る会社やイベント会場などの様々な場所ないし状況(環境)に配置される。
【0027】
図2を参照して、ロボット12のハードウェアの構成について説明する。また、図2はこの実施例のロボット12の外観を示す正面図である。ロボット12は台車18を含み、台車18の下面にはロボット12を自律移動させる2つの車輪20および1つの従輪22が設けられる。2つの車輪20は車輪モータ24(図3参照)によってそれぞれ独立に駆動され、台車18すなわちロボット12を前後左右の任意方向に動かすことができる。また、従輪22は車輪20を補助する補助輪である。したがって、ロボット12は、配置された空間内を自律制御によって移動可能である。
【0028】
台車18の上には、円柱形のセンサ取り付けパネル26が設けられ、このセンサ取り付けパネル26には、多数の赤外線距離センサ28が取り付けられる。これらの赤外線距離センサ28は、センサ取り付けパネル26すなわちロボット12の周囲の物体(人間や障害物など)との距離を測定するものである。
【0029】
センサ取り付けパネル26の上には、胴体30が直立するように設けられる。また、胴体30の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ28がさらに設けられ、ロボット12の前方の主として人間との距離を計測する。また、胴体30には、その側面側上端部のほぼ中央から伸びる支柱32が設けられ、支柱32の上には、全方位カメラ34が設けられる。全方位カメラ34は、ロボット12の周囲を撮影するものであり、後述する眼カメラ58とは区別される。この全方位カメラ34としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ28および全方位カメラ34の設置位置は、当該部位に限定されず適宜変更され得る。
【0030】
胴体30の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節36Rおよび肩関節36Lによって、上腕38Rおよび上腕38Lが設けられる。図示は省略するが、肩関節36Rおよび肩関節36Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節36Rは、直交する3軸のそれぞれの軸廻りにおいて上腕38Rの角度を制御できる。肩関節36Rの或る軸(ヨー軸)は、上腕38Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節36Lは、直交する3軸のそれぞれの軸廻りにおいて上腕38Lの角度を制御できる。肩関節36Lの或る軸(ヨー軸)は、上腕38Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0031】
また、上腕38Rおよび上腕38Lのそれぞれの先端には、肘関節40Rおよび肘関節40Lが設けられる。図示は省略するが、肘関節40Rおよび肘関節40Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕42Rおよび前腕42Lの角度を制御できる。
【0032】
前腕42Rおよび前腕42Lのそれぞれの先端には、人の手に相当する球体44Rおよび球体44Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車18の前面,肩関節36Rと肩関節36Lとを含む肩に相当する部位,上腕38R,上腕38L,前腕42R,前腕42L,球体44Rおよび球体44Lには、それぞれ、接触センサ(図3で包括的に示す)46が設けられる。台車18の前面の接触センサ46は、台車18への人間や障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に人間や障害物との接触が有ると、それを検知し、直ちに車輪20の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ46は、当該各部位に触れたかどうかを検知する。なお、接触センサ46の設置位置は、当該部位に限定されず、適宜な位置(人の胸,腹,脇,背中および腰に相当する位置)に設けられてもよい。
【0033】
胴体30の中央上部(人の首に相当する位置)には首関節48が設けられ、さらにその上には頭部50が設けられる。図示は省略するが、首関節48は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0034】
頭部50には、人の口に相当する位置に、スピーカ52が設けられる。スピーカ52は、ロボット12が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク54Rおよびマイク54Lが設けられる。以下、右のマイク54Rと左のマイク54Lとをまとめてマイク54ということがある。マイク54は、周囲の音、とりわけコミュニケーションを実行する対象である人間の声を取り込む。さらに、人の目に相当する位置には、眼球部56Rおよび眼球部56Lが設けられる。眼球部56Rおよび眼球部56Lは、それぞれ眼カメラ58Rおよび眼カメラ58Lを含む。以下、右の眼球部56Rと左の眼球部56Lとをまとめて眼球部56ということがある。また、右の眼カメラ58Rと左の眼カメラ58Lとをまとめて眼カメラ58ということがある。
【0035】
眼カメラ58は、ロボット12に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ58は、上述した全方位カメラ34と同様のカメラを用いることができる。たとえば、眼カメラ58は、眼球部56内に固定され、眼球部56は、眼球支持部(図示せず)を介して頭部50内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部50の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部50の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部56ないし眼カメラ58の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ52,マイク54および眼カメラ58の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0036】
このように、この実施例のロボット12は、車輪20の独立2軸駆動,肩関節36の3自由度(左右で6自由度),肘関節40の1自由度(左右で2自由度),首関節48の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0037】
図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、CPU60を含む。CPU60は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス62を介して、メモリ64,モータ制御ボード66,センサ入力/出力ボード68および音声入力/出力ボード70に接続される。
【0038】
メモリ64は、図示は省略をするが、ROM,HDDおよびRAMを含む。ROMおよびHDDには、ロボット12の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力(センサ情報)を検知するための検知プログラム、および外部コンピュータ(ロボット制御装置102など)との間で必要なデータやコマンド(メッセージ)を送受信するための通信プログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。
【0039】
モータ制御ボード66は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード66は、CPU60からの制御データを受け、右眼球部56Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ72」と示す)の回転角度を制御する。同様にして、モータ制御ボード66は、CPU60からの制御データを受け、左眼球部56Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ74」と示す)の回転角度を制御する。
【0040】
また、モータ制御ボード66は、CPU60からの制御データを受け、右肩関節36Rの直交する3軸のそれぞれの角度を制御する3つのモータと右肘関節40Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ76」と示す)の回転角度を制御する。同様にして、モータ制御ボード66は、CPU60からの制御データを受け、左肩関節36Lの直交する3軸のそれぞれの角度を制御する3つのモータと左肘関節40Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ78」と示す)の回転角度を制御する。
【0041】
さらに、モータ制御ボード66は、CPU60からの制御データを受け、首関節48の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ80」と示す)の回転角度を制御する。そして、モータ制御ボード66は、CPU60からの制御データを受け、車輪20を駆動する2つのモータ(図3では、まとめて「車輪モータ24」と示す)の回転角度を制御する。なお、この実施例では、車輪モータ24を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ24と同様に直流モータを用いるようにしてもよい。また、ロボット12の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【0042】
センサ入力/出力ボード68もまた、同様に、DSPで構成され、各センサからの信号を取り込んでCPU60に与える。すなわち、赤外線距離センサ28のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード68を通じてCPU60に入力される。また、全方位カメラ34からの映像信号が、必要に応じてセンサ入力/出力ボード68で所定の処理を施してからCPU60に入力される。眼カメラ58からの映像信号も、同様にして、CPU60に入力される。また、上述した複数の接触センサ(図3では、まとめて「接触センサ46」と示す)からの信号がセンサ入力/出力ボード68を介してCPU60に与えられる。
【0043】
音声入力/出力ボード70もまた、同様に、DSPで構成され、CPU60から与えられる音声合成データに従った音声または声がスピーカ52から出力される。また、マイク54からの音声入力が、音声入力/出力ボード70を介してCPU60に与えられる。
【0044】
また、CPU60は、バス62を介して通信LANボード82に接続される。通信LANボード82は、DSPで構成され、CPU60から与えられた送信データを無線通信装置84に与え、無線通信装置84から送信データを、ネットワーク100を介して外部コンピュータ(ロボット制御装置102など)に送信する。また、通信LANボード82は、無線通信装置84を介してデータを受信し、受信したデータをCPU60に与える。つまり、ロボット12は、通信LANボード82および無線通信装置84によって、ロボット制御装置102と無線通信を行うことができる。
【0045】
さらに、CPU60は、バス62を介して無線タグ読取装置86が接続される。無線タグ読取装置86は、アンテナ(図示せず)を介して、無線タグ(RFIDタグ)から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置86は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調(デコード)してCPU60に与える。無線タグは、会社やイベント会場などに居る人間に装着されており、無線タグ読取装置86は、通信可能範囲内の無線タグを検出する。なお、無線タグは、アクティブ型であってもよいし、無線タグ読み取り装置86から送信される電波に応じて駆動されるパッシブ型であってもよい。
【0046】
図1に戻って、ロボット制御装置102は、汎用のPCないしサーバであり、複数のロボット12の移動を制御する。この実施例では、ロボット制御装置102は、ロボット12からの移動経路データの生成要求に応答して、ロボット12間の衝突を避けるように、移動経路データを生成する。そして、生成した移動経路データを、要求元のロボット12に送信する。
【0047】
また、図示は省略するが、環境センサ104は、複数の距離計測センサ(レーザーレンジファインダ)および複数の無線タグ読取装置を含む。複数のレーザーレンジファインダおよび複数の無線タグ読取装置は、ロボット12が配置される環境に設置される。この環境センサ104からの出力に基づいて、人間を追跡(人間の位置、移動速度および向きを推定)したり、人間を個別に識別したりする。
【0048】
レーザーレンジファインダは、レーザを照射し、物体に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、レーザーレンジファインダでは、トランスミッタから照射したレーザを回転ミラーで反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。
【0049】
ここで、レーザーレンジファインダとしては、SICK社製のレーザーレンジファインダ(型式 LMS 200)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±15mm程度の誤差で計測可能である。具体的には、図4に示すように、レーザーレンジファインダの計測領域は、半径R(R≒8m)の半円形状(扇形)で示される。つまり、レーザーレンジファインダは、その正面方向を中心とした場合に、左右90度の方向を所定の距離(R)以内で計測可能である。
【0050】
なお、使用しているレーザは、日本工業規格 JIS C 6892 「レーザ製品の安全基準」におけるクラス1レーザであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、レーザーレンジファインダのサンプリングレートは3.85Hzとしてある。これは、歩行するなどにより移動する人間を追跡するためである。
【0051】
また、図5に示すように、複数(たとえば、6個)のレーザーレンジファインダは、或る建物内の或る領域を検出可能な位置に配置される。ただし、或る建物内の或る領域は、ロボット12がサービスを提供する領域(移動可能な範囲)である。また、図5においては、レーザーレンジファインダと柱とは丸印で示されるため、それらを区別するために、レーザーレンジファインダを示す丸印には、アルファベット(A,B,C,D,E,F)を記載してある。さらに、図5に示すレーザーレンジファインダの丸印から延びる矢印は、そのレーザーレンジファインダの計測領域の正面方向(図4参照)を示す。この実施例では、2以上のレーザーレンジファインダの計測領域(人間やロボット12を追跡可能な領域)が重なる領域を検出領域としてあるため、図5に示す例では、斜線を付した閉領域が検出領域となる。
【0052】
なお、検出領域のうち、玄関を入って直ぐの階段と、奥の窓と、左右の柱で囲まれた領域の幅は19mであり、その奥行きは8mである。
【0053】
また、図示は省略するが、レーザーレンジファインダの各々は、床面から約90cmの高さに固定される。この高さは、人間の胴体と腕(両腕)とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、システム10が適用される場所(地域ないし国)や人間の年齢ないし年代(たとえば、子供,大人)に応じて、レーザーレンジファインダを固定する高さを適宜変更するようにしてよい。
【0054】
なお、レーザーレンジファインダを用いた人間の追跡方法としては、本件出願人が先に出願した特願2008−006105号(第25回 日本ロボット学会 学術講演会 2007.9.13-15 「レーザ距離計による適応型人形状モデルを利用した人追跡手法」)に記載されている計測方法を採用することができる。
【0055】
また、図示は省略するが、複数の無線タグ読取装置は、複数のレーザーレンジファインダによる検出領域に存在するタグすなわちタグを装着ないし所持する人間を検出可能に、一定の距離を隔てた要所に配置される。なお、環境センサ104に含まれる無線タグ読取装置としては、ロボット12に設けられる無線タグ読取装置86と同じものを用いることができる。
【0056】
このようなシステム10では、ロボット12はサービスの提供のために、目標位置に移動したり、目的の人物に対人するように移動したり、目的の人物を追従したりする。
【0057】
そのような場合、ロボット12は他のロボット12と通信することにより、事前に衝突を回避するようにすることもできるが、ロボット12間での通信が瞬断してしまうと、ロボット12同士が衝突してしまうことがある。また、予め算出した現在位置から目標位置までの移動経路に従ってロボット12を移動させる場合には、人間が多く存在する環境下では、移動途中で人間を回避する行動を頻繁に行う必要があり、また、他のロボット12などの障害物との衝突を回避する必要があり、処理が複雑になってしまう。
【0058】
そこで、この実施例では、ロボット制御装置102が、他のロボット12と衝突しないように、各ロボット12の移動経路を生成することとし、しかも移動経路のうちの一定時間分だけをロボット12に通知するようにしてある。
【0059】
ロボット12が、サービスを提供(実行)する場合、当該サービスの提供に係る移動経路についてのデータ(移動経路データ)の生成要求がロボット制御装置102に送信する。詳細な説明は省略するが、要求メッセージは、ロボット12からロボット制御装置102に対して一定時間(たとえば、500ms)毎に送信され、対応するサービスの提供を終了すると、要求メッセージの送信も終了する。通信環境にもよるが、一定時間は、100ms−500msの間で設定可能である。
【0060】
ただし、要求メッセージは、サービスを提供するための行動(コミュニケーション行動)を実行するロボット12から送信されるため、常に全部のロボット12から要求メッセージが送信されるとは限らない。
【0061】
また、サービスの提供(実行)は、ロボット12が自律行動によって開始するが、ロボット12を遠隔で操作するオペレータからの指示に従って開始してもよい。なお、ロボット12を遠隔で操作するための端末(オペレータ端末)は図1では省略してある。たとえば、オペレータ端末は、直接、または、ネットワーク100を介して、遠隔操作するロボット12と通信可能に接続される。
【0062】
たとえば、ロボット12からの要求メッセージには、ロボット名、優先度、サービス名、生成方針および位置が含まれる。「ロボット名」は、要求メッセージの発信元(要求元)のロボット12の名称ないしロボット12の識別情報(ID)である。「優先度」は、サービスの重要度に対応しており、経路を生成する場合の優先順位を決定するための数値である。この実施例では、優先度は0から10までの整数で表わされ、数値が大きいほど優先度が高い。
【0063】
「サービス名」は、ロボット12が提供(実行)するサービスの名称である。たとえば、サービスとしては、「速達運搬」、「追従」、「出迎え」、「荷物運搬」、「待機」などが該当する。「速達運搬」は、所定の場所(部屋)または宛先の人間に速達郵便のような急ぎの書類を運搬するサービスである。「追従」は、人間や他のロボット12の移動に追従するサービスである。「出迎え」は、受付や道案内などのために、人間(客)や他のロボット12を出迎えるサービスである。「荷物運搬」は、所定の場所(部屋)または宛先の人間に小包のような荷物を運搬するサービスである。「待機」は、他のサービスの提供を待機するサービスである。
【0064】
「生成方針」は、サービスを提供する場合のロボット12の移動経路の生成方針を示す情報である。たとえば、「目標位置への最短経路」、「追従(人の後ろを歩く)」、「対人(人の前から近づく)」、「邪魔にならない遠回り経路」などの生成方針がある。「目標位置への最短経路」は、現在位置から目標位置までの移動距離が最短になるように、移動経路を生成する方針である。「追従(人の後ろを歩く)」は、目標の人物を追従するように、移動経路を生成する方針である。「対人(人の前から近づく)」は、目標の人物の前から近づくように、移動経路を生成する方針である。「邪魔にならない遠回り経路」は、現在位置から目標位置までを距離が最大になるように、移動経路を生成する方針である。
【0065】
「位置」は、ロボット12の現在位置を示す2次元の座標である。この実施例では、ロボット12が配置される環境についてのマップに対応するデータ(マップデータ)は、ロボット制御装置102の内部メモリ(図示せず)に記憶されており、マップにおけるXY座標と、ロボット12が配置される環境におけるXY座標とが対応するように設定されている。ただし、ロボット12は、マップに対応して当該ロボット12が配置される環境に設定された原点(0,0)からの移動距離および移動方向によって自身の現在位置を把握している。
【0066】
一方、ロボット制御装置102では、要求メッセージを受信すると、その要求メッセージに記載された生成方針に従って移動経路を生成する。ただし、この実施例では、複数のロボット12についての移動経路を生成するため、ロボット12同士が衝突しないように移動経路を生成する必要がある。したがって、複数の要求メッセージを受信した場合には、優先度に従う順番で、各ロボット12の移動経路が干渉しないように、各要求メッセージに応じた移動経路を生成するようにしてある。つまり、優先度の低い要求メッセージについての移動経路は、優先度の高い要求メッセージについて既に生成した移動経路と交差しないように生成される。ただし、当然のことながら、壁、柱、段差のような障害物や人間と衝突しないように、移動経路は生成される。
【0067】
たとえば、ロボット制御装置102では、複数の要求メッセージが受信されると、図6に示したように、優先度に従ってソートされた要求メッセージのリスト(リクエストリスト)が生成され、優先度の大きい順(インデックス番号の小さい順)に、移動経路が生成される。ただし、優先度が同じである場合には、要求メッセージを受信した順番で(リクエスト順に)、要求メッセージについての移動経路が生成される。
【0068】
なお、他の実施例としては、優先度が同じである場合には、現在位置と目標位置との距離が短い(または長い)方の要求メッセージについての移動経路が先に生成される。
【0069】
図7は、マップ上に移動経路が生成される様子を示す図解図である。ただし、図7では、マップの一部が示される。また、図7においては、ロボット12を逆三角形の印Rで示し、人間を円形の印Hで示してある。ただし、ロボット12同士を区別するために、参照記号に数字を付加してある。同様に、人間同士を区別するために、参照記号に数字を付加してある。マップは、ロボット12が配置されるすなわちこのシステム10が適用される環境についてのものであり、XY平面で表わされるとともに、グリッド線で分割されている。たとえば、グリッド線は、縦横それぞれ等間隔であり、現実世界において、一枡にロボット12や人間が収まる大きさ(たとえば、1メートル四方)になるように、その間隔が設定される。
【0070】
たとえば、図7において、ロボットR1およびロボットR2について算出(生成)された移動経路Path_1,Path_2は、それぞれ点線および太線で示される。図面では分からないが、点線は開始位置(現在のロボット12の位置)と目標位置とを直線的に結んでいる。なお、図7では、一例として、「目標位置への最短経路」の生成方針に従って生成された移動経路Path_1,Path_2が示される。
【0071】
ただし、移動経路Path_1では、目標位置への最短経路を算出した場合、一点鎖線で示すように、ロボットR3が存在する枡目(グリッド線で囲まれた領域)上を移動してしまうことになる。したがって、これを回避するように、移動経路Path_1は生成される。図示は省略するが、ロボット12同士の移動経路Path_iが干渉しないように、つまり、既に生成された移動経路Path_iが記載されている桝目上を通過しないように、他の移動経路Path_iが生成される。
【0072】
詳細な説明は省略するが、移動経路Path_iの生成方法としては、任意の生成方法を採用することができる。たとえば、特開平9−319433、特開2005−32196、特開2006−259963、特開2007−249631、特開2007−249632および特開2007−280251に開示されているいずれかの生成方法を採用することができる。
【0073】
また、人間を追従したり、人間に対人したりするサービスを提供する場合には、目標位置としての人間が移動する場合がある。この場合には、上述した計測方法により、人間の位置と移動速度とをパーティクルフィルタによって推定し、腕と胴体とを3つの円で組み合わせた人形状モデルを用いて人間の身体の方向および腕の動きを推定することにより、一定時間後の目標位置を決定することができる。
【0074】
また、人間を個別に識別するために、環境センサ104として無線タグ読取装置を設けてある。ただし、タグ情報(ID)と人間(名称など)とを対応付けたテーブルデータが、ロボット制御装置102の内部メモリまたはロボット制御装置102がアクセス可能なデータベース(図示せず)に記憶されている。したがって、ロボット制御装置102は、無線タグ読取装置から無線タグのタグ情報を取得することにより、当該タグ情報に対応する人間が当該無線タグ読取装置の周辺ないし近傍に存在することを知ることができる。
【0075】
他の実施例としては、無線タグ読取装置に代えてカメラを設け、その撮影画像に基づく顔認識によって、人間を個別に識別するようにしてもよい。かかる場合には、顔画像データや顔の特徴データと人間と対応付けたテーブルデータを、ロボット制御装置102の内部メモリなどに記憶しておく必要がある。
【0076】
ただし、無線タグ読取装置やカメラは、ロボット12が備えているため、無線タグ読取装置86や全方位カメラ34ないし眼カメラ58を用いることにより、ロボット12を環境センサ104として機能させることもできる。
【0077】
また、図7において、太線は、生成した移動経路Path_1,Path_2のうち、ロボット12(R1,R2)に通知する一定時間(T秒)分の移動経路を示す。ここで、算出した移動経路Path_iのうちのT秒分は、ロボット12の移動速度とT秒とから距離dを算出し、ロボット12の現在位置を始点として移動経路Path_iから距離dに相当する線分を切り出すことにより求められる。
【0078】
ロボット制御装置102は、太線を構成する複数の点の座標についての座標データを、移動経路Path_iのT秒分のデータ(移動経路データ)としてロボット12に通知する。ただし、ロボット12を制御するための他の必要なデータも通知される。ここで、他の必要なデータとしては、推定した人間や他のロボット12の位置についての位置データが該当する。また、無線通信による時間遅延が発生するため、T秒分の移動経路Path_iの座標データを通知する時点における時刻(現在時刻)tのデータ(現在時刻データ)も該当する。したがって、ロボット12では、無線通信による遅延時間を考慮して、T秒分の移動経路Path_iに従う移動が可能である。
【0079】
なお、ロボット制御装置102は、図示しない内部タイマ(RTC)から現在時刻tを取得し、それに対応する現在時刻データをロボット12に通知する。
【0080】
この実施例では、同時に移動するロボット12の台数、ロボット12が移動可能な領域の大きさ、無線遅延の特性およびロボット12が提供するサービスの特性のような要素に基づいてT秒が決定される。
【0081】
具体的に示すと、T秒を比較的長く設定した場合(たとえば、5秒)には、長時間無線通信が遮断してもロボット12は安全に移動することができるが、優先度の低いサービスを提供する他のロボット12が移動可能な経路を取得することができず、長時間停止してしまう可能性がある。一方、T秒を短くし過ぎた場合(たとえば、500ms)には、無線通信の遅延や無線通信の遮断により、移動経路データを取得できず、ロボット12が停止する可能性が高い。
【0082】
また、図8に示すように、ロボット12が配置される環境においては、無線通信を行った際に、2秒以上遅延するデータが約1%存在することが実験の結果得られた(図8では丸で囲んで示す)。ロボット12を実際に移動させている環境下における実験であり、T秒分(2秒分)の移動経路データと他の必要なデータとをロボット制御装置102からロボット12に送信した。たとえば、T秒分(2秒分)の移動経路データと他の必要なデータとを合わせたデータ量は、1〜2Mbpsである。
【0083】
さらに、或る場所(部屋)に荷物や郵便物を届ける場合には、その場所ないし部屋すなわち目標位置は移動しないため、T秒を比較的長く設定しても何ら問題無いと考えられる。しかし、人間に対人したり、人間を追従したりするサービスでは、サービスを提供する対象である人間すなわち目標位置が移動する可能性があるため、T秒を比較的短く設定して、短い時間間隔で移動経路Path_iを算出して、環境の変化に対応する必要があると考えられる。
【0084】
これらの要素を総合的に考慮して、この実施例では、T=2に設定してある。ただし、これは単なる一例であり、限定されるべきでなく、T秒は上述した各要素を考慮して適宜設定されるべきである。
【0085】
図9は、図1に示したロボット制御装置102の内部メモリ(ハードディスク,RAM)のメモリマップ200を示す。図9に示すように、内部メモリには、プログラム記憶領域202およびデータ記憶領域204が設けられる。プログラム記憶領域202には、ロボット12を制御するためのプログラム(制御プログラム)が記憶され、制御プログラムは、メイン処理プログラム202a、通信プログラム202b、リスト作成プログラム202cおよび経路生成プログラム202dなどによって構成される。
【0086】
メイン処理プログラム202aは、ロボット制御のメインルーチンを処理するためのプログラムである。通信プログラム202bは、他の機器と通信するためのプログラムであり、主として、ロボット12との間の通信処理を実行する。リスト作成プログラム202cは、図6に示したような要求メッセージのリクエストリストを作成するためのプログラムである。経路生成プログラム202dは、要求メッセージに記載された生成方針に従って移動経路データを生成するためのプログラムである。
【0087】
なお、図示は省略するが、制御プログラムには、人間の位置および当該人間を識別するためのプログラムなども含まれる。
【0088】
データ記憶領域204には、リクエストバッファ204aが設けられる。また、データ記憶領域204には、識別データ204b、マップデータ204c、位置データ204dおよびリクエストリストデータ240eが記憶される。リクエストバッファ204aは、通信プログラム202bに従って受信されたロボット12からの要求メッセージを記憶(一時記憶)するための領域である。識別データ204bは、各ロボット12や各人間を識別するための情報(この実施例では、名称やタグ情報(ID)など)についてのデータである。マップデータ204cは、ロボット12が配置される環境についてのマップのデータである。位置データ204dは、ロボット12および人間の位置についての座標データである。リクエストリストデータ204eは、リスト作成プログラム202cに従って作成されたリクエストリストのデータである。
【0089】
なお、図示は省略するが、データ記憶領域204には、他のデータが記憶されるとともに、制御プログラムの実行に必要なカウンタ(タイマ)やフラグなども設けられる。
【0090】
具体的には、図1に示したロボット制御装置102のコンピュータ(CPU)が図10に示す全体処理のフローを実行する。後述するように、ロボット12は、一定時間(たとえば、500ms)毎に、要求メッセージをロボット制御装置102に送信する。詳細な説明は省略するが、図10に示す全体処理は、一定時間(たとえば、500ms)毎に実行される。ただし、全体処理の実行間隔は、ロボット12からの要求メッセージの送信間隔と同様に、100ms−500msの間で設定可能であるが、理想的には100ms以下である。
【0091】
図10に示すように、CPUは全体処理を開始すると、ステップS1で、終了かどうかを判断する。ここでは、ユーザからの終了指示があるかどうかが判断される。ステップS1で“YES”であれば、つまり終了であれば、そのまま全体処理を終了する。一方、ステップS1で“NO”であれば、つまり終了でなければ、ステップS3で、各ロボット12から受信した要求メッセージを取り込む。つまり、CPUは、要求メッセージをリクエストバッファ204aに一時記憶する。
【0092】
次のステップS5で、変数iに初期値を設定し(i=0)、変数Nにロボット12の台数すなわち要求メッセージの総数を設定する。続いて、ステップS7では、優先度の高い順に、要求メッセージを0からNまで並べて、リクエストリストを作成する。つまり、CPUは、リクエストバッファ204aに記憶されたすべての要求メッセージを用いて、図6に示したようなリクエストリストに対応するリクエストリストデータ204eを作成する。ただし、優先度が同じ複数の要求メッセージについては、受信した順に並べられる。そして、ステップS9では、経路生成の地図に書き込まれた移動経路をクリアする。つまり、CPUは、マップデータ204cが示すマップ上に生成された移動経路Path_iを削除する。
【0093】
次のステップS11では、変数iが変数N以上であるかどうかを判断する。つまり、CPUは、すべての要求メッセージについての移動経路Path_iを算出および通知したかどうかを判断する。ステップS11で“YES”であれば、つまり変数iが変数N以上であれば、すべての要求メッセージについての移動経路Path_iの算出(生成)および通知を終了したと判断して、ステップS1に戻る。一方、ステップS11で“NO”であれば、つまり変数iが変数N未満であれば、未だ移動経路Path_iを算出していない要求メッセージが有ると判断して、ステップS13で、i番目の要求メッセージに応じた移動経路Path_iを算出する。ただし、移動経路Path_iの算出は、要求メッセージに記載された生成方針に従う。
【0094】
続いて、ステップS15では、経路生成の地図に、移動経路Path_iをT秒(この実施例では、2秒)分書き込む。次のステップS17では、要求元のロボット12に、現在時刻tとT秒分の移動経路Path_iとを含む制御情報(制御データ)を通知する。そして、ステップS19で、変数iに1加算して(i=i+1)、ステップS11に戻る。
【0095】
図11は図3に示したロボット12のCPU60のサービス提供処理を示すフロー図である。また、図12は図3に示したロボット12のCPU60の送信処理を示すフロー図である。これらの処理は、ロボット12のCPU60によって並列的に実行される。
【0096】
図11に示すように、CPU60は、サービス提供処理を開始すると、ステップS31で、要求メッセージの送信処理を開始する。つまり、後述する送信処理(タスク)の実行を開始する。次のステップS33では、制御情報を受信したかどうかを判断する。つまり、CPU60は、ロボット制御装置102からの制御データを受信したかどうかを判断する。
【0097】
ステップS33で“NO”であれば、つまり制御情報を受信していなければ、そのままステップS33に戻る。一方、ステップS33で“YES”であれば、つまり制御情報を受信すれば、ステップS35で、制御情報に従って移動する。つまり、CPU60は、制御情報に含まれるT秒分の移動経路データが示す複数の座標に対応する複数の位置を順番に通過するように、モータ制御ボード66を制御し、車輪モータ24を駆動する。ただし、このとき、制御情報に含まれる現在時刻tを参照して、通信遅延にかかる時間Δtだけ移動した位置から移動経路データに従って移動される。
【0098】
次のステップS37では、ロボット12自身の現在位置を更新する。そして、ステップS39で、目標位置に到着したかどうかを判断する。サービス毎に目標位置は異なるため、実行するサービスに応じて適宜判断される。たとえば、所定の場所ないし部屋に到着したか、所望の人物との距離が一定以下になるまで近づいたかなどが判断される。
【0099】
ステップS39で“NO”であれば、つまり目標位置に到着していなければ、ステップS33に戻る。一方、ステップS39で“YES”であれば、つまり目標位置に到着すれば、ステップS41で、提供するサービスに応じコミュニケーション行動を実行する。たとえば、ロボット12は、CPU60の指示に従って、郵便物や荷物を届けたり、所望の人物に対面したり、所望の人物を追従したりする。そして、ステップS43で、サービス終了かどうかを判断する。ステップS43で“NO”であれば、つまりサービス終了で無ければ、ステップS41に戻って、提供するサービスに応じたコミュニケーション行動の実行を継続する。一方、ステップS43で“YES”であれば、つまりサービス終了であれば、ステップS45で、要求メッセージの送信処理を終了して、サービス提供処理を終了する。つまり、CPU60は、ステップS45で、図12に示す送信処理の実行を終了させる。
【0100】
また、上述したように、ステップS31で要求メッセージの送信処理が開始されると、図12に示すように、CPU60は送信処理を開始し、ステップS61で、提供するサービスに応じた要求メッセージを生成する。ただし、ロボット名は、ロボット12自身の名称ないし識別情報であり、「サービス名」は提供するサービスの名称である。また、「優先度」および「生成方針」は、サービス名(サービス)に対応して予め決定されている。「位置」は、ロボット12の現在位置であり、自身で監視してある。ただし、ロボット制御装置102から現在位置を取得するようにしてもよい。または、ロボット制御装置102から現在位置を取得して、それによって自身で監視している現在位置を修正してもよい。
【0101】
次のステップS63では、要求メッセージをロボット制御装置102に送信する。続いて、ステップS65で、タイマをリセットおよびスタートする。なお、図3では省略したが、タイマは、ロボット12に内蔵されている。続いて、ステップS67では、送信終了かどうかを判断する。つまり、上述したように、ステップS45で、要求メッセージの送信処理が終了されたかどうかを判断する。
【0102】
ステップS67で“YES”であれば、つまり送信終了であれば、そのまま送信処理を終了する。一方、ステップS67で“NO”であれば、つまり送信終了でなければ、ステップS69で、一定時間(たとえば、500ms)が経過したかどうかを判断する。つまり、CPU60は、タイマのカウント値が500ms以上になったかどうかを判断する。ステップS69で“NO”であれば、つまり一定時間を経過していなければ、同じステップS69に戻って、一定時間の経過を待機する。一方、ステップS69で“YES”であれば、つまり一定時間を経過すれば、ステップS61に戻る。したがって、一定時間毎に、要求メッセージが送信される。
【0103】
なお、ステップS69で“YES”となり、ステップS61に戻ると、「位置」のみが変更された要求メッセージが生成される。つまり、一回の送信処理では、2回目以降の要求メッセージでは、「位置」のみを、ロボット12の現在位置の更新に従って更新すればよい。
【0104】
この実施例によれば、ロボット同士が衝突しないように生成した移動経路のうち、T秒分のみを通知するので、無線通信が遅延したり瞬断したりした場合であっても、互いに移動経路が干渉せず、安全に移動を継続することができる。また、比較的短い時間で、移動経路が更新されるため、環境の動的な変化に対応してロボットを移動させることができる。
【0105】
なお、この実施例では、T秒分の移動経路をロボットに通知するようにしたが、移動して良い領域をロボットに通知するようにしてもよい。かかる場合には、移動して良い領域およびその領域までの経路が他のロボットと干渉しないようにする必要がある。
【0106】
また、この実施例では、現在位置から目標位置までの移動経路が干渉しないように、各ロボットの移動経路を計算するようにしたが、少なくともT秒分の移動経路が干渉しないように、各ロボットの移動経路を計算するようにしてもよい。
【符号の説明】
【0107】
10 …ネットワークロボットシステム
12 …ロボット
24,72,74,76,78,80 …モータ
28 …赤外線距離センサ
34 …全方位カメラ
52 …スピーカ
54 …マイク
58 …眼カメラ
60 …CPU
64 …メモリ
66 …モータ制御ボード
68 …センサ入力/出力ボード
70 …音声入力/出力ボード
82 …通信LANボード
16c …加速度センサ
84 …無線通信装置
86 …無線タグ読取装置
100 …ネットワーク
102 …ロボット制御装置
104 …環境センサ
【技術分野】
【0001】
この発明はネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関し、特にたとえば、自走可能なロボットを用いた、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムに関する。
【背景技術】
【0002】
この種のネットワークロボットシステムの一例が特許文献1に開示される。この特許文献1のロボット制御システムでは、複数のロボットの各々は、ロボット制御装置からの実行命令信号を受信することによってタスク(自律移動)を実行する。ロボット制御装置では、タスク開始位置(スタート)とタスク終了位置(ゴール)との間に有限個のノードであるサブゴールを設定する。また、ロボット制御装置では、選択した2台のロボットRA,RBのタスクを監視し、衝突可能性がある場合には、各タスクの優先度に応じて、そのような状況を退避または回避するように、ロボットRA,RBの移動経路を変更させる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−133863[G05D 1/02,B25J 5/00,B25J 19/06]
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、この特許文献1の技術では、衝突の可能性がある場合には、衝突を退避または回避するように、ロボットの移動経路を変更させる必要があるため、そのための移動経路の計算や退避または回避後に元のタスクを実行する動作に復帰するための移動経路の計算が必要であり、処理が煩雑になってしまう。
【0005】
それゆえに、この発明の主たる目的は、新規な、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【0006】
また、この発明の他の目的は、複雑な処理を必要とせず、通信が遅延したり瞬断したりしても、安全に移動を継続させることができる、ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、自走可能な複数のロボットと、複数のロボットの各々と通信可能に接続されるロボット制御装置とを備える、ネットワークロボットシステムである。複数のロボットの各々は、サービスの提供に係る移動経路データの生成要求をロボット制御装置に送信する生成要求送信手段、ロボット制御装置から送信された移動経路データを受信する移動経路データ受信手段、および移動経路データ受信手段によって受信された移動経路データに従って移動する移動手段を備える。ロボット制御装置は、複数のロボットからの生成要求を受信する生成要求受信手段、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える。
【0009】
第1の発明では、ネットワークロボットシステム(10)は、自走可能な複数のロボット(12)と、複数のロボットの各々と通信可能に接続されるロボット制御装置(102)とを備える。複数のロボットの各々は、生成要求送信手段(60,S63)、移動経路データ受信手段(60,S33)、および移動手段(24,60,66,S35)を備えている。一方、ロボット制御装置は、生成要求受信手段(S3)、経路生成手段(S13,S15)、および移動経路データ送信手段(S17)を備えている。
【0010】
複数のロボットの各々の生成要求送信手段は、サービスの提供に係る移動経路データの生成要求をロボット制御装置に送信する。ロボット制御装置では、生成要求受信手段は、複数のロボットからの生成要求を受信する。生成要求を受信すると、ロボット制御装置の経路生成手段は、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する。そして、移動経路データ送信手段は、経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する。したがって、ロボットの移動経路データ受信手段は、ロボット制御装置から送信された移動経路データを受信する。そして、移動手段は、移動経路データ受信手段によって受信された移動経路データに従って移動する。
【0011】
第1の発明によれば、ロボット同士が衝突しないように生成した移動経路のうち、一定時間分のみを通知するので、無線通信が遅延したり瞬断したりした場合であっても、互いに移動経路が干渉せず、安全に移動を継続することができる。
【0012】
第2の発明は、第1の発明に従属し、生成要求は移動経路データの生成についての優先度を含み、経路生成手段は、生成要求受信手段によって複数のロボットからの生成要求を受信したとき、複数の生成要求に応じた移動経路データを、優先度の高い順に生成する。
【0013】
第2の発明では、生成要求は、移動経路データの生成についての優先度を含む。経路生成手段は、生成要求受信手段によって複数のロボットからの生成要求を受信したとき、複数の生成要求に応じた移動経路データを、優先度の高い順に生成する。したがって、たとえば、優先度の高い生成要求について既に生成された移動経路に交差しないように、優先度の低い生成要求についての移動経路を生成すればよい。
【0014】
第2の発明によれば、優先度に従う順序で移動経路を生成するので、移動経路の生成が簡単であり、処理負荷を軽減することができる。
【0015】
第3の発明は、第1または第2の発明に従属し、ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行するコミュニケーションロボットを含む。
【0016】
第3の発明では、ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する。したがって、たとえば、人間や他のロボットとの間でコミュニケーションが実行される。
【0017】
第3の発明によれば、コミュニケーションロボットを用いるので、単に移動するのみならず、様々なサービスを提供することができる。
【0018】
第4の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置であって、複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信手段、複数のロボット同士が衝突しないように、生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ロボット制御装置である。
【0019】
第5の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置のロボット制御方法であって、(a)複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信し、(b)複数のロボット同士が衝突しないように、ステップ(a)によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成し、そして(c)ステップ(b)によって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する、ロボット制御方法である。
【0020】
第6の発明は、自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置で実行されるロボット制御プログラムであって、ロボット制御装置のコンピュータに、複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信ステップ、複数のロボット同士が衝突しないように、生成要求受信ステップによって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成ステップ、および経路生成ステップによって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する移動経路データ送信ステップを実行させる、ロボット制御プログラムである。
【0021】
第4ないし第6の発明においても、第1の発明と同様に、通信が遅延したり瞬断したりしても、安全にロボットの移動を継続させることができる。
【発明の効果】
【0022】
この発明によれば、互いに干渉しない移動経路を算出し、移動経路の一定時間分をロボットに通知するので、複雑な処理を必要とせず、通信が遅延したり瞬断したりしても、安全にロボットの移動を継続させることができる。
【0023】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0024】
【図1】図1はこの発明の一実施例のネットワークロボットシステムの構成を示す図解図である。
【図2】図2は図1に示すロボットの外観を正面から見た正面図である。
【図3】図3は図1に示すロボットの電気的な構成を示すブロック図である。
【図4】図4は図1に示す環境センサに含まれるレーザーレンジファインダの計測範囲を示す図解図である。
【図5】図5は図4に示すレーザーレンジファインダをロボットが配置される環境下に複数配置した場合における検出領域を示す図解図である。
【図6】図6は図1に示すロボット制御装置において生成および管理されるリクエストリストを示す図解図である。
【図7】図7は図1に示すロボット制御装置における経路の生成方法を説明するための説明図である。
【図8】図8は図1に示すロボット制御装置とロボットとの間の無線通信おけるデータ到着率に対する遅延時間の関係を示すグラフである。
【図9】図9は図1に示すロボット制御装置の内部メモリのメモリマップの一例を示す図解図である。
【図10】図10は図1に示すロボット制御装置のコンピュータ(CPU)の全体処理を示すフロー図である。
【図11】図11は図3に示すロボットのCPUのサービス提供処理を示すフロー図である。
【図12】図12は図3に示すロボットのCPUの送信処理を示すフロー図である。
【発明を実施するための形態】
【0025】
図1を参照して、この実施例のネットワークロボットシステム(以下、単に「システム」という)10は、複数のロボット12を含む。各ロボット12は、ネットワーク100を介して、ロボット制御装置102に通信可能に接続される。また、ロボット制御装置102には、環境センサ104が接続される。
【0026】
ロボット12は、相互作用指向のロボット(コミュニケーションロボット)であり、主として人間のようなコミュニケーションの対象(コミュニケーション対象)との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。ロボット12は、受付や道案内などの様々なサービスを提供し、たとえば或る会社やイベント会場などの様々な場所ないし状況(環境)に配置される。
【0027】
図2を参照して、ロボット12のハードウェアの構成について説明する。また、図2はこの実施例のロボット12の外観を示す正面図である。ロボット12は台車18を含み、台車18の下面にはロボット12を自律移動させる2つの車輪20および1つの従輪22が設けられる。2つの車輪20は車輪モータ24(図3参照)によってそれぞれ独立に駆動され、台車18すなわちロボット12を前後左右の任意方向に動かすことができる。また、従輪22は車輪20を補助する補助輪である。したがって、ロボット12は、配置された空間内を自律制御によって移動可能である。
【0028】
台車18の上には、円柱形のセンサ取り付けパネル26が設けられ、このセンサ取り付けパネル26には、多数の赤外線距離センサ28が取り付けられる。これらの赤外線距離センサ28は、センサ取り付けパネル26すなわちロボット12の周囲の物体(人間や障害物など)との距離を測定するものである。
【0029】
センサ取り付けパネル26の上には、胴体30が直立するように設けられる。また、胴体30の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ28がさらに設けられ、ロボット12の前方の主として人間との距離を計測する。また、胴体30には、その側面側上端部のほぼ中央から伸びる支柱32が設けられ、支柱32の上には、全方位カメラ34が設けられる。全方位カメラ34は、ロボット12の周囲を撮影するものであり、後述する眼カメラ58とは区別される。この全方位カメラ34としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ28および全方位カメラ34の設置位置は、当該部位に限定されず適宜変更され得る。
【0030】
胴体30の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節36Rおよび肩関節36Lによって、上腕38Rおよび上腕38Lが設けられる。図示は省略するが、肩関節36Rおよび肩関節36Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節36Rは、直交する3軸のそれぞれの軸廻りにおいて上腕38Rの角度を制御できる。肩関節36Rの或る軸(ヨー軸)は、上腕38Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節36Lは、直交する3軸のそれぞれの軸廻りにおいて上腕38Lの角度を制御できる。肩関節36Lの或る軸(ヨー軸)は、上腕38Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0031】
また、上腕38Rおよび上腕38Lのそれぞれの先端には、肘関節40Rおよび肘関節40Lが設けられる。図示は省略するが、肘関節40Rおよび肘関節40Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕42Rおよび前腕42Lの角度を制御できる。
【0032】
前腕42Rおよび前腕42Lのそれぞれの先端には、人の手に相当する球体44Rおよび球体44Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車18の前面,肩関節36Rと肩関節36Lとを含む肩に相当する部位,上腕38R,上腕38L,前腕42R,前腕42L,球体44Rおよび球体44Lには、それぞれ、接触センサ(図3で包括的に示す)46が設けられる。台車18の前面の接触センサ46は、台車18への人間や障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に人間や障害物との接触が有ると、それを検知し、直ちに車輪20の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ46は、当該各部位に触れたかどうかを検知する。なお、接触センサ46の設置位置は、当該部位に限定されず、適宜な位置(人の胸,腹,脇,背中および腰に相当する位置)に設けられてもよい。
【0033】
胴体30の中央上部(人の首に相当する位置)には首関節48が設けられ、さらにその上には頭部50が設けられる。図示は省略するが、首関節48は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0034】
頭部50には、人の口に相当する位置に、スピーカ52が設けられる。スピーカ52は、ロボット12が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク54Rおよびマイク54Lが設けられる。以下、右のマイク54Rと左のマイク54Lとをまとめてマイク54ということがある。マイク54は、周囲の音、とりわけコミュニケーションを実行する対象である人間の声を取り込む。さらに、人の目に相当する位置には、眼球部56Rおよび眼球部56Lが設けられる。眼球部56Rおよび眼球部56Lは、それぞれ眼カメラ58Rおよび眼カメラ58Lを含む。以下、右の眼球部56Rと左の眼球部56Lとをまとめて眼球部56ということがある。また、右の眼カメラ58Rと左の眼カメラ58Lとをまとめて眼カメラ58ということがある。
【0035】
眼カメラ58は、ロボット12に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ58は、上述した全方位カメラ34と同様のカメラを用いることができる。たとえば、眼カメラ58は、眼球部56内に固定され、眼球部56は、眼球支持部(図示せず)を介して頭部50内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部50の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部50の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部56ないし眼カメラ58の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ52,マイク54および眼カメラ58の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0036】
このように、この実施例のロボット12は、車輪20の独立2軸駆動,肩関節36の3自由度(左右で6自由度),肘関節40の1自由度(左右で2自由度),首関節48の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0037】
図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、CPU60を含む。CPU60は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス62を介して、メモリ64,モータ制御ボード66,センサ入力/出力ボード68および音声入力/出力ボード70に接続される。
【0038】
メモリ64は、図示は省略をするが、ROM,HDDおよびRAMを含む。ROMおよびHDDには、ロボット12の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力(センサ情報)を検知するための検知プログラム、および外部コンピュータ(ロボット制御装置102など)との間で必要なデータやコマンド(メッセージ)を送受信するための通信プログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。
【0039】
モータ制御ボード66は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード66は、CPU60からの制御データを受け、右眼球部56Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ72」と示す)の回転角度を制御する。同様にして、モータ制御ボード66は、CPU60からの制御データを受け、左眼球部56Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ74」と示す)の回転角度を制御する。
【0040】
また、モータ制御ボード66は、CPU60からの制御データを受け、右肩関節36Rの直交する3軸のそれぞれの角度を制御する3つのモータと右肘関節40Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ76」と示す)の回転角度を制御する。同様にして、モータ制御ボード66は、CPU60からの制御データを受け、左肩関節36Lの直交する3軸のそれぞれの角度を制御する3つのモータと左肘関節40Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ78」と示す)の回転角度を制御する。
【0041】
さらに、モータ制御ボード66は、CPU60からの制御データを受け、首関節48の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ80」と示す)の回転角度を制御する。そして、モータ制御ボード66は、CPU60からの制御データを受け、車輪20を駆動する2つのモータ(図3では、まとめて「車輪モータ24」と示す)の回転角度を制御する。なお、この実施例では、車輪モータ24を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ24と同様に直流モータを用いるようにしてもよい。また、ロボット12の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【0042】
センサ入力/出力ボード68もまた、同様に、DSPで構成され、各センサからの信号を取り込んでCPU60に与える。すなわち、赤外線距離センサ28のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード68を通じてCPU60に入力される。また、全方位カメラ34からの映像信号が、必要に応じてセンサ入力/出力ボード68で所定の処理を施してからCPU60に入力される。眼カメラ58からの映像信号も、同様にして、CPU60に入力される。また、上述した複数の接触センサ(図3では、まとめて「接触センサ46」と示す)からの信号がセンサ入力/出力ボード68を介してCPU60に与えられる。
【0043】
音声入力/出力ボード70もまた、同様に、DSPで構成され、CPU60から与えられる音声合成データに従った音声または声がスピーカ52から出力される。また、マイク54からの音声入力が、音声入力/出力ボード70を介してCPU60に与えられる。
【0044】
また、CPU60は、バス62を介して通信LANボード82に接続される。通信LANボード82は、DSPで構成され、CPU60から与えられた送信データを無線通信装置84に与え、無線通信装置84から送信データを、ネットワーク100を介して外部コンピュータ(ロボット制御装置102など)に送信する。また、通信LANボード82は、無線通信装置84を介してデータを受信し、受信したデータをCPU60に与える。つまり、ロボット12は、通信LANボード82および無線通信装置84によって、ロボット制御装置102と無線通信を行うことができる。
【0045】
さらに、CPU60は、バス62を介して無線タグ読取装置86が接続される。無線タグ読取装置86は、アンテナ(図示せず)を介して、無線タグ(RFIDタグ)から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置86は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調(デコード)してCPU60に与える。無線タグは、会社やイベント会場などに居る人間に装着されており、無線タグ読取装置86は、通信可能範囲内の無線タグを検出する。なお、無線タグは、アクティブ型であってもよいし、無線タグ読み取り装置86から送信される電波に応じて駆動されるパッシブ型であってもよい。
【0046】
図1に戻って、ロボット制御装置102は、汎用のPCないしサーバであり、複数のロボット12の移動を制御する。この実施例では、ロボット制御装置102は、ロボット12からの移動経路データの生成要求に応答して、ロボット12間の衝突を避けるように、移動経路データを生成する。そして、生成した移動経路データを、要求元のロボット12に送信する。
【0047】
また、図示は省略するが、環境センサ104は、複数の距離計測センサ(レーザーレンジファインダ)および複数の無線タグ読取装置を含む。複数のレーザーレンジファインダおよび複数の無線タグ読取装置は、ロボット12が配置される環境に設置される。この環境センサ104からの出力に基づいて、人間を追跡(人間の位置、移動速度および向きを推定)したり、人間を個別に識別したりする。
【0048】
レーザーレンジファインダは、レーザを照射し、物体に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、レーザーレンジファインダでは、トランスミッタから照射したレーザを回転ミラーで反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。
【0049】
ここで、レーザーレンジファインダとしては、SICK社製のレーザーレンジファインダ(型式 LMS 200)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±15mm程度の誤差で計測可能である。具体的には、図4に示すように、レーザーレンジファインダの計測領域は、半径R(R≒8m)の半円形状(扇形)で示される。つまり、レーザーレンジファインダは、その正面方向を中心とした場合に、左右90度の方向を所定の距離(R)以内で計測可能である。
【0050】
なお、使用しているレーザは、日本工業規格 JIS C 6892 「レーザ製品の安全基準」におけるクラス1レーザであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、レーザーレンジファインダのサンプリングレートは3.85Hzとしてある。これは、歩行するなどにより移動する人間を追跡するためである。
【0051】
また、図5に示すように、複数(たとえば、6個)のレーザーレンジファインダは、或る建物内の或る領域を検出可能な位置に配置される。ただし、或る建物内の或る領域は、ロボット12がサービスを提供する領域(移動可能な範囲)である。また、図5においては、レーザーレンジファインダと柱とは丸印で示されるため、それらを区別するために、レーザーレンジファインダを示す丸印には、アルファベット(A,B,C,D,E,F)を記載してある。さらに、図5に示すレーザーレンジファインダの丸印から延びる矢印は、そのレーザーレンジファインダの計測領域の正面方向(図4参照)を示す。この実施例では、2以上のレーザーレンジファインダの計測領域(人間やロボット12を追跡可能な領域)が重なる領域を検出領域としてあるため、図5に示す例では、斜線を付した閉領域が検出領域となる。
【0052】
なお、検出領域のうち、玄関を入って直ぐの階段と、奥の窓と、左右の柱で囲まれた領域の幅は19mであり、その奥行きは8mである。
【0053】
また、図示は省略するが、レーザーレンジファインダの各々は、床面から約90cmの高さに固定される。この高さは、人間の胴体と腕(両腕)とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、システム10が適用される場所(地域ないし国)や人間の年齢ないし年代(たとえば、子供,大人)に応じて、レーザーレンジファインダを固定する高さを適宜変更するようにしてよい。
【0054】
なお、レーザーレンジファインダを用いた人間の追跡方法としては、本件出願人が先に出願した特願2008−006105号(第25回 日本ロボット学会 学術講演会 2007.9.13-15 「レーザ距離計による適応型人形状モデルを利用した人追跡手法」)に記載されている計測方法を採用することができる。
【0055】
また、図示は省略するが、複数の無線タグ読取装置は、複数のレーザーレンジファインダによる検出領域に存在するタグすなわちタグを装着ないし所持する人間を検出可能に、一定の距離を隔てた要所に配置される。なお、環境センサ104に含まれる無線タグ読取装置としては、ロボット12に設けられる無線タグ読取装置86と同じものを用いることができる。
【0056】
このようなシステム10では、ロボット12はサービスの提供のために、目標位置に移動したり、目的の人物に対人するように移動したり、目的の人物を追従したりする。
【0057】
そのような場合、ロボット12は他のロボット12と通信することにより、事前に衝突を回避するようにすることもできるが、ロボット12間での通信が瞬断してしまうと、ロボット12同士が衝突してしまうことがある。また、予め算出した現在位置から目標位置までの移動経路に従ってロボット12を移動させる場合には、人間が多く存在する環境下では、移動途中で人間を回避する行動を頻繁に行う必要があり、また、他のロボット12などの障害物との衝突を回避する必要があり、処理が複雑になってしまう。
【0058】
そこで、この実施例では、ロボット制御装置102が、他のロボット12と衝突しないように、各ロボット12の移動経路を生成することとし、しかも移動経路のうちの一定時間分だけをロボット12に通知するようにしてある。
【0059】
ロボット12が、サービスを提供(実行)する場合、当該サービスの提供に係る移動経路についてのデータ(移動経路データ)の生成要求がロボット制御装置102に送信する。詳細な説明は省略するが、要求メッセージは、ロボット12からロボット制御装置102に対して一定時間(たとえば、500ms)毎に送信され、対応するサービスの提供を終了すると、要求メッセージの送信も終了する。通信環境にもよるが、一定時間は、100ms−500msの間で設定可能である。
【0060】
ただし、要求メッセージは、サービスを提供するための行動(コミュニケーション行動)を実行するロボット12から送信されるため、常に全部のロボット12から要求メッセージが送信されるとは限らない。
【0061】
また、サービスの提供(実行)は、ロボット12が自律行動によって開始するが、ロボット12を遠隔で操作するオペレータからの指示に従って開始してもよい。なお、ロボット12を遠隔で操作するための端末(オペレータ端末)は図1では省略してある。たとえば、オペレータ端末は、直接、または、ネットワーク100を介して、遠隔操作するロボット12と通信可能に接続される。
【0062】
たとえば、ロボット12からの要求メッセージには、ロボット名、優先度、サービス名、生成方針および位置が含まれる。「ロボット名」は、要求メッセージの発信元(要求元)のロボット12の名称ないしロボット12の識別情報(ID)である。「優先度」は、サービスの重要度に対応しており、経路を生成する場合の優先順位を決定するための数値である。この実施例では、優先度は0から10までの整数で表わされ、数値が大きいほど優先度が高い。
【0063】
「サービス名」は、ロボット12が提供(実行)するサービスの名称である。たとえば、サービスとしては、「速達運搬」、「追従」、「出迎え」、「荷物運搬」、「待機」などが該当する。「速達運搬」は、所定の場所(部屋)または宛先の人間に速達郵便のような急ぎの書類を運搬するサービスである。「追従」は、人間や他のロボット12の移動に追従するサービスである。「出迎え」は、受付や道案内などのために、人間(客)や他のロボット12を出迎えるサービスである。「荷物運搬」は、所定の場所(部屋)または宛先の人間に小包のような荷物を運搬するサービスである。「待機」は、他のサービスの提供を待機するサービスである。
【0064】
「生成方針」は、サービスを提供する場合のロボット12の移動経路の生成方針を示す情報である。たとえば、「目標位置への最短経路」、「追従(人の後ろを歩く)」、「対人(人の前から近づく)」、「邪魔にならない遠回り経路」などの生成方針がある。「目標位置への最短経路」は、現在位置から目標位置までの移動距離が最短になるように、移動経路を生成する方針である。「追従(人の後ろを歩く)」は、目標の人物を追従するように、移動経路を生成する方針である。「対人(人の前から近づく)」は、目標の人物の前から近づくように、移動経路を生成する方針である。「邪魔にならない遠回り経路」は、現在位置から目標位置までを距離が最大になるように、移動経路を生成する方針である。
【0065】
「位置」は、ロボット12の現在位置を示す2次元の座標である。この実施例では、ロボット12が配置される環境についてのマップに対応するデータ(マップデータ)は、ロボット制御装置102の内部メモリ(図示せず)に記憶されており、マップにおけるXY座標と、ロボット12が配置される環境におけるXY座標とが対応するように設定されている。ただし、ロボット12は、マップに対応して当該ロボット12が配置される環境に設定された原点(0,0)からの移動距離および移動方向によって自身の現在位置を把握している。
【0066】
一方、ロボット制御装置102では、要求メッセージを受信すると、その要求メッセージに記載された生成方針に従って移動経路を生成する。ただし、この実施例では、複数のロボット12についての移動経路を生成するため、ロボット12同士が衝突しないように移動経路を生成する必要がある。したがって、複数の要求メッセージを受信した場合には、優先度に従う順番で、各ロボット12の移動経路が干渉しないように、各要求メッセージに応じた移動経路を生成するようにしてある。つまり、優先度の低い要求メッセージについての移動経路は、優先度の高い要求メッセージについて既に生成した移動経路と交差しないように生成される。ただし、当然のことながら、壁、柱、段差のような障害物や人間と衝突しないように、移動経路は生成される。
【0067】
たとえば、ロボット制御装置102では、複数の要求メッセージが受信されると、図6に示したように、優先度に従ってソートされた要求メッセージのリスト(リクエストリスト)が生成され、優先度の大きい順(インデックス番号の小さい順)に、移動経路が生成される。ただし、優先度が同じである場合には、要求メッセージを受信した順番で(リクエスト順に)、要求メッセージについての移動経路が生成される。
【0068】
なお、他の実施例としては、優先度が同じである場合には、現在位置と目標位置との距離が短い(または長い)方の要求メッセージについての移動経路が先に生成される。
【0069】
図7は、マップ上に移動経路が生成される様子を示す図解図である。ただし、図7では、マップの一部が示される。また、図7においては、ロボット12を逆三角形の印Rで示し、人間を円形の印Hで示してある。ただし、ロボット12同士を区別するために、参照記号に数字を付加してある。同様に、人間同士を区別するために、参照記号に数字を付加してある。マップは、ロボット12が配置されるすなわちこのシステム10が適用される環境についてのものであり、XY平面で表わされるとともに、グリッド線で分割されている。たとえば、グリッド線は、縦横それぞれ等間隔であり、現実世界において、一枡にロボット12や人間が収まる大きさ(たとえば、1メートル四方)になるように、その間隔が設定される。
【0070】
たとえば、図7において、ロボットR1およびロボットR2について算出(生成)された移動経路Path_1,Path_2は、それぞれ点線および太線で示される。図面では分からないが、点線は開始位置(現在のロボット12の位置)と目標位置とを直線的に結んでいる。なお、図7では、一例として、「目標位置への最短経路」の生成方針に従って生成された移動経路Path_1,Path_2が示される。
【0071】
ただし、移動経路Path_1では、目標位置への最短経路を算出した場合、一点鎖線で示すように、ロボットR3が存在する枡目(グリッド線で囲まれた領域)上を移動してしまうことになる。したがって、これを回避するように、移動経路Path_1は生成される。図示は省略するが、ロボット12同士の移動経路Path_iが干渉しないように、つまり、既に生成された移動経路Path_iが記載されている桝目上を通過しないように、他の移動経路Path_iが生成される。
【0072】
詳細な説明は省略するが、移動経路Path_iの生成方法としては、任意の生成方法を採用することができる。たとえば、特開平9−319433、特開2005−32196、特開2006−259963、特開2007−249631、特開2007−249632および特開2007−280251に開示されているいずれかの生成方法を採用することができる。
【0073】
また、人間を追従したり、人間に対人したりするサービスを提供する場合には、目標位置としての人間が移動する場合がある。この場合には、上述した計測方法により、人間の位置と移動速度とをパーティクルフィルタによって推定し、腕と胴体とを3つの円で組み合わせた人形状モデルを用いて人間の身体の方向および腕の動きを推定することにより、一定時間後の目標位置を決定することができる。
【0074】
また、人間を個別に識別するために、環境センサ104として無線タグ読取装置を設けてある。ただし、タグ情報(ID)と人間(名称など)とを対応付けたテーブルデータが、ロボット制御装置102の内部メモリまたはロボット制御装置102がアクセス可能なデータベース(図示せず)に記憶されている。したがって、ロボット制御装置102は、無線タグ読取装置から無線タグのタグ情報を取得することにより、当該タグ情報に対応する人間が当該無線タグ読取装置の周辺ないし近傍に存在することを知ることができる。
【0075】
他の実施例としては、無線タグ読取装置に代えてカメラを設け、その撮影画像に基づく顔認識によって、人間を個別に識別するようにしてもよい。かかる場合には、顔画像データや顔の特徴データと人間と対応付けたテーブルデータを、ロボット制御装置102の内部メモリなどに記憶しておく必要がある。
【0076】
ただし、無線タグ読取装置やカメラは、ロボット12が備えているため、無線タグ読取装置86や全方位カメラ34ないし眼カメラ58を用いることにより、ロボット12を環境センサ104として機能させることもできる。
【0077】
また、図7において、太線は、生成した移動経路Path_1,Path_2のうち、ロボット12(R1,R2)に通知する一定時間(T秒)分の移動経路を示す。ここで、算出した移動経路Path_iのうちのT秒分は、ロボット12の移動速度とT秒とから距離dを算出し、ロボット12の現在位置を始点として移動経路Path_iから距離dに相当する線分を切り出すことにより求められる。
【0078】
ロボット制御装置102は、太線を構成する複数の点の座標についての座標データを、移動経路Path_iのT秒分のデータ(移動経路データ)としてロボット12に通知する。ただし、ロボット12を制御するための他の必要なデータも通知される。ここで、他の必要なデータとしては、推定した人間や他のロボット12の位置についての位置データが該当する。また、無線通信による時間遅延が発生するため、T秒分の移動経路Path_iの座標データを通知する時点における時刻(現在時刻)tのデータ(現在時刻データ)も該当する。したがって、ロボット12では、無線通信による遅延時間を考慮して、T秒分の移動経路Path_iに従う移動が可能である。
【0079】
なお、ロボット制御装置102は、図示しない内部タイマ(RTC)から現在時刻tを取得し、それに対応する現在時刻データをロボット12に通知する。
【0080】
この実施例では、同時に移動するロボット12の台数、ロボット12が移動可能な領域の大きさ、無線遅延の特性およびロボット12が提供するサービスの特性のような要素に基づいてT秒が決定される。
【0081】
具体的に示すと、T秒を比較的長く設定した場合(たとえば、5秒)には、長時間無線通信が遮断してもロボット12は安全に移動することができるが、優先度の低いサービスを提供する他のロボット12が移動可能な経路を取得することができず、長時間停止してしまう可能性がある。一方、T秒を短くし過ぎた場合(たとえば、500ms)には、無線通信の遅延や無線通信の遮断により、移動経路データを取得できず、ロボット12が停止する可能性が高い。
【0082】
また、図8に示すように、ロボット12が配置される環境においては、無線通信を行った際に、2秒以上遅延するデータが約1%存在することが実験の結果得られた(図8では丸で囲んで示す)。ロボット12を実際に移動させている環境下における実験であり、T秒分(2秒分)の移動経路データと他の必要なデータとをロボット制御装置102からロボット12に送信した。たとえば、T秒分(2秒分)の移動経路データと他の必要なデータとを合わせたデータ量は、1〜2Mbpsである。
【0083】
さらに、或る場所(部屋)に荷物や郵便物を届ける場合には、その場所ないし部屋すなわち目標位置は移動しないため、T秒を比較的長く設定しても何ら問題無いと考えられる。しかし、人間に対人したり、人間を追従したりするサービスでは、サービスを提供する対象である人間すなわち目標位置が移動する可能性があるため、T秒を比較的短く設定して、短い時間間隔で移動経路Path_iを算出して、環境の変化に対応する必要があると考えられる。
【0084】
これらの要素を総合的に考慮して、この実施例では、T=2に設定してある。ただし、これは単なる一例であり、限定されるべきでなく、T秒は上述した各要素を考慮して適宜設定されるべきである。
【0085】
図9は、図1に示したロボット制御装置102の内部メモリ(ハードディスク,RAM)のメモリマップ200を示す。図9に示すように、内部メモリには、プログラム記憶領域202およびデータ記憶領域204が設けられる。プログラム記憶領域202には、ロボット12を制御するためのプログラム(制御プログラム)が記憶され、制御プログラムは、メイン処理プログラム202a、通信プログラム202b、リスト作成プログラム202cおよび経路生成プログラム202dなどによって構成される。
【0086】
メイン処理プログラム202aは、ロボット制御のメインルーチンを処理するためのプログラムである。通信プログラム202bは、他の機器と通信するためのプログラムであり、主として、ロボット12との間の通信処理を実行する。リスト作成プログラム202cは、図6に示したような要求メッセージのリクエストリストを作成するためのプログラムである。経路生成プログラム202dは、要求メッセージに記載された生成方針に従って移動経路データを生成するためのプログラムである。
【0087】
なお、図示は省略するが、制御プログラムには、人間の位置および当該人間を識別するためのプログラムなども含まれる。
【0088】
データ記憶領域204には、リクエストバッファ204aが設けられる。また、データ記憶領域204には、識別データ204b、マップデータ204c、位置データ204dおよびリクエストリストデータ240eが記憶される。リクエストバッファ204aは、通信プログラム202bに従って受信されたロボット12からの要求メッセージを記憶(一時記憶)するための領域である。識別データ204bは、各ロボット12や各人間を識別するための情報(この実施例では、名称やタグ情報(ID)など)についてのデータである。マップデータ204cは、ロボット12が配置される環境についてのマップのデータである。位置データ204dは、ロボット12および人間の位置についての座標データである。リクエストリストデータ204eは、リスト作成プログラム202cに従って作成されたリクエストリストのデータである。
【0089】
なお、図示は省略するが、データ記憶領域204には、他のデータが記憶されるとともに、制御プログラムの実行に必要なカウンタ(タイマ)やフラグなども設けられる。
【0090】
具体的には、図1に示したロボット制御装置102のコンピュータ(CPU)が図10に示す全体処理のフローを実行する。後述するように、ロボット12は、一定時間(たとえば、500ms)毎に、要求メッセージをロボット制御装置102に送信する。詳細な説明は省略するが、図10に示す全体処理は、一定時間(たとえば、500ms)毎に実行される。ただし、全体処理の実行間隔は、ロボット12からの要求メッセージの送信間隔と同様に、100ms−500msの間で設定可能であるが、理想的には100ms以下である。
【0091】
図10に示すように、CPUは全体処理を開始すると、ステップS1で、終了かどうかを判断する。ここでは、ユーザからの終了指示があるかどうかが判断される。ステップS1で“YES”であれば、つまり終了であれば、そのまま全体処理を終了する。一方、ステップS1で“NO”であれば、つまり終了でなければ、ステップS3で、各ロボット12から受信した要求メッセージを取り込む。つまり、CPUは、要求メッセージをリクエストバッファ204aに一時記憶する。
【0092】
次のステップS5で、変数iに初期値を設定し(i=0)、変数Nにロボット12の台数すなわち要求メッセージの総数を設定する。続いて、ステップS7では、優先度の高い順に、要求メッセージを0からNまで並べて、リクエストリストを作成する。つまり、CPUは、リクエストバッファ204aに記憶されたすべての要求メッセージを用いて、図6に示したようなリクエストリストに対応するリクエストリストデータ204eを作成する。ただし、優先度が同じ複数の要求メッセージについては、受信した順に並べられる。そして、ステップS9では、経路生成の地図に書き込まれた移動経路をクリアする。つまり、CPUは、マップデータ204cが示すマップ上に生成された移動経路Path_iを削除する。
【0093】
次のステップS11では、変数iが変数N以上であるかどうかを判断する。つまり、CPUは、すべての要求メッセージについての移動経路Path_iを算出および通知したかどうかを判断する。ステップS11で“YES”であれば、つまり変数iが変数N以上であれば、すべての要求メッセージについての移動経路Path_iの算出(生成)および通知を終了したと判断して、ステップS1に戻る。一方、ステップS11で“NO”であれば、つまり変数iが変数N未満であれば、未だ移動経路Path_iを算出していない要求メッセージが有ると判断して、ステップS13で、i番目の要求メッセージに応じた移動経路Path_iを算出する。ただし、移動経路Path_iの算出は、要求メッセージに記載された生成方針に従う。
【0094】
続いて、ステップS15では、経路生成の地図に、移動経路Path_iをT秒(この実施例では、2秒)分書き込む。次のステップS17では、要求元のロボット12に、現在時刻tとT秒分の移動経路Path_iとを含む制御情報(制御データ)を通知する。そして、ステップS19で、変数iに1加算して(i=i+1)、ステップS11に戻る。
【0095】
図11は図3に示したロボット12のCPU60のサービス提供処理を示すフロー図である。また、図12は図3に示したロボット12のCPU60の送信処理を示すフロー図である。これらの処理は、ロボット12のCPU60によって並列的に実行される。
【0096】
図11に示すように、CPU60は、サービス提供処理を開始すると、ステップS31で、要求メッセージの送信処理を開始する。つまり、後述する送信処理(タスク)の実行を開始する。次のステップS33では、制御情報を受信したかどうかを判断する。つまり、CPU60は、ロボット制御装置102からの制御データを受信したかどうかを判断する。
【0097】
ステップS33で“NO”であれば、つまり制御情報を受信していなければ、そのままステップS33に戻る。一方、ステップS33で“YES”であれば、つまり制御情報を受信すれば、ステップS35で、制御情報に従って移動する。つまり、CPU60は、制御情報に含まれるT秒分の移動経路データが示す複数の座標に対応する複数の位置を順番に通過するように、モータ制御ボード66を制御し、車輪モータ24を駆動する。ただし、このとき、制御情報に含まれる現在時刻tを参照して、通信遅延にかかる時間Δtだけ移動した位置から移動経路データに従って移動される。
【0098】
次のステップS37では、ロボット12自身の現在位置を更新する。そして、ステップS39で、目標位置に到着したかどうかを判断する。サービス毎に目標位置は異なるため、実行するサービスに応じて適宜判断される。たとえば、所定の場所ないし部屋に到着したか、所望の人物との距離が一定以下になるまで近づいたかなどが判断される。
【0099】
ステップS39で“NO”であれば、つまり目標位置に到着していなければ、ステップS33に戻る。一方、ステップS39で“YES”であれば、つまり目標位置に到着すれば、ステップS41で、提供するサービスに応じコミュニケーション行動を実行する。たとえば、ロボット12は、CPU60の指示に従って、郵便物や荷物を届けたり、所望の人物に対面したり、所望の人物を追従したりする。そして、ステップS43で、サービス終了かどうかを判断する。ステップS43で“NO”であれば、つまりサービス終了で無ければ、ステップS41に戻って、提供するサービスに応じたコミュニケーション行動の実行を継続する。一方、ステップS43で“YES”であれば、つまりサービス終了であれば、ステップS45で、要求メッセージの送信処理を終了して、サービス提供処理を終了する。つまり、CPU60は、ステップS45で、図12に示す送信処理の実行を終了させる。
【0100】
また、上述したように、ステップS31で要求メッセージの送信処理が開始されると、図12に示すように、CPU60は送信処理を開始し、ステップS61で、提供するサービスに応じた要求メッセージを生成する。ただし、ロボット名は、ロボット12自身の名称ないし識別情報であり、「サービス名」は提供するサービスの名称である。また、「優先度」および「生成方針」は、サービス名(サービス)に対応して予め決定されている。「位置」は、ロボット12の現在位置であり、自身で監視してある。ただし、ロボット制御装置102から現在位置を取得するようにしてもよい。または、ロボット制御装置102から現在位置を取得して、それによって自身で監視している現在位置を修正してもよい。
【0101】
次のステップS63では、要求メッセージをロボット制御装置102に送信する。続いて、ステップS65で、タイマをリセットおよびスタートする。なお、図3では省略したが、タイマは、ロボット12に内蔵されている。続いて、ステップS67では、送信終了かどうかを判断する。つまり、上述したように、ステップS45で、要求メッセージの送信処理が終了されたかどうかを判断する。
【0102】
ステップS67で“YES”であれば、つまり送信終了であれば、そのまま送信処理を終了する。一方、ステップS67で“NO”であれば、つまり送信終了でなければ、ステップS69で、一定時間(たとえば、500ms)が経過したかどうかを判断する。つまり、CPU60は、タイマのカウント値が500ms以上になったかどうかを判断する。ステップS69で“NO”であれば、つまり一定時間を経過していなければ、同じステップS69に戻って、一定時間の経過を待機する。一方、ステップS69で“YES”であれば、つまり一定時間を経過すれば、ステップS61に戻る。したがって、一定時間毎に、要求メッセージが送信される。
【0103】
なお、ステップS69で“YES”となり、ステップS61に戻ると、「位置」のみが変更された要求メッセージが生成される。つまり、一回の送信処理では、2回目以降の要求メッセージでは、「位置」のみを、ロボット12の現在位置の更新に従って更新すればよい。
【0104】
この実施例によれば、ロボット同士が衝突しないように生成した移動経路のうち、T秒分のみを通知するので、無線通信が遅延したり瞬断したりした場合であっても、互いに移動経路が干渉せず、安全に移動を継続することができる。また、比較的短い時間で、移動経路が更新されるため、環境の動的な変化に対応してロボットを移動させることができる。
【0105】
なお、この実施例では、T秒分の移動経路をロボットに通知するようにしたが、移動して良い領域をロボットに通知するようにしてもよい。かかる場合には、移動して良い領域およびその領域までの経路が他のロボットと干渉しないようにする必要がある。
【0106】
また、この実施例では、現在位置から目標位置までの移動経路が干渉しないように、各ロボットの移動経路を計算するようにしたが、少なくともT秒分の移動経路が干渉しないように、各ロボットの移動経路を計算するようにしてもよい。
【符号の説明】
【0107】
10 …ネットワークロボットシステム
12 …ロボット
24,72,74,76,78,80 …モータ
28 …赤外線距離センサ
34 …全方位カメラ
52 …スピーカ
54 …マイク
58 …眼カメラ
60 …CPU
64 …メモリ
66 …モータ制御ボード
68 …センサ入力/出力ボード
70 …音声入力/出力ボード
82 …通信LANボード
16c …加速度センサ
84 …無線通信装置
86 …無線タグ読取装置
100 …ネットワーク
102 …ロボット制御装置
104 …環境センサ
【特許請求の範囲】
【請求項1】
自走可能な複数のロボットと、
前記複数のロボットの各々と通信可能に接続されるロボット制御装置とを備える、ネットワークロボットシステムであって、
前記複数のロボットの各々は、
サービスの提供に係る移動経路データの生成要求を前記ロボット制御装置に送信する生成要求送信手段、
前記ロボット制御装置から送信された移動経路データを受信する移動経路データ受信手段、および
前記移動経路データ受信手段によって受信された移動経路データに従って移動する移動手段を備え、
前記ロボット制御装置は、
前記複数のロボットからの前記生成要求を受信する生成要求受信手段、
前記複数のロボット同士が衝突しないように、前記生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および
前記経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ネットワークロボットシステム。
【請求項2】
前記生成要求は前記移動経路データの生成についての優先度を含み、
前記経路生成手段は、前記生成要求受信手段によって前記複数のロボットからの前記生成要求を受信したとき、複数の前記生成要求に応じた移動経路データを、前記優先度の高い順に生成する、請求項1記載のネットワークロボットシステム。
【請求項3】
前記ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行するコミュニケーションロボットを含む、請求項1または2記載のネットワークロボットシステム。
【請求項4】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置であって、
前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信手段、
前記複数のロボット同士が衝突しないように、前記生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および
前記経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ロボット制御装置。
【請求項5】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置のロボット制御方法であって、
(a)前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信し、
(b)前記複数のロボット同士が衝突しないように、前記ステップ(a)によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成し、そして
(c)前記ステップ(b)によって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する、ロボット制御方法。
【請求項6】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置で実行されるロボット制御プログラムであって、
前記ロボット制御装置のコンピュータに、
前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信ステップ、
前記複数のロボット同士が衝突しないように、前記生成要求受信ステップによって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成ステップ、および
前記経路生成ステップによって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する移動経路データ送信ステップを実行させる、ロボット制御プログラム。
【請求項1】
自走可能な複数のロボットと、
前記複数のロボットの各々と通信可能に接続されるロボット制御装置とを備える、ネットワークロボットシステムであって、
前記複数のロボットの各々は、
サービスの提供に係る移動経路データの生成要求を前記ロボット制御装置に送信する生成要求送信手段、
前記ロボット制御装置から送信された移動経路データを受信する移動経路データ受信手段、および
前記移動経路データ受信手段によって受信された移動経路データに従って移動する移動手段を備え、
前記ロボット制御装置は、
前記複数のロボットからの前記生成要求を受信する生成要求受信手段、
前記複数のロボット同士が衝突しないように、前記生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および
前記経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ネットワークロボットシステム。
【請求項2】
前記生成要求は前記移動経路データの生成についての優先度を含み、
前記経路生成手段は、前記生成要求受信手段によって前記複数のロボットからの前記生成要求を受信したとき、複数の前記生成要求に応じた移動経路データを、前記優先度の高い順に生成する、請求項1記載のネットワークロボットシステム。
【請求項3】
前記ロボットは、身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行するコミュニケーションロボットを含む、請求項1または2記載のネットワークロボットシステム。
【請求項4】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置であって、
前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信手段、
前記複数のロボット同士が衝突しないように、前記生成要求受信手段によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成手段、および
前記経路生成手段によって生成された移動経路データのうちの一定時間分を要求元のロボットに送信する移動経路データ送信手段を備える、ロボット制御装置。
【請求項5】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置のロボット制御方法であって、
(a)前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信し、
(b)前記複数のロボット同士が衝突しないように、前記ステップ(a)によって受信された複数の生成要求のそれぞれに応じた移動経路データを生成し、そして
(c)前記ステップ(b)によって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する、ロボット制御方法。
【請求項6】
自走可能な複数のロボットの各々と通信可能に接続されるロボット制御装置で実行されるロボット制御プログラムであって、
前記ロボット制御装置のコンピュータに、
前記複数のロボットからのサービスの提供に係る移動経路データの生成要求を受信する生成要求受信ステップ、
前記複数のロボット同士が衝突しないように、前記生成要求受信ステップによって受信された複数の生成要求のそれぞれに応じた移動経路データを生成する経路生成ステップ、および
前記経路生成ステップによって生成された全移動経路のうちの一定時間分を要求元のロボットに送信する移動経路データ送信ステップを実行させる、ロボット制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−231698(P2010−231698A)
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2009−81030(P2009−81030)
【出願日】平成21年3月30日(2009.3.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成20年4月1日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「ネットワーク・ヒューマン・インターフェースの総合的な研究開発(ネットワークロボット技術)」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願日】平成21年3月30日(2009.3.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成20年4月1日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「ネットワーク・ヒューマン・インターフェースの総合的な研究開発(ネットワークロボット技術)」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
[ Back to top ]