(第1の実施形態)
以下、本発明を具体化したロボットシステムの第1の実施形態について図に従って説明する。図1は、ロボットシステムの概略構成を斜視にて示す図であり、図2は、ロボットシステムの機能の構成を機能ブロックにて示す図である。また、図3は、ロボットシステムに設定されるロボットの追従領域を模式的に示す模式図であり、図4は、ロボットシス
テムにて認識されるワークの初期位置の態様を模式的に示す図である。
図1に示すように、ロボットシステムには、ワークWを搬送するコンベヤー1と、コンベヤー1に搬送されるワークWを撮像するカメラ2と、当該コンベヤー1の搬送量を測定するエンコーダー3とが設けられている。また、ロボットシステムには、ワークWに対して所定の作業を行なうロボットが2台設けられており、コンベヤー1がワークWを搬送する方向である搬送方向Cv(ワーク搬送方向)に対して上流側の位置には上流側のロボット4が、当該ワーク搬送方向に対して下流側の位置には下流側のロボット5がそれぞれ配置されている。そしてこれら上流側のロボット4と下流側のロボット5とはコンベヤー1に沿って該コンベヤー1の搬送方向Cvにコンベヤー1を挟む千鳥状に配置されている。また、ロボットシステムには、上流側及び下流側のロボット4,5を一対として制御するロボットコントローラー6が設けられており、このロボットコントローラー6には、上流側及び下流側のロボット4,5とともに、上述したカメラ2及びエンコーダー3が接続されている。なお本実施形態では、システム構成などに応じて、上流側のロボット4の可動し得る領域(可動限界内)には作業台7などが、下流側のロボット5の可動し得る領域(可動限界内)にも作業台8などが適宜設置される。各作業台7,8には、例えばワークWや各種ツールが適宜載置されるようになっている。
コンベヤー1は、被搬送物としてのワークWを搬送方向Cvへ所定の速度で移動させるものであり、その上面に載置されている複数のワークWがそれぞれ所定の速度で搬送方向Cvへ移動される。なお、本実施形態では、搬送方向CvをX軸方向とし、搬送方向Cvに直交するとともにコンベヤー1に平行な方向(幅方向)をY軸方向としており、説明の便宜上、X軸方向とY軸方向からなる2次元の座標系を定義する。また、コンベヤー1に垂直な方向(上下方向)をZ軸方向としている。このことから、コンベヤー1に載置されたワークWは、コンベヤー1による搬送に伴って、X軸方向に対する位置(X座標)が搬送方向Cvへ変化される一方、Y軸方向に対する位置(Y座標)は維持される。
カメラ2は、コンベヤー1の一部を撮像領域に含むように当該コンベヤー1の上方に配置されており、コンベヤー1に載置されたワークWを撮像可能になっている。カメラ2の撮像領域2a(図3参照)は、X軸方向とY軸方向に沿う略矩形状に設けられている。この撮像領域2aは、コンベヤー1の搬送方向CvたるX軸方向には予め定められた長さを有し、Y軸方向にはコンベヤー1の幅を含む長さを有するように設定されている。これにより、カメラ2は、コンベヤー1が搬送方向Cvに移動するとき、コンベヤー1が撮像領域2aのX軸方向の長さと同じ距離だけ移動する毎にコンベヤー1の上面を撮像することで、コンベヤー1の上面をそこに載置されているワークWとともにもれなく撮像することができる。
エンコーダー3は、コンベヤー1の搬送方向Cv(X軸方向)への移動量(ワークWの搬送量)を逐次測定する。
上流側及び下流側のロボット4,5はいずれも、いわゆるスカラーロボットであって、垂直軸を有する関節により連結される2本の水平アームからなり、連結された2本の水平アームを支持する基台部に第1関節が設けられ、2本の水平アームの間に第2関節が設けられている。各関節には当該関節を駆動させるモーター4a(図2参照)がそれぞれ設けられている。上流側及び下流側のロボット4,5はそれぞれ、その基台部がコンベヤー1の一側に設置されており、2本の水平アームの先端にあるそれぞれの作業部P0の各可動限界RA1,RA2(図3参照)にコンベヤー1の幅を含むようになっている。なお、上流側及び下流側のロボット4,5の各関節は水平アームを旋回運動させることから、それぞれのアーム先端の作業部P0の各可動限界RA1,RA2は円弧状に設定されるようになっている。なお、本実施形態では、上流側のロボット4と下流側のロボット5は、その構造や可動特性などが同様のスカラーロボットである。
各作業部P0はそれぞれ、コンベヤー1に対して上下移動(Z軸方向への移動)が可能になっているとともに、ワークWの把持装置やワークWの加工装置などの各種ツールの取り付けが可能となっている。これにより、上流側及び下流側のロボット4,5はそれぞれ、ツールの設置された作業部P0をコンベヤー1上に配置させて下降させることにより、作業部P0を介してコンベヤー1によって搬送されているワークWに所定の作業をすることができるようになっている。また、作業部P0を上昇させておくことによって、作業部P0をコンベヤー1上のワークWに干渉させることなく移動させることができるようになっている。
ロボットコントローラー6は、上流側及び下流側のロボット4,5を一対としてかつ、各別に駆動制御する制御装置であり、ロボットを目標位置に移動させる位置決め制御や、ロボットを移動しているワークWに追従させる追従制御などのロボットに対する各種制御を行なう。すなわち、ロボットコントローラー6は、各ロボット毎に、ロボットを目標位置まで移動させるための軌道を算出し、算出された軌道に沿うように当該ロボットを駆動制御する。このようなことにより、コンベヤー1にて搬送されているワークWに対して上流側及び下流側のロボット4,5をそれぞれ追従動作させることができる。
ロボットコントローラー6には、予めもしくは逐次、上流側及び下流側のロボット4,5の駆動に必要とされる各種データが設定されたり、入力されたりするようになっている。そのように設定や入力された各種データに基づいて、ロボットコントローラー6は、上流側及び下流側のロボット4,5を駆動制御するための各種データを設定したり、算出したりする。各種データは、例えばユーザーインターフェース装置から設定されたり、ロボットシステムに設置される各種センサーから入力されたりするようになっている。なお本実施形態では、ロボットコントローラー6には予め、上流側及び下流側のロボット4,5の構造や動作特性などを示すロボットデータ、コンベヤー1に対するカメラ2、上流側のロボット4、下流側のロボット5との各相対位置関係を示す各種位置データ、及びワークWの種類や形状を示すワークデータなどが設定されている。そして、これらロボットデータ、各種位置データ及びワークデータが上流側及び下流側のロボット4,5の駆動制御に用いられる。
より具体的には、ロボットコントローラー6は、上流側及び下流側のロボット4,5のそれぞれについて、ロボットデータなどに基づいて各関節の角度を調整してそれぞれの作業部P0を所定の軌道に沿って移動させることにより、当該作業部P0を目標位置に移動させたり、所定の速度で移動させたりする。例えば、ロボットコントローラー6は、上流側のロボット4を駆動制御して、その作業部P0をコンベヤー1に搬送されるワークWの中心位置P1に移動させて近接した状態となるように追従させる。そして、上流側のロボット4の作業部P0の把持装置にワークWを把持させてから作業台7の配置位置P2まで移動させて、把持されたワークWを配置位置P2に載置させることができる。また例えば、ロボットコントローラー6は、下流側のロボット5を駆動制御して、上記上流側のロボット4と同様に、その作業部P0をコンベヤー1に搬送されるワークWの中心位置P1に移動させて近接した状態となるように追従させる。そして、下流側のロボット5の作業部P0の把持装置にワークWを把持させてから作業台8の配置位置P3まで移動させて、把持されたワークWを配置位置P3に載置させることができる。
このロボットコントローラー6は、中央演算処理装置(CPU)、記憶装置(不揮発性メモリ、揮発性メモリなど)を有するマイクロコンピュータを中心に構成されており、メモリに格納されている各種データ及びプログラムに基づいて各種制御を実行する。
図2に示すように、ロボットコントローラー6は、そのCPUにて、追従順番決定部1
2、ワーク位置検出部14、搬送量検出部16、追従対象検出部17、第1及び第2の追従指令値生成部20,22、第1及び第2のモーター制御部21,23などの演算処理を実行する。また、ロボットコントローラー6は、その記憶装置に、ワーク位置記憶部13及び追従領域設定部15を備えている。
搬送量検出部16は、エンコーダー3から入力されるコンベヤーパルスの積算によるコンベヤーパルス数を検出し、当該検出されたコンベヤーパルス数と予め設定された単位コンベヤーパルスあたりの搬送量との積によりコンベヤー1の搬送量を求める。詳述すると、図4に示すように、「所定のタイミングn」にて、搬送量検出部16は、エンコーダー3の位置におけるコンベヤー1の搬送量を、X軸方向については「X0n」、Y軸方向については「Y0(定数「0」)」と算出する。そして、当該算出された搬送量を追従順番決定部12やワーク位置検出部14、追従対象検出部17に伝達する。なお、説明の便宜上、このときのエンコーダー3の位置におけるコンベヤー1の搬送量を(X0n,Y0)として示す。また、搬送量X0nの「n」は特定の一のタイミング(時刻)を表す符号とし、この符号が異なる場合には異なるタイミングであるものとする。
ワーク位置検出部14は、カメラ2が撮像した画像に画像認識処理などを施して、当該画像に含まれるコンベヤー1上のワークWの初期位置(X軸方向の座標及びY軸方向の座標)を求めて(ワーク初期位置認識工程)、その初期位置の情報を追従順番決定部12に伝達する。詳述すると、ワーク位置検出部14は、例えば複数のワークWのうち撮像領域2aに含まれることとなった各ワークW1,W2,W3について、撮像領域2aに定義された撮像原点2bに対する相対位置(相対座標)を求める。すなわち、図4に示すように、撮像時のワークW1の相対位置を、X座標がd1、Y座標がy1と求め、同じくワークW2の相対位置を、X座標がd2、Y座標がy2と求め、同じくワークW3の相対位置を、X座標がd3、Y座標がy3と求める。また、エンコーダー3から撮像領域2aに定義された撮像原点2bまでの間を距離L1(定数)と定義すると、撮像原点2bにおけるコンベヤー1の搬送量を(X0n−L1,Y0)と表すことができる。すなわち、本実施形態では、撮像原点2bのX軸座標はエンコーダー3のX軸座標より距離L1だけ小さくなる。これらのことから、ワークW1の初期位置は(X0n−L1+d1,y1)として表され、これをワークW1の初期位置(x1,y1)と表す。同様に、ワークW2の初期位置は(X0n−L1+d2,y2)と表され、これをワークW2の初期位置(x2,y2)と表し、ワークW3の初期位置は(X0n−L1+d3,y3)を表され、これをワークW3の初期位置(x3,y3)と表す。なお、本実施形態では、距離L1は上述のd1,d2,d3よりも大きいことから、各ワークW1,W2,W3の初期位置のX軸座標はエンコーダー3の位置よりも小さい値となる。ワークW1の情報には少なくともその初期位置(x1,y1)が含まれ、ワークW2の情報にも少なくともその初期位置(x2,y2)が含まれ、ワークW3の情報にも少なくともその初期位置(x3,y3)が含まれる。
追従領域設定部15には、上流側及び下流側のロボット4,5のそれぞれについて、ロボットがワークWに対して追従動作を開始できる追従領域が、当該追従領域を設定するための追従領域設定工程により設定されている。追従領域設定部15は、上流側のロボット4の追従領域を設定する第1追従領域記憶部15aと、下流側のロボット5の追従領域を設定する第2追従領域記憶部15bとを備えている。この追従領域は、ロボットがワークWに対して追従動作を行うための領域としてコンベヤー1上に設定される。
本実施形態では、追従領域は、複数の指示点を含むように予め設定された直線により区画される。図3に示すように、上流側のロボット4の追従領域は、上流側のロボット4の可動限界RA1内にある、第1境界BL1と、第2境界BL2と、コンベヤー1の各側線1a,1bとによって囲まれる範囲として設定される。第1境界BL1は、コンベヤー1
の搬送方向Cvの上流側に該コンベヤー1を横切るように設けられており、第2境界BL2は、コンベヤー1の搬送方向Cvの下流側に該コンベヤー1を横切るように設けられている。またコンベヤー1の各側線1a,1bは、コンベヤー1の幅の両側にそれぞれ対応する。換言すると、第1境界BL1は、コンベヤー1の側線1bとロボット4の搬送方向Cv上流側の可動限界RA1とが交差する指示点P11と、コンベヤー1の側線1aとロボット4の搬送方向Cv上流側の可動限界RA1とが交差する指示点P12とを結ぶ直線として設定される。また、第2境界BL2は、コンベヤー1の側線1bとロボット4の搬送方向Cv下流側の可動限界RA1内の指定端点P31と、コンベヤー1の側線1aとロボット4の搬送方向Cv下流側の可動限界RA1内の指定端点P32とを結ぶ直線として設定される。すなわち、上流側のロボット4の追従領域は、各指示点P11,P12及び各指定端点P32,P31とを結び囲まれる範囲に設定される。
一方、下流側のロボット5の追従領域は、下流側のロボット5の可動限界RA2内にある、第1境界BL3と、第2境界BL4と、コンベヤー1の各側線1a,1bとによって囲まれる範囲として設定される。第1境界BL3は、コンベヤー1の搬送方向Cvの上流側にコンベヤー1を横切るように設けられており、第2境界BL4は、コンベヤー1の搬送方向Cvの下流側にコンベヤー1を横切るように設けられている。換言すると、第1境界BL3は、コンベヤー1の側線1aとロボット5の搬送方向Cv上流側の可動限界RA2とが交差する指示点P41と、コンベヤー1の側線1bとロボット5の搬送方向Cv上流側の可動限界RA2とが交差する指示点P42とを結ぶ直線として設定される。また、第2境界BL4は、コンベヤー1の側線1aとロボット5の搬送方向Cv下流側の可動限界RA2内の指定端点P61と、コンベヤー1の側線1bとロボット5の搬送方向Cv下流側の可動限界RA2内の指定端点P62とを結ぶ直線として設定される。すなわち、下流側のロボット5の追従領域は、各指示点P41,P42及び各指定端点P62,P61とを結び囲まれる範囲に設定される。
上記の各指示点P11,P12,P41,P42は、上流側及び下流側のロボット4,5の各作業部P0を、例えば、実際に移動させた位置(点)が教示されるティーチングにより設定される(追従領域設定工程)。また、ロボットコントローラー6としては、このティーチングの際に、上流側及び下流側のロボット4,5を当該指示点に作業部P0を配置させるときの各関節の角度も記憶する。また、上流側のロボット4の追従領域にあって、コンベヤー1の上流側に設けられる第1境界BL1を上流側のロボット4の上流側境界として設定する(境界設定工程)。同様に、下流側のロボット5の追従領域にあって、コンベヤー1の上流側に設けられる第1境界BL3を下流側のロボット5の上流側境界として設定する(境界設定工程)。
すなわち、上流側のロボット4にあっては、第1境界BL1は、ワークWがコンベヤー1に搬送されながら上流側のロボット4の追従領域に入るときに通過する上流側境界となる。一方、ワークWがコンベヤー1に搬送されながら該追従領域から出るときに通過する第2境界BL2は、下流側境界線となる。同様に、下流側のロボット5にあっては、第1境界BL3は、ワークWがコンベヤー1に搬送されながら下流側のロボット5の追従領域に入るときに通過する上流側境界となる。一方、ワークWがコンベヤー1に搬送されながら該追従領域から出るときに通過する第2境界BL4は、下流側境界線となる。
追従順番決定部12は、上流側及び下流側のロボット4,5のそれぞれに対して各ロボットがワークWに対して追従動作を行う順番をそれぞれ計算する。すなわち、上流側のロボット4がワークWに対して追従動作を行う順番(追従順番)を、ワークWの現在位置と上流側のロボット4の上流側境界との間の距離に基づいて随時設定する。また、下流側のロボット5がワークWに対して追従動作を行う順番(追従順番)を、ワークWの現在位置と下流側のロボット5の上流側境界との間の距離に基づいて随時設定する。また、追従動
作を行うべきワークWから除外されたワークWに対しては当該ワークWを追従順番から除外する処理を行う。なお、各ロボット4,5の追従順番を定める計算や方法については、後で詳しく述べる。
ワーク位置記憶部13は、追従順番決定部12で計算された上流側及び下流側のロボット4,5の追従順番を記憶するものであり、追従順番決定部12により読み書き可能になっているとともに、追従対象検出部17により読み出し可能になっている。ワーク位置記憶部13は、第1追従順番記憶部13aと第2追従順番記憶部13bとを備えており、第1追従順番記憶部13aには、上流側のロボット4の追従順番が登録され、第2追従順番記憶部13bには、下流側のロボット5の追従順番が登録される。
追従対象検出部17は、所定の実行周期で、ワークWの現在位置と追従領域設定部15に記憶された追従領域とを比較する。具体的には、ワークWの現在位置が上流側のロボット4の上流境界線(第1境界BL1)を越えて追従領域に進入したとき、当該ワークWを上流側のロボット4の追従対象として検出する。一方、ワークWの現在位置が上流側のロボット4の下流側境界(第2境界BL2)を過ぎて追従領域から逸脱したことなどにより、当該ワークWを上流側のロボット4の追従対象外として検出する。同様にして、ワークWの現在位置が下流側のロボット5の上流境界線(第1境界BL3)を越えて追従領域に進入したとき、当該ワークWを下流側のロボット5の追従対象として検出する。一方、ワークWの現在位置が下流側のロボット5の下流側境界(第2境界BL4)を過ぎて追従領域から逸脱したことなどにより、当該ワークWを下流側のロボット5の追従対象外として検出する。そして、上流側のロボット4の追従対象として検出されたワークWを順次、第1の追従指令値生成部20に伝達し、下流側のロボット5の追従対象として検出されたワークWを順次、第2の追従指令値生成部22に伝達する。また、追従対象外として検出されたワークWを追従順番決定部12や第1もしくは第2の追従指令値生成部20,22に伝達する。
第1及び第2の追従指令値生成部20,22は、追従対象であるワークWに作業部P0を追従させるための軌道を生成するとともに、当該軌道を移動するための各関節の関節角度を計算する。なお、本実施形態では、軌道は、コンベヤー1の搬送量(コンベヤ1の速度)を考慮して生成される。また、第1及び第2の追従指令値生成部20,22は、生成した軌道(各関節の角度)をモーター指令値(パルス)に変換して出力する。これにより第1の追従指令値生成部20から出力されたモーター指令値が当該モーター指令値に従って各関節のモーター4aを制御する第1のモーター制御部21に伝達され、上流側のロボット4が駆動制御される。また、第2の追従指令値生成部22から出力されたモーター指令値が当該モーター指令値に従って各関節のモーター5aを制御する第2のモーター制御部23に伝達され、下流側のロボット5が駆動制御される。
例えば、第1の追従指令値生成部20は、上流側のロボット4を軌道に沿わせるための各関節の関節角度を、第1のモーター制御部21によるモーター4aの制御周期に応じたサンプリングタイム毎の目標関節角度として第1のモーター制御部21に出力する。同様に、第2の追従指令値生成部22は、下流側のロボット5を軌道に沿わせるための各関節の関節角度を、第2のモーター制御部23によるモーター5aの制御周期に応じたサンプリングタイム毎の目標関節角度として第2のモーター制御部23に出力する。
このように、第1及び第2の追従指令値生成部20,22は、軌道を生成し、その軌道に沿うための目標関節角度をサンプリングタイム周期で繰り返し算出する。そして、各ロボット4,5にワークWへの追従動作を終了させたとき、当該ワークWが作業対象外となった旨を追従対象検出部17や追従順番決定部12に伝達する。一方、第1及び第2の追従指令値生成部20,22は、追従対象検出部17からワークWが作業対象外とされた旨
が伝達されたとき、当該ワークWに対する追従処理を終了させるようにもなっている。
第1のモーター制御部21は、第1の追従指令値生成部20から入力されたモーター指令値に基づいて上流側のロボット4の各関節のモーター4aを駆動制御して、上流側のロボット4をワークWに対して追従動作させる。また第2のモーター制御部23は、第2の追従指令値生成部22から入力されたモーター指令値に基づいて下流側のロボット5の各関節のモーター5aを駆動制御して、下流側のロボット5をワークWに対して追従動作させる。
次に、上流側及び下流側のロボット4,5の追従領域と、それら追従領域の設定方法について説明する。
上述のように、上流側のロボット4の追従領域は、上流側のロボット4の第1境界BL1及び第2境界BL2と、コンベヤー1の各側線1a,1bとによって囲まれる範囲に設定される。また、下流側のロボット5の追従領域は、上流側のロボット4の追従領域に対してコンベヤー1の搬送方向Cvの下流に隣接した領域に、第1境界BL3と、第2境界BL4と、コンベヤー1の各側線1a,1bとによって囲まれる範囲に設定される。なお、下流側のロボット5の追従領域は、上流側のロボット4の追従領域がコンベヤー1の幅方向の中心線を中心に反転された領域と同様に設定される領域であることから、説明の便宜上、以下では下流側のロボット5の追従領域の詳細な説明については割愛する。
ところで、上流側のロボット4の第2境界BL2は、2つの指定端点P31と指定端点P32を結ぶ直線として設定されている。指定端点P31は、コンベヤー1の側線1bとロボット4の搬送方向Cv下流側の可動限界RA1とが交差する指示点P21が当該可動限界RA1内に距離S21だけ移動した点として設定されている。また、指定端点P32は、コンベヤー1の側線1aと同可動限界RA1とが交差する指示点P22が当該可動限界RA1内に距離S22だけ移動した点として設定されている。本実施形態では、各距離S21,S22は略等しい長さに設定されている。
各距離S21,S22は、その位置において搬送方向Cvに搬送されているワークWに対して上流側のロボット4が追従動作を開始しても、当該追従動作を可動限界RA1内で終了させることのできる距離である。すなわち、各距離S21,S22は、上流側のロボット4の可動限界RA1内の位置と、当該位置から下流可動限界との間に予め設定される距離である。このことから、距離S21,S22は、コンベヤー1の速度や、ワークWへの上流側のロボット4の追従能力や、当該上流側のロボット4の作業内容などによって、適宜変更される値であり、それら値は、当該上流側のロボット4の動作から測定されたり、演算式やシミュレーションなどから算出されるなどして設定される。すなわち、第2境界BL2は、上流側のロボット4の可動限界RA1の境界との間に、上流側のロボット4の追従動作に最小限必要とされる距離S21や距離S22に一致する距離もしくは、それより長い距離を有している。
このようなことから、可動限界RA1に含まれるものの追従領域には含まれない、上流側のロボット4の第1境界BL1と、上流側の可動限界RA1とにより区画される領域の面積が小さく設定されるようになり上流側のロボット4の可動限界RA1が有効利用される。また、可動限界RA1に含まれるものの追従領域には含まれない、上流側のロボット4の第2境界BL2と、下流側の可動限界RA1と、各側線1a,1bとにより区画される領域の面積を小さくするように設定することで、上流側のロボット4の可動限界RA1が有効利用される。なお、本実施形態では、各距離S21,S22は等距離に設定されているが、これらの距離S21,S22は、その条件に応じて各別の距離に異なる値に設定されてもよい。
下流側のロボット5の追従領域は、上述のように上流側のロボット4と同様であり、2つの指示点P41,P42とそれらを結ぶ第1境界BL3はそれぞれ、上流側のロボット4の2つの指示点P11,P12とそれらを結ぶ第1境界BL1に対応している。また、下流側のロボット5の2つの指示点P51,P52及び2つの指定端点P61,P62はそれぞれ、上流側のロボット4の2つの指示点P21,P22及び2つの指定端点P31,P32に対応している。さらに、下流側のロボット5の各距離S51,S52及び第2境界BL4はそれぞれ、上流側のロボット4の各距離S21,S22及び第2境界BL2に対応している。
ところで、本実施形態では、上流側のロボット4の各指示点P11,P12,P21,P22は上流側のロボット4の作業部P0を当該位置に実際に移動させる教示(ティーチング)によってロボットコントローラー6に設定されるようになっている。すなわち、第1境界BL1の指示点P11は、上流側のロボット4の作業部P0がコンベヤー1の側線1bと当該ロボット4の上流側の可動限界RA1との交点まで、例えば手動で移動されることによって設定される。同様に、第1境界BL1の指示点P12は、ロボット4の作業部P0がコンベヤー1の側線1aと当該ロボット4の上流側の可動限界RA1との交点まで、例えば手動で移動されることによって設定される。また、第2境界BL2の指示点P21は、上流側のロボット4の作業部P0がコンベヤー1の側線1bと当該ロボット4の下流側の可動限界RA1との交点まで、例えば手動により移動されることによって設定される。同様に、第2境界BL2の指示点P22は、ロボット4の作業部P0がコンベヤー1の側線1aと当該ロボット4の下流側の可動限界RA1との交差点まで、例えば手動により移動されることによって設定される。これにより、指示点P21に基づく指定端点P31と、指示点P22に基づく指定端点P32とがそれぞれ設定可能となる。
下流側のロボット5の各指示点P41,P42,P51,P52は、下流側のロボット5の作業部P0を当該位置に実際に移動させる教示(ティーチング)によってロボットコントローラー6に設定されるようになっている。この下流側のロボット5の各指示点P41,P42,P51,P52のティーチングについても、上流側のロボット4の各指示点P11,P12,P21,P22のティーチングと同様であるので、その説明を割愛する。
次に、上流側及び下流側のロボット4,5がワークWに対して追従動作を行う順番(追従順番)の決定について説明する。
まず、上流側のロボット4の追従順番の決定について図にしたがって説明する。図5は、上流側のロボット4の第1境界BL1に対するワークWの距離について模式的に示す図であり、図6は、追従順番を設定する工程を示すフローチャートである。また、図7は、上流側のロボット4の追従順番の決定についてその概要を示す図である。
追従順番決定部12は、所定のタイミングにおいて各ワークWの現在位置と上流側のロボット4の第1境界BL1との間の距離を求めて、当該距離に基づいて上流側のロボット4の追従順番を決定する(第1追従順番決定工程)。例えば、「所定のタイミングm」における、上流側のロボット4の第1境界BL1と各ワークWの現在位置とから、各ワークWの現在位置と上流側のロボット4の第1境界BL1との間の距離を算出する。
図5に示すように、上流側のロボット4の第1境界BL1は数式にて「y=a1・x+c1」として表されるものとする。すなわち、第1境界BL1は、上流側のロボット4の第1境界BL1の指示点P11の位置を表す座標が(c1,0)かつ、傾きが「a1」である、X軸方向に傾きを有する直線である。なお、「所定のタイミングm」において、エンコーダー3と指示点P11との間のX軸方向の距離を距離L2(定数)と定義し、エンコーダー3により検出されるコンベヤー1の搬送量を(X0m,Y0)と表すと、指示点
P11のX座標「c1」はエンコーダー3の搬送量を用いて「X0m−L2」とも表される。
各ワークW1,W2,W3の現在位置は、各ワークの初期位置に現在までの搬送量の差を加えて算出される(ワーク位置計算工程)。すなわち、「所定のタイミングm」におけるワークW1の現在位置は、ワークW1の初期位置としての(X0n−L1+d1,y1)に各軸における搬送量の差(X0m−X0n,0)をそれぞれ加えることにより、(X0m−L1+d1,y1)として表される。なお、これをワークW1の「所定のタイミングm」における現在位置(x11,y1)として表す。同様に、各ワークW2,W3の現在位置として表される(X0m−L1+d2,y2),(X0m−L1+d3,y3)は、それぞれ「所定のタイミングm」における現在位置(x12,y2),(x13,y3)として表す。
そしてこれらの各現在位置に基づいて、第1境界BL1と各ワークW1,W2,W3との間の各距離D11,D12,D13がそれぞれ算出される。なお、本実施形態では、第1境界BL1より上流側の距離を負の値とし、第1境界BL1より下流側の距離を正の値とするように各距離D11,D12,D13を算出する。すなわち、第1境界BL1とワークW1との間の距離D11は、Y軸座標「y1」における、ワークW1のX軸座標「x11」と第1境界BL1のX軸座標「(y1−c1)/a1」との差から算出される。これにより、距離D11は、「x11−(y1−c1)/a1」と示される式から算出される。同様にして、第1境界BL1とワークW2との間の距離D12は、「x12−(y2−c1)/a1」と示される式から算出され、第1境界BL1とワークW3との間の距離D13は、「x13−(y3−c1)/a1」と示される式から算出される。そして、このように算出された距離D11,D12,D13の値に基づいて、上流側のロボット4の追従順番が決定される。
具体的には、図6及び図7に示すように、追従順番決定部12にて上流側のロボット4の追従順番が決定される。なお、ワークの距離はワーク位置検出部14により検出されたタイミングにて算出されて、また、当該ワークの距離と比較される他のワークの距離も同じタイミングで算出され、それら算出されたワークの距離の値に基づいて追従順番が決定される。このことから、順番を決定するタイミング毎に、エンコーダー3により検出された現在の搬送量に基づいて比較される双方の距離(D11,D12,D13)が演算されて、それら演算された距離の値の大きさが相互に比較される。
まず、ワーク位置検出部14によりワークW1が最初のワークとして検出されると第1追従順番決定工程が開始され、図6に示すように、追従順番決定部12は、上流側のロボット4の上流側境界とワークW1との間の距離D11を算出する(図6のステップS10)。距離D11が算出されると、追従順番決定部12は、算出された距離D11の値に基づいてワークW1の情報を第1追従順番記憶部13aに記憶させる順番を算出する(図6のステップS11)。このとき、図7(a)に示すように、ワークW1は最初に検出されたワークであるため第1追従順番記憶部13aには他のワークの情報が記憶されていないので、追従順番決定部12は、第1追従順番記憶部13aの先頭(「順番1」)をワークW1の記憶位置として算出する。また、他のワークの情報が記憶されていないので、追従順番決定部12は、既存データの移動を実施しないこととして(図6のステップS12)、第1追従順番記憶部13aの先頭(「順番1」)にワークW1の情報を記憶させる(図6のステップS13)。
次に、ワーク位置検出部14によりワークW2が2番目のワークとして検出されると再び第1追従順番決定工程が開始され、追従順番決定部12は、上流側境界とワークW2との間の距離D12と、これと比較するワークW1の距離D11とをそれぞれ算出する(図
6のステップS10)。そして、追従順番決定部12は、算出された距離D12の値に基づいてワークW2の情報を第1追従順番記憶部13aに記憶させる順番を算出する(図6のステップS11)。このとき、図7(b)に示すように、第1追従順番記憶部13aにはワークW1の情報が記憶されているから、ワークW1の距離D11の値とワークW2の距離D12の値とを比較して、距離の値が大きい(負の距離が短い)ワークの順番が小さくなるようにワークW2の記憶順番を算出する。本実施形態では、距離D12の値が距離D11の値よりも小さいので、ワークW2はワークW1の次の「順番2」が記憶位置として算出される。また、ワークW1の情報を移動させる必要がないので、追従順番決定部12は、既存データの移動を実施しないこととして(図6のステップS12)、第1追従順番記憶部13aの「順番2」にワークW2の情報を記憶させる。
その次に、ワーク位置検出部14によりワークW3が3番目のワークとして検出されると再び第1追従順番決定工程が開始され、追従順番決定部12は、上流側境界とワークW3との間の距離D13と、これと比較するワークW1の距離D11及びワークW2の距離D12とをそれぞれ算出する(図6のステップS10)。そして、追従順番決定部12は、算出された距離D13の値に基づいてワークW3の情報を第1追従順番記憶部13aに記憶させる順番を算出する(図6のステップS11)。このとき、図7(c)に示すように、第1追従順番記憶部13aには既に2つのワークW1,W2の情報が記憶されているから、ワークW3の距離D13の値をワークW1の距離D11の値及びワークW2の距離D12の値とそれぞれ比較して、距離の値が大きい(負の距離が短い)ワークの順番が小さくなるようにワークW3の記憶順番を算出する。本実施形態では、距離D13の値は距離D11の値よりも小さく、距離D12の値よりも大きいので、ワークW3はワークW1より後ろ、かつ、ワークW2の順番を越えない「順番2」が記憶位置として算出される。このときには、ワークW2の情報を元の「順番2」から後の「順番3」に移動させる必要があるので、追従順番決定部12は、ワークW2の順番を「順番2」から「順番3」に移動させて(図6のステップS12)、第1追従順番記憶部13aの「順番2」にワークW3の情報を記憶させる。
そして、上流側のロボット4によるワークに対する追従動作が、ワークの上流側のロボット4の可動限界RA1内への進入に基づいて、第1追従順番記憶部13aに記憶された順番で行なわれるようになる。なお、本実施形態では、上流側のロボット4により追従動作の行なわれたワークW、及び上流側のロボット4の下流側境界を通過したワークは第1追従順番記憶部13aから削除されて、それに応じて既存のワークの情報の順番が繰り上げられるようになっている。なお、ワークは上流側のロボット4の下流側境界を通過することにより、その情報が第1追従順番記憶部13aから削除されることで当該第1追従順番記憶部13aにおいて付与されていた順番が削除されて(順番削除工程)、当該ワークの情報は、一旦、ワーク位置記憶部13に設けられている一時記憶領域に移動保持される。
そして次に、下流側のロボット5がワークWに対して追従動作を行う順番(追従順番)について図にしたがって説明する。図8は、下流側のロボット5の第1境界BL3に対するワークの距離について模式的に示す図であり、図9は、下流側のロボット5の追従順番の決定についてその概要を示す図である。
追従順番決定部12は、ワークの情報が一時記憶領域に保持されたことを検出すると、当該ワークの情報を取得してそのワークWの現在位置と下流側のロボット5の第1境界BL3との間の距離を求めて、当該距離に基づいて下流側のロボット5の追従順番を決定する(第2追従順番決定工程)。例えば、「所定のタイミングp」における、下流側のロボット5の第1境界BL3と各ワークWの現在位置とから、各ワークWの現在位置と下流側のロボット5の第1境界BL3との間の距離を算出する。なお、本実施形態では、追従順
番決定部12は、第1追従順番決定工程や第2追従順番決定工程を所定の短時間で処理するようになっており、それぞれの工程はそれが必要とされるとき遅滞なく逐次処理されるようになっている。
図8に示すように、下流側のロボット5の第1境界BL3は数式にて「y=a2・x+c2」として表されるものとする。すなわち、第1境界BL3は、下流側のロボット5の第1境界BL3の指示点P41の位置を表す座標が(c2,0)かつ、傾きが「a2」である、X軸方向に傾きを有する直線である。なお、本実施形態では、Y軸方向の値の増加とともにX軸方向への値が減少するので、先の「c1」とは異なり、「c2」は負の値となっている。また、「所定のタイミングp」において、エンコーダー3と指示点P41との間のX軸方向の距離を距離L3(定数)とし、エンコーダー3により検出されるコンベヤー1の搬送量を(X0p,Y0)と表すと、指示点P41のX座標「c2」はエンコーダー3の搬送量を用いて「X0p−L3」とも表される。
各ワークW1,W2,W3の「所定のタイミングp」における現在位置は、上述の「所定のタイミングm」の場合と同様に、各ワークの初期位置に現在までの搬送量の差を加えて算出される。すなわち、ワークW1の現在位置は、ワークW1の初期位置としての(X0n−L1+d1,y1)に各軸における搬送量の差(X0p−X0n,0)をそれぞれ加えることにより、(X0p−L1+d1,y1)として表される。なお、これをワークW1の「所定のタイミングp」における現在位置(x31,y1)として表す。同様に、各ワークW2,W3の現在位置として表される(X0p−L1+d2,y2),(X0p−L1+d3,y3)は、それぞれ「所定のタイミングp」における現在位置(x32,y2),(x33,y3)として表す。
そしてこれらの各現在位置に基づいて、第1境界BL3と各ワークW1,W2,W3との間の各距離D31,D32,D33がそれぞれ算出される。第1境界BL3とワークW1との間の距離D31は、Y軸座標「y1」における、ワークW1のX軸座標「x31」と第1境界BL3のX軸座標「(y1−c2)/a2」との差から算出される。すなわち、距離D31は、「x31−(y1−c2)/a2」と示される式から算出される。同様にして、第1境界BL3とワークW2との間の距離D32は、「x32−(y2−c2)/a2」と示される式から算出され、第1境界BL3とワークW3との間の距離D33は、「x33−(y3−c2)/a2」と示される式から算出される。そして、このように算出された距離D31,D32,D33の値に基づいて、下流側のロボット5の追従順番が決定される。
具体的には、図6及び図9に示すように、追従順番決定部12にて下流側のロボット5の追従順番が決定される。なお、本実施形態では、下流側のロボット5の追従順番は、上流側のロボット4により追従動作が行なわれなかったワークについて決定されるものとする。そこで、先に説明したワークW1〜W3には上流側のロボット4による追従動作が行なわれなかったものとし、それらワークW1〜W3に対して追従順番が決定される場合について例示する。なお、上流側のロボット4による追従動作が行なわれなかったことは上流側のロボット4の下流側境界を通過したワークの順に確定されるので、ここで決定される下流側のロボット5の追従順番は、上流側のロボット4の第2境界BL2を通過したワークの順に決定される。具体的には、各ワークW1〜W3は上流側のロボット4の第2境界BL2をワークW3,W1,W2の順に通過するので、下流側のロボット5による追従順番はワークW3,W1,W2の順に決定される。このことから、順番を決定するタイミング毎に、エンコーダー3により検出された現在の搬送量に基づいて比較される双方の距離(D31,D32,D33)が演算されて、それら演算された距離の値の大きさが相互に比較される。
まず、ワークW3の情報が一時記憶領域に保持されたことが検出されると第2追従順番決定工程が開始され、図6に示すように、追従順番決定部12は、下流側のロボット5の上流側境界とワークW3との間の距離D33を算出する(図6のステップS10)。距離D33が算出されると、追従順番決定部12は、算出された距離D33の値に基づいてワークW3の情報を第2追従順番記憶部13bに記憶させる順番を算出する(図6のステップS11)。このとき、図9(a)に示すように、ワークW3は最初に検出されたワークであるため第2追従順番記憶部13bには他のワークの情報が記憶されていないので、追従順番決定部12は、第1追従順番記憶部13aの先頭(「順番1」)をワークW3の記憶位置として算出する。また、他のワークの情報が記憶されていないので、追従順番決定部12は、既存データの移動を実施しないこととして(図6のステップS12)、第2追従順番記憶部13bの先頭(「順番1」)にワークW3の情報を記憶させる(図6のステップS13)。
次に、ワークW1の情報が一時記憶領域に保持されたことが検出されると再び第2追従順番決定工程が開始され、追従順番決定部12は、上流側境界とワークW1との間の距離D31と、これと比較するワークW3の距離D33とをそれぞれ算出する(図6のステップS10)。そして、追従順番決定部12は、算出された距離D31の値に基づいてワークW1の情報を第2追従順番記憶部13bに記憶させる順番を算出する(図6のステップS11)。このとき、図9(b)に示すように、第2追従順番記憶部13bにはワークW3の情報が記憶されているから、ワークW3の距離D33の値とワークW1の距離D31の値とを比較して、距離の値が大きい(負の距離が短い)ワークの順番が小さくなるようにワークW1の記憶順番を算出する。本実施形態では、距離D31の値が距離D33の値よりも小さいので、ワークW1はワークW3の次の「順番2」が記憶位置として算出される。また、ワークW3の情報を移動させる必要がないので、追従順番決定部12は、既存データの移動を実施しないこととして(図6のステップS12)、第2追従順番記憶部13bの「順番2」にワークW1の情報を記憶させる。
その次に、ワークW2の情報が一時記憶領域に保持されたことが検出されると再び第2追従順番決定工程が開始され、追従順番決定部12は、上流側境界とワークW2との間の距離D32、これと比較するワークW3の距離D33及びワークW1の距離D31とをそれぞれを算出する(図6のステップS10)。そして、追従順番決定部12は、算出された距離D32の値に基づいてワークW2の情報を第2追従順番記憶部13bに記憶させる順番を算出する(図6のステップS11)。このとき、図9(c)に示すように、第2追従順番記憶部13bには2つのワークW3,W1の情報が記憶されているから、ワークW2の距離D32の値をワークW3の距離D33の値及びワークW1の距離D31の値とそれぞれ比較して、距離の値が大きい(負の距離が短い)ワークの順番が小さくなるようにワークW2の記憶順番を算出する。本実施形態では、距離D32の値は距離D33の値及び距離D31のいずれよりも小さいので、ワークW2はワークW3及びワークW1より後ろの位置、すなわち「順番3」が記憶位置として算出される。また、ワークW3及びワークW1の情報を移動させる必要がないので、追従順番決定部12は、既存データの移動を実施しないこととして(図6のステップS12)、第2追従順番記憶部13bの「順番3」にワークW2の情報を記憶させる。
そして、下流側のロボット5によるワークに対する追従動作が、ワークの下流側のロボット5の可動限界RA2内への進入に基づいて、第2追従順番記憶部13bに記憶された順番に行なわれるようになる(追従工程)。なお、本実施形態では、下流側のロボット5により追従動作の行なわれたワークWは第2追従順番記憶部13bから削除されて、それに応じて既存のワークの情報の順番が繰り上げられるようになっている。
以上説明したように、本実施形態のロボットシステムによれば、以下に列記するような
効果が得られるようになる。
(1)上流側のロボット4と下流側のロボット5との各別にワークWに対して追従動作を行なう順番(追従順番)を決定する。これにより、それら追従順番を各ロボットの上流側境界に対応するかたちに決定することができる。また、上流側のロボット4に対して決定されたワークWに対して追従動作を行なう順番に関わらず、下流側のロボット5がワークに対して追従動作を行なう順番がワークWと下流側のロボット5の上流側境界との間の距離により決定できる。このことから、上流側のロボット4と下流側のロボット5とで上流側境界が非平行で、それぞれの上流側境界に進入するワークWの順番が相違するような場合であれ、下流側のロボット5の追従動作を行なう順番をその上流側境界に適合するように、上流側のロボット4の追従動作を行なう順番とは異なる順番にすることができる。
(2)また、下流側のロボット5が追従動作するワークWを、上流側のロボット4が追従動作を行なわなかったワークWとすることで、下流側のロボット5が追従動作すべきワークWを適正に絞り込むことができるようにもなる。
(3)下流側のロボット5の上流側境界を、xの関数としてy=a1・x+c1と定義し、この逆関数をx=(y−c1)/a1とした。これにより、ワークWと下流側のロボット5の上流側境界との間の距離を逆関数と、ワークWの搬送方向の位置(X軸方向の座標)及び搬送方向に直交する方向の位置(Y軸方向の座標)とから求めることができるようになる。
(4)ワークWと下流側のロボット5の上流側境界との間の距離の順に下流側のロボット5がワークWに対して追従動作を行なう順番を決定するので、当該順番の決定が容易である。
(5)旋回アームの旋回軌道に基づき制約される動作特性を有する多関節型ロボットであるスカラーロボットの採用により当該ロボットの動作特性による制約を考慮した追従領域が設定された場合であれ、下流側のロボット5の追従動作を行なう順番が好適に決定されるようになる。
(6)カメラ2やワーク位置検出部14からなる画像認識装置などの位置検出装置にて検出されたコンベヤー1に搬送されるワークWの位置と、エンコーダー3などの搬送量検出装置にて検出されたコンベヤー1の搬送量とに基づいてワークWの現在位置を逐次追跡(トラッキング)するロボットシステムにもロボットの追従順番の設定ができる。これにより、トラッキングされたワークWに対する追従動作を行なう順番がロボットの別に決定され、この決定された追従動作を行なう順番に基づいて各ロボット4,5によりワークWに対する追従動作が好適に行なわれるシステムが構成されるようになる。
(第2の実施形態)
以下、本発明を具体化したロボットシステムの第2の実施形態について図10に従って説明する。図10は、本実施形態のロボットシステムに設定されるロボットの上流側境界に対するワークWの距離について模式的に示した図である。なお、本実施形態のロボットシステムは、第1の実施形態のロボットシステムとロボットの上流側境界が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第1の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。また、本実施形態では、下流側のロボット5には上流側のロボット4の上流側境界(第1境界BL13)と同様の上流側境界が設定されるため、以下では、上流側のロボット4の上流側境界(第1境界BL13)について説明することとし、説明の便宜上、下流側のロボット5の上流側境界(第1境界)についての説明を割愛する。
追従順番決定部12は、第1の実施形態にて上流側のロボット4の追従順番を決定する場合と同様に、所定のタイミングにおいて各ワークWの現在位置と上流側のロボット4の上流側境界との間の距離を求めて、当該距離に基づいて上流側のロボット4の追従順番を決定する(第1追従順番決定工程)。例えば、「所定のタイミングp」における、上流側のロボット4の第1境界BL13と各ワークWの現在位置とから、各ワークWの現在位置と上流側のロボット4の第1境界BL13との間の距離を算出する。
図10に示すように、上流側のロボット4の第1境界BL13が数式にて「(x−α)^2+y^2=r^2」(但し、「^2」は二乗を表す記号とする)として表されものとする。すなわち、第1境界BL13は、上流側のロボット4の第1境界BL13の中心点Pαの位置が(α,0)と示されかつ、半径が「r」とされる円の円弧である。なお、「所定のタイミングq」において、エンコーダー3と中心点Pαとの間のX軸方向の距離を距離Lα(定数)とし、エンコーダー3により検出されるコンベヤー1の搬送量を(X0q,Y0)と表すと、中心点PαのX座標「α」はエンコーダー3の搬送量を用いて「X0q−Lα」と表される。
例えばワークW1,W3の現在位置は、各ワークの初期位置に現在までの搬送量の差を加えたものとして示される(ワーク位置計算工程)。すなわち、「所定のタイミングq」におけるワークW1の現在位置は、ワークW1の初期位置を示す(X0n−L1+d1,y1)に各軸の搬送量の差(X0q−X0n,0)をそれぞれ加えることにより、(X0q−L1+d1,y1)として表される。なお、これをワークW1の「所定のタイミングq」における現在位置(x15,y1)と表すものとする。同様に、ワークW3の現在位置を表す(X0q−L1+d3,y3)は、これを「所定のタイミングq」における現在位置(x16,y3)と表す。
そしてこれらの各現在位置に基づいて、第1境界BL13と各ワークW1,W3との間の各距離D15,D16をそれぞれ算出する。まず、第1境界BL13とワークW1との間の距離D15を、Y軸座標「y1」における、ワークW1のX軸座標「x15」と第1境界BL13のX軸座標「α+(r^2−y1^2)^(−2)」(但し、「^(−2)」は平方根を表す記号とする)との差から求める。すなわち、距離D15は、「x15−(α+(r^2−y1^2)^(−2))」と示される式から算出される。同様にして、第1境界BL13とワークW3との間の距離D16は、「x16−(α+(r^2−y3^2)^(−2))」と示される式から算出される。すなわち、このようにして算出された距離D15,D16の値に基づいて、上流側のロボット4の追従順番が決定される。
また同様に、下流側のロボット5の上流側境界と各ワークW1,W3との間の距離が算出され、このように算出された距離の値に基づいて、下流側のロボット5の追従順番も決定される(第2追従順番決定工程)。
以上説明したように、本実施形態によっても先の第1の実施形態の前記(1)及び(6)の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
(7)上流側のロボット4の上流側境界を、「(x−α)^2+y^2=r^2」と定義し、このxを求める逆関数をx=α+(r^2−y1^2)^(−2)とした。これにより、上流境界が円弧であってもワークWと上流側のロボット4の上流側境界との間の距離を求めることができるようになる。また、ワークWと下流側のロボット5の上流側境界との間の距離も同様に求めることができるようになる。
(第3の実施形態)
以下、本発明を具体化したロボットシステムの第3の実施形態について図11に従って説明する。図11は、本実施形態のロボットシステムに設定されるロボットの上流側境界に対するワークWの距離について模式的に示した図である。なお、本実施形態のロボットシステムは、第1の実施形態のロボットシステムとロボットの上流側境界が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第1の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。また、本実施形態では、下流側のロボット5には上流側のロボット4の上流側境界(第1境界BL14)と同様の上流側境界が設定されるため、以下では、上流側のロボット4の上流側境界(第1境界BL14)について説明することとし、説明の便宜上、下流側のロボット5の上流側境界(第1境界)についての説明を割愛する。
追従順番決定部12は、第1の実施形態にて上流側のロボット4の追従順番を決定する場合と同様に、所定のタイミングにおいて各ワークWの現在位置と上流側のロボット4の上流側境界との間の距離を求めて、当該距離に基づいて上流側のロボット4の追従順番を決定する(第1追従順番決定工程)。例えば、「所定のタイミングr」における、上流側のロボット4の第1境界BL14と各ワークWの現在位置とから、各ワークWの現在位置と上流側のロボット4の第1境界BL14との間の距離を算出する。
図11に示すように、上流側のロボット4の第1境界BL14は、y座標の値が「e(定数)」以下のとき数式にて「y=a3・x+c3」と表され、y座標の値が「e(定数)」より大きいとき数式にて「x=c4」として表されるものとする。なお、「e」はコンベヤーの各側線1a,1bの間の位置に設定されるY軸座標の値である。すなわち、第1境界BL14は、y座標の値が「e(定数)」以下のとき、上流側のロボット4の第1境界BL14の指示点P13の位置を表す座標が(c3,0)かつ、傾きが「a3」である、X軸方向に傾きを有する直線である。また、第1境界BL14は、y座標の値がe(定数)より大きいとき、上流側のロボット4の第1境界BL14の指示点P14の位置を表す座標(c4,e)に続いてY軸方向に沿って側線1a方向に延びる直線である。なお、「所定のタイミングr」において、エンコーダー3と指示点P13との間のX軸方向の距離を距離L4(定数)と定義し、エンコーダー3により検出されるコンベヤー1の搬送量を(X0r,Y0)と表すと、指示点P13のX座標「c3」はエンコーダー3の搬送量を用いて「X0r−L4」と表される。また、エンコーダー3と指示点P14との間のX軸方向の距離を距離L5(定数)と定義すると、「所定のタイミングr」における指示点P14のX座標「c4」はエンコーダー3の搬送量を用いて「X0r−L5」と表される。
例えばワークW1,W3の現在位置は、各ワークの初期位置に現在までの搬送量の差を加えたものとして示される(ワーク位置計算工程)。すなわち、「所定のタイミングr」におけるワークW1の現在位置は、ワークW1の初期位置を示す(X0n−L1+d1,y1)に各軸の搬送量の差である(X0r−X0n,0)をそれぞれ加えることにより、(X0r−L1+d1,y1)として表される。なお、これをワークW1の「所定のタイミングr」における現在位置(x17,y1)と表す。同様に、ワークW3の現在位置として表される(X0r−L1+d3,y3)は、これを「所定のタイミングs」における現在位置(x18,y3)と表す。
そしてこれらの各現在位置に基づいて、第1境界BL14と各ワークW1,W3との間の各距離D17,D18をそれぞれ算出する。なお、ワークW1のY軸座標は「e」以下とし、ワークW3のY軸座標は「e」よりも大きいものとする。第1境界BL14とワークW1との間の距離D17を、Y軸座標「y1」における、ワークW1のX軸座標「x17」と第1境界BL14のX軸座標「(y1−c3)/a3」との差から算出する。すなわち、距離D17は、「x17−(y1−c3)/a3」と示される式から算出される。
また、第1境界BL14とワークW3との間の距離D18は、「x18−c4」と示される式から算出される。すなわち、このようにして算出された距離D17,D18の値に基づいて、上流側のロボット4の追従順番が決定される。
また同様に、下流側のロボット5の上流側境界と各ワークW1,W3との間の距離が算出され、このように算出された距離に基づいて、下流側のロボット5の追従順番も決定される(第2追従順番決定工程)。
以上説明したように、本実施形態によっても先の第1の実施形態の前記(1)及び(6)の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
(8)上流側のロボット4の上流側境界を、「y≦e」のとき数式にて「y=a3・x+c3」と表し、「y>e」のとき「x=c4」として表し、このxを求める逆関数をx=(y1−c3)/a3:(y≦e)及びx=c4:(y>e)とすることができる。これにより、上流境界が複数の直線の組み合わせであってもワークWと上流側のロボット4の上流側境界との間の距離を求めることができるようになる。また、ワークWと下流側のロボット5の上流側境界との間の距離も同様に求めることができるようになる。
なお、上記各実施形態は、例えば以下のような態様にて実施することもできる。
・上記各実施形態では、追従順番決定部12、ワーク位置検出部14、搬送量検出部16、追従対象検出部17、第1及び第2の追従指令値生成部20,22、第1及び第2のモーター制御部21,23の各処理が全てCPUにて行なわれる場合について例示した。しかしこれに限らず、追従順番決定部、ワーク位置検出部、搬送量検出部、追従対象検出部、第1及び第2の追従指令値生成部、第1及び第2のモーター制御部の各処理の全部又は一部がCPUとは別に設けられた処理装置等により処理されてもよい。また、追従順番決定部、ワーク位置検出部、搬送量検出部、追従対象検出部、第1及び第2の追従指令値生成部、第1及び第2のモーター制御部などで行なわれる各処理を、複数のCPU等の処理装置により分散処理するようにしてもよい。
・上記各実施形態では、ロボットコントローラー6にワーク位置記憶部13と追従領域設定部15とが設けられる場合について例示した。しかしこれに限らず、ワーク位置記憶部や追従領域設定部は、必要な情報が保持されるのであれば、ロボットコントローラーとの通信可能とされているロボットコントローラーとは別個の記憶装置に設けられてもよい。また、ワーク位置記憶部や追従領域設定部などが複数の記憶装置に分散して設けられてもよい。
・上記各実施形態では、ロボットコントローラー6に第1及び第2のモーター制御部21,23が共に設けられている場合について例示した。しかしこれに限らず、ロボットコントローラーによる制御ができる態様であれば、少なくとも一つのモーター制御部がロボットコントローラーに対して独立して設けられていてもよい。この場合、ロボットコントローラーは追従指令値生成部からのモーター指令値を対応するモーター制御部に伝達し、モーター指令値を受けたモーター制御部が同モーター指令値に従って各関節のモーターを制御するようにすればよい。
・上記各実施形態では、各指示点P11〜P14,P21,P22,P41,P42,P51,P52が手動のティーチングにより設定される場合について例示した。しかしこれに限らず、各指示点は、ロボットの先端位置(作業部)とコンベヤーの幅等とを検出可能なセンサーなどを用いることなどにより、ロボットの先端を自動的にティーチングさせて設定するようにしてもよい。
・上記各実施形態では、各指示点P11〜P14,P21,P22,P41,P42,P51,P52がティーチングにより設定される場合について例示した。しかしこれに限らず、各指示点は、ロボットの可動限界とコンベヤーの配置位置などから演算により算出されるようにしてもよいし、当該指示点の座標そのものが直接設定されるようにしてもよい。
・上記各実施形態では、各指定端点P31,P32,P61,P62は、ティーチングされた指示点P21,P22,P51,P52から算出される場合について例示した。しかしこれに限らず、各指定端点は、ティーチングなどにより設定されてもよい。
・上記各実施形態では、上流側のロボット4と下流側のロボット5とが同様の構造や可動特性などを有するスカラーロボットである場合について例示した。しかしこれに限らず、上流側のロボットと下流側のロボットとのそれぞれの構造や可動特性などには、相違があってもよい。この場合には、各ロボットの構造や可動特性に基づいて、可動限界や軌道の計算を行うことで、上流側のロボットと下流側のロボットの駆動制御を各別に行うことが可能である。
・上記各実施形態では、追従順番決定部12は、下流側のロボット5の追従順番をワークWと下流側のロボット5の上流側境界との間の距離の順に決定する場合について例示した。しかしこれに限らず、追従順番決定部は、追従順番を、例えばワークと下流側のロボットの下流側境界との間の距離の順に基づいて決定するようにしてもよい。また例えば、ワークと、上流側境界と下流側境界との関係等を考慮した条件などに基づいて決定するようにしてもよい。
・上記各実施形態では、上流側境界を数式で表せる場合について例示した。しかしこれに限らず、上流側境界は、X軸座標とそれに対応するY軸座標とを対として記憶するマップデータにより設定されても、数式とマップデータとの組み合わせなどで設定されてもよい。
・上記各実施形態では、各ワークW1〜W3が上流側境界よりも上流側にある場合について例示した。しかしこれに限らず、ワークが上流側境界よりも下流側にあってもよい。この場合、上流側境界との間の距離は正の値となり、上流側境界よりも上流側にあるワークとの間でそれらの距離を相互に比較して追従順番を計算することができる。
・上記各実施形態では、距離D11〜D18,D31〜D33の値を上流側境界よりも上流側の場合には負とし、下流側の場合には正とした。しかしこれに限らず、距離の値を上流側境界よりも上流側の場合には正とし、下流側の場合には負としてもよい。
・上記各実施形態では、第1及び第2追従順番記憶部13a,13bにワークの情報そのもの(初期位置)が保持される場合について例示したが、第1及び第2追従順番記憶部には、ワークの情報の位置を示す一つまたは複数のアドレスや、ワークの情報の全部もしくは一部とアドレスとの組み合わせが保持されるなどしてもよい。
・上記各実施形態では、複数の指示点P11,P12,P41,P42等が直線で結ばれることにより上流側境界が規定される場合について例示した。しかしこれに限らず、複数の指示点は、曲線などにより結ばれてもよい。曲線により結ぶ場合は、演算処理等が増加するが、これによっても、上流側境界の設定の自由度を高くすることができる。
・上記各実施形態では、上流側のロボット4の上流側境界(第1境界BL1等)と下流
側のロボット5の上流側境界(第1境界BL3等)とが共に同様の形状(直線、又は円弧、又は直線の組み合わせ)である場合について例示した。しかしこれに限らず、上流側のロボットの上流側境界と下流側のロボットの上流側境界とがそれぞれ異なる形状に設定されていてもよい。
・また、上流側境界の形状としても、Y軸座標の値が戻るような部分を含まない形状であれば、直線、又は円弧、又は直線の組み合わせ、もしくはそれらの組み合わせなどのような線形状であってもよい。
・上記各実施形態では、上流側のロボット4の上流側境界と、下流側のロボット5の上流側境界がともにワークWの搬送方向Cvに非直交な部分を有する場合について例示した。しかしこれに限らず、上流側のロボットの上流側境界及び下流側のロボットの上流側境界のいずれか一方にワークの搬送方向に非直交な部分が含まれていてもよい。すなわち、各ロボットの上流側境界のいずれか一つがワークの搬送方向に直交するかたちに設定されていてもよい。
・上記各実施形態では、下流側のロボット5の追従順番は、上流側のロボット4により追従動作が行なわれなかったワークについて決定されるものとした。しかしこれに限らず、下流側のロボットの追従順番を、上流側のロボットによる追従動作が行なわれた後にもコンベヤー上に載置され続けているワークに対して決定するようにしてもよい。
・上記各実施形態では、下流側のロボット5の追従順番を上流側のロボット4の下流側境界を通過したワークの順に決定する場合について例示した。しかしこれに限らず、別途設定された条件や、上流側のロボットの追従動作後にもコンベヤー上に残されるワークであれば上流側のロボットの追従動作の終了した順などに基づいて決定されてもよい。
・上記各実施形態では、上流側及び下流側のロボット4,5がコンベヤー1を挟んで千鳥状に配置される場合について例示した。しかし、これに限らず、上流側及び下流側のロボットはコンベヤー1の同じ側に設けられてもよい。
・上記各実施形態では、上流側及び下流側のロボット4,5の各可動限界RA1,RA2が近接して設けられる場合について例示したが、上流側及び下流側のロボットの各可動限界の間に広い間隔があってもよく、また、その間隔にワークの状態を変化させない工程が含まれていてもよい。
・上記各実施形態では、上流側及び下流側のロボット4,5が共にスカラーロボットである場合について例示した。しかし、これに限らず、上流側及び下流側のロボットの少なくともいずれか一方がスカラーロボット以外のロボット、例えば、旋回アームを有する六軸ロボットなどでもよい。