(57)【要約】【課題】  複数のロボットに一以上のタスクを効率よく実行させることができるロボット制御装置を提供する。【解決手段】  移動機能を備えたロボットに実行させるタスクの管理を行うロボット制御装置であって、前記ロボットのバッテリの残量に基づいて、前記バッテリの状態が、予め規定された複数のバッテリレベルのうちのどのバッテリレベルであるかを判定するバッテリレベル判定手段と、前記ロボットに実行させるタスクの実行計画をロボット毎に設定すると共に、前記バッテリレベル毎に定められた手順に従って、前記実行計画に登録されたタスクの実行計画の再設定を行うタスク管理手段と、前記実行計画において設定されたタスクを前記ロボットに実行させる実行命令を生成する実行命令生成手段と、前記実行命令を前記ロボットに向けて送信する送信手段とを含むロボット制御装置。【選択図】      図３
2006106919.tif 000002
【特許請求の範囲】
【請求項１】
移動機能を備えたロボットに実行させるタスクの管理を行うロボット制御装置であって、
前記ロボットのバッテリの残量に基づいて、前記バッテリの状態が、予め規定された複数のバッテリレベルのうちのどのバッテリレベルであるかを判定するバッテリレベル判定手段と、
前記ロボットに実行させるタスクの実行計画をロボット毎に設定すると共に、前記バッテリレベル毎に定められた手順に従って、前記実行計画に登録されたタスクの実行計画の再設定を行うタスク管理手段と、
前記実行計画において設定されたタスクを前記ロボットに実行させる実行命令を生成する実行命令生成手段と
前記実行命令を前記ロボットに向けて送信する送信手段と
を含むロボット制御装置。
【請求項２】
前記タスク管理手段は、前記タスク管理手段が行う前記実行計画に登録されたタスクの実行計画の再設定の際に、前記ロボットでの実行が困難であると判断されたタスクを、他のロボットの実行計画に登録する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記バッテリレベル判定手段は、
前記バッテリ残量に基づいて、前記ロボットのバッテリの補給が必要であるか否かを決定するバッテリ補給決定部と、
バッテリ補給が必要であると決定された場合に、予め用意された複数のバッテリ補給エリアの中から一つのバッテリ補給エリアを選択し、選択したバッテリ補給エリアを前記ロボットの移動目標エリアとして設定するバッテリ補給エリア選択部と
前記ロボットが実行中であるタスクの遂行に消費されるバッテリ量と、前記ロボットの前記移動目標エリアへの移動に消費されるバッテリ量との少なくとも一方を加味して求めた少なくとも一つの閾値と、前記バッテリ残量との比較により、前記バッテリの状態が、予め規定された複数のバッテリレベルのうちのどのバッテリレベルであるかを判定するバッテリレベル判定部と
を有することを特徴とする請求項１又は請求項２に記載のロボット制御装置。
【請求項４】
前記バッテリ補給エリア選択部では、前記ロボットの現在位置若しくは前記ロボットが実行中のタスクの終了位置に基づいて、前記移動目標エリアの設定を行う
ことを特徴とする請求項３に記載のロボット制御装置。
【請求項５】
前記タスク管理手段は、前記バッテリ補給決定部でバッテリ補給が必要であると決定された場合に、
前記ロボットを前記移動目標エリアに移動させる移動タスクを前記実行計画に登録する
ことを特徴とする請求項３又は請求項４に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律移動ロボットに一以上のタスクを実行させるロボット制御装置に関するものである。より詳細には、自律移動ロボットの動力源であるバッテリの残量に基づいて、自律移動ロボットに割り当てられた複数のタスクの実行順位の見直し、タスクの変更、そしてタスクの他の自律移動ロボットへの振り分けなどを行って、自律移動ロボットで複数のタスクを効率良く実行するロボット制御装置に関するものである。
【背景技術】
【０００２】
近年、自律移動可能なロボット（以下、「移動ロボット」と記載する）を用いて、荷物の搬送業務、受付業務、そして案内業務などの各種の作業（以下、総称して「タスク」と記載する）を実行する試みが行われており、様々な分野で実用化されている（特許文献１）。
【０００３】
例えば、特許文献１には、ＦＡ（ファクトリーオートメーション）が導入された製造工場内で荷物を搬送する移動ロボットの充電制御システムが開示されている。
この充電制御システムでは、各移動ロボットの運行をホストコンピュータが管理しており、各移動ロボットは、ホストコンピュータの指示により、荷物の搬送や、充電ステーションへ移動を行うように制御されている。
【特許文献１】特開２００１−９２５２９号公報（段落００３０〜００４１、図１〜３）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような工場内で荷物の搬送業務を行う移動ロボットは、温度や湿度などの工場内の環境が一定に保たれていること、荷物の搬送経路や搬送先が定まっていることから、移動ロボットが消費するバッテリの量（バッテリ消費量）の予測が大きく外れることがなく、荷物の搬送や移動の途中でバッテリが不足して移動ロボットが停止することが起こりにくい。
【０００５】
一方、受付業務や案内業務などにおけるタスクのように、人が存在する環境下でタスクを行う移動ロボットは、タスクの実行途中において、人が存在することに起因する応答（人応答）を行う必要が生じることが多い。
【０００６】
例えば、移動ロボットが移動する経路上に人がいる場合や、荷物が置いてある場合には、移動ロボットには、人や荷物を回避するように移動経路を変更するという応答（人応答）を行う必要が生じる
また、移動ロボットが、荷物をある人に渡すという内容のタスク（荷物配達タスク）を実行している場合、荷物を渡す対象の人物（対象人物）が常に同じ場所にいるとは限らないので、移動ロボットは、対象人物に到達するまで移動を続けるという応答（人応答）を行う必要が生じる。
【０００７】
このように、タスクを実行している途中において、移動ロボットが人応答を行うと、この人応答の際のバッテリ消費量が、タスクの実行に要するバッテリ消費量に加算されることになる。この人応答の際のバッテリ消費量は、人応答の内容により大きく異なるので、移動ロボットがタスクを実行する際に消費するバッテリの量（バッテリ消費量）を予測することは困難であった。
【０００８】
このように、この人応答という予期し得ない要因により、タスクを実行する際のバッテリ消費量を一概に予測することができないので、タスクの途中でバッテリが不足してタスクの遂行が困難となることや、移動ロボットに割当てられた総てのタスクを遂行できなくなるといったことが、人が存在する環境下でタスクを行う移動ロボットの場合、工場内の移動ロボットに比べて起こり易かった。
【０００９】
そこで、この人応答という予期し得ない要因が存在する条件の下でも、移動ロボットで複数のタスクを効率良く実行することができるようにする装置、すなわち、ロボットの動力源であるバッテリの残量に基づいて、ロボットに割り当てられた複数のタスクの実行順位の見直しや、未実行のタスクの他の移動ロボットへの振り分けや、遂行が困難となったタスクの他の移動ロボットへの移管を行って、移動ロボットで複数のタスクを効率良く実行するロボット制御装置に対する要求があった。
【課題を解決するための手段】
【００１０】
本発明は、移動機能を備えたロボットの各々に実行させるタスクの管理を行うロボット制御装置に関するものである。
このロボット制御装置は、前記ロボットのバッテリの残量に基づいて、前記バッテリの状態が、予め規定された複数のバッテリレベルのうちのどのバッテリレベルであるかを判定するバッテリレベル判定手段と、前記ロボットに実行させるタスクの実行計画をロボット毎に設定すると共に、前記バッテリレベル毎に定められた手順に従って、前記実行計画に登録されたタスクの実行順位の見直しや、タスクの変更を行うタスク管理手段と、前記実行計画において設定されたタスクを前記ロボットに実行させる実行命令を生成する実行命令生成手段と、前記実行命令を前記ロボットに向けて送信する送信手段とを含んで構成される。
【００１１】
このロボット制御装置では、前記タスク管理手段が行う前記実行計画に登録されたタスクの実行順位の見直しにより、前記ロボットでの実行が困難であると判断されたタスクを、他のロボットの実行計画に登録することが好ましい。
【００１２】
さらに、このロボット制御装置の前記バッテリレベル判定手段は、前記バッテリの残量に基づいて、前記ロボットのバッテリの補給（交換・充電）が必要であるか否かを決定するバッテリ補給決定部と、バッテリ補給が必要であると決定された場合に、予め用意された複数のバッテリ補給エリアの中から一つのバッテリ補給エリアを選択し、選択したバッテリ補給エリアを前記ロボットの移動目標エリアとして設定するバッテリ補給エリア選択部と、前記ロボットが実行中であるタスクの遂行に消費されるバッテリ量と、前記ロボットの前記移動目標エリアへの移動に消費されるバッテリ量とを加味して求めた閾値と、前記バッテリ残量との比較により、前記バッテリの状態が、予め規定された複数のバッテリレベルのうちのどのバッテリレベルであるかを判定するバッテリレベル判定部とを有することが好ましい。
【００１３】
ここで、前記バッテリ補給エリア選択部では、前記ロボットの現在位置若しくは前記ロボットが実行中のタスクの終了位置に基づいて、前記移動目標エリアの設定を行うことが好ましい。
【００１４】
また、このロボット制御装置の前記タスク管理手段は、バッテリ補給が必要であると決定された場合に、前記ロボットを前記移動目標エリアに移動させる移動タスクを前記実行計画に登録することが好ましい。
【発明の効果】
【００１５】
本発明に係るロボット制御装置によれば、各ロボットの動力源であるバッテリの残量に基づいて、各ロボットの実行計画に登録されたタスクの実行順位の見直しや、タスクの変更、遂行が困難となったタスクの他のロボットへの移管を行って、ロボットで複数のタスクを効率良く実行することができる。よって、人応答という予期し得ない要因が存在する条件の下でも、ロボットで複数のタスクを効率良く実行することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、適宜図面を参照しながら説明する。
図１は、本発明に係るロボット制御装置を備えたロボット制御システムのシステム構成図である。
【００１７】
（ロボット制御システムの構成）
はじめに、本発明の実施形態におけるロボット制御装置が組み込まれたロボット制御システムついて説明する。
【００１８】
図１に示すように、このロボット制御システムＡは、移動機能を備えた複数のロボットＲＡ，ＲＢ，ＲＣ（ただし、ロボットを特定しない場合は、単にロボットＲという）を有しており、各ロボットＲは、ロボット制御装置３においてロボットＲ毎に予め設定されたタスクの実行計画（タスクスケジュール）に従って、タスクを実行する。そして、このロボット制御システムＡでは、各ロボットＲのバッテリの残量に基づいて、タスクスケジュールに登録されたタスクの再設定を行って、複数のロボットＲで複数のタスクを効率良く実行するように構成されている。
【００１９】
図１に示すように、ロボット制御システムＡは、複数のロボットＲと、これらロボットＲと無線通信によって接続された基地局１と、この基地局１とルーター２を介して接続されたロボット制御装置３と、ロボット制御装置３にネットワーク４を介して接続された端末５とを含んで構成される。
【００２０】
ロボットＲは、ロボット制御装置３から入力された実行命令に従ってタスクを実行するものであり、ロボットＲがタスクを実行する領域として予め設定されたタスク実行エリア内に、少なくとも一台配置されている。
ここで、図１には、来訪者を会議室などの所定の場所に案内するという内容のタスク（案内タスク）を実行中のロボットＲＡと、荷物をある人に渡すという内容のタスク（荷物配達タスク）を実行中のロボットＲＢと、新たなタスクが割り当てられるのを待つという内容のタスク（待機タスク）を実行中のロボットＲＣとが、例示されている。
【００２１】
基地局１は、ロボットＲとロボット制御装置３との間のデータ交換を仲介するものである。
具体的には、基地局１は、ロボット制御装置３から出力された実行命令をロボットＲに送信すると共に、ロボットＲから送信されたロボットＲの状態に関するデータ（ステータス情報）やロボットＲが実行命令を受信したことを示す信号（受信報告信号）を受信して、ロボット制御装置３に出力するものである。
基地局１は、ロボットＲとロボット制御装置３との間のデータ交換を確実に行えるようにするために、タスク実行エリア内に少なくとも一つ設けられている。
なお、タスク実行エリアが建物の数フロアに亘って設定されている場合には、フロア毎に設けられていることが好ましく、一つの基地局１では総てのタスク実行エリアをカバーできない場合には、複数の基地局１がタスク実行エリア内に設けられていることが好ましい。
【００２２】
ロボット制御装置３は、ロボットＲに実行させるタスクの実行計画（タスクスケジュール）を、ロボットＲ毎に設定すると共に、ロボットＲのバッテリ残量に基づいて、タスクスケジュールに登録されたタスクの再設定（タスクの実行順位の見直しや、タスクの変更）を行うものである。
端末５は、ロボットＲに実行させるタスクの登録や、ロボット制御装置３において設定されるタスクスケジュールの変更や、ロボットＲの動作命令の入力などを行うものである。
【００２３】
以下、ロボットＲ及びロボット制御装置３の構成についてそれぞれ詳細に説明する。
【００２４】
［ロボット］
本実施形態のロボットＲは、自律移動型の２足歩行ロボットである。
このロボットＲは、主として、ロボット制御装置３から送信された実行命令に基づいて、タスクを実行するものである。
【００２５】
図１に示すように、このロボットＲは、頭部Ｒ１、腕部Ｒ２、脚部Ｒ３を有しており、頭部Ｒ１、腕部Ｒ２、脚部Ｒ３は、それぞれアクチュエータにより駆動され、自律移動制御部５０（図２参照）により２足歩行の制御がなされる。この２足歩行についての詳細は、例えば特開２００１−６２７６０号公報に開示されている。
【００２６】
図２は、ロボットＲのブロック構成図である。
図２に示すように、ロボットＲは、前記した頭部Ｒ１、腕部Ｒ２、脚部Ｒ３に加えて、カメラＣ，Ｃ、スピーカＳ、マイクＭＣ、画像処理部１０、音声処理部２０、制御部４０、自律移動制御部５０、無線通信部６０、バッテリ７０を有している。
さらに、ロボットＲの位置を検出するため、ジャイロセンサＳＲ１やＧＰＳ受信器ＳＲ２を有している。
【００２７】
［カメラ］
カメラＣ，Ｃは、映像をデジタルデータとして取り込むことができるものであり、例えばカラーＣＣＤ（Charge-Coupled Device）カメラが使用される。カメラＣ，Ｃは、左右に平行に並んで配置され、撮影した画像は画像処理部１０に出力される。このカメラＣ，Ｃと、スピーカＳ及びマイクＭＣとは、いずれも頭部Ｒ１の内部に配設されている。
【００２８】
［画像処理部］
画像処理部１０は、カメラＣ，Ｃが撮影した画像を処理して、撮影された画像からロボットＲの周囲の状況を把握するため、周囲の障害物や人物の認識を行う部分である。この画像処理部１０は、ステレオ処理部１１ａ、移動体抽出部１１ｂ、及び顔認識部１１ｃを含んで構成される。
ステレオ処理部１１ａは、左右のカメラＣ，Ｃが撮影した２枚の画像の一方を基準としてパターンマッチングを行い、左右の画像中の対応する各画素の視差を計算して視差画像を生成し、生成した視差画像及び元の画像を移動体抽出部１１ｂに出力する。なお、この視差は、ロボットＲから撮影された物体までの距離を表すものである。
【００２９】
移動体抽出部１１ｂは、ステレオ処理部１１ａから出力されたデータに基づき、撮影した画像中の移動体を抽出するものである。移動する物体（移動体）を抽出するのは、移動する物体は人物であると推定して、人物の認識をするためである。
移動体の抽出をするために、移動体抽出部１１ｂは、過去の数フレーム（コマ）の画像を記憶しており、最も新しいフレーム（画像）と、過去のフレーム（画像）を比較して、パターンマッチングを行い、各画素の移動量を計算し、移動量画像を生成する。そして、移動体抽出部１１ｂは、視差画像と、移動量画像とから、カメラＣ，Ｃから所定の距離範囲内で、移動量の多い画素がある場合に、その位置に人物がいると推定し、その所定距離範囲のみの視差画像として、移動体を抽出し、顔認識部１１ｃへ移動体の画像を出力する。
【００３０】
顔認識部１１ｃは、抽出した移動体から肌色の部分を抽出して、その大きさ、形状などから顔の位置を認識する。なお、同様にして、肌色の領域と、大きさ、形状などから手の位置も認識される。
認識された顔の位置は、ロボットＲが移動するときの情報として、また、その人とのコミュニケーションを取るため、制御部４０に出力されると共に、無線通信部６０に出力されて、基地局１を介して、ロボット制御装置３に送信される。
【００３１】
［音声処理部］
音声処理部２０は、音声合成部２１ａと、音声認識部２１ｂとを有している。
音声合成部２１ａは、制御部４０が決定し、出力してきた発話行動の指令に基づき、文字情報から音声データを生成し、スピーカＳに音声を出力する部分である。音声データの生成には、予め記憶している文字情報と音声データとの対応関係を利用する。
音声認識部２１ｂは、マイクＭＣから音声データが入力され、予め記憶している音声データと文字情報との対応関係に基づき、音声データから文字情報を生成し、制御部４０に出力するものである。
【００３２】
［制御部］
制御部４０は、後記するロボット制御装置３に出力する信号を生成すると共に、ロボット制御装置３から出力された実行命令に基づいて、ロボットＲの各部（画像処理部１０、音声処理部２０、自律移動制御部５０、及び無線通信部６０）を制御するものである。
【００３３】
具体的には、制御部４０は、ロボット制御装置３から出力された実行命令を受信すると、当該実行命令を受信したことを示す信号（受信報告信号）を生成し、受信報告信号を無線通信部６０を介してロボット制御装置３に出力する。
さらに、制御部４０は、実行命令において規定されるタスクを実行するために、ロボットＲの各部（画像処理部１０、音声処理部２０、自律移動制御部５０、及び無線通信部６０）を制御する制御信号を生成し、生成した制御信号を、必要に応じてロボットＲの各部に出力する。
【００３４】
また、制御部４０は、ロボットＲの状態に関するデータ（ステータス情報）を、所定時間間隔毎に生成し、生成したステータス情報を無線通信部６０を介してロボット制御装置３に出力する。
ここで、ステータス情報とは、後記するロボット制御装置３において、ロボットＲのバッテリ補給が必要であるか否かを判断する際に用いられるものである。
本実施形態の場合、このステータス情報には、ロボットＲに搭載されたバッテリ７０の残量を示すバッテリ残量データや、バッテリ温度、バッテリの電圧値、そしてバッテリの電流値などを示すデータ（以下、これらを総称してバッテリ情報という）と、ロボットＲの現在位置を示す座標データ（位置情報）と、ロボットＲが現在行っているタスクの内容を示すタスクＩＤとその進行状況とを示すデータ（タスク情報）と、ロボットＲに割り当てられた固有の識別番号を示すデータ（ロボットＩＤ）とが含まれている。
【００３５】
本実施形態では、制御部４０がステータス情報を、（１）定期的に生成し、送信する態様となっているが、（２）バッテリ残量が所定値以下となった場合や、（３）ロボット制御装置３から送信された、ステータス情報の送信を要求する信号（データ要求信号）を受信した場合に、制御部４０がステータス情報を生成し、送信する態様としても良い。もちろん、これら（１）〜（３）の態様を任意に組み合わせた態様とすることも可能である。
【００３６】
［自律移動制御部］
自律移動制御部５０は、頭部制御部５１ａ、腕部制御部５１ｂ、脚部制御部５１ｃを有している。
頭部制御部５１ａは、制御部４０から入力される制御信号の指示に従い頭部Ｒ１を駆動し、腕部制御部５１ｂは、制御部４０から入力される制御信号の指示に従い腕部Ｒ２を駆動し、脚部制御部５１ｃは、制御部４０から入力される制御信号の指示に従い脚部Ｒ３を駆動する。
【００３７】
［無線通信部］
無線通信部６０は、ロボット制御装置３とデータの送受信を行う通信装置である。無線通信部６０は、公衆回線通信装置６１ａ及び無線通信装置６１ｂを有している。
公衆回線通信装置６１ａは、携帯電話回線やＰＨＳ（Personal Handyphone System）回線などの公衆回線を利用した無線通信手段である。一方、無線通信装置６１ｂは、IEEE802.11b規格に準拠する無線ＬＡＮなどの、近距離無線通信による無線通信手段である。
無線通信部６０は、ロボット制御装置３からの接続要求に従い、公衆回線通信装置６１ａ又は無線通信装置６１ｂを選択してロボット制御装置３とデータ通信を行う。
【００３８】
バッテリ７０は、ロボットＲの各部の動作や処理に必要な電力の供給源である。
ジャイロセンサＳＲ１及びＧＰＳ受信器ＳＲ２は、ロボットＲの現在位置を示す座標データを定期的に生成し、生成した座標データを制御部４０に出力する。この座標データは、ロボットＲの行動を決定するのに利用されると共に、前記したステータス情報の生成に用いられる。
【００３９】
［ロボット制御装置］
図１におけるロボット制御装置３は、主として、ロボットＲに実行させるタスクの実行計画（タスクスケジュール）を、ロボットＲ毎に設定すると共に、ロボットＲのバッテリ残量に基づいて、タスクスケジュールの見直し（タスクの割り当ての変更やタスクの変更）を行うものである。
図３に示すように、ロボット制御装置３は、入出力手段１００と、記憶手段２００と、制御手段３００とを主要部として含んで構成される。
【００４０】
［入出力手段］
入出力手段１００は、基地局１やネットワーク４を介して、ロボットＲや端末５との間でデータ交換を行うためのインタフェースである。
本実施形態の場合、ロボットＲから送信されるステータス情報及び受信報告信号、端末５から送信されるタスクの登録や更新を要求する信号（タスク要請信号）、そして後述する実行命令生成手段３５０において生成される実行命令が、この入出力手段１００を介して、やり取りされる。
入出力手段１００は、入力されるステータス情報とタスク要請信号と受信報告信号とのうち、ステータス情報とタスク要請信号と受信報告信号とをデータベース管理手段３１０に出力し、ステータス情報のみをバッテリレベル判定手段３３０に出力する。
【００４１】
［記憶手段］
記憶手段２００は、ロボットＲの制御に必要な情報を記憶するものであり、この記憶手段２００には、地図情報データベース２１０と、タスク情報データベース２２０と、タスクスケジュールテーブル２３０と、ロボット情報データベース２４０と、が少なくとも記憶されている。
【００４２】
＜地図情報データベース＞
地図情報データベース２１０は、ロボットＲがタスクを実行する領域（タスク実行エリア）の地図情報（グローバルマップ）を格納するデータベースである。
この地図情報データベース２１０では、タスク実行エリア内に存在するもの、例えば、通路、階段、エレベータ、部屋、そしてバッテリ補給エリアなどの情報が、タスク実行エリア内における位置を示す座標データと関連づけて登録されている。
【００４３】
したがって、本実施形態の場合、ロボットＲ自身の現在位置をもとに地図情報データベース２１０を参照することで、タスク実行エリア内に配置されたロボットＲと、タスク実行エリア内の特定物（目標）との位置関係を知ることができる。
例示すると、ロボットＲからバッテリ補給エリアまでの距離や、バッテリ補給エリアがロボットＲの正面を基準として、どの方向に位置するかなどが判ることになる。
【００４４】
よって、この位置関係に基づいて、ロボットＲの自律移動やタスクの実行命令する信号（実行命令）をロボット制御装置３において生成することで、ロボットＲを、タスク実行エリア内の所望の位置（例えば、タスクの開始位置）に、最短かつ最適の経路を経て、移動させることができるので、ロボットＲの自律移動やロボットＲによるタスクの実行が可能となる。さらに、この位置関係とロボットＲの平均移動速度に基づいて、ロボットＲが移動する際のバッテリ消費量や時間も算出することができる。
なお、本実施形態の場合、地図情報データベース２１０に記憶される地図情報の更新は、オペレータが操作する端末５からデータを入力することで、データベース管理手段３１０が行うように設定されている。
【００４５】
＜タスク情報データベース＞
タスク情報データベース２２０は、ロボットＲに実行させるタスクに関する情報（タスクデータ）を記憶するデータベースである。
このタスク情報データベースには、図４に示すように、タスク毎に割り当てられた固有の識別子であるタスクＩＤ、タスクの優先度、タスクの重要度、タスクを実行させるロボットの識別子であるロボットＩＤ、案内や運搬などのタスクの内容、タスク実行エリア内におけるタスクを開始する位置（開始位置）、タスク実行エリア内におけるタスクを終了する位置（終了位置）、タスクの実行に要する時間（所要時間）、そしてタスクの開始予定時刻（開始時刻）、タスクの終了予定時刻（終了時刻）、そしてタスクの状態などが、情報項目として含まれている。
【００４６】
本実施形態の場合、このタスク情報データベース２２０へのタスクの新規登録や、登録されたタスクの情報項目の内容の更新は、オペレータが操作する端末５からデータを入力することで、データベース管理手段３１０が行うように設定されている。
ここで、あるユーザが荷物の運搬タスクをこのタスク情報データベース２２０に登録する場合を例に挙げて説明すると、ユーザが、タスクの内容と、開始位置と、終了位置と、開始時刻とを端末５から入力すると、タスク情報データベース２２０には、図４のタスクＩＤ＝１０の欄に示すような情報項目の内容を有するタスクが登録されることになる。
【００４７】
＜タスクスケジュールテーブル＞
タスクスケジュールテーブル２３０は、図５に示すように、ロボットＲに実行させるタスクの実行順位、タスク情報データベース２２０に登録されたタスクを特定するためのタスクＩＤ、タスクの優先度、タスクの内容、そしてタスクの状態を情報項目として含むテーブルである。
このタスクスケジュールテーブル２３０では、これら情報項目が、タスク実行エリア内に配置されたロボットＲ毎に整理されており、どの様なタスクが、どのような順番で各ロボットＲに割り当てられているのかを把握できるようになっている。
【００４８】
ここで、図５の場合を例に挙げて説明すると、ＩＤ＝１で特定されるロボットＲには、タスクＩＤ＝３で特定されるタスクが割り当てられており、このタスクの優先度は、「３」であり、タスクの内容は「運搬」であり、ロボットＩＤ＝１で特定されるロボットＲがこのタスクを実行中であることが確認できる。
そして、タスクＩＤ＝３で特定されるタスクの次には、タスクＩＤ＝７で特定されるタスクが予約されていることが確認できる。
【００４９】
本実施形態では、このタスクスケジュールテーブル２３０において表示される各情報項目は、タスクＩＤを参照用の識別子として、前記したタスク情報データベース２２０の対応する情報項目とリンクさせてある。
すなわち、このタスクスケジュールテーブル２３０は、タスク情報データベース２２０に登録されたタスクのうちの未処理のタスクの各ロボットＲへの割り当てと、各ロボットＲにおけるタスクの実行順序を規定するデータベースである。
ちなみに、このタスクスケジュールテーブル２３０に示されるタスクの割り当て及び実行順序は、後記するタスク管理手段３４０により決定・変更されるものである。
【００５０】
＜ロボット情報データベース＞
ロボット情報データベース２４０は、ロボットＲの状態に関するデータ（ステータス情報）を格納するデータベースである。
ロボット情報データベース２４０には、前記したバッテリ情報、位置情報、タスク情報、そしてロボットＲの駆動系異常の有無などに関する情報（データ）などが情報項目として含まれており、これら情報項目はロボットＩＤに関連付けて整理されている。
このロボット情報データベース２４０に記憶される各情報項目の内容の更新は、ロボットＲから送信されたステータス情報に基づいて、後記する制御手段３００のデータベース管理手段３１０により行われる。
【００５１】
［制御手段］
図３及び図６を参照して、制御手段３００は、データベース管理手段３１０と、優先度データ生成手段３２０と、バッテリレベル判定手段３３０と、タスク管理手段３４０と、実行命令生成手段３５０とを含んで構成される。
【００５２】
＜データベース管理手段＞
データベース管理手段３１０は、記憶手段２００に記憶された各データベースへのデータの登録や、各データベースに登録されたデータの更新などを行うものである。
例えば、データベース管理手段３１０は、ロボットＲの状態を示すステータス情報が、入出力手段１００を介して入力されると、ステータス情報に含まれるロボットＩＤに基づいて、ロボット情報データベース２４０を参照し、ロボットＩＤにより特定されるロボットＲに関する情報項目の内容（データ）を、ステータス情報から取得した情報項目の内容（データ）に更新する。
また、データベース管理手段３１０は、ステータス情報に含まれるタスク情報が、ロボットＲがタスクの実行を完了していることを示している場合は、ロボットＲに割り当てられた次のタスクを当該ロボットＲに実行させるために、タスクの実行をロボットＲに命令する実行命令の生成を実行命令生成手段３５０に要求する信号（実行命令要求信号）を生成し、生成した実行命令要求信号を実行命令生成手段３５０に出力する。
【００５３】
さらに、データベース管理手段３１０は、端末５において入力された新規タスクの登録やタスクの変更を要求する信号（タスク要請信号）が、入出力手段１００を介して入力されると、タスク情報データベース２２０の更新（情報項目の内容の更新）を行い、タスク情報データベース２２０の更新が行われたことを示す信号（タスク更新信号）を生成し、生成したタスク更新信号を優先度データ生成手段３２０に出力する。
【００５４】
＜優先度データ生成手段＞
優先度データ生成手段３２０は、ロボットＲに実行させるタスクの優先度を決定するものである。
具体的には、この優先度データ生成手段３２０は、データベース管理手段３１０から、タスク更新信号が入力された場合や、タスク管理手段３４０から、バッテリ補給タスクがタスク情報データベース２２０に登録されることにより、タスク情報データベース２２０の更新が行われたことを示す信号（タスク更新信号）が入力された場合に、タスク情報データベース２２０に登録されているタスクであって、未処理（未実行）のタスクの優先度を決定する。
そして、タスク情報データベース２２０に登録されたタスクの中で、未実行のタスクについてのスケジューリングを行うことを要求する信号（スケジュール要求信号）を生成し、タスク管理手段３４０に出力する。
【００５５】
本実施形態の場合、タスクの優先度の決定は、タスク情報データベース２２０にタスクを登録する際に設定されたタスクの重要度、タスクの開始位置から最も近い位置にいるロボットと当該タスクの開始位置との離間距離、現在の時刻からタスクの開始時刻や終了時刻までの時間的余裕、を加味した上で行われる。
【００５６】
具体的には、優先度データ生成手段３２０が、各タスクの優先度Ｐを下記式（１）に基づいて算出することで、タスクの優先度の決定が行われる。
【００５７】
P = (Tpri + n(Tsp))・f(Terr)                        ・・・・(1)
【００５８】
ここで、「Ｔpri」は、タスク情報データベース２２０にタスクを登録する際に任意に決定されたタスクの重要度である。
本実施形態では、このタスクの重要度を示す値は、１．０から５．０の間で、０．５刻みで設定されており、重要度の最も小さいタスクは１．０で、重要度が最も大きいタスクは５．０で、それぞれ示されている。
【００５９】
また、「Ｔsp」は、タスクの開始位置に最も近い位置にいるロボットＲが、当該タスクの開始位置まで移動するのに要する時間であり、「ｎ（Ｔsp）」は、タスクの開始位置の近くにロボットＲが存在する場合に、当該ロボットＲにタスクを優先させて実行させるための距離依存重要度である。
「ｎ（Ｔsp）」の値は、ロボットＲがタスクの開始位置の近くに位置するほど、大きくなるように設定されており、本実施形態では、「Ｔsp」が所定の閾値以下となる場合にのみ、「ｎ（Ｔsp）」が所定の正の値をとるように設定されており、「Ｔsp」が所定の閾値よりも大きい場合には、「ｎ（Ｔsp）」の値は「０」となるように設定されている。
【００６０】
さらに、「ｆ（Ｔerr）」は、現在の時刻からタスクの開始時刻や終了時刻までの時間的余裕に基づいて、タスクを優先させて実行させるための時間依存重要度である。
本実施形態の場合、「ｆ（Ｔerr）」は、０〜１までの値となるように設定されており、その値は、タスク開始時刻が近づくに従って急激に増加して「０」から「１」に近づき、基準時刻（タスク開始時刻よりもタスクの実行に要する時間分だけ前の時刻）からタスク終了時刻までの間は最大値である「１」となり、タスク終了時刻が経過すると、徐々に減少して「０」となるように設定されている。
【００６１】
より具体的に説明すると、本実施形態の場合、現在時刻が基準時刻よりも前である場合は下記式（２）で、現在時刻が基準時刻以降であってタスク終了時刻が経過する前である場合は下記式（３）で、現在時刻がタスク終了時刻以降である場合は下記式（４）で、時間依存重要度ｆ（Ｔerr）が算出される。
【００６２】
f(Terr) = exp(-K((Terr-Ttime)/Ttime))                 ・・・・(2)
f(Terr) = 1                                        ・・・・(3)
f(Terr) = (1+cos((π／Ttime)(Terr/Cobli)))/2          ・・・・(4)
【００６３】
ここで、Terrは、現在時刻とタスク開始時刻との間の時間間隔であり、タスク開始時刻の前では正の値となり、タスク開始時刻の後では負の値となる。また、Ttimeは、タスクの実行に要する時間（タスク所要時間）であり、Cobliは、忘却係数であり、Terr= -Cobli・Ttimeとなった場合に、f(Terr) = 0となるように設定された係数である。
【００６４】
このように、タスクを登録する際に設定されたタスクの重要度、タスクの開始位置から最も近い位置にいるロボットＲと当該タスクの開始位置との離間距離、現在の時刻からタスクの開始時刻や終了時刻までの時間的余裕、を加味した上で、各タスクの優先度Ｐが算出されるので、タスクの優先度として好適な値を得ることができる。
【００６５】
＜バッテリレベル判定手段＞
バッテリレベル判定手段３３０は、図６に示すように、ロボットＲのバッテリ７０の残量（バッテリ残量）に基づいて、ロボットＲに搭載されたバッテリ７０の状態が、予め規定された複数のバッテリレベルのうちの何れのバッテリレベルに該当するのかを判定するものである。
【００６６】
このバッテリレベル判定手段３３０は、バッテリ補給決定部３３１と、バッテリ補給エリア選択部３３２と、バッテリレベル判定部３３３とを含んで構成される。
【００６７】
バッテリ補給決定部３３１は、ロボットＲのバッテリ７０の補給（交換・充電）が必要であるか否かを決定するもの、すなわち、明らかにバッテリ補給が必要でない場合を除外するものである。
具体的には、バッテリ補給決定部３３１は、ステータス情報が入出力手段１００から入力されると、当該ステータス情報に含まれるタスク情報から、ロボットＲが、バッテリ補給タスクを実行中であるか否かを確認し、バッテリ交換タスクをロボットＲのタスクスケジュールに挿入する必要があるか否かを決定する。
【００６８】
ここで、ロボットＲがバッテリ補給タスクを実行中である場合は、バッテリ補給が必要でない場合に相当するので、バッテリ補給決定部３３１は処理を終了する。
一方、ロボットＲがバッテリ補給タスクを実行中でない場合、バッテリ補給決定部３３１は、ステータス情報に含まれるバッテリ情報から、バッテリ７０の残量を示すデータ（バッテリ残量データ）を取得し、取得したバッテリ残量データと、予め設定された第１の閾値とを比較する。
【００６９】
バッテリ補給決定部３３１は、バッテリ残量データで示される値が第１の閾値未満である場合、入出力手段１００から入力されたステータス情報を、バッテリ補給エリア選択部３３２に出力する。
一方、バッテリ残量データで示される値が第１の閾値以上である場合、バッテリ補給決定部３３１は処理を終了する。
【００７０】
ここで、第１の閾値は、バッテリ補給が明らかに不要である場合を除外して、バッテリレベル判定手段３３０（ロボット制御装置３）におけるデータ処理の負担を軽減するために用意されたものである。
本実施形態の場合、第１の閾値は、ロボットＲが配置されるタスク実行エリアの状態、例えば、アップダウンが多い、環境が高温多湿であるといった、バッテリの消費に影響し得る要因を考慮の上、予め設定される値である。
【００７１】
バッテリ補給エリア選択部３３２は、ステータス情報に含まれるロボットＩＤにより特定されるロボットＲについて、当該ロボットＲがバッテリの補給のために移動する場所（バッテリ補給エリア）を決定するものである。
バッテリ補給エリア選択部３３２は、バッテリ補給決定部３３１からステータス情報が入力されると、ステータス情報に含まれるタスク情報を参照し、ロボットＲが、バッテリ補給タスク以外の何らかのタスクを実行中であるか否かを確認する。
そして、ロボットＲがタスクを実行中でない場合、バッテリ補給エリア選択部３３２は、ステータス情報に含まれる位置情報からロボットＲの現在位置を示す座標データ（現在位置データ）を取得する。
そして、バッテリ補給エリア選択部３３２は、現在位置データに基づいて地図情報データベース２１０を参照し、タスク実行エリア内に予め設定された複数のバッテリ補給エリア（Ｂ１〜Ｂ３、図１参照）の中から、現在位置データで特定される位置から最寄りのバッテリ補給エリアであって、バッテリ補給の予約が入っていないバッテリ補給エリアを選択し、選択したバッテリ補給エリアをロボットＲの移動目標エリアとして設定する。
【００７２】
一方、ロボットＲがタスクを実行中である場合、バッテリ補給エリア選択部３３２は、ステータス情報に含まれるタスク情報から、ロボットＲが現在実行中のタスクを示すタスクＩＤを取得する。そして、当該タスクＩＤをもとにタスク情報データベース２２０を参照し、ロボットＲが現在行っているタスクが終了する位置（タスク終了位置）を示す座標データ（タスク終了位置データ）を取得する。
そして、バッテリ補給エリア選択部３３２は、タスク終了位置データに基づいて地図情報データベース２１０を参照し、タスク実行エリア内に予め設定された複数のバッテリ補給エリア（Ｂ１〜Ｂ３）の中から、タスク終了位置データで特定される位置から最寄りのバッテリ補給エリアであって、バッテリ補給の予約が入っていないバッテリ補給エリアを選択し、選択したバッテリ補給エリアをロボットＲの移動目標エリアとして設定する。
【００７３】
ここで、バッテリ補給の予約が入っていないバッテリ補給エリアとは、他のロボットＲがバッテリの補給のために移動する場所（移動目標エリア）として設定されていないバッテリ補給エリアをいう。なお、このバッテリ補給の予約の有無は、タスク情報データベースを参照することで確認できるように構成されている。
【００７４】
そして、バッテリ補給エリア選択部３３２は、移動目標エリアの座標データと、ステータス情報の各情報項目のデータとを含んで構成される移動目標情報を生成し、生成した移動目標情報をバッテリレベル判定部３３３に出力する。
なお、これら座標データは、後段に位置するバッテリレベル判定部３３３において、閾値（第２の閾値〜第４の閾値）を算出する際に利用される。
【００７５】
このように、本実施形態では、ロボットＲがタスクを実行中であるか否かに応じて、移動目標エリアが設定される。すなわち、ロボットＲがタスクを実行中でない場合にはロボットＲの現在位置に基づいて、ロボットＲがタスクを実行中ある場合にはタスク終了位置に基づいて、移動目標エリアが設定される。
そのため、タスク終了位置に基づいて移動目標エリアが設定された場合であって、後段のバッテリレベル判定部３３３において判定されたバッテリレベルが、ロボットＲが現在実行中のタスクを遂行できないレベルである場合には、後段のバッテリレベル判断部３３３から、ロボットＲの現在位置をもとに移動目標エリアを再設定することを要求する信号（再設定要求信号）が入力されることがある。
この場合、バッテリ補給エリア選択部３３２は、ロボットＲの現在位置に基づいて、移動目標エリアを再設定する。そして、再設定された移動目標エリア（移動目標代替エリア）の座標データを、地図情報データベース２１０から取得し、取得した座標データをバッテリレベル判定部３３３に出力する。
【００７６】
［バッテリレベル判定部］
バッテリレベル判定部３３３は、ロボットＲのバッテリ７０の状態が、予め規定された複数のバッテリレベル（モード１〜モード４）のうちの何れに該当するのかを判定するものである。
【００７７】
具体的には、バッテリレベル判定部３３３は、バッテリ補給エリア選択部３３２から移動目標情報が入力された場合、移動目標情報に含まれるタスク情報を参照し、ロボットＲが、バッテリ補給タスク以外の何らかのタスクを現在実行中であるか否かを確認する。
ロボットＲがタスクを実行中である場合、バッテリレベル判定部３３３は、ロボットＲが実行中であるタスクの遂行に消費するバッテリ量と、ロボットＲが実行中のタスクが終了する位置（タスク終了位置）から移動目標エリアへの移動に消費するバッテリ量とを加味して求めた閾値と、移動目標情報から取得したバッテリ残量を示すバッテリ残量データの値との比較により、ロボットＲのバッテリ７０の状態が、モード１〜モード４のうちの何れのバッテリレベルに該当するのかを判定する。
一方、ロボットＲがタスクを実行中でない場合、バッテリレベル判定部３３３は、ロボットＲが現在位置から移動目標エリアへの移動に消費するバッテリ量を加味して求めた閾値と、バッテリ残量を示すバッテリ残量データの値との比較により、ロボットＲのバッテリ７０の状態が、モード１〜モード４のうちの何れのバッテリレベルに該当するのかを判定する。
【００７８】
すなわち、バッテリレベル判定部３３３は、ロボットＲがタスクを現在実行中か否かに応じて、ロボットＲが実行中であるタスクの遂行に消費されるバッテリ量と、ロボットＲの移動目標エリアへの移動に消費されるバッテリ量との少なくとも一方を加味して求めた閾値と、バッテリ残量を示すバッテリ残量データとを比較し、ロボットＲのバッテリ７０の状態が、モード１〜モード４のうちの何れのバッテリレベルに該当するのかを判定する。
【００７９】
本実施形態の場合、このバッテリレベル判定部３３３において用いられる閾値は３つ用意されている。
そして、バッテリレベル判定部３３３では、はじめに、バッテリ残量データと第２の閾値Ref2との比較が行われ、バッテリ残量が、第２の閾値Ref2以上である場合、ロボットＲのバッテリ７０の状態が、モード１であると決定される。
【００８０】
そして、バッテリ残量が第２の閾値Ref2未満である場合、バッテリ残量と第３の閾値Ref3との比較が行われ、バッテリ残量が、第３の閾値Ref3以上である場合、ロボットＲのバッテリ７０の状態が、モード２であると決定される。
【００８１】
さらに、バッテリ残量が第３の閾値Ref3未満である場合、バッテリ残量と第４の閾値Ref4との比較が行われ、バッテリ残量が、第４の閾値Ref4以上である場合、ロボットＲのバッテリ７０の状態が、モード３であると決定され、バッテリ残量が第４の閾値Ref4未満である場合、モード４であると決定される。
【００８２】
ちなみに、本実施形態の場合、前記した第２の閾値Ref2及び第３の閾値Ref3は、下記式（５）及び（６）からそれぞれ算出される値である。
【００８３】
Ref2   = BL + Cb + α                     ・・・・(5)
Ref3   = BL + Cb + β                     ・・・・(6)
【００８４】
ここで、BLは、ロボットの活動限界となるバッテリ量（ロボットの自律移動に最低限必要なバッテリ量）を、Cbは、ロボットが、現在実行しているタスクの終了位置若しくはロボットＲの現在位置から移動目標エリアまで移動する際に消費するバッテリ量を示し、α、βは、それぞれ、ロボットＲが現在実行しているタスクの終了までに消費するバッテリ量と、バッテリマージンとを加算した値である。
なお、Cb、α、及びβは、下記式（７）、（８）、及び（９）のように定義される。
【００８５】
Cb     = Wr + G(battery task)             ・・・・(7)
α     = Ctask + 2bm                             ・・・・(8)
β     = Ctask + bm                       ・・・・(9)
【００８６】
ここで、Wrは、ロボットＲが、現在実行しているタスクの終了位置若しくはロボットＲの現在位置から移動目標エリアまでの移動のみに消費するバッテリ量を、G(battery  task)は、ロボットＲが現在実行しているタスクの終了位置若しくはロボットＲの現在位置から移動目標エリアまで移動する際に、移動以外の動作、例えばジェスチャーや発話に消費するバッテリ量を、それぞれ示す。
Ctaskは、ロボットＲが現在実行しているタスクが終了するまでに、ロボットＲがタスクの実行のみに消費するバッテリ量を、bmはバッテリマージンを示す。
【００８７】
本実施形態の場合、前段のバッテリ補給エリア選択部３３２において設定されるバッテリ補給エリア（移動目標エリア）は、ロボットＲがタスクを実行中であるか否かに応じて異なるので、このバッテリレベル判定部３３３において用いられる第２の閾値Ref2と第３の閾値Ref3もまた、ロボットＲがタスクを実行中であるか否かに応じて異なる値となる。
【００８８】
すなわち、ロボットＲがタスクを実行中である場合、移動目標エリアは、ロボットＲが実行中のタスクを終了する位置（タスク終了位置）に基づいて設定されるので、前記式（７）のWrは、ロボットＲがタスク終了位置から移動目標エリアまでの移動に消費するバッテリ量となる。
よって、第２の閾値Ref2は、ロボットＲのバッテリ残量が、ロボットＲが現在割り当てられているタスクを遂行した後に、移動目標エリアに移動するのに十分であるかを確認するために設定された値に相当し、第３の閾値Ref3は、ロボットＲのバッテリ残量が、ロボットＲが現在割り当てられているタスクを遂行した後に、移動目標エリアに移動するのに足りるかを確認するために設定された値に相当することになる。
【００８９】
一方、ロボットＲがタスクを実行中でない場合、移動目標エリアは、ロボットＲの現在位置に基づいて設定されるので、前記式（７）のWrは、ロボットＲがロボットＲの現在位置から移動目標エリアまでの移動に消費するバッテリ量となる。
よって、第２の閾値Ref2は、ロボットＲのバッテリ残量が、ロボットＲが現在の位置から移動目標エリアに移動するのに十分であるかを確認するために設定された値に相当し、第３の閾値Ref3は、ロボットＲのバッテリ残量が、ロボットＲが現在の位置から移動目標エリアに移動するのに足りるかを確認するために設定された値に相当する。
この場合、すなわちロボットＲがタスクを実行中でない場合、タスクの実行に消費されるバッテリ量Ctask = 0 となるので、前記式（５）、（６）は、前記式（７）、（８）、そして（９）から、それぞれ、下記式（１０）、（１１）のようになる。
【００９０】
Ref2   = BL + Wr + G(battery task) + Ctask + 2bm
= BL + Wr + G(battery task) + 2bm         ・・・・(10)
Ref3   = BL + Wr + G(battery task) + Ctask + bm
= BL + Wr + G(battery task) + bm          ・・・・(11)
【００９１】
また、本実施形態の場合、前記した第４の閾値Ref4は、下記式（１２）から算出される値であり、この第４の閾値Ref4は、ロボットＲのバッテリ残量が、ロボットＲが現在位置する場所（現在位置）から移動目標エリアに移動するのに足りるかを確認するために設定される値である。
【００９２】
Ref4 = BL + Cb + bm    ・・・・ (12)
【００９３】
ここで、BLは、ロボットの活動限界となるバッテリ量（ロボットの自律移動に最低限必要なバッテリ量）を、Cbは、ロボットＲが現在の位置から移動目標エリアまで移動する際に消費するバッテリ量を、bmは、バッテリマージンをそれぞれ示す。
なお、Cbは下記式（１３）のように表される。
【００９４】
Cb = Wr + G(battery task)                    ・・・・(13)
【００９５】
ここで、Wrは、ロボットＲが現在の位置から移動目標エリアまでの移動のみに消費するバッテリ量を、G(battery  task)は、ロボットＲが現在の位置から移動目標エリアまで移動する際に、移動以外の動作、例えばジェスチャーや発話に消費するバッテリ量を、それぞれ示す。
【００９６】
本実施形態の場合、前段のバッテリ補給エリア選択部３３２において設定されるバッテリ補給エリア（移動目標エリア）は、ロボットＲがタスクを実行中であるか否かに応じて異なり、ロボットＲがタスクを実行中である場合、移動目標エリアは、タスク終了位置に基づいて決定されている。
そのため、タスク終了位置に基づいて決定された移動目標エリアへの移動に消費されるバッテリ量よりも、ロボットＲの現在位置に基づいて新たに設定し直した移動目標エリアへの移動に消費されるバッテリ量の方が少なくなる場合がある。
【００９７】
そこで、バッテリ残量が第３の閾値Ref4未満であって、ロボットＲがタスクを実行中である場合、バッテリレベル判定部３３３は、ロボットＲの現在位置をもとに移動目標エリアを再設定することを要求する信号（再設定要求信号）を、バッテリ補給エリア選択部３３２に出力する。
【００９８】
そして、バッテリ補給エリア選択部３３２が再設定要求信号に従って、ロボットＲの現在位置に基づいて再設定した移動目標エリア（移動目標代替エリア）の座標データが、バッテリ補給エリア選択部３３２から入力されると、バッテリレベル判定部３３３は、ロボットＲが、移動目標代替エリアまで移動する際に消費するバッテリ量を地図情報データデータベース２１０を参照して求め、求めた値を用いて前記式（１２）からRef4値を算出し、これを比較値とする。
【００９９】
そして、比較値と、タスク終了位置に基づいて設定された移動目標エリアまでの移動に消費されるバッテリ量を用いて前記式（１２）から算出されたRef4値（基準値）とを比較し、比較値の方が基準値よりも小さい場合、この比較値を第４の閾値Ref4として再設定する。
一方、比較値の方が前記第４閾値よりも大きい場合は、基準値をそのまま第４閾値とする。
【０１００】
そして、バッテリレベル判定部３３３は、バッテリ残量の値と、第４の閾値とを比較し、バッテリ残量が、第４の閾値Ref4以上である場合、ロボットＲのバッテリ７０の状態が、モード３であると決定し、バッテリ残量が第４の閾値Ref4未満である場合、モード４であると決定する。
【０１０１】
このように、バッテリレベル判定部３３３は、ロボットＲのバッテリ７０の状態が、予め規定された複数のバッテリレベル（モード１〜モード４）のうちの何れに該当するのかを、バッテリ残量データと閾値との比較により判定する。
【０１０２】
そして、バッテリレベル判定部３３３は、ロボットＲのバッテリ７０の状態が、前記したモード（モード１、モード２、モード３、そしてモード４）のうちの何れに該当するのかを示す情報と、前記した移動目標情報の各情報項目のデータとを少なくとも含んで構成される情報（バッテリモード情報）を生成し、生成したバッテリモード情報をタスク管理手段３４０に出力する。
【０１０３】
前記したように、本実施形態のバッテリレベル判定手段３３０では、ステータス情報が入力されると、はじめに、ステータス情報に含まれるバッテリ残量データと第１の閾値とを比較する。そして、バッテリ残量データが第１の閾値以上である場合には、移動目標エリアの設定を行わないようにしている。
これは、バッテリ補給が明らかに不要の場合を除外することで、バッテリ補給決定部３３１の後段に位置するバッテリ補給エリア選択部３３２での処理や、バッテリレベル判定部３３３での閾値との比較処理による負担を軽減して、ロボット制御装置３自身の処理効率を向上させるためである。
【０１０４】
また、本実施の形態では、バッテリ残量データで示される値が第３の閾値未満である場合であって、ロボットＲがタスクを実行中であるときは、バッテリ補給エリア選択部３３２において、ロボットＲの現在位置に基づいて移動目標代替エリアを設定する。そして、ロボットＲが移動目標代替エリアまでの移動に消費するバッテリ量が、先に設定された移動目標エリアまでの移動に消費されるバッテリ量よりも少ない場合、バッテリレベル判定手段３３０において、移動目標代替エリアを移動目標エリアとして設定（再設定）する。
これにより、ロボットＲバッテリ残量が少ない場合であっても、ロボットの現在位置に応じて、到達するまでのバッテリ消費量が少ない移動目標エリアに、移動目標エリアを再設定することできるので、ロボットＲをバッテリ消費量を抑えつつバッテリ補給エリアに移動させることができる。
【０１０５】
＜タスク管理手段＞
タスク管理手段３４０は、ロボットＲに実行させるタスクの実行計画（タスクスケジュール）をロボットＲ毎に設定すると共に、バッテリレベル（モード１〜モード４）毎に定められた手順に従って、タスクの実行計画の再設定を行うものである。
このタスク管理手段３４０は、タスクスケジュール生成部３４１と、タスクスケジュール調整部３４２とを含んで構成される。
【０１０６】
［タスクスケジュール生成部］
タスクスケジュール生成部３４１は、タスク毎に決定された優先度に基づいて、各タスクを実行するロボットＲを決定すると共に、ロボットＲに割り当てられたタスクの実行順序を、ロボットＲ毎に設定するものである。
すなわち、タスクスケジュール生成部３４１は、各ロボットＲに実行させるタスクの実行計画（タスクスケジュール）を設定するものである。
【０１０７】
具体的には、タスクスケジュール生成部３４１は、優先度データ生成手段３２０からスケジュール要求信号が入力されると、タスク情報データベース２２０に登録されているタスクの中から、未実行（未処理）のタスクに関するデータ（タスクデータ）を取得する。そして、タスクスケジュール生成部３４１は、タスクデータに含まれる優先度に基づいて、タスクをグループ分けする。
【０１０８】
ここで、タスクの優先度の値が、２未満の場合はグループＣと、２以上〜４未満の場合はグループＢと、４以上の場合はグループＡであるとグループ分けすることが決められている場合であって、図７に示すように、タスクＩＤ＝１０〜タスクＩＤ＝１５のタスクが未実行であり、優先度データ生成手段３２０で決定されたタスクの優先度の値が、それぞれ図中において示す値である場合を例に挙げて説明すると、タスクスケジュール生成部３４１は、タスクＩＤがＩＤ＝１１のタスクとＩＤ＝１３のタスクとをグループＣに、タスクＩＤがＩＤ＝１０のタスクとタスクＩＤがＩＤ＝１５のタスクとをグループＢに、タスクＩＤがＩＤ＝１２のタスクと、ＩＤ＝１４のタスクのタスクとをグループＡに振り分ける。
【０１０９】
続いて、タスクスケジュール生成部３４１は、複数存在するグループ（グループＡ〜グループＣ）の中から、優先度の高いタスクから構成されるグループ（この場合、グループＡ）のタスクについて、スケジューリングを行う。
具体的には、タスクスケジュール生成部３４１は、タスク実行エリア内に配置されたロボットＲの各々に、どのタスクを割り当て、かつ割り当てたタスクをどの順番で行わせるのかを規定する組合せを総て挙げる。そして、タスクスケジュール生成部３４１は、各組み合わせにおいて規定されるタスクのロボットＲへの割当て及びタスクの実行順序に従って総てのタスクを実行した場合に必要とされる全体コストを組合せごとに求め、求めた全体コストが最小となる組み合わせを検索する。
なお、このスケジューリングは、バッテリ補給タスクの予約が入っていないロボットＲについて行うことが好ましい。
【０１１０】
ここで、タスク実行エリア内に配置されたロボットＲが２台（Ｒ１、Ｒ２）であり、上記したグループＡに含まれるタスクが、タスクＩＤ＝１２のタスクと、タスクＩＤ＝１４のタスクの合計２つのタスクである場合を例に挙げて説明をする。
この場合、ロボットＲ１とＲ２に対して行われるタスクの割り当てと実行順序の組み合わせは、図８に示すように、６通り存在することになる。
この図８では、ロボット毎にタスクを実行させる順番が規定されており、組合せ１では、ロボットＲ２が、タスクＩＤ＝１２のタスクを先に実行し、タスクＩＤ＝１４のタスクを続いて実行する場合が示されている。さらに、組合せ３では、ロボットＲ１が、タスクＩＤ＝１２のタスクを、ロボットＲ２がタスクＩＤ＝１４のタスクをそれぞれ実行する場合が示されている。
【０１１１】
よって、この図８に示す例の場合、タスクスケジュール生成部３４１は、各組合せ（１〜６）に規定されるタスクスケジュールに従って、総てのタスクを、タスク実行エリア内に配置されたロボットＲ（Ｒ１、Ｒ２）で実行した場合に必要となる全体コストを算出する。
【０１１２】
本実施形態の場合、全体コスト（Ctotal）は、下記式（１４）を用いて算出される。
【０１１３】
Ctotal = w・Call + (1-w)・Call complete                      ・・・・(14)
【０１１４】
前記式（１４）において、「Call」は、総てのタスクを終了するまでに、ロボット制御システムＡに含まれる総てのロボットＲが消費するバッテリの総量（動作コスト）であり、「Call complete」は、総てのタスクを終了するまでに、各ロボットに割り当てられた全タスクのうちの、一番最初に行われるタスクの開始予定時刻から一番最後に行われるタスクの終了予定時刻までの時間（時間コスト）である。
さらに、「ｗ」は、動作コストと時間コストのどちらに重点を置くかを決める「重み値」であり、０≦ｗ≦１の範囲内で任意に設定される値である。ここで、「ｗ」値が大きいと、全体コスト（Ctotal）において、バッテリ消費量を重視する傾向が大きくなり、小さいと、総てのタスク遂行するまでに要する時間（所要時間）を重視する傾向が大きくなる。
【０１１５】
具体的に説明すると、図８の組合せ３の場合、「Call」は、ロボットＲ１がタスク１２を実行する際に消費するバッテリ量と、ロボットＲ２がタスク１４を実行する際に消費するバッテリ量とを加算した値である。
また、「Call complete」は、ロボットＲ１がタスク１２を開始する時刻と、ロボットＲ２がタスク１４を開始する時刻のうちの早いほうの時刻から、ロボットＲ１がタスク１２を終了する時刻と、ロボットＲ２がタスク１４を終了する時刻のうちの遅いほうの時刻までの時間である。
また、図８の組合せ２の場合、「Call」は、ロボットＲ２がタスク１４を開始してからタスク１２を終了するまでに消費するバッテリ量の値であり、「Call complete」は、ロボットＲ２がタスク１４を開始する時刻から、ロボットＲ２がタスク１２を終了する時刻までの時間である。
【０１１６】
よって、本実施形態の場合、タスクスケジュール生成部３４１は、組合せ毎に全体コスト（Ctotal）を求め、求めた全体コスト（Ctotal）の値が、最も小さくなる組合せにおいて規定されるタスクの割り当て、及びタスクの実行順序を、タスクスケジュールとして決定する。
【０１１７】
タスクスケジュール生成部３４１は、同様の操作を、残りのグループ（グループＢ及びグループＣ）について、優先度の高いグループから順に行って、タスク情報データベース２２０に登録されているタスクのうちの未処理のタスクについて、実行するロボットＲを決定すると共に、ロボットＲに割り当てられたタスクの実行順序を、ロボットＲ毎に設定する。
【０１１８】
［タスクスケジュール調整部］
タスクスケジュール調整部３４２は、バッテリレベル毎に定められた手順に従って、タスクの実行計画（タスクスケジュール）の再設定を行うものである。言い換えると、タスクスケジュール調整部３４２は、ロボットＲのバッテリ残量がある閾値以下となった場合に、当該ロボットＲのタスクスケジュールに、バッテリ補給エリアに移動するタスク（バッテリ補給タスク）を予約することや、ロボットＲにバッテリ補給タスクを実行させるようにするものである。
【０１１９】
具体的に説明すると、タスクスケジュール調整部３４２は、バッテリレベル判定部３３３からバッテリモード情報が入力されると、当該バッテリモード情報において示されるモード毎に予め設定された処理を行う。
なお、理解を容易にするために、図１１のフローチャートを適宜参照しながら、以下にタスクスケジュール調整部３４２において行われるモード毎の処理を説明する。
【０１２０】
＜モード１である場合＞
タスクスケジュール調整部３４２は、バッテリモード情報で示されるバッテリの状態がモード１である場合（ステップＳ４、Ｙｅｓ）は、何もしない。
これは、バッテリモード情報に含まれたロボットＩＤにより特定されるロボットＲのバッテリ７０の残量が足りており、バッテリ補給タスクを挿入するする必要がないからである。
【０１２１】
＜モード２である場合＞
タスクスケジュール調整部３４２は、バッテリモード情報で示されるバッテリの状態がモード２である場合（ステップＳ５、Ｙｅｓ）、ステータス情報に含まれるタスク情報から、ロボットＩＤにより特定されるロボットＲが、何らかのタスク、例えば運搬タスク、を実行中であるか否かを確認する（ステップＳ６）。
そして、ロボットＲがタスクを実行中である場合（ステップＳ６、Ｙｅｓ）、タスクスケジュール調整部３４２は、タスクスケジュールテーブル２３０を参照し、ロボットＲのタスクスケジュールの中に、ロボットＲを移動目標エリアに移動させるタスク（バッテリ補給タスク）が登録（予約）されているか否かを確認する（ステップＳ７）。
【０１２２】
バッテリ補給タスクが登録されていない場合には（ステップＳ７、Ｎｏ）、タスクスケジュール調整部３４２は、バッテリ補給タスクのタスク情報データベース２２０への登録に必要なデータを生成し、生成したデータに基づいて、バッテリ補給タスクをタスク情報データベース２２０に登録する（ステップＳ８）。
【０１２３】
具体的には、タスクスケジュール調整部３４２は、バッテリモード情報に含まれるタスクＩＤに基づいて、タスク情報データベース２２０を参照して、現在実行中のタスクの終了位置を示す座標データと、タスクの終了時刻を示すデータを取得すると共に、バッテリモード情報の中から移動目標エリアの座標データを取得する。
続いて、タスクスケジュール調整部３４２は、タスクの終了位置を示す座標データ及びタスクの終了時刻を示すデータを、それぞれ、バッテリ補給タスクの開始位置の座標データ及び開始時刻を示すデータとして、バッテリ補給タスクをタスク情報データベース２２０に登録する。この際、バッテリ補給タスクの情報項目のうち、優先度の値を最高値に設定すると共に、当該タスクを行うロボットをロボットＩＤにより特定した上で、バッテリ補給タスクの登録を行う。
【０１２４】
これと同時に、タスクスケジュール調整部３４２は、タスク情報データベース２２０の更新が行われたことを示す信号（タスク更新信号）を生成し、生成したタスク更新信号を優先度データ生成手段３２０に出力する。これにより、タスク情報データベース２２０に登録された各タスクの優先度が再設定され、この際に設定された優先度に基づいて、タスクスケジュールの設定（再設定）が、タスクスケジュール生成部３４１において、前記した手順に従って行われることになる。
【０１２５】
ここで、タスクスケジュール調整部３４２における処理を、図９、図１０（ａ）、及び図１０（ｂ）を参照して、ロボットＩＤ＝１で特定されるロボットＲのタスクスケジュールにバッテリ補給タスクを挿入する場合を例に挙げて説明すると、タスクスケジュール調整部３４２は、ロボットＲが現在実行中のタスク（タスクＩＤ＝１０、図９参照）の情報項目のデータを参照して、タスクＩＤ＝１８で示される情報項目の内容を有するバッテリ補給タスクを、タスク情報データベースに２２０に登録する。
図９から明らかなように、タスクＩＤ＝１０で示されるタスクの終了位置が、バッテリ補給タスク（タスクＩＤ＝１８）の開始位置に、タスクＩＤ＝１０で示されるタスクの終了時刻が、バッテリ補給タスク（タスクＩＤ＝１８）の開始時刻に、それぞれ設定されている。そして、優先度が最高値である「９」に設定されており、ロボットＲを識別する識別子であるロボットＩＤの情報項目の欄には、ロボットＩＤ（ＩＤ＝１）が入力されていることが判る。
【０１２６】
その結果、図１０（ａ）、（ｂ）を参照して、タスクＩＤ＝１８で特定されるタスクがタスク情報データベース２２０に登録された後に、タスクスケジュール生成部３４１で行われるタスクスケジュールの設定（再設定）により、ロボットＩＤ＝１で特定されるロボットＲのタスクスケジュールにバッテリ補給タスクが挿入され、バッテリ補給タスクの挿入前には、図１０（ａ）に示すような内容であったタスクスケジュールテーブルの内容が、図１０（ｂ）に示すような内容に更新されることになる。
【０１２７】
一方、ロボットＩＤにより特定されるロボットＲが、何らかのタスクを実行中でない場合（ステップＳ６、Ｎｏ）、タスクスケジュール調整部３４２は、タスクスケジュールテーブル２３０を参照し、ロボットＲのタスクスケジュールの中に、ロボットＲを移動目標エリアに移動させるタスク（バッテリ補給タスク）が登録されているか否かを確認する（ステップＳ９）。
【０１２８】
バッテリ補給タスクが登録されている場合（ステップＳ９、Ｙｅｓ）、タスクスケジュール調整部３４２は、タスクスケジュールテーブル２３０に予約されたバッテリ補給タスクをロボットＲに実行させるために、実行命令要求信号を実行命令生成手段３５０に出力する（図６参照）。これにより、実行命令生成手段３５０において、バッテリ補給タスクを実行させる実行命令が生成され、ロボットＲに出力されることになる。
【０１２９】
一方、バッテリ補給タスクが登録されていない場合には（ステップＳ９、Ｎｏ）、タスクスケジュール調整部３４２は、バッテリ補給タスクの実行を命令する内容の実行命令の生成を要求する実行命令要求信号（バッテリ補給信号）を、実行命令生成手段３５０に出力する。
ここで、バッテリ補給信号を出力する場合、このバッテリ補給信号と共に、ロボットＲの現在位置を示す座標データと、移動目標エリアを示す座標データなどの、ロボットＩＤにより特定されるロボットＲがバッテリ補給エリアに移動するために必要なデータ（バッテリ補給関連データ）を、バッテリレベル判定部３３３から入力されたバッテリモード情報から取得し、実行命令生成手段３５０に出力する。
これにより、実行命令生成手段３５０において、バッテリ補給タスクを実行させる実行命令が生成され、ロボットＲに出力されることになる。
【０１３０】
＜モード３である場合＞
タスクスケジュール調整部３４２は、バッテリモード情報で示されるバッテリの状態がモード３である場合（ステップＳ１５、Ｙｅｓ）、ステータス情報に含まれるタスク情報から、ロボットＩＤにより規定されるロボットＲが、タスクを実行中であるか否かを確認する（ステップＳ１６）。
【０１３１】
ロボットＲが、タスクを実行中である場合（ステップＳ１６、Ｙｅｓ）、タスクスケジュール調整部３４２は、実行中のタスクを中止させる内容の実行命令の生成を要求する実行命令要求信号（タスク中止信号）を、実行命令生成手段３５０に出力する（ステップＳ１７）。
続いて、タスクスケジュール調整部３４２は、バッテリ補給タスクを強制的に実行させる内容の実行命令の生成を要求する実行命令要求信号（強制バッテリ補給信号）を、実行命令生成手段３５０に出力する（ステップＳ１８）。
【０１３２】
ここで、タスクスケジュール調整部３４２は、強制バッテリ補給信号を出力する場合、この強制バッテリ補給信号と共に、ロボットＲの現在位置を示す座標データと、移動目標エリアを示す座標データなどの、ロボットＩＤにより特定されるロボットＲがバッテリ補給エリアに移動するために必要なデータ（バッテリ補給関連データ）を、バッテリレベル判定部３３３から入力されたバッテリモード情報から取得し、実行命令生成手段３５０に出力する
一方、タスクを実行中でない場合は（ステップＳ１６、Ｎｏ）、強制バッテリ補給信号と、バッテリ補給関連データとを実行命令生成手段２５０に出力する（ステップＳ１８）。
【０１３３】
これにより、ロボットＲは、後記する実行命令生成手段３５０において生成される実行命令に基づいて、バッテリ交換タスクを強制的に実行させられることになる。
【０１３４】
＜モード４である場合＞
タスクスケジュール調整部３４２は、バッテリモード情報で示されるバッテリの状態がモード４である場合（ステップＳ１５、Ｎｏ）、ロボットＲがタスクの遂行も、バッテリ補給エリアへの移動も不可能であることを管理者に通知する信号（緊急信号）を生成するように実行命令生成手段２５０に要求する信号（緊急信号要求信号）を生成し、これを実行命令生成手段２５０に出力する。
【０１３５】
＜実行命令生成手段＞
実行命令生成手段３５０は、ロボットＲにタスクを実行させるための実行命令（データ）を生成するものである。
【０１３６】
実行命令生成手段３５０は、実行命令の生成を要求する信号（実行命令要求信号）が、データベース管理手段３１０やタスク調整部３４２から入力された場合に、受信した実行命令要求信号に含まれるロボットＩＤをもとに、タスクスケジュールテーブル２３０を参照し、当該タスクスケジュールテーブル２３０に登録されたタスクを確認する。
そして、実行命令生成手段３５０は、ロボットＩＤにより特定されるロボットＲに割り当てられた未実行のタスクが存在する場合、当該タスクをロボットＲに実行させるための実行命令（データ）を、タスク情報データベース２２０の各情報項目のデータを参照して生成し、生成した実行命令を、入出力手段１００を介して、ロボットＩＤにより特定されるロボットＲに向けて出力する。
【０１３７】
また、実行命令生成手段３５０は、ロボットＲが実行中のタスクを中止させる内容の実行命令の生成を要求する実行命令要求信号（タスク中止信号）が、タスクスケジュール調整部３４２から入力された場合に、タスクの実行を中止させる実行命令（データ）を生成し、入出力手段１００を介して、ロボットＩＤにより特定されるロボットＲに向けて出力する。
【０１３８】
さらに、実行命令生成手段３５０は、バッテリ補給タスクを実行させる内容の実行命令の生成を要求する実行命令要求信号（強制バッテリ補給信号、バッテリ補給信号）と、バッテリ補給関連データとが、タスクスケジュール調整部３４２から入力された場合に、バッテリ補給タスクを実行させる実行命令（データ）を生成し、入出力手段１００を介して、ロボットＩＤにより特定されるロボットＲに向けて出力する。
これにより、実行命令を受信したロボットＲは、実行命令において規定されるタスク（バッテリ補給タスク）を行うことになる。
【０１３９】
［ロボット制御装置３における処理］
次に、図５及び図１１を主に参照して、ロボットＲのタスクスケジュールにバッテリ補給タスクを挿入するか否かを決定する際の、ロボット制御装置３において行われる処理について説明する。
【０１４０】
はじめに、ロボットＲから発信されたステータス情報が、ロボット制御装置３の入出力手段１００を介してバッテリレベル判定手段３３０に入力され、バッテリレベル判定手段３３０のバッテリ補給決定部３３１は、ステータス情報に含まれるタスク情報ＴとロボットＩＤとを参照し、ロボットＩＤにより特定されるロボットＲが、バッテリ補給タスクを実行中であるか否かを確認する（ステップＳ１）。
【０１４１】
ロボットＲが、バッテリ補給タスクを実行中である場合（ステップＳ１、Ｙｅｓ）、データ処理を終了する。
一方、ロボットＲが、バッテリ補給タスクを実行中でない場合（ステップＳ１、Ｎｏ）、バッテリ補給決定部３３１は、ステータス情報に含まれるバッテリ情報から、バッテリの残量を示すデータ（バッテリ残量データ）を取得し、取得したバッテリ残量データを第１の閾値と比較する（ステップＳ２）。
バッテリ残量データにおいて示された値が、第１の閾値以上である場合（ステップＳ２、Ｙｅｓ）、バッテリ補給決定部３３１は、処理を終了する。
一方、バッテリ残量が、第１の閾値未満である場合（ステップＳ２、Ｎｏ）、バッテリ補給決定部３３１は、入出力手段１００から入力されたステータス情報を、バッテリ補給エリア選択部３３２に出力する。
【０１４２】
バッテリ補給エリア選択部３３２は、タスク実行エリア内で予め設定された複数のバッテリ補給エリアの中から、ロボットＲのバッテリ補給を行うバッテリ補給エリアを選択し、選択したバッテリ補給エリアを、移動目標エリアとして設定する（ステップＳ３）。
この際、ロボットＲが、バッテリ補給タスク以外の何らかのタスクを実行中でない場合、ステータス情報に含まれる位置情報からロボットＲの現在地を示す座標データ（現在位置データ）を取得し、取得した現在位置データに基づいて移動目標エリアを設定する。一方、何らかのタスクを実行中である場合、ステータス情報に含まれるタスク情報からタスクＩＤを取得し、当該タスクＩＤをもとにタスク情報データベース２２０を参照し、ロボットＲが現在行っているタスクが終了する位置を示す座標データ（タスク終了位置データ）を取得する。そして、取得したタスク終了位置データに基づいて移動目標エリアを設定する。
【０１４３】
バッテリレベル判定部３３３は、バッテリ残量が、ロボットＲが現在割り当てられているタスクを遂行した後に、ステップＳ３において設定された移動目標エリアに移動するのに十分であるかを確認するために、バッテリ残量データと第２の閾値とを比較する（ステップＳ４）。
【０１４４】
ロボットＲのバッテリ残量が、第２の閾値以上である場合、すなわち、バッテリ残量が十分である場合（ステップ４、Ｙｅｓ）、バッテリレベルがモード１であることを示す情報（バッテリモード情報）を生成し、タスク管理手段３４０に出力する。
【０１４５】
ロボットＲのバッテリ残量が、第２の閾値未満である場合（ステップ４、Ｎｏ）、バッテリ残量が、ロボットＲが現在割り当てられているタスクを遂行した後に、ステップＳ３において設定された移動目標エリアに移動するのに足りるかを確認するために、バッテリ残量データと、第３の閾値とを比較する（ステップＳ５）。
【０１４６】
ロボットＲのバッテリ残量の値が第３の閾値以上である場合、すなわち、バッテリ残量が足りる場合（ステップ５、Ｙｅｓ）、バッテリレベルがモード２であることを示す情報（バッテリモード情報）を生成し、タスク管理手段１４０に出力する。
すると、タスク管理手段３４０は、ロボットＩＤにより特定されるロボットＲがタスクを実行中であるか否かを確認する（ステップＳ６）。
【０１４７】
タスクを実行中である場合（ステップＳ６、Ｙｅｓ）、タスク管理手段３４０は、バッテリ補給タスクがロボットＲのタスクスケジュールに登録されているか否かを確認し（ステップＳ７）、バッテリ補給タスクが登録されている場合（ステップＳ７、Ｙｅｓ）、処理を終了する。
一方、バッテリ補給タスクが登録されていない場合（ステップＳ７、Ｎｏ）、タスク管理手段３４０は、バッテリ補給タスクをタスク情報データベース２２０に登録する（ステップＳ８）。
【０１４８】
一方、タスクを実行中でない場合（ステップＳ６、Ｎｏ）、タスク管理手段３４０は、バッテリ補給タスクが、タスクスケジュールに登録されているか否かを確認し（ステップＳ９）、バッテリ補給タスクが登録されている場合（ステップＳ９、Ｙｅｓ）、予約されたバッテリ交換タスクの実行を命令する実行命令を、実行命令生成手段３５０から、ロボットＩＤにより特定されるロボットＲに送信させる（ステップＳ１０）。そして、ロボットＲから、当該実行命令を受信したことを報告する信号（受信報告信号）が入力されると、タスク情報データベース２２０が、データベース管理手段３１０により更新される（ステップＳ１１）。
【０１４９】
一方、バッテリ補給タスクが登録されていない場合（ステップＳ９、Ｎｏ）、タスク管理手段３４０は、バッテリ補給タスクを実行させる実行命令（データ）を、実行命令生成手段３５０から、ロボットＩＤにより特定されるロボットＲに送信させる（ステップＳ１２）。そして、ロボットＲから、当該実行命令を受信したことを報告する信号（受信報告信号）が入力されると、タスク情報データベース２２０が、データベース管理手段３１０により更新される（ステップＳ１３）。
【０１５０】
ロボットＲのバッテリ残量の値が第３の閾値未満である場合（ステップ５、Ｎｏ）、ロボットＲの現在位置に基づいて移動目標エリアを再設定して移動目標代替エリアとする。そして、ロボットＲが、現在の位置からステップＳ３において設定された移動目標エリアへの移動に消費するバッテリ量と、ロボットＲが、現在の位置から移動目標代替エリアへの移動に消費するバッテリ量とをそれぞれ算出し、これらを比較する。そして、移動目標代替エリアへの移動に消費されるバッテリ量が、移動目標エリアへの移動に消費されるバッテリ量よりも少ない場合は、移動目標代替エリアを移動目標エリアとして再設定する。一方、移動目標代替エリアへの移動に消費されるバッテリ量が、移動目標エリアへの移動に消費されるバッテリ量よりも多い場合は、ステップＳ３において設定された移動目標エリアを、そのまま移動目標エリアとする（ステップＳ１４）。
【０１５１】
そして、バッテリ残量が、ロボットＲが現在位置する場所（現在位置）から、ステップＳ１４において設定された移動目標エリアに移動するのに足りるかを確認するために、バッテリ残量データと、第４の閾値とを比較する（ステップＳ１５）。
【０１５２】
ロボットＩＤにより特定されるロボットＲのバッテリ残量の値が第４の閾値以上である場合（ステップ１５、Ｙｅｓ）、タスク管理手段３４０は、ロボットＩＤにより特定されるロボットＲがタスクを実行中であるか否かを確認する（ステップＳ１６）。
タスクを実行中である場合（ステップＳ１６、Ｙｅｓ）、タスク管理手段３４０は、タスクの実行を中止させる実行命令（データ）を、実行命令生成手段３５０から、ロボットＩＤにより特定されるロボットＲに送信させる（ステップＳ１７）。
タスクを実行中でない場合（ステップＳ１６、Ｎｏ）、タスク管理手段３４０は、バッテリ補給タスクを強制的に実行させる実行命令（データ）を生成し、入出力手段１００を介して、ロボットＩＤにより特定されるロボットＲに向けて出力する（ステップＳ１８）。
【０１５３】
ロボットＩＤにより特定されるロボットＲのバッテリ残量の値が第４の閾値未満である場合（ステップ１５、Ｎｏ）、タスク管理手段３４０は、ロボットＲがタスクの実行も、移動目標エリアへの移動も不可能であることをサーバの管理者に通知する緊急信号を、入出力手段１００から出力させる。
【０１５４】
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜設計変更可能である。
【０１５５】
例えば、前記した実施の形態の場合、バッテリレベル判定手段３３０において、ロボットＲがタスクを実行している際に、バッテリレベルがモード３であると判定された場合、実行中のタスクを中止してバッテリ補給タスクを行うように設定されている。
この際に、タスクスケジュール調整部３４２は、中止されたタスクを、最も高い優先度でタスク情報データベースに登録し、タスク更新信号を優先データ生成手段３２０に出力する構成としても良い。
この場合、中止されたタスクを、優先して、他のロボットＲに割り当てることができるので、中止されたタスクの遂行が可能となる。このような機能は、中止されたタスクが、来訪者をある場所に案内をするというタスク（案内タスク）をロボットＲが実行している場合に好適である。
【０１５６】
以上説明したように、本発明に係るロボット制御装置によると、優先度の異なる複数のタスクを、複数台のロボットを用いて、効率よく実行することができる。
また、ロボットＲのバッテリ残量を随時確認しながら、ロボットＲのバッテリ補給が必要であるか否かを判断し、必要である場合は、ロボットＲにバッテリ補給のためのタスクを実行させると共に、各ロボットＲに割り当てられたタスクの実行計画（タスクスケジュール）の再設定、例えば、バッテリ補給が必要であると判断されたロボットＲに割り当てられたタスクを、他のロボットのタスクスケジュールへの振り分けなどを行う。
よって、人応答という予期し得ない要因が存在する条件の下でも、ロボットで複数のタスクを効率良く実行することができる。
【図面の簡単な説明】
【０１５７】
【図１】本発明の実施形態に係るロボット制御システムＡのシステム構成図である。
【図２】ロボットＲのブロック図である
【図３】ロボット制御装置３のブロック構成図である。
【図４】タスク情報データベース２２０の情報項目の一例を示す説明図である。
【図５】タスクスケジュールテーブル２３０の構成の一例を示す説明図である。
【図６】ロボット制御装置３の制御手段３００と記憶手段２００のブロック構成図である。
【図７】タスクスケジュール生成部３４１で行われる処理を説明するための説明図である。
【図８】タスクスケジュール生成部３４１で行われる処理を説明するための説明図である。
【図９】バッテリ予約タスクが登録された際のタスク情報データベース２２０の例を示す説明図である。
【図１０】（ａ）は、バッテリ予約タスクが登録される前のタスクスケジュールテーブル２３０の例を示す説明図である。（ｂ）は、バッテリ予約タスクが登録された際のタスクスケジュールテーブル２３０の例を示す説明図である。
【図１１】ロボットＲのタスクスケジュールにバッテリ補給タスクを挿入するか否かを決定する際の、ロボット制御装置３において行われる処理を説明するフローチャートである。
【符号の説明】
【０１５８】
１      基地局
２      ルーター
３      ロボット制御装置
４      ネットワーク
５      端末
１００  入出力手段
１１０  優先度データ生成部
２００  記憶手段
３００  制御手段
３１０  データベース管理手段
３２０  優先度データ生成手段
３３０  バッテリレベル判定手段
３３１  バッテリ補給決定部
３３２  バッテリ補給エリア選択部
３３３  バッテリレベル判定部
３４０  タスク管理手段
３４１  タスクスケジュール生成部
３４２  タスクスケジュール調整部
３５０  実行命令生成手段
Ｒ      ロボット
【図１】
2006106919.tif 000003
【図２】
2006106919.tif 000004
【図３】
2006106919.tif 000005
【図４】
2006106919.tif 000006
【図５】
2006106919.tif 000007
【図６】
2006106919.tif 000008
【図７】
2006106919.tif 000009
【図８】
2006106919.tif 000010
【図９】
2006106919.tif 000011
【図１０】
2006106919.tif 000012
【図１１】
2006106919.tif 000013