(58)【調査した分野】(Int.Cl.,DB名)
前記パターンマッチング部は、前記第1の複数のモデルのうち、前記実積載高さに前記ワークの板厚を加算した高さから前記実積載高さから前記板厚を減算した高さまでの限定範囲に対応する大きさのモデルを選択して前記第2の複数のモデルとするか、前記限定範囲内の大きさを有するように新たに作成した複数のモデルを前記第2の複数のモデルとする請求項1に記載のワーク検出装置。
前記第2のパターンマッチングの際に、前記第1の複数のモデルのうち、前記実積載高さに前記ワークの板厚を加算した高さから前記実積載高さから前記板厚を減算した高さまでの限定範囲に対応する大きさのモデルを選択して前記第2の複数のモデルとするか、前記限定範囲内の大きさを有するように新たに作成した複数のモデルを前記第2の複数のモデルとする請求項3に記載のワーク検出方法。
【発明を実施するための形態】
【0010】
以下、一実施形態のワーク検出装置及びワーク検出方法について、添付図面を参照して説明する。
図1において、載置場所の一例であるパレット20には、複数枚のワークWが積載されている。パレット20の両側方には、フレーム21a及び21bが配置されている。フレーム21aは、1つの垂直フレームと垂直フレームの上端部に連結された水平フレームを有する。フレーム21bは、一対の垂直フレームと一対の垂直フレームの上端部に連結された水平フレームを有する。
【0011】
フレーム21a及び21bの水平フレームの対向する面には、それぞれ照明器具22a及び22bが取り付けられている。照明器具22a及び22bは例えば複数個の発光ダイオード(LED)を有する。照明器具22a及び22bはパレット20に積載されているワークWに照明光を照射する。
【0012】
フレーム21aには、所定の高さまで延びる垂直フレームと垂直フレームの上端部に連結された水平フレームとよりなるL字状の支柱23が取り付けられている。支柱23(水平フレーム)の先端部にはカメラ30が取り付けられている。カメラ30は単眼カメラである。カメラ30は、パレット20の中央の直上よりもワーク保持用ロボット10から離れる方向に外れた位置からパレット20及びワークWを撮影する。即ち、カメラ30は、パレット20及びワークWを斜め上方の位置から撮影する。これにより、カメラ30は、ワーク保持用ロボット10がパレット20に積載されているワークWを保持して搬送する動作を妨げることがない。
【0013】
カメラ30は、パレット20に積載されているワークWを撮影するとき、照明器具22a及び22bによってワークWに照明光を照射するのがよい。ワークWに照明光を照射するとワークWのエッジが明確化され、後述するパターンマッチングによってワークWの位置を検出する際にワークWの位置が検出しやすくなる。
【0014】
パレット20と加工機の一例であるプレスブレーキ40との間には、多関節のワーク保持用ロボット10が配置されている。ワーク保持用ロボット10は、先端部に、ワークWを吸着するためのグリッパ11を有する。グリッパ11は、複数の吸着パッド12を有する。グリッパ11は最上位の1枚のワークWを吸着して保持し、ワークWを加工するためにプレスブレーキ40に搬送する。ワーク保持用ロボット10及びプレスブレーキ40は加工システムを構成する。
【0015】
図2に示すように、カメラ30が撮影した撮影画像データは画像処理装置300に供給される。後述するように、画像処理装置300は撮影画像データに基づいてパレット20上の最上位のワークWの位置及び角度を検出して、検出した位置及び角度情報をロボット制御装置100に供給する。画像処理装置300は一実施形態のワーク検出装置として機能する。
【0016】
ロボット制御装置100は、ワークWの位置情報に基づいてパレット20上のワークWを保持するよう、ワーク保持用ロボット10を制御する。ワーク保持用ロボット10は、グリッパ11がワークWの上方に位置したきにワークWの表面を検知する表面検知センサ13を備える。
【0017】
画像処理装置300及びロボット制御装置100は、コンピュータ機器によって構成することができる。ロボット制御装置100に画像処理装置300の機能を持たせることによって、ロボット制御装置100と画像処理装置300とが一体化されていてもよい。
【0018】
図3は画像処理装置300の具体的な構成を示す。画像処理装置300は、台形補正部301、パターンマッチング部302、モデル記憶部303、一次検出部304、実積載高さ算出部305、二次検出部306、送受信部307を備える。
【0019】
図4に示すフローチャートは、互いに連携する画像処理装置300及びロボット制御装置100が実行する処理を示す。
図4において、画像処理装置300及びロボット制御装置100が処理を開始すると、台形補正部301は、ステップS301にて、カメラ30から供給された撮影画像データを台形補正する。台形補正部301は、撮影画像データの入力が継続されれば、撮影画像データを継続的に台形補正する。
【0020】
カメラ30はデジタル信号である撮影画像データを出力するか、カメラ30がアナログ信号の撮影画像信号を出力する場合には、図示していないA/Dコンバータが撮影画像信号をデジタル信号に変換して撮影画像データを生成する。台形補正部301は、予め実行されたキャリブレーション作業に基づいて求められたパラメータを用いて、撮影画像データを台形補正する。
【0021】
パターンマッチング部302は、ステップS302にて、台形補正された撮影画像データの画像とモデル記憶部303に記憶されているワークWのモデルとのパターンマッチング(第1のパターンマッチング)を実行して、最も一致度の高い大きさ及び角度のモデルを選択する。
【0022】
具体的には、パターンマッチング部302は次にようにして最も一致度の高いモデルを選択する。
図1に示すような形状を有するワークWを例にすると、モデル記憶部303には
図5に示すモデルMwが記憶されている。モデルMwは、ワークWを示す線画像よりなる。
図6に示すように、モデル記憶部303には、
図5に示すモデルMwの大きさを複数段階で異ならせ、さらに、各大きさのモデルMwを所定角度ずつ回転させた複数のモデルMwが記憶されている。
【0023】
カメラ30が撮影するワークWの撮影画像の大きさは、パレット20に1枚のワークWが配置されていてそれを撮影したときに最も小さく、パレット20に最大枚数のワークWが積載されていて最上位のワークWを撮影したときに最も大きい。そこで、モデル記憶部303は、最小のワークWの撮影画像に対応するモデルMwから最大のワークWの撮影画像に対応するモデルMwまで複数段階の大きさのモデルMwを記憶すればよい。モデル記憶部303は、各大きさのモデルMwを所定角度ずつ回転させた複数のモデルMwを記憶する。所定角度を1度とすれば、モデル記憶部303は、各大きさのモデルMwを1度ずつ回転させた各360個のモデルMwを記憶する。
【0024】
モデル記憶部303は、
図5及び
図6に示すモデルMwだけでなく、パレット20に積載されることがある各種の形状のワークWのモデルMwを記憶している。
【0025】
図7において、カメラ30による撮影画像30iは、パレット20に積載されたワークWの画像を含む。パターンマッチング部302によるステップS302でのパターンマッチングの結果、最上位のワークWの画像の大きさと角度に最も近いモデルMwがマッチングされて選択される。最上位のワークWの画像に最も近いモデルMwが選択されることにより、最上位のワークWが検出される。
【0026】
図4において、パターンマッチング部302は、ステップS303にて、モデルMwのマッチングによってワークWの検出に成功したか否かを判定する。ワークWの検出に成功しなければ(NO)、送受信部307は、ステップS304にて、ワークWが非検出であった旨をロボット制御装置100に通知して、画像処理装置300は処理を終了させる。
図4において、破線の矢印線は、情報またはデータが、画像処理装置300からロボット制御装置100へと送信され、ロボット制御装置100から画像処理装置300へと送信されることを示す。
【0027】
ロボット制御装置100は、ステップS101にて、ワークWが非検出であった旨の通知があったか否かを判定し、ワークWが非検出であった旨の通知があれば(YES)、処理を終了させる。
【0028】
ロボット制御装置100がワーク保持用ロボット10を制御してパレット20に配置された全てのワークWを保持してプレスブレーキ40へと搬送すれば、パレット20にはワークWが配置されていない状態となる。全てのワークWをプレスブレーキ40へと搬送してパレット20にワークWが存在しない状態となると、ワークWは非検出となる。よって、パレット20にワークWが存在しない状態となると、ステップS303にてワークWの検出に成功しなかった状態となる。
【0029】
ステップS303にてワークWの検出に成功すれば(YES)、一次検出部304は、ステップS305にて、ワークWの位置及び角度を検出する。
図8に示すように、一次検出部304は、上記のように選択されたモデルMwの角部の位置(x,y)をパレット20上のワークWの位置と検出する。一次検出部304は、選択されたモデルMwの角度をパレット20上のワークWの角度θとする。
図1に示すパレット20の角部P0の位置が、カメラ30がパレット20を撮影した撮影画像の原点(0,0)とされている。
【0030】
ワークWの高さ、厳密にはワークWの上面の高さ方向の位置と、ワークWの撮影画像の大きさとの対応関係は予め求められている。一次検出部304は、ステップS305にて、マッチングしたモデルMwの大きさに基づいて、ワークWの高さhを検出する。このようにして、一次検出部304は、最上位のワークWの平面的な位置及び高さ方向に位置と角度の各情報を含む位置及び角度情報(x,y,θ,h)を検出する。
【0031】
なお、ワークWの高さhをモデルMwの大きさに基づいて検出していることから、検出された高さhは実際の高さが正確に検出されているとは限らない。高さhが誤差を含むので、ワークWの位置(x,y)も実際の位置が正確に検出されているとは限らない。
【0032】
送受信部307は、ステップS306にて、ワークWの位置及び角度情報(x,y,h,θ)をロボット制御装置100に送信する。ロボット制御装置100は、ステップS102にて、ワークWの位置及び角度情報(x,y,θ,h)を受信したか否かを判定する。ワークWの位置及び角度情報(x,y,θ,h)を受信しなければ(NO)、ロボット制御装置100はステップS102の処理を繰り返す。
【0033】
ロボット制御装置100は、ステップS102にてワークWの位置及び角度情報(x,y,θ,h)を受信すれば(YES)、ステップS103にて、グリッパ11をワークWの上方に移動させて角度θだけ回転させ、高さhに近付けるように低速で下降させる。
図9に示すようにグリッパ11が最上位のワークWに近接すると、表面検知センサ13がワークWの表面を検知する。表面検知センサ13は、接触式の表面検知センサであってもよく、非接触式の表面検知センサであってもよい。
【0034】
ロボット制御装置100は、ステップS104にて、ワーク保持用ロボット10からの表面検知センサ13による表面検知反応があるか否かを判定する。表面検知反応がなければ(NO)、ロボット制御装置100はステップS103及びS104の処理を繰り返す。ステップS104にて表面検知反応があれば(YES)、ロボット制御装置100は、ステップS105にて、ワーク保持用ロボット10から受信した
図9に示す手先高さHrを画像処理装置300に送信する。
【0035】
送受信部307は、ステップS307にて、手先高さHrを受信したか否かを判定する。手先高さHrを受信しなければ(NO)、送受信部307はステップS307の処理を繰り返す。送受信部307が手先高さHrを受信すれば(YES)、実積載高さ算出部305は、ステップS308にて、ワークWの実積載高さHwを算出する。
図9において、グリッパ11の高さをHg、パレット20の上面の設置面からの高さをHpとすると、実積載高さ算出部305は、次の式(1)に基づいてワークWの実積載高さHwを算出する。
Hw=Hr−Hg−Hp …(1)
【0036】
二次検出部306は、ステップS309にて、最上位のワークWの位置及び角度を再検出する。具体的には、実積載高さ算出部305が検出した実積載高さHwはパターンマッチング部302に供給される。パターンマッチング部302は、モデル記憶部303に記憶されている
図1に示すワークWを検出するための全ての大きさのモデルMwのうち、実積載高さHwに基づく一部のモデルMwを選択する。全ての大きさのモデルMwを第1の複数のモデルMwとすれば、実積載高さHwに基づいて選択したモデルMwは、第1の複数より少ない第2の複数のモデルMwである。
【0037】
パターンマッチング部302は、実積載高さHwに基づく一部のモデルMwを選択する代わりに、実積載高さHwに基づいた大きさの新たなモデルMwを作成してもよい。実積載高さHwに基づく一部のモデルMwを選択する方法では、モデル記憶部303に大きさの異なるモデルMwを多く記憶させておく必要があるものの処理速度を高速化できる。実積載高さHwに基づいて新たなモデルMwを作成する方法では、処理速度が遅くなるもののモデル記憶部303の容量を少なくすることができる。
【0038】
一部のモデルMwは、実積載高さHwに誤差を加算した高さから実積載高さHwから誤差を減算した高さまでの限定範囲に対応する複数の大きさを有する複数の角度のモデルMwとするのがよい。実積載高さHwに加減算する誤差は、ワークWの板厚とするのがよい。実積載高さHwに基づいて新たなモデルMwを作成する場合、モデル記憶部303に予め記憶されている限定範囲内の1または複数のモデルMwに基づいて、複数の大きさ及び複数の角度を有する複数のモデルMwを作成すればよい。なお、一次検出部304によってワークWのおおよその角度が検出されているから、第2の複数のモデルMwは全ての角度のモデルMwを含まなくてもよい。第2の複数のモデルMwは、一次検出部304によって検出された角度を中心とした所定の角度の範囲に含まれる角度のモデルMwを含めばよい。
【0039】
パターンマッチング部302は、上記のように選択または新たに作成した第2の複数のモデルMwを用いて、撮影画像データの画像とのパターンマッチング(第2のパターンマッチング)を実行して、最も一致度の高い大きさ及び角度のモデルMwを選択する。ステップS309でのパターンマッチングによって、最上位のワークWの画像の大きさと角度に最も近いモデルMwがマッチングされて選択され、最上位のワークWがより正確に検出される。
【0040】
二次検出部306は、
図8と同様に、ステップS309にて、選択されたモデルMwの角部の位置(x,y)をパレット20上のワークWの位置と検出し、選択されたモデルMwの角度をパレット20上のワークWの角度θとする。二次検出部306が検出した角部の位置(x,y)及び角度θは一次検出部304が検出した角部の位置(x,y)及び角度θとは異なるので、位置(x’,y’)及び角度θ’と称することとする。二次検出部306による再検出の結果、ワークWの位置及び角度情報(x’,y’,θ’,Hw)が得られる。
【0041】
送受信部307は、ステップS310にて、二次検出部306が生成した位置及び角度情報(x’,y’,θ’,Hw)をロボット制御装置100に送信して、処理をステップS302に戻す。
【0042】
ロボット制御装置100は、ステップS106にて、位置及び角度情報(x’,y’,θ’,Hw)を受信したか否かを判定する。位置及び角度情報(x’,y’,θ’,Hw)を受信しなければ(NO)、ロボット制御装置100はステップS106の処理を繰り返す。
【0043】
位置及び角度情報(x’,y’,θ’,Hw)を受信すれば(YES)、ロボット制御装置100は、ステップS107にて、位置及び角度情報(x’,y’,θ’,Hw)に基づいて、グリッパ11を移動もしくは回転(または移動及び回転)させる。また、ロボット制御装置100は、ステップS107にて、ワークWを吸着パッド12によって吸着して保持してプレスブレーキ40へと搬送するようワーク保持用ロボット10を制御する。
【0044】
図10に示すように、ステップS103にてワークWの上方に移動させたグリッパ11の位置が二点鎖線で示すように適切な位置からずれていたとしても、グリッパ11はステップS107にて実線で示す適切な位置へと補正されて、ワークWを保持する。
【0045】
ロボット制御装置100は、ステップS108にて、プレスブレーキ40と協働してワークWの加工作業を実行するようワーク保持用ロボット10を制御する。なお、プレスブレーキ40は図示していないNC装置によって制御される。ワークWの加工作業を完了すると、ロボット制御装置100は、ステップS109にて、加工済みのワークWを所定の載置位置へと搬送し、吸着パッド12による吸着を解除して加工済みのワークWを載置位置に配置して、処理をステップS101に戻す。
【0046】
以上により、カメラ30が単眼カメラであるにもかかわらず、ワークWの位置を高精度に検出することができるから、ワーク保持用ロボット10がワークWの不適切な位置を保持して加工停止または加工不良を発生させることはほとんどない。
【0047】
図4に示す処理によって、ワーク保持用ロボット10によって最上位のワークWが搬送されて加工されるたびに、画像処理装置300によって新たな最上位のワークWの位置が検出されて、ワークWの搬送及び加工が繰り返される。積載されたワークWのうちの最下位のワークWが搬送されて加工されると、ワークWが非検出となるので、画像処理装置300及びロボット制御装置100は処理を終了させる。
【0048】
本発明は以上説明した本実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変更可能である。ワーク検出装置として機能する画像処理装置300は、一部または全てが、コンピュータ機器が備える中央処理装置(CPU)によって構成されていてもよい。CPUが、コンピュータプログラムを実行することによって画像処理装置300における一部または全ての機能を実現してもよい。画像処理装置300における一部または全てが集積回路によって構成されていてもよい。ソフトウェアとハードウェアとの使い分けは任意である。
【解決手段】パターンマッチング部302は、ワークを単眼カメラによって撮影した撮影画像と、複数の大きさ及び複数の角度を有する第1の複数のモデルとのパターンマッチングを実行して、最も一致度の高い大きさ及び角度のモデルを選択する。一次検出部304は、選択したモデルに基づいて、積載されているワークのうちの最上位のワークの位置及び角度を検出する。実積載高さ算出部305は、ワーク保持用ロボット10が検出した手先高さに基づいて、最上位のワークの実積載高さを算出する。二次検出部306は、撮影画像と、実積載高さに基づいて選択または新たに作成した第2の複数のモデルとのパターンマッチングを実行して選択した、最も一致度の高い大きさ及び角度のモデルに基づいて、最上位のワークの位置及び角度を再検出する。