本技術の一実施形態において、前述した移動型ロボットの状態指標は、移動型ロボットの姿勢、動作又は環境に関する少なくとも一つの指標を含むとよい。ここで、移動型ロボットの姿勢に関する指標とは、例えば、移動型ロボットのロール角、ピッチ角、ヨー角といった姿勢角である。移動型ロボットの動作に関する指標とは、例えば、移動型ロボットの移動の方向、移動の速度、移動の加速度、回転の方向、回転の角速度、回転の角加速度、往復運動の振幅、往復運動の周期、往復運動の周波数、発光の有無、発光の色、発光の強度、発光の頻度である。移動型ロボットの環境に関する指標とは、例えば、移動型ロボットが位置する環境の明るさ、色合い、温度である。また、移動型ロボットの環境に関する指標とは、所定の距離内に近接する他の移動型ロボットであってもよい。なお、移動型ロボットの状態指標が、移動型ロボットが位置する環境の温度である場合、ロボットシステムのカメラは、赤外線カメラであるとよい。
本技術の一実施形態において、移動型ロボットは、前述した状態指標を検出するセンサを有するとよい。この場合、センサによって検出される状態指標は、カメラによる撮影画像から推定し得るものであるとよい。これにより、識別装置は、センサによって検出された状態指標と撮影画像から推定された状態指標との一致度を定量的に求めることができる。
センサは、加速度センサとジャイロセンサの少なくとも一つを含むとよい。これらのセンサによると、例えば移動型ロボットの姿勢や動作に関する指標を正確に検出することができる。また、加速度センサ又はジャイロセンサによって検出される指標は、カメラによる撮影画像からも正確に推定しやすく、認識の精度を高めることができる。
前記したセンサは、光センサと温度センサの少なくとも一方を含むとよい。これらのセンサによると、移動型ロボットの周辺照度や周辺温度といった、移動型ロボットの環境に関する指標を検出することができる。なお、移動型ロボットが温度センサを有する場合、カメラは赤外線カメラであるとよい。一つの実施形態では、光センサは、移動型ロボットに搭載されたカメラであってもよい。
各々の移動型ロボットは、所定の距離内に近接する他の移動型ロボットと通信して、当該近接する他の移動型ロボットの識別子を取得するとよい。この場合、識別装置は、状態指標として、近接する他の移動型ロボットの識別子を取得するとよい。これにより、移動型ロボット同士の近接関係を把握することができる。そして、把握した移動型ロボットの近接関係を、撮影画像から推定される移動型ロボット同士の近接関係と比較することで、各々の移動型ロボットの識別子を特定することができる。
図面を参照して、実施例1のロボットシステム10について説明する。図1に示すように、ロボットシステム10は、複数の移動型ロボット12と、複数の移動型ロボット12を統制するための統制装置40を備える。一例ではあるが、本実施例における移動型ロボット12は、マルチコプター(いわゆるドローン)であり、飛行による移動が可能な機械装置である。なお、移動型ロボット12は、マルチコプターに限定されるものではなく、陸上、空中、水中の少なくとも一つを移動可能な各種の移動型ロボットであってよい。また、ロボットシステムに含まれる移動型ロボット12の数も特に限定されない。本実施例のロボットシステム10は、第1移動型ロボット12a、第2移動型ロボット12b、第3移動型ロボット12c、第4移動型ロボット12dを含む、四つの移動型ロボット12を有する。以下では、第1〜第4移動型ロボット12a〜12dを特に区別する必要がない場合、単に移動型ロボット12と称する。
図2を参照して、移動型ロボット12の構成について説明する。図2に示すように、移動型ロボット12は、複数のプロペラ14と、複数のプロペラ14をそれぞれ駆動する複数のモータ16と、複数のモータ16の動作を制御するコントローラ18を備える。また、移動型ロボット12は、加速度センサ20とジャイロセンサ22とGPS(Global Positioning System)センサ24を備える。これらのセンサ20、22、24はコントローラ18に接続されており、それらの出力信号はコントローラ18に入力される。コントローラ18は、加速度センサ20の出力信号に基づいて、移動型ロボット12の加速度を知ることができる。また、コントローラ18は、ジャイロセンサ22の出力信号に基づいて、移動型ロボット12の姿勢、回転の角速度、及び回転の角加速度を知ることができる。そして、コントローラ18は、GPSセンサ24の検出信号に基づいて、移動型ロボット12の位置及び速度を知ることができる。コントローラ18は、これらのセンサ20、22、24による検出値(センサ値ともいう)に基づいて、複数のモータ16をそれぞれ制御することにより、移動型ロボット12の離陸、飛行、旋回、ホバリング、着陸といった各種の動作を実行する。
移動型ロボット12はさらに、カメラ26と発光器28と通信装置30を備える。カメラ26と発光器28と通信装置30はコントローラ18に接続されており、それらの動作はコントローラ18によって制御される。コントローラ18は、通信装置30を介して統制装置40と無線通信することができる。コントローラ18は、統制装置40と無線通信することにより、例えば目標位置や目標姿勢といった動作指令を統制装置40から受信する。また、コントローラ18は、統制装置40と無線通信することにより、例えばカメラ26による撮影画像(例えば静止画や動画)や、センサ20、22、24による検出値を、統制装置40へ送信することができる。ここで、各々の移動型ロボット12には異なる識別子(ID)が割り当てられており、当該識別子がコントローラ18に記憶されている。一例として、ここでは第1移動型ロボット12aの識別子を「001」とし、第2移動型ロボット12bの識別子を「002」とし、第3移動型ロボット12cの識別子を「003」とし、第4移動型ロボット12dの識別子を「004」とする。コントローラ18は、統制装置40へ前述した各種の情報を送信するときに、移動型ロボット12の識別子も併せて統制装置40へ送信する。
図1に戻り、統制装置40の構成について説明する。図1に示すように、統制装置40は、カメラ42と、タッチパネル44と、処理装置46を備える。カメラ42とタッチパネル44は、処理装置46に接続されている。カメラ42は、複数の移動型ロボット12の動画像を撮影する。カメラ42による撮影画像は、処理装置46へ入力される。カメラ42の位置、撮影方向及び撮影範囲は、固定されていてもよいし、それらの少なくとも一つが調整可能であってもよい。また、カメラ42は、複数の移動型ロボット12の全てを同時に撮影する必要はなく、一つ又はいくつかの移動型ロボット12ずつ、順に撮影するものであってもよい。
タッチパネル44は、統制装置40におけるユーザインターフェースである。タッチパネル44は、ユーザに対して各種の情報を表示する表示装置であり、かつ、ユーザによる指示や操作を受け付ける入力装置である。例えばタッチパネル44は、統制装置40のカメラ42による撮影画像や、移動型ロボット12のカメラ26による撮影画像を表示することができる。また、タッチパネル44は、ユーザによる統制装置40や移動型ロボット12への指示を受け付けることができる。なお、タッチパネル44は、ユーザインターフェースの一例であり、様々に変更可能である。統制装置40は、タッチパネル44に代えて、表示装置と入力装置をそれぞれ備えてもよいし、表示装置と入力装置の少なくとも一方のみを備えてもよい。
処理装置46は、各種の電子情報(例えばデータやプログラム)を記憶する記憶装置48と、記憶装置48に記憶された電子情報を用いて各種の処理を実行するプロセッサ50と、各々の移動型ロボット12と無線通信する通信装置52を備える。処理装置46は、一又は複数のコンピュータ装置を用いて構成することができる。ここでいうコンピュータ装置は、デスクトップ型又はラップトップ型のコンピュータ装置であってもよいし、スマートフォンやタブレットといった携帯情報端末(PDA)であってもよい。処理装置46は、カメラ42によって撮影された移動型ロボット12をそれぞれ識別する識別装置の一例である。本実施例の処理装置46はさらに、複数の移動型ロボット12をそれぞれ識別した結果を用いて、各々の移動型ロボット12へ動作指令を与えることにより、複数の移動型ロボット12の動作を効果的に統制することができる。
図3は、処理装置46が実行する処理の流れを示すフローチャートである。図3のフローチャートを参照して、処理装置46が複数の移動型ロボット12をそれぞれ識別する手法について説明する。先ず、ステップS12において、処理装置46は統制装置40のカメラ42から撮影画像の取得を開始する。図4に示すように、カメラ42による撮影画像42aには、一又は複数の移動型ロボット12が撮影されている。ここで取得される撮影画像42aは、いわゆる動画であり、経時的に撮影された一連の画像である。次に、ステップS14において、処理装置46は、カメラ42による撮影画像42aを画像処理することにより、撮影された移動型ロボット12の状態指標をそれぞれ推定する。ここでいう状態指標とは、移動型ロボット12の状態を示すものであり、例えば移動型ロボット12の姿勢、動作又は環境に関する少なくとも一つの指標であって、カメラ42による撮影画像42aから推測し得る指標を意味する。本実施例の処理装置46は、状態指標の一例として、移動型ロボット12の加速度及び角速度を推定することができる。なお、各々の移動型ロボット12がホバリングをしている場合でも、各々の移動型ロボット12は空中で完全に静止しておらず、例えば上下方向へ周期的に変動しており、その挙動には各々の移動型ロボット12において個体差が生じる。
移動型ロボット12の加速度及び角速度を推定するために、処理装置46は、移動型ロボット12の撮影画像42a上の位置及び姿勢を、二以上の時刻について特定する。次いで、処理装置46は、特定した二以上の時刻における位置及び姿勢の時間的な変化を計算する(即ち、時間微分を行う)ことにより、移動型ロボット12の撮影画像42a上の加速度及び角速度を計算する。そして、処理装置46は、撮影画像42a上の加速度及び角速度に基づいて、移動型ロボット12の実空間における加速度及び角速度を推定する。この段階で、撮影された各々の移動型ロボット12の識別子は未知である。従って、図4に示すように、処理装置46は、撮影された各々の移動型ロボット12に仮の識別子(temp−ID、例えばR1〜R4)を割り当てる。そして、図5に示すように、割り当てた仮の識別子R1〜R4に対応付けて、推定した加速度a1〜a4及び角速度b1〜b4をそれぞれ記憶する。このデータは、処理装置46の内部メモリに記憶されてもよいし、処理装置46に接続された記憶装置48に記憶されてもよい。なお、撮影画像42a上の加速度及び角速度に基づいて、移動型ロボット12の実空間における加速度及び角速度を推定する場合は、カメラ42と移動型ロボット12との間の距離を考慮するとよい。この点に関して、カメラ42と移動型ロボット12との間の距離は、例えば撮影画像42a上における移動型ロボット12の大きさによって推定することができる。あるいは、統制装置40が複数のカメラ42を備えてもよく、ステレオカメラの原理により、複数のカメラ42による撮影画像42aに基づいて、カメラ42に対する移動型ロボット12の相対位置を計算してもよい。
上記したステップS12、S14と並行して、ステップS16では、処理装置46が、複数の移動型ロボット12と通信して、移動型ロボット12の識別子と移動型ロボット12の状態指標を、各々の移動型ロボット12から取得する。移動型ロボット12から取得する状態指標は、ステップS14において推定する状態指標と同じものであり、本実施例では移動型ロボット12の加速度及び角速度である。前述したように、移動型ロボット12は、加速度センサ20及びジャイロセンサ22を有している。従って、処理装置46は、加速度センサ20及びジャイロセンサ22の検出値を受信することにより、移動型ロボット12の加速度及び角速度を取得することができる。図6に示すように、処理装置46は、取得された状態指標(ここでは加速度a1と角速度d1)を、移動型ロボット12の識別子と対応付けて記憶する。このデータについても、処理装置46の内部メモリに記憶されてもよいし、処理装置46に接続された記憶装置48に記憶されてもよい。
ステップS18に示すように、上記したステップS12〜S16の処理は、所定時間に亘って継続的に行われる。それにより、移動型ロボット12の推定された状態指標(ここでは加速度と角速度)と、移動型ロボット12から取得された状態指標が、所定時間に亘って蓄積される。即ち、各々の移動型ロボット12の状態指標について、推定値の時系列データと取得値の時系列データがそれぞれ作成される。
次に、ステップS20では、処理装置46が、推定値の時系列データと取得値の時系列データを互いに比較し、両者の一致度に基づいて、撮影画像42a上の各々の移動型ロボット12に、実際の識別子(001〜004)を割り当てる。即ち、カメラ42によって撮影された一又は複数の移動型ロボット12をそれぞれ識別する。具体的には、実際の識別子(001〜004)を割り当てたときの全ての組み合わせについて、推定値の時系列データと取得値の時系列データとの一致度をそれぞれ計算し、最も一致度が高い組み合わせを特定する。二つの時系列データの一致度を計算する方法については、特に限定されない。例えば、二つの時系列データの間の残余平方和の逆数を計算してもよい。あるいは、フーリエ変換によって各々の時系列データの周波数スペクトルを求め、二つの周波数スペクトルのパワースペクトルについて、残余平方和の逆数を計算してもよい。あるいは、フーリエ変換によって各々の時系列データの周波数スペクトルを求め、二つの周波数スペクトルの極大値リストについて、残余平方和の逆数を計算してもよい。いずれの場合でも、計算された逆数の値が大きいときほど、二つの時系列データの一致度が高いと判断することができる。
上記のように、処理装置46は、カメラ42によって観察された移動型ロボット12の状態と、無線通信によって移動型ロボット12から取得した状態とを照らし合わせることで、カメラ42によって撮影された移動型ロボット12の識別子をそれぞれ特定することができる。ここで、カメラ42による撮影画像42aから推定された状態指標や、移動型ロボット12から取得された状態指標には、ノイズが含まれることがある。そのことから、状態指標を推定又は取得する処理において、例えばローパスフィルタやハイパスフィルタによってノイズを除去する処理を行ってもよい。
次に、ステップS22では、図7に示すように、特定された各々の移動型ロボット12の識別子が、タッチパネル44に表示される。これにより、例えばロボットシステム10のユーザは、カメラ42によって撮影された各々の移動型ロボット12を正しく識別し、各々の移動型ロボット12へ必要な動作指令を与えることができる。
次に、ステップS24では、処理装置46が、カメラ42によって観察された移動型ロボット12の実空間における位置をそれぞれ特定する。移動型ロボット12の実空間における位置を特定する手法は特に限定されない。例えば、移動型ロボット12の実空間における位置は、カメラ42の実空間における位置及び向きと、カメラ42による撮影画像42a上の移動型ロボット12の位置と、同じく撮影画像42a上の移動型ロボット12の大きさに基づいて、計算することができる。なお、撮影画像42a上の移動型ロボット12の位置は、カメラ42から移動型ロボット12に向かう方向に対応し、撮影画像42a上の移動型ロボット12の大きさは、カメラ42から移動型ロボット12までの距離に対応する。従って、カメラ42の位置及び向きが既知であれば、撮影画像42a上の移動型ロボット12の位置及び大きさに基づいて、移動型ロボット12の実空間における位置を計算することができる。計算された移動型ロボット12の実空間における位置は、移動型ロボット12の識別子とともに、タッチパネル44に表示されるとよい。
以上のように、本実施例のロボットシステム10では、外観では識別できない複数の移動型ロボット12をそれぞれ識別することができる。さらに、複数の移動型ロボット12が互いに近接しており、GPSでは区別できない各々の移動型ロボット12の位置を特定することもできる。これにより、各々の移動型ロボット12に対して適切な動作指令を与えることができ、複数の移動型ロボット12を効率よく運用することができる。
上記した実施例では、移動型ロボット12の状態指標として、加速度及び角速度を採用している。しかしながら、移動型ロボット12の状態指標には、移動型ロボット12の姿勢、動作又は環境に関する一又は複数の他の指標を採用してもよい。状態指標は、複数の移動型ロボット12の間で互いに相違し得る指標であって、カメラ42によって観察可能な指標であれば、特に限定されない。
図8は、処理装置46が実行可能な他の一連の処理を示すフローチャートである。処理装置46は、図8に示す一例の処理を実行することによっても、カメラ42によって撮影された複数の移動型ロボット12を、それぞれ識別することができる。
先ず、図8のステップS112において、処理装置46は、各々の移動型ロボット12へ、互いに異なる動作指令を送信する。この動作指令は、処理装置46のプロセッサ50によって生成され、処理装置46の通信装置52から各々の移動型ロボット12の通信装置30へ送信される。動作指令の内容は、特に限定されないが、例えば互いに異なる周波数での上下運動や、互いに異なる周波数での発光器28の点滅動作とすることができる。以下の説明では、動作指令の一例として、互いに異なる周波数での上下運動を、各々の移動型ロボット12へ与えるものとする。
次に、ステップS114において、処理装置46は統制装置40のカメラ42から撮影画像42aの取得を開始する。前述したように、カメラ42による撮影画像42aには、一又は複数の移動型ロボット12が撮影されている(図4参照)。ここで取得される撮影画像42aは、いわゆる動画であり、経時的に撮影された一連の画像である。
次に、ステップS116において、処理装置46は、カメラ42による撮影画像42aを画像処理することにより、撮影された移動型ロボット12の状態指標をそれぞれ推定する。ここでは、各々の移動型ロボット12について、移動型ロボット12の上下運動の周波数を推定する。即ち、このステップS116では、各々の移動型ロボット12に与えられた動作指令に対応する状態指標を推定する。例えば、移動型ロボット12への動作指令が発光器28の点滅動作であるときは、カメラ42による撮影画像42aを画像処理することにより、各々の移動型ロボット12について、発光器28の点滅周波数を推定する。
次に、ステップS118では、処理装置46が、ステップS112の動作指令における周波数の指令値と、ステップS116で推定した周波数の推定値とを比較し、両者の一致度に基づいて、撮影画像42a上の各々の移動型ロボット12に、実際の識別子(001〜004)を割り当てる。具体的には、実際の識別子(001〜004)を割り当てたときの全ての組み合わせについて、指令値と推定値との一致度をそれぞれ計算し、最も一致度が高い組み合わせを特定する。一致度の算出方法は特に限定されないが、例えば、周波数の指令値と推定値との間の差(絶対値)の逆数を求め、当該逆数が大きいほど一致度が高いと判断してもよい。
次に、ステップS120では、特定された各々の移動型ロボット12の識別子が、タッチパネル44に表示される(図7参照)。そして、ステップS122では、処理装置46が、カメラ42によって観察された移動型ロボット12の実空間における位置をそれぞれ特定する。これらのステップS120、S122の処理については、先に説明した図3に示すステップS22、S24の処理と同じである。
上記のように、処理装置46は、カメラ42によって観察された移動型ロボット12の状態と、無線通信によって移動型ロボット12へ与えた動作指令とを照らし合わせることで、カメラ42によって撮影された移動型ロボット12の識別子をそれぞれ特定することができる。各々の移動型ロボット12へ特徴的な動作指令を与えることで、複数の移動型ロボット12をより正しく識別することが可能となる。
図9は、処理装置46が実行可能な他の一連の処理を示すフローチャートである。処理装置46は、図9に示す一例の処理を実行することによっても、カメラ42によって撮影された複数の移動型ロボット12を、それぞれ識別することができる。
先ず、図9のステップS212において、処理装置46は統制装置40のカメラ42から撮影画像42aの取得を開始する。前述したように、カメラ42による撮影画像42aには、一又は複数の移動型ロボット12が撮影されている(図4参照)。ここで取得される撮影画像42aは、いわゆる動画であり、経時的に撮影された一連の画像である。次に、ステップS214において、処理装置46は、カメラ42による撮影画像42aを画像処理することにより、撮影された移動型ロボット12の周辺照度をそれぞれ推定する。移動型ロボット12の周辺照度は、撮影画像42aにおける移動型ロボット12の明るさに基づいて推定することができる。移動型ロボット12の周辺照度は、移動型ロボット12の環境に関する指標の一例であり、移動型ロボット12の状態指標に含まれる指標である。
この段階で、撮影された各々の移動型ロボット12の識別子は未知である。従って、処理装置46は、撮影された各々の移動型ロボット12に仮の識別子(temp−ID、例えばR1〜R4)を割り当てる(図4参照)。そして、割り当てた仮の識別子R1〜R4に対応付けて、推定した周辺照度をそれぞれ記憶する。このデータは、処理装置46の内部メモリに記憶されてもよいし、処理装置46に接続された記憶装置48に記憶されてもよい。
上記したステップS212、S214と並行して、ステップS216では、処理装置46が、複数の移動型ロボット12と通信して、移動型ロボット12の識別子と移動型ロボット12で検出された周辺照度を、各々の移動型ロボット12から取得する。前述したように、移動型ロボット12はカメラ26を有しており、カメラ26による受光量に基づいて周辺照度を検出することができる。即ち、移動型ロボット12のカメラ26は、ここでは周辺照度を測定するセンサとして機能する。処理装置46は、カメラ26による周辺照度の検出値を受信することにより、移動型ロボット12の周辺照度を取得することができる。処理装置46は、取得された周辺照度の検出値を、移動型ロボット12の識別子と対応付けて記憶する。このデータについても、処理装置46の内部メモリに記憶されてもよいし、処理装置46に接続された記憶装置48に記憶されてもよい。
ステップS218に示すように、上記したステップS212〜S216の処理は、所定時間に亘って継続的に行われる。それにより、移動型ロボット12の推定された周辺照度と、移動型ロボット12から取得された周辺照度が、所定時間に亘って蓄積される。即ち、各々の移動型ロボット12の状態指標(ここでは、環境に関する指標)について、推定値の時系列データと取得値の時系列データがそれぞれ作成される。
次に、ステップS220では、処理装置46が、推定値の時系列データと取得値の時系列データを互いに比較し、両者の一致度に基づいて、撮影画像42a上の各々の移動型ロボット12に、実際の識別子(001〜004)を割り当てる。即ち、カメラ42によって撮影された一又は複数の移動型ロボット12をそれぞれ識別する。具体的には、実際の識別子(001〜004)を割り当てたときの全ての組み合わせについて、推定値の時系列データと取得値の時系列データとの一致度をそれぞれ計算し、最も一致度が高い組み合わせを特定する。二つの時系列データの一致度を計算する方法については、特に限定されないが、例えば、二つの時系列データの間の差の逆数を計算してもよい。計算された逆数の値が大きいときほど、二つの時系列データの一致度が高いと判断することができる。なお、周辺照度といった環境に関する指標の推定値には、比較的に大きな誤差が含まれることがあり、一致度の高い組み合わせ(即ち、識別子の割り当て)が特定されない場合もある。この場合、合理的な範囲内において、最も高い一致度が計算された組み合わせ(即ち、識別子の割り当て)を、解として採用してもよい。
次に、ステップS222では、特定された各々の移動型ロボット12の識別子が、タッチパネル44に表示される(図7参照)。そして、ステップS224では、処理装置46が、カメラ42によって観察された移動型ロボット12の実空間における位置をそれぞれ特定する。これらのステップS222、S224の処理については、先に説明した図3に示すステップS22、S24の処理と同じである。
上記のように、処理装置46は、カメラ42による撮影画像42aから推定した移動型ロボット12の周辺照度と、無線通信によって移動型ロボット12から取得した周辺照度とを照らし合わせることで、カメラ42によって撮影された移動型ロボット12の識別子をそれぞれ特定することができる。これにより、例えば作業対象の近くに位置する移動型ロボット12を特定し、その移動型ロボット12へ適切に動作指令を与えることができる。
移動型ロボット12の周辺照度に代えて、移動型ロボット12の周辺温度を用いることにより、移動型ロボット12の識別を行うこともできる。この場合、各々の移動型ロボット12には、温度センサを設けるとよい。そして、統制装置40のカメラ42は、赤外線カメラを含むとよい。このような構成によると、赤外線カメラによる撮影画像を用いて、各々の移動型ロボット12の周辺温度を推定することができるとともに、無線通信によって各々の移動型ロボット12から温度センサのセンサ値(即ち、検出された周辺温度)を取得することができる。そして、推定された移動型ロボット12の周辺温度と、移動型ロボット12から取得された周辺温度とを照らし合わせることで、カメラ42によって撮影された移動型ロボット12の識別子をそれぞれ特定することができる。
図10は、処理装置46が実行可能な他の一連の処理を示すフローチャートである。処理装置46は、図10に示す一例の処理を実行することによっても、カメラ42によって撮影された複数の移動型ロボット12を、それぞれ識別することができる。なお、この処理では、移動型ロボット12の通信装置30が有する近距離無線機能を使用する。通信装置30の近距離無線機能は、所定距離内に位置する他の移動型ロボット12と通信する機能である。近距離無線機能を使用することにより、各々の移動型ロボット12は、自己に対して所定距離内に近接する他の移動型ロボット12を検出し、その識別子を取得することができる。
先ず、図10のステップS312において、処理装置46は統制装置40のカメラ42から撮影画像42aの取得を開始する。ここで取得される撮影画像42aは、いわゆる動画であり、経時的に撮影された一連の画像である。図11は、時刻t1における撮影画像42aの一例を示し、図12は、その後の時刻t2における撮影画像42aの一例を示す。次に、ステップS314において、処理装置46は、カメラ42による撮影画像42aを画像処理することにより、撮影された移動型ロボット12の近接関係をそれぞれ推定する。具体的には、各々の移動型ロボット12について、移動型ロボット12に所定距離内に近接する他の移動型ロボット12を推定する。移動型ロボット12の近接関係は、移動型ロボット12の環境に関する指標の一例であり、移動型ロボット12の状態指標に含まれる指標である。
この段階で、撮影された各々の移動型ロボット12の識別子は未知である。従って、処理装置46は、撮影された各々の移動型ロボット12に仮の識別子(temp−ID、例えばR1〜R4)を割り当てる(図11、図12参照)。そして、各々の移動型ロボット12について、移動型ロボット12に所定距離内に近接する他の移動型ロボット12を、仮の識別子を用いて記述するデータを作成する。図13に、そのデータの一例を示す。図13に例示するデータでは、時刻t1と時刻t2において、移動型ロボット12の近接関係が記述されている。移動型ロボット12の近接関係は、少なくとも一つの時刻について推定されてもよく、あるいは、三以上の時刻について推定されてもよい。
上記したステップS312、S314と並行して、ステップS316では、処理装置46が、複数の移動型ロボット12と通信して、移動型ロボット12の識別子と、移動型ロボット12の近接関係を、各々の移動型ロボット12から取得する。即ち、処理装置46は、各々の移動型ロボット12から、自己の識別子と、所定距離内に近接する他の移動型ロボット12の識別子を取得する。図14は、取得される近接関係の一例を示しており、ここでは、時刻t1と時刻t2における近接関係がそれぞれ取得されている。
ステップS318に示すように、上記したステップS312〜S316の処理は、所定時間に亘って継続的に行われるとよい。それにより、前述したように、時刻t1、t2といった複数の時刻について、近接関係の推定値と取得値を得ることができる。
次に、ステップS320では、処理装置46が、近接関係の推定値(図13参照)と取得値(図14参照)を互いに比較し、両者の一致度に基づいて、撮影画像42a上の各々の移動型ロボット12に、実際の識別子(001〜004)を割り当てる。即ち、カメラ42によって撮影された一又は複数の移動型ロボット12をそれぞれ識別する。具体的には、実際の識別子(001〜004)を割り当てたときの全ての組み合わせについて、推定値の時系列データと取得値の時系列データとの一致度をそれぞれ計算し、最も一致度が高い組み合わせを特定する。図11〜図14に示す例では、仮の識別子がR1である移動型ロボット12dの正規の識別子は004と識別され、仮の識別子がR2である移動型ロボット12bの正規の識別子は002と識別され、仮の識別子がR3である移動型ロボット12aの正規の識別子は001と識別され、仮の識別子がR4である移動型ロボット12cの正規の識別子は003と識別される。一致度を計算する方法については、特に限定されないが、例えば、各々の移動型ロボット12に近接する他の移動型ロボット12の数について、推定値と取得値との間の差(絶対値)の逆数を計算してもよい。計算された逆数の値が大きいときほど、推定値と取得値との一致度が高いと判断することができる。なお、単に近接するのか否かだけでなく、近接する方向や距離をさらに加味することも有効である、これにより、より正確な識別を行うことができる。
次に、ステップS322では、特定された各々の移動型ロボット12の識別子が、タッチパネル44に表示される(図7参照)。そして、ステップS324では、処理装置46が、カメラ42によって観察された移動型ロボット12の実空間における位置をそれぞれ特定する。これらのステップS222、S224の処理については、先に説明した図3に示すステップS22、S24の処理と同じである。
上記のように、処理装置46は、カメラ42による撮影画像42aから推定した移動型ロボット12の近接関係と、無線通信によって移動型ロボット12から取得した近接関係とを照らし合わせることで、カメラ42によって撮影された移動型ロボット12の識別子をそれぞれ特定することができる。これにより、例えば作業対象の近くに位置する移動型ロボット12を特定し、その移動型ロボット12へ適切に動作指令を与えることができる。
図15、図16は、ロボットシステム10の一変形例を模式的に示す。なお、図15、図16では、移動型ロボット12及び統制装置40が簡略化して図示されているが、それらの構成及び機能は前述したとおりである。これに加えて、図15、図16に示すロボットシステム10では、統制装置40のカメラ42に加えて、又は代えて、移動型ロボット12のカメラ26を用いて、移動型ロボット12の識別子をそれぞれ特定することができる。
例えば、図15に示す例では、先ず、統制装置40のカメラ42によって、第1移動型ロボット12aが撮影される。統制装置40は、カメラ42による撮影画像42aを用いることで、第1移動型ロボット12aを識別するとともに、その位置を特定することができる。次いで、統制装置40は、第1移動型ロボット12に動作指令を与え、第1移動型ロボット12のカメラ26によって他の移動型ロボット12b〜12dを撮影する。そして、統制装置40は、第1移動型ロボット12のカメラ26による撮影画像を用いることで、他の移動型ロボット12b〜12dを識別するとともに、それらの位置を特定することができる。なお、第1移動型ロボット12のカメラ26による撮影画像を用いて、他の移動型ロボット12b〜12dを識別する処理は、第1移動型ロボット12によって行われてもよい。即ち、第1移動型ロボット12aが、統制装置40と同様の機能を有してもよい。
また、図16に示すように、第1移動型ロボット12のカメラ26では、一部の移動型ロボット12dが撮影できない場合もある。この場合は、既に識別済みである第3移動型ロボット12cのカメラ26を用いて、第4移動型ロボット12dを撮影するとよい。このように、移動型ロボット12に搭載されたカメラ26を、統制装置40のカメラ42と同様に用いてもよい。それにより、例えば障害物100が存在し、統制装置40のカメラ42では全ての移動型ロボット12が撮影できないような場合でも、全ての移動型ロボット12を撮影して、それらの識別子や位置を特定することができる。また、二以上のカメラ26、42によって同一の移動型ロボット12を撮影することで、ステレオカメラの原理により、移動型ロボット12の位置をより正確に特定することができる。
図15、図16に示す変形例において、各々の移動型ロボット12をマスタロボットとスレーブロボットのいずれかに区別してもよい。一例として、第1移動型ロボット12aをマスタロボットとし、他の移動型ロボット12b、12c、12dをスレーブロボットとすることができる。マスタロボットである第1移動型ロボット12aは、スレーブロボットである他の移動型ロボット12b、12c、12dへ、動作指令を与えることができる。このような構成は、図17に示すように、ロボットシステム10が、多数の移動型ロボット12を備える場合に有効である。図17に示すロボットシステム10では、複数の移動型ロボット12aがマスタロボットに指定されており、マスタロボットである各々の移動型ロボット12aに対して、複数の移動型ロボット12b〜12dがスレーブロボットとして割り当てられている。この場合、統制装置40は、マスタロボットである各々の移動型ロボット12aに、例えば「1メートルだけ前進する」といった、概略的な動作指令を与えることができる。この動作指令を受けて、各々の移動型ロボット12aは、スレーブロボットである各々の移動型ロボット12b〜12dに、例えば具体的な移動量や移動方向を含む個別の動作指令を与える。このような構成によると、統制装置40における処理の負担が軽減され、多数の移動型ロボット12を混乱なく統制することができる。なお、スレーブロボットである各々の移動型ロボット12b〜12dには、統制装置40から直接的に動作指令が与えられてもよい。
図18、図19、図20は、複数の移動型ロボット12に、無線送電システムを採用した例を示す。無線送電システムを採用することにより、移動型ロボット12のバッテリ(図示省略)を小型化することや、移動型ロボット12の稼働時間を長くすることができる。図18に示す例では、統制装置40に送電装置70が設けられており、各々の移動型ロボット12に受電装置72が設けられている。統制装置40の送電装置70は、電気を電磁波(例えばマイクロ波)に変換して、移動型ロボット12の受電装置72へ送信する。移動型ロボット12の受電装置72は、送電装置70からの電磁波を受信して、それを電気に変換する。これにより、統制装置40から各々の移動型ロボット12へ電気が無線で送電される。
図19、図20に示すように、統制装置40に加えて、一又は複数の移動型ロボット12にも、送電装置70が設けられてもよい。このような構成によると、一又は複数の移動型ロボット12を経由して、統制装置40から全ての移動型ロボット12へ電気を送電することができる。例えば、図19に示す例では、第1移動型ロボット12aに、送電装置70が設けられている。このような構成によると、統制装置40と第2〜第4移動型ロボット12b〜12dの間に障害物100が存在する場合でも、第1移動型ロボット12aを経由して、統制装置40から第2〜第4移動型ロボット12b〜12dへ電気を無線で送電することができる。図20に示す例では、第1移動型ロボット12aに加えて、第2移動型ロボット12bにも送電装置70が設けられている。このような構成によると、第1移動型ロボット12aと第3及び第4移動型ロボット12c、12dの間に障害物100がさらに存在する場合でも、第2移動型ロボット12bを経由して、第1移動型ロボット12aから第3及び第4移動型ロボット12c、12dへ電気を無線で送電することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。