(発明の基礎となった知見)
特許文献1では、サーバが、複数の掃除ロボットを制御して、複数の掃除ロボットを協調させながら、掃除を行わせる技術について開示されている。より具体的には、特許文献1に開示される技術では、サーバが、複数の掃除ロボットのそれぞれに対して、担当領域を割り当てて、複数の掃除ロボットに掃除を行わせる。各掃除ロボットは、サーバから割り当てられた担当領域について掃除を行いながら、掃除の進捗状況をサーバに通知する。サーバは、各掃除ロボットからの通知を受けて、各掃除ロボットのタスクの進捗状況を把握する。サーバは、一の掃除ロボットから、掃除が完了した旨の通知を受信した場合、当該一の掃除ロボットに対して、まだ掃除が完了していない他のロボットの担当領域のうちの未掃除領域を割り当てる再割り当てを行う。
しかしながら、特許文献1に開示される技術は、サーバを用いて掃除ロボットを協調させる構成である。そのため、複数の掃除ロボットを協調させるためのサーバを構築する必要があり、サーバ構築のためのコストがかかる。さらに、サーバが故障等で動作不能になってしまう場合には、掃除ロボットに対して再割り当て等を行うことができず、複数の掃除ロボットを適切に協調させることができないという課題がある。また、サーバと掃除ロボットとの通信が途絶えてしまう場合には、サーバは通信が途絶えた掃除ロボットのタスクの進捗状況を把握することができなくなる。そのため、サーバは、複数の掃除ロボットを適切に協調させることができなくなる。
以上から、サーバなどの中央装置を用いた中央制御を用いないで複数の掃除ロボットすなわち自律ロボットを協調させる方法が求められる。すなわち、各自律ロボットが、自身の周りの自律ロボットとお互いに情報をやりとりしながら、自身の周りの自律ロボットと協調することにより、複数の自律ロボットで構成されるシステム全体を協調させる方法が求められる。
そして、このような構成を実現できると、システム全体を把握する中央装置を用いないでよいので、中央装置を構築する必要がなく、中央装置の構築のためのコストが抑制できる。さらに、たとえ、1台の自律ロボットが故障等で動作不能になったとしても、他の自律ロボット間の協調には何ら影響は起こらないため、システム全体で協調動作が機能しなくなるといったことはない。もちろん、故障した自律ロボットと協調動作をしていた場合、協調動作を行った自律ロボットなどに影響は出る。しかし、その影響はシステム全体からみて局所的なものであり、システム全体に影響するものではない。
特許文献2には、中央装置を構築する必要のないシステム構成が開示されている。特許文献2には、サーバなどを用いた中央制御による協調ではなく、各自律ロボットが、自身の周りの自律ロボットとお互いに情報をやりとりしながら、自身の周りの自律ロボットと協調することにより、システム全体を協調させる方法が開示されている。特許文献2には、サーバと複数の自律ロボットから構成されるシステムが開示されているが、複数の自律ロボットは、サーバから命令を受け取るだけであり、サーバからの命令を受けた後は、複数の自律ロボットがお互いの情報をやり取りして、協調しながらタスクを実行する。特許文献2における複数の自律ロボットは、他の自律ロボットと協調してタスクの実行を行う場合、通信範囲にいる他の自律ロボットと通信を行い、お互いに、自身の位置情報やタスクの進捗情報などを交換し、それらの情報に基づいて、お互いに協調してタスクの実行を行っている。
ところで、掃除ロボットなどの自律ロボットが移動すると当該自律ロボットの通信範囲は変化する。そのため、当該自律ロボットの移動により当該自律ロボットと通信可能な他の自律ロボットが変化する場合がある。この場合、当該自律ロボットが移動することにより、当該自律ロボットが取得できる他の自律ロボットの情報は変化する。
例えば、自律ロボットの移動により、ある自律ロボットAとは、移動前は通信可能であったが、移動後は通信不可となってしまう場合がある。この場合、当該自律ロボットは、自律ロボットAの情報が取得できない。また、例えば、当該自律ロボットの移動により別の自律ロボットBとは、移動前は通信不可であったが、移動後は通信可能となる場合もある。この場合、当該自律ロボットは、自律ロボットBの情報が新たに取得できるようになる。
各自律ロボットが、お互いの情報をやりとりしながら、周りの自律ロボットと協調する方法の場合、各自律ロボットは、周りの自律ロボットの情報のみを用いて、協調を行う。つまり、各自律ロボットは、システムを構成する全ての自律ロボットの情報を用いることはできず、周りの自律ロボットの情報のみを用いて協調を行う。そのため、各自律ロボットは、システム全体からみて必ずしも最適な協調を行うことはできない。より最適な協調を行うためには、各自律ロボットが、より多くの自律ロボットの情報を用いて協調を行うようにすることが望まれる。特に、掃除ロボットのように自律ロボットが移動する場合においては、自律ロボットの移動に伴い、当該自律ロボットが取得できる他の自律ロボットの情報が動的に変化するため、そのことを考慮に入れながら、より多くの他の自律ロボットの情報を用いて、より最適な協調を行うようにすることが望まれる。
しかしながら、上記の特許文献2では、自律ロボットの移動に伴い、当該自律ロボットが取得できる他の自律ロボットの情報が動的に変化することについては、何の示唆もされていない。上記の特許文献2では、全ての自律ロボットが互いに通信可能であることが前提となっており、自律ロボットの移動により、当該自律ロボットの通信範囲が変化し、当該自律ロボットが取得できる他の自律ロボットの情報が変化することについては、何の考慮もされていないと思料される。
そこで、以下では、通信可能な他の自律ロボットが動的に変化する場合でも自律ロボットがより多くの他の自律ロボットと協調してタスクを実行することができる移動制御方法および移動制御装置を提案する。
本発明の一形態に係る移動制御方法は、それぞれ割り当てられた担当領域に対するタスクを実行する自律移動型の複数のロボットで構成されるロボットシステムにおける移動制御方法であって、前記複数のロボットのうちの第1ロボットが、前記第1ロボットに割り当てられた第1担当領域に対するタスクを完了した場合、前記複数のロボットのうち前記第1ロボットと通信可能である前記第1ロボット以外の複数のロボットであるロボット群の中から支援対象のロボットを選択する選択処理ステップと、前記第1ロボットが、前記選択処理ステップで選択した支援対象のロボットである第2ロボットに割り当てられた第2担当領域に移動を開始する第1移動ステップと、前記第1ロボットが、前記第2担当領域への移動中に、前記複数のロボットのうち第3ロボットと新たに通信可能になった場合、支援対象のロボットを前記第3ロボットに変更するか否かを判定する変更判定ステップと、前記第1ロボットが、前記変更判定ステップで支援対象のロボットを前記第3ロボットに変更すると判定する場合、前記第3ロボットに割り当てられた第3担当領域に向けて移動を開始する第2移動ステップとを含む。
これにより、割り当てられた担当領域に対するタスクを完了した第1ロボットは、支援対象すなわちタスク支援の対象である第2ロボットに向かう移動時に新たに通信可能となった第3ロボットからの情報に基づき、支援対象の変更処理を行うことができるので、より適切なロボットを支援対象に選択することができる。つまり、通信可能な他の自律ロボットが動的に変化する場合でも自律ロボットはより多くの他の自律ロボットと協調してタスクを実行することができる。このようにして、より効率的に他の自律ロボットと連携してタスクを実行することができる移動制御方法を実現できる。
ここで、前記変更判定ステップでは、前記第1ロボットが、前記第3ロボットの現在位置を示す位置情報および前記第3ロボットのタスクの進捗状況を示すタスク情報を含む第3ロボット情報を取得する取得ステップと、前記第1ロボットが、前記取得ステップで取得した第3ロボット情報を用いて、支援対象のロボットを前記第2ロボットから前記第3ロボットに変更するか否かを判定する判定ステップと、を含むとしてもよい。
また、前記判定ステップでは、前記第1ロボットは、前記第2ロボットが前記第2担当領域に対するタスクを完了する時刻より前記第3ロボットが前記第3担当領域に対するタスクを完了する時刻の方が遅く、かつ、前記第1ロボットの現在位置から前記第3ロボットの現在位置まで移動した時点において前記第3ロボットの残りタスクが存在する場合に、支援対象のロボットを前記第2ロボットから前記第3ロボットに変更すると判定するとしてもよい。
また、前記移動制御方法は、前記第1移動ステップでは、さらに、前記第1ロボットが前記第2担当領域に移動を開始する際に、前記第2担当領域のタスクを完了するための支援に向かう旨を示す情報を前記第1ロボットが前記第2ロボットに通知する通知ステップを含み、前記第2移動ステップでは、さらに、前記第1ロボットが前記第3担当領域に移動を開始する際に、前記第3担当領域のタスクを完了するための支援を行う旨を示す情報を前記第3ロボットに通知すると共に、前記第2ロボットの支援に向かわない旨を示す情報を前記第2ロボットに通知するとしてもよい。
これにより、第1ロボットは、第1ロボットと通信可能な第2ロボットに対して、タスク支援に行かなくなった旨を通知することができる。
それにより、第2ロボットは、自身のタスクを完了し支援対象のロボットの選択処理を行う際には、第1ロボットが支援に来なくなったことを考慮に入れることが可能となる。
また、前記変更判定ステップでは、さらに、前記第1ロボットが、前記第3担当領域を含む前記第1担当領域以外の第N担当領域(Nは3以上の自然数)への移動中に、前記複数のロボットのうち第Mロボット(Mは3以上の自然数)と新たに通信可能になった場合に、支援対象のロボットを前記第Mロボットに変更するか否かを判定し、前記第2移動ステップでは、前記第1ロボットは、前記変更判定ステップで前記第1ロボットが支援対象のロボットを前記第Mロボットに変更すると判定した場合に、前記第Mロボットに割り当てられた第M担当領域に向けて移動を開始するとしてもよい。
ここで、前記第1ロボットは、支援対象のロボットを変更可能な回数である回数制限を示す回数情報を記憶するメモリを有し、前記変更判定ステップでは、前記第1ロボットは、支援対象のロボットの変更回数が前記メモリに記憶された前記回数情報に示される前記回数制限を越えた場合には、支援対象のロボットを前記第Mロボットに変更しないと判定するとしてもよい。
これにより、第1ロボットが、支援対象のロボットの変更を何度も行うことによって、支援対象のロボットの担当領域に到達するまでの時間が増加し、支援対象のロボットの支援を行う時間が減少してしまうことを抑制することが可能となる。
また、前記選択処理ステップは、前記第1ロボットが、前記ロボット群のそれぞれから、現在位置を示す位置情報およびタスクの進捗状況を示すタスク情報を含むロボット情報を受信する受信ステップと、前記第1ロボットが、当該第1ロボットの現在位置と前記受信ステップで受信した複数のロボット情報とを用いて、前記第1ロボットが前記ロボット群の各ロボットの現在位置まで移動した時点での前記各ロボットの残りタスクを取得する残タスク取得ステップと、前記第1ロボットが、前記残タスク取得ステップで取得した残りタスクに基づいて、前記ロボット群の中から前記第2ロボットを支援対象のロボットとして選択する選択ステップと、を含むとしてもよい。
これにより、第1ロボットは、ロボット群のそれぞれの残りタスクを取得ができるので、取得した残りタスクに基づいて、支援対象のロボットを選択することができる。それにより、第1ロボットは、支援対象のロボットへの移動中に当該支援対象のロボットのタスクが完了してしまい、移動が無駄になってしまうことを防止することが可能である。
また、前記第1ロボットは、前記第1担当領域に対するタスクを実行中に前記受信ステップで受信した前記ロボット群それぞれのロボット情報を記憶するためのメモリを有し、前記ロボット群それぞれのロボット情報は、さらに、前記第1ロボットが前記受信ステップで受信した時刻を示す時間情報を含み、前記選択処理ステップでは、さらに、前記第1ロボットが、前記メモリに記憶されている前記ロボット情報の少なくとも一を、前記第1担当領域に対するタスクを完了した時点を基準とした所定期間外に受信していた場合、前記第1ロボットが前記第1担当領域内を移動する領域内移動ステップを含み、前記受信ステップでは、さらに、前記領域内移動ステップで前記第1ロボットが移動中に前記少なくとも一に対応するロボットと通信可能となったときに、前記第1ロボットは前記ロボット情報の少なくとも一を受信し、前記残タスク取得ステップでは、前記少なくとも一に対応するロボットを含む前記ロボット群の前記各ロボットの残りタスクを取得するとしてもよい。
これにより、第1ロボットは、自ロボットの担当領域のタスクを完了する直前もしくは直後に受信するロボット情報を用いて支援対象のロボットを選択することができるので、適切に支援対象のロボットを選択することが可能となる。
また、前記メモリには、さらに、前記第1ロボットが前記第1担当領域に対するタスクを実行中に前記受信ステップで受信した前記ロボット群それぞれのロボット情報を受信した際の前記第1ロボットの位置を示す受信位置情報が記憶されており、前記領域内移動ステップでは、前記第1ロボットは、前記ロボット情報の少なくとも一の受信位置情報の示す位置に向けて、前記第1担当領域内を移動するとしてもよい。
これにより、第1ロボットが、自ロボットの担当領域内を移動することでさらなるロボット情報を取得することができるので、適切に支援対象のロボットを選択することが可能となる。
より具体的には、第1ロボットは、担当領域内を移動して新しくロボット情報を取得する際、以前、対応するロボット情報を受信した位置に向かって移動する。これにより、第1ロボットは、より早く当該ロボット情報のロボットと通信することができるので、より早く支援対象のロボットを選択することが可能となる。
また、前記第1ロボットは、前記第1担当領域に対するタスクを実行中に前記受信ステップで受信した前記ロボット群それぞれのロボット情報を記憶するためのメモリを有し、前記ロボット群それぞれのロボット情報は、さらに、前記第1ロボットが前記受信ステップで受信した時刻を示す時間情報を含み、前記選択処理ステップでは、前記複数のロボットのうち前記第1ロボットと現在通信可能および過去通信可能であった前記第1ロボット以外の複数のロボットであるロボット群の中から支援対象のロボットを選択し、前記残タスク取得ステップでは、さらに、前記メモリに記憶されている前記第1ロボットと過去通信可能であった前記複数のロボットのうちの少なくとも一のロボット情報および時間情報と、前記第1ロボットの現在位置とを用いて、前記第1ロボットが前記少なくとも一それぞれまで移動した時点での前記少なくとも一それぞれの残りタスクを推定することで、前記少なくとも一を含む前記ロボット群の前記各ロボットの残りタスクを取得するとしてもよい。
これにより、第1ロボットは、ロボット群それぞれの残りタスクを正確に推定することができ、適切に支援対象のロボットを選択することが可能となる。
また、前記選択処理ステップでは、さらに、前記第1担当領域に対するタスクを完了した場合、かつ、前記第1担当領域の中に存在する前記第1ロボットが前記ロボット群の中から支援対象ロボットを選択できないとき、前記第1ロボットが前記第1担当領域の外に移動する領域外移動ステップを含み、前記受信ステップでは、さらに、前記領域外移動ステップで前記第1ロボットが移動中に前記複数のロボットのうち前記ロボット群以外のロボットと通信可能となったときに、前記第1ロボットは前記ロボット群以外のロボットから現在位置を示す位置情報およびタスクの進捗状況を示すタスク情報を含むロボット情報を受信し、前記残タスク取得ステップでは、さらに、前記第1ロボットが、前記第1ロボットの現在位置と前記受信ステップで受信した前記ロボット群以外のロボットのロボット情報とを用いて、前記第1ロボットが前記ロボット群以外のロボットの現在位置まで移動した時点での残りタスクを取得し、前記選択ステップでは、さらに、前記第1ロボットが、前記残タスク取得ステップで取得した残りタスクに基づいて、前記ロボット群以外のロボットを支援対象のロボットとして選択するとしてもよい。
これにより、第1ロボットは、担当領域外に移動することにより、これまで通信範囲外であった新しい領域を通信範囲とすることができ、これまで通信できなかった新しい他のロボットと通信することができるようになる。それにより、第1ロボットは、新しい他のロボットからロボット情報を取得できるので、支援対象のロボットを選択することが可能となる。
また、前記残タスク取得ステップでは、前記第1ロボットは、前記第1ロボットの現在位置と前記受信ステップで受信した前記ロボット群のそれぞれの位置情報とを用いて、前記第1ロボットが前記ロボット群の各ロボットの現在位置までの各移動時間を算出し、算出した前記各移動時間と前記受信ステップで受信した前記ロボット群のそれぞれのタスク情報とを用いて、前記各ロボットの残りタスク量を推定することにより、前記各ロボットの残りタスクを取得するとしてもよい。
また、前記選択ステップでは、前記第1ロボットは、前記ロボット群のうち、前記残タスク取得ステップで取得した残りタスクの量が最も大きい前記第2ロボットを、支援対象のロボットとして選択するとしてもよい。
これにより、選択基準として、推定した残りタスク量が最も大きい第2ロボットを、支援対象のロボットとして選択することができるので、最も支援が必要とされるロボットを支援することが可能となる。
また、本発明の一態様に係る移動制御装置は、それぞれ割り当てられた担当領域に対するタスクを実行する自律移動型の複数のロボットで構成されるロボットシステムにおける第1ロボットの移動制御装置であって、前記第1ロボットに割り当てられた第1担当領域に対するタスクを完了した場合、前記複数のロボットのうち、前記第1ロボットと通信可能である前記第1ロボット以外の複数のロボットであるロボット群の中から支援対象のロボットを選択する選択処理部と、前記第1ロボットに、前記選択処理により選択した支援対象のロボットである第2ロボットに割り当てられた第2担当領域に移動を開始させる移動制御部と、前記第2担当領域への移動中に、前記複数のロボットのうち第3ロボットと新たに通信可能になった場合、支援対象のロボットを前記第3ロボットに変更するか否かを判定する変更判定部とを備え、前記移動制御部は、さらに、前記変更判定部において支援対象のロボットを前記第3ロボットに変更すると判定された場合、前記第1ロボットに、前記第3ロボットに割り当てられた第3担当領域に移動を開始させる。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、本発明の一態様に係る移動制御方法等について、図面を参照しながら説明する。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
以下、複数の自律ロボットそれぞれには、事前にタスクの担当領域が割り当てられているとして説明する。
(実施の形態1)
本実施の形態では、複数の自律ロボットがそれぞれの担当領域を自律的に移動してタスクを実行する状況において、割り当てられた担当領域に対するタスクを完了した自律ロボットが他の自律ロボットと協調してタスクを実行するために行われる移動制御方法等について説明する。
なお、自律ロボットが他の自律ロボットと協調してタスクを実行するとは、自律ロボットが、自身に割り当てられた担当領域のタスクを完了後に、未だタスクが完了していない他の自律ロボットのタスクの支援を行うことを意味する。また、タスクの支援とは、当該自律ロボットが当該他の自律ロボットのタスクの一部を実行することを意味する。このタスクの一部は当該他の自律ロボットから当該自律ロボットに割り当てられる。
自律ロボットは、例えば掃除ロボットや探索ロボット、点検ロボットなどである。自律ロボットが行うタスクとは、例えば自律ロボットが掃除ロボットの場合、ゴミや埃の吸引処理であり、自律ロボットが探索ロボットの場合、例えば地雷などの対象物を探索するためのセンシングであり、自律ロボットが点検ロボットの場合、例えば橋や建物などの点検対象の異常確認するためのセンシングである。
[ロボットシステムの全体像]
図1は、実施の形態1におけるロボットシステムの全体像を概念的に示す図である。
図1に示すロボットシステム1は、それぞれ割り当てられた担当領域に対するタスクを実行する自律移動型の複数のロボットで構成される。本実施の形態ではロボットシステム1は自律ロボット11−19で構成されている。
自律ロボット11−19のそれぞれには、事前にタスクの担当領域21−29が割り当てられている。自律ロボット11−19のそれぞれは、事前に割り当てられた担当領域21−29を自律的に移動してタスクを実行する。
また、自律ロボット11−19のそれぞれは、通信機能を有している。本実施の形態では、自律ロボット11−19のそれぞれが通信可能な領域は限られている。通信可能な領域内にいる自律ロボット同士はお互いに情報をやり取りすることができる。例えば図1には、自律ロボット11の通信可能な領域として通信範囲311が示されており、自律ロボット11は、通信範囲311内にいる他の自律ロボット12、13、14と通信可能であることが示されている。
以上のように構成されたロボットシステム1では、各自律ロボットは、事前に割り当てられた担当領域のタスクを行うと共に通信範囲内にいる近隣の他の自律ロボットと通信して互いに情報のやり取りを行う。
なお、自律ロボットの担当領域を割り当てる方法としては、例えば、ユーザが、自律ロボットがタスクを開始する前に当該自律ロボットに対して担当領域を割り当てるとしてもよい。また、未だ担当領域の割り当てられていない自律ロボットが、既に担当領域が割り当てられている他の自律ロボットに要求して、当該他の自律ロボットの担当領域の一部を割り当ててもらうとしてもよい。また、自律ロボットが、タスクを開始する前に環境認識を行って、当該自律ロボット自身で担当領域を設定するとしてもよい。当該自律ロボットがタスク実行前に担当領域を有する状態になれば、割り当て方法は上記の方法に限定されない。
[自律ロボットの機能構成]
自律ロボット11−19は同種または図2に示す機能構成を少なくとも備える。以下では、代表して自律ロボット11の機能構成について説明する。
図2は、実施の形態1における自律ロボット11の機能構成の一例を示すブロック図である。
自律ロボット11は、図2に示すように、通信部111、制御部112、タスク実行部113、駆動部114、記憶部115、時間計測部116および位置測定部117を少なくとも備える。
通信部111は、WiFiなどの近距離の無線通信技術を用いて、他の自律ロボットと通信を行うためのインタフェースである。通信部111は、例えば自身(自律ロボット11)に関する固有情報や自身(自律ロボット11)のタスクに関するタスク情報、自身の位置情報を他の自律ロボットに送信する。また、通信部111は、他の自律ロボットから送信された情報を受信する。なお、通信部111は、自律ロボット11のバッテリや電池などで駆動し、上述したように通信可能な領域は限られている。
タスク実行部113は、制御部112から指示を受けると、タスク実行を行う。ここで、タスク実行部113は、例えば自律ロボット11が掃除ロボットである場合、ゴミの吸引を行うためのゴミ吸引装置である。また、タスク実行部113は、自律ロボット11が例えば地雷探索ロボットである場合、地中にある地雷をセンシングするための地雷センシング装置であり、自律ロボット11が例えば点検ロボットである場合、点検対象の建物に事前に付与されたセンサーの情報を順次取得するためのセンサー情報収集装置である。
駆動部114は、モータ及び車輪から構成され、制御部112から指示を受けると、モータを駆動させ車輪を回転させることにより、自律ロボット11の移動を行う。
記憶部115は、自身に関する固有情報と自身のタスクに関するタスク情報とから成る自ロボット情報、および、他の自律ロボットから送信された情報に基づく他ロボット情報を記憶する。例えば、記憶部115は、支援対象のロボットを変更可能な回数である回数制限を示す回数情報を記憶している。記憶部115は、他にも情報を記憶しているが詳細については、後述するのでここでの説明を省略する。
時間計測部116は、時刻情報が必要なときに、制御部112の指示を受けて、時刻の計測を行う。時間計測部116は、例えば、自身のタスクの実行開始時に、タスク開始時刻を計測したり、自身のタスクの実行完了時にタスク完了時刻を計測したりする。
位置測定部117は、自身の位置情報の取得を行う。例えば、位置測定部117は、GPSにより位置情報を測定する。
制御部112は、上述した通信部111、タスク実行部113、駆動部114、記憶部115、時間計測部116および位置測定部117の制御を行う。
[制御部112]
ここで、制御部112の詳細構成の一例について説明する。
図3は、図2に示す制御部の詳細構成の一例を示すブロック図である。
制御部112は、図3に示すように、選択処理部1121、移動制御部1122、変更判定部1123および通知制御部1124を備える。
選択処理部1121は、自律ロボット11(第1ロボット)に割り当てられた担当領域21(第1担当領域)に対するタスクを完了した場合、複数の自律ロボットのうち、自律ロボット11(第1ロボット)と通信可能である自律ロボット11(第1ロボット)以外の複数の自律ロボットであるロボット群の中から支援対象のロボットを選択する処理を行う。
例えば、選択処理部1121は、まず、ロボット群のそれぞれから、現在位置を示す位置情報およびタスクの進捗状況を示すタスク情報を含むロボット情報を通信部111に受信させる。次いで、選択処理部1121は、位置測定部117が測定した自律ロボット11(第1ロボット)の現在位置と通信部111が取得した複数のロボット情報とを用いて、自律ロボット11(第1ロボット)がロボット群の各ロボットの現在位置まで移動した時点での各ロボットの残りタスクを取得する。そして、選択処理部1121は、取得した残りタスクに基づいて、ロボット群の中から支援対象のロボット(第2ロボット)を選択する。ここで、例えば選択処理部1121は、ロボット群のうち、取得した残りタスクの量が最も大きいロボットを、支援対象のロボットとして選択するとしてもよい。
変更判定部1123は、自律ロボット11(第1ロボット)が、支援対象のロボット(第2ロボット)に割り当てられた第2担当領域への移動中に、複数の自律ロボットのうち第3ロボットと新たに通信可能になった場合、支援対象のロボットを第2ロボットから第3ロボットに変更するか否かを判定する処理を行う。例えば、変更判定部1123は、第3ロボットの現在位置を示す位置情報および第3ロボットのタスクの進捗状況を示すタスク情報を含む第3ロボット情報を通信部111に取得させ、取得させた第3ロボット情報を用いて、支援対象のロボットを第2ロボットから第3ロボットに変更するか否かを判定する。
変更判定部1123は、さらに、自律ロボット11(第1ロボット)が、第3担当領域を含む担当領域21(第1担当領域)以外の第N担当領域(Nは3以上の自然数)への移動中に、複数の自律ロボットのうち第Mロボット(Mは3以上の自然数)と新たに通信可能になった場合に、支援対象のロボットを第Mロボットに変更するか否かを判定する。なお、変更判定部1123は、支援対象のロボットの変更回数が記憶部115に記憶されている回数情報に示される回数制限を越えた場合には、支援対象のロボットを第Mロボットに変更しないと判定する。
移動制御部1122は、自律ロボット11(第1ロボット)を、選択処理部1121により選択された支援対象のロボット(第2ロボット)に割り当てられた第2担当領域に移動を開始させる制御を行う。また、移動制御部1122は、変更判定部1123により支援対象のロボットを第2ロボットから第3ロボットに変更すると判定された場合、第1ロボット(自律ロボット11)を、第3ロボットに割り当てられた第3担当領域に移動を開始させる制御を行う。また、移動制御部1122は、変更判定部1123が支援対象のロボットを第Mロボットに変更すると判定した場合に、第Mロボットに割り当てられた第M担当領域に移動を開始させる制御を行う。
通知制御部1124は、移動制御部1122により第1ロボット(自律ロボット11)が第2担当領域に移動を開始する際に、第2担当領域のタスクを完了するための支援に向かう旨を示す情報を第2ロボットに通知する制御を行う。また、通知制御部1124は、変更判定部1123が支援対象のロボットを第3ロボットに変更すると判定した場合には、移動制御部1122により第1ロボット(自律ロボット11)を第3担当領域に移動を開始させる際に、第3担当領域のタスクを完了するための支援を行う旨を示す情報を第3ロボットに通知すると共に、第2ロボットの支援に向かわない旨を示す情報を第2ロボットに通知する制御を行う。
[記憶部115]
次に、自律ロボット11の記憶部115に記憶される情報について、図面を用いて詳細に説明する。
図4は、実施の形態1に係る自律ロボット11の記憶部115に記憶される情報を概念的に示す図である。
記憶部115は、自ロボット情報1151と、他ロボット情報1152と、選択基準1153とを備える。
(自ロボット情報の詳細)
自ロボット情報1151は、自律ロボット11自身に関する情報であり、ロボット固有情報およびタスク情報から構成される。
ロボット固有情報は、自律ロボット11をユニークに識別するためのロボット識別情報と自律ロボット11のスペックを表すスペック情報とで構成される。ここで、自律ロボット11のスペックを表す情報とは、例えば、自律ロボット11が移動する際の移動速度、単位時間当たりのタスク処理量を表すタスク処理能力などの情報である。
タスク情報は、自律ロボット11に割り当てられている担当領域21のタスクに関する情報である。このタスク情報は、領域情報、経路情報、タスク開始時刻、タスク終了予定時刻、タスク済領域情報、未タスク領域情報、および、単位時間あたりのタスク実行量で構成される。
領域情報は、自律ロボット11に割り当てられているタスクの担当領域21のマップや面積などを示す情報である。ここで、例えば、領域情報は、ユーザから事前に設定されるとしてもよい。また、例えば、領域情報は、自律ロボット11が既に担当領域を割り当てられている他の自律ロボットに要求して、当該他の自律ロボットの担当領域の一部を割り当ててもらうことにより設定されるとしてもよい。また、例えば、領域情報は、自律ロボット11が、タスクを開始する前に環境情報を取得して、自ら設定するとしてもよい。
経路情報は、担当領域21を自律ロボット11がどのような経路で移動するかを示す情報である。より具体的には、経路情報は、領域情報に示される担当領域21等に対して、自律ロボット11がどのような経路で移動するかを示した情報である。ここで、経路情報は、例えば、ユーザから事前に設定されるとしてもよい。また、経路情報は、例えば、自律ロボット11が、既に担当領域を割り当てられている他の自律ロボットに要求して、当該他の自律ロボットの担当領域の一部を割り当ててもらう際に、取得するとしてもよい。また、経路情報は、例えば、自律ロボット11自らが生成したものであってもよい。
タスク済領域情報は、これまでに完了した担当領域21のマップや面積などを示す情報である。より具体的には、タスク済領域情報は、自律ロボット11に割り当てられている担当領域21のうち、自律ロボット11が、既に実行したタスクの領域に関する情報を示す。ここで、タスク済領域情報は、次のように生成される。すなわち、制御部112は、自律ロボット11のタスク実行中に、位置測定部117に指示し、自律ロボット11の位置情報を定期的にトラッキングさせ、自律ロボット11の移動軌跡を取得させる。そして、制御部112は、取得した移動軌跡を自律ロボット11が実行したタスクの領域とみなすことによりタスク済領域情報を生成する。
未タスク領域情報は、まだ完了していない担当領域21のマップや面積などを示す情報である。より具体的には、未タスク領域情報は、自律ロボット11に割り当てられている担当領域21のうち、自律ロボット11が、未だ実行していないタスクの領域に関する情報を示す。ここで、未タスク領域情報は、例えば、自律ロボット11に割り当てられている担当領域21から、タスク済領域情報に示されるタスク済領域を差分することにより生成される。
タスク開始時刻は、自律ロボット11がタスクを開始した時刻を示す情報である。タスク開始時刻は、自律ロボット11がタスクの実行を開始する直前に、制御部112により指示された時間計測部116により取得される。
タスク終了予定時刻は、自律ロボット11がタスクを完了する予定を示す情報である。より具体的には、タスク終了予定時刻とは、自律ロボット11が、自身に割り当てられタスクを完了する予定の時刻を示す情報である。タスク終了予定時刻は、自律ロボットのタスクの進捗により、動的に変化する。
例えば、自律ロボット11がタスクを開始した時点のタスク終了予定時刻は、制御部112により、次のように算出される。まず、制御部112は、記憶部115に記憶している自ロボット情報1151の領域情報に含まれる担当領域21の面積およびスペック情報に基づき、タスク実行に要する所要時間を算出する。また、制御部112は、時間計測部116に指示しタスク開始時刻を取得させる。そして、制御部112は、取得させたタスク開始時刻と算出したタスク実行に要する所要時間とを用いて、タスク開始から所要時間経過した時刻を、タスク終了予定時刻として算出する。
また、例えば、自律ロボット11がタスク実行中であるときの任意の時点でのタスク終了予定時刻は、次のように算出される。まず、制御部112は、時間計測部116に指示し時刻情報を取得させ、記憶部115に記憶している自ロボット情報1151のタスク開始時刻を用いてこれまでのタスク所要時間を算出する。制御部112は、記憶部115に記憶している自ロボット情報1151のタスク済領域情報に含まれるタスク済領域の面積と算出したタスク所要時間とにより、これまでのタスク実行における単位時間当たりのタスク処理量を算出する。次に、制御部112は、記憶部115に記憶している自ロボット情報1151の未タスク領域情報に含まれる未タスク領域情報の面積と、算出した単位時間当たりのタスク処理量とにより、これから未タスク領域のタスクを実行するのにかかるタスク所要時間を算出する。そして、制御部112は、取得させた時刻情報と、算出した未タスク領域に対するタスク所要時間とを用いて、取得した時刻情報から当該タスク所要時間経過した時刻を、タスク終了予定時刻として算出する。
単位時間あたりのタスク実行量は、自律ロボット11が単位時間当たりに実行するタスク量の平均を表す単位時間当たりのタスク処理量などを示す情報である。単位時間あたりのタスク処理量とは、自律ロボット11が担当領域21のタスクを実行する際の単位時間あたりの平均タスク処理量のことである。
ここで、例えば、実際にタスクを実行する際の単位時間当たりのタスク処理量は、次のように算出される。まず、制御部112は、自律ロボット11がタスクを実行している任意の時点において、時間計測部116に指示し時刻情報を取得させる。制御部112は、取得させた時刻情報と、記憶部115に記憶されている自ロボット情報1151のタスク開始時刻とにより、これまでのタスク所要時間を算出する。そして、制御部112は、記憶部115に記憶している自ロボット情報1151のタスク済領域情報に含まれるタスク済領域の面積を算出したタスク所要時間で割ることにより実際の単位時間あたりのタスク実行量を算出する。
なお、単位時間あたりのタスク実行量は、上述したスペック情報とは異なる。スペック情報に含まれる単位時間あたりのタスク処理量は、事前に設定された情報であり、自律ロボット11が、何も障害物が置かれていない領域に対してタスクを行う際の単位時間当たりのタスク処理量を示す。一方、実際の単位時間あたりのタスク処理量は、自律ロボット11が実際に担当領域21のタスクを実行した際の単位時間当たりのタスク処理量のことを示す。自律ロボット11が実際にタスク実行を行う担当領域21には、物が置かれており、自律ロボット11が迂回してタスクを実行する必要があるのでスペック情報に含まれる単位時間あたりのタスク処理量では実行できないことが想定される。また、自律ロボットには個体差があり、たとえ担当領域21に物が置かれていない場合でも、スペック情報に含まれる単位時間あたりのタスク処理量では実行できないことも想定される。そのため、実際にタスクを実行する際の単位時間当たりのタスク処理量は、スペック情報の単位時間当たりのタスク処理量と異なる値となる。
(他ロボット情報の詳細)
他ロボット情報1152は、他の自律ロボットに関する情報を含み、自律ロボット11が他の自律ロボットから受信した情報に基づいて、記憶部115に記憶される情報を含む。
他ロボット情報1152は、例えば図4に示すように、他の自律ロボット毎に、当該他の自律ロボットについてのロボット固有情報、位置情報、タスク終了予定時刻、未タスク領域情報、および単位時間当たりのタスク実行量を含む。本実施の形態では、他ロボット情報1152は、自律ロボット12、13、14のそれぞれについてのロボット固有情報、位置情報、タスク終了予定時刻、未タスク領域情報、および単位時間当たりのタスク実行量を含んでいる。
なお、他ロボット情報1152が含む情報としては、上記の例に限らない。自律ロボット11が他の自律ロボットと協調するために必要な情報として、自律ロボット11と他の自律ロボットとの距離情報、および、他の自律ロボットのタスクの進捗に関する情報を含んでいればよい。例えば、他ロボット情報1152は、他の自律ロボット毎に、ロボット固有情報、位置情報、タスク終了予定時刻を含むとしてもよい。また、位置情報に代えて、自律ロボット11と他の自律ロボットまでの距離を示す距離情報を含むとしてもよい。距離情報は、自律ロボット11の位置情報と他の自律ロボットの位置情報とを用いて算出できるからである。
また、他ロボット情報1152を構成する情報として単位時間当たりのタスク実行量を含めない場合でも、タスク開始時間とある時点までのタスクの所要時間とタスク済領域情報を含んでいればよい。他の自律ロボットの単位時間当たりのタスク実行量が必要になった場合は、これらの情報を用いて、単位時間当たりのタスク実行量を算出することができる。
(選択基準の詳細)
選択基準1153は、記憶部115に記憶されており、他ロボット情報1152に複数の他の自律ロボットの情報が含まれる場合に、支援対象の候補としてどの他の自律ロボットを選択するかを示す情報(選択基準)を示す。例えば、選択基準1153は、自律ロボット11(第1ロボット)が、通信可能である複数の他の自律ロボットであるロボット群のうち、制御部112で取得した残りタスクの量が最も大きい他の自律ロボット(第2ロボット)を、支援対象のロボットとして選択する旨を示すとしてもよい。また、選択基準1153は、支援対象のロボットを変更可能な回数である回数制限を示す回数情報を含むとしてもよい。
本実施の形態では、選択基準1153は、タスク終了予定時刻が最も遅い時刻の自律ロボットを支援対象の候補に選択する旨(選択基準)を示しているとして説明を行う。この選択基準により、自身のタスクを完了した自律ロボット11が、記憶部115に記憶する複数の他の自律ロボットの情報のうち、タスク終了予定時刻が最も遅い時刻の他の自律ロボットを支援することができる。それにより、ロボットシステム1全体のタスク終了予定時刻を早めることができる。
なお、選択基準1153は、ロボットシステム1に要求される内容によって異なってくるため、動的に設定できるとしてもよい。それによって、ロボットシステム1に求められる要求に応じて選択基準1153に含まれる情報を変更することが可能となるので、自律ロボット11が他の自律ロボットとより協調してタスクを実行することが可能になる。
また、選択基準1153は、上記の例の場合に限定されない。
例えば、選択基準1153は、自律ロボットが割り当てられているタスクに優先度が付与されている場合、優先度の高いタスクを有する他の自律ロボットを優先して支援対象の候補として選択する旨を示していてもよい。これにより、自律ロボット11は、優先度が高いタスクを有する他の自律ロボットを優先的に支援することができるので、優先度が高いタスクを早く完了させることが可能となる。
また、例えば、選択基準1153は、自律ロボット11との間の距離が最も小さい他の自律ロボットを支援対象の候補として選択する旨を示していてもよい。これにより、自律ロボット11は、支援に向かうのに要する移動時間を最小にすることができるので、自律ロボット11のタスク実行稼働率を高めることが可能となる。
また、例えば、選択基準1153は、自律ロボット11が支援をすることで、最も早くタスクが完了する他の自律ロボットを選択する旨を示していてもよい。これにより、自律ロボット11は、記憶部115の他ロボット情報に含まれる他の自律ロボットのうち、自律ロボット11が支援した場合に最も早くタスクが完了する他の自律ロボットを選択するので、より早い時間にタスクを完了する他の自律ロボットを増やすことが可能となる。つまり、この選択基準によれば、支援に行くことが可能な自律ロボットをより早く増やすことが可能となる。
図5は、図4に示す他ロボット情報1152の一例を示す図である。
図5は、図1に示す状況において、自律ロボット11が通信範囲311にいる他の自律ロボット12、13、14と通信して、それぞれから受信した情報に基づき、記憶部115に記憶された他ロボット情報1152の一例が示されている。なお、図1には、上述したように自律ロボット11が自身に割り当てられたタスクを完了した時の状況が一例として示されている。ここで、自律ロボット11が自身に割り当てられたタスクを完了した時の時刻を13:30:00とし、このときの自律ロボット11の位置情報を原点すなわち(0,0)としている。
[自律ロボットの動作]
次に、以上のように構成された自律ロボット11の動作の概要について説明する。
図6は、実施の形態1に係る自律ロボット11の動作を説明するためのフローチャートである。
まず、自律ロボット11は、自身に割り当てられたタスクが完了した場合(S1)、支援対象ロボットの選択処理を行う(S2)。より具体的には、複数の自律ロボットうちの第1ロボットである自律ロボット11は、自律ロボット11(第1ロボット)に割り当てられた担当領域21(第1担当領域)に対するタスクを完了した場合、複数の自律ロボットのうち、自律ロボット11(第1ロボット)と通信可能である当該第1ロボット以外の複数の自律ロボットであるロボット群の中から支援対象のロボットを選択する選択処理を行う。
次に、自律ロボット11は、選択した支援対象ロボットの担当領域に移動を開始する(S3)。より具体的には、自律ロボット11(第1ロボット)は、S2の選択処理により選択した支援対象のロボットである第2ロボットに割り当てられた第2担当領域に移動を開始する。
次に、自律ロボット11は、支援対象ロボットを変更するか否かを判定する(S4)。より具体的には、自律ロボット11(第1ロボット)は、第2担当領域への移動中に、複数の自律ロボットのうち第3ロボットと新たに通信可能になった場合、支援対象のロボットを第3ロボットに変更するか否かを判定する。
S4おいて、自律ロボット11は、支援対象ロボットを変更すると判定した場合(S4でYes)、支援対象ロボットを変更し(S5)、変更した支援対象ロボットの担当領域に移動を開始する(S6)。より具体的には、自律ロボット11(第1ロボット)は、支援対象のロボットを第2ロボットから第3ロボットに変更すると判定した場合、第3ロボットに割り当てられた第3担当領域に移動を開始する。そして、自律ロボット11は、S4の処理を再度行う。
一方、S4おいて、自律ロボット11は、支援対象ロボットを変更しないと判定した場合(S4でNo)、そのまま支援対象ロボットの担当領域(第2担当領域)に移動し、当該担当領域に到着すると(S7)、本処理を終了する。そして、自律ロボット11は、到着した支援ロボットの当該担当領域に対するタスクを支援する。
(選択処理の詳細)
次に、S2の選択処理の詳細について図を用いて説明する。
図7は、実施の形態1における自律ロボット11の選択処理の詳細の一例を説明するためのフローチャートである。図7には、自律ロボット11が支援対象の自律ロボットを選択するS2の選択処理の一例が示されている。
以下では、自律ロボット11が、自身に割り当てられたタスクを完了した時に他ロボット情報1152に基づいて、自律ロボット11の協調する相手、すなわち、自律ロボット11の支援対象となる他の自律ロボットを選択する選択処理の一具体例について説明する。
ここで、図1に示す状況で自律ロボット11がタスクを完了しており、自律ロボット11が自身に割り当てられたタスクの完了時の時刻は13:30:00、自律ロボット11の位置情報(0,0)とする。また、記憶部115には、図4に示す他ロボット情報が記憶されているとし、自律ロボット11のスペック情報に自律ロボット11の移動速度10m/minが含まれているとする。自律ロボット11は、自身に割り当てられた担当領域21のタスクを完了した時に、支援対象のロボットを選択する選択処理を開始する。
まず、自律ロボット11は、通信可能な他の自律ロボットから他ロボットの情報を取得する(S201)。本実施の形態では、自律ロボット11は、図1に示すように自身の通信範囲311に存在する他の自律ロボット12、13、14それぞれと通信を行い、他の自律ロボット12、13、14それぞれから、ロボット固有情報やスペック情報を含むロボット固有情報と、タスク関する情報であるタスク情報と、自律ロボットの位置情報を受信する。自律ロボット11は、他の自律ロボットから受信した情報に基づき、例えば図4に示すようにロボット固有情報、位置情報、タスク終了予定時刻、未タスク領域情報、および単位時間当たりのタスク実行量を含む他ロボット情報1152を記憶部115に記憶する。
なお、本実施の形態では、自律ロボット11は、他の自律ロボットから他の自律ロボット自身の情報を取得するとしているが、それに限らない。自律ロボット11は、他の自律ロボットが保有する別の自律ロボットの情報も併せて取得するとしてもよい。この場合、自律ロボット11は、より多くの他の自律ロボットの情報を取得することができるので、支援対象の自律ロボットをより適切に選択することが可能となる。
次に、自律ロボット11は、記憶部115に他の自律ロボットの情報が存在するかどうかを判定する(S202)。なお、この処理は、自律ロボット11が、他の自律ロボットからの情報を取得できた否かを判定している。
S202において、記憶部115に他の自律ロボットの情報が存在しない場合(S202でNo)、支援対象となる他の自律ロボットはないと判定し(S203)、処理を終了する。ここで、記憶部115に他の自律ロボットの情報が存在しない場合とは、S201の処理で、自律ロボット11が、他の自律ロボットからの情報を取得できず、他の自律ロボットの情報を保有していない場合に該当する。
一方、S202において、記憶部115に他の自律ロボットの情報が存在する場合(S202でYes)、S204の処理に進む。本実施の形態では、S201において、自律ロボット11が他の自律ロボットからの情報を取得し、記憶部115に他の自律ロボットの情報を記憶している場合、支援対象の候補となる自律ロボットがあると判定する。
そして、自律ロボット11は、S201〜S213において、支援対象の候補となる他の自律ロボットを選び、支援対象として適切かどうかを判定するための処理を開始する。本実施の形態では、自律ロボット11は、図4に示すとおり、他の自律ロボット12、13、14の情報を有するので、この中から支援対象の候補となる自律ロボットを選び、その支援対象の候補となる自律ロボットが支援対象として適切かどうかを判断するための処理を開始する。
まず、S204において、自律ロボット11は、位置測定部117を用いて自律ロボット11の現在の位置情報を取得する。本実施の形態では、自律ロボット11は、タスクを完了した時点の位置情報は(0、0)であるので、位置測定部117を用いて自律ロボット11の位置情報(0、0)を取得する。
次に、S205において、自律ロボット11は、記憶部115から、選択基準1153に適合したタスク終了予定時刻が最も遅いロボットを抽出する。本実施の形態では、まず、自律ロボット11は、支援対象の候補となる他の自律ロボットの情報を記憶部115の他ロボット情報1152から取得する。次いで、自律ロボット11は、記憶部115の他ロボット情報1152に複数の他の自律ロボットの情報を含んでいるので、選択基準1153に従って、支援対象の候補となる他の自律ロボットを抽出する。ここで、選択基準1153は、上述したように、タスク終了予定時刻が最も遅い時刻の他の自律ロボットを支援対象の候補に選択する旨を示している。そのため、自律ロボット11は、この選択基準1153に従って、図4に示す記憶部115の他ロボット情報1152から、タスク終了予定時刻が最も遅い他の自律ロボットである自律ロボット14の情報を抽出する。
次に、S206において、自律ロボット11は、抽出した他の自律ロボットの位置情報を取得する。本実施の形態では、自律ロボット11は、S205において抽出した自律ロボット14の他ロボット情報から、図5に示すような自律ロボット14の位置情報(30、40)を取得する。
次に、S207において、自律ロボット11は、自身と抽出した他の自律ロボットとの距離を算出し、移動時間を算出する。本実施の形態では、自律ロボット11は、S204で取得した自律ロボット11の位置情報(0、0)とS206で抽出した自律ロボット14の位置情報(30、40)とにより、三平方の定理を用いて移動距離50mを算出する。そして、自律ロボット11は、算出した移動距離50mを自律ロボット11のスペック情報に含まれる移動速度10m/minで割ることにより、移動時間5minを算出する。
次に、S208において、自律ロボット11は、移動後における抽出した他の自律ロボットの残タスクを取得する。本実施の形態では、まず、自律ロボット11は、S205で抽出した自律ロボット14もしくは自律ロボット14の担当領域に移動するのに要した移動時間に自律ロボット14が実行する移動時間タスク量を算出する。ここで、自律ロボット11は、図5より、自律ロボット14の単位時間当たりのタスク量は、1/minであり、S207で算出した移動時間は5minであるので、それらの値を乗算して、移動時間タスク量5を算出する。次いで、自律ロボット11は、移動時間後の自律ロボット14の残タスク量を算出する。ここで、自律ロボット11が移動する前の自律ロボット14の残タスク量、すなわち、未タスク領域は、図5より、36である。また、自律ロボット14の移動時間タスク量は5である。したがって、自律ロボット11は、自律ロボット11の移動完了時の自律ロボット14の残タスク量を、自律ロボット11の移動前の自律ロボット14の残タスク量36から、自律ロボット11が移動中に自律ロボット14が実行するタスク量である移動時間タスク量5を引くことで31と算出することができる。
次に、S209において、自律ロボット11は、残タスクが存在するか否かを判定する。本実施の形態では、自律ロボット11は、移動後の自律ロボット14の残タスクが、0より大きいかどうかを判定する。この判定処理は、自律ロボット11が自律ロボット14に支援に向かう移動中に自律ロボット14のタスクが完了しているかどうかを判定するものである。
S209において、自律ロボット11は、残タスク量が0以下すなわち存在しない場合(S209でNo)、記憶部115の他ロボット情報1152に、別の他の自律ロボットの情報が存在するかどうかを判定する(S210)。ここで、残タスク量が0以下の場合とは、自律ロボット11が支援に向かう移動中に支援対象の自律ロボットのタスクが完了する場合に該当するため、自律ロボット11は、当該支援対象の自立ロボットの支援は不要と判定する。なお、S210において、記憶部115の他ロボット情報1152に別の他の自律ロボットの情報が存在しない場合(S210でYes)、自律ロボット11は、支援対象となる他の自律ロボットはないと判定し(S212)、処理を終了する。一方、S210において、記憶部115の他ロボット情報1152に別の他の自律ロボットの情報が存在する場合(S210でNo)、別の他の自律ロボットの情報のうち、タスク終了予定時刻が最も遅い他の自律ロボットを抽出して(S211)、S206の処理に進む。
一方、S209において、残タスク量が0より大きい場合(S209でYes)、自律ロボット11は、抽出した他の自律ロボットを支援対象として決定する(S213)。本実施の形態では、自律ロボット11は、自律ロボット14の残タスク量が36であり0より大きいので、自律ロボット14等に到着した時(移動完了後)に、自律ロボット14に未タスク領域が存在すると判定する。このようにして、自律ロボット11は、自律ロボット14が支援対象の他の自律ロボットとして適切であると判定することができる。
次に、自律ロボット11は、支援対象として選択した他の自律ロボットにその旨を通知する(S214)。
本実施の形態では、自律ロボット11は、支援対象の自律ロボット14を選択すると、自律ロボット14と協調して、自律ロボット14のタスクを実行するために、自律ロボット14に向かって移動を開始する。その際、自律ロボット11は、自律ロボット14に対して、支援に行く旨の情報を通知する。
これにより、自律ロボット14は、自律ロボット11が支援に来てくれることが認識でき、現在のタスク終了予定時間より早くタスクを完了できることを認識できる。また、自律ロボット14は、別の自律ロボットからタスクに関する情報を要求されたときに、その別の自律ロボットに対して、自律ロボット11が支援に来るので予定より早くタスクを完了する旨を含む情報を提供することができる。それによって、別の自律ロボットは、自律ロボット14から受信した情報を考慮に入れて支援対象の自律ロボットを選択することができる。すなわち、別の自律ロボットは自律ロボット14から受信した情報に基づいてより適切に支援対象の自律ロボットを選択することができるので、ロボットシステム1全体として、自律ロボットの協調をより適切に機能させることができる。
また、自律ロボット11が自律ロボット14に対して、支援に行く旨の情報を通知する場合、自律ロボット14は、さらに、自律ロボット11が自律ロボット14に向かう途中において、自律ロボット11に対して、支援してもらう担当領域を決定して通知するとしてもよい。これにより、自律ロボット11は、自律ロボット14の現在の位置に向かうことなく、自律ロボット11が担当する自律ロボット14の担当領域に直接向かうことが可能になる。また、自律ロボット11、自身が担当する自律ロボット14の担当領域をどのような経路で廻るかを事前に生成することが可能になる。
なお、S213は、自律ロボット11の移動の際に行われるとしたがそれに限らない。自律ロボットが他の自律ロボットを支援対象として決定した際に行うとしてもよい。また、自律ロボット11は、S213を行わないとしてもよい。
また、S213で自律ロボット11が通知する情報には、自律ロボット11が支援した場合のタスク終了予定時刻を含むとしてもよい。自律ロボット11が支援した場合のタスク終了予定時刻は、例えば、S208で算出した残タスク量を自律ロボット11および自律ロボット14の2台で実施したときの所要時間と、自律ロボット11の自律ロボット14等に到着する予定時刻とを用いて、当該予定時刻から所要時間経過した時刻を算出することで算出することができる。
また、自律ロボット11が、タスク終了予定時刻を算出する場合に限らず、自律ロボット14がタスク終了予定時刻を算出するとしてもよい。
また、自律ロボット11は、支援対象の自律ロボット14に向かう移動中にある他の自律ロボットの担当領域のタスクを実行するとしてもよい。例えば、自律ロボット11が支援対象の自律ロボット14に向かって移動する移動経路に、別の自律ロボットの未タスク領域がある場合、自律ロボット11は当該未タスク領域のタスクを実行しながら移動するとしてもよい。これにより、別の自律ロボットは、自身(別の自律ロボット)の未タスク領域のタスクが実行されるので、自身(別の自律ロボット)のタスク量が減り、より早くタスクを完了することができる。
以上の選択処理により、自律ロボット11は、自身に割り当てられた担当領域21のタスクを完了した後に、他の自律ロボット12、13、14と通信して得た情報に基づいて、自律ロボット12、13、14のいずれかを支援対象の自律ロボットとして選択することができる。これにより、自律ロボット11は、選択処理により選択した支援対象の自律ロボットのタスクの一部を支援することが可能となる。
(変更処理の詳細)
次に、図6のS4に示される変更処理の詳細について図を用いて説明する。
図8は、実施の形態1に係る自律ロボット11が支援対象の自律ロボットに向かう移動中に新たに他の自律ロボットを検出した状況を概念的に示す図である。図8には、一例として自律ロボット11が、自律ロボット14に向かう移動中に新たに自律ロボット16を検出した状況が示されている。
自律ロボット11は、上述したように、自身に割り当てられた担当領域21のタスクを完了した後、通信範囲312にいる自律ロボット12、13、14のそれぞれから受信した情報に基づき、支援対象となる自律ロボットを選択する選択処理を行う。そして、自律ロボット11は、選択処理により選択した他の自律ロボットを支援するために移動を開始する。自律ロボット11は、この移動に伴って、自律ロボット11の通信範囲も移動するため、これまで通信可能であった他の自律ロボットと通信ができなくなったり、新たな他の自律ロボットと通信ができるようになったりする。
以下では、図8に示すように、自律ロボット11は、当該移動に伴い、新しく通信可能になった自律ロボット16から取得した情報も考慮に入れて、支援対象の自律ロボットを変更するか否かを判定する変更処理を行う。以下それについて説明する。
図9は、実施の形態1における自律ロボット11の変更処理の詳細の一例を説明するためのフローチャートである。図9には、自律ロボット11が支援対象の自律ロボットに向かう移動中に新たに他の自律ロボットを検出し、S4の変更処理を行う場合の一例が示されている。
まず、自律ロボット11は、検出した新たな自律ロボットから他ロボット情報を取得する(S401)。本実施の形態では、自律ロボット11は、自律ロボット14に支援に向かう移動中に新たに自律ロボット16を検出する。すると、自律ロボット11は、自律ロボット16と通信して、他ロボット情報すなわち自律ロボット16のロボット識別情報やスペック情報を含むロボット固有情報と、タスク関する情報であるタスク情報と、自律ロボット16の位置情報とを受信する。
次に、自律ロボット11は、新たな自律ロボットのタスク終了予定時刻(時刻1)と支援対象の自律ロボットのタスク終了予定時刻(時刻2)との比較を行う(S402)。本実施の形態では、自律ロボット11は、取得した自律ロボット16のタスク終了予定時刻と記憶部115にある他ロボット情報1152に記憶している支援対象の自律ロボット14のタスク終了予定時刻との比較を行う。
なお、自律ロボット11は、支援対象の自律ロボット14への移動中に、自律ロボット14のタスク進捗状況が変化している可能性もある。そのため、自律ロボット11は、自律ロボット14と通信が可能である場合、自律ロボット14と通信して最新の他ロボット情報を取得するとしてもよい。これにより、自律ロボット11は、より適切に支援対象の変更処理を行うことが可能になる。
また、実施の形態1では、選択基準1153には、タスク終了予定時刻が最も遅い時刻の自律ロボットを支援対象に選択する旨が示されているので、タスク終了予定時刻というパラメータの比較を行う。なお、選択基準1153に示される選択基準の内容が異なれば、S402において用いられるパラメータは異なる。例えば、選択基準1153に、優先度の高いタスクを行っている自律ロボットを支援対象として選択する旨が示されている場合、タスクの優先度をパラメータとして用いればよい。また、例えば、選択基準1153に、自律ロボット間の距離が最も近い自律ロボットを支援対象として選択する旨が示されている場合、自律ロボット間の距離をパラメータとして用いればよい。
S402において、時刻1が時刻2より時間的に前の場合、自律ロボット11は、支援対象の変更は不要と判定し(S403)、処理を終了する。本実施の形態では、自律ロボット11は、新たに検出した自律ロボット16のタスク終了予定時刻(時刻1)が、自律ロボット14のタスク終了予定時刻(時刻2)より時間的に前であれば、自律ロボット14の方が支援対象として適切であり、支援対象の変更は不要と判定して、処理を終了する。そして、自律ロボット11は、予定どおり、支援対象の自律ロボット14に向かう移動を再開するまたは続ける。
一方、S402において、時刻1が時刻2より時間的に後の場合、自律ロボット11は、支援対象の変更は不要と判定し(S403)、S504の処理に進む。
本実施の形態では、自律ロボット11は、新たに検出した自律ロボット16のタスク終了予定時刻(時刻1)が、支援対象の自律ロボット14のタスク終了予定時刻(時刻1)より時間的に後であれば、自律ロボット16の方が、支援対象として適切である可能性があると判定する。そして、自律ロボット11は、後述するS404〜S409において、支援対象として自律ロボット16の方が適切かどうかを判定するための処理(検証処理)を行う。この検証処理では、自律ロボット11が自律ロボット16に移動するとした場合に、自律ロボット16もしくは自律ロボット16の担当領域26に到着した時点で自律ロボット16のタスクが完了しているか否かを判定する。そして、当該到着した時点で自律ロボット16のタスクが完了している場合は、自律ロボット16への支援は不要と判定する。一方、当該到着した時点で自律ロボット16のタスクが完了しない場合は、自律ロボット16は支援対象として適切であると判定する。以下具体的に説明する。
まず、S404において、自律ロボット11は、位置測定部117を用いて自律ロボット11の現在の位置情報を取得する。
次に、S405において、自律ロボット11は、自身と新たな自律ロボットとの距離を算出し、移動時間を算出する。本実施の形態では、自律ロボット11は、S401で取得した自律ロボット16の位置情報と、S404で取得した自律ロボット11の位置情報とにより、自律ロボット11および自律ロボット16の間の移動距離を算出する。そして、自律ロボット11は、算出した移動距離を自身のスペック情報に含まれる移動速度で割ることで、自律ロボット11が自律ロボット16へ移動した場合の移動時間を算出する。この処理は、S207で説明したのと同様であるため詳細な説明は省略する。
次に、S406において、自律ロボット11は、移動時間後における新たな自律ロボットの残タスクを取得する。本実施の形態では、まず、自律ロボット11は、S405で算出した移動時間中に自律ロボット16が実行する移動時間タスク量を算出する。次いで、自律ロボット11は、移動時間後の自律ロボット16の残タスク量を算出する。これらの処理は、S208で説明したのと同様であるため詳細な説明は省略する。
次に、S407において、自律ロボット11は、新たな自律ロボットの残タスクが存在するか否かを判定する。本実施の形態では、自律ロボット11は、移動時間後の自律ロボット16の残タスク量が、0より大きいかどうかを判定する。
S407において、自律ロボット11は、新たな自律ロボットの残タスク量が0以下であった場合(S407でNo)、支援対象の変更は不要と判定する(S408)。本実施の形態では、自律ロボット11は、残タスク量が0以下であった場合、自律ロボット11が自律ロボット16に向かう移動中に、自律ロボット16のタスクが完了すると判定できるので、自律ロボット16への支援は不要と判定する。そして、支援対象の自律ロボットの変更は行わず、予定どおり、自律ロボット14に向かって移動を再開するまたは続ける。
一方、S407において、残タスク量が0より大きい場合(S407でYes)、自律ロボット11は、支援対象を新たな自律ロボットに変更する(S409)。本実施の形態では、自律ロボット11は、自律ロボット16の残タスク量が0より大きい場合、自律ロボット16に等に到着した時(移動完了後)にも、自律ロボット16に未タスク領域が存在すると判定する。このようにして、自律ロボット11は、支援対象として自律ロボット16の方が適切であると判定する。そして、自律ロボット11は、支援対象を自律ロボット14から自律ロボット16に変更する。
次に、自律ロボット11は、変更前の支援対象の自律ロボットと変更後の支援対象の自律ロボットにその旨を通知する(S410)。
本実施の形態では、S409において、自律ロボット11は、支援対象の自律ロボットを自律ロボット16に変更すると、変更した支援対象の自律ロボット16に向かって移動を開始する。その際、自律ロボット11は、支援対象となった自律ロボット16に対して、支援に行く旨の情報を通知し、自律ロボット14に対して、支援に行かない旨の情報を通知する。
なお、S410は、自律ロボット11の移動の際に行われるとしたがそれに限らない。自律ロボットが支援対象を変更した際に行うとしてもよい。また、自律ロボット11は、S410を行わないとしてもよい。
以上の変更処理より、自律ロボット11は、選択処理で選択した支援対象に向かう移動中に新たに通信可能となった自律ロボットがある場合、当該自律ロボットからの情報に基づき、支援対象の変更処理を行うことができる。これにより、自律ロボット11は、ロボットシステム1においてより適切な自律ロボットを支援対象に選択することが可能となるので、より効率的に他の自律ロボットと連携してタスクを実行することが可能となる。
[効果等]
以上、本実施の形態によれば、割り当てられた担当領域に対するタスクを完了した第1ロボットは、支援対象である第2ロボットに向かう移動時に新たに通信可能となった第3ロボットからの情報に基づき、支援対象の変更処理を行うことができるので、より適切なロボットを支援対象に選択することができる。これにより、通信可能な他の自律ロボットが動的に変化する場合でも自律ロボットがより多くの他の自律ロボットと協調してタスクを実行することができる移動制御方法および移動制御装置を実現することができる。
このように、本実施の形態の移動制御方法等によれば、自律ロボットが自身のタスク完了後に通信範囲に存在する他の自律ロボットの情報に基づき支援対象の自律ロボットを選択し、選択した支援対象の自律ロボットに向けて移動する際に、新しく通信可能となった自律ロボットからの情報に基づいて、支援対象の見直しを行い、より適切な支援対象の自律ロボットを選択することができる。それにより、ロボットシステムにおいてより効率的に他の自律ロボットと連携してタスクを実行させることができる。
また、本実施の形態によれば、自律ロボット11は、選択処理後(S214)において、選択した支援対象の自律ロボットにその旨を通知する。これにより、支援対象の自律ロボットは、自律ロボット11から支援に来てくれる旨の通知を受け、自律ロボット11の支援によりタスクが早く完了する旨を周囲の自律ロボットに対して発信することができる。そのため、支援対象の自律ロボットの周囲の自律ロボットはそれぞれ、支援対象の自律ロボットが発信した情報を考慮に入れて、支援対象の自律ロボットを選択できるので、ロボットシステム1においてより効率的に自律ロボット同士が連携してタスクを実行することができる。
また、本実施の形態によれば、自律ロボット11は、変更処理後(S409)において、変更前の支援対象の自律ロボットと変更後の支援対象の自律ロボットにその旨を通知する。これにより、変更前の支援対象の自律ロボットは、周囲の自律ロボットに正確な情報を発信できるので、周囲の自律ロボットはそれぞれ、正確な情報に基づいて、支援対象の自律ロボットを選択できる。
仮に、自律ロボット11が、変更前の支援対象の自律ロボットに支援対象が変更になった旨の通知をしない場合、変更前の支援対象の自律ロボットは、自律ロボット11が支援に来なくなったことを知らない状態となる。そのため、変更前の支援対象の自律ロボットは、周囲の自律ロボットに対して、自律ロボット11が支援に来なくなった旨を示す情報を発信できないので、周囲の自律ロボットは、自律ロボット14に自律ロボット11が支援に来るものだと間違った認識をした状態で支援対象の自律ロボットの選択を行うことになる。この場合、変更前の支援対象の自律ロボットは、自律ロボット11だけでなく、周囲の自律ロボットからも支援が来ない状態になってしまい、変更前の支援対象の自律ロボットのタスク完了が遅れてしまう可能性がある。
また、本実施の形態によれば、自律ロボット11の変更処理の回数を制限することができるので、自律ロボット11が、支援対象の自律ロボットの変更を何度も行うことにより、支援対象の自律ロボット等に到着するまでに多くの時間を要し、実際にタスクの支援を行う時間が少なくなってしまうことを抑制することができる。
(実施の形態2)
実施の形態1では、選択処理の際に通信可能な複数の他の自律ロボット中から支援対象の自律ロボットを選択する場合について説明したがそれに限らない。実施の形態2では、自律ロボット11Bが自身のタスクの実行中および実行後に、通信可能であった他の自律ロボットの中から支援対象の自律ロボットを選択する場合についての一例について説明する。
[自律ロボットの機能構成]
以下では、実施の形態1と同様に代表して自律ロボット11Bの機能構成について説明する。
図10は、実施の形態1における自律ロボット11Bの機能構成の一例を示すブロック図である。図2と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図10に示す自律ロボット11Bは、図2に示す自律ロボット11に対して、制御部112Bと記憶部115Bの構成が異なる。
[制御部112B]
図11は、図10に示す制御部の詳細構成の一例を示すブロック図である。図3と同様の要素には同一の符号を付しており、詳細な説明は省略する。
制御部112Bは、図11に示すように、選択処理部1121B、移動制御部1122B、変更判定部1123および通知制御部1124を備える。制御部112Bは、図3に示す制御部112に対して選択処理部1121Bおよび移動制御部1122Bの構成が異なる。
選択処理部1121Bは、選択処理部1121の機能を備える。選択処理部1121Bは、さらに、記憶部115Bに記憶されている複数の他の自律ロボットに関する情報のうちの少なくとも一を、担当領域21(第1担当領域)に対するタスクを完了した時点を基準とした所定期間外に受信していた場合、移動制御部1122Bに指示して自律ロボット11B(第1ロボット)に担当領域21内(第1担当領域内)を移動させる。
また、選択処理部1121Bは、自律ロボット11B(第1ロボット)が担当領域21内(第1担当領域内)を移動中に当該少なくとも一に対応する他の自律ロボットと通信可能となったときに、当該他の自律ロボットの他ロボット情報を受信し、当該他の自律ロボットを含むロボット群の各ロボットの残りタスクを取得する。
移動制御部1122Bは、移動制御部1122の機能を備える。移動制御部1122Bは、さらに、選択処理部1121Bの指示に従って、自律ロボット11B(第1ロボット)に担当領域21内(第1担当領域内)を移動させる。本実施の形態では、移動制御部1122Bは、当該他の自律ロボットの他ロボット情報を受信したときの自律ロボット11B(第1ロボット)の受信位置情報が示す位置に向けて、自律ロボット11B(第1ロボット)に担当領域21内(第1担当領域内)を移動させる。
[記憶部115B]
次に、自律ロボット11Bの記憶部115Bに記憶される情報について、図12を用いて説明する。
図12は、実施の形態2における自律ロボットの記憶部に記憶される情報を概念的に示す図である。図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
記憶部115Bは、実施の形態1と同様に、自ロボット情報1151、選択基準1153、および、他の自律ロボットから送信された情報に基づく他ロボット情報1152Bを記憶する。
記憶部115Bは、図4に示す記憶部115に対して、他ロボット情報1152Bの含む情報が異なる。また、記憶部115Bは、自律ロボット11B(第1ロボット)が担当領域21(第1担当領域)に対するタスクを実行中に受信した他の自律ロボットそれぞれの他ロボット情報を記憶する点で、図4に示す記憶部115と異なる。つまり、本実施の形態では、自律ロボット11Bは、自身の担当領域21のタスクを実行中に、通信範囲内の他の自律ロボットと定期的に通信しており、取得した他の自律ロボットの他ロボット情報を記憶する。
(他ロボット情報の詳細)
他ロボット情報1152Bには、図12に示すように、図4に示す他ロボット情報1152が含む情報に加え、自ロボット受信位置と、通信状況とを示す情報が含まれている。
自ロボット受信位置は、自律ロボット11B(第1ロボット)が担当領域21(第1担当領域)に対するタスクを実行中に他の自律ロボットそれぞれの他ロボット情報を受信した際の位置(受信位置)を示す情報である。本実施の形態では、自ロボット受信位置は、自律ロボット11Bが、他の自律ロボットから情報を受信したときに位置測定部117より取得した自身の位置情報であり、他ロボット情報に含まれている。このようにして、自ロボット受信位置とそれに対応する他ロボット情報とが紐付けられている。通信状況は、他の自律ロボットそれぞれの現在の通信状況を示す情報である。
なお、他ロボット情報1152Bには、単位時間あたりのタスク実行量が含まれていないが、含むとしてもよい。また、他ロボット情報1152Bには、さらに、自律ロボット11B(第1ロボット)が他の自律ロボットそれぞれの他ロボット情報を受信した時刻を示す時間情報を含むとしてもよい。
図13は、図12に示す他ロボット情報1152Bの一例を示す図である。図5と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図13には、記憶部115Bに、他ロボット情報1152Bとして、自律ロボット12B、13B、14Bの情報が記憶されていることが示されている。また、図13には、現在、自律ロボット11Bは、自律ロボット13B、14Bとは通信可能であるが自律ロボット12Bとは通信不可であることが示されている。なお、自律ロボット12Bの他ロボット情報は、自律ロボット11Bが、以前、自律ロボット12Bと通信可能だったときに受信したものである。
以上のように構成される自律ロボット11Bは、自身のタスクが完了すると、現在通信可能な他の自律ロボットの他ロボット情報と、タスク実行中に記憶しておいた他の自律ロボットの情報のうち、現在通信不可の他の自律ロボットと再度通信することで取得した他ロボット情報とに基づいて、支援対象となる他の自律ロボットの選択を行う。
[自律ロボットの動作]
次に、以上のように構成された自律ロボット11Bの動作の概要について説明する。
図14Aおよび図14Bは、実施の形態2におけるロボットシステムを構成する自律ロボットの状況を概念的に示す図である。図14Aは、自律ロボット11B〜14Bが自身に割り当てられた担当領域21〜24のタスクを実行している状況の一例を示している。図14Bは、自律ロボット11Bがタスク完了した時の状況の一例を示している。図1と同じ構成要素については同じ符号を用い、説明を省略する。なお、図14Aの通信範囲313Bおよび図14Bの通信範囲314Bは、自律ロボット11Bが通信可能な通信範囲を示している。
図14Aに示すようにタスク実行中の自律ロボット11Bは、通信範囲313B内にいる自律ロボット12B、13Bと通信が可能である。しかし、図14Bに示すようにタスク完了時の自律ロボット11Bは、通信範囲314B内にいる自律ロボット13B、14Bと通信が可能であるものの、図14Aにおいて通信可能であった自律ロボット12Bと通信が不可となっている。
自律ロボット11Bは、現在通信可能な自律ロボット12Bおよび13Bの他ロボット情報だけを用いて支援対象となる他の自律ロボットを選択してもよいが、より適切に支援対象となる他の自律ロボットを選択するためにきる限り多くの他の自律ロボットの他ロボット情報を用いる方がよい。そのため、本実施の形態では、S2に示す選択処理において、自律ロボット11Bは、現在通信不可の他の自律ロボットについても、再度、通信を試みて、他ロボット情報を取得して支援対象の他の自律ロボットを選択する。
(選択処理の詳細)
次に、本実施の形態における選択処理の詳細について図15を用いて説明する。
図15は、実施の形態2における自律ロボットの選択処理の詳細の一例を説明するためのフローチャートである。図15には、自律ロボット11Bがタスクを完了した時に支援対象の他の自律ロボットを選択する選択処理の一例が示されている。
まず、自律ロボット11Bは、自身に割り当てられたタスクを完了すると、現在、通信可能な他の自律ロボットそれぞれと通信を行い、それぞれの他ロボット情報を取得する(S2011)。
本実施の形態では、自律ロボット11Bは、自律ロボット13Bおよび14Bのそれぞれと通信を行い、他ロボット情報1152Bを取得し、記憶部115Bに記憶する。取得する他ロボット情報1152Bは、例えば、自律ロボット13Bおよび14Bのロボット識別情報やスペック情報を含むロボット固有情報、タスク関する情報であるタスク情報、自ロボット受信位置などである。なお、自律ロボット11Bが、通信可能な他の自律ロボットと通信をした際、既に当該他の自律ロボットの他ロボット情報を記憶していた場合には、記憶している他ロボット情報を更新する。
次に、自律ロボット11Bは、記憶部115Bを確認して、現在通信不可である他の自律ロボットの他ロボット情報が存在するかどうかを判定する(S2012)。
S2012において、現在通信不可である他の自律ロボットの他ロボット情報が存在しない場合は(S2012でNo)、現在通信可能な他の自律ロボットの他ロボット情報に基づいて、支援対象となる自律ロボットを選択する(S2019)。なお、S2019では、図7で説明したS202〜S214と同様の処理を行う。S202〜S214については上述したのでここでの説明は省略する。
一方、S2012において、現在通信不可である他の自律ロボットの他ロボット情報が存在する場合は(S2012でYes)、現在通信不可である他の自律ロボットと最後に通信した自ロボット受信位置を取得する(S2013)。本実施の形態では、自律ロボット11Bは、現在通信不可である他の自律ロボットと再度通信を試みるために、現在通信不可である他の自律ロボットの他ロボット情報に含まれる(紐付けられた)自ロボット受信位置を抽出する。図13および図14Bに示す例では、自律ロボット11Bは、現在通信不可である自律ロボット12の他ロボット情報の自ロボット受信位置を抽出する。
次に、自律ロボット11Bは、S2013で取得した自ロボット受信位置に向かって移動を開始する(S2014)。本実施の形態では、自律ロボット11Bは、S2013で抽出した、現在通信不可である自律ロボット12Bと以前に通信した位置である自ロボット受信位置に向かって、移動を開始する。
次に、自律ロボット11Bは、移動しながら、現在通信不可である他の自律ロボットを検出したかを判定する(S2015)。本実施の形態では、自律ロボット11Bは、移動を開始してから目的地であるS2013で取得した自ロボット受信位置に到達するまで、定期的に、現在通信不可である自律ロボット12Bを検出したかを判定する。
S2015において、自律ロボット11Bが、現在通信不可である他の自律ロボットを検出した場合(S2015でYes)、検出した他の自律ロボットから他ロボット情報を取得する(S2016)。本実施の形態では、自律ロボット11Bは、自律ロボット12Bを検出すると、検出した自律ロボット12Bと通信して、自律ロボット12Bの他ロボット情報を取得する。
そして、自律ロボット11Bは、現在通信可能な他の自律ロボットの他ロボット情報より支援対象となる自律ロボットを選択する(S2017)。本実施の形態では、自律ロボット11Bは、S2016で取得した他ロボット情報と、S2011で取得し、かつ、現在通信可能な自律ロボット12Bの他ロボット情報とに基づき、支援対象となる自律ロボットを選択する。なお、S2017では、図7で説明したS202〜S214と同様の処理を行う。S202〜S214については上述したのでここでの説明は省略する。
一方、S2015およびS2018において、自律ロボット11Bが、現在通信不可である他の自律ロボットを検出できないままで自ロボット受信位置が示す位置(目的地)に到着した場合(S2018でYes)、現在通信不可である他のロボットとの通信を断念し、S2011で取得し、かつ、現在通信可能な他の自律ロボットの他ロボット情報に基づいて、支援対象となる自律ロボットの選択する(S2019)。
以上のようにして、自律ロボット11Bは、自身のタスクを完了した後に、現在通信可能な他の自律ロボットの他ロボット情報と、タスク実行中に記憶していた他ロボット情報のうち、現在通信不可の他の自律ロボットと再度通信して取得した他ロボット情報とに基づいて、支援対象となる自律ロボットの選択処理を行う。
なお、S2011において、自律ロボット11Bは、通信可能な他の自律ロボットと通信をした際、既に当該他の自律ロボットの他ロボット情報を記憶していた場合には、記憶している他ロボット情報を更新すると説明したがそれに限らない。自律ロボット11Bは、取得した他ロボット情報を記憶している他ロボット情報に順次蓄積していくとしてもよい。この場合は、他の自律ロボットと通信可であった位置情報(自ロボット受信位置)を順次蓄積することができる。これにより、自律ロボット11Bは、現在通信不可の他の自律ロボットと最後に通信できた位置情報(自ロボット受信位置)で、通信を試みたが通信が成功しなかった場合には、さらに、最後から次に通信できた位置情報(自ロボット受信位置)で、再度、現在通信不可の他の自律ロボットと通信を試みることが可能となる。
また、S2013において、現在通信不可である他の自律ロボットが複数存在する場合、自律ロボット11Bは、それぞれの他ロボット情報に紐付けられた自ロボット位置情報を抽出して、全てを効率よく移動できるように経路生成をするとしてもよい。これにより、自律ロボット11Bは、移動時間を短縮することができるので、現在通信不可である自律ロボットとの通信の再開をより早くすることができる。
また、S2013において、自律ロボット11Bは、現在通信不可である他の自律ロボットが多数存在する場合、そのうちの一部の他の自律ロボットを選択して移動するとしてもよい。現在通信不可である他の自律ロボットが多数存在する場合、全ての自律ロボットと通信をするために移動するのは多くの移動時間がかかり、他の自律ロボットを支援するという本来の目的とは別のことに時間をかけてしまうことになるからである。この場合、自律ロボット11Bは、例えば、自身の現在の位置から所定距離内にある自ロボット受信位置の他の自律ロボットだけを選択するとしてもよい。また、自律ロボット11Bは、自身の現在の位置から所定期間内に移動可能な自ロボット受信位置の他の自律ロボットだけを選択するとしてもよい。また、自律ロボット11Bの総移動距離、もしくは、総移動時間が所定の範囲内になるものを選択するとしてもよいし、自律ロボット11Bとの通信が途絶えた時間が所定期間内になるものを選択するとしてもよい。
このような構成をとることで、自律ロボット11Bが現在通信不可である他ロボットと再度通信して他の自律ロボットから情報を取得するために費やす時間を必要以上にかけなくてすむようになり、本来の目的である自律ロボットの支援に対して多くの時間をかけることが可能となる。
また、S2014〜S2015の間の移動中において、自律ロボット11Bが、目的の他の自律ロボットとは異なる新しい自律ロボットを検出する場合も考えられる。この場合には、自律ロボット11Bは、検出した新しい自律ロボットから他ロボット情報を取得して、記憶部115Bに記憶して、S2017またはS2019において支援対象の自律ロボットを選択処理するとしてもよい。これにより、支援対象の自律ロボットを、より多くの他ロボット情報を用いて選択することができる。
[効果等]
以上、本実施の形態によれば、現在通信可能な他の自律ロボットの他ロボット情報だけでなく、タスク実行中に記憶しておいた他の自律ロボットの他ロボット情報のうち、現在通信不可の他の自律ロボットについても、再度、通信を試みて、他ロボット情報を取得し、支援対象となる自律ロボットの選択処理を行うことができる。
これにより、通信可能な他の自律ロボットが動的に変化する場合でも自律ロボットがより多くの他の自律ロボットと協調してタスクを実行することができる移動制御方法および移動制御装置を実現することができる。
具体的には、本実施の形態では、自律ロボット11Bが、現在通信不可の他の自律ロボットの情報を再度取得するため、現在通信不可の他の自律ロボットと、再度、通信可能となるように移動する。すなわち、自律ロボット11Bは、自身のタスクの実行中に、他の自律ロボットから他ロボット情報を受信すると、自身の位置情報を取得し、受信した他ロボット情報と取得した自身の位置情報(自ロボット受信位置)とを紐付けて記憶する。これにより、自律ロボットは、他の自律ロボットと通信可能であったときの位置情報(自ロボット受信位置)を残しておくことができる。自律ロボット11Bは、現在通信不可である他の自律ロボットと再度通信を行いたい場合は、現在通信不可である他の自律ロボットと以前通信可能であったときの位置情報(自ロボット受信位置)を抽出して、そこに向かって移動することにより、再度、通信不可だった他の自律ロボットと通信を試みることができる。
なお、他の自律ロボットも移動しているため、自律ロボット11Bは、抽出した位置情報(自ロボット受信位置)に移動したとしても、通信できない場合も考えられる。つまり、現在通信不可の他の自律ロボットとの通信が途切れてから多くの時間が経過している場合、現在通信不可の他の自律ロボットが大きく移動している可能性がある。そのため、自律ロボット11Bは、抽出した位置情報(自ロボット受信位置)に移動しても、当該他の自律ロボットと通信できない可能性は高い。
しかしながら、現在通信不可の他の自律ロボットとの通信が途切れてからあまり時間が経過していない場合だと、当該他の自律ロボットはあまり移動していないと考えられるので、自律ロボット11Bは、抽出した位置情報(自ロボット受信位置)に移動すると通信できる可能性は高い。
したがって、本実施の形態の移動制御方法等は、自律ロボット11Bと現在通信不可の他の自律ロボットとの通信が途切れてからあまり時間が経過していない場合に、特に効果を発揮すると考えられる。
(変形例1)
本実施の形態では、自律ロボット11Bが、他の自律ロボットに対して、他の自律ロボットの他ロボット情報を要求するとして説明したが、必ずしもその構成に限定するものではない。
例えば、他の自律ロボットそれぞれが、定期的に自身の他ロボット情報を発信するとし、自律ロボット11Bの通信範囲にいる他の自律ロボットそれぞれから他ロボット情報を受信するとしてもよい。
(変形例2)
本実施の形態では、自律ロボット11Bは、自身のタスク実行中に、通信範囲内の他の自律ロボットと定期的に通信し、他ロボット情報を受信するとして説明したがそれに限らない。
例えば、自律ロボット11Bが、新しく他の自律ロボットを検出したときにのみ、検出した他の自律ロボットと通信して、その他ロボット情報を取得するとしてもよい。自律ロボット11Bが、自身の担当領域21のタスク実行中に通信範囲にいる他の自律ロボットから他ロボット情報を取得できればどのような構成でもよい。
(変形例3)
本実施の形態では、自律ロボット11Bは、タスク完了時に他の自律ロボットから他ロボット情報を取得したとき、そのときの自ロボットの位置を含めるとしたが、含めなくてもよい。
自律ロボット11Bは、他ロボット情報と自ロボットの位置情報の紐付けは、タスク実行中に他の自律ロボットから情報を受信したときには必ず行う必要がある。一方で、タスク完了時に他の自律ロボットから取得した他ロボット情報に自ロボットの位置(自ロボット受信位置)を紐付ける必要はないからである。
(変形例4)
本実施の形態では、自律ロボット11Bは、自身のタスクの実行中に、他の自律ロボットから他ロボット情報を受信すると、自身の位置情報を取得し、受信した他の自律ロボットの情報と取得した自身の位置情報とを紐付けて記憶するとして説明したがそれに限らない。
自律ロボット11Bが、他の自律ロボットと通信可能であった時点の位置情報を保持し、参照できれば構成は問わない。
(変形例5)
本実施の形態では、自律ロボット11Bは、自身の担当領域21のタスクを実行中に、通信範囲にいる他の自律ロボットと定期的に通信し、当該他の自律ロボットの情報を取得して記憶するとして説明したがそれに限らない。
例えば、自律ロボット11Bは、タスク完了後に支援対象の他の自律ロボットを選択する際に、自身のタスク完了の直前に自身の通信範囲にいる他の自律ロボットから受信した他ロボット情報を保有している場合がある。この場合、自律ロボット11Bは、タスク完了後に当該他の自律ロボットから新しく他ロボット情報を取得しないとしてもよい。そして、自律ロボット11Bは、タスク完了の直前に受信した他ロボット情報を最新の情報とみなして、その他ロボット情報に基づいて、支援対象の自律ロボットの選択処理を行うとしてもよい。
これにより、自律ロボット11Bは、タスク完了の直前と直後の2回、当該他の自律ロボットから他ロボット情報を取得することを抑止することが可能である。タスク完了の直前と直後という短期間であるため、タスク完了の直前に当該他の自律ロボットから受信した情報とタスク完了の直後に当該他の自律ロボットから受信した他ロボット情報とが大きく異なる可能性は低いと考えられる。したがって、このようにしても、自律ロボット11Bは適切に支援対象の自律ロボットを選択することが可能と考えられる。
(変形例6)
本実施の形態では、自律ロボット11Bは、記憶部115Bに、現在通信不可である他の自律ロボットの他ロボット情報が存在すれば、その他ロボット情報に紐付けられた自ロボット受信位置に移動するとしてとして説明したがそれに限らない。
自律ロボット11Bは、現在通信不可である他の自律ロボットの他ロボット情報が存在する場合、自身の現在地と現在通信不可である他の自律ロボットの他ロボット情報に含まれる自ロボット受信位置と間の距離が所定距離内であれば移動を行うという判定処理を行うとしてもよい。他ロボット情報に紐付けられた自ロボット受信位置が自身の現在位置から遠くにある場合、移動に多くの時間がかかり、移動している間に通信を試みようとする当該他の自律ロボットが大きく移動してしまい当該自ロボット受信位置に移動しても通信できなくなる可能性が高いからである。
このように、本変形例によれば、自律ロボット11Bは、現在通信不可である他の自律ロボットとの通信の可能性が高い場合にのみ移動することができるので、移動しても当該他の自律ロボットと通信できる可能性が低い場合の無駄な移動を抑制することができる。
(変形例7)
なお、本実施の形態において、自律ロボット11Bは、現在通信不可である自律ロボット12と最後に通信した位置(自ロボット受信位置)に向かう途中で、現在通信可能であった他の自律ロボット13、14と通信不可になる場合も考えられる。
この場合、自律ロボット11Bは、支援対象の自律ロボットを選択する際に利用する現在通信可能である自律ロボット13、14の他ロボット情報が減ってしまうことになる。つまり、自律ロボット11Bは、現在通信不可である自律ロボット12と通信ができたとしても、移動中に通信不可となってしまった自律ロボット13、14の他ロボット情報を利用することができなくなるので、より適切に支援対象の自律ロボットを選択することができないことも考えられる。
そこで、自律ロボット11Bは、タスクを完了した時点で、現在通信可能な他の自律ロボット13、14の他ロボット情報だけを用いて、支援対象の自律ロボットを一旦仮決めするとしてもよい。そして、自律ロボット11Bは、現在通信不可である自律ロボット12と通信するために移動を開始し、自律ロボット12と通信が可能になったときに、通信可能になった自律ロボット12から他ロボット情報を取得するとしてもよい。
この場合、自律ロボット11Bは、自律ロボット12から他ロボット情報を取得した時点で、実施の形態1で説明した変更処理を行えばよい。
この構成により、自律ロボット11Bは、タスク終了した時点に通信可能であった自律ロボット13、14の他ロボット情報と、通信不可であった自律ロボット12と再度通信して得られた他ロボット情報とに基づいて、支援対象の自律ロボットを選択することが可能となる。
(実施の形態3)
本実施の形態では、自律ロボット11Cが自身のタスクの実行中および完了時に、通信可能であった他の自律ロボットの中から支援対象の自律ロボットを選択する場合について、実施の形態2とは別の一例について説明する。
実施の形態2では、自律ロボット11Bは、自身の担当領域のタスクの完了時に現在通信可能な他の自律ロボットの他ロボット情報と、現在通信不可である他の自律ロボットに対して再度通信を試みて取得した他ロボット情報とに基づき、支援対象のロボットを選択する場合の例について説明した。
本実施の形態では、自律ロボット11Cが、自身の担当領域のタスクの完了時に現在通信可能な他の自律ロボットのタスク情報と、現在通信不可である他の自律ロボットの現在のタスク進捗情報を推定した推定タスク進捗情報とに基づいて、支援対象のロボットを選択する場合の例について説明する。
[自律ロボットの機能構成]
以下では、実施の形態1および2と同様に代表して自律ロボット11Cの機能構成について説明する。
図16は、実施の形態3における自律ロボットの機能構成の一例を示すブロック図である。図2、図10と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図16に示す自律ロボット11Cは、図2に示す自律ロボット11に対して、制御部112Cおよび記憶部115Cの構成が異なる。
[制御部112C]
図17は、図16に示す制御部の詳細構成の一例を示すブロック図である。図3と同様の要素には同一の符号を付しており、詳細な説明は省略する。
制御部112Cは、図17に示すように、選択処理部1121C、移動制御部1122、変更判定部1123および通知制御部1124を備える。制御部112Cは、図3に示す制御部112に対して選択処理部1121Cの構成が異なる。
選択処理部1121Cは、選択処理部1121の機能を備える。選択処理部1121Cは、さらに、自律ロボット11C(第1ロボット)と現在通信可能および過去通信可能であった自律ロボット11C(第1ロボット)以外の複数のロボットであるロボット群の中から支援対象のロボットを選択する。
本実施の形態では、選択処理部1121Cは、自律ロボット11C(第1ロボット)と過去通信可能であった複数の他の自律ロボットのうちの少なくとも一の他ロボット情報と、自律ロボット11C(第1ロボット)の現在位置とを用いて、自律ロボット11C(第1ロボット)が当該少なくとも一の他の自律ロボットそれぞれまで移動した時点での残りタスクを推定する。このようにして、選択処理部1121Cは、当該少なくとも一の自律ロボットを含むロボット群の各ロボットの残りタスクを取得する。ここで、上記の他ロボット情報は記憶部115Cに記憶されている。
なお、現在通信不可の他の自律ロボットの情報の現在のタスクや残りタスクを推定するためには、現在通信不可の他の自律ロボットから最後に受信した他ロボット情報と、最後にその情報を受信した受信時刻とがあればよい。これらの情報があれば、現在通信不可の他の自律ロボットから最後に受信した他ロボット情報を用いて、最後に他ロボット情報を受信した受信時刻から現在時刻までの時間経過における現在通信不可の他の自律ロボットが実行するタスク量を推定することができるからである。このようにして、自律ロボット11Cは、現在通信不可の他の自律ロボットの現在のタスク進捗を推定することができる。
[記憶部115C]
次に、自律ロボット11Cの記憶部115Cに記憶される情報について、図18を用いて説明する。
図18は、実施の形態3における自律ロボットの記憶部に記憶される情報を概念的に示す図である。図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
記憶部115Cは、実施の形態1と同様に、自ロボット情報1151、選択基準1153、および、他の自律ロボットから送信された情報に基づく他ロボット情報1152Cを記憶する。
記憶部115Cは、図4に示す記憶部115に対して、他ロボット情報1152Cの含む情報が異なり、自律ロボット11C(第1ロボット)が担当領域21(第1担当領域)に対するタスクを実行中に受信した他の自律ロボットそれぞれの他ロボット情報を記憶する点で異なる。本実施の形態では、自律ロボット11Cは、自身の担当領域21のタスクを実行中に、通信範囲内の他の自律ロボットと定期的に通信しており、取得した他の自律ロボットの他ロボット情報を記憶する。
(他ロボット情報の詳細)
他ロボット情報1152Cには、図18に示すように、図4に示す他ロボット情報1152が含む情報に加え、受信時刻と、通信状況とを示す情報が含まれている。通信状況は、他の自律ロボットそれぞれの現在の通信状況を示す情報である。受信時刻は、自律ロボット11Bが、他の自律ロボットから他ロボット情報を受信した時刻を示す情報であり、時間計測部116より取得する。受信時刻は、他ロボット情報に含まれるなど、他ロボット情報に紐付けて記憶される。
図19は、図18に示す他ロボット情報の一例を示す図である。図5と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図19には、記憶部115Cに、他ロボット情報1152Cとして、自律ロボット12C、13C、14Cの情報が記憶されていることが示されている。また、図19には、現在、自律ロボット11Cは自律ロボット13C、14Cとは通信可能であるが自律ロボット12Cとは通信不可であることが示されている。ここで、図19に示す自律ロボット12Cの他ロボット情報は、自律ロボット11Cが、以前、自律ロボット12Cと通信可能だったときに受信したものである。
以上のように構成される自律ロボット11Cは、現在通信可能な自律ロボットの他ロボット情報だけでなく、タスク実行中に記憶しておいた他の自律ロボットの他ロボット情報のうち、現在通信不可の他の自律ロボットの他ロボット情報に基づき推定した現在のタスク進捗を考慮して、支援対象となる他の自律ロボットの選択を行う。
[自律ロボットの動作]
次に、以上のように構成された自律ロボット11Cの動作の概要について説明する。
図20Aおよび図20Bは、実施の形態3におけるロボットシステムを構成する自律ロボットの状況を概念的に示す図である。図20Aは、自律ロボット11C〜14Cが、自身の担当領域のタスクを実行している状況の一例を示している。図20Bは、自律ロボット11Cがタスク完了した時の状況の一例を示している。図1と同じ構成要素については同じ符号を用い、説明を省略する。
図20Aの通信範囲313Cおよび図20Bの通信範囲314Cは、自律ロボット11Cが通信可能な通信範囲を示している。図20Aに示すようにタスク実行中の自律ロボット11Cは、通信範囲313C内にいる他の自律ロボット12C、13Cと通信が可能である。しかし、図20Bに示すようにタスク完了時の自律ロボット11Cは、通信範囲314C内にいる自律ロボット13C、14Cと通信が可能であるものの、図20Aにおいて通信可能であった自律ロボット12Cと通信が不可となっている。
そのため、図20Bに示す自律ロボット11Cは、自身に割り当てられた担当領域21のタスクが完了すると、現在通信可能な自律ロボット13C、14Cの他ロボット情報と、タスク実行中に記憶していた他の自律ロボットの情報のうち、現在通信不可の他の自律ロボットである自律ロボット12Cの他ロボット情報に基づき、支援対象となる自律ロボットの選択を行う。
(選択処理の詳細)
次に、本実施の形態における選択処理の詳細について図21を用いて説明する。
図21は、実施の形態3における自律ロボットの選択処理の詳細の一例を説明するためのフローチャートである。図21には、自律ロボット11Cがタスクを完了した時に支援対象の他の自律ロボットを選択する選択処理の一例が示されている。
まず、自律ロボット11Cは、自身に割り当てられたタスクを完了すると、現在、通信可能な他の自律ロボットそれぞれと通信を行い、それぞれの他ロボット情報を取得する(S2021)。
本実施の形態では、自律ロボット11Cは、自律ロボット13C、14Cと通信を行い、他ロボット情報1152Cを取得し、記憶部115Cに記憶する。自律ロボット11Cが取得する他ロボット情報1152Cは、例えば、自律ロボット13Cおよび14Cの識別情報やスペック情報を含むロボット固有情報と、タスク関する情報であるタスク情報、受信時刻などである。なお、自律ロボット11Cは、タスク完了時において他ロボット情報1152Cとして受信時刻を取得しなくてもよい。他の自律ロボットから受信したロボット固有情報やタスク情報と受信時刻との紐付けは、タスク実行中にされていれば足りるので、タスク完了時の受信時刻は必ずしも必要はないからである。
次に、自律ロボット11Cは、記憶部115Cを確認して、記憶部115Cに現在通信不可である他の自律ロボットの他ロボット情報が存在するかどうかを判定する(S2022)。
S2022において、記憶部115Cに現在通信不可である他の自律ロボットの他ロボット情報が存在しない場合は(S2022でNo)、現在通信可能な他の自律ロボットの他ロボット情報に基づいて、支援対象のロボットを選択する(S2023)。なお、S2022では、図7で説明したS202〜S214と同様の処理を行う。S202〜S214については上述したのでここでの説明は省略する。
一方、S2022において、記憶部115Cに現在通信不可である他の自律ロボットの他ロボット情報が存在する場合は(S2022でYes)、現在通信不可である他の自律ロボットと最後に通信した受信時刻を取得する(S2024)。本実施の形態では、自律ロボット11Cは、記憶部115Cから、現在通信不可である自律ロボット12Cの他ロボット情報に含まれる受信時刻を抽出する。
次に、自律ロボット11Cは、現在の時刻を取得する(S2025)。本実施の形態では、自律ロボット11Cは、時間計測部116から、現在の時刻情報を取得する。
次に、自律ロボット11Cは、S2026〜S2027において現在通信不可である他の自律ロボットの現在のタスク進捗情報を推定する処理を行う。
S2026において、現在通信不可である他の自律ロボットの最後の受信時刻から現在の時刻までのタスク処理量を推定する(S2026)。本実施の形態では、まず、自律ロボット11Cは、S2024で抽出した受信時刻と、S2025で取得した現在の時刻情報とを用いて、当該受信時刻から現在の時刻までの時間を算出する。次いで、自律ロボット11Cは、記憶部115Cの他ロボット情報1152Cから、現在通信不可である自律ロボット12Cの単位時間当たりのタスク処理量の情報を抽出する。そして、自律ロボット11Cは、抽出した単位時間当たりのタスク処理量と算出した当該時間とを乗算することにより、現在通信不可である自律ロボット12Cの当該時間におけるタスク処理量を推定する。
続いて、S2027において、自律ロボット11Cは、現在通信不可である他の自律ロボットの現在の残タスク量を推定する。なお、現在通信不可である他の自律ロボットの他ロボット情報が複数存在する場合は、他の自律ロボットそれぞれに対して現在の残タスク量を推定する。本実施の形態では、まず、自律ロボット11Cは、現在通信不可である自律ロボット12Cの他ロボット情報から未タスク領域情報を抽出する。次いで、自律ロボット11Cは、抽出した未タスク領域情報と、S2026で推定した当該時間におけるタスク処理量とを用いて、現在の残タスク量を推定する。
次に、自律ロボット11Cは、現在通信不可である他の自律ロボットに、残タスクが存在するかどうかを判定する(S2028)。本実施の形態では、自律ロボット11Cは、S2027で推定した、現在通信不可である自律ロボット12Cの現在の残タスク量から、当該自律ロボット12Cに、残タスクが存在するかどうかを判定する。
S2028において、残タスクが存在しない場合(S2028でNo)、S2021で取得し、かつ、現在通信可能な他の自律ロボットの他ロボット情報に基づいて、支援対象となる自律ロボットの選択する(S2029)。本実施の形態では、自律ロボット11Cは、S2027で推定した現在の残タスク量が、0より小さい場合、現在通信不可である自律ロボット12Cは、担当領域のタスクを完了しているとみなし、S2029に進む。なお、S2029では、図7で説明したS202〜S214と同様の処理を行う。S202〜S214については上述したのでここでの説明は省略する。
一方、S2028において、残タスクが存在する場合(S2028でYes)、現在通信可能な他の自律ロボットのタスク情報と、現在通信不可である他の自律ロボットの推定したタスク情報とにより、支援対象の自律ロボットを選択する(S2030)。本実施の形態では、自律ロボット11Cは、S2027で推定した現在の残タスク量が、0より大きい場合、現在通信不可である自律ロボット12Cに、未タスク領域が残っているとみなし、現在通信可能な自律ロボット13C、14の未タスク領域情報などのタスクに関する情報と、現在通信不可である自律ロボット12Cの推定した現在の残タスク量とを用いて、支援対象の自律ロボットを選択する。なお、S2030では、図7で説明したS202〜S214と同様の処理を行う。S202〜S214については上述したのでここでの説明は省略する。
以上のようにして、自律ロボット11Cは、自身の担当領域のタスクを完了した後に、現在通信可能な他の自律ロボットの他ロボット情報と、現在通信不可の他の自律ロボットの推定タスク進捗情報とに基づいて、支援対象となる自律ロボットの選択を行う。この推定タスク進捗情報は、上述したように、自律ロボット11Cのタスク実行中に記憶していた現在通信不可の他の自律ロボットの他ロボット情報に用いて推定した現在通信不可の当該他の自律ロボットの現在のタスクの進捗情報である。
[効果等]
以上、本実施の形態によれば、通信不可時の他の自律ロボットのタスク進捗を推定するために、自律ロボット11Cは、自身のタスク実行中に他の自律ロボットから情報を受信したとき、その時刻情報を含む他ロボット情報を記憶する。具体的には、自律ロボット11Cは、自身のタスク実行中に、他の自律ロボットから他ロボット情報を受信すると、時間計測部116で取得した時刻を示す受信時刻を含めた他ロボット情報を記憶する。
これにより、自律ロボット11Cは、現在通信可能な他の自律ロボットの他ロボット情報だけでなく、タスク実行中に記憶しておいた現在通信不可の他の自律ロボットの他ロボット情報を用いて推定した当該他の自律ロボットの推定タスク進捗情報も考慮して、支援対象となる自律ロボットの選択を行うことができる。
それにより、自律ロボット11Cは、より多くの他ロボット情報を用いて支援対象となる自律ロボットを選択することもができるので、より適切な支援対象となる自律ロボットを選択できる。
(変形例1)
本実施の形態では、自律ロボット11Cは、通信不可である他の自律ロボットのタスク進捗情報を推定するとして説明したがそれに限らない。例えば、自律ロボット11Cは、通信不可である他の自律ロボットの位置情報について推定するとしてもよい。位置情報を推定する方法は、例えば、自律ロボット11Cが、他の自律ロボットから他ロボット情報を取得する際に、当該他の自律ロボットの担当領域のタスク実行に関する経路情報も取得して記憶すればよい。これにより、自律ロボット11Cは、自身のタスク完了時に、取得した経路情報に基づいて、通信不可である当該他の自律ロボットの位置を推定することができる。例えば、自律ロボット11Cは、通信不可である当該他の自律ロボットのスペック情報に示される移動速度に基づき、当該他の自律ロボットから最後に情報を取得した受信時刻から現在までの距離を算出することができる。そして、自律ロボット11Cは、当該他の自律ロボットから最後に情報をしたときの当該他の自律ロボット位置情報から、経路情報に基づき、算出した距離だけ移動させた位置を当該他の自律ロボットの現在位置と推定することができる。
このように、本変形例によれば、自律ロボット11Cは、通信不可である他の自律ロボットのタスク進捗情報と位置情報とを推定することができるので、より適切に支援対象となる自律ロボットを選択することができる。
(変形例2)
本実施の形態では、自律ロボット11Cは、現在通信不可の他の自律ロボットの現在のタスク進捗を推定するとして説明した。しかし、この推定したタスク進捗の正確性は、現在通信不可の自律ロボットとの最後の受信時刻から現在時刻までの時間により変化する。
つまり、自律ロボット11Cが現在通信不可の当該他の自律ロボットとの最後の受信時刻から現在時間までの時間が小さければ、推定したタスク進捗は、実際のタスク進捗と大きく差が出ることはなく正確であると考えられる。一方で、自律ロボット11Cが現在通信不可の当該他の自律ロボットとの最後の受信時刻から現在時間までの時間が大きければ、推定したタスク進捗は、実際のタスク進捗と大きな差が出る可能性があり正確性は低いと考えられる。そのため、自律ロボット11Cは、当該時間が大きいときに推定したタスク進捗を用いて、支援対象の自律ロボットの選択処理を行うと、支援対象としては不適切である自律ロボットを選択してしまう場合も考えられる。
そこで、自律ロボット11Cは、当該時間が小さく、推定するタスク進捗の正確性が高いと推定できるときに、現在通信不可の他の自律ロボットのタスク進捗を推定するとしてもよい。具体的には、自律ロボット11Cは、当該時間が所定期間内となる場合についてのみ、現在通信不可の他の自律ロボットの現在のタスク進捗を推定するとしてもよい。
これにより、自律ロボット11Cは、推定するタスク進捗が正確である可能性が高い場合のみ利用することができるので、自律ロボット11Cの選択する支援対象の自律ロボットが、実際には、支援対象としては不適切であるといった状況になることを抑制することが可能となる。
(変形例3)
なお、上記変形例2の場合に限らず、自律ロボット11Cは、通信不可の他の自律ロボットと最後に受信した受信時刻から現在時刻までの時間について、時間が小さい順に優先度を付与し、優先度の高い時間の受信時刻を有する他の自律ロボットから順に、支援対象の自律ロボットとして選択してもよい。
変形例2では、推定するタスク進捗が正確である可能性が高い場合のみ利用する。一方、本変形例では、推定するタスク進捗の情報が正確である可能性が高くない場合でも優先度の高い順であれば用いることができる。
つまり、自律ロボット11Cは、変形例2の方法では支援対象となる他の自律ロボットを選択できなかった場合、アイドル状態になってしまうおそれがある。一方、本変形例の方法では、自律ロボット11Cは、推定するタスク進捗が正確である可能性が高くない場合でも用いることができるので、アイドル状態となる可能性をより低くすることができる。
(変形例4)
また、本実施の形態では、自律ロボット11Cは、自身の担当領域のタスクを完了した後に、現在通信可能な他の自律ロボットの他ロボット情報と、現在通信不可の他の自律ロボットの推定タスク進捗情報とに基づいて、支援対象となる自律ロボットの選択を行うとして説明したがそれに限らない。実施の形態2で説明した方法と組み合わせて用いてもよい。この場合、自律ロボット11Cは、自身のタスク実行中に、他の自律ロボットから受信した他ロボット情報に、さらに自身の位置情報を含めて記憶すればよい。
なお、自律ロボット11Cと現在通信不可である他の自律ロボットの他ロボット情報を再度取得する処理と現在のタスクの進捗を推定する処理をどのような状況により使い分けるかについては、システム仕様により様々な方法が考えられる。
例えば、自律ロボット11Cは、自身のタスク完了時から現在通信不可である自律ロボットとの最後の受信時刻までの時間が所定期間内であるかを判定してもよい。所定期間内であれば、現在通信不可である自律ロボットと最後に通信可能であった位置(場所)まで移動して、当該現在通信不可である自律ロボットとの通信を行い、所定期間外であれば、当該現在通信不可である自律ロボットの現在のタスク状況を推定するとしてもよい。
なぜなら、自律ロボット11Cと現在通信不可の他の自律ロボットとの通信が不可になってからの時間経過が大きい場合、その時間経過の間に当該現在通信不可の他の自律ロボットが大きく移動していることが考えられるからである。つまり、当該時間経過が大きい場合、たとえ、自律ロボット11Cが、当該他のロボットとの通信を試みて移動しても、通信できない可能性が高いと考えられるからである。
このようにして、自律ロボット11Cは、当該時間経過が大きい場合の移動を抑制することができるだけでなく、移動しない代わりに推定した当該現在通信不可の他の自律ロボットの現在のタスク進捗を支援対象となる自律ロボットの選択処理に利用することができる。
なお、本変形例では、当該時間が所定期間内か否かを判定しているが、それに限らない。自律ロボット11Cは、自身のタスク完了時の位置から現在通信不可である他の自律ロボットと最後に通信可能であった位置までの距離が所定距離内か否かを判定するとしてもよい。この場合も同様の効果が得られる。
また、本変形例において、自律ロボット11Cは、自身のタスク完了時、現在通信不可である他の自律ロボットの現在のタスク進捗の推定を行い、推定したタスク進捗に基づきタスクが未だ残っていると推定された他の自律ロボットに対してのみ、移動を行うとしてもよい。タスクが完了した他の自律ロボットは、タスク完了時に、他の自律ロボットに支援のため移動していると考えられるからである。
これにより、自律ロボット11Cは、既にタスクが完了したと推定される他の自律ロボットに対する移動を抑制することが可能である。
また、本変形例において、自律ロボット11Cは、自身のタスク完了時、現在通信可である全ての他の自律ロボットとの通信を維持できる範囲で、現在通信不可である他の自律ロボットとの通信のために移動を行うとしてもよい。この場合、自律ロボット11Cは、現在通信可である全ての当該他の自律ロボットとの通信が維持できなくなったとき、現在通信不可である当該他の自律ロボットへの移動を中断して、現在のタスクの推定を行うとしてもよい。
これにより、自律ロボット11Cは、現在通信可である全ての他の自律ロボットの他ロボット情報については、確実に利用できるので、現在通信可である自律ロボットの情報が減ってしまうということを防止することができる。
(実施の形態4)
実施の形態4では、自律ロボット11Dが自身のタスクの完了時に通信可能な他の自律ロボットの中から、支援対象となる自律ロボットを選択することができなかった場合の例について説明する。以下では、自律ロボット11Dが、タスクの完了後、自律的に移動して、新たに他の自律ロボットの他ロボット情報を取得し、支援対象となる自律ロボットを選択する場合の例について説明する。
[自律ロボットの機能構成]
以下では、実施の形態1〜3と同様に代表して自律ロボット11Dの機能構成について説明する。
図22は、実施の形態4における自律ロボットの機能構成の一例を示すブロック図である。図2と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図22に示す自律ロボット11Dは、図2に示す自律ロボット11に対して、制御部112Dの構成が異なる。
[制御部112D]
図23は、図22に示す制御部の詳細構成の一例を示すブロック図である。図3と同様の要素には同一の符号を付しており、詳細な説明は省略する。
制御部112Dは、図23に示すように、選択処理部1121D、移動制御部1122D、変更判定部1123および通知制御部1124を備える。制御部112Dは、図3に示す制御部112に対して選択処理部1121Dと移動制御部1122Dとの構成が異なる。
選択処理部1121Dは、選択処理部1121の機能を備える。選択処理部1121Dは、取得した他の自律ロボットの残りタスクが存在しない場合やタスク完了時に通信可能な他の自律ロボットがいない場合など、担当領域21(第1担当領域)に対するタスクを完了した場合、かつ、担当領域21(第1担当領域)の中に存在する自律ロボット11D(第1ロボット)がロボット群の中から支援対象ロボットを選択できないとき、移動制御部1122Dに指示して自律ロボット11D(第1ロボット)を担当領域21の外(第1担当領域の外)に移動させる。
また、選択処理部1121Dは、自律ロボット11D(第1ロボット)が移動中にロボットシステムを構成する複数の他の自律ロボットのうちタスク完了時に通信可能であったロボット群以外の他の自律ロボットと通信可能となったときに、当該ロボット群以外の他の自律ロボットから現在位置を示す位置情報およびタスクの進捗状況を示すタスク情報を含む他ロボット情報を受信する。
また、選択処理部1121Dは、自律ロボット11D(第1ロボット)が、自律ロボット11D(第1ロボット)の現在位置とで受信した当該ロボット群以外の他の自律ロボットの他ロボット情報とを用いて、自律ロボット11D(第1ロボット)が当該ロボット群以外の他の自律ロボットの現在位置まで移動した時点での残りタスクを取得する。また、選択処理部1121Dは、取得した残りタスクに基づいて、当該ロボット群以外のロボットを支援対象のロボットとして選択する。
移動制御部1122Dは、移動制御部1122の機能を備える。移動制御部1122Dは、さらに、選択処理部1121Dの指示に従って、自律ロボット11D(第1ロボット)に担当領域21(第1担当領域)の外に移動させる。
[自律ロボットの動作]
次に、以上のように構成された自律ロボット11Dの動作の概要について説明する。
図24Aおよび図24Bは、実施の形態4におけるロボットシステムを構成する自律ロボットの状況を概念的に示す図である。図1と同じ構成要素については同じ符号を用い、説明を省略する。
図24Aには、自律ロボット11Dが自身の担当領域21のタスクを完了した時の状況の一例が示されている。通信範囲315は、自律ロボット11Dが通信可能な通信範囲を示しており、図24Aに示す自律ロボット11Dは、通信範囲315内の自律ロボット12D、13D、14Dと通信が可能である。図24Bには、自律ロボット11Dが自身の担当領域21の外に移動して、新しく他の自律ロボットを検出した状況の一例が概念的に示されている。図24Bに示す自律ロボット11Dは、通信範囲316内の自律ロボット12D、13D、14D、16Dと通信が可能である。
本実施の形態では、図24Aに示す自律ロボット11Dは、通信範囲315内にいる自律ロボット12、13、14と通信を行い受信したロボット固有情報や、タスク情報、位置情報などを含む他ロボット情報を用いて、支援対象となる自律ロボットを選択する選択処理を行う。この選択処理は、実施の形態1で説明した通りであるので、ここでの説明は省略する。
そして、図24Aに示す自律ロボット11Dは、選択処理を行った結果、自律ロボット12、13、14のいずれも支援不要であり、支援対象となる自律ロボットを選択することができないとする。
しかしながら、これは、図24Aに示す自律ロボット11Dが自身のタスクを完了した時点の位置において、通信領域内に存在する他の自律ロボットの他ロボット情報を用いて、支援対象となる自律ロボットの選択処理を行った結果に過ぎない。つまり、自律ロボット11Dは、当該位置と異なる位置に移動し、選択処理を行うことで、支援対象として適切な自律ロボットを選択できる可能性もある。
そのため、図24Aに示す自律ロボット11Dは、他の自律ロボットの情報を求めて、自身の担当領域21の外に移動する。そして、図24Bに示す自律ロボット11Dは、他の自律ロボット16を検出し、他の自律ロボット16の他ロボット情報を取得すると、再度、選択処理を行う。この選択処理は、実施の形態1で説明した通りであるので、ここでの説明は省略する。
このように、自律ロボット11Dは、タスク完了時の位置における通信領域内に存在する他の自律ロボットの他ロボット情報だけでなく、当該位置と異なる場所で新たに取得した他の自律ロボットの他ロボット情報を用いて、支援対象の自律ロボットを選択することができる。
なお、支援対象となる自律ロボットが選択することができない場合は、上記の例の場合に限らない。すなわち、1)他の自律ロボットのいずれとも通信ができなかったために他の自律ロボットの情報が全く取得できず選択処理自体ができなかった場合、2)他の自律ロボットの他ロボット情報は取得でき、選択処理を行ったが、取得できた他ロボット情報の他の自律ロボットのタスクは既に完了しており、支援不要である場合、3)他の自律ロボットの他ロボット情報は取得でき選択処理を行ったが、自律ロボット11Dが支援対象の候補となる他の自律ロボットに向かって移動する途中で、当該他の自律ロボットのタスクが完了すると判断した場合なども考えられる。
[効果等]
以上、本実施の形態によれば、通信可能な他の自律ロボットが動的に変化する場合でも自律ロボットがより多くの他の自律ロボットと協調してタスクを実行することができる移動制御方法および移動制御装置を実現できる。
より具体的には、自律ロボット11Dは、タスク完了後に支援対象となる自律ロボットの選択処理を行ったが、支援対象となる自律ロボットを選択できない場合がある。この場合、自律ロボット11Dは、自律的に移動して、新たに他の自律ロボットの他ロボット情報を取得し、選択処理を再度行う。これにより、自律ロボット11Dは、選択処理で支援対象となる自律ロボットを選択できない場合を抑制し、アイドル状態となるのを抑制することができる。
なお、実施の形態2および3と同様に、自律ロボット11Dは、自身のタスク実行中に通信可能だった他の自律ロボットの他ロボット情報を記憶しているとしてもよい。この場合、自律ロボット11Dは、自身の担当領域21内において、通信可能な他の自律ロボットの情報は、既に有していることになるので、他の自律ロボット以外の新たな他の自律ロボットの他ロボット情報を取得するために、自身の担当領域21の外部に移動すればよい。
これにより、自律ロボット11Dは、新たな他の自律ロボットと通信して他ロボット情報を取得することができる可能性がより高まる。そして、自律ロボット11Dは、新たに取得した他ロボット情報に基づいて、支援対象の自律ロボットを選択することが可能となる。
また、自律ロボット11Dは、担当領域21から最短移動距離で担当領域外に出られる方向に移動するとしてもよい。これにより、自律ロボット11Dは、より早く担当領域21外に出られるので、より早く担当領域21外で新たな他の自律ロボットの他ロボット情報を取得でき再度の選定処理を行うことができる。なお、自律ロボット11Dが担当領域21の外へ移動する際の移動方向の例はこの場合に限らない。その他の例を変形例として説明する。
(変形例1)
自律ロボット11Dは、他ロボット情報に含まれる位置情報を用いて、当該他ロボットの密度が少ない方向に移動するとしてもよい。
図24Aに示す自律ロボット12D〜14Dは、支援対象選定の際に、支援不要と判断されているので、当該自律ロボット12D〜14Dが存在する方向に向かって移動したとしても新たな他の自律ロボットに出会う可能性は低いと思われる。そのため、担当領域21外で、かつ、他の自律ロボットが存在ないと判断した担当領域のある方向に向かって移動する。この一例について図25を用いて説明する。
図25は、実施の形態4の変形例1における自律ロボットの担当領域外に移動する際の移動方向の一例を示す図である。
自律ロボット11Dは、例えば、さらに方位センサーを備え、図25に示すように4つの象限を設定するとする。そして、自律ロボット11Dは、各象限ごとに他の自律ロボット(自律ロボット12D〜14D)がそれぞれどこに含まれるかを判定し、他の自律ロボットの数が最も少ない象限に向かって移動する。
これにより、自律ロボット11Dより早く担当領域21外で新たな他の自律ロボットの他ロボット情報を取得でき再度の選定処理を行うことができる。
なお、移動方向は本変形例で示される場合に限らない。上述した場合と組み合わせるとしてもよい。すなわち、他の自律ロボットの数が最も少ない象限の方向のうち、担当領域21から最短移動距離で担当領域外に出られる最短移動距離となる方向を移動方向としてもよい。
(変形例2)
自律ロボット11Dは、他の自律ロボットからそれぞれの担当領域を示す情報を取得している場合は、当該他の自律ロボットの担当領域以外の領域に向かって移動するとしてもよい。なぜなら、選定処理の際に支援不要とされた他の自律ロボットの担当領域に向かって移動したとしても新たな他の自律ロボットに出会う可能性は低いと考えられるからである。
そのため、自律ロボット11Dの担当領域21外で、かつ、他の自律ロボットの担当領域以外の領域に向かって移動すればよい。
これにより、自律ロボット11Dは、より早く担当領域21外で新たな他の自律ロボットの他ロボット情報を取得でき再度の選定処理を行うことができる。
なお、移動方向は本変形例で示される場合に限らない。上述した場合と組み合わせるとしてもよい。すなわち、他の自律ロボットの担当領域以外の領域のうち、担当領域21から最短移動距離で担当領域外に出られる最短移動距離となる方向を移動方向としてもよい。
(変形例3)
自律ロボット11Dは、自身の担当領域21外へ移動後、再度の選択処理で支援対象が選択できなかった場合には、さらに、支援不要として選択されなかった他の自律ロボットの密度が少ない方向に移動するとしてもよい。
これにより、自律ロボット11Dは、より早く担当領域21外で新たな他の自律ロボットの他ロボット情報を取得でき再度の選定処理を行うことができる。
なお、自律ロボット11Dは、自身の担当領域21外に出た後は、支援対象として選択されなかった他の自律ロボットの担当領域を通らず(当該担当領域以外の領域を)移動するとしてもよい。
また、自身の担当領域21外に出た後の移動の仕方は、この場合に限らず、経路を決めて移動してもよいし、ランダムに移動してもよい。すなわち、どのようなものであってもよい。
(変形例4)
なお、自律ロボット11D〜19Dが掃除ロボットである場合、タスクである掃除が完了後、自分の担当領域に戻る必要がある。時間経過により、ゴミや埃が積もり、再度、掃除を行う必要が発生するからである。
この場合、例えば自律ロボット11Dは、自身の担当領域21外に支援対象となる他の自律ロボットを探索しに移動する際は、担当領域から遠くに離れすぎないように移動に制約を設けるとしてもよい。制約としては、1)担当領域外に出て移動開始してからの移動距離又は移動時間、2)担当領域境界線(任意の点でもよい)からの距離、3)バッテリ状態が所定の閾値、3)新規に検出する他の自律ロボット数などが考えられる。
これにより、自律ロボット11Dは、支援対象とする他の自律ロボットを探索する場合でも、自身の担当領域21から、遠くに離れすぎることがないようにすることが可能となる。
以上、本発明の一つまたは複数の態様に係る移動制御方法および移動制御装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
例えば、実施の形態4の変形例4で説明した制約を、実施の形態1〜3に適用してもよい。
また、上記の実施の形態では、自律ロボット11〜11Dを例に挙げて動作等を説明したが、それに限らない。他の自律ロボットも同様の最小構成を備え、同様の動作を行うことができる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
例えば実施の形態1〜4に係る自律ロボットの機能の一部又は全ては典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、実施の形態1〜に係る自律ロボットの機能の一部又は全てを、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
また、上記図6、図7、図9、図15及び図21に示す、各ステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、同様の効果が得られる範囲で上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。