JP3834088B2 - A vision sensor robot system for tracking multiple robots - Google Patents

A vision sensor robot system for tracking multiple robots Download PDF

Info

Publication number
JP3834088B2
JP3834088B2 JP31577595A JP31577595A JP3834088B2 JP 3834088 B2 JP3834088 B2 JP 3834088B2 JP 31577595 A JP31577595 A JP 31577595A JP 31577595 A JP31577595 A JP 31577595A JP 3834088 B2 JP3834088 B2 JP 3834088B2
Authority
JP
Japan
Prior art keywords
robot
work
reservation
robots
workpiece
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP31577595A
Other languages
Japanese (ja)
Other versions
JPH09131683A (en
Inventor
太郎 有松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP31577595A priority Critical patent/JP3834088B2/en
Publication of JPH09131683A publication Critical patent/JPH09131683A/en
Application granted granted Critical
Publication of JP3834088B2 publication Critical patent/JP3834088B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、複数のロボットにトラッキング動作を行なわせるための視覚センサ・ロボットシステムに関し、更に詳しく言えば、ベルトコンベアのような搬送手段によって移動中の対象物(例えば、組立ワーク)の位置を視覚センサを用いて認識し、その結果に基づて補正されたトラッキング動作を複数のロボットに行なわせるようにした視覚センサ・ロボットシステムに関する。本発明は、特に、高い供給頻度でランダムにコンンベア搬送される多数の物品に対するトラッキング動作が要求されるアプリケーション(例えば、部品、食品等の物品のパッキング)に適用して有効なものである。
【0002】
【従来の技術】
工場や流通センターの作業ラインにおいては、作業対象物となるワークがコンベアで次々と作業位置に搬送されて来るシステムが幅広く採用されている。このようなワーク(対象物)に対してロボットを用いて作業を実行する方式には、コンベアを間欠駆動する方式と連続駆動する方式とがあるが、作業効率の観点から後者の方法が用いられるケースが多くなっている。
【0003】
コンベアで連続搬送されるワークに対する作業をロボットに行なわせる場合には、視覚センサとロボットを組み合わせたシステムが広く利用されている。視覚センサは、ロボットの作業位置(トラッキング範囲)の上流側でワークの画像を取得し、これを解析してワーク位置(必要に応じて、ワーク姿勢を含む。以下、同じ。)を求める。求められたワーク位置を表わすデータ(基準位置からのずれを表わすデータ)は、ロボットのトラッキング動作の補正に用いられる。
【0004】
図1は、このような方式を採用した視覚センサ・ロボットシステムの概略を説明するための図である。
同図において、符号1はワーク供給源100に接続された直線搬送コンベアを表わしており、その駆動軸は駆動部2に内蔵されたモータによって駆動される。この駆動軸乃至駆動モータの回転量はパルスコーダ3によってパルス列の形で出力される。符号4,4’は、ワークを検出するセンサであり、コンベア1上に載置されて搬送されて来るワークWを検出位置50で検出する。センサ4,4’には例えば光学式のものが使用される。
【0005】
符号VSは、画像処理装置20とカメラ30(例えば、CCDカメラ)から構成される視覚センサを表わしており、符号31はカメラ30の視野を表わしている。図中に破線で示したように、画像処理装置20はロボットコントローラRCに内蔵された形態をとっている。ロボットコントローラRCは、ロボット制御部10を有し、このロボット制御部10は内蔵された画像処理装置20からワークWの位置・姿勢を表わす検出信号を得てロボットRBの制御に利用する。また、ロボットコントローラRCはセンサ4,4’並びにパルスコーダ3に接続されており、前者の検出信号はワークWの到来の認識に利用され、後者の出力はワークWの搬送位置乃至搬送量の認識に利用される。
【0006】
今、ロボットRBの動作として、(1)ワークWが予め設定されたトラッキング開始ライン60に到達した時点から、P0 を初期位置とするトラッキング動作を開始し、(2)教示位置付近のQ0 でワークWと遭遇し、(3)ワークWがトラッキング終了ライン70(位置Q1 )に到達するまでにワークWに対する把持作業を完了してコンベア1から離れ、(4)ワーク収納部200上の収納位置Q2 でワークWを放し、(5)初期位置P0 へ戻る、という動作を考えると、この動作の実行手順は例えば次のようなものとなる。
【0007】
コンベア1上に供給されたワークWがセンサ4,4’による検出位置に到来すると、センサ4,4’から検出信号が出力され、その時点におけるパルスコーダ計数出力値Ns がロボットコントローラRC内に記憶される。ワークWが更に移動して予め教示された撮影位置(ラインAの位置)に到来すると、カメラ30による撮影が実行されてその画像が画像処理装置20に取り込まれる。
【0008】
カメラ30による撮影のタイミングは、パルスコーダ計数出力値Ns からのインクリメンタル量を監視することで決定される。このインクリメンタル量は、スケールファクタαを媒介にして、センサ4,4’による検出位置から撮影位置(ラインAの位置)までの距離を表わす量となっている。
【0009】
取得された画像は、画像処理装置20内で処理され、ワークWの位置・姿勢を認識する。ワークWの位置・姿勢の認識は、例えばワークW上の特徴点a,b,c,dなどの位置を認識し、予め準備作業時に作成された基準画像データと比較して基準位置からのずれ量を求め、結果を表わすデータをロボット制御部10へ伝達することで達成される。
【0010】
次に、パルスコーダ計数出力値NのNs からのインクリメンタル量がワークWのトラッキング開始位置(ライン60)への到達を表わす値となったならば、トラッキング座標系Σtr(Otr-xy)の移動を開始させ、その直後にトラッキング座標系上でロボットRBの移動(トラッキング動作)を開始させる。ここで、トラッキング座標系Σtrとはコンベアと等速度で同方向に移動するように設定された座標系のことで、その初期位置はベース座標系Σb よりも距離L0 だけ上流側に原点を持ち、且つ、そのx軸がベース座標系Σb のX軸とともに、コンベア1の走行方向と一致するように設定される。ここで、距離L0 は教示点Q0 の位置とトラッキング開始ライン60までの距離とされる。
【0011】
ロボットRBの移動経路は、トラッキング座標系Σtr上で教示経路を実現する形で行なわれるが、補間計算周期で繰り返される移動目標位置の計算にあたっては、視覚センサVSで検出されたずれ量を補償するようにロボット位置(通常、姿勢も含む)の補正が行われる。
【0012】
移動速度を適当な値に教示しておけば、ロボットRBはほぼ図1に符号90で示したような曲線軌道に沿ってワークWに接近し、トラッキング範囲内の適当な位置Q0 でワークWに追いつくことになる。なお、直線軌道80は、仮にベース座標系Σb (Ob −XY)上でロボットRBを制御した場合の移動経路の例を表わしている。
【0013】
ワークWに追いついてからは、トラッキング範囲で把持作業を完了し、ライン70上の位置Q1 でトラッキング動作を終了し、コンベア1から離れ、ワーク収納部200への収納位置Q2 でワークWを放し、初期位置P0 へ復帰する。
【0014】
このようなシステムの一つの問題点は、図1中にワークW’,W”で例示したような短い間隔Dを含むランダムな間隔でワークが供給された場合、ロボットRBが1台しか配備されていないために、後続するワークW”に対するトラッキング動作の実行が困難になるということである。この問題を回避するために従来とられてきた方策には、次のようなものがある。
1.ランダムな間隔で供給されるワークをなんらかの整列手段を用いて整列(搬送方向あるいはそれに垂直な方向について)させた後、複数のロボットでこれを処理する方法。この方法を用いると、整列手段、その制御手段等が必要となり、システムを簡素化する上で好ましくない。
2.ランダムな間隔で供給されるワークを1台のロボットで可能な限り処理し、処理出来なかったワークを1台目のロボットの下流側で再検出し、これを1台目のロボットの下流側に配備した2台目以降のロボットで処理する方法。この方法を用いるとワークの再検出手段が必要となり、やはりシステムを簡素化する上で好ましくない。
【0015】
ロボットの上流側でワークの位置を検出するための機構としては、上述した例のように、カメラ30を備えた視覚センサVSとその上流側でワークを事前検出するセンサ4,4’を組み合わせたものの他に、これを改良し、カメラ30の上流側での事前検出を不要(従って、センサ4,4’は不要。)としたシステムも提案されている。
【0016】
この改良型のワーク位置検出方式は、ワークの供給頻度が高い場合に画像取得・処理を効率的に行えるという利点を有しているが、1台のロボットの処理能力を越えた頻度でワーク供給がなされた場合には、せき止め機構等の整列手段を用いたり、1台目のロボットの下流側でワークの再検出を行なわなければならないという点にかわりはない。
【0017】
【発明が解決しようとする課題】
そこで本発明の目的は、上記従来技術の問題点を解決することにある。即ち、本発明は、コンベア上のランダムな位置に載置され、1台のロボットの処理能力を越える可能性があるランダムな間隔で供給される対象物に対して、ロボットのトラッキング動作を伴う作業を手際よく実行すことが出来る視覚センサ・ロボットシステムを提供することにある。
【0018】
【課題を解決するための手段】
本発明は、視覚センサによる対象物の検出結果に基づいて対象物毎に、当該対象物に対する作業を担当するロボット(作業担当ロボット)指定を行なう作業担当ロボット予約手段をシステムに組み入れ、ワーク毎に指定された作業担当ロボットに当該ワークに関する作業を実行させるようにすることで、上記技術課題を解決したものである。
【0019】
本発明に従ったシステムで使用される視覚センサは、搬送経路上に視野を持つカメラ手段と、カメラ手段に撮影を行なわせて対象物を含む画像を取得する画像取得手段と、該画像取得手段によって取得された画像を処理して対象物の位置に関する情報を取得する画像処理手段を備える。
【0020】
また、作業担当ロボット予約手段は、前記視覚センサによって認識された対象物の内で前記作業担当ロボット予約手段による作業担当ロボットの指定が済んでいない対象物毎に、前記画像処理手段によって得られる当該対象物の位置に関する情報と、前記作業担当ロボット予約手段によって記憶されている作業担当ロボットの指定内容に基づ記複数のロボットの中の少なくとも1つのロボットについて、該ロボットがトラッキング動作を含む作業実行可能なロボットであるか否かを判断する判断手段を含み、前記作業担当ロボット予約手段による作業担当ロボットの指定は、該判断手段による判断の結果に基づいて行われるようになっている。
【0021】
そして、ロボット制御手段は、前記作業担当ロボット予約手段による作業担当ロボットの指定がなされた対象物毎前記作業担当ロボット予約手段によって当該対象物の作業担当ロボットに指定された作業担当ロボットに、前記走行量検出手段によって検出された前記搬送手段の走行量に基づくとともに、前記視覚センサによって取得された当該対象物の位置に関する情報を用いて補正されたトラッキング動作を含む作業を実行させる手段を備えている。
【0022】
好ましい実施形態において、ロボット予約手段は、作業担当ロボット指定内容に関する情報の書き込みと読み出しが可能な予約テーブルを含み前記判断手段は、画像処理手段により取得され前記作業担当ロボット予約手段による作業担当ロボットの指定が済んでいない対象物の位置に関する情報と、前記複数のロボットの各々について設定された動作範囲に関する情報に基づいて、当該対象物に対する作業について要求されるロボットの要動作期間を前記複数のロボットの内の少なくとも一つについて求める手段と、前記要動作期間を表わす情報と前記予約テーブルに書き込まれている、前記動作予約が済んでいる対象物に対する作業担当ロボット指定内容に関する情報とを対照し、前記少なくとも一つのロボットについて指定の適否を判断し、指定が適当であると判断された場合に、前記要動作期間を前記予約テーブルに書き込む手段を備える。
その一方、ロボット制御手段は、対象物に対するトラッキング動作を含む作業の完了時に、前記予約テーブルに書き込まれた当該対象物について、作業担当ロボットの指定内容をクリアする手段を備えている。また、ロボット予約手段は、更に、複数のロボットのいずれも指定出来なかった場合にエラー信号を出力する手段を備えていることが好ましい。
【0023】
また、視覚センサによる対象物の認識に関しては、搬送手段が所定距離を走行したことを表わす検出出力が走行量検出手段から与えられる毎に画像取得と画像処理を実行する手段を用いることが出来る。すべてのワークについて確実な認識を可能にするためには、カメラによる撮影間隔を表わす所定距離を、搬送経路に沿ったカメラ視野の長さから搬送経路に沿ったに対象物の長さを差し引いた距離を下回らず、且つ、ほぼ等しくなるように予め定めることが適当である。
【0024】
【作用】
本発明の視覚センサ・ロボットシステムの最も重要な特徴は、視覚センサにより検出された対象物毎に作業担当ロボットの指定を行なう作業担当ロボット予約手段を導入したことにより、ワーク毎に指定される作業担当ロボットに当該ワークに関する作業を実行させることが可能になった点である。
【0025】
視覚センサは、搬送経路上に視野を持つカメラ手段によって、対象物を含む画像を取得し、取得された画像を処理して対象物の位置に関する情報を取得する。
【0026】
作業担当ロボット予約手段は、画像処理手段により取得された、作業担当ロボットの指定が済んでいない対象物の位置に関する情報と、作業担当ロボットの指定が済んでいる対象物に対するロボットの予約内容に関するに情報に基づいて、トラッキング動作を含む作業を実行可能なロボットを複数のロボットの中から選んで指定する。
【0027】
そして、ロボット制御手段は、作業担当ロボットの指定がなされた対象物毎に、作業担当ロボット予約手段によって指定された作業担当ロボットに、走行量検出手段によって検出された前記搬送手段の走行量に基づくとともに、視覚センサによって取得された当該対象物の位置に関する情報を用いて補正されたトラッキング動作を含む作業を実行させる。
【0028】
好ましい実施形態においては、各象物に対する作業担当ロボット指定内容に関する情報は予約テーブルに設定されたメモリ領域に書き込まれる。一方、視覚センサによって取得された、作業担当ロボットの指定が済んでいない対象物の位置に関する情報と複数のロボットの各々について設定された動作範囲に関する情報に基づいて、当該対象物に対する作業について要求されるロボットの要動作期間が複数のロボットの内の少なくとも一つについて求められる。
【0029】
そして、要動作期間を表わす情報と、予約テーブルに書き込まれている作業担当ロボットの指定が済んでいる対象物に対するロボット指定内容に関する情報とが対照され、少なくとも一つのロボットについて予約の適否が判断される。該予約が適当であると判断された場合には、その要動作期間が予約テーブルに書き込まれる。
【0030】
また、上記判断に基づいて指定された作業担当ロボットが所要の作業を完了した時点で、予約テーブルに書き込まれた当該対象物についての作業担当ロボットの指定内容はクリアされる。更に、システムに無理がある場合(例えば、対象物の供給頻度が過大である場合)に備えて、作業担当ロボット予約手段が複数のロボットのいずれも指定出来なかった場合にエラー信号を出力するようにしても良い。
【0031】
視覚センサによる対象物の認識方式は、一般には任意であり、視覚センサのカメラによる撮影タイミング等を決定するために、視覚センサの上流側で対象物の事前検出を行なう方式(図1で説明した方式)を用いることが出来る。しかし、対象物の事前検出を行なわない方式を採用することも出来る。この方式を採用する場合には、搬送手段が所定距離を走行したことを表わす検出出力が走行量検出手段から与えられる毎に画像取得と画像処理が実行される。
【0032】
その際、すべてのワークについて確実な認識を可能にするためには、カメラによる撮影間隔を表わす所定距離を、搬送経路に沿ったカメラ視野の長さから搬送経路に沿ったに対象物の長さを差し引いた距離を下回らず、且つ、ほぼ等しくなるように予め定めることが適当である。この方式を採用した視覚センサ・ロボットシステムは、対象物の事前検出を行なう手段が不要であり、また、対象物の供給頻度が高い場合に撮影と画像処理の回数を減らすことが出来る利点がある。
【0033】
【発明の実施の形態】
図2は、本発明に係る視覚センサ・ロボットシステムの全体配置の概要を図1と同様の形式で表わしたもので、対応し合う要素の指示には適宜共通の符号を用いた。ここに示した本実施形態では、トラッキング動作を行なうロボットは2台(RB1,RB2)であり、また、ロボットのトラッキング動作のためのワーク位置検出について、前述の改良型の方式(視覚センサのカメラの撮影タイミングを定めるための事前検出は行なわず。)が採用されている。
【0034】
同図に示されているように、多数のワークを経時的に供給するワーク供給源100に接続された直線搬送コンベア1の駆動軸は、駆動部2に内蔵されたモータによって駆動される。この駆動軸あるいは駆動モータの回転量はパルスコーダ3によってパルス列の形で出力される。
【0035】
符号VSは、画像処理装置20とカメラ30(例えば、CCDカメラ)から構成される視覚センサを表わしており、符号31はカメラ30の視野を表わしている。図中に破線で示したように、画像処理装置20はロボットコントローラRCに内蔵された形態をとっている。
【0036】
ロボットコントローラRCは、2台のロボットRB1,RB2のためのロボット制御部10を有している。このロボット制御部10は、内蔵された画像処理装置20からワークW,W’,W”・・・の位置を表わすデータを得るとともに、パルスコーダ3の計数出力値Nを利用して、2台のロボットRB1,RB2のいずれにトラッキング動作を行なわせるかの指定(予約)を行い、指定されたロボットのトラッキング動作を制御する。
【0037】
図3は、ロボットコントローラRCの内部構成の概略を要部ブロック図で示したものである。同図において、ロボットコントローラRCに内蔵された画像処理装置20はマイクロプロセッサからなるCPU(中央演算処理装置)21を有しており、CPU21にはカメラインターフェイス22、フレームメモリ(画像メモリ)23、プログラムメモリ24、画像処理プロセッサ25、データメモリ26、モニタインターフェイス27がバスBS”を介して各々接続されている。
【0038】
カメラインターフェイス22にはカメラ30が接続されており、カメラインターフェイス22を介して撮影指令が送られると、カメラ30に設定された電子シャッタ機能(シャッタスピードは、例えば1000分の1秒)により撮影が実行され、カメラインターフェイス22を介して映像信号がグレイスケール信号の形でフレームメモリ23に格納される。モニタインターフェイス27にはモニタCRT40が接続されており、カメラ30が撮影中の画像、フレームメモリ23に格納された過去の画像、画像処理プロセッサ25による処理を受けた画像等が必要に応じて表示される。
【0039】
フレームメモリ23に格納されたワークWの映像信号は、プログラムメモリ24に格納された解析プログラムに従って画像処理プロセッサ25を利用して解析され、ワークWの位置が求められる。ここでは、ワークWは図2中に符号a,b,c,dで示したように、4点の特徴点を有しているものとし、これら4点のすべてが検出された場合に、それに基づいてワークの姿勢が計算されるものとする。
【0040】
データメモリ26は、視覚センサシステムに関連した各種の設定値を格納する領域、CPU21が実行する各種処理に必要なデータの一時記憶に利用される領域の他に、求められたワークW,W’,W”・・・の位置を表わすデータ(各ワークの代表点a〜dのデータ)を後述する態様で格納する領域(ワークキュー)を含んでいる。
【0041】
そして、CPU21はロボットコントローラRC内部でバスBSを介して次に説明するロボット制御部10のCPU11にバス結合されている。これにより、視覚センサ20全体は実質的にロボット制御部10と一体の機器として構成される。即ち、本実施形態では、符号10,20を含む全体が視覚センサ内蔵型のロボットコントローラRCを構成している。
【0042】
ロボット制御部10は、バスBSを介して画像処理装置20のCPU21とバス結合されたCPU11を有している。このCPU11には、ROM12、RAM13、不揮発性メモリ14、デジタルシグナルプロセッサ(DSP)用データメモリ17、デジタルシグナルプロセッサ(DSP)18が、各々バスBS’を介して接続されている。ROM12には、システム全体を制御する為のプログラムが格納され、RAM13はCPU処理のためのデータの一時記憶に使用されるメモリである。
【0043】
不揮発性メモリ14には、各ロボットRB1,RB2のための動作プログラム、座標系設定データ、その他各種設定パラメータ等の他に、後述する態様でロボットRB1,RB2の予約(トラッキング動作の割り振り指定)を行うためのプログラムが格納される。
【0044】
DSP18はパルスコーダ3の計数出力信号を処理する為のプロセッサで、DSP用データメモリ17はDSP18による諸処理データや設定パラメータを格納するDSP専用のメモリである。DSP18は、CPU11の命令に従って、任意の時点においてパルスコーダ3の計数出力を検出し、DSP用データメモリ17の所定エリアに書き込む機能を有している。また、画像処理装置20のCPU21からも、CPU11を介してDPS用データメモリ17にアクセス可能となっている。
【0045】
更に、本実施形態におけるロボット制御部10は、2台のロボットRB1,RB2を制御するために、軸制御器以下について2系統でバスBS’に接続されている。コンベア1の上流側のロボットRB1については、軸制御器15、サーボ回路16を介して、ロボットRB1の機構部に接続され、同下流側のロボットRB2については、軸制御器15’、サーボ回路16’を介して、ロボットRB2の機構部に接続されている。
【0046】
以下、このような視覚センサ・ロボットシステムを用いてトラッキング動作を伴う作業を実行するための準備作業及び処理手順について説明する。なお、画像処理装置20のプログラムメモリ24、データメモリ26及びロボット制御部10内の各メモリには、予め必要な処理を実行する為のプログラム及び関連設定データが格納済みであるものとする。
【0047】
また、トラッキングの動作手順は、ロボットRB1,RB2の各々について、図1の関連説明で述べた動作と同様のものとする。即ち、上流側のロボットRB1に関しては、
(1)ワークがトラッキング開始ライン60に到達した時点から、P0 を初期位置とするトラッキング動作を開始し、
(2)教示位置付近の点Q0 でワークと遭遇し、
(3)ワークがトラッキング終了ライン70(位置Q1 )に到達するまでにワークに対する把持作業を完了し、
(4)コンベア1から側方に離隔してワーク収納部200上の収納位置Q2 でワークを放し、
(5)初期位置P0 へ戻る、という動作を考える。
【0048】
同様に、下流側のロボットRB2に関しては、
(1)ワークがトラッキング開始ライン60' に到達した時点から、P0'を初期位置とするトラッキング動作を開始し、
(2)教示位置付近の点Q0'でワークと遭遇し、
(3)ワークがトラッキング終了ライン70' (位置Q1')に到達するまでにワークに対する把持作業を完了し、
(4)コンベア1から側方に離隔してワーク収納部200' 上の収納位置Q2'でワークを放し、
(5)初期位置P0'へ戻る、という動作を考える。
【0049】
これら動作は、視覚センサVSによって位置を求めたワークの一つ一つのワークについて、ロボット制御部10内で作業を担当するロボット(RB1あるいはRB2)が予約された後に、予約内容に従って実行される。以下、システムを動作させるための準備作業からシステム動作時の処理までの概要を、順を追って説明する。
【0050】
[準備作業]
(1)スケールファクタの決定
従来と同様の下記手順により、コンベア1の走行距離lとパルスコーダ3の計数出力(インクリメンタル量ΔN)との関係を表わすスケールファクタα=l/ΔNを求める。
1.ロボットRB1(またはRB2)の動作範囲の位置にワークWをセットし、その時のパルスコーダ3の計数出力N1 をロボット制御部10のDSP用データメモリ17に格納する。
2.ロボットRB1(またはRB2)を手動操作して、ワークW上の適当な定点にタッチし、その時のロボット位置(X1 ,Y1 ,Z1)をDSP用データメモリ17に格納する。
【0051】
3.コンベア1を適当な距離だけ走行させ、ロボットRB1(またはRB2)の動作範囲内の適当な位置にワークWを停止させ、その時のパルスコーダ3の計数出力N2 をDSP用データメモリ17に格納する。
4.ロボットRB1(またはRB2)を手動操作してワークW上の適当な定点にタッチし、その時のロボット位置(X2 ,Y2 ,Z2 )をDSP用データメモリ17に格納する。
【0052】
5.ロボットコントローラRCに、α=(X2 −X1 )/(N2 −N1 )の 計算を行わせてスケールファクタαを求め、ロボット制御部10の不揮発性メモリ14と画像処理装置20のデータメモリ26に格納する。
【0053】
(2)センサ座標系Σs の設定
適当な手段により、視覚センサVSにセンサ座標系Σs を設定する。例えば、ベース座標系Σb 上の座標値が判っている位置に公知のキャリブレーション用治具を配置し、画像処理装置20のプログラムメモリ24に格納されたキャリブレーション用のプログラムを起動させ、カメラ30の画素値データをセンサ座標系Σs のデータに換算する為のデータを画像処理装置20のデータメモリ26に格納する。また、その結果を利用して、センサ座標系Σs とロボットRB1のベース座標系Σb 及びロボットRB2のベース座標系Σb'の関係を表わすデータをロボット制御部10の不揮発性メモリ14に格納する。
【0054】
(3)カメラ30の視野31内のコンベア1上にワークWをセットし、その時点におけるパルスコーダ計数出力値Nvsをロボット制御部10のDSP用データメモリ17と画像処理装置20のデータメモリ26に格納する。また、カメラ30による撮影を実行し、ワークWの画像を基準画像として取り込み、フレームメモリ23に格納する。
【0055】
(4)コンベア1を走行させ、ロボットRB1にトラッキング動作を開始させるに適した位置(ライン60上)にワークWが到達したら、コンベア1を停止させる。そして、その時点のパルスコーダ計数出力値N60と先に記憶したNvsとの差(インクリメンタル量)ΔN60-vs =N60−Nvsを計算して、DSP用データメモリ17に格納する。
【0056】
(5)コンベア1を再び更に走行させ、ロボットRB1がワークWに対する作業を開始するに適した位置にワークWをもって来る。そして、その時点のパルスコーダ計数出力値Ntcと先に記憶したNvsからΔNtc-vs =Ntc−Nvsを計算して、DSP用データメモリ17に格納する。
【0057】
(6)ロボットRB1に把持作業の実行に必要な動作を教示する。ここでは、その詳細は省略する。
(7)コンベア1を再び更に走行させ、ロボットRB1のトラッキング動作を終了させるに適した位置(ライン70上)にワークWをもって来て、コンベア1を停止させる。そして、その時点のパルスコーダ計数出力値N70と先に記憶したNvsからΔN70-vs=N70−Nvsを計算し、結果をDSP用データメモリ17に格納する。
【0058】
上記(4)〜(7)と同様の手続きはロボットRB2についても下記(8)〜(11)の手順で実行される。
(8)コンベア1を更に走行させ、ロボットRB2にトラッキング動作を開始させるに適した位置(ライン60' 上)にワークWが到達したら、コンベア1を停止させる。そして、その時点のパルスコーダ計数出力値N60' と先に記憶したNvsとの差(インクリメンタル量)ΔN60'-vs=N60' −Nvsを計算し、DSP用データメモリ17に格納する。
【0059】
(9)コンベア1を再び更に走行させ、ロボットRB2がワークWに対する作業を開始するに適した位置にワークWをもって来る。そして、その時点のパルスコーダ計数出力値Ntc' と先に記憶したNvsからΔNtc'-vs=Ntc' −Nvsを計算し、DSP用データメモリ17に格納する。
【0060】
(10)ロボットRB2に把持作業の実行に必要な動作を教示する(詳細は省略)。
(11)コンベア1を再び更に走行させ、ロボットRB2のトラッキング動作を終了させるに適した位置(ライン70' 上)にワークWをもって来て、コンベア1を停止させる。そして、その時点のパルスコーダ計数出力値N70' と先に記憶したNvsからΔN70'-vs=N70' −Nvsを計算し、結果をDSP用データメモリ17に格納する。
【0061】
(12)ロボットRB1のためのトラッキング座標系Σtrの設定
ロボットRB1とコンベア1の座標系の共有化を行なう為に、トラッキング座標系Σtrを次の条件で設定する。なお、ここではX軸がコンベアの走行方向と一致したベース座標系Σb が設定済みであるものとする。
即ち、トラッキング座標系Σtrはベース座標系Σb と同姿勢で設定され、トラッキング座標系Σtrが移動を開始するまでの原点位置(X0 ,Y0 ,Z0 )は、
X0 =−L0
Y0 =0
Z0 =0
であり、
トラッキング座標系Σtr上での座標値(x,y,z)とベース座標系Σb 上での座標値(X,Y,Z)の変換関係は、
x=X−L0
y=Y
z=Z
で表わされるものとする。但し、L0 は教示点Q0 の位置とトラッキング開始ライン60までの距離である。そこで、L0 の値を確定するために、既に求められたスケールファクタα、ΔN60-vs ,ΔNtc-vs を用いて、
L0 =α(ΔNtc-vs −ΔN60-vs )
を計算し、トラッキング座標系Σtrを既述するパラメータとして、ロボット制御部10の不揮発性メモリ14に格納する。
【0062】
トラッキング座標系Σtrをこのように設定することで、ロボットRB1を初期位置にあるトラッキング座標系Σtr上で動作させた時、教示点Q0 の位置をトラッキング開始ライン60上の点Qtrとして認識する。
【0063】
トラッキング座標系Σtrは、トラッキング動作開始指令を受けてコンベア1と等速でx軸方向(=X軸方向)へ移動を開始する。トラッキング座標系Σtrの移動量は、後述するように、パルスコーダ計数出力値Nの変化量とスケールファクタαに基づいてリアルタイムに決定される。
【0064】
ロボットRB2についても同様にトラッキング座標系Σtr' の設定が下記のように実行される。
(13)ロボットRB1のためのトラッキング座標系Σtr' の設定
ロボットRB2とコンベア1の座標系の共有化を行なう為に、トラッキング座標系Σtr' を次の条件で設定する。ロボットRB1の場合と同じく、X軸がコンベアの走行方向と一致したベース座標系Σb'が設定済みであるものとする。即ち、トラッキング座標系Σtr' はベース座標系Σb'と同姿勢で設定され、トラッキング座標系Σtr' が移動を開始するまでの原点位置(X0',Y0',Z0')は、
X0'=−L0'
Y0'=0
Z0'=0
であり、
トラッキング座標系Σtr' 上での座標値(x' ,y' ,z' )とベース座標系Σb'上での座標値(X' ,Y' ,Z' )の変換関係は、
x' =X' −L0'
y' =Y'
z' =Z'
で表わされるものとする。但し、L0'は教示点Q0'の位置とトラッキング開始ライン60' までの距離である。そこで、L0'の値を確定するために、既に求められたスケールファクタα、ΔN60'-vs,ΔNtc'-vsを用いて、
L0'=α(ΔNtc'-vs−ΔN60'-vs)
を計算し、トラッキング座標系Σtrを既述するパラメータとして、ロボット制御部10の不揮発性メモリ14に格納する。
【0065】
トラッキング座標系Σtr' をこのように設定することで、ロボットRB2を初期位置にあるトラッキング座標系Σtr' 上で動作させた時、教示点Q0'の位置をトラッキング開始ライン60' 上の点Qtr' として認識する。
【0066】
ロボットRB2のためのトラッキング座標系Σtr' は、ロボットRB1のためのトラッキング座標系Σtrと同じく、トラッキング動作開始指令を受けてコンベア1と等速でx軸方向(=X軸方向)へ移動を開始する。また、トラッキング座標系Σtr’の移動量は、パルスコーダ計数出力値Nの変化量とスケールファクタαに基づいてリアルタイムに決定される。
【0067】
(14)ロボットRB1,RB2の担当を計画し、予約するためのスケジュールダイヤグラムの関連設定値や、ロボットRB1,RB2の動作予約のための予約テーブルを構成するレジスタの設定を行なう(スケジュールダイヤグラム、予約テーブルの詳細は後述)。
(15)その他、後述する処理でアクセスされるレジスタの設定、視野31の長さ、撮影間隔を調節するパラメータ、エラー信号出力の基準値などの設定を行なう(w,f30,ε1 ,ε2 等)。
【0068】
以上で、トラッキング実行の為の準備作業が完了する。次に、図4以下を参照図に加えて、トラッキングによる本作業実行時のCPU処理について説明する。処理は視覚センサVS側の処理と、ロボット制御部10側の処理に大別される。本実施形態では、ロボットRB1とロボットRB2のいずれかを指定する作業割り振りの処理は、ロボット制御部10側で行なわれる。これら処理はタスク処理として並行的に実行される。先ず、図5に示した視覚センサVS側の処理の概要を述べる。なお、以下の説明は次の(1)〜(3)の前提の下で行なう。
【0069】
(1)wは視覚センサVSによる位置検出結果のデータ格納が完了し、且つ、作業担当ロボット(RB1/RB2)が未指定であるワークの数を表わす指標値であり、その初期値は当然w=0である。
(2)供給されるワークWの姿勢にはばらつきがあり、図5に示したように、このばらつきを考慮してコンベア1の搬送方向に沿って測ったワークWの長さの最大値をs0 とする。
(3)カメラ30の視野31はコンベア1の全幅をカバーし、また、ワークWがコンベア1の幅方向にはみ出した状態で供給されることはないものとする。従って、ワーク像がコンベア1の幅方向にはみ出ることはない。
【0070】
ロボット制御部10と画像処理装置20内で行なわれる処理は、ワーク供給源100がコンベア1上へのワーク供給を開始したことを知らせる適当な外部信号を受けて、同時に開始される。画像処理装置20のCPU21は先ず撮影指令を出力し、カメラ30による撮影を実行し、取得した画像をフレームメモリに格納するとともに(ステップS1)、画像取得時のパルスコーダ計数出力値N30をDSP用メモリ17とデータメモリ26に格納する(ステップS2)。
【0071】
更に、ステップS1で取得した画像をプログラムメモリ24に格納された解析プログラムを用いた解析を行い、先ず最下流のワークの検出を試みる(ステップS3)。最下流のワークの検出に成功(a,b,c,d全点検出)しなかった場合には(ステップS4でノー)、ステップS5以下へ進み、次回撮影に備える態勢に入る。即ち、ステップS5では、パルスコーダ計数出力値Nを短周期で繰り返しチェックし、最新の画像取得時からのコンベア移動量α(N−N30)がf30−ε1 (ε1 >0)を越えるのを待つ(ステップS5)。
【0072】
ここでε1 は、相前後して取得される2つの画像間に撮影漏れとなる領域が生じないようにするだけでなく、すべてのワークについていずれかの撮影機会においてa,b,c,dの全点が検出されることを基本的に保証するための調整値である。従って、ε1 は上述したワーク最大長s0 を下回らない条件で、ほぼ最小に定められる。
【0073】
例えば、視野長100.0cm、s0 =5.0cmとした時、ε1 =5.1cm〜6.0cmとする。ε1 を必要以上に大きくすることは、二重撮影領域(相前後して撮影される画像に重なって含まれる領域)が大きくなり、効率上好ましくない。尚、一つのワークに対して相前後して撮影される画像から2回の検出が行なわれる可能性があるが、このような可能性に対しては、後述する二重検出データ破棄の処理によって対処する(後述、ステップS9〜S11参照)。
【0074】
ステップS5でイエスの判定が出されたならば、コンベア移動量α(N−N30)がf30−ε1 +ε2 を越えていないこと、及び処理終了信号が出力されていないことを確認した上で(ステップS6、S7)、ステップS1へ戻り、次回の撮影/画像取り込み、N30の記憶(ステップS2)、画像処理(ステップS3)を順次実行する。
【0075】
ステップS5の判定式に含まれるε2 は、次回撮影にかかろうとする時点で既にコンベア移動量が過大となり、すべてのワークについていずれかの撮影機会においてa,b,c,dの全点が検出されることを基本的に保証するための二重撮影領域を形成出来ない状態に至っていないかどうかを判定するための調整値で、本処理では0<ε2 ≦ε1 −s0 に設定される。但し、ε1 =s0 とした場合には、ε2 =0となるので、このステップS6は不要になる。
【0076】
このステップS6でイエスの判定が出力されるのは、コンベア速度が画像処理速度に比べて速すぎる場合、画像処理に異常に長い時間が費やされた場合などである。このようなケースは、システムが正常作動していないことを意味すると考えられるので、ステップS8へ進み、エラー信号を出力した上で処理を終了する。また、ステップS7でイエスの判定が出力されるのは、全ワークの撮影終了を表わす外部信号、ロボット側でエラー信号等が出力された場合などである。
【0077】
ワークWが次々と視野内31に到達するようになると、ステップS4でイエスの判定が出力されるようになる。その場合には、ステップS9へ進み、位置検出の結果について、同一ワークの画像データの二重取得のチェックを行う。同一ワークの画像データの二重取得でないことが確認されたならば、検出結果を画像取得時のパルスコーダ計数出力値N30と対応付けて記憶し(ステップS10)、レジスタ値wの値を1カウントアップする(ステップS11)。
【0078】
これに対して、同一ワークの画像データの二重取得と判断された場合には、検出結果のワークキューへの書込とレジスタ値wの1カウントアップを行なわず(検出データ破棄)、直接ステップS12へ進む。
【0079】
なお、二重書込データか否かのチェックは、今回のデータ(a,b,c,dの位置データと画像取得時のパルスコーダ計数出力値N30)と前回検出されてワークキューに書き込まれているデータ(a,b,c,dの位置データと画像取得時のパルスコーダ計数出力値N30)を比較することで達成される(後述するワークキューの構成を参照)。
【0080】
もし、同一ワークの二重検出があれば、次の2つの条件が成立している筈である。
1.前回検出時のパルスコーダ計数出力値N30と今回検出時のパルスコーダ計数出力値N30の差が、撮影間隔1回分のインクリメンタル計数値とほぼ一致していること。ステップS5から、後者の値としては、(f30−ε1 )/αが採用出来る。
2.前回検出されたa,b,c,dの各位置と今回検出されたa,b,c,dの各位置との差が、いずれもγ×撮影間隔を表わすパルスコーダ計数出力値インクリメンタル量と一致していること。即ち、前回検出されたa,b,c,dの各位置と今回検出されたa,b,c,dの各位置との差が、γ×(f30−ε1 )/αとほぼ一致していること。ここで、γは、センサ座標系上の距離とパルスコーダ計数出力値の換算計数であり、事前に設定される。
【0081】
そこで、今回と前回の検出データについてのN30の差に関する不等式、
|N30(今回)−N30(前回)−(f30−ε1 )/α|<ε3
(但し、ε3 は小さな正の設定値)の成否をチェックし、
また、a,b,c,dの位置の少なくとも一つについて、γ×(f30−ε1 )/αとの差の絶対値に関する不等式、例えば、
|aの位置(今回)−aの位置(前回)−γ(f30−ε1 )/α|<ε4
(但し、ε3 ,ε4 は小さな正の設定値)
の成否をチェックする。これらの結果から、同一ワークの二重検出の有無がチェック出来る。即ち、上記両不等式が同時成立した時のみ、同一ワークの二重検出がなされたと判断すれば良い。
【0082】
さて、最下流のワークについての位置検出、二重検出チェック、記憶などが完了したら、同画像中の他のワーク画像の検出を試みる(ステップS12)。検出に成功したら(ステップS13でイエス)、ステップS9へ戻り、ステップS10〜ステップS13の処理を再度実行する。また、検出に成功しなかったら(ステップS13でノー)、ステップS5以下へ進み、次回の撮影タイミングを待つ。ステップS5〜ステップS8の処理については既に述べた通りである。
【0083】
以上説明した処理サイクル(ステップS1〜S13)を処理終了まで繰り返すことで、システムが異常動作しない限り、すべてのワークについてa,b,c,dの位置を表わすデータが順次取得される。図6は、これらデータを記憶するワークキューの形式を説明する図で、各コラムは左から順に、ライン番号、ロボット指定指標u、ワークの代表点a〜dの検出位置の基準値(前述した基準画像から得た値)からの偏差(正負符号付のずれ量)で表わしたデータ、そのデータに対応した画像取得時のパルスコーダ計数出力値N30を表わしている。
【0084】
ロボット指定指標uは、ロボット指定済み/未定を表わす指標で、ワークデータ書き込み時には0が書き込まれる。そして、後述するロボット指定のための読み出しが行なわれたならば、u=1に更新される。ワークデータの書込は、行番号(NO)が若い順に行なわれ最終まで書き込まれたならば、第1行に次のワークデータが上書きされる。
【0085】
ここに記した例では、5個のワークデータが書込済みで(w=5)、各ワークの位置偏差データ(Δxa1,Δya1,Δxb1・・・・Δxd5,Δyd5)がN30の値とともに書き込まれている。また、第1行及び第2行のワークデータは、後述するロボット指定のために読出済みである。画像取得時のパルスコーダ計数出力値N30の数値はあくまで例示であるが、1行目と2行目、及び4行目と5行目のN30がそれぞれ一致しているのは、同一の撮影機会で得られた画像中の2つのワーク画像について位置検出がなされたことを意味している。
【0086】
次に、ロボット制御部10側で行なわれる処理の概要を説明する。ワーク供給開始を知らせる適当な外部信号を受けると、ロボット制御部10のCPU11はマルチタスク処理機能を用いて、ロボット予約処理と各ロボットのためのロボット動作処理を開始する。先ず、ロボット予約処理について、図7のフローチャートを用いて概略を説明する。なお、ステップR6,R7,R10,R11の処理については、概略説明の後で図8のスケジュールダイヤグラムを用いて補足説明する。
【0087】
図7のフローチャートにおいて、処理が開始されると直ちにレジスタ値w=0か否かを短周期で繰り返しチェックする態勢に入る(ステップR1)。上述した撮影とそれに続く画像処理装置20側の処理により、ワークの位置が検出されると、その結果が図6に示した形式で記憶されるとともに、指標値wがw≠0となる。
【0088】
そこで、u=0(未読出)のデータの存在を確認した上で(ステップR2)、u=0のデータのうち最古に書き込まれたワーク1個分のデータを読み込む(ステップR3)。図6に記した例で言えば、第3行目のデータ[Δxa3,Δya3・・・Δyd3,3465]が読み込まれる。読み込みが完了したら、読み出された行のu値を0から1に更新する(ステップR4)。
【0089】
次いで、読み出されたデータに基づいて、ロボットRB1の要動作期間を計算する(ステップR5)。ロボットRB1の要動作期間とは、もし当該ワークをロボットRB1で処理するとした場合にロボットRB1が使用される期間のことである。本実施形態では、コンベア1の搬送速度Vを既知の一定値と考え、要動作期間をパルスコーダ計数出力値Nの範囲として計算する(詳細後述)。
【0090】
そして、ロボットRB1用に設定された予約テーブル(詳細後述)にアクセスし、ステップR5で計算された要動作期間と予約内容を照合し、ロボットRB1の予約の適否を判断する(ステップR6)。もし、予約が適当(可能)と判断したならば、ステップR5で計算された要動作期間をロボットRB1用の予約テーブルに書き込む(ステッR7)。
【0091】
次いで、処理終了の必要性(運転終了指令、エラー信号などで判断)を判断した上で(ステップR8)、最初のステップR1へ戻り、再度ステップR1以下の処理を実行する。
【0092】
もし、ステップR6でロボットRB1の予約が不適当(不可能と判断したならば、ステップR9へ進み、ステップR3で読み出されたデータに基づいて、ステップR5と同様に、ロボットRB2の要動作期間を計算する。ロボットRB2の要動作期間とは、もし当該ワークをロボットRB2で処理するとした場合にロボットRB2が使用される期間のことであり、その計算方法はロボットRB1の場合と同様である(詳細後述)。
【0093】
そして、ロボットRB2の予約テーブル(詳細後述)にアクセスし、ステップR9で計算された要動作期間と予約内容を照合し、ロボットRB2の予約の適否を判断する(ステップR10)。もし、予約が適当(可能)と判断したならば、ステップR9で求めた要動作期間を予約テーブルに書き込む(ステッR11)。ステップR11からはステップR8へ進み、処理終了の必要性(運転終了指令、エラー信号などで判断)を判断した上で、最初のステップR1へ戻り、再度ステップR1以下の処理を実行する。
【0094】
万一、ステップ10でロボットRB2の予約が不適当(不可能と判断された場合には、コンベア1の搬送速度、ワークの供給頻度などが本システムの処理能力を越えているか、あるいはシステムの誤動作など異常が発生しているとみなし、エラー信号を出力して(ステップR12)、処理を終了する。そして、コンベア1の搬送速度やワークの供給頻度の修正、システムの誤動作の修復等、必要な処置をとる。
【0095】
以上がロボット予約処理の概略であるが、ステップR6,R7,R10,R11の処理について、図8(スケジュールダイヤグラム)及び図10(予約テーブル)を参照図に加えて補足説明する。図8のスケジュールダイヤグラムの横軸は時間経過を表わし、縦軸はコンベア1の搬送方向に沿った位置を表わしている。横軸、縦軸いずれも搬送コンベア1の搬送速度Vを既知の一定値(パルスコーダ3の計数出力の変化率とスケールファクタαから算定可能)として、パルスコーダ計数出力値Nを用いた目盛りでされる。
【0096】
縦軸における点Bは、ロボットRB1が無理なく動作を開始し得る限界位置を表わしており、図2に記したトラッキング範囲の開始ライン60またはそのやや手前の位置に対応している。従って、ダイヤグラムの原点Oと点Bの距離を計数値で表わせば、N60−N30−δNとなる。ここで、δNはロボットRB1の動作開始に余裕をもたせるために適当に設定される小さな計数値(δN≧0)である。
【0097】
また、点CはロボットRB1が無理なく1サイクル分の動作を完了(P0 へ復帰)し得る時点における計数値に対応している。ダイヤグラムの原点Oと点Cの距離を計数値で表わせば、N70−N30+N200 となる。ここで、N200 はロボットRB1が、トラッキング動作完了後(ライン70の位置)を離れてから、ワークを収納部200に収め、初期位置P0 に復帰するまでに要する時間内にパルスコーダ3のインクリメンタル計数値あるいはそれより若干大きな値(動作に余裕をもたせるため)として設定される量である。
【0098】
同様に、縦軸における点Dは、ロボットRB2が無理なく動作を開始し得る限界位置を表わしており、図2に記したトラッキング範囲の開始ライン60' またはそのやや手前の位置に対応している。従って、ダイヤグラムの原点Oと点Dの距離を計数値で表わせば、N60' −N30−δN' となる。ここで、δN' はロボットRB2の動作開始に余裕をもたせるために適当に設定される小さな計数値(δN' ≧0)である。
【0099】
また、点EはロボットRB2が無理なく1サイクル分の動作を完了(P0'へ復帰)し得る時点における計数値に対応している。ダイヤグラムの原点Oと点Eの距離を計数値で表わせば、N70' −N30+ΔN200'となる。ここで、ΔN200'はロボットRB2が、トラッキング動作完了後(ライン70' の位置)を離れてから、ワークを収納部200' に収め、初期位置P0'に復帰するまでに要する時間内にパルスコーダ3が計数する計数値あるいはそれより若干大きな値(動作に余裕をもたせるため)である。これらロボットRB1とRB2の要動作範囲を規定するデータ(点B,C,D,Eを表わす計数値)は、前述した準備作業の(14)で実行される。
【0100】
今、最初のワーク(W1 とする)の搬送経過をg1 で表わすと、g1 は図示したような傾斜直線となる。横軸、縦軸のスケールを等しくとれば、その傾斜は45度となる。ワークの搬送距離を撮影基準位置(図2のラインAの位置)から測るものとすれば、直線g1 が横軸と交わる点(計数値)NA1は、ワークW1 を代表する点(例えば、点a,b,c,dの位置から計算される重心位置)が、ラインAを通過する時点(計数出力値)を表わしている。
【0101】
例えば、ワークW1 について検出されたワークデータが図6の第1行目に書き込まれている場合には、
NA1=2565+(Δxy1 /α)
となる。ここで、αは設定済みのスケールファクタであり、Δxy1 はΔxa1,Δya1,・・・Δxd1,Δyd1から計算されるワークW1 の重心位置の偏差である。もし、Δxa1=Δya1=・・・=Δxd1=Δyd1=0ならば(基準画像取得時と同じ位置で撮影)、Δxy1 =0,NA1=2565となる。
【0102】
同様に、他の後続するワーク(W2 ,W3 とする)についてのワークデータが図6に示したワークキューに順次書き込まれれば、それらワークW2 ,W3 の搬送経過を表わすg2 ,g3 について、横軸と交わる点(計数値)NA2,NA3を求めることが出来る。
【0103】
上記したことから、ステップR6の判断の手順は次のように行なわれる。
R6−1;ステップR3で読み出したワークデータからNA を求める。ワークW1 については、NA1を求める。同様に、ワークW2 のワークデータが読み出された場合にはNA2、ワークW3 のワークデータが読み出された場合にはNA3を求める。
【0104】
R6−2;NA から、ロボットRB1の要動作区間NB NC (NB とNC )を求める。上記した例で言えば、区間NB1NC1,NB2NC2あるいはNB3NC3を求める。
【0105】
R6−3;当該ワークデータに関して求められたロボットRB1の要動作期間が、予約期間に抵触するか否か予約テーブルにアクセスしてチェックする。ワークW1 が最初に検出されたワークであるならば、ワークテーブルはクリアされた初期状態のまま(無予約)である。よって、判断出力はイエスである。
【0106】
次のステップR7では、予約テーブル(RB1用)に区間NB1NC1のデータが書き込まれる。
【0107】
図10には、各々予約期間が書き込まれた状態のRB1用並びにRB2用の予約テーブルを示した。各予約テーブルのコラムは、左から順に、ロボットの動作の完了(=0)/未完了(=1)を表わす指標、ワークデータ番号(図6のワークキューの行番号)、要動作区間の端点データNB ,NC (RB1用)あるいはND ,NE を書き込むためのものである。
【0108】
書き込まれた数値はあくまで例示的なものであるが、次の予約内容を表わしている。
ロボットRB1;ワークキュー番号1のワークについて、要動作期間[4051〜4551]が予約され、動作は未完了(第1コラム=1)である。
ロボットRB2;ワークキュー番号2のワークについて、要動作期間[4130〜4630]が予約され、動作は未完了(第1コラム=1)である。
【0109】
ここで、ワークW2 がワークW1 の直後に供給された場合(図8における直線g1 とg2 を参照)を考えると、ワークW2 に関するステップR6で、RB1用のワークテーブルにアクセスした時点では、上記予約データが書き込まれており、且つ、ワークW2 についてステップR5で計算される要動作期間と明らかに抵触する(図8において、直線g2 が斜線領域を通過)。よって、ワークW2 に関するステップR6の判断出力はノーとなる。
【0110】
この場合は、図7のフローチャートに従いステップR9からR10へ進む。ステップR9の判断の手順は、次のように実行される。
R9−1;既に求められているNA から、ロボットRB2の要動作区間ND NE (ND とNE )を求める。ここでは、ワークW2 について区間NB2NC2を求める。
【0111】
R9−2;ワークW2 について求めたロボットRB2の要動作期間が、予約期間に抵触するか否か予約テーブルにアクセスしてチェックする。ワークW2 が2番目に検出されたワークであるならば、RB2用のワークテーブルはクリアされた初期状態のまま(無予約)である。よって、判断出力はイエスである。
【0112】
そこで、次のステップR10では、予約テーブル(RB2用)に区間ND2NE2のデータが書き込まれる。図10のRB2用の予約テーブルは、この状態を例示している。また、図8のスケジュールダイヤグラム中で砂地模様で描示した区間は、このワークW2 について予約された期間を表わしている。
【0113】
同様の考察から、直線g3 で表わされる3番目のワークW3 については、ステップR6の判断出力はイエスとなることが判る。何故ならば、直線g3 は砂地模様の領域を通過しているが、斜線領域は通過していないからである。
【0114】
最後に、図9のフローチャートを参照して、ロボット動作の処理について説明する。なお、2台のロボットRB1,RB2の動作は基本的に同じなので、RB2用の()書きを用いて、両者のための処理をまとめて説明する。
【0115】
先ず、教示点Q0 (またはQ0')の位置データを含む動作プログラムデータを読み込み(ステップH1)、予約テーブルを短周期で繰り返しチェックする態勢に入る(ステップH2)。上述した予約処理のステップR7で、ロボットRB1あるいはロボットRB2の予約期間が書き込まれると、ステップH2でイエスの判断出力が出され、ステップH3へ進む。
【0116】
ステップH3では、ワークキューにアクセスし、予約テーブルで指定されている番号(行)のワークデータを読み込む。前述の例で言えば、ワークW1 に関するデータ[Δxa1,Δya1・・・Δxc1,Δyd1,2565]が読み込まれる。
【0117】
次いで、パルスコーダ計数出力値Nが、N=ΔN60-vs (ロボットRB2の場合には、ΔN60'-vs。以下、同様。)+N30に到達するのを待つ態勢に入る(ステップH4)。上記ワークW1 の例ではN30=2565である。
【0118】
N=ΔN60-vs (ΔN60'-vs)+N30というパルスコーダ計数出力値は、ワークがトラッキング開始ライン60(または60' )の位置に到達したことの目安となる計数値である。もし、当該ワークの撮影位置が基準画像を得た時のワーク位置と一致していれば、この値はそのワークがトラッキング開始ライン60(または60' )の位置に到達したことを正確に表わすことになる。
【0119】
ステップH4でイエスの判断出力が得られたならば、直ちにトラッキング座標系Σtr(または、)上でロボットRB1(またはRB2)の移動を開始させるとともに、トラッキング座標系Σtr(またはΣtr' )の移動を開始させる(ステップH5)。ロボットRB1用(RB2用)のトラッキング座標系Σtr(Σtr' )の移動は、トラッキングΣtr(Σtr' )の原点の位置[X0 ,Y0 ,Z0 ]([X0',Y0',Z0'])を次式で表わされた位置に存在するものとすることで達成される。ここで、Nはパルスコーダ計数出力値Nの現在値である。
トラッキングΣtrの移動位置;
X0 =−L0 +α{N−(ΔN60-vs+N30)}
Y0 =0
Z0 =0
トラッキング座標系Σtrが移動中の座標値の変換式は、
x=X−L0 +α{N−(ΔN60-vs+N30)}
y=Y
z=Z
となる。
【0120】
トラッキングΣtr' の移動位置;
X0' =−L0'+α{N−(ΔN60'-vs +N30)}
Y0'=0
Z0'=0
トラッキング座標系Σtr' が移動中の座標値の変換式は、
x' =X' −L0'+α{N−(ΔN60'-vs +N30)}
y' =Y'
z' =Z'
となる。
【0121】
これにより、ロボットRB1(またはRB2)のトラッキング動作が開始される。即ち、ロボットRB1(またはRB2)は、トラッキング座標系Σtr(またはΣtr' )上で教示点を目指して移動を開始する。但し、補間動作で作成される補間点の位置は、ステップH3で読み込んだデータ(基準位置とのずれ量)に基づいて補正される。
【0122】
移動開始時点における教示点位置は、トラッキング座標系Σtr(Σtr' )の初期位置の設定法から考えて、図2中に符号Qtr(Qtr' )で示したように、トラッキング開始ライン60(60' )上にある。そして、トラッキング座標系Σtr(Σtr' )の移動開始後には、この点Qtr(Qtr' )をコンベア1の走行と同期移動させた点(より正確に言えば、それを視覚センサのデータで補正した位置)を目指すようにロボットRB1(RB2)の移動が行なわれる。その結果、ロボットRB1(RB2)は、符号90,(90' )で示したような曲線軌道を描いて移動する。
【0123】
トラッキング範囲内でロボットRB(RB2)がワークに追いついたことが確認されると(ステップH6の判断出力がイエス)、教示済みのワーク把持作業がトラッキング座標系Σtr(Σtr' )上で実行される(ステップH7)。
【0124】
パルスコーダ計数出力値NがN=ΔN70-vs(ΔN70'-vs )+N30に到達したならば(ステップH8の判断出力がイエス)、ロボットRB1(RB2)のトラッキング座標系Σtr(Σtr' )上での動作を終了させ、ワーク収納部200(200' )上の教示点Q2 (Q2')への移動を開始する(ステップH9)。
【0125】
教示点Q2 (Q2')へ到達したら、ワークの把持を解除して、ワークをワーク収納部200(200' )に収納する(ステップH10)。そして、ロボットRB1(RB2)をQ2 (Q2')から初期位置P0 (P0')へ移動させ(ステップH11)、ロボットRB1(RB2)用の予約テーブルの予約データをクリアする(ステップH12)。例えば、ロボットRB1がワークW1 の処理を完了した場合であれば、図10に示したRB1用の予約テーブルの各コラムに各々「0」を上書きする。
【0126】
以上で1つのワークに対するロボットRB1(またはRB2)の動作サイクルが完了する。そこで、システムの運転中止を要求する指令が出力されていない限り(ステップH13の判断出力がノー)、ステップH1へ戻り、次の検出ワークに対する処理を開始する。以下の処理は、上述した通りであるから、繰り返し説明は省略する。
【0127】
以上、本発明をワークの把持・収納のアプリケーションに適用した実施形態について説明したが、本発明が搬送手段上で移動する対象に対するトラッキング動作を伴う他のアプリケーションについても用し得ることは明らかである。実施形態のシステム構成、データの処理・伝達方式についても、例えば次のような変形が可能である。
【0128】
(1)使用するロボットの台数;
ロボットの使用台数を3台以上とすることも可能である。図8に示したスケジュールダイヤグラムの考え方は、ロボットの使用台数が何台であっても適用出来る。例えば、3台目のロボットRB3を使用する場合には、動作範囲BC,DEの他に動作範囲FG、ロボットRB3用の予約テーブルなどを新たに設定し、ロボットRB3についての要動作期間を計算する処理、ロボットRB3用の予約テーブルのチェック処理、書込処理、クリア処理等を追加すれば良い。
【0129】
(2)視覚センサ(画像処理装置)とロボット制御手段の分離;
視覚センサVSをロボットコントローラRCとは別構成とし、両者を共通のプロトコルで動作する通通インターフェイスを含む通信回線で結び、ワークデータ、指令データ等をやりとりする方式としても良い。
【0130】
(3)ロボットの予約処理を視覚センサ側で分担;
本実施形態では、ロボットの予約処理はロボット側で行なうようにしたが、これを視覚センサ側で行うようにしても良い。
【0131】
(4)ロボット制御手段の構成;
本実施形態では、2台のロボットを一つのロボット制御手段(ロボット制御部10)で制御したが、ロボット毎に1台のロボットコントローラを使用しても良い。この場合には、1台の視覚センサ(画像処理装置)と各ロボットコントローラを通信回線で結ぶ方式とすることが好ましい。また、ロボットの予約処理を視覚センサ側で行い、その結果を必要に応じて各ロボットに伝えるうようにすることが好ましい。
【0132】
(5)視覚センサの検出方式の変更;
本実施形態では、ワークの供給頻度が高いケースに適合したワーク検出方式として、上流側でワークの事前検出を行なわない方式を採用したが、これを図1で説明した旧来方式(上流側でワークの事前検出を行なう方式)を採用することも出来る。旧来方式を採用した場合でも、ワークキューに書き込まれたワークデータと搬送手段の走行量を表わすデータを利用して行なわれるロボットの予約以降の処理に基本的な変更を要しないことはこれまでの説明から明らかであろう。
【0133】
【発明の効果】
本発明によれば、コンベア上のランダムな位置に載置され、ランダムな間隔で供給される対象物に対して、1台の視覚センサと複数台のロボットを組み合わせて用いることにより、トラッキング動作を伴う作業を合理的に分担して手際よく実行すことが出来る。
【図面の簡単な説明】
【図1】1台のロボットを備えた視覚センサ・ロボットシステムの概略を説明するための図である。
【図2】本発明の実施形態の全体配置を図1と類似した形式で示したものである。
【図3】実施形態で使用されるロボットコントローラRCの内部構成の概略を要部ブロック図で示したものである。
【図4】本発明の実施形態において、画像処理装置側で行なわれる処理内容の概略を記したフローチャートである。
【図5】供給ワークWの最大長s0 について説明する図である。
【図6】本発明の実施形態において、ワークの検出データを記憶するワークキューについて説明する図である。
【図7】本発明の実施形態におけるロボット予約処理について説明するフローチャートである。
【図8】ロボット予約処理の原理を説明するためのスケジュールダイヤグラムである。
【図9】本発明の実施形態におけるロボット動作のための処理について説明するフローチャートである。
【図10】本発明の実施形態における2台のロボットのための予約テーブルを説明する図である。
【符号の説明】
1 コンベア
2 コンベア駆動部
3 パルスコーダ
4,4’ センサ(事前検出)
10 ロボット制御部
11 CPU(ロボットコントローラ)
12 ROM
13 RAM
14 不揮発性メモリ
15,15' 軸制御器
16,16' サーボ回路
17 デジタルシグナルプロセッサ(DSP)用データメモリ
18 デジタルシグナルプロセッサ(DSP)
19 センサインターフェイス
20 画像処理装置
21 CPU(画像処理装置)
22 カメラインターフェイス
23 フレームメモリ
24 プログラムメモリ
25 画像処理プロセッサ
26 データメモリ
27 モニタインターフェイス
30 カメラ
31 視野
40 モニタCRT
50 検出位置ライン
60,60' トラッキング開始ライン
70,70' トラッキング終了ライン
80 直線軌道
90,90' 曲線軌道
100 ワーク供給源
200,200' ワーク収納部
BS,BS’,BS” バス
P0 ,P0' ロボット初期位置
RB,RB1,RB2 ロボット
RC ロボットコントローラ
VS 視覚センサ
W,W’,W” ワーク
a,b,c,d ワークの特徴点
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a visual sensor / robot system for causing a plurality of robots to perform a tracking operation. More specifically, the present invention visually recognizes the position of a moving object (for example, an assembly work) by a conveying means such as a belt conveyor. The present invention relates to a visual sensor / robot system that allows a plurality of robots to perform tracking operations that are recognized using sensors and corrected based on the results. The present invention is particularly effective when applied to applications (for example, packing of articles such as parts and foods) that require tracking operations for a large number of articles that are randomly conveyed at a high supply frequency.
[0002]
[Prior art]
In a work line of a factory or a distribution center, a system is widely adopted in which works as work objects are successively conveyed to a work position by a conveyor. There are two methods for performing work on such a workpiece (object) using a robot: a method of intermittently driving a conveyor and a method of continuously driving a conveyor. The latter method is used from the viewpoint of work efficiency. There are many cases.
[0003]
A system combining a visual sensor and a robot is widely used for causing a robot to perform work on a workpiece continuously conveyed by a conveyor. The visual sensor acquires an image of the workpiece upstream of the work position (tracking range) of the robot, analyzes this, and obtains the workpiece position (including the workpiece posture if necessary; hereinafter the same). Data representing the obtained workpiece position (data representing deviation from the reference position) is used for correcting the tracking operation of the robot.
[0004]
FIG. 1 is a diagram for explaining an outline of a visual sensor / robot system employing such a system.
In the figure, reference numeral 1 denotes a linear conveyance conveyor connected to the workpiece supply source 100, and its drive shaft is driven by a motor built in the drive unit 2. The rotation amount of the drive shaft or drive motor is output in the form of a pulse train by the pulse coder 3. Reference numerals 4 and 4 ′ are sensors for detecting a workpiece, and a workpiece W placed on the conveyor 1 and being conveyed is detected at a detection position 50. For example, optical sensors are used for the sensors 4 and 4 '.
[0005]
Reference numeral VS represents a visual sensor including the image processing device 20 and a camera 30 (for example, a CCD camera), and reference numeral 31 represents a field of view of the camera 30. As indicated by broken lines in the figure, the image processing device 20 is in a form incorporated in the robot controller RC. The robot controller RC has a robot control unit 10, and the robot control unit 10 obtains a detection signal indicating the position / posture of the workpiece W from the built-in image processing device 20 and uses it for controlling the robot RB. The robot controller RC is connected to the sensors 4, 4 'and the pulse coder 3. The former detection signal is used for recognizing the arrival of the workpiece W, and the latter output is used for recognizing the conveyance position or conveyance amount of the workpiece W. Used.
[0006]
Now, as the operation of the robot RB, (1) when the workpiece W reaches the preset tracking start line 60, the tracking operation with P0 as the initial position is started. (2) The workpiece is moved at Q0 near the teaching position. (3) The gripping operation for the workpiece W is completed before the workpiece W reaches the tracking end line 70 (position Q1), and the workpiece W is separated from the conveyor 1. (4) The storage position Q2 on the workpiece storage unit 200 Considering the operation of releasing the workpiece W and (5) returning to the initial position P0, the execution procedure of this operation is as follows, for example.
[0007]
When the workpiece W supplied on the conveyor 1 arrives at a detection position by the sensors 4 and 4 ′, a detection signal is output from the sensors 4 and 4 ′, and the pulse coder count output value Ns at that time is stored in the robot controller RC. The When the workpiece W further moves and arrives at a pre-taught photographing position (position of line A), photographing by the camera 30 is executed and the image is taken into the image processing apparatus 20.
[0008]
The timing of photographing by the camera 30 is determined by monitoring the incremental amount from the pulse coder count output value Ns. This incremental amount is an amount representing the distance from the detection position by the sensors 4, 4 ′ to the photographing position (the position of the line A) through the scale factor α.
[0009]
The acquired image is processed in the image processing apparatus 20 to recognize the position / posture of the workpiece W. The position / posture of the workpiece W is recognized by, for example, recognizing the positions of the feature points a, b, c, d, etc. on the workpiece W and comparing with the reference image data created in advance during the preparation work. This is achieved by obtaining the quantity and transmitting the data representing the result to the robot controller 10.
[0010]
Next, when the incremental amount of the pulse coder count output value N from Ns becomes a value representing the arrival of the workpiece W at the tracking start position (line 60), the movement of the tracking coordinate system Σtr (Otr-xy) is started. Immediately thereafter, the movement (tracking operation) of the robot RB is started on the tracking coordinate system. Here, the tracking coordinate system Σtr is a coordinate system set to move in the same direction as the conveyor at the same speed, and its initial position has an origin upstream by a distance L0 from the base coordinate system Σb. Further, the x axis is set so as to coincide with the traveling direction of the conveyor 1 together with the X axis of the base coordinate system Σb. Here, the distance L0 is a distance between the position of the teaching point Q0 and the tracking start line 60.
[0011]
The movement path of the robot RB is performed in such a way as to realize the teaching path on the tracking coordinate system Σtr. However, in calculating the movement target position repeated in the interpolation calculation cycle, the amount of deviation detected by the visual sensor VS is compensated. As described above, the robot position (usually including the posture) is corrected.
[0012]
If the moving speed is taught to an appropriate value, the robot RB approaches the workpiece W along a curved trajectory as indicated by reference numeral 90 in FIG. 1, and reaches the workpiece W at an appropriate position Q0 within the tracking range. I will catch up. The linear trajectory 80 represents an example of a movement path when the robot RB is controlled on the base coordinate system Σb (Ob−XY).
[0013]
After catching up with the workpiece W, the gripping operation is completed in the tracking range, the tracking operation is finished at the position Q1 on the line 70, the workpiece W is released from the conveyor 1 at the storage position Q2 in the workpiece storage section 200, Return to the initial position P0.
[0014]
One problem with such a system is that if workpieces are supplied at random intervals including a short interval D as exemplified by workpieces W ′ and W ″ in FIG. 1, only one robot RB is deployed. This means that it is difficult to execute the tracking operation for the subsequent workpiece W ″. Conventional measures taken to avoid this problem include the following.
1. A method of processing a plurality of robots after aligning workpieces supplied at random intervals using some alignment means (in the transport direction or a direction perpendicular thereto). If this method is used, alignment means, control means thereof, and the like are required, which is not preferable for simplifying the system.
2. Work that is supplied at random intervals is processed as much as possible by one robot, and the work that could not be processed is detected again downstream of the first robot, and this is moved downstream of the first robot. A method of processing with the second and subsequent robots deployed. If this method is used, a workpiece re-detection means is required, which is also not preferable for simplifying the system.
[0015]
As a mechanism for detecting the position of the workpiece on the upstream side of the robot, the visual sensor VS provided with the camera 30 and the sensors 4 and 4 ′ for detecting the workpiece in advance on the upstream side are combined as in the example described above. In addition to the above, a system has been proposed in which this is improved so that prior detection on the upstream side of the camera 30 is unnecessary (therefore, the sensors 4 and 4 ′ are unnecessary).
[0016]
This improved work position detection method has the advantage that image acquisition and processing can be performed efficiently when the work supply frequency is high, but the work supply frequency exceeds the processing capacity of one robot. However, there is no change in that it is necessary to use alignment means such as a damming mechanism or to re-detect the workpiece on the downstream side of the first robot.
[0017]
[Problems to be solved by the invention]
Therefore, an object of the present invention is to solve the above-mentioned problems of the prior art. That is, the present invention is a work that involves a robot tracking operation on an object that is placed at random positions on a conveyor and is supplied at random intervals that may exceed the processing capability of one robot. It is to provide a visual sensor / robot system that can perform the above in a smart manner.
[0018]
[Means for Solving the Problems]
The present invention provides for each object based on the detection result of the object by the visual sensor. In charge of work on the object robot (Robot in charge of work) of Specified Do Person in charge Robot reservation means incorporated into the system , Wa Specified for each Work manager The above-described technical problem is solved by causing the robot to perform work related to the workpiece.
[0019]
The visual sensor used in the system according to the present invention obtains an image including an object by taking a camera means having a field of view on the transport path and photographing the camera means. Image acquisition Means, By the image acquisition means Image processing means for processing the acquired image and acquiring information related to the position of the object is provided.
[0020]
Also, Person in charge Robot reservation means Of the objects recognized by the visual sensor In the above Designation of the robot in charge of work by robot reservation means Is not finished For each object, the object obtained by the image processing means Information about the location of the object, Designated content of the robot in charge of work stored by the robot in charge of work manager Based on Ki , in front Among multiple robots For at least one robot Work including tracking operation But Executable robot A determination means for determining whether or not the robot in charge of work is designated by the work robot reservation means based on a result of the determination by the determination means. The
[0021]
And the robot control means In charge of the work robot Reservation By means Person in charge For each object for which a robot is specified In , In charge of the work robot Reservation By means To the robot in charge of the object Designated Person in charge Detected by the travel amount detection means on the robot Said Based on the travel amount of the transport means, Said Acquired by a visual sensor Concerned Means for executing a work including a tracking operation corrected using information on the position of the object.
[0022]
In a preferred embodiment, the robot reservation means is Person in charge robot Specified Reservation table that can write and read information about contents Including , The determination means includes Acquired by image processing means Ru , Designation of work robot by the work robot reservation means Information about the location of objects that have not been Said Based on the information about the motion range set for each of the plurality of robots, the required motion period of the robot required for work on the target object Said Means for obtaining at least one of a plurality of robots; Said Information indicating the duration of operation and Said Written in the reservation table, Said For objects that have already been scheduled for operation Person in charge robot Specified Contrast with information about content, Said About at least one robot Specified Judging the suitability of And The Specified Is deemed appropriate, Said The required operation period Said Means for writing to the reservation table are provided.
On the other hand, the robot control means, when the work including the tracking operation for the object is completed, Said About the object written in the reservation table Specifying the robot in charge Means to clear the contents are provided. The robot reservation means preferably further comprises means for outputting an error signal when none of the plurality of robots can be designated.
[0023]
As for the recognition of the object by the visual sensor, it is possible to use means for executing image acquisition and image processing each time a detection output indicating that the transport means has traveled a predetermined distance is given from the travel amount detection means. In order to enable reliable recognition of all workpieces, the predetermined distance representing the shooting interval by the camera is subtracted from the length of the camera view along the transport path by the length of the object along the transport path. It is appropriate to predetermine so as not to fall below the distance and to be substantially equal.
[0024]
[Action]
The most important feature of the visual sensor / robot system of the present invention is the visual sensor. Detected For each object Person in charge robot Specified Do Person in charge Designated for each workpiece by introducing robot reservation means. Work manager This makes it possible to cause the robot to perform work related to the workpiece.
[0025]
The visual sensor acquires an image including an object by camera means having a field of view on the transport path, and processes the acquired image to acquire information on the position of the object.
[0026]
Person in charge The robot reservation means is acquired by the image processing means. Specifying the robot in charge Information about the location of objects that have not been Specifying the robot in charge Based on the information related to the reservation contents of the robot for the object that has been completed, the robot that can perform the work including the tracking operation is selected from a plurality of robots and designated.
[0027]
And the robot control means Person in charge Objects for which robots are specified Every person in charge Specified by robot reservation means Person in charge The robot is based on the travel amount of the transport means detected by the travel amount detection means and is acquired by the visual sensor. Concerned An operation including a tracking operation corrected using information on the position of the object is executed.
[0028]
In a preferred embodiment, for each elephant Person in charge robot Specified Information about the contents is written in a memory area set in the reservation table. On the other hand, acquired by the visual sensor, Specifying the robot in charge On the basis of the information on the position of the object that has not been completed and the information on the operation range set for each of the plurality of robots, the required operation period of the robot required for the work on the object is at least of the plurality of robots. Required for one.
[0029]
And it is written in the reservation table and information indicating the required operation period Specifying the robot in charge Robots for objects that have finished Specified The suitability of the reservation is determined for at least one robot in comparison with the information regarding the contents. If it is determined that the reservation is appropriate, the required operation period is written in the reservation table.
[0030]
Also, Based on the above judgment Designated Person in charge When the robot completes the required work, the target object written in the reservation table Specifying the robot in charge The contents are cleared. Furthermore, in case the system is unreasonable (for example, when the supply frequency of the object is excessive), Person in charge An error signal may be output when the robot reservation means cannot designate any of the plurality of robots.
[0031]
The method of recognizing an object by a visual sensor is generally arbitrary, and a method of performing prior detection of an object upstream of the visual sensor in order to determine shooting timing by the camera of the visual sensor (described in FIG. 1). Method). However, it is also possible to adopt a method that does not detect the object in advance. When this method is employed, image acquisition and image processing are executed each time a detection output indicating that the transport unit has traveled a predetermined distance is given from the travel amount detection unit.
[0032]
At that time, in order to enable reliable recognition for all the workpieces, the predetermined distance representing the photographing interval by the camera is changed from the length of the camera view along the conveyance path to the length of the object along the conveyance path. It is appropriate to set the distance in advance so that it is not less than the distance obtained by subtracting and substantially equal. The visual sensor / robot system employing this method does not require a means for performing prior detection of an object, and has an advantage that the number of photographing and image processing can be reduced when the supply frequency of the object is high. .
[0033]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 2 shows an outline of the overall arrangement of the visual sensor / robot system according to the present invention in the same format as in FIG. 1, and common symbols are used as appropriate to indicate corresponding elements. In the present embodiment shown here, there are two robots (RB1, RB2) that perform the tracking operation, and the above-described improved method (camera of the visual sensor) is used for workpiece position detection for the tracking operation of the robot. Is not used in advance for determining the shooting timing.).
[0034]
As shown in the figure, the drive shaft of the linear conveyor 1 connected to the work supply source 100 that supplies a large number of works over time is driven by a motor built in the drive unit 2. The rotation amount of the drive shaft or drive motor is output in the form of a pulse train by the pulse coder 3.
[0035]
Reference numeral VS represents a visual sensor including the image processing device 20 and a camera 30 (for example, a CCD camera), and reference numeral 31 represents a field of view of the camera 30. As indicated by broken lines in the figure, the image processing device 20 is in a form incorporated in the robot controller RC.
[0036]
The robot controller RC has a robot controller 10 for the two robots RB1 and RB2. The robot controller 10 obtains data representing the positions of the workpieces W, W ′, W ″... From the built-in image processing device 20 and uses the count output value N of the pulse coder 3 to Designation (reservation) of which of the robots RB1 and RB2 is to perform the tracking operation is performed, and the tracking operation of the designated robot is controlled.
[0037]
FIG. 3 is a principal block diagram showing an outline of the internal configuration of the robot controller RC. In the figure, an image processing device 20 incorporated in the robot controller RC has a CPU (Central Processing Unit) 21 comprising a microprocessor. The CPU 21 includes a camera interface 22, a frame memory (image memory) 23, a program. A memory 24, an image processor 25, a data memory 26, and a monitor interface 27 are connected to each other via a bus BS ".
[0038]
A camera 30 is connected to the camera interface 22, and when a shooting command is sent via the camera interface 22, shooting is performed by an electronic shutter function (shutter speed is, for example, 1/1000 second) set in the camera 30. The video signal is stored in the frame memory 23 through the camera interface 22 in the form of a gray scale signal. A monitor CRT 40 is connected to the monitor interface 27, and an image being captured by the camera 30, a past image stored in the frame memory 23, an image processed by the image processor 25, and the like are displayed as necessary. The
[0039]
The video signal of the work W stored in the frame memory 23 is analyzed using the image processor 25 according to the analysis program stored in the program memory 24, and the position of the work W is obtained. Here, it is assumed that the workpiece W has four feature points as indicated by reference symbols a, b, c, and d in FIG. 2, and when all of these four points are detected, Based on this, the posture of the workpiece is calculated.
[0040]
The data memory 26 is a region for storing various setting values related to the visual sensor system, a region used for temporary storage of data necessary for various processes executed by the CPU 21, and the obtained work W, W ′. , W ″... Includes an area (work queue) for storing data (data of representative points a to d of each work) in a manner to be described later.
[0041]
The CPU 21 is bus-coupled to the CPU 11 of the robot control unit 10 described below via the bus BS inside the robot controller RC. Thereby, the entire visual sensor 20 is substantially configured as an apparatus integrated with the robot controller 10. That is, in this embodiment, the whole including the reference numerals 10 and 20 constitutes a robot controller RC with a built-in visual sensor.
[0042]
The robot control unit 10 includes a CPU 11 that is bus-coupled to the CPU 21 of the image processing apparatus 20 via the bus BS. The CPU 11 is connected to a ROM 12, a RAM 13, a non-volatile memory 14, a digital signal processor (DSP) data memory 17, and a digital signal processor (DSP) 18 via a bus BS '. The ROM 12 stores a program for controlling the entire system, and the RAM 13 is a memory used for temporary storage of data for CPU processing.
[0043]
In the non-volatile memory 14, in addition to the operation program for each robot RB1, RB2, coordinate system setting data, other various setting parameters, etc., reservation of robots RB1, RB2 (specification of allocation of tracking operation) is performed in a manner described later. A program to be executed is stored.
[0044]
The DSP 18 is a processor for processing the count output signal of the pulse coder 3, and the DSP data memory 17 is a DSP-dedicated memory for storing various processing data and setting parameters by the DSP 18. The DSP 18 has a function of detecting the count output of the pulse coder 3 at an arbitrary time point according to a command of the CPU 11 and writing it in a predetermined area of the DSP data memory 17. Further, the CPU 21 of the image processing apparatus 20 can also access the DPS data memory 17 via the CPU 11.
[0045]
Furthermore, in order to control the two robots RB1 and RB2, the robot controller 10 in the present embodiment is connected to the bus BS ′ in two systems below the axis controller. The robot RB1 on the upstream side of the conveyor 1 is connected to the mechanical unit of the robot RB1 via the axis controller 15 and the servo circuit 16, and the axis controller 15 ′ and the servo circuit 16 are connected to the robot RB2 on the downstream side. It is connected to the mechanism part of the robot RB2 via '.
[0046]
Hereinafter, a preparation work and a processing procedure for performing a work involving a tracking operation using such a visual sensor / robot system will be described. It is assumed that the program memory 24, the data memory 26, and the memory in the robot control unit 10 of the image processing apparatus 20 have already stored a program for executing necessary processing and related setting data.
[0047]
The tracking operation procedure is the same as that described in the related description of FIG. 1 for each of the robots RB1 and RB2. That is, for the upstream robot RB1,
(1) When the workpiece reaches the tracking start line 60, the tracking operation with P0 as the initial position is started.
(2) A workpiece is encountered at point Q0 near the teaching position.
(3) The gripping operation for the workpiece is completed before the workpiece reaches the tracking end line 70 (position Q1).
(4) The work is released at the storage position Q2 on the work storage unit 200, separated from the conveyor 1 to the side,
(5) Consider the operation of returning to the initial position P0.
[0048]
Similarly, for the downstream robot RB2,
(1) When the workpiece reaches the tracking start line 60 ′, the tracking operation with P0 ′ as the initial position is started.
(2) A workpiece is encountered at point Q0 'near the teaching position,
(3) The gripping operation for the workpiece is completed before the workpiece reaches the tracking end line 70 ′ (position Q1 ′).
(4) Separate from the conveyor 1 to the side and release the workpiece at the storage position Q2 'on the workpiece storage section 200'.
(5) Consider the operation of returning to the initial position P0 ′.
[0049]
These operations are executed according to the reservation contents after the robot (RB1 or RB2) in charge of the work is reserved in the robot control unit 10 for each work whose position has been obtained by the visual sensor VS. In the following, an overview from preparation work for operating the system to processing during system operation will be described in order.
[0050]
[preparation work]
(1) Determination of scale factor
A scale factor α = 1 / ΔN representing the relationship between the travel distance 1 of the conveyor 1 and the count output (incremental amount ΔN) of the pulse coder 3 is obtained by the same procedure as in the prior art.
1. The workpiece W is set at a position in the operation range of the robot RB1 (or RB2), and the count output N1 of the pulse coder 3 at that time is stored in the DSP data memory 17 of the robot controller 10.
2. The robot RB1 (or RB2) is manually operated to touch an appropriate fixed point on the workpiece W, and the robot position (X1, Y1, Z1) at that time is stored in the DSP data memory 17.
[0051]
3. The conveyor 1 travels an appropriate distance, stops the workpiece W at an appropriate position within the operation range of the robot RB1 (or RB2), and stores the count output N2 of the pulse coder 3 at that time in the DSP data memory 17.
4). The robot RB1 (or RB2) is manually operated to touch an appropriate fixed point on the workpiece W, and the robot position (X2, Y2, Z2) at that time is stored in the DSP data memory 17.
[0052]
5). The robot controller RC calculates α = (X 2 −X 1) / (N 2 −N 1) to obtain the scale factor α and stores it in the nonvolatile memory 14 of the robot controller 10 and the data memory 26 of the image processing device 20. To do.
[0053]
(2) Setting of sensor coordinate system Σs
The sensor coordinate system Σs is set in the visual sensor VS by appropriate means. For example, a known calibration jig is arranged at a position where the coordinate value on the base coordinate system Σb is known, and a calibration program stored in the program memory 24 of the image processing apparatus 20 is activated, so that the camera 30 Is stored in the data memory 26 of the image processing apparatus 20 for converting the pixel value data into the data of the sensor coordinate system Σs. Further, using the result, data representing the relationship between the sensor coordinate system Σs, the base coordinate system Σb of the robot RB1 and the base coordinate system Σb ′ of the robot RB2 is stored in the nonvolatile memory 14 of the robot control unit 10.
[0054]
(3) The work W is set on the conveyor 1 in the field of view 31 of the camera 30 and the pulse coder count output value Nvs at that time is stored in the DSP data memory 17 of the robot controller 10 and the data memory 26 of the image processing device 20. To do. Further, photographing by the camera 30 is executed, and an image of the work W is captured as a reference image and stored in the frame memory 23.
[0055]
(4) The conveyor 1 is run, and when the workpiece W reaches a position (on the line 60) suitable for causing the robot RB1 to start the tracking operation, the conveyor 1 is stopped. Then, a difference (incremental amount) ΔN60−vs = N60−Nvs between the pulse coder count output value N60 at that time and the previously stored Nvs is calculated and stored in the DSP data memory 17.
[0056]
(5) The conveyor 1 is further driven again, and the work W is brought to a position suitable for the robot RB1 to start work on the work W. Then, ΔNtc−vs = Ntc−Nvs is calculated from the pulse coder count output value Ntc at that time and the previously stored Nvs, and is stored in the DSP data memory 17.
[0057]
(6) Teach the robot RB1 the operations necessary to perform the gripping operation. The details are omitted here.
(7) The conveyor 1 is further driven again, the work W is brought to a position (on the line 70) suitable for ending the tracking operation of the robot RB1, and the conveyor 1 is stopped. Then, ΔN70−vs = N70−Nvs is calculated from the pulse coder count output value N70 at that time and the previously stored Nvs, and the result is stored in the DSP data memory 17.
[0058]
The same procedure as the above (4) to (7) is executed for the robot RB2 by the following procedures (8) to (11).
(8) The conveyor 1 further travels, and when the workpiece W reaches a position (on the line 60 ′) suitable for causing the robot RB2 to start the tracking operation, the conveyor 1 is stopped. Then, the difference (incremental amount) ΔN60′−vs = N60′−Nvs between the pulse coder count output value N60 ′ at that time and the previously stored Nvs is calculated and stored in the DSP data memory 17.
[0059]
(9) The conveyor 1 is further driven again, and the work W is brought to a position suitable for the robot RB2 to start work on the work W. Then, ΔNtc′−vs = Ntc′−Nvs is calculated from the pulse coder count output value Ntc ′ at that time and the previously stored Nvs and stored in the DSP data memory 17.
[0060]
(10) Teach the robot RB2 the operations necessary to perform the gripping operation (details omitted).
(11) The conveyor 1 is further driven again, the work W is brought to a position (on the line 70 ′) suitable for terminating the tracking operation of the robot RB2, and the conveyor 1 is stopped. Then, ΔN70′−vs = N70′−Nvs is calculated from the pulse coder count output value N70 ′ at that time and the previously stored Nvs, and the result is stored in the DSP data memory 17.
[0061]
(12) Setting of tracking coordinate system Σtr for robot RB1
In order to share the coordinate system of the robot RB1 and the conveyor 1, the tracking coordinate system Σtr is set under the following conditions. Here, it is assumed that the base coordinate system Σb in which the X axis coincides with the traveling direction of the conveyor has been set.
That is, the tracking coordinate system Σtr is set in the same posture as the base coordinate system Σb, and the origin position (X0, Y0, Z0) until the tracking coordinate system Σtr starts moving is
X0 = -L0
Y0 = 0
Z0 = 0
And
The conversion relationship between the coordinate value (x, y, z) on the tracking coordinate system Σtr and the coordinate value (X, Y, Z) on the base coordinate system Σb is
x = X-L0
y = Y
z = Z
It shall be represented by However, L0 is the distance from the position of the teaching point Q0 to the tracking start line 60. Therefore, in order to determine the value of L0, the already obtained scale factors α, ΔN60-vs, ΔNtc-vs are used.
L0 = α (ΔNtc-vs−ΔN60-vs)
And the tracking coordinate system Σtr is stored in the non-volatile memory 14 of the robot control unit 10 as a parameter described above.
[0062]
By setting the tracking coordinate system Σtr in this way, the position of the teaching point Q0 is recognized as the point Qtr on the tracking start line 60 when the robot RB1 is operated on the tracking coordinate system Σtr at the initial position.
[0063]
The tracking coordinate system Σtr starts moving in the x-axis direction (= X-axis direction) at the same speed as the conveyor 1 in response to the tracking operation start command. The amount of movement of the tracking coordinate system Σtr is determined in real time based on the change amount of the pulse coder count output value N and the scale factor α, as will be described later.
[0064]
For the robot RB2, the tracking coordinate system Σtr ′ is similarly set as follows.
(13) Setting of tracking coordinate system Σtr 'for robot RB1
In order to share the coordinate system of the robot RB2 and the conveyor 1, the tracking coordinate system Σtr ′ is set under the following conditions. As in the case of the robot RB1, it is assumed that the base coordinate system Σb ′ in which the X axis coincides with the traveling direction of the conveyor has been set. That is, the tracking coordinate system Σtr ′ is set in the same posture as the base coordinate system Σb ′, and the origin position (X0 ′, Y0 ′, Z0 ′) until the tracking coordinate system Σtr ′ starts moving is
X0 '=-L0'
Y0 '= 0
Z0 '= 0
And
The conversion relationship between the coordinate values (x ′, y ′, z ′) on the tracking coordinate system Σtr ′ and the coordinate values (X ′, Y ′, Z ′) on the base coordinate system Σb ′ is
x ′ = X′−L0 ′
y '= Y'
z '= Z'
It shall be represented by However, L0 ′ is the distance from the position of the teaching point Q0 ′ to the tracking start line 60 ′. Therefore, in order to determine the value of L0 ′, the already obtained scale factors α, ΔN60′-vs, ΔNtc′-vs are used.
L0 ′ = α (ΔNtc′−vs−ΔN60′−vs)
And the tracking coordinate system Σtr is stored in the non-volatile memory 14 of the robot control unit 10 as a parameter described above.
[0065]
By setting the tracking coordinate system Σtr ′ in this way, when the robot RB2 is operated on the tracking coordinate system Σtr ′ at the initial position, the position of the teaching point Q0 ′ is set to the point Qtr ′ on the tracking start line 60 ′. Recognize as
[0066]
The tracking coordinate system Σtr ′ for the robot RB2 receives a tracking operation start command and starts moving in the x-axis direction (= X-axis direction) at the same speed as the conveyor 1 in the same manner as the tracking coordinate system Σtr for the robot RB1. To do. Further, the movement amount of the tracking coordinate system Σtr ′ is determined in real time based on the change amount of the pulse coder count output value N and the scale factor α.
[0067]
(14) Set related values of a schedule diagram for planning and making reservations for the robots RB1 and RB2, and setting of a register constituting a reservation table for reservation of operations of the robots RB1 and RB2 (schedule diagram, reservation) Details of the table will be described later).
(15) In addition, setting of a register accessed in processing described later, the length of the field of view 31, a parameter for adjusting the photographing interval, a reference value of error signal output, etc. are set (w, f30, ε1, ε2, etc.) .
[0068]
Thus, the preparation work for tracking execution is completed. Next, in addition to the reference diagram of FIG. 4 and the subsequent drawings, the CPU processing at the time of executing this work by tracking will be described. Processing is roughly divided into processing on the visual sensor VS side and processing on the robot control unit 10 side. In the present embodiment, work allocation processing for designating either the robot RB1 or the robot RB2 is performed on the robot control unit 10 side. These processes are executed in parallel as task processes. First, the outline of the processing on the visual sensor VS side shown in FIG. 5 will be described. In addition, the following description is performed on the premise of following (1)-(3).
[0069]
(1) w is an index value indicating the number of workpieces for which the position detection result data storage by the visual sensor VS has been completed and the robot in charge of work (RB1 / RB2) is not specified, and its initial value is naturally w = 0.
(2) The posture of the workpiece W supplied varies, and as shown in FIG. 5, the maximum value of the length of the workpiece W measured along the conveying direction of the conveyor 1 in consideration of this variation is s0. And
(3) It is assumed that the visual field 31 of the camera 30 covers the entire width of the conveyor 1 and that the workpiece W is not supplied in a state of protruding in the width direction of the conveyor 1. Therefore, the workpiece image does not protrude in the width direction of the conveyor 1.
[0070]
The processing performed in the robot controller 10 and the image processing apparatus 20 is started simultaneously upon receiving an appropriate external signal that informs that the workpiece supply source 100 has started supplying workpieces onto the conveyor 1. The CPU 21 of the image processing apparatus 20 first outputs a shooting command, executes shooting by the camera 30, stores the acquired image in the frame memory (step S1), and stores the pulse coder count output value N30 at the time of image acquisition in the DSP memory. 17 and the data memory 26 (step S2).
[0071]
Further, the image acquired in step S1 is analyzed using an analysis program stored in the program memory 24, and first, detection of the most downstream work is attempted (step S3). If the most downstream work is not successfully detected (all points a, b, c, and d are detected) (No in step S4), the process proceeds to step S5 and subsequent steps to prepare for the next shooting. That is, in step S5, the pulse coder count output value N is repeatedly checked in a short cycle and waits for the conveyor movement amount α (N−N30) from the time of the latest image acquisition to exceed f30−ε1 (ε1> 0) ( Step S5).
[0072]
Here, ε1 not only prevents a region that is not photographed between two images acquired in succession, but also a, b, c, d at any photographing opportunity for all workpieces. This adjustment value basically guarantees that all points are detected. Therefore, .epsilon.1 is determined to be almost the minimum under the condition that it does not fall below the workpiece maximum length s0.
[0073]
For example, when the visual field length is 100.0 cm and s0 = 5.0 cm, ε1 = 5.1 cm to 6.0 cm. Increasing ε1 more than necessary is not preferable in terms of efficiency because a double photographing area (an area that overlaps and includes images taken one after another) becomes large. In addition, there is a possibility that two detections are performed from images taken one after the other for one workpiece. For such a possibility, a double detection data discarding process described later is used. This is dealt with (see steps S9 to S11 described later).
[0074]
If YES is determined in step S5, it is confirmed that the conveyor movement amount α (N−N30) does not exceed f30−ε1 + ε2 and that no processing end signal is output (step S5). S6, S7), the process returns to step S1, and the next shooting / image capture, storage of N30 (step S2), and image processing (step S3) are sequentially executed.
[0075]
As for ε2 included in the judgment formula of step S5, the conveyor movement amount is already excessive at the time of the next shooting, and all points a, b, c and d are detected at any shooting opportunity for all workpieces. In this process, 0 <ε2 ≦ ε1−s0 is set, which is an adjustment value for determining whether or not the double photographing area for forming the double-shooting region cannot be formed. However, if ε1 = s0, ε2 = 0, so this step S6 is not necessary.
[0076]
The determination of yes in step S6 is output when the conveyor speed is too high compared to the image processing speed or when an abnormally long time is spent on the image processing. Since such a case is considered to mean that the system is not operating normally, the process proceeds to step S8, and after outputting an error signal, the process is terminated. In addition, the determination of yes in step S7 is output when an external signal indicating the end of shooting of all the workpieces, an error signal, or the like is output on the robot side.
[0077]
When the workpieces W reach the field of view 31 one after another, a yes determination is output in step S4. In that case, the process proceeds to step S9, and the double detection of the image data of the same workpiece is checked for the position detection result. If it is confirmed that the image data of the same work is not obtained twice, the detection result is stored in association with the pulse coder count output value N30 at the time of image acquisition (step S10), and the value of the register value w is incremented by one. (Step S11).
[0078]
On the other hand, when it is determined that the image data of the same work is to be obtained twice, the detection result is not written to the work queue and the register value w is not counted up by 1 (discarding the detected data). Proceed to S12.
[0079]
Whether or not the data is double-written data is checked by writing the current data (position data of a, b, c, d and pulse coder count output value N30 at the time of image acquisition) and the work queue. This is achieved by comparing the data (position data of a, b, c, d and the pulse coder count output value N30 at the time of image acquisition) (see the configuration of the work queue described later).
[0080]
If there is a double detection of the same workpiece, the following two conditions should be satisfied.
1. The difference between the pulse coder count output value N30 at the previous detection and the pulse coder count output value N30 at the current detection is substantially equal to the incremental count value for one shooting interval. From step S5, (f30−ε1) / α can be adopted as the latter value.
2. The difference between the previously detected positions a, b, c, d and the positions a, b, c, d detected this time is equal to the pulse coder count output value incremental amount representing γ × the photographing interval. What you are doing. That is, the difference between the previously detected positions a, b, c, and d and the currently detected positions a, b, c, and d substantially coincides with γ × (f30−ε1) / α. Being. Here, γ is a conversion count between the distance on the sensor coordinate system and the pulse coder count output value, and is set in advance.
[0081]
Therefore, an inequality for the difference of N30 between the current and previous detection data,
| N30 (current) -N30 (previous)-(f30-ε1) / α | <ε3
(However, ε3 is a small positive setting value)
Further, for at least one of the positions a, b, c and d, an inequality relating to the absolute value of the difference from γ × (f30−ε1) / α, for example,
| Position of a (current) -position of a (previous) -γ (f30-ε1) / α | <ε4
(However, ε3 and ε4 are small positive setting values)
Check success or failure. From these results, the presence or absence of double detection of the same workpiece can be checked. That is, it is only necessary to determine that the same workpiece has been detected twice only when both the inequalities are simultaneously established.
[0082]
When the position detection, double detection check, storage, etc. for the most downstream workpiece are completed, detection of another workpiece image in the same image is attempted (step S12). If the detection is successful (Yes in step S13), the process returns to step S9, and the processes in steps S10 to S13 are executed again. If the detection is not successful (No in step S13), the process proceeds to step S5 and subsequent steps and waits for the next shooting timing. The processing from step S5 to step S8 is as already described.
[0083]
By repeating the processing cycle described above (steps S1 to S13) until the processing is completed, data representing the positions a, b, c, and d are sequentially acquired for all the workpieces unless the system operates abnormally. FIG. 6 is a diagram for explaining the format of the work queue for storing these data. In each column, the line number, the robot designation index u, and the reference value of the detection position of the representative points a to d of the work are described in order from the left. This represents data represented by a deviation (a deviation amount with a positive / negative sign) from a value obtained from a reference image, and a pulse coder count output value N30 at the time of image acquisition corresponding to the data.
[0084]
The robot designation index u is an index indicating whether the robot is designated / undecided, and 0 is written when the work data is written. Then, if reading for robot designation to be described later is performed, it is updated to u = 1. The writing of the work data is performed in ascending order of the line numbers (NO), and if the writing is performed to the end, the next work data is overwritten on the first line.
[0085]
In the example described here, five workpiece data have been written (w = 5), and the position deviation data (Δxa1, Δya1, Δxb1,... Δxd5, Δyd5) of each workpiece is written together with the value of N30. ing. In addition, the work data in the first and second rows have been read for robot designation to be described later. The numerical value of the pulse coder count output value N30 at the time of image acquisition is merely an example, but the first and second rows and the fourth and fifth rows of N30 match each other at the same shooting opportunity. This means that position detection has been performed for two workpiece images in the obtained image.
[0086]
Next, an outline of processing performed on the robot control unit 10 side will be described. When receiving an appropriate external signal notifying the start of workpiece supply, the CPU 11 of the robot control unit 10 starts the robot reservation process and the robot operation process for each robot using the multitask processing function. First, an outline of the robot reservation process will be described with reference to the flowchart of FIG. Note that the processing of steps R6, R7, R10, and R11 will be supplementarily described using the schedule diagram of FIG.
[0087]
In the flowchart of FIG. 7, as soon as the processing is started, the system enters a state of repeatedly checking whether the register value w = 0 in a short cycle (step R1). When the position of the workpiece is detected by the above-described shooting and the subsequent processing on the image processing apparatus 20 side, the result is stored in the format shown in FIG. 6 and the index value w becomes w ≠ 0.
[0088]
Therefore, after confirming the existence of u = 0 (unread) data (step R2), the data of one work written in the oldest among the data of u = 0 is read (step R3). In the example shown in FIG. 6, the data [Δxa3, Δya3... Δyd3, 3465] in the third row is read. When the reading is completed, the u value of the read row is updated from 0 to 1 (step R4).
[0089]
Then, based on the read data, the robot RB 1 operation required period is calculated (step R5). robot RB The period required for 1 means that if the workpiece is a robot RB Robot when processing with 1 RB 1 is the period during which it is used. In this embodiment, the conveyance speed V of the conveyor 1 is considered as a known constant value, and the required operation period is calculated as the range of the pulse coder count output value N (details will be described later).
[0090]
Then, a reservation table (details will be described later) set for the robot RB1 is accessed, and the required operation period calculated in step R5 is compared with the reservation contents to determine whether the reservation of the robot RB1 is appropriate (step R6). If it is determined that the reservation is appropriate (possible), the required operation period calculated in step R5 is written in the reservation table for the robot RB1 (step R7).
[0091]
Next, after determining the necessity of the end of the process (determined by an operation end command, an error signal, etc.) (step R8), the process returns to the first step R1, and the processes after step R1 are executed again.
[0092]
If it is determined in step R6 that the reservation of the robot RB1 is inappropriate (if it is determined impossible), the process proceeds to step R9, and based on the data read in step R3, the robot is similar to step R5. RB 2. Calculate the required operation period. robot RB The operation period required for 2 means that if the workpiece is a robot RB Robot when processing with 2 RB 2 is the period of use, and the calculation method is robot RB This is the same as the case of 1 (details will be described later).
[0093]
Then, the reservation table (details will be described later) of the robot RB2 is accessed, the required operation period calculated in step R9 is compared with the reservation contents, and the suitability of the reservation of the robot RB2 is determined (step R10). If it is determined that the reservation is appropriate (possible), the required operation period obtained in step R9 is written in the reservation table (step R11). From step R11, the process proceeds to step R8. After determining the necessity of the end of the process (determined by an operation end command, an error signal, etc.), the process returns to the first step R1, and the processes after step R1 are executed again.
[0094]
Should the reservation of the robot RB2 be inappropriate in step 10 (if it is determined impossible, the conveyor 1 conveyance speed, workpiece supply frequency, etc. may exceed the processing capacity of this system, or the system may malfunction. The process is terminated by outputting an error signal (step R12) and correcting the conveyance speed of the conveyor 1 and the work supply frequency, repairing malfunction of the system, etc. Take action.
[0095]
The above is the outline of the robot reservation process. The processes of steps R6, R7, R10, and R11 will be supplementarily described with reference to FIG. 8 (schedule diagram) and FIG. 10 (reservation table). The horizontal axis of the schedule diagram of FIG. 8 represents the passage of time, and the vertical axis represents the position along the conveying direction of the conveyor 1. Both the horizontal axis and the vertical axis are scales using the pulse coder count output value N, where the transport speed V of the transport conveyor 1 is a known constant value (calculated from the change rate of the count output of the pulse coder 3 and the scale factor α). .
[0096]
The point B on the vertical axis represents the limit position where the robot RB1 can start operation without difficulty, and corresponds to the start line 60 of the tracking range shown in FIG. Therefore, if the distance between the origin O and the point B of the diagram is expressed as a count value, N60−N30−δN. Here, δN is a small count value (δN ≧ 0) that is appropriately set in order to provide a margin for starting the operation of the robot RB1.
[0097]
Point C corresponds to the count value at the time point when the robot RB1 can complete the operation for one cycle without difficulty (return to P0). If the distance between the origin O and the point C in the diagram is expressed as a count value, N70-N30 + N200. Here, N200 is an incremental count value of the pulse coder 3 within the time required for the robot RB1 to leave the tracking operation (position of the line 70), to place the workpiece in the storage unit 200, and to return to the initial position P0. Alternatively, it is an amount set as a value slightly larger than that (in order to give a margin to the operation).
[0098]
Similarly, the point D on the vertical axis represents the limit position at which the robot RB2 can start operation without difficulty, and corresponds to the start line 60 ′ of the tracking range shown in FIG. . Therefore, if the distance between the origin O and the point D of the diagram is expressed as a count value, N60′−N30−δN ′. Here, δN ′ is a small count value (δN ′ ≧ 0) that is appropriately set in order to provide a margin for starting the operation of the robot RB2.
[0099]
Point E corresponds to the count value when the robot RB2 can complete the operation for one cycle without difficulty (return to P0 '). If the distance between the origin O and the point E in the diagram is expressed as a count value, N70′−N30 + ΔN200 ′. Here, ΔN200 ′ is the pulse coder 3 within the time required for the robot RB2 to leave the tracking operation (position of the line 70 ′), place the workpiece in the storage portion 200 ′, and return to the initial position P0 ′. Is a count value to be counted or a value slightly larger than that (to give a margin to the operation). Data (count values representing points B, C, D, and E) that define the required operating range of the robots RB1 and RB2 are executed in the above-described preparatory work (14).
[0100]
Now, letting g1 denote the conveyance process of the first workpiece (W1), g1 becomes an inclined straight line as shown. If the horizontal and vertical axes are equally set, the inclination is 45 degrees. If the workpiece transport distance is measured from the photographing reference position (the position of line A in FIG. 2), the point (count value) NA1 where the straight line g1 intersects the horizontal axis is a point representing the workpiece W1 (for example, the point a , B, c, d) represents the time point (count output value) when passing through line A.
[0101]
For example, when the work data detected for the work W1 is written in the first line of FIG.
NA1 = 2565 + (Δxy1 / α)
It becomes. Here, α is a set scale factor, and Δxy1 is a deviation of the center of gravity position of the workpiece W1 calculated from Δxa1, Δya1,... Δxd1, Δyd1. If Δxa1 = Δya1 =... = Δxd1 = Δyd1 = 0 (captured at the same position as when the reference image was acquired), Δxy1 = 0 and NA1 = 2565.
[0102]
Similarly, if work data for other subsequent workpieces (W2 and W3) are sequentially written in the work queue shown in FIG. 6, the horizontal axis for g2 and g3 representing the conveyance progress of these workpieces W2 and W3. It is possible to obtain points (count values) NA2 and NA3 that intersect with.
[0103]
From the above, the determination procedure in step R6 is performed as follows.
R6-1: NA is obtained from the work data read in step R3. For work W1, NA1 is obtained. Similarly, NA2 is obtained when the work data of the work W2 is read, and NA3 is obtained when the work data of the work W3 is read.
[0104]
From R6-2; NA, the required operation section NBNC (NB and NC) of the robot RB1 is obtained. In the above example, the section NB1NC1, NB2NC2 or NB3NC3 is obtained.
[0105]
R6-3: Access to the reservation table to check whether the required operation period of the robot RB1 obtained for the work data violates the reservation period. If the work W1 is the first work detected, the work table remains in the cleared initial state (no reservation). Therefore, the judgment output is yes.
[0106]
In the next step R7, the data of the section NB1NC1 is written in the reservation table (for RB1).
[0107]
FIG. 10 shows a reservation table for RB1 and RB2 in which reservation periods are written. The columns of each reservation table are, in order from the left, an index indicating completion (= 0) / uncompleted (= 1) of the robot operation, a work data number (work queue line number in FIG. 6), and an end point of the required operation section. Data NB, NC (for RB1) or ND, NE are written.
[0108]
Although the written numerical value is merely illustrative, it represents the next reservation content.
Robot RB1; The required operation period [4051 to 4551] is reserved for the work of work queue number 1, and the operation is incomplete (first column = 1).
Robot RB2; The required operation period [4130 to 4630] is reserved for the work of work queue number 2, and the operation is incomplete (first column = 1).
[0109]
Here, when the work W2 is supplied immediately after the work W1 (see the straight lines g1 and g2 in FIG. 8), when the work table for RB1 is accessed in step R6 for the work W2, the above reservation is made. Data is written, and the workpiece W2 clearly conflicts with the required operation period calculated in step R5 (in FIG. 8, the straight line g2 passes through the shaded area). Therefore, the judgment output at step R6 regarding the workpiece W2 is no.
[0110]
In this case, the process proceeds from step R9 to R10 according to the flowchart of FIG. The determination procedure in step R9 is executed as follows.
R9-1: The required operation section ND NE (ND and NE) of the robot RB2 is obtained from the already obtained NA. Here, the section NB2NC2 is obtained for the work W2.
[0111]
R9-2: Access to the reservation table to check whether the required operation period of the robot RB2 obtained for the work W2 conflicts with the reservation period. If the work W2 is the second detected work, the work table for RB2 remains in the cleared initial state (no reservation). Therefore, the judgment output is yes.
[0112]
Therefore, in the next step R10, the data of the section ND2NE2 is written in the reservation table (for RB2). The reservation table for RB2 in FIG. 10 illustrates this state. Further, a section drawn with a sand pattern in the schedule diagram of FIG. 8 represents a reserved period for the work W2.
[0113]
From the same consideration, it can be seen that for the third workpiece W3 represented by the straight line g3, the judgment output at step R6 is YES. This is because the straight line g3 passes through the sandy pattern area but does not pass through the hatched area.
[0114]
Finally, the robot operation process will be described with reference to the flowchart of FIG. Since the operations of the two robots RB1 and RB2 are basically the same, the processing for both will be described together using () writing for RB2.
[0115]
First, the operation program data including the position data of the teaching point Q0 (or Q0 ') is read (step H1), and the reservation table is repeatedly checked in a short cycle (step H2). When the reservation period of the robot RB1 or robot RB2 is written in step R7 of the reservation process described above, a yes determination output is issued in step H2, and the process proceeds to step H3.
[0116]
In step H3, the work queue is accessed, and the work data of the number (row) specified in the reservation table is read. In the above example, data [Δxa1, Δya1,... Δxc1, Δyd1, 2565] related to the workpiece W1 is read.
[0117]
Next, the system waits for the pulse coder count output value N to reach N = ΔN60−vs (ΔN60′−vs in the case of the robot RB2, the same applies hereinafter) + N30 (step H4). In the example of the workpiece W1, N30 = 2565.
[0118]
The pulse coder count output value of N = ΔN60−vs (ΔN60′−vs) + N30 is a count value that serves as an indication that the workpiece has reached the position of the tracking start line 60 (or 60 ′). If the shooting position of the workpiece coincides with the workpiece position when the reference image is obtained, this value accurately indicates that the workpiece has reached the position of the tracking start line 60 (or 60 '). become.
[0119]
If a determination result of YES is obtained in step H4, the movement of the robot RB1 (or RB2) is immediately started on the tracking coordinate system Σtr (or), and the movement of the tracking coordinate system Σtr (or Σtr ') is started. Start (step H5). The movement of the tracking coordinate system Σtr (Σtr ′) for the robot RB1 (for RB2) moves the position [X0, Y0, Z0] ([X0 ′, Y0 ′, Z0 ′]) of the origin of the tracking Σtr (Σtr ′). This is achieved by assuming that it exists at the position represented by the following equation. Here, N is the current value of the pulse coder count output value N.
Tracking Σtr movement position;
X0 = -L0 + .alpha. {N-(. DELTA.N60-vs + N30)}
Y0 = 0
Z0 = 0
The conversion formula of the coordinate value when the tracking coordinate system Σtr is moving is
x = X−L0 + α {N− (ΔN60−vs + N30)}
y = Y
z = Z
It becomes.
[0120]
Movement position of tracking Σtr ';
X0 ′ = − L0 ′ + α {N− (ΔN60′−vs + N30)}
Y0 '= 0
Z0 '= 0
The conversion formula of the coordinate value when the tracking coordinate system Σtr 'is moving is
x ′ = X′−L0 ′ + α {N− (ΔN60′−vs + N30)}
y '= Y'
z '= Z'
It becomes.
[0121]
Thereby, the tracking operation of the robot RB1 (or RB2) is started. That is, the robot RB1 (or RB2) starts moving toward the teaching point on the tracking coordinate system Σtr (or Σtr ′). However, the position of the interpolation point created by the interpolation operation is corrected based on the data read in step H3 (deviation amount from the reference position).
[0122]
The teaching point position at the start of movement is considered from the setting method of the initial position of the tracking coordinate system Σtr (Σtr ′), and as shown by the reference symbol Qtr (Qtr ′) in FIG. 2, the tracking start line 60 (60 ′ )It's above. After the movement of the tracking coordinate system Σtr (Σtr ′) starts, the point Qtr (Qtr ′) is moved synchronously with the travel of the conveyor 1 (more precisely, it is corrected with the data of the visual sensor. The robot RB1 (RB2) is moved so as to aim at (position). As a result, the robot RB1 (RB2) moves while drawing a curved trajectory as indicated by reference numerals 90 and (90 ′).
[0123]
When it is confirmed that the robot RB (RB2) has caught up to the workpiece within the tracking range (Yes in step H6), the taught workpiece gripping operation is executed on the tracking coordinate system Σtr (Σtr ′). (Step H7).
[0124]
If the pulse coder count output value N reaches N = ΔN70−vs (ΔN70′−vs) + N30 (Yes in step H8), the tracking coordinate system Σtr (Σtr ′) of the robot RB1 (RB2) The operation is terminated and the movement to the teaching point Q2 (Q2 ') on the workpiece storage unit 200 (200') is started (step H9).
[0125]
When the teaching point Q2 (Q2 ') is reached, the gripping of the workpiece is released and the workpiece is stored in the workpiece storage section 200 (200') (step H10). Then, the robot RB1 (RB2) is moved from Q2 (Q2 ') to the initial position P0 (P0') (step H11), and the reservation data in the reservation table for the robot RB1 (RB2) is cleared (step H12). For example, if the robot RB1 completes the processing of the workpiece W1, "0" is overwritten in each column of the reservation table for RB1 shown in FIG.
[0126]
Thus, the operation cycle of the robot RB1 (or RB2) for one workpiece is completed. Therefore, unless a command for requesting to stop the operation of the system is output (the determination output in step H13 is no), the process returns to step H1 to start processing for the next detected workpiece. Since the following processing is as described above, repeated description is omitted.
[0127]
As described above, the embodiment in which the present invention is applied to an application for gripping and storing a workpiece has been described. However, it is obvious that the present invention can also be used for other applications involving a tracking operation with respect to an object moving on a conveying means. . The system configuration and data processing / transmission method of the embodiment can be modified as follows, for example.
[0128]
(1) Number of robots used;
It is possible to use three or more robots. The concept of the schedule diagram shown in FIG. 8 can be applied no matter how many robots are used. For example, when the third robot RB3 is used, in addition to the motion ranges BC and DE, the motion range FG, a reservation table for the robot RB3, etc. are newly set, and the required motion period for the robot RB3 is calculated. Processing, checking processing of the reservation table for the robot RB3, writing processing, clear processing, etc. may be added.
[0129]
(2) Separation of visual sensor (image processing device) and robot control means;
The visual sensor VS may be configured separately from the robot controller RC, and both may be connected by a communication line including a communication interface that operates according to a common protocol to exchange work data, command data, and the like.
[0130]
(3) Sharing of robot reservation processing on the visual sensor side;
In this embodiment, the robot reservation process is performed on the robot side, but this may be performed on the visual sensor side.
[0131]
(4) Configuration of robot control means;
In this embodiment, two robots are controlled by one robot control means (robot control unit 10). However, one robot controller may be used for each robot. In this case, it is preferable to use a system in which one visual sensor (image processing apparatus) and each robot controller are connected by a communication line. Moreover, it is preferable that the robot reservation process is performed on the visual sensor side and the result is transmitted to each robot as necessary.
[0132]
(5) Change of detection method of visual sensor;
In the present embodiment, as a workpiece detection method suitable for a case where the workpiece supply frequency is high, a method in which the workpiece is not detected in advance is adopted. This is the conventional method described in FIG. Can be adopted. Even if the old method is adopted, it has been said that no fundamental changes are required in the processing after the robot reservation performed using the work data written in the work queue and the data representing the travel amount of the transport means. It will be clear from the explanation.
[0133]
【The invention's effect】
According to the present invention, a tracking operation can be performed by using a combination of one visual sensor and a plurality of robots on an object placed at random positions on a conveyor and supplied at random intervals. The work involved can be reasonably shared and executed neatly.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining an outline of a vision sensor / robot system including one robot.
FIG. 2 shows the overall arrangement of an embodiment of the present invention in a format similar to FIG.
FIG. 3 is a principal block diagram showing an outline of an internal configuration of a robot controller RC used in the embodiment.
FIG. 4 is a flowchart illustrating an outline of processing performed on the image processing apparatus side in the embodiment of the present invention.
FIG. 5 is a diagram for explaining a maximum length s0 of a supplied workpiece W. FIG.
FIG. 6 is a diagram illustrating a work queue for storing work detection data in the embodiment of the present invention.
FIG. 7 is a flowchart illustrating robot reservation processing according to the embodiment of the present invention.
FIG. 8 is a schedule diagram for explaining the principle of robot reservation processing;
FIG. 9 is a flowchart illustrating processing for robot operation according to the embodiment of the present invention.
FIG. 10 is a diagram illustrating a reservation table for two robots in the embodiment of the present invention.
[Explanation of symbols]
1 Conveyor
2 Conveyor drive
3 Pulse coder
4,4 'sensor (pre-detection)
10 Robot controller
11 CPU (Robot Controller)
12 ROM
13 RAM
14 Nonvolatile memory
15,15 'axis controller
16, 16 'servo circuit
17 Digital signal processor (DSP) data memory
18 Digital signal processor (DSP)
19 Sensor interface
20 Image processing device
21 CPU (image processing device)
22 Camera interface
23 frame memory
24 program memory
25 Image processor
26 Data memory
27 Monitor interface
30 cameras
31 fields of view
40 Monitor CRT
50 Detection position line
60, 60 'tracking start line
70, 70 'Tracking end line
80 Straight orbit
90,90 'curved trajectory
100 Work source
200,200 'Work storage
BS, BS ', BS "bus
P0, P0 'Robot initial position
RB, RB1, RB2 robot
RC robot controller
VS visual sensor
W, W ', W "work
a, b, c, d Features of the workpiece

Claims (4)

経時的に供給される多数の対象物を搬送する搬送手段の走行量を検出する走行量検出手段と、
前記搬送手段によって搬送される対象物を認識する視覚センサと、
前記搬送手段の搬送経路の近傍に配置された複数のロボットと、
前記視覚センサによって認識された対象物毎に、当該対象物に対する作業を担当する作業担当ロボットの指定を、前記作業が当該対象物に対して実行される前に予め行ない、該指定の内容を記憶する作業担当ロボット予約手段と、
記複数のロボットを制御するロボット制御手段を備えた、複数のロボットにトラッキング動作を行なわせるための視覚センサ・ロボットシステムであって、
前記視覚センサは、
前記搬送経路上に視野を持つカメラ手段と、
前記カメラ手段に撮影を行なわせて前記対象物を含む画像を取得する画像取得手段と、
前記画像取得手段によって取得された画像を処理して前記対象物の位置に関する情報を取得する画像処理手段を備えており、
前記作業担当ロボット予約手段は、
前記視覚センサによって認識された対象物の内で前記作業担当ロボット予約手段による作業担当ロボットの指定が済んでいない対象物毎に、
前記画像処理手段によって得られる当該対象物の位置に関する情報と、前記作業担当ロボット予約手段によって記憶されている作業担当ロボットの指定内容に基づ記複数のロボットの中の少なくとも1つのロボットについて、該ロボットがトラッキング動作を含む作業が実行可能なロボットであるか否かを判断する判断手段を含み、
前記作業担当ロボット予約手段による作業担当ロボットの指定は、該判断手段による判断の結果に基づいて行われるようになっており、
前記ロボット制御手段は、
前記作業担当ロボット予約手段による作業担当ロボットの指定がなされた対象物毎、前記作業担当ロボット予約手段によって当該対象物の作業担当ロボットに指定された作業担当ロボットに、前記走行量検出手段によって検出された前記搬送手段の走行量に基づくとともに、前記視覚センサによって取得された当該対象物の位置に関する情報を用いて補正されたトラッキング動作を含む作業を実行させる手段を備えている、
前記複数のロボットにトラッキング動作を行なわせるための視覚センサ・ロボットシステム。
A travel amount detecting means for detecting a travel amount of a transport means for transporting a large number of objects supplied over time;
A visual sensor for recognizing an object conveyed by the conveying means;
A plurality of robots arranged in the vicinity of the transfer path of the transfer means;
For each object recognized by the visual sensor , a robot in charge of work for the object is designated in advance before the work is performed on the object, and the contents of the designation are stored. A robot reservation means for performing work ,
And a robot control unit for controlling the pre-Symbol plurality of robots, a visual sensor robot system for performing a tracking operation to a plurality of robots,
The visual sensor is
Camera means having a field of view on the transport path;
Image acquisition means for acquiring an image including the object by causing the camera means to shoot;
Image processing means for processing the image acquired by the image acquisition means to acquire information on the position of the object,
The work robot reservation means is
For each object that has not been designated by the work robot reservation means among the objects recognized by the visual sensor ,
At least one robot of the information about the position of the object obtained by the image processing means, based-out to specify the contents of the work assigned robot stored by the working charge robot reservation means, in the previous SL plurality of robots A determination means for determining whether or not the robot is a robot capable of performing a task including a tracking operation;
The designation of the work handling robot by the work handling robot reservation means is performed based on the result of the judgment by the judgment means,
The robot control means includes
Each object designated is made of work assigned robot by the working charge robot reservation unit, the work charge robot specified working charge robot of the object by the working charge robot reservation unit, detected by the travel distance detection means together based on the travel distance of the conveying means being provided with a means for executing a task including the corrected tracking operation by using the information about the position of the object acquired by the visual sensor,
A visual sensor / robot system for causing the plurality of robots to perform a tracking operation.
前記作業担当ロボット予約手段は
作業担当ロボット指定内容に関する情報の書き込みと読み出しが可能な予約テーブルを含み
前記判断手段は、
画像処理手段により取得され前記作業担当ロボット予約手段による作業担当ロボットの指定が済んでいない対象物の位置に関する情報と、前記複数のロボットの各々について設定された動作範囲に関する情報に基づいて、当該対象物に対する作業について要求されるロボットの要動作期間を前記複数のロボットの内の少なくとも一つについて求める手段と、
前記要動作期間を表わす情報と前記予約テーブルに書き込まれている、前記動作予約が済んでいる対象物に対する作業担当ロボット指定内容に関する情報とを対照し、前記少なくとも一つのロボットについて指定の適否を判断し、指定が適当であると判断された場合に、前記要動作期間を前記予約テーブルに書き込む手段を備え、
前記ロボット制御手段は、対象物に対するトラッキング動作を含む作業の完了時に、前記予約テーブルに書き込まれた当該対象物について、作業担当ロボットの指定内容をクリアする手段を備えている、請求項1に記載された複数のロボットにトラッキング動作を行なわせるための視覚センサ・ロボットシステム。
The working charge of robot reservation means,
Work in charge of writing and reading of information about the robot specified content includes a reservation table as possible,
The determination means includes
Image processing Ru acquired by means the work assigned based information about the position of the robot reservation unit operations responsible objects specified not yet robot according to each information relating to the set operating range for said plurality of robots, Means for obtaining a required operation period of the robot required for work on the object for at least one of the plurality of robots;
The information indicating the required operation period is compared with the information about the work- designated robot designation content written in the reservation table for the object for which the operation reservation has been completed, and the suitability of designation for the at least one robot is determined. And means for writing the required operation period in the reservation table when it is determined that the designation is appropriate,
The said robot control means is equipped with a means to clear the designation | designated content of the robot in charge of work about the said target object written in the said reservation table at the time of completion of the operation | work containing the tracking operation | movement with respect to a target object. Vision sensor / robot system for tracking multiple robots.
前記作業担当ロボット予約手段は
記複数のロボットのいずれも作業担当ロボットに指定出来なかった場合に、エラー信号を出力する手段を備えている、請求項1または請求項2に記載された複数のロボットにトラッキング動作を行なわせるための視覚センサ・ロボットシステム。
The working charge of robot reservation means,
If you do not be specified in any work responsible robot before Symbol plurality of robots has means for outputting an error signal to perform the tracking operation to a plurality of robots according to claim 1 or claim 2 Vision sensor robot system for
前記視覚センサは、更に、前記搬送手段が所定距離を走行したことを表わす検出出力が前記走行量検出手段から与えられる毎に前記画像取得と画像処理を実行する手段を備え、
前記所定距離は、前記搬送経路に沿った前記視野の長さから前記搬送経路に沿ったに前記対象物の長さを差し引いた距離を下回らず、且つ、ほぼ等しくなるように予め定められている、請求項1から請求項3のいずれか1項に記載された複数のロボットにトラッキング動作を行なわせるための視覚センサ・ロボットシステム。
The visual sensor further includes means for executing the image acquisition and image processing each time a detection output indicating that the transport means has traveled a predetermined distance is provided from the travel amount detection means,
The predetermined distance is determined in advance so as not to be less than a distance obtained by subtracting the length of the object along the transport path from the length of the visual field along the transport path and substantially equal. A visual sensor / robot system for causing a plurality of robots according to any one of claims 1 to 3 to perform a tracking operation.
JP31577595A 1995-11-10 1995-11-10 A vision sensor robot system for tracking multiple robots Expired - Fee Related JP3834088B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31577595A JP3834088B2 (en) 1995-11-10 1995-11-10 A vision sensor robot system for tracking multiple robots

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31577595A JP3834088B2 (en) 1995-11-10 1995-11-10 A vision sensor robot system for tracking multiple robots

Publications (2)

Publication Number Publication Date
JPH09131683A JPH09131683A (en) 1997-05-20
JP3834088B2 true JP3834088B2 (en) 2006-10-18

Family

ID=18069406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31577595A Expired - Fee Related JP3834088B2 (en) 1995-11-10 1995-11-10 A vision sensor robot system for tracking multiple robots

Country Status (1)

Country Link
JP (1) JP3834088B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014013607A1 (en) 2012-07-20 2014-01-23 株式会社安川電機 Robot system and article transfer method
WO2014013609A1 (en) 2012-07-20 2014-01-23 株式会社安川電機 Robot system and article transfer method

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002192486A (en) 2000-12-25 2002-07-10 Seiko Epson Corp Robot control method and robot controller applying the method
JP2002283257A (en) * 2001-03-23 2002-10-03 Seiko Epson Corp Position control method of moving object and robot controller by applying this method
WO2003014661A1 (en) * 2001-08-08 2003-02-20 Technowave, Ltd. Apparatus and method for measuring shape of article on conveyor line
SE0301910L (en) * 2003-06-26 2004-12-27 Abb Ab Computer-controlled workplace with robots
JP4610978B2 (en) * 2004-09-16 2011-01-12 株式会社サトー Label sticking device and label sticking system
JP4087841B2 (en) * 2004-12-21 2008-05-21 ファナック株式会社 Robot controller
JP2007030087A (en) * 2005-07-26 2007-02-08 Fanuc Ltd Physical distribution tracking device
EP2149831B1 (en) * 2008-07-31 2012-02-01 Siemens Aktiengesellschaft Control method for a composite of several multi-axle handling devices arranged behind or beside each other and data storage medium, control system and composite
JP5353718B2 (en) * 2010-01-06 2013-11-27 セイコーエプソン株式会社 Control device, robot, robot system, and robot tracking control method
JP2010240838A (en) * 2010-08-05 2010-10-28 Seiko Epson Corp Position management method for moving object, and robot controller applying the method
JP5316563B2 (en) * 2011-02-15 2013-10-16 オムロン株式会社 Image processing apparatus and image processing system
JP2012187651A (en) * 2011-03-09 2012-10-04 Omron Corp Image processing apparatus, image processing system, and guidance apparatus therefor
JP2012196759A (en) * 2012-06-22 2012-10-18 Seiko Epson Corp Method for controlling position of mobile object, and robot controller to which the method is applied
WO2014013608A1 (en) * 2012-07-20 2014-01-23 株式会社安川電機 Robot system and article transfer method
US9417625B2 (en) * 2012-11-29 2016-08-16 Fanuc America Corporation Robot system calibration method
JP6407826B2 (en) 2015-09-03 2018-10-17 ファナック株式会社 Coordinate system setting method, coordinate system setting device, and robot system provided with coordinate system setting device
JP2018024044A (en) * 2016-08-09 2018-02-15 オムロン株式会社 Information processing system, information processor, workpiece position specification method, and workpiece position specification program
US11511435B2 (en) 2017-05-22 2022-11-29 Abb Schweiz Ag Robot-conveyor calibration method, robot system and control system
KR102309915B1 (en) * 2017-07-25 2021-10-08 한국전자기술연구원 Static work distribution device, system and method using the same
JP6506356B2 (en) * 2017-07-26 2019-04-24 ファナック株式会社 Article conveyance system and conveyance system control device
JP7156818B2 (en) * 2018-05-15 2022-10-19 川崎重工業株式会社 Robot system and its operation method
KR102109006B1 (en) * 2018-12-17 2020-05-11 전자부품연구원 Dynamic work distribution apparatus, system and method
JP7225946B2 (en) * 2019-03-11 2023-02-21 株式会社デンソーウェーブ robot system, robot controller
JP7395937B2 (en) * 2019-10-08 2023-12-12 Toppanホールディングス株式会社 Product packaging system
CN111496798B (en) * 2020-05-18 2022-06-14 北京配天技术有限公司 Robot conveyor belt tracking method, equipment and storage device
CN113568414A (en) * 2021-09-09 2021-10-29 苏州艾利特机器人有限公司 Motion control method and device of robot, robot and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014013607A1 (en) 2012-07-20 2014-01-23 株式会社安川電機 Robot system and article transfer method
WO2014013609A1 (en) 2012-07-20 2014-01-23 株式会社安川電機 Robot system and article transfer method

Also Published As

Publication number Publication date
JPH09131683A (en) 1997-05-20

Similar Documents

Publication Publication Date Title
JP3834088B2 (en) A vision sensor robot system for tracking multiple robots
JP3002097B2 (en) Visual tracking method
US9604365B2 (en) Device and method of transferring articles by using robot
EP1522911A2 (en) Robotic tracking system for parts distribution
US4437114A (en) Robotic vision system
EP1449626B1 (en) Workpiece conveying apparatus with visual sensor for checking the gripping state
JPH0972717A (en) Acquiring and processing method for image
EP1748339A2 (en) Workpiece tracking and handling device comprising a conveying means and a plurality of robots
JP2019111640A (en) Article conveying device, robot system, and article conveying method
US20120229620A1 (en) Image processing apparatus and image processing system, and guidance apparatus therefor
CN106426162A (en) Robot system with visual sensor and a plurality of robots
JP2008296330A (en) Robot simulation device
CN109305532B (en) Article conveyance system and conveyance system control device
CN113269085B (en) Linear conveyor belt tracking control method, system, device and storage medium
JP2004001122A (en) Picking device
JP4303411B2 (en) Tracking method and tracking system
JPH10105217A (en) Tracking controlling method of robot and robot control system
US20240033931A1 (en) Transport System, Control Method for Transport System, and Control Program for Transport System
JP2019119027A (en) Method of controlling robot system, and robot system
CN110295728A (en) Handling system and its control method, floor tile paving system
WO1998054673A1 (en) Image acquisition device
JP4809524B2 (en) Tracking method, tracking system, and tracking device
JPH1053316A (en) Sliding quantity measuring method of conveyor and tracking action correcting method of robot
JP4056662B2 (en) Appearance inspection device
JP7221613B2 (en) Verification management system, verification management method and program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060704

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060721

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees