(57)【要約】【課題】  複数ロボットに全体として最小コストでタスクを実行させることにより、複数のロボットの行動を最適化できるロボット制御装置を提供する。【解決手段】  ロボットの現在地からタスク実行位置までのプランを選択する移動計画選択手段４２０と、プランに基づいてロボット間距離を算出するロボット間距離算出手段４３０と、ロボット間距離によって出会う可能性を判定する出会可能性判定手段４４０と、各ロボットの各プランに要するプランコストを算出する移動計画実行コスト算出手段４６０と、出会う可能性がある場合に出会起因コストを算出する出会起因コスト算出手段４５０と、プランコスト及び出会起因コストに基づいて、タスクを最小コストで実行できるプランを決定する最適経路選択手段４７０と、決定されたプランへロボットを誘導する命令を生成する計画変更誘導命令生成手段４８０とを有する。【選択図】      図５
2006326703.tif 000002
【特許請求の範囲】
【請求項１】
現在位置を検出する位置情報検出手段を有して所定のタスクを実行する複数の移動ロボットを制御するロボット制御装置であって、
前記位置情報検出手段で検出された現在位置を記憶するロボット情報記憶手段と、
各移動ロボットが実行すべきタスクの実行位置及び優先度を記憶するタスク情報記憶手段と、
前記ロボット情報記憶手段に記憶された現在位置から、前記タスク情報記憶手段に記憶されたタスクの実行位置までの経路の移動計画を示す移動計画情報に基づいて、任意の複数の移動ロボットが前記タスクを最小コストで実行できるように前記移動ロボットの行動を最適化する命令を生成する行動最適化制御手段とを備え、
前記行動最適化制御手段は、
前記移動計画情報をコスト別に探索する移動計画探索手段と、
この移動計画探索手段で探索された移動計画情報を選択する移動計画選択手段と、
この移動計画選択手段で選択された移動計画情報に基づいて、前記複数の移動ロボットの少なくとも１台が、前記選択された移動計画情報で示される移動計画を切り替えたときに、前記複数の移動ロボットに要するコストである移動計画実行コストを算出する移動計画実行コスト算出手段と、
前記移動計画選択手段で選択された移動計画情報に基づいて、任意の複数の移動ロボットと予め位置が特定された障害物との間の距離を位置毎または時刻別に算出する距離算出手段と、
この距離算出手段で算出された距離のいずれかが所定値以下であるか否かを判定すると共に、前記所定値以下である場合に前記複数の移動ロボットの少なくとも１つに対して前記障害物と出会う可能性があると判定する出会可能性判定手段と、
この出会可能性判定手段で前記障害物と出会う可能性があると判定された場合に、出会いに起因するコストである出会起因コストを算出する出会起因コスト算出手段と、
前記移動計画実行コスト算出手段で算出された移動計画実行コスト及び前記出会起因コスト算出手段で算出された出会起因コストに基づいて、前記タスクを最小コストで実行できる移動計画を決定する最適経路選択手段と、
前記複数の移動ロボットの少なくとも１台に、前記最適経路選択手段で決定された移動計画に誘導する命令である計画変更誘導命令を生成する計画変更誘導命令生成手段と、
を有することを特徴とするロボット制御装置。
【請求項２】
前記障害物は、前記移動ロボットであり、
前記出会起因コスト算出手段は、
優先順位の低いタスクを実行する移動ロボットが、進路上において一時停止する地点である一時停止位置において、優先順位の高いタスクを実行する移動ロボットが通過するまで待機するときに要するコストを算出する一時停止コスト算出手段を含み、
前記計画変更誘導命令生成手段は、
この一時停止コスト算出手段で算出されたコストと、前記出会可能性判定手段で前記障害物と出会う可能性があると判定された前記複数の移動ロボットのそれぞれの移動計画に要するコストとの和が、最小コストである場合に、優先順位の低いタスクを実行する移動ロボットに対して前記一時停止位置で停止する命令を生成する、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記障害物は、前記移動ロボットであり、
優先順位の高いタスクを実行する移動ロボットを、選択された移動計画情報に基づく経路から、優先順位の低い移動ロボットとのすれ違いを可能とする回避経路に移動させる回避命令を生成する回避命令生成手段と、
前記優先順位の低いタスクを実行する移動ロボットを、選択された移動計画情報に基づく経路から、前記優先順位の高い移動ロボットの通り抜けを可能とする退避位置に移動させる退避命令を生成する退避命令生成手段と、
前記移動ロボットを、前記回避経路または前記退避位置から、選択された移動計画情報に基づく経路に復帰させる復帰命令を生成する復帰命令生成手段と、
を有する回避制御手段をさらに備え、
前記出会起因コスト算出手段は、
前記優先順位の高いタスクを実行する移動ロボットが前記回避経路に移動するために生じるコストと、前記優先順位の低いタスクを実行する移動ロボットが前記退避位置に移動するために生じるコストとを合算したコストと、両移動ロボットが前記経路を変更しないときに生じるコストとの差を算出する回避コスト算出手段をさらに含み、
前記計画変更誘導命令生成手段は、
この回避コスト算出手段で算出されたコストと、前記出会可能性判定手段で前記障害物と出会う可能性があると判定された前記複数の移動ロボットのそれぞれの移動計画に要するコストとの和が最小コストである場合に、前記回避制御手段に対して前記回避命令、退避命令及び復帰命令を生成するように指示する、
ことを特徴とする請求項１または請求項２に記載のロボット制御装置。
【請求項４】
前記移動ロボットから移動計画の変更を要求するための計画切替要求信号が入力された場合に、
前記行動最適化制御手段は、
前記移動計画情報の中から現時点とは異なる他の移動計画を示す移動計画情報に基づいて、当該移動ロボットの行動を最適化する命令を生成する、
ことを特徴とする請求項１乃至請求項３のいずれか一項に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の自律移動ロボットを制御するロボット制御装置に関し、詳しくは、複数の自律移動ロボットを、互いに衝突することのないように移動させるロボット制御装置に関する。
【背景技術】
【０００２】
自律移動可能な複数のロボット（以下、ロボットという）と、これらのロボットに荷物の運搬業務、受付業務、そして案内業務などの各種の作業（以下、タスクという）を実行させるロボット制御装置とを備えるロボット制御システムがある。このようなタスクは、例えばオフィスや家庭などのタスク実行エリアで実行されることが想定されている。１つのタスク実行エリアで複数のロボットが移動する場合、オフィスや家庭のような場所ではロボットが障害物に出会う場合がある。特に、障害物が他のロボットの場合、ロボット同士が衝突する虞が生じる。そのため、従来、ロボット同士の衝突を防止する方法が知られている（例えば、特許文献１，特許文献２参照）。
【０００３】
特許文献１に開示されたロボットシステムでは、ロボットは走行路に設けられたノードを検出しつつ、検出したノードを目標として移動する。このロボットは、検出したノードを占有して走行するための予約をロボット制御装置に対して要求する。これに対して、ロボット制御装置は、先に予約がなされていないかどうかによって、この予約を許可するか否かを判定し、この予約を許可した場合に、ロボットが予約許可されたノードを目標として移動する。
【０００４】
特許文献２に開示されたロボットは、ロボット同士の相互通信によって、他のロボットとの衝突を防止するように構成されている。
【特許文献１】特開平５−６６８３１号公報（段落０００８〜００１４、図４）
【特許文献２】特開平８−６３２２９号公報（段落００１２〜００２７、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたロボットシステムでは、例えばあるノードに対して、優先順位の低いタスクを実行するロボットの予約が先に行われた場合、優先順位の高いタスクを実行するロボットが、同じノードの予約を行えずに移動できない虞れがある。つまり、複数のロボットが最適な移動をすることができない。また、ロボットが移動するためにはノードを予約する必要があるため、ロボットとロボット制御装置との間の通信処理が煩雑になる。
【０００６】
また、特許文献２に開示されたロボットは、タスクの優先順位の変化に対応できず、衝突防止動作の最適化が行われていない。また、他のロボットとの衝突を防止する動作は、予め設定された定型動作によるため、この動作をロボットの移動領域の地形に応じた最適なものにすることができない。
【０００７】
そこで、本発明では、前記した従来の問題を解決し、障害物との出会いに起因したコストを考慮しつつ複数のロボットに全体として最小コストでタスクを実行させることにより、複数のロボットの行動を最適化することが可能なロボット制御装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明は、前記目的を達成するために創案されたものであり、本発明のうち請求項１に記載の発明は、現在位置を検出する位置情報検出手段を有して所定のタスクを実行する複数の移動ロボットを制御するロボット制御装置であって、前記位置情報検出手段で検出された現在位置を記憶するロボット情報記憶手段と、各移動ロボットが実行すべきタスクの実行位置及び優先度を記憶するタスク情報記憶手段と、前記ロボット情報記憶手段に記憶された現在位置から、前記タスク情報記憶手段に記憶されたタスクの実行位置までの経路の移動計画を示す移動計画情報に基づいて、任意の複数の移動ロボットが前記タスクを最小コストで実行できるように前記移動ロボットの行動を最適化する命令を生成する行動最適化制御手段とを備え、前記行動最適化制御手段は、前記移動計画情報をコスト別に探索する移動計画探索手段と、この移動計画探索手段で探索された移動計画情報を選択する移動計画選択手段と、この移動計画選択手段で選択された移動計画情報に基づいて、前記複数の移動ロボットの少なくとも１台が、前記選択された移動計画情報で示される移動計画を切り替えたときに、前記複数の移動ロボットに要するコストである移動計画実行コストを算出する移動計画実行コスト算出手段と、前記移動計画選択手段で選択された移動計画情報に基づいて、任意の複数の移動ロボットと予め位置が特定された障害物との間の距離を位置毎または時刻別に算出する距離算出手段と、この距離算出手段で算出された距離のいずれかが所定値以下であるか否かを判定すると共に、前記所定値以下である場合に前記複数の移動ロボットの少なくとも１つに対して前記障害物と出会う可能性があると判定する出会可能性判定手段と、この出会可能性判定手段で前記障害物と出会う可能性があると判定された場合に、出会いに起因するコストである出会起因コストを算出する出会起因コスト算出手段と、前記移動計画実行コスト算出手段で算出された移動計画実行コスト及び前記出会起因コスト算出手段で算出された出会起因コストに基づいて、前記タスクを最小コストで実行できる移動計画を決定する最適経路選択手段と、前記複数の移動ロボットの少なくとも１台に、前記最適経路選択手段で決定された移動計画に誘導する命令である計画変更誘導命令を生成する計画変更誘導命令生成手段と、を有することを特徴とするロボット制御装置である。
【０００９】
かかる構成によれば、ロボット制御装置は、移動計画実行コスト算出手段によって、移動ロボットが、タスクを実行するために選択すべき移動計画を切り替えたときに、複数の移動ロボットに要するコストである移動計画実行コストを算出すると共に、切り替えられた移動計画において、移動ロボットが障害物と出会う可能性がある場合に、出会起因コスト算出手段によって、出会いに起因するコストである出会起因コストを算出する。そして、ロボット制御装置は、最適経路選択手段によって、移動計画実行コスト及び出会起因コストに基づいて、タスクを最小コストで実行できる移動計画を決定する。したがって、障害物との出会いに起因したコストを考慮しつつ複数のロボットに全体として最小コストでタスクを実行させることにより、複数のロボットの行動を最適化することができる。
【００１０】
ここで、移動計画は、例えば、移動ロボットが現在位置からタスクの実行位置までの経路において、現在位置からの累計距離と位置との組み合わせや、どの時刻にどこにいるかを示す時刻と位置の組み合わせから構成される。
また、計画変更誘導命令としては、切り替えられた移動計画及び出会起因コストに応じて、移動ロボットに移動計画を変更させるものとして様々なものが生成される。移動計画の変更とは、移動ロボットが、障害物と出会うことを容認するものと、障害物と出会うことを容認しないものとを含んでいる。なお、ロボット制御装置が、移動ロボットが障害物と出会う可能性があると判定するための基準である所定値によっては、移動ロボットと障害物とが衝突する場合も想定される。この場合には、障害物と出会うことを容認するとは、移動ロボットの通行路を切り替えることなく障害物との衝突を避ける行動をとることを意味し、障害物と出会うことを容認しないとは、移動ロボットの通行路を切り替えることにより障害物との衝突を避けることを意味する。したがって、移動ロボットと障害物とが衝突することを想定した場合には、計画変更誘導命令は、このような行動を移動ロボットに指示する命令となる。
また、コストとは、例えば、タスクを実行するためのタスク実行コスト、タスクを実行しているときに移動するためのタスク移動コスト、タスクを実行する位置に移動するまでの移動コスト、あるいは、それらの組み合わせである。これらのコストは、時間や、バッテリなどのエネルギーに換算して計算される。
【００１１】
請求項２に記載の発明は、請求項１に記載のロボット制御装置であって、前記障害物は、前記移動ロボットであり、前記出会起因コスト算出手段は、優先順位の低いタスクを実行する移動ロボットが、進路上において一時停止する地点である一時停止位置において、優先順位の高いタスクを実行する移動ロボットが通過するまで待機するときに要するコストを算出する一時停止コスト算出手段を含み、前記計画変更誘導命令生成手段は、この一時停止コスト算出手段で算出されたコストと、前記出会可能性判定手段で前記障害物と出会う可能性があると判定された前記複数の移動ロボットのそれぞれの移動計画に要するコストとの和が、最小コストである場合に、優先順位の低いタスクを実行する移動ロボットに対して前記一時停止位置で停止する命令を生成することを特徴とする。
【００１２】
請求項２に記載の発明によれば、ロボット制御装置は、タスクの優先順位の異なる複数の移動ロボットが互いに出会う可能性があり、かつ、一時停止コスト算出手段によって算出された一時停止コストと互いに出会う可能性があると判定された複数の移動ロボットのそれぞれの移動計画に要するコストとの和が、最小コストである場合に、計画変更誘導命令生成手段によって、優先順位の低いタスクを実行する移動ロボットに対して、進路上の一時停止位置において、優先順位の高いタスクを実行する移動ロボットが通過するまで待機する命令を生成する。したがって、タスクの優先順位が反映され、例えば、高い優先順位のタスクを実行する移動ロボットを一時停止させて、低い優先順位のタスクを実行する移動ロボットが通過するのを待つような事態を避けることができる。
【００１３】
請求項３に記載の発明は、請求項１または請求項２に記載のロボット制御装置であって、前記障害物は、前記移動ロボットであり、優先順位の高いタスクを実行する移動ロボットを、選択された移動計画情報に基づく経路から、優先順位の低い移動ロボットとのすれ違いを可能とする回避経路に移動させる回避命令を生成する回避命令生成手段と、前記優先順位の低いタスクを実行する移動ロボットを、選択された移動計画情報に基づく経路から、前記優先順位の高い移動ロボットの通り抜けを可能とする退避位置に移動させる退避命令を生成する退避命令生成手段と、前記移動ロボットを、前記回避経路または前記退避位置から、選択された移動計画情報に基づく経路に復帰させる復帰命令を生成する復帰命令生成手段と、を有する回避制御手段をさらに備え、前記出会起因コスト算出手段は、前記優先順位の高いタスクを実行する移動ロボットが前記回避経路に移動するために生じるコストと、前記優先順位の低いタスクを実行する移動ロボットが前記退避位置に移動するために生じるコストとを合算したコストと、両移動ロボットが前記経路を変更しないときに生じるコストとの差を算出する回避コスト算出手段をさらに含み、前記計画変更誘導命令生成手段は、この回避コスト算出手段で算出されたコストと、前記出会可能性判定手段で前記障害物と出会う可能性があると判定された前記複数の移動ロボットのそれぞれの移動計画に要するコストとの和が最小コストである場合に、前記回避制御手段に対して前記回避命令、退避命令及び復帰命令を生成するように指示することを特徴とする。
【００１４】
請求項３に記載の発明によれば、ロボット制御装置は、タスクの優先順位の異なる複数の移動ロボットが互いに出会う可能性があり、かつ、回避コスト算出手段によって算出されたコストの差と互いに出会う可能性があると判定された複数の移動ロボットのそれぞれの移動計画に要するコストとの和が、最小コストである場合に、計画変更誘導命令生成手段によって、回避制御手段に対して回避命令、退避命令及び復帰命令を生成するように指示する。これによって、回避制御手段が各命令を対象とする移動ロボットに送信する。その結果、対象とする複数の移動ロボットは、衝突することなくすれ違って移動することができる。この場合、タスクの優先順位を反映したタイミングで復帰命令を生成することにより、優先順位の低いタスクを実行する移動ロボットよりも、優先順位の高いタスクを実行する移動ロボットの方が早く元の経路に復帰することができる。
【００１５】
請求項４に記載の発明は、請求項１乃至請求項３のいずれか一項に記載のロボット制御装置であって、前記移動ロボットから移動計画の変更を要求するための計画切替要求信号が入力された場合に、前記行動最適化制御手段は、前記移動計画情報の中から現時点とは異なる他の移動計画を示す移動計画情報に基づいて、当該移動ロボットの行動を最適化する命令を生成することを特徴とする。
【００１６】
請求項４に記載の発明によれば、ロボット制御装置は、移動ロボットから計画切替要求信号が入力されたときに、行動最適化制御手段によって、現時点とは異なる他の移動計画を示す移動計画情報により移動計画実行コスト及び出会起因コストが算出される。そして、現時点における移動計画を現時点とは異なる他の移動計画に切り替えるように指示する計画変更誘導命令を生成することにより当該移動ロボットの行動を最適化する。したがって、移動ロボットが移動できない状況のときに計画切替要求信号をロボット制御装置に送信するように設定しておけば、最小のコストで、所定のタスクを実行するために当初と別の道順で移動することができる。そのため、例えば、移動ロボットが地図データに登録されていない通行止めなどの静的障害物に遭遇したとしても、最適化された迂回路によりタスクを速やかに実行することができるようになる。
【発明の効果】
【００１７】
本発明によれば、移動ロボットと障害物との出会いに起因したコストを考慮しつつ複数のロボットに全体として最小コストでタスクを実行させることにより、複数のロボットの行動を最適化することができる。例えば、任意の複数の移動ロボットが接近することが予め分かっていれば、対象とする複数の移動ロボットに関する移動計画実行コスト及び出会起因コストに基づいて、移動計画の変更を指示する命令を生成するので、各移動ロボットの衝突を未然に防止しながら、最適な経路で複数のタスクを効率良く実行させることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態について、適宜図面を参照しながら説明する。
図１は、本発明に係るロボット制御装置を備えたロボット制御システムのシステム構成図である。
【００１９】
（ロボット制御システムの構成）
はじめに、本発明の実施形態におけるロボット制御装置が組み込まれたロボット制御システムついて説明する。
【００２０】
図１に示すように、このロボット制御システムＡは、移動機能を備えた複数のロボットＲＡ，ＲＢ，ＲＣ（ただし、ロボットを特定しない場合は、単にロボットＲという）を有しており、各ロボットＲは、ロボット制御装置３においてロボットＲ毎に予め設定されたタスクの実行計画（タスクスケジュール）に従って、タスクを実行する。そして、このロボット制御システムＡでは、複数のロボットＲ同士が出会うことに起因したコストを考慮して、複数のロボットＲで複数のタスクを効率良く実行するように構成されている。
【００２１】
図１に示すように、ロボット制御システムＡは、複数のロボットＲと、これらロボットＲと無線通信によって接続された基地局１と、この基地局１とルーター２を介して接続されたロボット制御装置３と、ロボット制御装置３にネットワーク４を介して接続された端末５とを含んで構成される。
【００２２】
ロボットＲは、ロボット制御装置３から入力されたタスク実行命令に従ってタスクを実行するものであり、ロボットＲがタスクを実行する領域として予め設定されたタスク実行エリアＥ内に、少なくとも２台配置されている。
ここで、図１には、来訪者を会議室などの所定の場所に案内するという内容のタスク（案内タスク）を実行中のロボットＲＡと、荷物をある人に渡すという内容のタスク（運搬タスク）を実行中のロボットＲＢと、新たなタスクが割り当てられるのを待つという内容のタスク（待機タスク）を実行中のロボットＲＣとが、例示されている。
【００２３】
基地局１は、ロボットＲとロボット制御装置３との間のデータ交換を仲介するものである。
具体的には、基地局１は、ロボット制御装置３から出力されたタスク実行命令をロボットＲに送信すると共に、ロボットＲから送信されたロボットＲの状態に関するデータ（ステータス情報）やロボットＲがタスク実行命令を受信したことを示す信号（受信報告信号）を受信して、ロボット制御装置３に出力するものである。
基地局１は、ロボットＲとロボット制御装置３との間のデータ交換を確実に行えるようにするために、タスク実行エリアＥ内に少なくとも一つ設けられている。
なお、タスク実行エリアＥが建物の数フロアに亘って設定されている場合には、フロア毎に設けられていることが好ましく、一つの基地局１では総てのタスク実行エリアＥをカバーできない場合には、複数の基地局１がタスク実行エリアＥ内に設けられていることが好ましい。
【００２４】
ロボット制御装置３は、ロボットＲに実行させるタスクの実行計画（タスクスケジュール）を、ロボットＲ毎に設定すると共に、複数のロボットＲに全体として最小コストでタスクを実行できるように、ロボットＲの行動（移動または待機）を制御するものである。
端末５は、ロボットＲに実行させるタスクの登録や、ロボット制御装置３において設定されるタスクスケジュールの変更や、ロボットＲの動作命令の入力などを行うものである。
【００２５】
以下、ロボットＲ及びロボット制御装置３の構成についてそれぞれ詳細に説明する。
【００２６】
［ロボット］
本実施形態のロボット（移動ロボット）Ｒは、自律移動型の２足歩行ロボットである。
このロボットＲは、主として、ロボット制御装置３から送信されたタスク実行命令に基づいて、タスクを実行するものである。
【００２７】
図１に示すように、このロボットＲは、胴部の周囲に、頭部Ｒ１、腕部Ｒ２、脚部Ｒ３を有しており、頭部Ｒ１、腕部Ｒ２、脚部Ｒ３は、それぞれアクチュエータにより駆動され、自律移動制御部５０（図２参照）により２足歩行の制御がなされる。この２足歩行についての詳細は、例えば特開２００１−６２７６０号公報に開示されている。
【００２８】
図２は、ロボットＲのブロック構成図である。図２に示すように、ロボットＲは、前記した頭部Ｒ１、腕部Ｒ２、脚部Ｒ３に加えて、カメラＣ，Ｃ、スピーカＳ、マイクＭＣ，ＭＣ、画像処理部１０、音声処理部２０、主制御部４０、自律移動制御部５０、無線通信部６０、バッテリ７０、障害物検知部８０を有している。さらに、ロボットＲの現在位置に関する現在位置情報を検出する位置情報検出手段として、ジャイロセンサＳＲ１やＧＰＳ受信器ＳＲ２を有している。
【００２９】
［カメラ］
カメラＣ，Ｃは、映像をデジタルデータとして取り込むことができるものであり、例えばカラーＣＣＤ（Charge-Coupled Device）カメラが使用される。カメラＣ，Ｃは、左右に平行に並んで配置され、撮影した画像は画像処理部１０に出力される。このカメラＣ，Ｃと、スピーカＳ及びマイクＭＣ，ＭＣとは、いずれも頭部Ｒ１の内部に配設されている。
【００３０】
［画像処理部］
画像処理部１０は、カメラＣ，Ｃが撮影した画像を処理して、撮影された画像からロボットＲの周囲の状況を把握するため、周囲の障害物や人物の認識を行う部分である。この画像処理部１０は、ステレオ処理部１１ａ、移動体抽出部１１ｂ、及び顔認識部１１ｃを含んで構成される。
ステレオ処理部１１ａは、左右のカメラＣ，Ｃが撮影した２枚の画像の一方を基準としてパターンマッチングを行い、左右の画像中の対応する各画素の視差を計算して視差画像を生成し、生成した視差画像及び元の画像を移動体抽出部１１ｂに出力する。なお、この視差は、ロボットＲから撮影された物体までの距離を表すものである。
【００３１】
移動体抽出部１１ｂは、ステレオ処理部１１ａから出力されたデータに基づき、撮影した画像中の移動体を抽出するものである。移動する物体（移動体）を抽出するのは、移動する物体は人物であると推定して、人物の認識をするためである。
移動体の抽出をするために、移動体抽出部１１ｂは、過去の数フレーム（コマ）の画像を記憶しており、最も新しいフレーム（画像）と、過去のフレーム（画像）を比較して、パターンマッチングを行い、各画素の移動量を計算し、移動量画像を生成する。そして、移動体抽出部１１ｂは、視差画像と、移動量画像とから、カメラＣ，Ｃから所定の距離範囲内で、移動量の多い画素がある場合に、その位置に人物がいると推定し、その所定距離範囲のみの視差画像として、移動体を抽出し、顔認識部１１ｃへ移動体の画像を出力する。
【００３２】
顔認識部１１ｃは、抽出した移動体から肌色の部分を抽出して、その大きさ、形状などから顔の位置を認識する。なお、同様にして、肌色の領域と、大きさ、形状などから手の位置も認識される。認識された顔の位置は、ロボットＲが移動するときの情報として、また、その人とのコミュニケーションを取るため、主制御部４０に出力されると共に、無線通信部６０に出力されて、基地局１を介して、ロボット制御装置３に送信される。
【００３３】
［音声処理部］
音声処理部２０は、音声合成部２１ａと、音声認識部２１ｂとを有している。
音声合成部２１ａは、主制御部４０が決定し、出力してきた発話行動の指令に基づき、文字情報から音声データを生成し、スピーカＳに音声を出力する部分である。音声データの生成には、予め記憶している文字情報と音声データとの対応関係を利用する。
音声認識部２１ｂは、マイクＭＣ，ＭＣから音声データが入力され、予め記憶している音声データと文字情報との対応関係に基づき、音声データから文字情報を生成し、主制御部４０に出力するものである。
【００３４】
［主制御部］
主制御部４０は、後記するロボット制御装置３に出力する信号を生成すると共に、ロボット制御装置３から出力されたタスク実行命令に基づいて、ロボットＲの各部（画像処理部１０、音声処理部２０、自律移動制御部５０、無線通信部６０、及び障害物検知部８０）を制御するものである。
【００３５】
具体的には、主制御部４０は、ロボット制御装置３から出力されたタスク実行命令を受信すると、当該タスク実行命令を受信したことを示す信号（受信報告信号）を生成し、受信報告信号を無線通信部６０を介してロボット制御装置３に出力する。
さらに、主制御部４０は、タスク実行命令において規定されるタスクを実行するために、ロボットＲの各部（画像処理部１０、音声処理部２０、自律移動制御部５０、無線通信部６０、及び障害物検知部８０）を制御する制御信号を生成し、生成した制御信号を、必要に応じてロボットＲの各部に出力する。
【００３６】
また、主制御部４０は、ロボットＲの状態に関するデータ（ステータス情報）を、所定時間間隔毎に生成し、生成したステータス情報を無線通信部６０を介してロボット制御装置３に出力する。
ここで、ステータス情報とは、後記するロボット制御装置３において、任意の２つのロボットＲが出会う可能性があるかどうかを判断する際に用いられるものである。
本実施形態の場合、このステータス情報には、ロボットＲの現在位置を示す座標データ（現在位置情報）と、ロボットＲに搭載されたバッテリ７０の残量を示すバッテリ残量情報と、ロボットＲが現在実行中のタスクの内容を示すタスクＩＤとその進行状況とを示すデータ（タスク情報）とが含まれている。
【００３７】
本実施形態では、主制御部４０がステータス情報を、（１）定期的に生成し、送信する態様となっているが、（２）バッテリ残量が所定値以下となった場合や、（３）ロボット制御装置３から送信された、ステータス情報の送信を要求する信号（データ要求信号）を受信した場合に、主制御部４０がステータス情報を生成し、送信する態様としても良い。もちろん、これら（１）〜（３）の態様を任意に組み合わせた態様とすることも可能である。
【００３８】
［自律移動制御部］
自律移動制御部５０は、頭部制御部５１ａ、腕部制御部５１ｂ、脚部制御部５１ｃを有している。
頭部制御部５１ａは、主制御部４０から入力される制御信号の指示に従い頭部Ｒ１を駆動し、腕部制御部５１ｂは、主制御部４０から入力される制御信号の指示に従い腕部Ｒ２を駆動し、脚部制御部５１ｃは、主制御部４０から入力される制御信号の指示に従い脚部Ｒ３を駆動する。
なお、この自律移動制御部５０と、頭部Ｒ１、腕部Ｒ２及び脚部Ｒ３とにより、自律移動装置が構成されている。
【００３９】
［無線通信部］
無線通信部６０は、ロボット制御装置３とデータの送受信を行う通信装置である。無線通信部６０は、公衆回線通信装置６１ａ及び無線通信装置６１ｂを有している。
公衆回線通信装置６１ａは、携帯電話回線やＰＨＳ（Personal Handyphone System）回線などの公衆回線を利用した無線通信手段である。一方、無線通信装置６１ｂは、IEEE802.11b規格に準拠する無線ＬＡＮなどの、近距離無線通信による無線通信手段である。
無線通信部６０は、ロボット制御装置３からの接続要求に従い、公衆回線通信装置６１ａ又は無線通信装置６１ｂを選択してロボット制御装置３とデータ通信を行う。
【００４０】
バッテリ７０は、ロボットＲの各部の動作や処理に必要な電力の供給源である。
ジャイロセンサＳＲ１及びＧＰＳ受信器ＳＲ２は、ロボットＲの現在位置を示す座標データを定期的に生成し、生成した座標データを主制御部４０に出力する。この座標データは、ロボットＲの行動を決定するのに利用されると共に、前記したステータス情報の生成に用いられる。
【００４１】
障害物検知部８０は、ロボットＲの周囲の障害物を検知するためのものであり、例えば超音波センサが出力した障害物検知連絡信号と、超音波センサの配置方向を記憶したテーブルと、に基づいて、ロボットＲの所定距離内のどの方向に障害物があるのかを判定し、障害物の方向データを生成する。この障害物の方向データは、主制御部４０に出力される。超音波センサが発生する超音波は透明な物質でも反射するので、障害物検知部８０は、画像処理部１０では検知できないガラスなどの透明な障害物も検知することができる。
【００４２】
［ロボット制御装置］
図１におけるロボット制御装置３は、主として、ロボットＲに実行させるタスクの実行計画（タスクスケジュール）を、ロボットＲ毎に設定すると共に、ロボットＲがタスク実行のために移動中のロボットＲ間の距離に基づいて、ロボットＲ同士が出会う可能性を検出し、出会う可能性が検出された場合に、出会いに起因したコストを算出して、複数のロボットＲが全体として最小コストでタスクを実行できるように制御を行うものである。
図３に示すように、ロボット制御装置３は、入出力手段１００と、記憶手段２００と、制御手段３００とを主要部として含んで構成される。
【００４３】
［入出力手段］
入出力手段１００は、基地局１やネットワーク４を介して、ロボットＲや端末５との間でデータ交換を行うためのインタフェースである。
本実施形態の場合、ロボットＲから送信されるステータス情報及び受信報告信号、端末５から送信されるタスクの登録や更新を要求する信号（タスク要請信号）、後記するタスク実行命令生成手段３４０で生成されるタスク実行命令、後記する行動最適化制御手段４００で生成されるプラン遂行命令及び一時停止命令等、そして後記する回避制御手段５００で生成される回避制御命令等が、この入出力手段１００を介して、やり取りされる。
入出力手段１００は、外部から入力されるステータス情報とタスク要請信号と受信報告信号とをデータベース管理手段３１０に出力する。
【００４４】
［記憶手段］
記憶手段２００は、ロボットＲの制御に必要な情報を記憶するものであり、この記憶手段２００には、地図情報データベース２１０と、タスク情報データベース２２０と、タスクスケジュールデータベース２３０と、ロボット情報データベース２４０と、が少なくとも記憶されている。
【００４５】
＜地図情報データベース＞
地図情報データベース２１０は、ロボットＲがタスクを実行する領域（タスク実行エリアＥ）の地図情報（グローバルマップ）を格納するデータベースである。
この地図情報データベース２１０では、タスク実行エリアＥ内に存在するもの、例えば、通路（通行路）、階段、エレベータ、部屋などの情報が、タスク実行エリアＥ内における位置を示す座標データ（ノード情報等）と関連づけて登録されている。
【００４６】
したがって、本実施形態の場合、ロボットＲ自身の現在位置をもとに地図情報データベース２１０を参照することで、タスク実行エリアＥ内に配置されたロボットＲと、タスク実行エリアＥ内の特定物（目標）との位置関係を知ることができる。例示すると、ロボットＲから目標までの距離や、目標がロボットＲの正面を基準として、どの方向に位置するかなどが判ることになる。
【００４７】
よって、この位置関係に基づいて、ロボットＲの自律移動やタスクの実行を命令する信号（タスク実行命令）をロボット制御装置３において生成することで、ロボットＲを、タスク実行エリアＥ内の所望の位置（例えば、タスクの開始位置）に、最短かつ最適の経路を経て、移動させることができるので、ロボットＲの自律移動やロボットＲによるタスクの実行が可能となる。
なお、本実施形態の場合、地図情報データベース２１０に記憶される地図情報の更新は、オペレータが操作する端末５からデータを入力することで、データベース管理手段３１０が行うように設定されている。
【００４８】
＜タスク情報データベース＞
タスク情報データベース（タスク情報記憶手段）２２０は、ロボットＲに実行させるタスクに関する情報（タスクデータ）を記憶するデータベースである。
このタスク情報データベースには、情報項目として、タスク毎に割り当てられた固有の識別子であるタスクＩＤ、タスクを優先的に実行すべき度合いを示す優先度、タスクの重要度、タスクを実行させるロボットの識別子であるロボットＩＤ、案内や運搬などのタスクの内容、タスク実行エリアＥ内におけるタスクを開始する位置（開始位置）、タスク実行エリアＥ内におけるタスクを終了する位置（終了位置）、タスクの実行に要する時間（所要時間）、そして、タスクの進行状況として、タスクの開始予定時刻（開始時刻）、タスクの終了予定時刻（終了時刻）、タスクの状態（完了、実行中、未処理）などが、含まれている。
【００４９】
＜タスクスケジュールデータベース＞
タスクスケジュールデータベース２３０は、ロボットＲに実行させるタスクの実行順位、タスク情報データベース２２０に登録されたタスクを特定するためのタスクＩＤ、タスクの優先度、タスクの内容、そしてタスクの状態を情報項目として記憶するデータベースである。
このタスクスケジュールデータベース２３０では、これら情報項目が、タスク実行エリアＥ内に配置されたロボットＲ毎に整理されており、どの様なタスクが、どのような順番で各ロボットＲに割り当てられているのかを把握できるようになっている。
【００５０】
このタスクスケジュールデータベース２３０は、タスク情報データベース２２０に登録されたタスクのうちの未処理のタスクの各ロボットＲへの割り当てと、各ロボットＲにおけるタスクの実行順序を規定する。
【００５１】
＜ロボット情報データベース＞
ロボット情報データベース（ロボット情報記憶手段）２４０は、ロボットＲの状態に関するデータ（ステータス情報）を格納するデータベースである。
ロボット情報データベース２４０には、前記した現在位置情報、タスク情報、バッテリ残量情報、そしてロボットＲの駆動系異常の有無などに関する情報（データ）などが情報項目として含まれており、これら情報項目はロボットＩＤ（識別情報）に関連付けて整理されている。また、タスク実行位置までの位置情報（ノード情報等）が時刻別に所定数格納されている。
このロボット情報データベース２４０に記憶される各情報項目の内容の更新は、ロボットＲから送信されたステータス情報に基づいて、後記する制御手段３００のデータベース管理手段３１０により行われる。
【００５２】
［制御手段］
制御手段３００は、図３に示すように、データベース管理手段３１０と、優先度データ生成手段３２０と、タスク管理手段３３０と、タスク実行命令生成手段３４０と、行動最適化制御手段４００と、回避制御手段５００とを含んで構成される。
【００５３】
＜データベース管理手段＞
データベース管理手段３１０は、記憶手段２００に記憶された各データベース２１０〜２４０へのデータの登録や、各データベース２１０〜２４０に登録されたデータの更新などを行うものである。
例えば、データベース管理手段３１０は、ロボットＲの状態を示すステータス情報が、入出力手段１００を介して入力されると、ステータス情報に含まれるロボットＩＤに基づいて、ロボット情報データベース２４０を参照し、ロボットＩＤにより特定されるロボットＲに関する情報項目の内容（データ）を、ステータス情報から取得した情報項目の内容（データ）に更新する。
また、データベース管理手段３１０は、ステータス情報に含まれるタスク情報が、ロボットＲがタスクの実行を完了していることを示している場合は、ロボットＲに割り当てられた次のタスクを当該ロボットＲに実行させるために、タスクの実行をロボットＲに命令するタスク実行命令の生成をタスク実行命令生成手段３４０に要求する信号（実行命令要求信号）を生成し、生成した実行命令要求信号をタスク実行命令生成手段３４０に出力する。
【００５４】
さらに、データベース管理手段３１０は、端末５において入力された新規タスクの登録やタスクの変更を要求する信号（タスク要請信号）が、入出力手段１００を介して入力されると、タスク情報データベース２２０の更新（情報項目の内容の更新）を行い、タスク情報データベース２２０の更新が行われたことを示す信号（タスク更新信号）を生成し、生成したタスク更新信号を優先度データ生成手段３２０に出力する。
【００５５】
＜優先度データ生成手段＞
優先度データ生成手段３２０は、ロボットＲに実行させるタスクの優先度を決定するものである。
具体的には、この優先度データ生成手段３２０は、データベース管理手段３１０から、タスク更新信号が入力された場合、タスク情報データベース２２０に登録されているタスクであって、未処理（未実行）のタスクの優先度を決定する。
そして、タスク情報データベース２２０に登録されたタスクの中で、未実行のタスクについてのスケジューリングを行うことを要求する信号（スケジュール要求信号）を生成し、タスク管理手段３３０に出力する。
【００５６】
本実施形態の場合、タスクの優先度の決定は、タスク情報データベース２２０にタスクを登録する際に設定されたタスクの重要度、タスクの開始位置から最も近い位置にいるロボットＲと当該タスクの開始位置との離間距離、現在の時刻からタスクの開始時刻や終了時刻までの時間的余裕、を加味した上で行われる。
【００５７】
具体的には、優先度データ生成手段３２０が、各タスクの優先度Ｑを下記式（１）に基づいて算出することで、タスクの優先度が決定される。
【００５８】
Ｑ＝(Ｔpri＋ｎ(Ｔsp））・ｆ(Ｔerr)  …（１）
【００５９】
ここで、「Ｔpri」は、タスク情報データベース２２０にタスクを登録する際に任意に決定されたタスクの重要度である。
本実施形態では、このタスクの重要度を示す値は、１．０から５．０の間で、０．５刻みで設定されており、重要度の最も小さいタスクは１．０で、重要度が最も大きいタスクは５．０で、それぞれ示されている。
【００６０】
また、「Ｔsp」は、タスクの開始位置に最も近い位置にいるロボットＲが、当該タスクの開始位置まで移動するのに要する時間であり、「ｎ（Ｔsp）」は、タスクの開始位置の近くにロボットＲが存在する場合に、当該ロボットＲにタスクを優先させて実行させるための距離依存重要度である。
「ｎ（Ｔsp）」の値は、ロボットＲがタスクの開始位置の近くに位置するほど、大きくなるように設定されており、本実施形態では、「Ｔsp」が所定の閾値以下となる場合にのみ、「ｎ（Ｔsp）」が所定の正の値をとるように設定されており、「Ｔsp」が所定の閾値よりも大きい場合には、「ｎ（Ｔsp）」の値は「０」となるように設定されている。
【００６１】
さらに、「ｆ（Ｔerr）」は、現在の時刻からタスクの開始時刻や終了時刻までの時間的余裕に基づいて、タスクを優先させて実行させるための時間依存重要度である。
本実施形態の場合、「ｆ（Ｔerr）」は、０〜１までの値となるように設定されており、その値は、タスク開始時刻が近づくに従って急激に増加して「０」から「１」に近づき、基準時刻（タスク開始時刻よりもタスクの実行に要する時間分だけ前の時刻）からタスク終了時刻までの間は最大値である「１」となり、タスク終了時刻が経過すると、徐々に減少して「０」となるように設定されている。
【００６２】
より具体的に説明すると、本実施形態の場合、現在時刻が基準時刻よりも前である場合は下記式（２）で、現在時刻が基準時刻以降であってタスク終了時刻が経過する前である場合は下記式（３）で、現在時刻がタスク終了時刻以降である場合は下記式（４）で、時間依存重要度ｆ（Ｔerr）が算出される。
【００６３】
ｆ（Ｔerr）＝ｅｘｐ（−Ｋ（（Ｔerr−Ｔtime）／Ｔtime））  …（２）
ｆ（Ｔerr）＝１  …（３）
ｆ（Ｔerr）＝（１＋ｃｏｓ（（π／Ｔtime)(Ｔerr／Ｃobli）））／２  …（４）
【００６４】
ここで、Ｔerrは、現在時刻とタスク開始時刻との間の時間間隔であり、タスク開始時刻の前では正の値となり、タスク開始時刻の後では負の値となる。また、Ｔtimeは、タスクの実行に要する時間（タスク所要時間）であり、Ｃobliは、忘却係数であり、Ｔerr＝−Ｃobli・Ｔtimeとなった場合に、ｆ(Ｔerr）＝０となるように設定された係数である。
【００６５】
このように、タスクを登録する際に設定されたタスクの重要度、タスクの開始位置から最も近い位置にいるロボットＲと当該タスクの開始位置との離間距離、現在の時刻からタスクの開始時刻や終了時刻までの時間的余裕、を加味した上で、各タスクの優先度Ｑが算出されるので、タスクの優先度として好適な値を得ることができる。
【００６６】
＜タスク管理手段＞
タスク管理手段３３０は、ロボットＲに実行させるタスクの実行計画（タスクスケジュール）をロボットＲ毎に設定するものである。
タスク管理手段３３０は、タスク毎に決定された優先度に基づいて、各タスクを実行するロボットＲを決定すると共に、ロボットＲに割り当てられたタスクの実行順序を、ロボットＲ毎に設定するものである。
すなわち、タスク管理手段３３０は、各ロボットＲに実行させるタスクの実行計画（タスクスケジュール）を設定するものである。
【００６７】
具体的には、タスク管理手段３３０は、優先度データ生成手段３２０からスケジュール要求信号が入力されると、タスク情報データベース２２０に登録されているタスクの中から、未実行（未処理）のタスクに関するデータ（タスクデータ）を取得する。そして、タスク管理手段３３０は、タスクデータに含まれる優先度に基づいて、タスクをグループ分けする。
【００６８】
ここで、タスクの優先度の値が、２未満の場合はグループ「Ｃ」にグループ分けし、２以上〜４未満の場合はグループ「Ｂ」にグループ分けし、４以上の場合はグループ「Ａ」にグループ分けすることが決められている場合であって、図４に示すように、タスクＩＤ＝１０〜タスクＩＤ＝１５のタスクが未実行であり、優先度データ生成手段３２０で決定されたタスクの優先度の値が、それぞれ図４中において示す値である場合を例に挙げて説明する。この場合、タスク管理手段３３０は、タスクＩＤが「１１」のタスクと、タスクＩＤが「１３」のタスクとをグループ「Ｃ」に振り分け、タスクＩＤが「１０」のタスクと、タスクＩＤが「１５」のタスクとをグループ「Ｂ」に振り分け、タスクＩＤが「１２」のタスクと、タスクＩＤが「１４」のタスクとをグループ「Ａ」に振り分ける。
【００６９】
続いて、タスク管理手段３３０は、３つ存在するグループ（グループ「Ａ」〜グループ「Ｃ」）の中から、優先度の高いタスクから構成されるグループ（この場合、グループ「Ａ」）のタスクについて、スケジューリングを行う。
具体的には、タスク管理手段３３０は、タスク実行エリアＥ内に配置されたロボットＲの各々に、どのタスクを割り当て、かつ割り当てたタスクをどの順番で行わせるのかを規定する組合せをすべて挙げる。そして、タスク管理手段３３０は、各組み合わせにおいて規定されるタスクのロボットＲへの割当て及びタスクの実行順序に従ってすべてのタスクを実行した場合に必要とされる全体コストを組合せごとに求め、求めた全体コストが最小となる組み合わせを検索する。
【００７０】
ここで、タスク実行エリアＥ内に配置されたロボットＲが２台（ＲＡ，ＲＢ）であり、前記したグループ「Ａ」に含まれるタスクが、タスクＩＤが「１２」のタスクと、タスクＩＤが「１４」のタスクである場合を例に挙げて説明をする。
この場合、ロボットＲＡとＲＢに対して行われるタスクの割り当てと実行順序の組み合わせは、実行順序を含めれば、両方のタスクを１台のロボットＲＡ（ＲＢ）で行う場合（４通り）と、２台のロボットＲＡ，ＲＢで行う場合（２通り）の合計６通り存在することになる。
【００７１】
よって、この場合、タスク管理手段３３０は、６個の各組合せに規定されるタスクスケジュールに従って、すべてのタスクを、タスク実行エリアＥ内に配置されたロボットＲ（ＲＡ，ＲＢ）で実行した場合に必要となる全体コストを算出する。
【００７２】
本実施形態の場合、全体コスト（ＣTotal）は、下記式（５）を用いて算出される。
【００７３】
Ｃtotal＝ｗ・Ｃall＋（１−ｗ）・Ｃall complete  …（５）
【００７４】
前記式（５）において、「Ｃall」は、総てのタスクを終了するまでに、ロボット制御システムＡに含まれるすべてのロボットＲが消費するバッテリの総量（動作コスト）であり、「Ｃall complete」は、すべてのタスクを終了するまでに、各ロボットに割り当てられた全タスクのうちの、一番最初に行われるタスクの開始予定時刻から一番最後に行われるタスクの終了予定時刻までの時間（時間コスト）である。
さらに、「ｗ」は、動作コストと時間コストのどちらに重点を置くかを決める「重み値」であり、０≦ｗ≦１の範囲内で任意に設定される値である。ここで、「ｗ」値が大きいと、全体コスト（Ｃtotal）において、バッテリ消費量を重視する傾向が大きくなり、小さいと、すべてのタスク遂行するまでに要する時間（所要時間）を重視する傾向が大きくなる。
【００７５】
具体的に説明すると、ロボットＲＡはタスクＩＤが「１２」のタスクを実行し、ロボットＲＢはタスクＩＤが「１４」のタスクを実行する場合、「Ｃall」は、ロボットＲＡが「１２」のタスクを実行する際に消費するバッテリ量と、ロボットＲＢが「１４」のタスクを実行する際に消費するバッテリ量とを加算した値である。
また、「Ｃall complete」は、ロボットＲＡが「１２」のタスクを開始する時刻と、ロボットＲＢが「１４」のタスクを開始する時刻のうちの早いほうの時刻から、ロボットＲＡが「１２」のタスクを終了する時刻と、ロボットＲＢが「１４」のタスクを終了する時刻のうちの遅いほうの時刻までの時間である。
また、ロボットＲＢが「１４」のタスクの次に、「１２」のタスクを実行する場合、「Ｃall」は、ロボットＲＢが「１４」のタスクを開始してから「１２」のタスクを終了するまでに消費するバッテリ量の値であり、「Ｃall complete」は、ロボットＲＢが「１４」のタスクを開始する時刻から、ロボットＲＢが「１２」のタスクを終了する時刻までの時間である。
【００７６】
よって、本実施形態の場合、タスク管理手段３３０は、組合せ毎に全体コスト（Ｃtotal）を求め、求めた全体コスト（Ｃtotal）の値が、最も小さくなる組合せにおいて規定されるタスクの割り当て、及びタスクの実行順序を、タスクスケジュールとして決定する。
【００７７】
タスク管理手段３３０は、同様の操作を、残りのグループ（グループ「Ｂ」及びグループ「Ｃ」）について、優先度の高いグループから順に行って、タスク情報データベース２２０に登録されているタスクのうちの未処理のタスクについて、実行するロボットＲを決定すると共に、ロボットＲに割り当てられたタスクの実行順序を、ロボットＲ毎に設定する。
【００７８】
このタスク管理手段３３０は、ロボットＲが各タスクを実行する際に利用される、下記式（６）に示される移動計画（以下、プランという）ＰR＝｛ＰRi（ｉ＝１〜ｍ）｝を示す移動計画情報をコスト別に算出し、コストの低い順に各プランＰRiを整列し、最小コストとなるプランに基づいて、タスク実行命令を生成するように指示する。
【００７９】
ＰR＝｛ＰR1，…，ＰRm｝≡｛ＰRi（ｉ＝１〜ｍ）｝  …（６）
ここで、ｍはプランの個数である。また、プランＰR1のコストをＣR1、以下同様にして、プランＰRmのコストをＣRmと表記すると、ＣR1＜…＜ＣRmの関係が成立している。
【００８０】
前記した移動計画情報は、例えばダイキストラ法により計算される。また、移動計画情報は、例えば、ロボットＲが現在位置からタスク実行位置までの経路において、現在位置からの累計距離と位置情報との組み合わせにより構成される。なお、移動計画情報は、どの時刻にどこにいるかを示す時刻情報と位置情報の組み合わせにより構成するようにしてもよい。
【００８１】
＜タスク実行命令生成手段＞
図３に示したタスク実行命令生成手段３４０は、ロボットＲにタスクを実行させるためのタスク実行命令（データ）を生成するものである。
【００８２】
タスク実行命令生成手段３４０は、タスク実行命令の生成を要求する信号（実行命令要求信号）が、データベース管理手段３１０やタスク管理手段３３０から入力された場合に、受信した実行命令要求信号に含まれるロボットＩＤをもとに、タスクスケジュールデータベース２３０を参照し、当該タスクスケジュールデータベース２３０に登録されたタスクを確認する。
そして、タスク実行命令生成手段３４０は、ロボットＩＤにより特定されるロボットＲに割り当てられた未実行のタスクが存在する場合、当該タスクをロボットＲに実行させるためのタスク実行命令（データ）を、タスク情報データベース２２０の各情報項目のデータを参照して生成し、生成したタスク実行命令を、入出力手段１００を介して、ロボットＩＤにより特定されるロボットＲに向けて出力する。
【００８３】
＜行動最適化制御手段＞
行動最適化制御手段４００は、ロボットＲの現在位置から、タスクの実行位置までの経路の移動計画を示す移動計画情報に基づいて、複数のロボットＲがタスクを最小コストで実行できるように複数のロボットＲの行動を最適化する命令を生成するものである。
また、行動最適化制御手段４００は、ロボットＲがタスク実行のために移動中のロボットＲ間の距離に基づいて、ロボットＲ同士が出会う可能性があるか否かを検出し、出会う可能性が検出された場合に衝突を未然に防止するための命令（プラン遂行命令、一時停止命令、回避指示信号）などを生成する。
この行動最適化制御手段４００は、図５に示すように、移動計画探索手段４１０と、移動計画選択手段４２０と、ロボット間距離算出手段４３０と、出会可能性判定手段４４０と、出会起因コスト算出手段４５０と、移動計画実行コスト算出手段４６０と、最適経路選択手段４７０と、計画変更誘導命令生成手段４８０とを含んで構成される。
【００８４】
移動計画探索手段４１０は、任意の複数（以下２台として説明する）のロボットＲ（ＲＡ，ＲＢ）について、タスク管理手段３３０で算出されたタスク実行のためのプランＰRA，ＰRBを示す移動計画情報を取得し、下記式（７）及び下記式（８）に示すように、ロボットＲ毎の各プランＰAi，ＰBjのコストＣAi，ＰBjに基づいて、コストの低い順に各プランＰAi，ＰBjを整列するものである。
【００８５】
ＰRA＝｛ＰA1，…，ＰAm｝≡｛ＰAi（ｉ＝１〜ｍ）｝  …（７）
ＰRB＝｛ＰB1，…，ＰBn｝≡｛ＰBj（ｊ＝１〜ｎ）｝  …（８）
ただし、ｍ，ｎはロボットＲＡ，ＲＢのタスク実行のためのプランの数をそれぞれ示し、ＣA1＜…＜ＣAm，ＣB1＜…＜ＣBnとする。
【００８６】
以下の説明では、ロボットＲＡを、優先度Ｑ（優先順位）の低いタスクを実行するロボット（非優先ロボット）、ロボットＲＢを、優先度Ｑの高いタスクを実行するロボット（優先ロボット）とする。
【００８７】
移動計画選択手段４２０は、前記式（７）及び式（８）に基づいて、ロボットＲ毎の各プランＰAi，ＰBjからｉとｊの組み合わせを適宜選択するものである。この移動計画選択手段４２０は、選択した各プランＰAi，ＰBjの組み合わせを、ロボット間距離算出手段４３０と移動計画実行コスト算出手段４６０とに出力する。
【００８８】
ロボット間距離算出手段（距離算出手段）４３０は、移動計画情報に基づいて、ロボットＲＡがプランＰAiを実行し、かつ、ロボットＲＢがプランＰBjを実行するときのそれぞれのタスク実行位置までの移動経路におけるロボット間距離を位置毎または時刻別に算出するものである。
【００８９】
出会可能性判定手段４４０は、ロボット間距離算出手段４３０で算出されたロボット間距離のいずれかが予め定められている値α（所定値）以下であるか否かを判定すると共に、所定値α以下である場合にロボットＲＡ，ＲＢに対して出会う可能性があると判定するものである。この値αとしては、出会いが起こりうるレベルを予め求めて設定してある。この出会可能性判定手段４４０は、α以下となるロボット間距離があると判定した場合、出会う可能性があることを示す信号を移動計画選択手段４２０に出力する。
【００９０】
出会起因コスト算出手段４５０は、衝突を防止するために、ロボットＲが通行路の中で一時停止をしたり、壁面に近づいたりする行動をするときに、ロボットＲＡ，ＲＢに要するコストである出会起因コストＣhを算出するものである。出会起因コスト算出手段４５０は、図５に示すように、回避コスト算出手段４５１と、一時停止コスト算出手段４５２と、出会起因コスト決定手段４５３とを含んで構成される。
【００９１】
回避コスト算出手段４５１は、ロボットＲＡ，ＲＢがすれ違う場合を想定したときに、優先ロボットＲＢが後記する回避経路に移動するために生じるコストと、非優先ロボットＲＡが後記する退避位置に移動するために生じるコストとを合算したコストと、両ロボットＲＡ，ＲＢが経路を変更しないときに生じるコストとの差である回避コストＣa（Ｃa：Cost Active）を算出するものである。
【００９２】
一時停止コスト算出手段４５２は、非優先ロボットＲＡが、進路上において一時停止する地点である一時停止位置において、優先ロボットＲＢが通過するまで待機するときに要するコストを示す一時停止コストＣp（Ｃp：Cost Passive）を算出するものである。
【００９３】
出会起因コスト決定手段４５３は、回避コストＣaと一時停止コストＣpとを比較し、下記式（９）及び（１０）に基づいて、出会起因コストＣhを決定するものである。
【００９４】
Ｃh＝Ｃa  （Ｃa＜Ｃpの場合）…（９）
Ｃh＝Ｃp  （Ｃa≧Ｃpの場合）…（１０）
【００９５】
移動計画実行コスト算出手段４６０は、移動計画選択手段４２０から出力されるプランＰAi，ＰBjのデータに基づいて、プランＰAiに要するコストＣAiと、プランＰBjに要するコストＣBjとの和であるプランコスト（移動計画実行コスト）を算出し、記憶手段２００に記憶するものである。
【００９６】
最適経路選択手段４７０は、記憶手段２００に記憶した組み合わせ毎のコストのうち最小コストとなるプランの組み合わせを選択し、計画変更誘導命令生成手段４８０に出力するものである。
【００９７】
計画変更誘導命令生成手段４８０は、最適経路選択手段４７０で選択されたプランの組み合わせに基づいて、以下の命令または信号（総称して計画変更誘導命令）を生成するものである。例えば、計画変更誘導命令生成手段４８０は、プラン遂行命令を生成する。このプラン遂行命令は、各ロボットＲに対して、選択されたプランを遂行するように指示するものである。このプラン遂行命令は、所定時刻に、入出力手段１００を介して対象とするロボットＲに送信される。
【００９８】
また、計画変更誘導命令生成手段４８０は、一時停止命令を生成する。この一時停止命令は、非優先ロボットＲＡに対して、優先ロボットＲＢが通過するまで所定位置で一時停止するように指示するものである。この一時停止命令は、所定時刻に、入出力手段１００を介して非優先ロボットＲＡに送信される。なお、計画変更誘導命令生成手段４８０は、非優先ロボットＲＡに対して一時停止命令を解除して元のプランへの復帰を指示する解除命令も生成する。
また、計画変更誘導命令生成手段４８０は、両ロボットＲに回避行動をさせる命令を生成するよう指示する回避指示信号を生成し、回避制御手段５００に出力する。
【００９９】
＜回避制御手段＞
回避制御手段５００は、行動最適化制御手段４００の指示により、ロボットＲＡ，ＲＢが互いに進行方向に向かって積極的に進みながら避けあう（すれ違う）ように、ロボットＲＡ，ＲＢに行動させる命令（回避命令、退避命令及び復帰命令）を生成するものである。この行動を回避行動と呼ぶ。回避行動は、後記するように、優先ロボットＲＢによる「回避」と、非優先ロボットＲＡによる「退避」とを含む。
【０１００】
この回避制御手段５００は、図５に示すように、回避命令生成手段５１０と、退避命令生成手段５２０と、復帰命令生成手段５３０とを含んで構成される。
回避命令生成手段５１０は、行動最適化制御手段４００の計画変更誘導命令生成手段４８０から出力される回避指示信号に基づいて、後記する回避命令を生成するものである。この回避命令は、所定時刻に、優先ロボットＲＢに入出力手段１００を介して送信される。
退避命令生成手段５２０は、行動最適化制御手段４００の計画変更誘導命令生成手段４８０から出力される回避指示信号に基づいて、後記する退避命令を生成するものである。この退避命令は、所定時刻に、非優先ロボットＲＡに入出力手段１００を介して送信される。
復帰命令生成手段５３０は、ロボットＲＡ，ＲＢの現在位置に基づいて、回避命令及び退避命令を解除し、ロボットＲＡ，ＲＢを最小コストのプランＰA1，ＰB1に復帰させるために、後記する復帰命令（復帰命令Ａ，Ｂ）を生成するものである。
【０１０１】
次に、回避命令生成手段５１０で生成される回避命令と、退避命令生成手段５２０で生成される退避命令と、復帰命令生成手段５３０で生成される復帰命令について図６を参照して具体的に説明する。
図６に示した例では、ロボットＲＡ，ＲＢの移動する通行路が所定幅Ｗ1を有し、この通行路の幅方向中央に所定距離Ｗ2だけ離間した所定地点Ｘ01，Ｘ02が設定されている。また、所定地点Ｘ01，Ｘ02の垂直二等分線上に所定地点Ｘ03，Ｘ04（以下、退避位置、回避位置という）が所定距離ｄ1だけ離間し、かつ、通行路の壁から所定距離ｄ2だけ離間して対称な位置に設定されている。なお、所定地点Ｘ01から所定地点Ｘ04を経由して所定地点Ｘ02に至る経路を回避経路という。ここで、所定距離ｄ1，ｄ2は、ロボットＲが障害物検知をしながら移動する際に、その妨げとならないように予め決定されており、それぞれの値が同一であってもよい。なお、所定地点Ｘ01〜Ｘ04は、例えば地図情報データベース２１０（図３参照）に記憶された地図情報（例えばノード、ノードより細かい区間、位置座標等）に基づいて設定されている。
【０１０２】
ここで、回避行動開始状態として、非優先ロボットＲＡが所定地点Ｘ01に位置し、優先ロボットＲＢが所定地点Ｘ02に位置しているものとする。また、非優先ロボットＲＡは所定地点Ｘ02に向かい、優先ロボットＲＢが所定地点Ｘ01に向かうことを前提とする。
【０１０３】
回避命令生成手段５１０は、回避行動開始状態、またはそれ以前に、回避命令を優先ロボットＲＢに送信する。この回避命令は、優先ロボットＲＢに対して、非優先ロボットＲＡが退避位置Ｘ03への移動を終了するまで所定地点Ｘ02で待機してから、所定地点Ｘ02から回避位置Ｘ04に移動して、そこで待機するように指示するものである。
退避命令生成手段５２０は、回避行動開始状態、またはそれ以前に、退避命令を非優先ロボットＲＡに送信する。この退避命令は、非優先ロボットＲＡに対して、所定地点Ｘ01から退避位置Ｘ03に移動して、そこで待機するように指示するものである。
【０１０４】
復帰命令生成手段５３０は、優先ロボットＲＢが所定地点Ｘ01に移動したことを確認してから、復帰命令Ａを非優先ロボットＲＡに送信すると共に、優先ロボットＲＢが回避位置Ｘ04に移動したことを確認してから、復帰命令Ｂを優先ロボットＲＢに送信する。
復帰命令Ａは、非優先ロボットＲＡに対して、退避位置Ｘ03から所定地点Ｘ02に移動して、そこから元のプランに復帰するように指示するものである。
復帰命令Ｂは、優先ロボットＲＢに、回避位置Ｘ04から所定地点Ｘ01に移動して、そこから元のプランに復帰するように指示するものである。
【０１０５】
ここで、前記した回避命令、退避命令及び復帰命令Ａ，Ｂによる時間コストの例を説明する。例えば、ロボットＲＡ，ＲＢが所定地点Ｘ01と所定地点Ｘ02との間（Ｗ2）を回避行動をとらずに直進したときの時間コストをそれぞれ例えば「１」とすると、全体（２台）の時間コストは「２」となる。そして、ロボットＲＡ，ＲＢが回避行動開始状態から退避位置Ｘ03または回避位置Ｘ04まで直進したときの時間コスト、あるいは、そのときの待機による時間コストを、それぞれ例えば「０．５」とする。
【０１０６】
この場合、退避命令によるロボットＲＡの行動は、例えば「移動（時間コスト「０．５」）」及び「待機（時間コスト「１．０」）」となる。また、回避命令によるロボットＲＢの行動は、例えば「待機（時間コスト「０．５」）」及び「移動（時間コスト「０．５」）」となる。また、復帰命令Ａ，ＢによるロボットＲＡ，ＲＢの行動は、それぞれ例えば「移動（時間コスト「０．５」）」となる。
これらをまとめると、ロボットＲＡ，ＲＢが所定地点Ｘ01と所定地点Ｘ02との間（Ｗ２）で回避行動をとって移動したときの時間コストは、それぞれ「２」及び「１．５」となるので、全体（２台）の時間コストはその合計の「３．５」となる。したがって、回避行動をとらずに直進したときの全体の時間コスト「２」と比較すると、回避行動によって全体として、「３．５−２＝１．５」の時間コストが余分に消費されることとなる。
ここで説明した余分なコストが、前記した回避コスト算出手段４５１で回避コストＣaとして算出される。なお、この回避コストＣaを、様々なパターンで計算した値を記憶手段２００（図３参照）に予め格納しておき、必要に応じて、回避コスト算出手段４５１がそれを参照するように構成してもよい。
【０１０７】
（ロボット制御システムの動作）
はじめに、タスク情報が端末５（図１参照）において入力され、端末５にネットワーク４を介して接続されたロボット制御装置３に出力される。ロボット制御装置３は、端末５から入出力手段１００（図３参照）を介して入力されたタスク情報を、データベース管理手段３１０によって、タスク情報データベース２２０に登録する。そして、端末５における入力が完了した後、各ロボットＲ（例えばＲＡ，ＲＢ）は、それぞれ所定の位置（ホームポジション）で待機する。
【０１０８】
ロボットＲの主制御部４０（図２参照）は、無線通信部６０を介してロボット制御装置３から取得したタスク実行命令に基づいて、タスクを実行する。すなわち、各ロボットＲは、スケジュールに従って、ロボットＲの現在位置（ホームポジション）からタスク実行位置までの経路探索（例えばノード間の経路を探索）及び移動、タスクの実行、タスク終了位置からホームポジションまでの経路探索及び移動の各行動を順次実行する。このロボットＲは、移動に際しては、地図情報データベース２１０（図３参照）に記憶された地図データを取得参照し、障害物検知部８０（図２参照）によって、障害物を回避しながら、最短距離で目的地に到達することができる。
【０１０９】
ロボットＲＡ，ＲＢは、それぞれ、主制御部４０によって、ロボットＲＡ，ＲＢの状態に関するデータ（ステータス情報）を、所定時間間隔毎に生成し、生成したステータス情報を無線通信部６０を介してロボット制御装置３に出力する。ここで、ステータス情報には、現在位置情報と、バッテリ残量情報と、ロボットＩＤとが含まれている。そして、ロボット制御装置３は、入出力手段１００を介して入力されたステータス情報を、データベース管理手段３１０によって、ロボット情報データベース２４０に登録する。
【０１１０】
［ロボット制御装置３における処理］
次に、図７を参照（適宜図５参照）して、２つのロボットＲ（ＲＡ，ＲＢ）が、それぞれ予め定められたタスクを実行する際の、ロボット制御装置３において行われる処理について説明する。図７は、ロボット制御装置の行動最適化制御手段の処理を示すフローチャートである。
【０１１１】
ロボット制御装置３は、図７に示すように、行動最適化制御手段４００によって、以下の処理を実行する。
あらかじめ、行動最適化制御手段４００は、移動計画探索手段４１０によって、２つのロボットＲＡ，ＲＢのタスク実行のための移動計画（プラン）を探索し、各プランのコストを計算し、前記式（７）及び（８）に示すように、コストの低い順に整列しておく。
【０１１２】
行動最適化制御手段４００は、移動計画選択手段４２０によって、変数ｋ（初期値１）に「１」を加算する（ステップＳ１）。このステップＳ１で加算された結果の変数ｋは、ロボットＲＡのプランの添字ｉとロボットＲＢのプランの添字ｊの和（最小値２，最大値ｍ＋ｎ）である。そして、行動最適化制御手段４００は、移動計画選択手段４２０によって、ｋがｍとｎの和に等しい（ｋ＝ｍ＋ｎ）かどうかを判定する（ステップＳ２）。
【０１１３】
ｋ≠ｍ＋ｎの場合（ステップＳ２：Ｎｏ）、すなわち、ロボットＲＡ，ＲＢについてのすべてのプランの組み合わせを選択していない場合、行動最適化制御手段４００は、移動計画選択手段４２０によって、ｋ＝ｉ＋ｊとなるすべてのプランＰAiとＰBjとを組み合わせ、移動計画実行コスト算出手段４６０によって、組み合わせたプランを実行するためのコストの和（プランコスト）を算出し、算出したそれぞれのプランコストを記憶手段２００に記憶する（ステップＳ３）。
【０１１４】
例えば、ｋ＝２の場合、行動最適化制御手段４００は、移動計画選択手段４２０によって、ｉ＝１かつｊ＝１のプランを選択する。すなわち、ロボットＲＡに対してはプランＰA1を選択し、かつ、ロボットＲＢに対してはプランＰB1を選択する。以下同様に、例えば、ｋ＝３の場合、行動最適化制御手段４００は、移動計画選択手段４２０によって、ｉ＝１かつｊ＝２のプランと、ｉ＝２かつｊ＝１のプランとを選択することになる。
【０１１５】
行動最適化制御手段４００は、ロボット間距離算出手段４３０によって、ロボットＲＡがプランＰAiを実行し、かつ、ロボットＲＢがプランＰBjを実行しているときの位置毎（所定時刻）におけるロボット間距離をそれぞれ算出する。そして、行動最適化制御手段４００は、算出されたそれぞれのロボット間距離と予め定められている値αとを、出会可能性判定手段４４０によって比較し、α以下となるロボット間距離があるかどうか、すなわちロボットＲＡ，ＲＢが出会う可能性があるかどうかを判定する。これにより、行動最適化制御手段４００は、出会可能性判定手段４４０によって、ｋ＝ｉ＋ｊとなるすべてのプランＰAi，ＰBjの組み合わせで出会う可能性がないかどうかを判定する（ステップＳ４）。例えば、ｋ＝３の場合、行動最適化制御手段４００は、出会可能性判定手段４４０によって、ｉ＝１かつｊ＝２のプランと、ｉ＝２かつｊ＝１のプランで出会う可能性がないかどうかを判定することになる。
【０１１６】
すべての組み合わせで出会う可能性がない場合（ステップＳ４：Ｙｅｓ）、行動最適化制御手段４００は、最適経路選択手段４７０によって、記憶手段２００に記憶した組み合わせ毎のコストのうち最小コストとなるプランの組み合わせを選択する（ステップＳ５）。そして、行動最適化制御手段４００は、計画変更誘導命令生成手段４８０によって、選択したプランに応じた命令を生成する（ステップＳ６）。
【０１１７】
すなわち、出会う可能性がない組み合わせのプランが最小コストである場合、行動最適化制御手段４００は、計画変更誘導命令生成手段４８０によって、プラン遂行命令を生成する。このプラン遂行命令は、所定時刻に、入出力手段１００を介して対象とするロボットＲに送信される。プラン遂行命令を受信したロボットＲは、指示されたプランで移動して目的のタスクを実行する。
【０１１８】
また、出会う可能性があって、一時停止コストＣpを含む組み合わせのプランが最小コストである場合、行動最適化制御手段４００は、計画変更誘導命令生成手段４８０によって、一時停止命令を生成する。この一時停止命令は、所定時刻に、入出力手段１００を介して非優先ロボットＲＡに送信される。一時停止命令を受信した非優先ロボットＲＡは、所定位置で一時停止する。なお、ロボット制御装置３は優先ロボットＲＢがこの所定位置を通過したことを確認した後、非優先ロボットＲＡに対して一時停止命令を解除してプランへの復帰を指示する。
【０１１９】
さらに、出会う可能性があって、回避コストＣaを含む組み合わせのプランが最小コストである場合、行動最適化制御手段４００は、計画変更誘導命令生成手段４８０によって、回避指示信号を生成し、回避制御手段５００に出力する。この回避指示信号に基づいて、回避制御手段５００は、回避命令生成手段５１０によって回避命令を生成すると共に、退避命令生成手段５２０によって退避命令を生成し、所定時刻にロボットＲＡ，ＲＢに入出力手段１００を介してそれぞれ送信する。これにより、ロボットＲＡ，ＲＢは回避行動を行う。
【０１２０】
一方、ｋ＝ｉ＋ｊとなるいずれかの組み合わせで出会う可能性がある場合（ステップＳ４：Ｎｏ）、行動最適化制御手段４００は、出会う可能性がある組み合わせについて、後記する出会起因コスト（Ｃh）算出処理を実行し（ステップＳ７）、出会起因コストＣhを算出する。そして、行動最適化制御手段４００は、出会起因コスト決定手段４５３によって、出会う可能性がある組み合わせについて、記憶手段２００に記憶されているプランコストに出会起因コストＣhを加算して記憶し（ステップＳ８）、ステップＳ１に戻る。
【０１２１】
なお、前記したステップＳ４で一度もＹｅｓとならない特殊な場合には、ｋ＝ｍ＋ｎとなり（ステップＳ２：Ｙｅｓ）、ロボットＲＡ，ＲＢについてのすべてのプランの組み合わせを選択することになるので、行動最適化制御手段４００は、ステップＳ５に進む。しかしながら、実際上は、ロボットＲが行動するエリアのノード数によって、組み合わせの数が数万規模になることがあり、このような場合、ロボットＲＡ，ＲＢについてのすべてのプランの組み合わせを選択し終わる前に、前記したステップＳ４でＹｅｓとなる場合が生じる。そのため、ステップＳ４の判定処理を実行することにより、行動最適化制御手段４００における演算処理の負荷を大幅に低減することができる。
【０１２２】
ちなみに、前記したステップＳ４でＹｅｓとなった場合の変数ｋを、ｋ′（ｋ′≠ｍ＋ｎ）とすると、行動最適化制御手段４００において、このｋ′を特定するまでに演算に要したｉ，ｊの組み合わせの数Ｚは下記式（１１）を用いて算出される。
【０１２３】
【数１】
2006326703.tif 000003
【０１２４】
次に、図７に示したステップＳ７の出会起因コスト（Ｃh）算出処理について図８を参照（適宜図５参照）して説明する。図８は、図７に示した出会起因コスト（Ｃh）算出処理を示すフローチャートである。
行動最適化制御手段４００は、出会起因コスト算出手段４５０によって、以下の処理を実行する。すなわち、出会起因コスト算出手段４５０は、回避コスト算出手段４５１によって、ロボットＲＡ，ＲＢが回避行動をとったときに余分に生じるコストである回避コストＣａを算出する（ステップＳ２１）。また、出会起因コスト算出手段４５０は、一時停止コスト算出手段４５２によって、非優先ロボットＲＡが一時停止するときのコストである一時停止コストＣpを算出する（ステップＳ２２）。なお、ステップＳ２１及びステップＳ２２の処理は逆の順序で行ってもよいし、並行して行ってもよい。
【０１２５】
ステップＳ２２に続けて、出会起因コスト算出手段４５０は、出会起因コスト決定手段４５３によって、ステップＳ２１で算出した回避コストＣaがステップＳ２２で算出した一時停止コストＣpよりも小さい（Ｃa＜Ｃp）かどうかを判定する（ステップＳ２３）。そして、Ｃa＜Ｃpの場合（ステップＳ２３：Ｙｅｓ）、出会起因コスト決定手段４５３は、出会起因コストＣhを前記式（９）により算出する（ステップＳ２４）。一方、Ｃa≧Ｃpの場合（ステップＳ２３：Ｎｏ）、出会起因コスト決定手段４５３は、出会起因コストＣhを前記式（１０）により算出する（ステップＳ２５）。
【０１２６】
次に、各プランの組み合わせによるプランコスト及び出会起因コストについて具体例を用いて説明する。図９は、ロボット制御装置３の地図情報データベース２１０に記憶された地図情報を説明するための説明図である。この例では、図９に示すように、非優先ロボットＲＡと、優先ロボットＲＢとが移動する通行路上に、ノードＮ（Ｎ１〜Ｎ１５）が設定されている。ロボットＲＡ，ＲＢがノードＮ間を移動するためのコストを同等とし、簡便のため時間コストのみを考慮することとする。
【０１２７】
ロボットＲＡは、ノードＮ１０に現在位置しており、ロボットＲＡのタスク実行位置ＧＡがノードＮ１に設定されているものとする。このとき、ロボットＲＡは、現在地からタスク実行位置ＧＡまで移動するための最小コストＣA1に基づいて、最短経路ｒA0を移動するプランＰA1を実行しようとしている。ここで、最短経路ｒA0は、「Ｎ１０→Ｎ９→Ｎ４→Ｎ３→Ｎ２→Ｎ１」であり、コストＣA1は「５」とする。
【０１２８】
ロボットＲＢは、ノード６に現在位置しており、ロボットＲＢのタスク実行位置ＧＢがノードＮ５に設定されているものとする。このとき、ロボットＲＢは、現在地からタスク実行位置ＧＢまで移動するための最小コストＣB1に基づいて、最短経路ｒB0を移動するプランＰB1を実行しようとしている。ここで、最短経路ｒB0は、「Ｎ６→Ｎ２→Ｎ３→Ｎ４→Ｎ５」であり、コストＣB1は「４」とする。すなわち、ロボットＲＡ，ＲＢ全体のプランコストは「９」となる。
【０１２９】
仮に、ロボットＲＡ，ＲＢが同時にそれぞれのタスク実行位置に等速で移動するようにスケジュールされている場合、ロボット制御装置３の行動最適化制御手段４００は、ロボットＲＡ，ＲＢがノードＮ３とノードＮ４の間で衝突することを予測し、衝突を避けることに起因するコスト（出会起因コストＣh）を算出する。
【０１３０】
なお、図９に示した例では、非優先ロボットＲＡがタスクを実行するための他のプラン、例えば、プランＰA2として、移動経路が「Ｎ１０→Ｎ９→Ｎ８→Ｎ７→Ｎ６→Ｎ２→Ｎ１」となるものがある。この場合のコストＣA2は「６」である。したがって、非優先ロボットＲＡのプランをプランＰA2に変更した場合に、ロボットＲＡ，ＲＢ全体のプランコストは「１０」となる。この場合には、ロボットＲＡ，ＲＢは衝突することはないので、出会起因コストＣhは算出されない。
【０１３１】
ロボットＲＡがプランＰA1を実行し、ロボットＲＢがプランＰB1を実行することにより発生する衝突を避ける１つの方法は、非優先ロボットＲＡをノードＮ９において、優先ロボットＲＢがノードＮ２からノードＮ５まで移動するまで、一時停止させることである。この場合に要する待機時間に相当するコストは「３」となる。従って、一時停止コストＣpは「３」となる。
【０１３２】
ロボットＲＡがプランＰA1を実行し、ロボットＲＢがプランＰB1を実行することにより発生する衝突を避ける別の方法は、例えばノードＮ３とノードＮ４の間で、ロボットＲＡ，ＲＢに回避行動をとらせることである。通常、ノードＮ３とノードＮ４の間をロボットＲＡ，ＲＢは最小全体コスト「２」で移動することが可能であるが、回避行動をとる場合には、例えば図６を参照して説明したように「３．５」のコストを要する。したがって、回避コストＣaは「１．５」となる。
【０１３３】
この場合、回避コストＣaは一時停止コストＣpよりも小さいので、出会起因コストＣhとして回避コストＣaが採用される。出会起因コストＣh「１．５」は、ロボットＲＡがプランＰA1を実行し、ロボットＲＢがプランＰB1を実行する際のロボットＲＡ，ＲＢ全体のプランコスト「９」に加算される。最終的に、ロボットＲＡ，ＲＢがタスクを実行する際の全体のコストは「１０．５」となる。
【０１３４】
本実施形態によれば、ロボット制御装置３は、ロボットＲＡ，ＲＢの現在位置とタスク実行位置とに基づいて、出会起因コストＣhを考慮した組み合わせと、考慮していない組み合わせを含めて最小コストとなるプランの組み合わせを選択し、それに応じた命令を生成するので、ロボットＲＡ，ＲＢは、タスクを実行する際に最適な行動をとることができる。
【０１３５】
以上、本発明の好ましい実施形態について説明したが、本発明は前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で適宜設計変更可能である。例えば、本実施形態では、２台のロボットＲＡ，ＲＢの場合で説明したが、ロボットＲの台数は３台以上であってもよい。また、ロボットＲが出会う対象は、他のロボットＲに限定されず、例えば静的な障害物であってもよく、予め位置が分かっていればよい。
【０１３６】
また、本実施形態では、各プランの組み合わせによるプランコスト及び出会起因コストについて具体例を、時間コストの算術和で説明したが、これに限定されるものではなく、種々の観点を導入することができる。例えば、全体としてタスクを一刻も早く終了させるようにしてもよい。この場合のプラン遂行命令について、図９を参照して説明する。
前記したように、例えば、プランＰA2として、移動経路が「Ｎ１０→Ｎ９→Ｎ８→Ｎ７→Ｎ６→Ｎ２→Ｎ１」となるものがあり、この場合のコストＣA2は「６」である。そして、プランＰB1のコストＣB1「４」との和は、「１０」であった。したがって、すべてのタスクの終了時刻は、非優先ロボットＲＡのコストＣA2である「６」に依存することになる。
そこで、行動最適化制御手段４００は、ロボットＲＡ，ＲＢ全体のプランコストを「１０」に保ちつつ、すべてのタスクの終了時刻をできるだけ早めるように、ロボットＲＡ，ＲＢのプランを探索する。具体的には、行動最適化制御手段４００は、優先ロボットＲＢのプランをプランＰB2に変更し、優先ロボットＲＢの移動経路を変更するためのプラン遂行命令を生成する。このとき、優先ロボットＲＢの移動経路は「Ｎ６→Ｎ７→Ｎ８→Ｎ９→Ｎ４→Ｎ５」であり、コストＣB2は「５」である。
すなわち、全体の移動コストの内訳は、非優先ロボットＲＡのコストＣA1が「５」であり、優先ロボットＲＢのコストＣB2が「５」である。したがって、すべてのタスクの終了時刻は、両コストＣA1，ＣB2である「５」によって決定される。その結果、前記した非優先ロボットＲＡのプランを変更した場合よりもすべてのタスクの終了時刻を早めることが可能になる。
【０１３７】
また、本実施形態におけるプランコスト及び出会起因コストは、時間に関するものに限定されるものではなく、エネルギーコストでもよく、また、それらを組み合わせてもよい。なお、エネルギーコストとは、例えばバッテリ消費電力のことであり、エネルギーコストの場合の最小コストは全体としてバッテリ消費電力を少しでも節約するようにしたものである。また、組み合わせた場合には、時間とエネルギーのそれぞれに所定の重み付けを行う。
【０１３８】
また、本実施形態では、ロボット制御装置３の行動最適化制御手段４００は、出会可能性判定手段４４０によって、ロボットＲＡ，ＲＢ同士の出会う可能性を時系列的に変化するロボットＲＡ，ＲＢ間の距離に基づいて判定するものとした。このように出会う可能性があると判定した場合に、例えば、その出会う可能性がある地点（ノード等）の道幅（地図情報等）に基づいて、回避行動が可能かどうかを判定するようにしてもよい。さらに、その出会う可能性がある地点（ノード等）の道のつながり方（地図情報等）に基づいて、非優先ロボットＲＡによる一時停止が可能かどうかを判定するようにしてもよい。このようにした場合、例えば図１０の（ａ）に示すような状況でも迅速に出会起因コストを算出できるようになる。
【０１３９】
この例では、図１０の（ａ）に示すように、正方形の各頂点Ｘ1，Ｘ2，Ｘ3，Ｘ4を順番に結び、１台のロボットＲだけが通行可能な通行路を想定する。そして、ロボットＲＡは、頂点Ｘ1を現在位置ＡSTARTとして、頂点Ｘ3にあるタスク実行位置（終点）ＡGOALに向けて経路「Ｘ1→Ｘ2→Ｘ3」を進行するプランＰA1を実行するようにスケジュールされているものとする。また、ロボットＲＢは、頂点Ｘ3を現在位置ＢSTARTとして、頂点Ｘ1にあるタスク実行位置（終点）ＢGOALに向けて経路「Ｘ3→Ｘ2→Ｘ1」を進行するプランＰB1を実行するようにスケジュールされているものとする。つまり、この例では、非優先ロボットＲＡによる一時停止では衝突が避けられない状態にある。
【０１４０】
この場合には、頂点Ｘ2においてロボットＲＡ，ＲＢが出会う可能性があると判定され、さらに、回避行動及び一時停止ができないと判定される。そして、出会起因コストＣhを無限大とする。そして、最小コストとして他のプランの組み合わせが選択されることとなる。この場合のプラン遂行命令は、例えば、非優先ロボットＲＡに対して、移動経路を「Ｘ１→Ｘ４→Ｘ３」とするプランＰA2を実行するように指示するものである。このようにすることで、事前に実行できないと判定された行動についてのコストを算出する処理を省略することで、処理負荷を低減できるようになる。
【０１４１】
前記した実施形態においては、プランを、１つのタスク実行位置までの移動経路として説明したが、本発明は、これに限定されるものではない。この場合の処理を図１０の（ｂ）を参照して説明する。
【０１４２】
図１０の（ｂ）に示すように、正三角形の各頂点Ｘ10，Ｘ11，Ｘ12を順番に結んだ通行路と、正三角形の各頂点Ｘ20，Ｘ21，Ｘ22を順番に結んだ通行路とを想定する。なお、２つの正三角形は対称に配されており、重なる領域がある。ここで、ロボットＲＡ，ＲＢには、同等なタスクＴ1〜Ｔ4のうち２つずつ実行するよう割り当てられている。
そして、ロボットＲＡは、頂点Ｘ10を現在位置ＡSTARTとして、頂点Ｘ11にてタスクＴ1を実行した後、頂点Ｘ12にてタスクＴ2を実行し、始点でもある終点ＡGOALに向けて経路「Ｘ10→Ｘ11→Ｘ12→Ｘ10」を進行するプランＰA1を実行するようにスケジュールされているものとする。また、ロボットＲＢは、頂点Ｘ20を現在位置ＢSTARTとして、頂点Ｘ21にてタスクＴ3を実行した後、頂点Ｘ22にてタスクＴ4を実行し、始点でもある終点ＢGOALに向けて経路「Ｘ20→Ｘ21→Ｘ22→Ｘ20」を進行するプランＰB1を実行するようにスケジュールされているものとする。つまり、ロボットＲＡは、タスクＴ1を実行した後、タスクＴ2を実行し、ロボットＲＢは、タスクＴ3を実行した後、タスクＴ4を実行するようにスケジュールされている。
【０１４３】
この場合には、同様の最小コストでロボットＲＡ，ＲＢを行動させることができる。すなわち、例えば、非優先ロボットＲＡに対して、移動経路を「Ｘ10→Ｘ12→Ｘ11→Ｘ10」とするプランＰA2を実行するように指示する。つまり、ロボットＲＡは、タスクＴ2を実行した後、タスクＴ1を実行するようにタスクの実行順序が変更されることになる。この場合、行動最適化制御手段４００は、タスクスケジュールデータベース２３０に格納されているタスク別のスケジュールを変更するように、タスク管理手段３３０に指示する。
【０１４４】
また、本実施形態のロボット制御装置３の行動最適化制御手段４００を以下のように適用してもよい。すなわち、ロボットＲが進路に障害物を検出して一時停止したときに、プラン（通行路）の変更を要求するための計画変更要求信号を、ロボット制御装置３に送信するようにしてもよい。なお、ロボットＲは、所定時間間隔毎に、障害物検出動作を繰り返し、この障害物検出動作を所定回数繰り返し後に、同じ場所で障害物を検出したときに、前記した計画切替要求信号を生成する。
この場合には、ロボット制御装置３の行動最適化制御手段４００は、移動計画選択手段４２０によって、現時点のプランとは異なる他のプランに基づいて、該当するロボットＲの行動を最適化する命令を生成する。そして、行動最適化制御手段４００は、計画変更誘導命令生成手段４８０によって、該当するロボットＲに対して、別プランに誘導するための計画変更誘導命令を生成することになる。
これによれば、ロボットＲが一時停止するような突発的な外乱が生じた場合、例えば、ロボットＲの移動する通行路上で通行止めがあったり、通行路に面したドアが開けっぱなしになった状態であったりした場合であっても、安全な迂回路を通ることにより、所定のタスクを確実に実行することが可能になる。なお、この場合にバッテリ残量などのエネルギーコストを考慮するとさらに好適なものとなる。
【図面の簡単な説明】
【０１４５】
【図１】本発明の実施形態に係るロボット制御システムＡのシステム構成図である。
【図２】ロボットのブロック図である。
【図３】ロボット制御装置のブロック構成図である。
【図４】ロボット制御装置のタスク管理手段で行われる処理を説明するための説明図である。
【図５】ロボット制御装置の行動最適化制御手段のブロック構成図である。
【図６】ロボット制御装置の回避制御手段を説明するための説明図である。
【図７】ロボット制御装置の行動最適化制御手段の処理を示すフローチャートである。
【図８】図７に示した出会起因コスト算出処理を示すフローチャートである。
【図９】ロボット制御装置の地図情報データベースに記憶された地図情報を説明するための説明図である。
【図１０】ロボット制御装置の行動最適化制御手段の処理を説明するための説明図であり、（ａ）は本実施形態、（ｂ）は他の実施形態を示している。
【符号の説明】
【０１４６】
１      基地局
２      ルーター
３      ロボット制御装置
４      ネットワーク
５      端末
１００  入出力手段
２００  記憶手段
２１０  地図情報データベース
２２０  タスク情報データベース（タスク情報記憶手段）
２３０  タスクスケジュールデータベース
２４０  ロボット情報データベース（ロボット情報記憶手段）
３００  制御手段
３１０  データベース管理手段
３２０  優先度データ生成手段
３３０  タスク管理手段
３４０  タスク実行命令生成手段
４００  行動最適化制御手段
４１０  移動計画探索手段
４２０  移動計画選択手段
４３０  ロボット間距離算出手段
４４０  出会可能性判定手段
４５０  出会起因コスト算出手段
４５１  回避コスト算出手段
４５２  一時停止コスト算出手段
４５３  出会起因コスト決定手段
４６０  移動計画実行コスト算出手段
４７０  最適経路選択手段
４８０  計画変更誘導命令生成手段
５００  回避制御手段
５１０  回避命令生成手段
５２０  退避命令生成手段
５３０  復帰命令生成手段
Ｒ      ロボット
【図１】
2006326703.tif 000004
【図２】
2006326703.tif 000005
【図３】
2006326703.tif 000006
【図４】
2006326703.tif 000007
【図５】
2006326703.tif 000008
【図６】
2006326703.tif 000009
【図７】
2006326703.tif 000010
【図８】
2006326703.tif 000011
【図９】
2006326703.tif 000012
【図１０】
2006326703.tif 000013