(58)【調査した分野】(Int.Cl.,DB名)
前記物品追跡部は、前記ロボットの作業領域の中を撮像した第1解像度の画像と、該第1解像度よりも低い第2解像度の画像であって、該作業領域の外を撮像した第2解像度の画像とを取得でき、
前記物品追跡部は、前記作業領域の中にある物品を、前記第1解像度の画像を用いて検出し、前記作業領域の外にある物品を、前記第2解像度の画像を用いて検出する、
請求項1に記載の物品移送装置。
前記物品追跡部は、第1処理速度及び第1精度を達成する第1の検出アルゴリズムと、該第1処理速度よりも速い第2処理速度又は該第1精度よりも低い第2精度を達成する第2の検出アルゴリズムとから、いずれか一方の検出アルゴリズムを選択して使用でき、
前記物品追跡部は、前記ロボットの作業領域の中にある物品を、前記第1の検出アルゴリズムを用いて検出し、該作業領域の外にある物品を、前記第2の検出アルゴリズムを用いて検出する、
請求項1〜3のいずれか1項に記載の物品移送装置。
前記物品追跡部は、前記ロボットが前記物品を把持した後、予め定めた時間が経過するまで、前記移動位置情報の反復取得を継続して実行する、請求項1〜4のいずれか1項に記載の物品移送装置。
前記コンベヤの運搬動作により移動している複数の物品の撮像及び検出を、前記第1周期よりも短い第3周期で実行して、前記複数の物品の各々の、前記移動位置情報を基準とした追加移動位置情報を、該第3周期で反復して取得し、
前記ロボットが前記コンベヤの運搬動作に追従しながら前記複数の物品の各々を把持して移送するように、前記追加移動位置情報を用いて前記ロボットを制御する、
請求項10又は11に記載の物品移送方法。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明の実施の形態を説明する。全図面に渡り、対応する構成要素には共通の参照符号を付す。
【0012】
図1は、一実施形態による物品移送装置10を示す。物品移送装置10は、物品Mを運搬するコンベヤ12と、物品Mを把持して移送するロボット14と、物品Mを撮像する撮像部16と、撮像部16を制御するとともに撮像部16が撮像した画像から物品Mを検出する画像処理部18と、画像処理部18が検出した物品Mの情報を用いてロボット14を制御するロボット制御部20とを備える。
【0013】
コンベヤ12は、複数の物品Mを支持して一方向(図で矢印W方向)へ運搬可能な公知の搬送部材と、搬送部材を連続的又は断続的に駆動する公知の駆動機構とを有する。コンベヤ12で運搬される複数の物品Mは、様々な形状、寸法、外観(色)等を有するものが混在していてもよいし、全てが同一の形状、寸法、外観(色)等を有していてもよい。また物品Mは、果物や野菜類のような、コンベヤ12による支持が不安定になり易い形状を有していてもよい。
【0014】
複数の物品Mは、コンベヤ12上に不規則配置で置かれた状態で運搬され、ロボット14の所定の作業領域(物品Mの把持及び取上げを実行する領域)22(一点鎖線で示す)に供給される。なお不規則配置とは、特定の形態に並べることが何ら意図されず無作為に置かれた配置であって、複数の物品Mを真上から見たときの二次元的広がり(例えば撮像部16が取得する画像)の中で個々の物品Mが多様な位置や姿勢を呈する配置を意味する。この実施形態では、コンベヤ12は、搬送部材又は駆動機構の位置や速度を検出可能なエンコーダ等の移動量センサを装備していない。
【0015】
ロボット14は、多関節型、ガントリ型、パラレルリンク型等の、公知の種々の機構部(すなわちマニピュレータ)から適宜選択した機構部(図示せず)と、吸着型、把握型等の、公知の種々のハンドから適宜選択したハンド(図示せず)とを備えることができる。ロボット14は、コンベヤ12の側方の所定位置に配置され、機構部及びハンドが、ロボット14の作業領域22にて、コンベヤ12により運搬される物品Mを追従しながら把持して取り上げ、他の場所に移送するように動作する。この実施形態では、ロボット14は1台の機構部を備える。
【0016】
撮像部16は、コンベヤ12の運搬方向の一部分及び横断方向の全体に広がる予め定めた視野24(破線で示す)を有する。ロボット14の作業領域22は、視野24の中に位置する。撮像部16は、視野24内に存在する物品M及びコンベヤ12を真上から撮像してそれらの二次元画像データを取得する。この実施形態では、撮像部16は1台のカメラ(以下、カメラ16とも称する)を備える。カメラ16は、デジタルカメラであることができ、例えば解像度や撮像範囲を任意に設定することができる。この実施形態では、カメラ16は、視野24のコンベヤ運搬方向上流端の一部分24aを撮像するモードと、視野24の全体を撮像するモードとを切り替えることができる。カメラ16は、カメラケーブル26を介して画像処理部18に接続される。
【0017】
画像処理部18は、撮像部16に視野24内の物品M及びコンベヤ12を撮像させて、撮像部16が取得した二次元画像データを適宜に画像処理することにより、物品Mの存在を検出するとともに、予め定めた二次元座標系における個々の物品Mの位置(座標値)及び姿勢(回転角度)の情報を取得する。画像処理部18が取得する後述する「位置情報」(初期位置情報、移動位置情報等)は、通常は物品Mの位置及び姿勢の情報を含むが、例えば、物品Mが円形である場合のように、「位置情報」が物品Mの姿勢の情報を含まなくともよい場合もある。本明細書では、物品Mの位置及び姿勢の情報、並びに物品Mの位置の情報を、「位置情報」と総称する。また画像処理部18は、撮像部16の撮像データから、個々の物品Mの二次元的外形や色等の情報(以下、外観特徴情報と称する)を取得することもできる。画像処理部18が取得した物品Mの位置情報は、図示しないモニタに画像として表示することができる。
【0018】
画像処理部18は、通信ケーブル28を介してロボット制御部20に接続され、撮像部16の二次元画像データから検出した物品Mの位置情報を随時、ロボット制御部20に送信できる。或いは後述するように、画像処理部18とロボット制御部20とを、1台の共通の制御装置に装備することもできる。
【0019】
コンベヤ12には、その運搬方向をX軸とする二次元のコンベヤ座標系(静止座標系)30を定義できる。この実施形態では、ロボット14は、コンベヤ座標系30における指令に従ってコンベヤ座標系30で動作できる。また画像処理部18は、コンベヤ座標系30で撮像部16のキャリブレーションを行うことにより、検出した物品Mの位置情報をコンベヤ座標系30で表すことができる。ロボット制御部20は、画像処理部18が検出した物品Mの位置情報を用いてロボット14を制御し、ハンドの形態に応じた把持動作をロボット14に実行させる。
【0020】
画像処理部18は、コンベヤ12の運搬動作により移動している複数の物品Mの撮像及び検出を、複数の物品Mの全てが撮像及び検出される第1周期T1で実行して、全ての物品Mの各々の初期位置情報D1を取得する物品検出部32と、コンベヤ12の運搬動作により移動している複数の物品Mの撮像及び検出を、第1周期T1よりも短い第2周期T2で実行して、複数の物品Mの各々の、初期位置情報D1を基準とした移動位置情報D2を、第2周期T2で反復して取得する物品追跡部34とを備える。ロボット制御部20は、ロボット14がコンベヤ12の運搬動作に追従しながら複数の物品Mの各々を把持して移送するように、移動位置情報D2を用いてロボット14を制御する。この実施形態では、初期位置情報D1及び移動位置情報D2はいずれも、コンベヤ座標系30における座標値及び回転角度(又は座標値のみ)で表される。
【0021】
物品検出部32は、コンベヤ12の運搬動作によりロボット14の作業領域22に供給される複数の物品Mの各々を、撮像部16の視野24内で最初に認識し検出する(以下、「初期検出する」とも称する)機能を有する。この実施形態では、物品検出部32は、撮像部16の視野24の上流端部分24aの中で物品Mを初期検出するように構成される。第1周期T1は、撮像部16が視野24の上流端部分24aの中で個々の物品Mの全体像を少なくとも1回は撮像できる周期である。
【0022】
具体例を挙げると、視野24の上流端部分24aの、コンベヤ12の運搬方向Wに見た(つまりコンベヤ座標系30のX軸方向の)長さが400mm、物品Mの最大幅が100mm、コンベヤ12の運搬速度が200mm/sの構成の場合、コンベヤ12の運搬動作に伴い1つの物品Mの全体が上流端部分24aに進入した瞬間から当該物品Mの一部が上流端部分24aの外に出るまでの間に、当該物品Mを1回撮像するための第1周期T1は、以下のようになる。
T1=(400(mm)−100(mm))/200(mm/s)=1.5(s)
上記具体例において、コンベヤ12により作業領域22に供給される複数の物品Mを上記第1周期T1で撮像することで、全ての物品Mを、視野24の上流端部分24aに存在する間に撮像して初期検出でき、それら物品Mの各々の初期位置情報D1を取得できる。
【0023】
物品追跡部34は、物品検出部32が初期検出した複数の物品Mの各々を、撮像部16の視野24内で引き続いて認識し検出する(以下、「追跡する」とも称する)機能を有する。この実施形態では、物品追跡部34は、撮像部16の視野24の全体の中で物品Mを追跡するように構成される。第2周期T2は、撮像部16が視野24の中で個々の物品Mの全体像を、他の物品Mとの誤検出を生ずることなく追跡するに十分な回数に渡って反復して撮像できる周期である。
【0024】
例えば、全く同じ姿勢(回転角度)で互いに並列に接して置かれた2個の物品Mを互いに誤検出しないようにするためには、コンベヤ12の運搬距離が物品Mの最小幅の半分以下である間に、撮像部16が各物品Mを撮像して物品追跡部34による検出が完了すべきと考えられる。この条件の下、前述した具体例において物品Mの最小幅が60mmであった場合、第2周期T2は、以下のようになる。
T2=(60(mm)/2)/200(mm/s)=0.15(s)
上記具体例において、コンベヤ12の運搬動作により移動している複数の物品Mを上記第2周期T2で撮像することで、それら物品Mの各々を、視野24内で反復撮像して他の物品と誤認することなく追跡でき、それら物品Mの各々の移動位置情報D2を取得できる。なお、「物品Mの最小幅の半分」を条件とせずに、画像処理部18が有する処理能力の限界に相当するまで第2周期T2を短く設定することにより、移動位置情報D2の確度、したがってロボット14が物品Mを追従しながら把持する動作の精度を、最大限に高めることができる。
【0025】
画像処理部18は、物品検出部32による第1周期T1での撮像及び検出(すなわち初期検出)と並行して、物品追跡部34による第2周期T2での撮像及び検出(すなわち追跡)を実行する(いわゆるマルチタスク処理を行う)。このとき物品追跡部34は、物品検出部32が取得した物品Mの初期位置情報D1に含まれる位置及び姿勢(又は位置のみ)の値を初期値として、当該物品Mを第2周期T2で反復して撮像及び検出することで、当該物品Mの時々刻々の位置及び姿勢(又は位置のみ)の値(すなわち変化量)を移動位置情報D2として繰り返し取得し続ける。なお、撮像部16の1台のカメラ16は、第1周期T1での撮像と第2周期T2での撮像とを適宜順序及び適宜タイミングで実行する。
【0026】
画像処理部18は、物品検出部32が取得した個々の物品Mの初期位置情報D1を、物品追跡部34による物品追跡処理に利用する一方で、ロボット14に個々の物品Mを把持させるために必要な他の情報と共に、パケット(以下、パケットαと称する)に一まとめにした形式でロボット制御部20に送る。パケットαに含まれる情報は、その情報がパケットαであることを示すパケットID、物品検出部32が取得した初期位置情報D1、初期位置情報D1に対応する物品撮像時刻、及び物品Mを通し番号で示す物品IDである。コンベヤ12によりロボット14の作業領域22に供給される全ての物品Mの各々について、パケットαが1回だけ作成されてロボット制御部20に送られる。
【0027】
画像処理部18はまた、物品追跡部34が反復して取得した個々の物品Mの移動位置情報D2を、取得の都度、ロボット14に個々の物品Mを把持させるために必要な他の情報と共に、パケット(以下、パケットβと称する)に一まとめにした形式でロボット制御部20に送る。パケットβに含まれる情報は、その情報がパケットβであることを示すパケットID、物品追跡部34が取得した移動位置情報D2、移動位置情報D2に対応する物品撮像時刻、及び物品Mを通し番号で示す物品IDである。コンベヤ12によりロボット14の作業領域22に供給される全ての物品Mの各々について、パケットβが繰り返し作成されてロボット制御部20に送られる。
【0028】
ロボット制御部20は、画像処理部18から送られたパケットαの情報に基づき、ロボット14に個々の物品Mを把持させるための物品情報を、パケット(以下、パケットγと称する)に一まとめにした形式で作成する。パケットγに含まれる情報は、パケットαの情報と、その時点までに画像処理部18から送られたパケットβの情報のうち、最新のものを含む任意回数分のパケットβに含まれる移動位置情報D2及び物品撮像時刻とである。さらに、任意回数分の移動位置情報D2及び物品撮像時刻の間隔から得られる物品Mの移動速度(つまりコンベヤ12の運搬速度)の情報を、パケットγに含ませることもできる。パケットγの作成に用いるパケットβの受信回数は、物品移送装置10の使用者が任意に設定できる。ロボット制御部20は、ロボット14が物品Mを把持してコンベヤ12から移送したときに、当該物品Mのパケットγの情報を消去する。
【0029】
ロボット制御部20は、その時点で保持しているパケットγの情報と、画像処理部18から時々刻々に送られるパケットβの情報とを照合することで、ロボット14の作業領域22に進入しようとする物品M、又は作業領域22を現在通過している物品Mが存在することを認識する。そこでロボット制御部20は、存在を認識した物品Mに対応するパケットβに含まれる当該物品Mの移動位置情報D2を用いて、ロボット14を制御する。この制御の下で、ロボット14は、コンベヤ12の運搬動作に追従しながら当該物品Mを把持して取り上げ、コンベヤ12から予め定めた別の場所へ物品Mを移送する。
【0030】
上記構成を有する物品移送装置10によれば、画像処理部18の物品検出部32が、コンベヤ12によって運搬されている物品Mの初期位置情報D1を取得した後に、画像処理部18の物品追跡部34が、当該物品Mの移動位置情報D2を取得して、ロボット制御部20が移動位置情報D2を用いてロボット14を制御するようにしたから、コンベヤ12にエンコーダ等の移動量センサを付設することなく、ロボット14が、コンベヤ12によって運搬されている物品Mの現在位置を把握してコンベヤ12に追従しながら物品Mを把持することができる。よって、エンコーダ等の移動量センサをコンベヤに付設することが困難な状況においても、ロボットがコンベヤの運搬動作に追従しながら個々の物品を把持して他の場所に移送するシステムを構築できる。しかも物品追跡部34は、個々の物品Mの移動位置情報D2を第2周期T2で反復して取得するので、物品検出部32が物品Mの初期位置情報D1を取得した後に当該物品Mがコンベヤ12上で位置ずれを生じた場合にも、物品追跡部34が当該物品Mを追跡して移動位置情報D2を更新でき、ロボット14が、更新された移動位置情報D2により当該物品Mの位置ずれ後の現在位置を把握して当該物品Mを把持することができる。
【0031】
上記した物品移送装置10の構成は、本発明の他の態様による物品移送方法として記述できる。この物品移送方法は、コンベヤ12により運搬されている複数の物品Mをロボット14が把持して移送する物品移送方法であって、コンベヤ12の運搬動作により移動している複数の物品Mの撮像及び検出を、複数の物品Mの全てが撮像及び検出される第1周期T1で実行して、全ての物品Mの各々の初期位置情報D1を取得するステップと、コンベヤ12の運搬動作により移動している複数の物品Mの撮像及び検出を、第1周期T1よりも短い第2周期T2で実行して、複数の物品Mの各々の、初期位置情報D1を基準とした移動位置情報D2を、第2周期T2で反復して取得するステップと、ロボット14がコンベヤ12の運搬動作に追従しながら複数の物品Mの各々を把持して移送するように、移動位置情報D2を用いてロボット14を制御するステップとを有する。
【0032】
図2は、物品移送装置10の変形例を示す。この変形例では、撮像部16は、互いに独立して動作する第1カメラ16A及び第2カメラ16Bを備える。第1カメラ16Aは、前述した視野24のコンベヤ運搬方向上流端の一部分24aを、それ自体の視野として有する。第2カメラ16Bは、視野24を有する。物品検出部32は、第1カメラ16Aに視野24a内の物品Mを撮像させるとともに第1カメラ16Aが撮像した画像から物品Mを検出する。物品追跡部34は、第2カメラ16Bに視野24内の物品Mを撮像させるとともに第2カメラ16Bが撮像した画像から物品Mを検出する。第1及び第2カメラ16A、16Bはいずれも、デジタルカメラであることができ、例えば解像度や撮像範囲を任意に設定することができる。第1及び第2カメラ16A、16Bはそれぞれ、カメラケーブル26を介して画像処理部18に接続される。この構成では、第1カメラ16Aによる第1周期T1での撮像と第2カメラ16Bによる第2周期T2での撮像とを並行して実施できる。
【0033】
図3は、物品移送装置10の他の変形例を示す。この変形例では、ロボット14は、互いに独立して動作する第1機構部14A及び第2機構部14Bを備え、ロボット制御部20は、第1機構部14Aを制御する第1制御部20A及び第2機構部14Bを制御する第2制御部20Bを備える。第1及び第2機構部14A、14Bはいずれも、公知の種々の機構部(すなわちマニピュレータ)の構成を有することができ、また公知の種々のハンド(図示せず)を装備することができる。第1機構部14Aは、コンベヤ12の側方の所定位置に配置され、作業領域22Aにて、コンベヤ12により運搬される物品Mを追従しながら把持して取り上げ、他の場所に移送するように動作する。第2機構部14Bは、第1機構部14Aのコンベヤ運搬方向下流側でコンベヤ12の側方の所定位置に配置され、作業領域22Bにて、コンベヤ12により運搬される物品Mを追従しながら把持して取り上げ、他の場所に移送するように動作する。作業領域22Aと作業領域22Bとは、第1及び第2機構部14A、14Bの相互干渉を回避するべく、互いに重ならない位置に設定される。またこれら作業領域22A、22Bはいずれも、撮像部16の視野24の中に位置する。
【0034】
第1制御部20Aは、第1機構部14Aがコンベヤ12の運搬動作に追従しながら複数の物品Mの各々を把持して移送するように、移動位置情報D2を用いて第1機構部14Aを制御する。第2制御部20Bは、第2機構部14Bがコンベヤ12の運搬動作に追従しながら複数の物品M(第1機構部14Aが取り上げなかった物品M)の各々を把持して移送するように、移動位置情報D2を用いて第2機構部14Bを制御する。第1及び第2制御部20A、20Bは、通信ケーブル28を介して、互いに接続されるとともに画像処理部18に接続される。この構成では、第1及び第2制御部20A、20Bは、第1機構部14Aと第2機構部14Bとに、予め定めた作業割合(すなわち作業の分担率)に応じた個数の物品Mをそれぞれ把持させるような制御を実行できる。作業割合を考慮した制御については、後述する他の実施形態に関連してさらに詳細に説明する。
【0035】
図4は、物品移送装置10のさらに他の変形例を示す。この変形例は、
図2の変形例と
図3の変形例とを組み合わせたものに相当し、撮像部16としての第1カメラ16A及び第2カメラ16Bと、ロボット14としての第1機構部14A及び第2機構部14Bと、ロボット制御部20としての第1制御部20A及び第2制御部20Bとを備える。
【0036】
上記した幾つかの変形例のように、撮像部16を構成するカメラの台数や、ロボット14を構成する機構部の台数は、コンベヤ12によって運搬される物品Mの総数や運搬速度、ロボット14が物品Mを他の場所に移送するのに要する時間、要求される作業精度等の、種々のファクターに応じて、適宜に設定できる。例えば3台以上のカメラ、3台以上のロボット機構部、3台以上のロボット制御部を備えることもできる。カメラやロボット機構部をコンベヤ運搬方向に並べて配置する場合、下流側のカメラやロボット機構部は、上流側のカメラやロボット機構部が実行しなかった作業を実行するように構成できる。
【0037】
図5は、他の実施形態による物品移送装置40を示す。物品移送装置40は、撮像部16として機能するカメラの台数、ロボット14として機能する機構部の台数、及びロボット制御部20として機能する制御部の台数が異なる点、並びにロボット14による物品Mの移送先として第2のコンベヤを備える点を除いて、基本的部分では前述した物品移送装置10と実質的に同一の構成を有する。以下の説明において、物品移送装置10の構成に対応する構成については、共通する参照符号を付すことでその説明を省略する場合がある。また、物品移送装置10において説明を省略した細部の構成を、以下で物品移送装置40に関連して詳細に説明する場合もある。
【0038】
物品移送装置40は、物品Mを運搬するコンベヤ12と、物品Mを把持して移送するロボット14と、物品Mを撮像する撮像部16と、撮像部16を制御するとともに撮像部16が撮像した画像から物品Mを検出する画像処理部18と、画像処理部18が検出した物品Mの情報を用いてロボット14を制御するロボット制御部20とを備える。物品移送装置40はさらに、ロボット14がコンベヤ12から取り上げた物品Mを移送して載置する第2のコンベヤ42(以下、排出コンベヤ42と称する)を備える。
【0039】
ロボット14は、互いに独立して動作する第1機構部14A、第2機構部14B及び第3機構部14Cを備える。第1機構部14Aは、コンベヤ12の側方の所定位置に配置され、作業領域22Aにて、コンベヤ12により運搬される物品Mを追従しながら把持して取り上げ、排出コンベヤ42に移送するように動作する。第2機構部14Bは、第1機構部14Aのコンベヤ運搬方向下流側でコンベヤ12の側方の所定位置に配置され、作業領域22Bにて、コンベヤ12により運搬される物品Mを追従しながら把持して取り上げ、排出コンベヤ42に移送するように動作する。第3機構部14Cは、第2機構部14Bのコンベヤ運搬方向下流側でコンベヤ12の側方の所定位置に配置され、作業領域22Cにて、コンベヤ12により運搬される物品Mを追従しながら把持して取り上げ、排出コンベヤ42に移送するように動作する。作業領域22A、22B、22Cは、隣り合う機構部14A、14B、14Cの相互干渉を回避するべく、互いに重ならない位置に設定される。第1〜第3機構部14A、14B、14Cは、互いに実質的同一のハード構成を有することができる。
【0040】
撮像部16は、互いに独立して動作する第1カメラ16A、第2カメラ16B及び第3カメラ16Cを備える。第1カメラ16Aは、コンベヤ12の運搬方向の一部分及び横断方向の全体に広がる予め定めた視野44(破線で示す)を有する。視野44は、前述した視野24のコンベヤ運搬方向上流端の一部分24a(
図1)をコンベヤ運搬方向上流側へ適当な距離だけ変位した位置に設定される。第2カメラ16Bは、前述した視野24を有する。第1カメラ16Aの視野44と第2カメラ16Bの視野24とは、互いに部分的に重なっている。第3カメラ16Cは、コンベヤ12の運搬方向の一部分及び横断方向の全体に広がる予め定めた視野46(破線で示す)を有する。視野46は、視野24のコンベヤ運搬方向下流端からさらに下流側へ延出するように設定される。第3カメラ16Cの視野46と第2カメラ16Bの視野24とは、互いに部分的に重なっている。第1及び第2機構部14A、14Bの作業領域22A、22Bは、第2カメラ16Bの視野24の中に位置する。第3機構部14Cの作業領域22Cは、第3カメラ16Cの視野46の中に位置する。第1〜第3カメラ16A、16B、16Cは、カメラケーブル26を介して画像処理部18に接続される。第1〜第3カメラ16A、16B、16Cは、互いに実質的同一のハード構成を有することができる。
【0041】
ロボット制御部20は、第1機構部14Aを制御する第1制御部20A、第2機構部14Bを制御する第2制御部20B、及び第3機構部14Cを制御する第3制御部20Cを備える。第1制御部20Aは、第1機構部14Aがコンベヤ12の運搬動作に追従しながら複数の物品Mの各々を把持して移送するように、移動位置情報D2を用いて第1機構部14Aを制御する。第2制御部20Bは、第2機構部14Bがコンベヤ12の運搬動作に追従しながら複数の物品M(第1機構部14Aが取り上げなかった物品M)の各々を把持して移送するように、移動位置情報D2を用いて第2機構部14Bを制御する。第3制御部20Cは、第3機構部14Cがコンベヤ12の運搬動作に追従しながら複数の物品M(第2機構部14Bが取り上げなかった物品M)の各々を把持して移送するように、追加移動位置情報D3(後述する)を用いて第3機構部14Cを制御する。第1〜第3制御部20A、20B、20Cは、通信ケーブル28及びネットワークハブ48を介して、互いに接続されるとともに画像処理部18に接続される。第1〜第3制御部20A、20B、20Cは、互いに実質的同一のハード構成を有することができる。
【0042】
画像処理部18は、第1カメラ16Aに視野44内の物品Mを撮像させるとともに第1カメラ16Aが撮像した画像から物品Mを検出(初期検出)する物品検出部32と、第2カメラ16Bに視野24内の物品Mを撮像させるとともに第2カメラ16Bが撮像した画像から物品Mを検出(追跡)する物品追跡部34と、第3カメラ16Cに視野46内の物品Mを撮像させるとともに第3カメラ16Cが撮像した画像から物品Mを検出(追跡)する補助追跡部50とを備える。補助追跡部50は、コンベヤ12の運搬動作により移動している複数の物品Mの撮像及び検出を、第1周期T1よりも短い第3周期T3で実行して、複数の物品Mの各々の、移動位置情報D2を基準とした追加移動位置情報D3を、第3周期T3で反復して取得する。
【0043】
補助追跡部50は、物品追跡部34が第2カメラ16Bの視野24内で追跡した複数の物品Mの各々を、第3カメラ16Cの視野46内で引き続いて追跡する機能を有する。第3カメラ16C及び補助追跡部50は、物品追跡部34が視野24内で追跡した物品Mのうち第1及び第2機構部14A、14Bが作業領域22A、22B内で把持しなかった物品Mを、第3機構部14Cに作業領域22C内で把持させるために設けられる。第3周期T3は、第2周期T2と同様の条件に従って設定でき、第2周期T2と同一であることができる。
【0044】
画像処理部18は、物品検出部32による第1周期T1での撮像及び検出(すなわち初期検出)と、物品追跡部34による第2周期T2での撮像及び検出(すなわち追跡)と、補助追跡部50による第3周期T3での撮像及び検出(すなわち追跡)とを、互いに並行して実行する。第1〜第3カメラ16A、16B、16Cは、第1〜第3周期T1、T2、T3での撮像を互いに並行して実行できる。このとき補助追跡部50は、物品追跡部34が反復取得した物品Mの移動位置情報D2のうち、第3カメラ16Cの視野46に進入した物品Mの最終の移動位置情報D2に含まれる位置及び姿勢(又は位置のみ)の値を初期値として、当該物品Mを第3周期T3で反復して撮像及び検出することで、当該物品Mの時々刻々の位置及び姿勢(又は位置のみ)の値(すなわち変化量)を追加移動位置情報D3として繰り返し取得し続ける。
【0045】
画像処理部18は、物品検出部32が取得した個々の物品Mの初期位置情報D1を、物品追跡部34による物品追跡処理に利用する一方で、前述したパケットαの形式で第1制御部20Aのみに送る。この実施形態では、パケットαには、前述した情報に加えて、初期位置情報D1の元となる画像データを取得した第1カメラ16Aを示すカメラIDが含まれる。画像処理部18はまた、物品追跡部34が反復して取得した個々の物品Mの移動位置情報D2、及び補助追跡部50が反復して取得した個々の物品Mの追加移動位置情報D3を、それぞれの取得の都度、前述したパケットβの形式で第1〜第3制御部20A、20B、20Cの全てに送る。この実施形態では、パケットβには、前述した情報に加えて、移動位置情報D2又は追加移動位置情報D3の元となる画像データを取得した第2又は第3カメラ16B、16Cを示すカメラIDが含まれる。
【0046】
第1制御部20Aは、画像処理部18から送られたパケットαの情報に基づき、第1〜第3機構部14A、14B、14Cに個々の物品Mを把持させるための物品情報を、前述したパケットγの形式で作成する。パケットγに含まれる情報は、パケットαの情報と、その時点までに画像処理部18から送られたパケットβの情報のうち、最新のものを含む任意回数分のパケットβに含まれる移動位置情報D2又は追加移動位置情報D3及び物品撮像時刻とである。第1制御部20Aは、第1機構部14Aが物品Mを把持してコンベヤ12から移送したときに当該物品Mのパケットγの情報を消去する一方、第1機構部14Aがコンベヤ12から移送しなかった物品Mのパケットγの情報を第2制御部20Bに送る。第2制御部20Bは、第1制御部20Aから受け取ったパケットγの情報について、第2機構部14Bが物品Mを把持してコンベヤ12から移送したときに当該物品Mのパケットγの情報を消去する一方、第2機構部14Bがコンベヤ12から移送しなかった物品Mのパケットγの情報を第3制御部20Cに送る。
【0047】
第1〜第3制御部20A、20B、20Cの各々は、その時点で保持しているパケットγの情報と、画像処理部18から時々刻々に送られるパケットβの情報とを照合することで、第1〜第3機構部14A、14B、14Cの各々の作業領域22A、22B、22Cに進入しようとする物品M、又は作業領域22A、22B、22Cを現在通過している物品Mが存在することを認識する。そこで、第1及び第2制御部20A、20Bの各々は、存在を認識した物品Mに対応するパケットβに含まれる当該物品Mの移動位置情報D2を用いて、第1及び第2機構部14A、14Bの各々を制御する。また、第3制御部20Cは、存在を認識した物品Mに対応するパケットβに含まれる当該物品Mの追加移動位置情報D3を用いて、第3機構部14Cを制御する。これらの制御の下で、第1〜第3機構部14A、14B、14Cの各々は、コンベヤ12の運搬動作に追従しながら当該物品Mを把持して取り上げ、コンベヤ12から排出コンベヤ42へ物品Mを移送する。
【0048】
排出コンベヤ42は、第1〜第3機構部14A、14B、14Cの各々が物品Mを置く作業を実行可能な位置に、コンベヤ12に対し実質的平行に並んで配置される。排出コンベヤ42は、複数の物品Mを支持して一方向(図で矢印W方向)へ運搬可能な公知の搬送部材と、搬送部材を連続的又は断続的に駆動する公知の駆動機構とを有する。排出コンベヤ42には、搬送部材の移動量を検出するエンコーダ52が付設される。エンコーダ52が検出した移動量は、第1制御部20Aに入力され、通信ネットワークを介して第1〜第3制御部20A、20B、20Cに共有される。
【0049】
排出コンベヤ42には、それぞれに所定個数の物品Mを所定配置で支持可能な複数のトレイ54が載置される。また排出コンベヤ42には、所定位置への個々のトレイ54の到達を検出する光電管センサ56が付設される。第1制御部20Aは、光電管センサ56から1つのトレイ54の検出信号を受けたと同時に、エンコーダ52から入力される排出コンベヤ42の移動量を読み取って初期値として記憶し、その後、随時更新されるエンコーダ52の検出値を記憶した初期値と比較することで、当該トレイ54の現在位置を知ることができる。
【0050】
個々のトレイ54には、予め定めた整列パターン58に従って複数の物品Mを載置できる。
図6は、トレイ54上での物品Mの整列パターン58の一例を示す。整列パターン58は、それぞれが物品Mの位置を表す4個のパターン要素P1、パターン要素P2、パターン要素P3、パターン要素P4を有する。図示の例では、
図6(a)に示すように、二次元画像上でトレイ54の右上隅を原点とする座標系57において、パターン要素P1、P2、P3、P4をそれぞれ座標値(X,Y)と相対回転角度Φとで定義した整列フォーム59(
図6(b))が用意される。図示の整列フォーム59は、P1、P2、P3、P4のそれぞれの座標値が(X1,Y1)、(X1,Y2)、(X2,Y1)、(X2,Y2)であり、P1、P2、P3、P4のそれぞれの回転角度が0°、−90°、90°、180°である。
【0051】
第1〜第3制御部20A、20B、20Cは、上記したパターン要素P1、P2、P3、P4を有する整列パターン58に従って物品Mを1つずつトレイ54に載置するように、第1〜第3機構部14A、14B、14Cを制御する。
図6(a)は、整列パターン58に従ってトレイ54上に配置された矢尻状の外形を有する4個の物品Mを示す。なお図では、各パターン要素P1、P2、P3、P4は、理解を助けるために「+」のマークで示しているが、パターン要素P1、P2、P3、P4自体は形状を有する必要が無いものである。また図では、各物品Mの二次元的外形における幾何学的中心点をパターン要素P1、P2、P3、P4に位置合わせすることで、4個の物品Mが整列パターン58に置かれているが、これに限らず、各物品Mの任意の共通点をパターン要素P1、P2、P3、P4に位置合わせすることもできる。
【0052】
図7は、第1〜第3制御部20A、20B、20Cの各々又はロボット制御部20(
図1)のハードウェア構成の一例を示す。各制御部20A、20B、20C又はロボット制御部20は、マイクロプロセッサからなるCPU60を備える。CPU60には、ROM62、RAM64、SRAM66、デジタルシグナルプロセッサ(DSP)用データメモリ68及びデジタルシグナルプロセッサ(DSP)70が、バス71を介してそれぞれ接続される。ROM62にはシステム全体を制御するプログラムが格納され、RAM64にはCPU60で処理されるデータが一時的に格納される。SRAM66には、第1〜第3機構部14A、14B、14Cの各々又はロボット14のための動作プログラムや設定データが格納される。DSP70は、エンコーダ52の出力信号を処理するためのプロセッサであり、DSP用データメモリ68は、DSP70による処理データや設定パラメータを格納する。DSP70は、CPU60の命令に従って任意の時点においてエンコーダ52の出力を検知し、DSP用データメモリ68の所定エリアに書き込む機能を有する。
【0053】
各制御部20A、20B、20C又はロボット制御部20は、各機構部14A、14B、14C又はロボット14を制御するための軸制御部72を有する。軸制御部72は、サーボ回路74を介して、各機構部14A、14B、14C又はロボット14に接続される。これにより各制御部20A、20B、20C又はロボット制御部20は、各機構部14A、14B、14C又はロボット14を制御することができる。さらに各制御部20A、20B、20C又はロボット制御部20は、通信インタフェース76やI/Oインタフェース78を備えており、これらを介して、他の制御部20A、20B、20C、画像処理部18、光電管センサ56等の周辺装置と通信することができる。
【0054】
図8は、画像処理部18のハードウェア構成の一例を示す。画像処理部18は、マイクロプロセッサからなるCPU80を備える。CPU80には、ROM82、RAM84、外部に設置されるモニタ86が接続されるモニタインタフェース88、及び第1〜第3カメラ16A、16B、16Cの各々又は撮像部16(
図1)が接続されるカメラインタフェース90が、バス92を介してそれぞれ接続される。各カメラ16A、16B、16C又は撮像部16が撮像した画像は、カメラインタフェース90を介してRAM84に格納される。カメラインタフェース90は、個々のカメラ16A、16B、16Cを互いに独立して制御でき、各カメラ16A、16B、16Cの撮像状況によらず常に指定のタイミングで撮像を実行できる。RAM84に格納されたデータは、CPU80によって解析され、物品Mの位置や姿勢の情報(初期位置情報D1、移動位置情報D2、追加移動位置情報D3)として画像処理部18に取得される。画像処理部18は、RAM84に格納された撮像データから、物品Mの形状や色等の外観特徴情報を取得することもできる。ROM82には、画像処理部18における各種設定情報や解析プログラムが格納される。CPU80は、いわゆるマルチコア、マルチスレッドに対応しており、第1〜第3カメラ16A、16B、16Cが撮像した画像データを並行して解析できる。さらに画像処理部18は、通信インタフェース94やI/Oインタフェース96を備えており、これらを介して、各制御部20A、20B、20Cや周辺装置と通信することができる。
【0055】
図9に示すように、各制御部20A、20B、20C又はロボット制御部20と、画像処理部18とを、共通の制御装置98に内蔵することもできる。画像処理部18のCPU80は、制御装置98のバス100を介して、各制御部20A、20B、20C又はロボット制御部20のCPU60に接続される。また、画像処理部18のCPU80は、各制御部20A、20B、20C又はロボット制御部20のCPU60を介して、SRAM66にアクセスして各種設定情報を保存したり、DSP用データメモリ68にアクセスしてエンコーダ52の情報を読み取ったりすることができる。画像処理部18のCPU80は、必要に応じて、各制御部20A、20B、20C又はロボット制御部20のCPU60を介して、通信インタフェース76やI/Oインタフェース78に接続できる。この場合、前述した通信インタフェース94やI/Oインタフェース96を省略できる。
【0056】
制御装置98において、画像処理部18のCPU80、ROM82及びRAM84を、各制御部20A、20B、20C又はロボット制御部20のCPU60、ROM62及びRAM64で代用することもできる。
図10は、このような簡易化したハードウェア構成を有する制御装置98を例示する。
【0057】
図11は、物品移送装置40の画像処理部18及び第1〜第3制御部20A、20B、20Cにおける、物品Mに関する情報並びに物品Mの把持及び移送作業に関する情報を取り扱う種々の処理の単位を、機能ブロック図で示す。図中の矢印は、物品Mに関する情報並びに物品Mの把持及び移送作業に関する情報の流れを示す。
【0058】
図11に示すように、第1〜第3制御部20A、20B、20Cはそれぞれ、作業内容設定部102A、102B、102Cを有する。作業内容設定部102A、102B、102Cでは、第1〜第3機構部14A、14B、14C(
図5)がそれぞれに実行する作業割合、トレイ54上の物品Mの整列パターン58、コンベヤ12上の作業領域22A、22B、22C(
図5)等の、物品把持及び移送作業に関する作業内容が設定される。作業内容設定部102A、102B、102Cのいずれかで設定された作業内容は、通信ネットワークを介して、他の制御部20A、20B、20Cの作業内容設定部102A、102B、102Cに送ることができ、全ての制御部20A、20B、20Cの作業内容設定部102A、102B、102Cで共有できる。
【0059】
ここで、第1〜第3機構部14A、14B、14Cの作業割合について説明する。例として、
図12に示すように、コンベヤ12によって先頭から順に物品M1、M2、M3、M4が作業領域22A、22B、22C(
図5)に供給され、第1〜第3機構部14A、14B、14C(
図5)がそれら物品M1、M2、M3、M4を取り上げて、排出コンベヤ42上のトレイ54に移送して前述した整列パターン58に配置する構成を考察する。この構成において、第1〜第3機構部14A、14B、14Cの作業割合Rを1:1:1に設定した場合の、各機構部14A、14B、14Cによる物品把持及び移送作業の一例を以下に説明する。
【0060】
まず、第1〜第3機構部14A、14B、14C(
図5)のうち、最も上流側に設置されている第1機構部14Aは、最初に供給される物品M1を把持してコンベヤ12から取り上げ、整列パターン58に従ってトレイ54上のパターン要素P1に置く。次いで第1機構部14Aは、指定された作業割合R=1:1:1を満たすように、物品M2及び物品M3を下流側の第2機構部14B及び第3機構部14Cの作業のために見送り、その後に、最後尾の物品M4を把持してコンベヤ12から取り上げ、整列パターン58に従ってトレイ54上のパターン要素P2に置く。第2機構部14Bは、第1機構部14Aが見送った物品のうち先に供給される物品M2を把持してコンベヤ12から取り上げ、整列パターン58に従ってトレイ54上のパターン要素P3に置く。そして第3機構部14Cは、残った物品M3を把持してコンベヤ12から取り上げ、整列パターン58に従ってトレイ54上のパターン要素P4に置く。この時点で、第1〜第3機構部14A、14B、14Cが実行した物品把持及び移送作業の分担率は、2:1:1となっている。
【0061】
物品M1〜M4の後にさらに複数の物品M(図示せず)が供給されると、第1機構部14Aは、指定された作業割合R=1:1:1を満たすように、供給順に2個の物品Mを見送って、3個目の物品Mを次のトレイ54に移送する。そして第2機構部14B及び第3機構部14Cは、第1機構部14Aが見送った物品Mを1個ずつ分担して次のトレイ54に移送する。この時点で、第1〜第3機構部14A、14B、14Cが実行した物品把持及び移送作業の分担率は、3:2:2となっている。このような作業を繰り返すことにより、第1〜第3機構部14A、14B、14Cは、コンベヤ12によって供給される全ての物品Mに対し、最終的に作業割合R=1:1:1に従う分担率で把持及び移送作業を実行する。
【0062】
上記した作業例では、第1〜第3機構部14A、14B、14Cがコンベヤ12上の複数の物品Mを供給順に把持して、整列パターン58のパターン要素P1〜P4の番号順にトレイ54に配置している。また、第1〜第3機構部14A、14B、14Cがこの順番で、作業割合Rに最も近似する分担率を実現することを条件に、物品Mを把持するか見送るかを決定している。このような作業ルールについては、物品移送装置40の使用者が所望の作業ルールを事前に設定して、第1〜第3制御部20A、20B、20CのSRAM66に格納しておくことができる。
【0063】
再び
図11を参照すると、第1制御部20Aは、トレイ検出部104、情報管理部106A及び作業実行部108Aを有する。第2制御部20Bは、情報管理部106B及び作業実行部108Bを有する。第3制御部20Cは、情報管理部106C及び作業実行部108Cを有する。
【0064】
トレイ検出部104は、光電管センサ56(
図5)からのトレイ検出信号の入力によりトレイ54(
図5)を検知し、検知した瞬間の排出コンベヤ42(
図5)のエンコーダ52(
図5)の検出値を情報管理部106Aへ転送する。予め作業内容設定部102Aで、光電管センサ56の位置や排出コンベヤ42の進行方向を第1機構部14A(
図5)のロボット座標系(
図1の実施形態ではコンベヤ座標系30)に関連付けておくことにより、情報管理部106Aは、トレイ検出部104から転送されたトレイ検出時のエンコーダ52の検出値を用いて、検知されたトレイ54の位置並びに整列パターン58のパターン要素P1〜P4(
図12)の座標値及び相対回転角度を、ロボット座標系で得ることができる。全てのパターン要素P1〜P4の座標値及び相対回転角度の情報は、情報管理部106Aに一旦保持されるが、第1機構部14Aが物品Mを置かなかったパターン要素P1〜P4の情報は、前述したパケットγの情報として、通信ネットワークを介して第2制御部20Bの情報管理部106Bに転送される。同様に、情報管理部106Bに保持されたパターン要素P1〜P4の情報のうち、第2機構部14Bが物品Mを置かなかったパターン要素P1〜P4の情報は、前述したパケットγの情報として、通信ネットワークを介して第3制御部20Cの情報管理部106Cに転送される。
【0065】
図11に示すように、画像処理部18は、物品検出部32、物品追跡部34及び補助追跡部50に加えて、条件設定部110及び物品管理部112を有する。条件設定部110では、検出又は追跡対象の物品Mの教示モデル画像、物品検出に用いるパラメータ(座標値、回転角度、寸法等)、第1〜第3カメラ16A、16B、16C(
図5)のキャリブレーションデータ等の、物品Mの検出や追跡を行うための諸条件を設定する。また条件設定部110は、第1制御部20Aの作業内容設定部102Aと通信することで、第1〜第3機構部14A、14B、14Cの作業領域22A、22B、22C(
図5)の情報を取得することができる。
【0066】
物品検出部32は、作業開始からコンベヤ12(
図5)が予め定めた時間だけ移動したときに、第1カメラ16Aを用いて物品Mの初期検出を開始する。或いは、光電管センサ等の外部センサ(図示せず)がコンベヤ12の所定時間の移動を検出したときに、物品Mの初期検出を開始することもできる。物品検出部32は、予め登録したモデル画像と一致する画像を第1カメラ16Aが撮像した画像から検索して物品Mを検出する方法(例えば正規化相関法)や、予め登録したモデル画像から物品Mの輪郭を抽出して当該輪郭の情報に基づき第1カメラ16Aが撮像した画像上での物品Mの位置情報を求める方法(例えば一般化ハフ変換法)、第1カメラ16Aが撮像した画像上で予め登録した範囲の面積を持つ領域を抽出することで物品Mの位置情報を求める方法(例えばブロブ検出法)等の、公知の種々の検出アルゴリズムを用いて、物品Mの初期位置情報D1(
図5)を取得することができる。
【0067】
物品検出部32は、物品Mの初期検出に成功すると、検出した物品Mが新規に発見したものであることを示すフラグ(以下、新規フラグと称する)を設定して、新規フラグを、検出した物品Mの初期位置情報D1、当該物品Mを撮像した第1カメラ16AのカメラID、当該物品Mの撮像時刻、当該物品Mの新たな物品IDといった情報と共に、物品管理部112に転送する。物品管理部112は、物品検出部32から受け取ったこれらの情報を、物品追跡部34に転送すると同時に、前述したパケットαの情報として第1制御部20Aの情報管理部106Aに転送する。
【0068】
物品追跡部34は、物品管理部112から受け取った初期位置情報D1に対応する物品Mが、第2カメラ16Bの視野24(
図5)に進入したときに、第2カメラ16Bを用いて当該物品Mの追跡を開始する。また物品追跡部34は、物品管理部112から受け取った物品Mの初期位置情報D1を初期値として、当該物品Mの追跡を行う。物品検出部32での初期検出時に物品Mに与えられた固有の物品IDは、物品追跡部34でもそのまま維持される。物品追跡部34による物品Mの追跡は、第2カメラ16Bが極めて短い第2周期T2で物品Mを繰り返し撮像して得た画像データに基づき、今回撮像時の諸情報(位置情報や外観特徴情報)を前回及びそれ以前の撮像時の諸情報と比較することで、逐次的に行われる。この種の逐次的な追跡を行うための検出アルゴリズムとしては、例えば、非線形・非ガウス型のシステムの推定が可能なパーティクルフィルタ(粒子フィルタ又は逐次モンテカルロ法とも称する)を用いることができる(パーティクルフィルタに関しては、例えば「日本ロボット学会誌 Vol.29, No.5, pp427-430, 2011」を参照)。
【0069】
物品追跡部34は、追跡によって取得した物品Mの最新の移動位置情報D2(
図5)、当該物品Mを撮像した第2カメラ16BのカメラID、当該物品Mの撮像時刻、当該物品Mの物品IDといった情報を、物品管理部112に逐次的に転送する。物品管理部112は、物品追跡部34から受け取ったこれらの情報を、補助追跡部50に転送すると同時に、前述したパケットβの情報として第1〜第3制御部20A、20B、20Cの情報管理部106A、106B、106Cに転送する。
【0070】
補助追跡部50は、物品管理部112から受け取った移動位置情報D2に対応する物品Mが、第3カメラ16Cの視野46(
図5)に進入したときに、第3カメラ16Cを用いて当該物品Mの追跡を開始する。また補助追跡部50は、物品管理部112から受け取った物品Mが第3カメラ16Cの視野46(
図5)に進入したときの移動位置情報D2を初期値として、当該物品Mの追跡を行う。補助追跡部50による追跡処理は、第3カメラ16Cが物品Mを撮像することを除いて、上記した物品追跡部34の追跡処理と実質的に同一である。補助追跡部50は、追跡によって取得した物品Mの最新の追加移動位置情報D3(
図5)、当該物品Mを撮像した第3カメラ16CのカメラID、当該物品Mの撮像時刻、当該物品Mの物品IDといった情報を、物品管理部112に逐次的に転送する。物品管理部112は、補助追跡部50から受け取ったこれらの情報を、前述したパケットβの情報として第1〜第3制御部20A、20B、20Cの情報管理部106A、106B、106Cに転送する。
【0071】
物品追跡部34及び補助追跡部50は、物品追跡のための検出アルゴリズムとして、前述したパーティクルフィルタに代えて、物品検出部32と同様に正規化相関法、一般化ハフ変換法、ブロブ検出法等の公知のパターン認識アルゴリズムを用いることもできる。ここで、正規化相関法、一般化ハフ変換法、ブロブ検出法等は通常、パーティクルフィルタに比べて、検出精度は高いが処理速度は遅い。物品追跡処理に正規化相関法、一般化ハフ変換法、ブロブ検出法等を用いる場合は、物品検出部32で初期検出に用いる場合と比較して、第2及び第3カメラ16B、16Cが撮像した二次元画像上の検出対象領域や検出用パラメータ(座標値、回転角度、寸法、面積等)の範囲を狭めることで、追跡に要する時間の増加を回避することができる。例えば、検出用パラメータとして回転角度を指定する場合、物品検出部32では物品Mの位置や姿勢が不明であるから例えば±180度の範囲で初期検出を行って物品Mの初期位置情報D1を得るのに対し、物品追跡部34及び補助追跡部50で正規化相関法、一般化ハフ変換法、ブロブ検出法等を用いる場合には、初期検出や前回の追跡の結果から大きくは変化しないという前提で±5度の範囲まで狭めて物品検出(追跡)を行うことができる。
【0072】
次に
図13を参照して、画像処理部18の物品追跡部34(
図11)による物品Mの追跡処理の一例を説明する。なお、画像処理部18の補助追跡部50(
図11)は、物品追跡部34による下記の追跡処理と同様の追跡処理を実行できる。
【0073】
図13に示すように、コンベヤ12に不規則配置で支持されて運搬されている複数の物品Mに対し、第1機構部14Aは、任意の物品Mが作業領域22Aに存在している間に当該物品Mの把持及び取出し動作を実行し、第2機構部14Bは、任意の物品Mが作業領域22Bに存在している間に当該物品Mの把持及び取出し動作を実行する。他方、第2カメラ16Bは、視野24内の全ての物品Mを第2周期T2で繰り返し撮像する。ここで、物品追跡部34が行う追跡処理の計算負荷は、主として、第2カメラ16Bが撮像した画像データのサイズ、物品検出に用いるアルゴリズムの種類、検出対象となる物品Mの個数、及び物品検出用のパラメータの範囲によって決まる。検出する物品Mの個数及びアルゴリズムが共通と仮定した場合、画像データの解像度を低くすること、又は検出用のパラメータの範囲を狭めることにより、物品追跡部34の計算負荷が軽減する。
【0074】
第2カメラ16Bが撮像した画像データのサイズすなわち解像度は、物品追跡部34による物品Mの検出精度に影響し、第1及び第2機構部14A、14Bによる物品把持の動作精度に影響する。現実には、第1及び第2機構部14A、14Bの作業領域22A、22Bの中では、高い検出精度及び動作精度が要求される一方、作業領域22A、22Bの外での検出精度は第1及び第2機構部14A、14Bの把持動作と無関係である。そこで、第2カメラ16Bの視野24のうち、作業領域22A、22Bの中と外とで異なる解像度の画像データを用いることにより、物品追跡部34の計算負荷を軽減することができる。
【0075】
図11に示すように、画像処理部18の条件設定部110は、第1制御部20Aの作業内容設定部102Aと通信して、第1及び第2機構部14A、14Bの作業領域22A、22Bがコンベヤ12のどこに設定されているかについての情報を、コンベヤ座標系30における位置情報として取得する。物品追跡部34は、条件設定部110が取得した作業領域22A、22Bの情報に基づき、作業領域22A、22Bの中にある物品Mを、要求される検出精度に対応する第1解像度の画像データを用いて検出する一方、作業領域22A、22Bの外にある物品Mを、第1解像度よりも低い第2解像度の画像データを用いて検出するように構成できる。この構成により、第2カメラ16Bの視野24の全体に対し第1解像度の画像データを用いて物品Mを検出する構成に比べて、物品追跡部34の計算負荷を軽減できる。なお、補助追跡部50についても、同様の手法により追跡処理の計算負荷を軽減できる。
【0076】
上記構成において、物品追跡部34は、第1及び第2機構部14A、14Bの作業領域22A、22B(
図13)の中を撮像した第1解像度(高解像度)の画像データと、作業領域22A、22Bの外を撮像した第2解像度(低解像度)の画像データとを取得できるように構成される。同様に、補助追跡部50は、第3機構部14Cの作業領域22C(
図5)の中を撮像した第1解像度の画像データと、作業領域22Cの外を撮像した第2解像度の画像データとを取得できるように構成される。解像度が異なる画像データを取得するために、第2又は第3カメラ16B、16Cは、解像度を第1解像度と第2解像度とで切り替える切替機構114(
図4)を有することができる。この構成では、第2又は第3カメラ16B、16Cは、視野24、46内の全体を第1解像度及び第2解像度のそれぞれで撮像し、物品追跡部34又は補助追跡部50は、作業領域22A、22B又は作業領域22Cの中にある物品Mを第1解像度の画像データを用いて検出する一方、作業領域22A、22B又は作業領域22Cの外にある物品Mを第2解像度の画像データを用いて検出することができる。第2又は第3カメラ16B、16Cが切替機構114を有さない場合は、第2又は第3カメラ16B、16Cは視野24、46内を所定の解像度で撮像し、物品追跡部34又は補助追跡部50は、この撮像データの解像度を公知の画像処理によって低下させることで、第1解像度の画像データと第2解像度の画像データとを取得できる。
【0077】
上記した解像度の選択の代わりに、或いはそれに加えて、物品追跡部34は、第1処理速度及び第1精度を達成する第1の検出アルゴリズムと、第1処理速度よりも速い第2処理速度又は第1精度よりも低い第2精度を達成する第2の検出アルゴリズムとから、いずれか一方の検出アルゴリズムを選択して使用できるように構成できる。この場合、物品追跡部34は、第1及び第2機構部14A、14Bの作業領域22A、22Bの中にある物品Mを、第1の検出アルゴリズムを用いて検出し、作業領域22A、22Bの外にある物品Mを、第2の検出アルゴリズムを用いて検出するように構成できる。第1の検出アルゴリズムとしては、正規化相関法、一般化ハフ変換法、ブロブ検出法等を採用できる。第2の検出アルゴリズムとしては、パーティクルフィルタを採用できる。補助追跡部50も同様に構成できる。
【0078】
例えば、物品追跡部34は、第2カメラ16Bに視野24の全体を第2解像度(低解像度)で撮像させた画像データから、第2の検出アルゴリズム(パーティクルフィルタ)を用いて視野24の全体で物品Mを検出する。この物品検出は、物品追跡部34による追跡処理において、物品Mの正確な移動位置情報D2を取得する前段の予備的処理として行われる。次いで物品追跡部34は、第2カメラ16Bに視野24の全体を第1解像度(高解像度)で撮像させた画像データのうち、作業領域22A、22Bを含み作業領域22A、22Bよりも若干広い領域の画像データから、第1の検出アルゴリズム(正規化相関法、一般化ハフ変換法、ブロブ検出法)を用いて、作業領域22A、22Bの中に少なくとも部分的に存在する物品Mを検出する。この物品検出は、物品追跡部34による追跡処理において、物品Mの正確な移動位置情報D2を取得するための補完的処理として行われる。第1の検出アルゴリズム(正規化相関法、一般化ハフ変換法、ブロブ検出法)を用いる際には、第2の検出アルゴリズム(パーティクルフィルタ)を用いた予備的検出により、物品Mの存在領域が所定の検出用パラメータ(座標値、回転角度、寸法、面積等)の範囲内である程度絞り込まれているので、それに応じて検出用パラメータ(座標値、回転角度、寸法、面積等)の範囲を狭めることで、追跡に要する時間の増加を回避できる。
【0079】
物品追跡部34は、共通の作業領域22A、22Bの中に存在する物品Mに対しても、処理速度や精度の異なる検出アルゴリズムを用いて追跡処理を行うことができる。例えば、第1又は第2機構部14A、14Bが把持する可能性の高い運搬方向下流側から所定個数の物品Mについてのみ、第1(高精度)の検出アルゴリズムを用いて検出を行うことができる。例えば、第1又は第2機構部14A、14Bのハンドが2個の物品Mを同時に把持する構成を有する場合、物品追跡部34は、反復実施する毎回の物品追跡処理の度に下流側から2個の物品Mだけを高精度に検出するように構成できる。この構成によれば、検出する物品Mの個数を減らして、物品追跡部34の計算負荷を軽減することができる。
【0080】
図1の物品移送装置10も上記と同様の構成を有することができる。物品移送装置10では、物品追跡部34は、ロボット14が物品把持作業を行う作業領域22の中を撮像した第1解像度の画像と、第1解像度よりも低い第2解像度の画像であって、作業領域22の外を撮像した第2解像度の画像とを取得でき、作業領域22の中にある物品Mを第1解像度の画像を用いて検出し、作業領域22の外にある物品Mを第2解像度の画像を用いて検出するように構成できる。また物品移送装置10では、物品追跡部34は、第1処理速度及び第1精度を達成する第1の検出アルゴリズムと、第1処理速度よりも速い第2処理速度又は第1精度よりも低い第2精度を達成する第2の検出アルゴリズムとから、いずれか一方の検出アルゴリズムを選択して使用でき、ロボット14の作業領域22の中にある物品Mを第1の検出アルゴリズムを用いて検出し、作業領域22の外にある物品Mを第2の検出アルゴリズムを用いて検出するように構成できる。
【0081】
次に
図14を参照して、画像処理部18の物品追跡部34(
図11)による物品Mの追跡処理の他の例を説明する。なお、画像処理部18の補助追跡部50(
図11)は、物品追跡部34による下記の追跡処理と同様の追跡処理を実行できる。
【0082】
図14に示すように、2個の物品M1、M2がコンベヤ12上で互いに重なり合った状態で第2機構部14Bの作業領域22Bに供給される状況を想定する。この状況で、物品M1に大部分が隠蔽されている物品M2は、物品検出部32(
図11)によって初期検出されなかったものとする。初期検出されなかった物品M2については、パケットαの情報が第1制御部20A(
図11)に送られないので、パケットγの情報も作成されず、結果として第2制御部20B(
図11)は物品M2の存在を認識していない。他方、物品検出部32によって初期検出された物品M1については、第2制御部20Bはパケットγの情報から存在を認識している。
【0083】
上記した状況下で、第2制御部20Bは、作業内容設定部102B(
図11)で設定した作業割合に従って、物品M1を把持するか否かを判断する。物品M1を把持する判断が行われて、作業実行部108Bからの指令により第2機構部14Bが物品M1をコンベヤ12から取り上げると、物品M2が露出して第2カメラ16Bに撮像される。画像処理部18の物品追跡部34は、第2機構部14Bが物品M1をコンベヤ12から取り上げたことを認識しないので、物品M1の追跡処理を継続して実行しようとする。つまり物品追跡部34は、ロボット14(第2機構部14B)が物品Mを把持した後、予め定めた時間が経過するまで、移動位置情報D2の反復取得を継続して実行する。物品M1と外観特徴が類似した物品M2は、物品追跡部34により、物品M1の検出と同様の手順で検出される。
【0084】
コンベヤ12上での物品M2の検出用パラメータ(座標値、回転角度、寸法、面積等)の値が物品M1と全く同一の場合は、物品追跡部34は、物品M2を物品M1として継続して追跡することになる。これに対し、図示のように、コンベヤ12上での物品M2の検出用パラメータ(座標値、回転角度、寸法、面積等)の値が物品M1と異なる場合は、物品追跡部34は、物品M2を新たに検出した物品Mとして追跡する。物品追跡部34が作業領域22Bの中で物品M1を追跡する際に、前述したように、第2(低精度)の検出アルゴリズム(パーティクルフィルタ)を用いて物品M1の予備的検出を行った後に、検出用パラメータ(座標値、回転角度、寸法、面積等)の範囲を狭めた上で第1(高精度)の検出アルゴリズム(正規化相関法、一般化ハフ変換法、ブロブ検出法)を用いて物品M1の補完的検出を行っていた場合には、物品M1とは検出用パラメータ(座標値、回転角度、寸法、面積等)の値が異なる物品M2の検出が困難になる場合がある。そこで物品追跡部34は、予備的検出で物品M1らしきものの存在を検出しているにもかかわらず補完的検出で物品M1を検出できなかった場合に、検出用パラメータ(座標値、回転角度、寸法、面積等)の範囲を予め定めた適当な範囲だけ広げて、第1の検出アルゴリズム(正規化相関法、一般化ハフ変換法、ブロブ検出法)により物品M1の補完的検出を再試行する。
図14に示す例では、物品M1と物品M2とはほぼ同じ位置に配置されていて姿勢が若干異なるだけであるから、検出用パラメータのうち回転角度の範囲を、例えば±5度に狭めていたものを±180度まで拡大することにより、物品追跡部34は物品M1(実際は物品M2)を検出できる。
【0085】
物品M2を物品M1として検出した物品追跡部34は、物品M1の姿勢が追跡途中で変化したと見なして、姿勢変化後の物品M1(実際は物品M2)を新たに検出した物品Mとして扱う。物品追跡部34が新たに検出した物品Mの位置情報は、初期位置情報D1と同様に処理される。物品追跡部34は、新たに検出した物品M(物品M2)に新規フラグを設定し、この新規フラグを、当該物品Mの位置情報(初期位置情報D1に相当)、当該物品Mを撮像した第2カメラ16BのカメラID、当該物品Mの撮像時刻、当該物品Mの新たな物品IDといった情報と共に、物品管理部112に転送する。物品管理部112は、通常は物品追跡部34から受け取った情報を前述したようにパケットβとして第1〜第3制御部20A、20B、20Cに転送するが、物品追跡部34から受け取った情報に新規フラグが付されている場合は、それら情報をパケットαの情報として第1制御部20Aの情報管理部106Aのみに転送する。
【0086】
図14の例では、物品M2は第1機構部14Aの作業領域22A(
図5)を通り過ぎて第2機構部14Bの作業領域22Bに進入しているので、情報管理部106Aは、物品追跡部34から物品管理部112を介して受け取ったパケットαの情報に基づきパケットγの情報を生成し、パケットγの情報を直ちに第2制御部20Bの情報管理部106Bに転送する。情報管理部106Bは、第2機構部14Bが物品M1をコンベヤ12から取り上げたことを認識しているので物品M1に関するパケットγの情報を削除する一方、新たな物品M(物品M2)に関するパケットγの情報を保持し、作業内容設定部102Bで設定した作業割合に従って、新たな物品M(物品M2)を把持するか否かを判断する。
【0087】
物品追跡部34は、上記したような物品同士が重なった状況における追跡処理と同様の追跡処理を、物品検出部32(
図11)が物品Mの初期位置情報D1を取得した後に当該物品Mがコンベヤ12上で位置ずれを生じた状況でも実行できる。例えば
図14に示す状況で、物品M1による物品M2の隠蔽範囲が小さい場合には、物品検出部32は物品M1及び物品M2の双方を初期検出する。物品追跡部34は、物品M1、M2の双方を追跡するが、それら物品M1、M2が第2機構部14Bの作業領域22Bに進入すると、物品M2は物品M1よりも下流側に存在するので、第2制御部20B(
図11)は第2機構部14Bを、隠蔽されている物品M2を物品M1よりも先に取り上げるように制御する。物品M2が先に取り上げられると、支えを失った物品M1はコンベヤ12上で位置ずれを生ずる可能性が高い。
【0088】
物品M1がコンベヤ12上で位置ずれを生じた場合、物品追跡部34は物品M1を新たな物品Mとして追跡処理を行う。このとき、前述した予備的検出としての第2の検出アルゴリズム(パーティクルフィルタ)を用いた追跡処理により、位置ずれ後の物品M1のおおよその位置を把握できる。予備的検出後、把握したおおよその位置を含む範囲に検出範囲を絞り込んで、前述した補完的検出としての第1の検出アルゴリズム(正規化相関法、一般化ハフ変換法)を用いた追跡処理を行うことにより、位置ずれ後の物品M1の正確な移動位置情報D2を取得することができる。コンベヤ12上での物品M1の位置ずれ量が大きく、保険的検出で物品M1を検出できなかった場合は、物品同士が重なった状況における前述した処理と同様に、検出用パラメータ(座標値、回転角度、寸法等)の範囲を予め定めた適当な範囲だけ広げて補完的検出を再試行すればよい。
【0089】
以下、
図15〜
図22に示すフローチャートを参照して、
図11に示す画像処理部18及びロボット制御部20(第1〜第3制御部20A、20B、20C)が実行する処理フローを詳細に説明する。
【0090】
図15は、画像処理部18の物品管理部112が、物品検出部32、物品追跡部34及び補助追跡部50から物品情報を受け取って、第1〜第3制御部20A、20B、20Cの情報管理部106A、106B、106Cにパケットα及びパケットβの情報として出力するフローを示す。まずステップS10で、物品管理部112は、物品検出部32、物品追跡部34又は補助追跡部50から送られる物品情報を受信する。物品情報は、検出した物品Mの1つずつについて送られる。ステップS11で、物品管理部112は、受信した物品情報が、第1〜第3制御部20A、20B、20Cに送るには不適当な情報か否か(つまり物品情報に送信不可フラグ(後述する)が付されているか否か)をチェックする。送信不可フラグが付されていた場合は、ステップS10に戻り、次の物品情報の受信を待機する。送信不可フラグが付されていなかった場合は、ステップS12で、物品管理部112は、検出した物品が新たに検出した物品か否か(つまり物品情報に新規フラグが付されているか否か)をチェックする。新規フラグが付されていた場合は、物品管理部112は、ステップS13でパケットαを作成し、ステップS14でパケットαを第1制御部20Aに送る。また、パケットαに含まれる物品Mの初期位置情報D1は、物品追跡部34が物品Mの追跡を開始するために必要な情報であるから、物品管理部112は、ステップS15で、パケットαに含まれる情報(以下、新規物品情報と称する)を物品追跡部34に送る。
【0091】
ステップS12で物品情報に新規フラグが付されていなかった場合は、物品管理部112は、ステップS16でパケットβを作成し、ステップS17〜S19でパケットβを第1〜第3制御部20A、20B、20Cの情報管理部106A、106B、106Cに送る。次に物品管理部112は、ステップS20で、ステップS10で受信した物品情報が第2カメラ16Bによって撮像されたもの否かをチェックする。第2カメラ16Bによって撮像されたものでなかった場合は、ステップS10に戻り、次の物品情報の受信を待機する。第2カメラ16Bによって撮像されたものであった場合は、パケットβに含まれる物品Mの移動位置情報D2が、補助追跡部50が物品Mの追跡を開始するために必要な情報である可能性が有るので、物品管理部112は、ステップS21で、パケットβに含まれる情報を補助追跡部50に送る。以上の処理が完了したら、ステップS10に戻って次の物品情報の受信を待機する。
【0092】
図16は、画像処理部18の物品追跡部34による追跡処理のフローを示す。物品追跡部34は、第2周期T2に対応するタイマ駆動に従って物品Mの追跡処理を反復して行うとともに、物品管理部112から前述した新規物品情報を受ける度に当該情報を適宜に処理する。物品追跡部34は、まずステップS30で、一定の時間間隔で発生するタイマの割込み信号を受信するか、又は物品管理部112からの新規物品情報を受信し、ステップS31で、割込み信号の受信であったか否かを判断する。割込み信号の受信でなかった場合(つまり新規物品情報を受信した場合)、物品追跡部34は、ステップS37で、新たに追跡対象となった物品を、予め用意した追跡物品リストに記録して追跡物品リストを更新し、ステップS30に戻って次の受信を待機する。割込み信号の受信であった場合、物品追跡部34は、物品Mの今回の追跡処理を開始する。物品追跡部34は、ステップS32で、第2カメラ16Bの視野24(
図5)内の二次元画像データを第1解像度(高解像度)で取得し、ステップS33で、視野24内の二次元画像データを第2解像度(低解像度)で取得する。
【0093】
ステップS32で取得した第1解像度の画像データは、ステップS35の「補完的検出」(
図18)の処理で使用され、ステップS33で取得した第2解像度の画像データは、ステップS34の「予備的検出」(
図17)の処理で使用される。ステップS35で検出された物品Mの情報は、ステップS36の「物品情報送信」(
図19)の処理で物品管理部112へ送られる。物品追跡部34は、物品Mの情報を物品管理部112へ送った後、同じ物品Mに対して実行する次回追跡処理における「予備的検出」及び「補完的検出」のために、ステップS37で、追跡物品リストに記載されている当該物品Mの撮像時刻及び移動位置情報D2を更新する一方で、「補完的検出」において新たに発見された物品Mが有る場合は当該物品Mを追跡物品リストに追加する。追跡物品リストの更新が完了すると、ステップS30に戻って、次の割込み信号又は新規物品情報の受信を待機する。
【0094】
図17は、
図16のフローチャートにおける予備的検出ステップS34の詳細なフローを示す。予備的検出は第2解像度(低解像度)の画像データを使って行われる。物品追跡部34は、ステップS40で、取得した第2解像度(低解像度)の画像を読み込む。次にステップS41で、今回の追跡対象の物品Mの情報が記載されている追跡物品リストを読み込む。読み込んだ追跡物品リストに記載されている物品Mの1つずつに対し、追跡処理が実行される。物品追跡部34は、ステップS42で、今回追跡している物品Mが追跡物品リストのi番目の物品であることを示すカウンタ変数iを、1に初期化する。ステップS43では、カウンタ変数iを追跡物品リストに記載されている物品数と比較する。カウンタ変数iが物品数を超えた場合は、追跡物品リストに記載されている全ての物品Mの追跡が完了したと判断して、予備的検出を終了する。カウンタ変数iが物品数を超えていない場合は、物品追跡部34は、ステップS44で、追跡物品リストのi番目の物品Mの予備的検出を行う。ここでは予備的検出のアルゴリズムとしてパーティクルフィルタを選択しているが、他の検出アルゴリズムを選択することもできる。
【0095】
次に物品追跡部34は、ステップS45で、予備的検出の結果として追跡対象の物品Mのおおよその位置情報を取得できたか否か(つまり予備的検出が成功したか否か)を判断し、予備的検出が成功した場合は、ステップS46で、追跡物品リストに記載されている当該物品Mの位置情報や撮像時刻等の情報を今回取得した情報に更新する。予備的検出が成功しなかった場合は、第1又は第2機構部14A、14Bが物品Mを取り上げたこと等の理由により、追跡対象の物品Mが実際にコンベヤ12上から消失したことを示唆しているので、その後の追跡を行わないように、ステップS47で、追跡物品リストから当該物品Mの情報を削除する。なお
図17のフローチャートでは、1回の検出不成功で物品情報を削除しているが、例えば検出不成功のときに予備的検出を再試行し、3回続けて予備的検出が不成功であった場合に物品情報を削除する等、物品情報を削除する条件を任意に設定することもできる。追跡対象の物品Mの予備的検出を再試行している間は、他の物品の追跡結果からコンベヤ12の運搬速度を算出し、この運搬速度と、前回と今回の予備的検出における物品撮像時刻の間隔とを用いて、追跡対象の物品Mの現在の位置及び姿勢を予測することで位置情報を更新することができる。物品情報の更新や削除が完了すると、物品追跡部34は、ステップS48で、カウンタ変数iを1だけ増加させ、ステップS43に戻ってカウンタ変数iの評価を行う。
【0096】
図18は、
図16のフローチャートにおける補完的検出ステップS35の詳細なフローを示す。補完的検出は、第1〜第3機構部14A、14B、14Cの作業領域22A、22B、22Cを撮像した第1解像度(高解像度)の画像データを使って行われる。物品追跡部34は、ステップS50で、第1〜第3機構部14A、14B、14Cが上流側からi番目の機構部であることを示すカウンタ変数iを、1に初期化する。次にステップS51で、カウンタ変数iを第1〜第3機構部14A、14B、14Cの総台数(この実施形態では3)と比較し、カウンタ変数iが総台数を超えた場合は、今回の追跡処理における補完的検出を完了する。カウンタ変数iが総台数を超えていない場合は、物品追跡部34は、ステップS52で、i番目の機構部の作業領域が第2カメラ16Bの視野24内に有るか否かをチェックする。i番目の機構部の作業領域が視野24内に有れば、ステップS53で、i番目の機構部の作業領域を撮像した第1解像度(高解像度)の画像データを読み込む。作業領域が視野内に有るか否かのチェックは、ロボット座標系における作業領域の座標値をカメラ座標系に変換して行ってもよいし、使用者が作業領域を予め追跡範囲として指定して行ってもよい。
図5の実施形態では、第1機構部14Aの作業領域22Aと第2機構部14Bの作業領域22Bとが視野24内にあるので、i=1又は2のときにステップS53を実行する。i番目の機構部の作業領域が視野24内に無ければ、ステップS66に移行してカウンタ変数iを1だけ増加させ、ステップS51に戻る。
【0097】
次に物品追跡部34は、ステップS54で、i番目の機構部の作業領域内で今回の追跡対象となる物品Mが運搬方向下流側からj番目の物品であることを示すカウンタ変数jを1に初期化するとともに、今回追跡処理で実際に補完的検出に成功した物品数を示すカウンタ変数kを0に初期化する。補完的検出は、機構部がその作業領域内で物品Mを実際に把持して取り上げるために行うものであるから、作業領域に存在する全ての物品に対して常に行う必要はなく、運搬方向下流側から数えて、一度の作業で機構部が取り上げる個数(つまり実際のアプリケーションに応じて決まる必要検出個数)の物品を検出できればよい。そこで物品追跡部34は、ステップS55で、カウンタ変数kを必要検出個数と比較し、必要検出個数以上であれば、その作業領域での補完的検出を終了して、ステップS66へ移行する。カウンタ変数kが必要検出個数に達していない場合、物品追跡部34は、ステップS56で、追跡対象となる運搬方向下流側からj番目の物品Mが、i番目の機構部の作業領域内に存在するか否かをチェックする。
【0098】
追跡対象となるj番目の物品Mがi番目の機構部の作業領域に存在していない場合は、その作業領域での補完的検出を終了して、ステップS66へ移行する。j番目の物品Mがi番目の機構部の作業領域に存在している場合は、ステップS57で、予備的検出(
図17)で取得されている当該物品Mのおおよその位置情報に基づき検出範囲を絞り込む(例えば二次元画像上の物品MのX軸方向及びY軸方向の寸法のそれぞれ2倍程度の範囲に絞り込む)とともに、検出用パラメータの範囲を比較的狭い範囲(例えば回転角度の場合に前回検出結果±5度程度)に設定して、この第1の検出用パラメータで物品Mの補完的検出を実行する。このときの検出アルゴリズムは、正規化相関法や一般化ハフ変換法を使用できる。
【0099】
物品追跡部34は、ステップS58で、第1の検出用パラメータによる物品Mの補完的検出が成功したか否かをチェックする。補完的検出が成功した場合は、物品追跡部34は、ステップS63に移行してカウンタ変数kを1だけ増加させ、ステップS64で、補完的検出によって取得した物品Mの情報を追跡物品リストに反映する。補完的検出が成功しなかった場合は、
図14を参照して説明したように、当該物品Mがコンベヤ12上で位置ずれを生じたものであったり、他の物品を隠蔽していた当該物品Mが既に機構部に取り上げられた結果として隠蔽されていた物品Mが新たに検出されたものであったり等、前回追跡処理における検出時に比べて物品Mの状態が変化している可能性が高い。そこで物品追跡部34は、ステップS59で、第1の検出用パラメータよりも広い範囲(例えば回転角度の場合に前回検出結果±180度程度)に設定した第2の検出用パラメータで、物品Mの補完的検出を実行する。
【0100】
物品追跡部34は、ステップS60で、第2の検出用パラメータによる物品Mの補完的検出が成功したか否かをチェックする。補完的検出が成功した場合は、物品追跡部34は、ステップS61で、当該物品Mを前回追跡処理までは存在しなかった新たな物品として扱うべく新規フラグを設定し、次いでステップS63で、カウンタ変数kを1だけ増加させ、ステップS64で、補完的検出によって取得した物品Mの情報を追跡物品リストに反映する。この物品Mの情報は、追跡処理は前回から継続して行われているものの新たな物品の情報として追跡物品リストに記載されるので、前述したように物品管理部112がパケットβではなくパケットαの情報として扱うことになる。
【0101】
補完的検出が成功しなかった場合は、物品Mの予備的検出には成功したものの、初期検出時や前回の補完的検出時に比べて物品Mの位置や姿勢の変化が想定範囲を逸脱している等、当該物品Mを取り出せる状況ではないことが考えられる。そこで物品追跡部34は、ステップS62で送信不可フラグを設定し、ステップS64で、追跡物品リストに記載されている物品Mの情報に送信不可フラグを付加して物品情報を更新する。その後、物品追跡部34は、ステップS65でカウンタ変数jを1だけ増加させ、ステップS55に戻って補完的検出を繰り返す。
【0102】
図19は、
図16のフローチャートにおける物品情報送信ステップS36の詳細なフローを示す。物品追跡部34は、まずステップS70で、物品管理部112に物品情報を送信した物品の個数を示すカウンタ変数iを1に初期化する。次にステップS71で、前述した予備的検出及び補完的検出の結果として物品管理部112に送信されるべき情報を得ている物品の総数をカウンタ変数iと比較し、カウンタ変数iが物品総数を超えていれば物品情報の送信を終了する。カウンタ変数iが物品総数を超えていない場合は、物品追跡部34はステップS72で、物品情報を情報管理部112へ送信する。その後、物品追跡部34は、ステップS73でカウンタ変数iを1だけ増加させ、ステップS71に戻る。
【0103】
図20は、第1制御部20Aの情報管理部106A(
図11)の処理フローを示す。情報管理部106Aは、物品情報やトレイ54の整列パターン58(
図6)の情報のタイマ駆動に従う更新処理、トレイ検出部104から送られるトレイ検出情報に対する処理、物品管理部112から送られる物品情報に対する処理を行う。情報管理部106Aは、まずステップS80で、一定の時間間隔で発生するタイマの割込み信号を受信するか、又は物品管理部112からの物品情報(パケットα、パケットβ)若しくはトレイ検出部104からのトレイ検出情報を受信し、ステップS81で、割込み信号の受信であったか否かを判断する。割込み信号の受信であった場合、情報管理部106Aは、所定周期で行うべき以下の処理を実行する。つまりステップS87で、パケットβによる情報更新が所定時間に渡って物品管理部112から送られない物品の情報を削除する。またステップS88で、物品の現在位置に基づき必要に応じて作業実行部108A又は第2制御部20Bの情報管理部106Bに物品情報を送信する(詳細は
図21)。またステップS89で、トレイ54の整列パターン58における個々のパターン要素の現在位置情報に基づき必要に応じて作業実行部108A又は第2制御部20Bの情報管理部106Bに整列パターン情報(後述する)を送信する(詳細は
図22)。これらの処理を行った後、情報管理部106Aは、ステップS80に戻って次の受信を待機する。
【0104】
割込み信号の受信でなかった場合、情報管理部106AはステップS82で、トレイ検出情報の受信であったか否かをチェックする。トレイ検出情報の受信であった場合、情報管理部106AはステップS85で、整列パターン58を定義する整列フォーム59(
図6)の情報から、個々のパターン要素の位置情報を含む整列パターン情報を生成する。整列パターン情報には、トレイ54を検出した瞬間のエンコーダ52の検出値も含まれており、現在のエンコーダ52の検出値を読み取ることで個々のパターン要素の位置情報を随時更新できる。
【0105】
トレイ検出情報の受信でなかった場合は、物品管理部112から物品情報を受信したことになるので、情報管理部106Aは、ステップS83で、受信した物品情報がパケットαの情報か否かをチェックする。パケットαの情報であった場合には、新規の物品情報であるから、情報管理部106AはステップS86で、第1〜第3制御部20A、20B、20Cの間で管理するためのパケットγの情報を生成する。パケットαの情報でなかった場合は、受信した物品情報はパケットβの情報(つまり既存の物品情報の更新)であるから、情報管理部106AはステップS84で、第1制御部20Aの中で管理しているパケットγの情報をパケットβに従って更新する。
【0106】
図21は、
図20のフローチャートにおける物品情報送信ステップS88の詳細なフローを示す。情報管理部106Aは、ステップS90で、物品Mが第1機構部14Aの作業領域22Aを通過したか否かをチェックする。物品Mが作業領域22Aを通過していれば、下流側に設置された第2機構部14B又は第3機構部14Cの作業のために、情報管理部106AはステップS94で、物品Mのパケットγの情報を第2制御部20Bの情報管理部106Bへ送り、物品情報送信を終了する。物品Mがまだ作業領域22Aを通過していない場合は、情報管理部106AはステップS91で、当該物品Mが、予め設定された作業割合に従って第1機構部14Aが移送すべき物品であるか否かをチェックする。
【0107】
例えば、第1機構部14A:第2機構部14B:第3機構部14C=1:1:1の作業割合が設定されていた場合、第1機構部14Aは1個の物品を取り上げて2個の物品を見送るように作業を繰り返す。第1機構部14Aのハンドが同時に2個の物品を把持可能な場合は、第1機構部14Aは2個の物品をまとめて取り上げた後に4個の物品を見送るように作業できる。その時点での第1機構部14Aの作業割合を勘案して、第1機構部14Aが移送すべき物品ではないと判断した場合は、物品情報送信を終了する。第1機構部14Aが移送すべき物品であると判断した場合、情報管理部106Aは、ステップS92で、当該物品Mが第1機構部14Aの作業領域22A内に存在するか否かをチェックする。作業領域22A内に存在する場合には、ステップS93で、物品Mのパケットγの情報を作業実行部108Aに送り、物品情報送信を終了する。
【0108】
図22は、
図20のフローチャートにおける整列パターン情報送信ステップS89の詳細なフローを示す。情報管理部106Aは、ステップS100で、現在のエンコーダ56の値から個々のパターン要素の位置情報を更新する。次にステップS101で、パターン要素が第1機構部14Aの作業領域22Aを通過したか否かをチェックする。パターン要素が作業領域22Aを通過していれば、下流側に設置された第2機構部14B又は第3機構部14Cの作業のために、情報管理部106AはステップS105で、整列パターン情報を第2制御部20Bの情報管理部106Bへ送り、整列パターン情報送信を終了する。パターン要素がまだ作業領域22Aを通過していない場合は、情報管理部106AはステップS102で、当該パターン要素が、予め設定された作業割合に従って第1機構部14Aが物品を置くべきパターン要素であるか否かをチェックする。その時点での第1機構部14Aの作業割合を勘案して、第1機構部14Aが物品を置くべきパターン要素でないと判断した場合は、整列パターン情報送信を終了する。
【0109】
第1機構部14Aが物品を置くべきパターン要素であると判断した場合、情報管理部106Aは、ステップS103で、当該パターン要素が第1機構部14Aの作業領域22A内に存在するか否かをチェックする。作業領域22A内に存在する場合には、ステップS104で、整列パターン情報を作業実行部108Aに送り、整列パターン情報送信を終了する。作業実行部108Aは、情報管理部106Aから受信した物品Mのパケットγの情報と整列パターン情報とに基づき、コンベヤ12から物品Mを取り上げて排出コンベヤ42上のトレイ54に所定の整列パターンで置く物品移送作業を実行する。
【0110】
図20〜
図22は、第1制御部20Aの情報管理部106Aの処理フローを示すものであるが、第2制御部20Bの情報管理部106B及び第3制御部20Cの情報管理部106Cも、トレイ検出情報の処理やパケットαの処理を行わない点を除き、情報管理部106Aの処理フローと実質的に同一の処理を実行できる。