(57)【要約】【課題】移動するワークに追従して作業する複数のロボットのワークに対する追従能力をそれぞれ高めることのできる制御装置、及びロボット、及びロボットシステム、及びロボットの追従制御方法を提供する。【解決手段】ロボットコントローラー６は、コンベヤー１により搬送されるワークに対して追従動作を行なう順番を上流側及び下流側に配置されたロボット４，５にそれぞれ設定する。ロボットコントローラー６は、各ロボット４，５のロボットがそれぞれワークに対して追従動作を行なう追従領域を各ロボットの別に設定する追従領域設定部１５と、各ロボット４，５がそれぞれワークに対して追従動作を行なう順番を決定する追従順番決定部１２と、決定された各ロボットの追従動作を行なう順番を記憶する第１及び第２追従順番記憶部１３ａ，１３ｂとを備える。【選択図】図２
2011140085.tif 000002
【特許請求の範囲】
【請求項１】
搬送装置により搬送されるワークに対して追従動作を行なう順番を前記搬送装置のワーク搬送方向の上流側及び前記ワーク搬送方向の下流側に配置されたロボットにそれぞれ設定する制御装置であって、
前記制御装置は、前記上流側のロボット及び前記下流側のロボットがそれぞれワークに対して追従動作を行なう追従領域を各ロボットの別に設定する追従領域設定部と、
前記上流側のロボット及び前記下流側のロボットがそれぞれ前記ワークに対して追従動作を行なう順番を決定する追従順番決定部と、
前記追従順番決定部によって決定された前記上流側のロボットの追従動作を行なう順番を記憶する第１追従順番記憶部と、
前記追従順番決定部によって決定された前記下流側のロボットの追従動作を行なう順番を記憶する第２追従順番記憶部とを備え、
前記上流側のロボットの追従領域及び前記下流側のロボットの追従領域はそれぞれ前記搬送装置の上流側に設定される上流側境界を有し、
前記上流側のロボットの上流側境界と前記下流側のロボットの上流側境界とは非平行であり、
前記追従順番決定部は、
前記上流側のロボットが追従動作を行なわなかったワークに対応する前記第１追従順番記憶部の順番を削除し、
前記順番の削除された前記ワークに対し、前記ワークと前記下流側のロボットの上流側境界との間の距離に基づいて前記下流側のロボットが追従動作を行なう順番を決定し、前記決定された前記下流側のロボットの追従動作を行なう順番を前記第２追従順番記憶部に記憶させることを特徴とする制御装置。
【請求項２】
前記ワークと前記下流側のロボットの上流側境界との間の距離は、
前記搬送装置の搬送方向をｘ軸、前記搬送装置の搬送方向に直交する方向をｙ軸とする２次元で表される座標系にあって、
前記搬送装置により搬送されている前記ワークの位置を座標（ｘｉ，ｙｉ）とし、
前記下流側のロボットの上流側境界を示す関数ｆをｙ＝ｆ（ｘ）とし、
前記関数ｆの逆関数を関数ｆｉｎｖとするとき、
ｘｉ−ｆｉｎｖ（ｙｉ）
により求められ、
前記追従順番決定部は、前記求められた距離に基づいて前記下流側のロボットが前記ワークに対して追従動作を行なう順番を決定する
請求項１に記載の制御装置。
【請求項３】
前記追従順番決定部は、前記ワークに対して追従動作を行なう順番を前記ワークと前記下流側のロボットの上流側境界との間の距離の順に決定する
請求項１または２に記載の制御装置。
【請求項４】
搬送装置により搬送されるワークに対して追従動作を行なう順番が前記搬送装置のワーク搬送方向の上流側及び前記ワーク搬送方向の下流側にそれぞれ配置されたロボットを対として設定されるロボットであって、
前記上流側のロボット及び前記下流側のロボットがそれぞれワークに対して追従動作を行なう追従領域を各ロボットの別に設定する追従領域設定部と、
前記上流側のロボット及び前記下流側のロボットがそれぞれ前記ワークに対して追従動作を行なう順番を決定する追従順番決定部と、
前記追従順番決定部によって決定された前記上流側のロボットの追従動作を行なう順番を記憶する第１追従順番記憶部と、
前記追従順番決定部によって決定された前記下流側のロボットの追従動作を行なう順番を記憶する第２追従順番記憶部とを備え、
前記上流側のロボットの追従領域及び前記下流側のロボットの追従領域にはそれぞれ前記搬送装置の上流側に設定される上流側境界が設けられ、
前記上流側のロボットの上流側境界と前記下流側のロボットの上流側境界とは非平行であり、
前記追従順番決定部は、
前記上流側のロボットが追従動作を行なわなかったワークに対応する前記第１追従順番記憶部の順番を削除し、
前記順番の削除された前記ワークに対し、前記ワークと前記下流側のロボットの上流側境界との間の距離に基づいて前記下流側のロボットが追従動作を行なう順番を決定し、該決定された前記下流側のロボットの追従動作を行なう順番を前記第２追従順番記憶部に記憶させることを特徴とするロボット。
【請求項５】
前記ワークと前記下流側のロボットの上流側境界との間の距離は、
前記搬送装置の搬送方向をｘ軸、前記搬送装置の搬送方向に直交する方向をｙ軸とする２次元で表される座標系にあって、
前記搬送装置により搬送されている前記ワークの位置を座標（ｘｉ，ｙｉ）とし、
前記下流側のロボットの上流側境界を示す関数ｆをｙ＝ｆ（ｘ）とし、
前記関数ｆの逆関数を関数ｆｉｎｖとするとき、
ｘｉ−ｆｉｎｖ（ｙｉ）
により求められ、
前記追従順番決定部は、前記求められた距離に基づいて前記下流側のロボットの前記ワークに対して追従動作を行なう順番を決定する
請求項４に記載のロボット。
【請求項６】
前記追従順番決定部は、前記ワークに対して追従動作を行なう順番を前記ワークと前記下流側のロボットの上流側境界との間の距離の順に決定する
請求項４または５に記載のロボット。
【請求項７】
搬送装置と、
前記搬送装置により搬送されるワークと、
前記搬送装置上のワークの位置を検出する位置検出装置と、
前記搬送装置が前記ワークを搬送した搬送量を検出する搬送量検出装置と、
請求項４〜６のいずれか一項に記載のロボットと
を備えたことを特徴とするロボットシステム。
【請求項８】
前記搬送装置はコンベヤーであることを特徴とする
請求項７に記載のロボットシステム。
【請求項９】
搬送装置のワーク搬送方向の上流側のロボットと前記ワーク搬送方向の下流側のロボットとのそれぞれに搬送装置上のワークに対し追従動作を行う追従領域を設定する追従領域設定工程と、
前記上流側のロボットと前記下流側のロボットとのそれぞれに設定される各追従領域の上流側に非平行である上流側境界を設定する境界設定工程と、
画像認識手段によってワークの初期位置を認識するワーク初期位置認識工程と、
搬送中のワークの位置を逐次計算するワーク位置計算工程と、
前記上流側のロボットが前記ワークに対して追従動作を行なう順番を決定する第１追従順番決定工程と、
前記上流側のロボットが追従動作を行なわなかったワークに対する前記決定された上流
側のロボットが追従動作を行なう順番を削除する順番削除工程と、
前記順番の削除された前記ワークに対し、前記ワークと前記下流側のロボットの上流側境界との間の距離に基づいて前記下流側のロボットが追従動作を行なう順番を決定する第２追従順番決定工程と、
前記下流側のロボットの上流側境界に進入したワークに対し、前記決定された下流側のロボットの追従動作を行なう順番に基づく追従動作を前記下流側のロボットに行なわせる追従工程と
を有することを特徴とするロボットの追従制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は搬送装置によって搬送されるワークを追跡し、該ワークに対して所定の処理を行うロボットを制御する制御装置、及び該制御装置を有するロボット、及び該ロボットを含んで構成されるロボットシステム、及び上記制御装置に適用されてロボットをワークに追従させるロボットの追従制御方法に関する。
【背景技術】
【０００２】
従来、特許文献１に記載されているシステムのように、コンベヤー等の搬送装置によって搬送されるワークを追跡し、そのワークに対してロボットを追従させつつ各種の処理を行うロボットシステムが知られている。また、この種のロボットシステムは、複数のワークを処理対象とすることが一般的であり、ワークの位置検出にカメラと画像処理装置を用いることによってコンベヤー上に離散して配置された各ワークの位置を把握するようにしているものが多い。ただし、このようなシステムにあっては、コンベヤーによる移動に伴ってワークの位置が変化するため、ワークの現在位置の把握には、例えば、画像処理により取得された位置をコンベヤーの搬送量により補正するなど、その都度のワークの位置をコンベヤーの搬送量に基づき逐次補正することも欠かせない。すなわち同システムでは、搬送方向に対する各ワークの現在位置を逐次監視、補正しつつ、コンベヤーの搬送方向に直交する境界線上に設定されているロボットの追従領域を越えてそれらのワークが搬送されたことを検出する。そして、この検出されたワークにロボットを追従させることにより、同ワークに対して予め定められている所定の処理を施すようにしている。
【０００３】
ところで、このようなロボットシステムには、複数のロボットが採用されていることが多く、また同システムに採用されるロボットとしては、例えば特許文献２に記載されているように、複数のアームが水平関節を介して順番に連結されるスカラーロボットなどのいわゆる多関節型ロボットであることが多い。すなわち、この特許文献２に記載のロボットシステムでは、ワークにロボットが追従して作業することのできる追従領域（コンベヤー同期可能エリア）を、各ロボット毎に、ワークを撮像する視覚センサーの撮像領域に準ずるかたちで、しかもコンベヤーの搬送方向に直交する方向に区切るように設けている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１１１６０７号公報
【特許文献２】特開２００７−１５０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２に記載のロボットシステムのように、複数のロボットの追従領域をコンベヤーの搬送方向に直交するかたちにそれぞれ設けて同搬送方向に対するワークの位置を監視するようにすれば、各ロボットの追従領域へワークが移動したことを容易に検出することができるようにはなる。しかしながら、ロボットの追従領域の境界を上述のようにコンベヤーの搬送方向に対して直交するように設定することが必ずしも望ましいとは限らない。特に、スカラーロボットなどの多関節型ロボットは、その基台部を中心にその先端の作業部が旋回する動作特性を有しているため、ロボット自身の動作特性を考慮して追従領域を設定しようとすれば、追従領域の境界が搬送方向に対して直交しないばかりか、他のロボットの追従領域の境界に対しても非平行となるおそれが高い。このように、ロボットの動作特性を考慮しようとすれば、ロボットシステムとしても、複数のワークの位置を搬送方向に対して監視することのみでは、ワークが各ロボットの追従領域にそれぞれどのような
順番で移動していくのかを検出することが困難となる。そして、ワークの順番を適正に検出することができなければ、各ロボットの運用にも支障をきたしかねない。
【０００６】
本発明は、このような実情に鑑みてなされたものであり、その目的は、移動するワークに追従して作業する複数のロボットのワークに対する追従能力をそれぞれ高めることのできる制御装置、及びロボット、及びロボットシステム、及びロボットの追従制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の制御装置は、搬送装置により搬送されるワークに対して追従動作を行なう順番を前記搬送装置のワーク搬送方向の上流側及び前記ワーク搬送方向の下流側に配置されたロボットにそれぞれ設定する制御装置であって、前記制御装置は、前記上流側のロボット及び前記下流側のロボットがそれぞれワークに対して追従動作を行なう追従領域を各ロボットの別に設定する追従領域設定部と、前記上流側のロボット及び前記下流側のロボットがそれぞれ前記ワークに対して追従動作を行なう順番を決定する追従順番決定部と、前記追従順番決定部によって決定された前記上流側のロボットの追従動作を行なう順番を記憶する第１追従順番記憶部と、前記追従順番決定部によって決定された前記下流側のロボットの追従動作を行なう順番を記憶する第２追従順番記憶部とを備え、前記上流側のロボットの追従領域及び前記下流側のロボットの追従領域はそれぞれ前記搬送装置の上流側に設定される上流側境界を有し、前記上流側のロボットの上流側境界と前記下流側のロボットの上流側境界とは非平行であり、前記追従順番決定部は、前記上流側のロボットが追従動作を行なわなかったワークに対応する前記第１追従順番記憶部の順番を削除し、前記順番の削除された前記ワークに対し、前記ワークと前記下流側のロボットの上流側境界との間の距離に基づいて前記下流側のロボットが追従動作を行なう順番を決定し、前記決定された前記下流側のロボットの追従動作を行なう順番を前記第２追従順番記憶部に記憶させることを要旨とする。
【０００８】
このような構成によれば、搬送装置がワークを搬送する方向であるワーク搬送方向の上流側のロボットと当該ワーク搬送方向の下流側のロボットとの各別にワークに対して追従動作を行なう順番を決定するので、それら順番を各ロボットの追従領域の上流側の境界である上流側境界に対応するかたちに決定することができるようになる。これにより、上流側のロボットに対して決定されたワークに対して追従動作を行なう順番に関わらず、下流側のロボットがワークに対して追従動作を行なう順番がワークと下流側のロボットの上流側境界との間の距離により決定できる。このことから、上流側のロボットと下流側のロボットとで上流側境界が非平行で、それぞれの上流側境界に進入するワークの順番が相違するような場合であれ、下流側のロボットの追従動作を行なう順番をその上流側境界に適合するように、上流側のロボットの追従動作を行なう順番とは異なる順番にすることができる。なお、追従動作とは、搬送装置によって搬送されるワークの搬送速度を考慮してワークにロボットを接近させることを意味する。また、追従領域とは、ロボットがワークに対して追従動作を行う搬送装置上の領域を意味する。
【０００９】
また、下流側のロボットが追従動作するワークを、上流側のロボットが追従動作を行なわなかったワークとすることで、下流側のロボットが追従動作すべきワークを適正に絞り込むことができるようにもなる。
【００１０】
この制御装置は、前記ワークと前記下流側のロボットの上流側境界との間の距離は、前記搬送装置の搬送方向をｘ軸、前記搬送装置の搬送方向に直交する方向をｙ軸とする２次元で表される座標系にあって、前記搬送装置により搬送されている前記ワークの位置を座標（ｘｉ，ｙｉ）とし、前記下流側のロボットの上流側境界を示す関数ｆをｙ＝ｆ（ｘ）とし、前記関数ｆの逆関数を関数ｆｉｎｖとするとき、ｘｉ−ｆｉｎｖ（ｙｉ）により求
められ、前記追従順番決定部は、前記求められた距離に基づいて前記下流側のロボットが前記ワークに対して追従動作を行なう順番を決定することを要旨とする。
【００１１】
このような構成によれば、下流側のロボットの上流側境界を関数ｆとして定義するようにすることで、ワークと下流側のロボットの上流側境界との間の距離を関数ｆの逆関数と、ワークの搬送方向の位置（Ｘ軸方向の座標）及び搬送方向に直交する方向の位置（Ｙ軸方向の座標）とから求めることができるようになる。
【００１２】
この制御装置は、前記追従順番決定部は、前記ワークに対して追従動作を行なう順番を前記ワークと前記下流側のロボットの上流側境界との間の距離の順に決定することを要旨とする。
【００１３】
このような構成によれば、ワークと下流側のロボットの上流側境界との間の距離の順に下流側のロボットがワークに対して追従動作を行なう順番を決定するので、当該順番の決定が容易である。
【００１４】
本発明のロボットは、搬送装置により搬送されるワークに対して追従動作を行なう順番が前記搬送装置のワーク搬送方向の上流側及び前記ワーク搬送方向の下流側にそれぞれ配置されたロボットを対として設定されるロボットであって、前記上流側のロボット及び前記下流側のロボットがそれぞれワークに対して追従動作を行なう追従領域を各ロボットの別に設定する追従領域設定部と、前記上流側のロボット及び前記下流側のロボットがそれぞれ前記ワークに対して追従動作を行なう順番を決定する追従順番決定部と、前記追従順番決定部によって決定された前記上流側のロボットの追従動作を行なう順番を記憶する第１追従順番記憶部と、前記追従順番決定部によって決定された前記下流側のロボットの追従動作を行なう順番を記憶する第２追従順番記憶部とを備え、前記上流側のロボットの追従領域及び前記下流側のロボットの追従領域にはそれぞれ前記搬送装置の上流側に設定される上流側境界が設けられ、前記上流側のロボットの上流側境界と前記下流側のロボットの上流側境界とは非平行であり、前記追従順番決定部は、前記上流側のロボットが追従動作を行なわなかったワークに対応する前記第１追従順番記憶部の順番を削除し、前記順番の削除された前記ワークに対し、前記ワークと前記下流側のロボットの上流側境界との間の距離に基づいて前記下流側のロボットが追従動作を行なう順番を決定し、該決定された前記下流側のロボットの追従動作を行なう順番を前記第２追従順番記憶部に記憶させることを要旨とする。
【００１５】
このような構成によれば、搬送装置がワークを搬送する方向であるワーク搬送方向の上流側のロボットと当該ワーク搬送方向の下流側のロボットとの各別にワークに対して追従動作を行なう順番を決定するので、それら順番を各ロボットの追従領域の上流側の境界である上流側境界に対応するかたちに決定することができるようになる。これにより、上流側のロボットに対して決定されたワークに対して追従動作を行なう順番に関わらず、下流側のロボットがワークに対して追従動作を行なう順番がワークと下流側のロボットの上流側境界との間の距離により決定できる。このことから、上流側のロボットと下流側のロボットとで上流側境界が非平行で、それぞれの上流側境界に進入するワークの順番が相違するような場合であれ、下流側のロボットの追従動作を行なう順番をその上流側境界に適合するように、上流側のロボットの追従動作を行なう順番とは異なる順番にすることができる。
【００１６】
また、下流側のロボットが追従動作するワークを、上流側のロボットが追従動作を行なわなかったワークとすることで、下流側のロボットが追従動作すべきワークを適正に絞り込むことができるようにもなる。
【００１７】
このロボットは、前記ワークと前記下流側のロボットの上流側境界との間の距離は、前記搬送装置の搬送方向をｘ軸、前記搬送装置の搬送方向に直交する方向をｙ軸とする２次元で表される座標系にあって、前記搬送装置により搬送されている前記ワークの位置を座標（ｘｉ，ｙｉ）とし、前記下流側のロボットの上流側境界を示す関数ｆをｙ＝ｆ（ｘ）とし、前記関数ｆの逆関数を関数ｆｉｎｖとするとき、ｘｉ−ｆｉｎｖ（ｙｉ）により求められ、前記追従順番決定部は、前記求められた距離に基づいて前記下流側のロボットの前記ワークに対して追従動作を行なう順番を決定することを要旨とする。
【００１８】
このような構成によれば、下流側のロボットの上流側境界を関数ｆとして定義するようにすることで、ワークと下流側のロボットの上流側境界との間の距離を、関数ｆの逆関数と、ワークの搬送方向の位置（Ｘ軸方向の座標）及び搬送方向に直交する方向の位置（Ｙ軸方向の座標）とから求めることができるようになる。
【００１９】
このロボットは、前記追従順番決定部は、前記ワークに対して追従動作を行なう順番を前記ワークと前記下流側のロボットの上流側境界との間の距離の順に決定することを要旨とする。
【００２０】
このような構成によれば、ワークと下流側のロボットの上流側境界との間の距離の順に下流側のロボットがワークに対して追従動作を行なう順番を決定するので、当該順番の決定が容易である。
【００２１】
本発明のロボットシステムは、搬送装置と、前記搬送装置により搬送されるワークと、前記搬送装置上のワークの位置を検出する位置検出装置と、前記搬送装置が前記ワークを搬送した搬送量を検出する搬送量検出装置と、上記記載のロボットとを備えたことを要旨とする。
【００２２】
このような構成によれば、画像認識装置などの位置検出装置にて検出された搬送装置に搬送されるワークの位置と、エンコーダーなどの搬送量検出装置にて検出された搬送装置の搬送量とに基づいてワークの現在位置を逐次追跡（トラッキング）することができるロボットシステムに上述のロボットが適用される。これにより、トラッキングされたワークに対する追従動作を行なう順番がロボットの別に決定され、この決定された追従動作を行なう順番に基づいて各ロボットによりワークに対する追従動作が好適に行なわれるシステムが構成されるようになる。
【００２３】
このロボットシステムは、前記搬送装置はコンベヤーであることを要旨とする。
このような構成によれば、搬送装置として一般的であるコンベアーの採用されたロボットシステムにもワークに対する追従動作を行なう順番がロボットの別に設定できるようになる。
【００２４】
本発明のロボットの追従制御方法は、搬送装置のワーク搬送方向の上流側のロボットと前記ワーク搬送方向の下流側のロボットとのそれぞれに搬送装置上のワークに対し追従動作を行う追従領域を設定する追従領域設定工程と、前記上流側のロボットと前記下流側のロボットとのそれぞれに設定される各追従領域の上流側に非平行である上流側境界を設定する境界設定工程と、画像認識手段によってワークの初期位置を認識するワーク初期位置認識工程と、搬送中のワークの位置を逐次計算するワーク位置計算工程と、前記上流側のロボットが前記ワークに対して追従動作を行なう順番を決定する第１追従順番決定工程と、前記上流側のロボットが追従動作を行なわなかったワークに対する前記決定された上流側のロボットが追従動作を行なう順番を削除する順番削除工程と、前記順番の削除された前記ワークに対し、前記ワークと前記下流側のロボットの上流側境界との間の距離に基づいて前記下流側のロボットが追従動作を行なう順番を決定する第２追従順番決定工程と、
前記下流側のロボットの上流側境界に進入したワークに対し、前記決定された下流側のロボットの追従動作を行なう順番に基づく追従動作を前記下流側のロボットに行なわせる追従工程とを有することを要旨とする。
【００２５】
このような構成によれば、搬送装置がワークを搬送する方向であるワーク搬送方向の上流側のロボットと当該ワーク搬送方向の下流側のロボットとの各別にワークに対して追従動作を行なう順番を決定するので、それら順番を各ロボットの追従領域の上流側の境界である上流側境界に対応するかたちに決定することができるようになる。これにより、上流側のロボットに対して決定されたワークに対して追従動作を行なう順番に関わらず、下流側のロボットがワークに対して追従動作を行なう順番がワークと下流側のロボットの上流側境界との間の距離により決定できる。このことから、上流側のロボットと下流側のロボットとで上流側境界が非平行で、それぞれの上流側境界に進入するワークの順番が相違するような場合であれ、下流側のロボットの追従動作を行なう順番をその上流側境界に適合するように、上流側のロボットの追従動作を行なう順番とは異なる順番にすることができる。
【００２６】
また、下流側のロボットが追従動作するワークを、上流側のロボットが追従動作を行なわなかったワークとすることで、下流側のロボットが追従動作すべきワークを適正に絞り込むことができるようにもなる。
【図面の簡単な説明】
【００２７】
【図１】本発明にかかるロボットシステムの第１の実施形態についてその斜視構造を示す斜視図。
【図２】同実施形態のロボットシステムの構成を機能ブロックにて示すブロック図。
【図３】同実施形態のロボットシステムに設定されるロボットの追従領域を模式的に示す模式図。
【図４】同実施形態のロボットシステムにてワークの初期位置（座標）の態様を示す模式図。
【図５】同実施形態の上流側のロボットの上流側境界に対するワークの距離について模式的に示す模式図。
【図６】同実施形態のロボットシステムにてワークに対して追従動作を行う順番を決定する工程を示すフローチャート。
【図７】（ａ）（ｂ）（ｃ）同実施形態にて上流側のロボットがワークに対して追従動作を行う順番の決定される態様を示す概念図。
【図８】同実施形態の下流側のロボットの上流側境界に対するワークの距離について模式的に示す模式図。
【図９】（ａ）（ｂ）（ｃ）同実施形態にて下流側のロボットがワークに対して追従動作を行う順番の決定される態様を示す概念図。
【図１０】本発明にかかるロボットシステムの第２の実施形態であって、そのロボットに設定された円弧状の上流側境界に対するワークの距離について模式的に示す模式図。
【図１１】本発明にかかるロボットシステムの第３の実施形態であって、そのロボットに設定された複数の線からなる上流側境界に対するワークの距離について模式的に示す模式図。
【発明を実施するための形態】
【００２８】
（第１の実施形態）
以下、本発明を具体化したロボットシステムの第１の実施形態について図に従って説明する。図１は、ロボットシステムの概略構成を斜視にて示す図であり、図２は、ロボットシステムの機能の構成を機能ブロックにて示す図である。また、図３は、ロボットシステムに設定されるロボットの追従領域を模式的に示す模式図であり、図４は、ロボットシス
テムにて認識されるワークの初期位置の態様を模式的に示す図である。
【００２９】
図１に示すように、ロボットシステムには、ワークＷを搬送するコンベヤー１と、コンベヤー１に搬送されるワークＷを撮像するカメラ２と、当該コンベヤー１の搬送量を測定するエンコーダー３とが設けられている。また、ロボットシステムには、ワークＷに対して所定の作業を行なうロボットが２台設けられており、コンベヤー１がワークＷを搬送する方向である搬送方向Ｃｖ（ワーク搬送方向）に対して上流側の位置には上流側のロボット４が、当該ワーク搬送方向に対して下流側の位置には下流側のロボット５がそれぞれ配置されている。そしてこれら上流側のロボット４と下流側のロボット５とはコンベヤー１に沿って該コンベヤー１の搬送方向Ｃｖにコンベヤー１を挟む千鳥状に配置されている。また、ロボットシステムには、上流側及び下流側のロボット４，５を一対として制御するロボットコントローラー６が設けられており、このロボットコントローラー６には、上流側及び下流側のロボット４，５とともに、上述したカメラ２及びエンコーダー３が接続されている。なお本実施形態では、システム構成などに応じて、上流側のロボット４の可動し得る領域（可動限界内）には作業台７などが、下流側のロボット５の可動し得る領域（可動限界内）にも作業台８などが適宜設置される。各作業台７，８には、例えばワークＷや各種ツールが適宜載置されるようになっている。
【００３０】
コンベヤー１は、被搬送物としてのワークＷを搬送方向Ｃｖへ所定の速度で移動させるものであり、その上面に載置されている複数のワークＷがそれぞれ所定の速度で搬送方向Ｃｖへ移動される。なお、本実施形態では、搬送方向ＣｖをＸ軸方向とし、搬送方向Ｃｖに直交するとともにコンベヤー１に平行な方向（幅方向）をＹ軸方向としており、説明の便宜上、Ｘ軸方向とＹ軸方向からなる２次元の座標系を定義する。また、コンベヤー１に垂直な方向（上下方向）をＺ軸方向としている。このことから、コンベヤー１に載置されたワークＷは、コンベヤー１による搬送に伴って、Ｘ軸方向に対する位置（Ｘ座標）が搬送方向Ｃｖへ変化される一方、Ｙ軸方向に対する位置（Ｙ座標）は維持される。
【００３１】
カメラ２は、コンベヤー１の一部を撮像領域に含むように当該コンベヤー１の上方に配置されており、コンベヤー１に載置されたワークＷを撮像可能になっている。カメラ２の撮像領域２ａ（図３参照）は、Ｘ軸方向とＹ軸方向に沿う略矩形状に設けられている。この撮像領域２ａは、コンベヤー１の搬送方向ＣｖたるＸ軸方向には予め定められた長さを有し、Ｙ軸方向にはコンベヤー１の幅を含む長さを有するように設定されている。これにより、カメラ２は、コンベヤー１が搬送方向Ｃｖに移動するとき、コンベヤー１が撮像領域２ａのＸ軸方向の長さと同じ距離だけ移動する毎にコンベヤー１の上面を撮像することで、コンベヤー１の上面をそこに載置されているワークＷとともにもれなく撮像することができる。
【００３２】
エンコーダー３は、コンベヤー１の搬送方向Ｃｖ（Ｘ軸方向）への移動量（ワークＷの搬送量）を逐次測定する。
上流側及び下流側のロボット４，５はいずれも、いわゆるスカラーロボットであって、垂直軸を有する関節により連結される２本の水平アームからなり、連結された２本の水平アームを支持する基台部に第１関節が設けられ、２本の水平アームの間に第２関節が設けられている。各関節には当該関節を駆動させるモーター４ａ（図２参照）がそれぞれ設けられている。上流側及び下流側のロボット４，５はそれぞれ、その基台部がコンベヤー１の一側に設置されており、２本の水平アームの先端にあるそれぞれの作業部Ｐ０の各可動限界ＲＡ１，ＲＡ２（図３参照）にコンベヤー１の幅を含むようになっている。なお、上流側及び下流側のロボット４，５の各関節は水平アームを旋回運動させることから、それぞれのアーム先端の作業部Ｐ０の各可動限界ＲＡ１，ＲＡ２は円弧状に設定されるようになっている。なお、本実施形態では、上流側のロボット４と下流側のロボット５は、その構造や可動特性などが同様のスカラーロボットである。
【００３３】
各作業部Ｐ０はそれぞれ、コンベヤー１に対して上下移動（Ｚ軸方向への移動）が可能になっているとともに、ワークＷの把持装置やワークＷの加工装置などの各種ツールの取り付けが可能となっている。これにより、上流側及び下流側のロボット４，５はそれぞれ、ツールの設置された作業部Ｐ０をコンベヤー１上に配置させて下降させることにより、作業部Ｐ０を介してコンベヤー１によって搬送されているワークＷに所定の作業をすることができるようになっている。また、作業部Ｐ０を上昇させておくことによって、作業部Ｐ０をコンベヤー１上のワークＷに干渉させることなく移動させることができるようになっている。
【００３４】
ロボットコントローラー６は、上流側及び下流側のロボット４，５を一対としてかつ、各別に駆動制御する制御装置であり、ロボットを目標位置に移動させる位置決め制御や、ロボットを移動しているワークＷに追従させる追従制御などのロボットに対する各種制御を行なう。すなわち、ロボットコントローラー６は、各ロボット毎に、ロボットを目標位置まで移動させるための軌道を算出し、算出された軌道に沿うように当該ロボットを駆動制御する。このようなことにより、コンベヤー１にて搬送されているワークＷに対して上流側及び下流側のロボット４，５をそれぞれ追従動作させることができる。
【００３５】
ロボットコントローラー６には、予めもしくは逐次、上流側及び下流側のロボット４，５の駆動に必要とされる各種データが設定されたり、入力されたりするようになっている。そのように設定や入力された各種データに基づいて、ロボットコントローラー６は、上流側及び下流側のロボット４，５を駆動制御するための各種データを設定したり、算出したりする。各種データは、例えばユーザーインターフェース装置から設定されたり、ロボットシステムに設置される各種センサーから入力されたりするようになっている。なお本実施形態では、ロボットコントローラー６には予め、上流側及び下流側のロボット４，５の構造や動作特性などを示すロボットデータ、コンベヤー１に対するカメラ２、上流側のロボット４、下流側のロボット５との各相対位置関係を示す各種位置データ、及びワークＷの種類や形状を示すワークデータなどが設定されている。そして、これらロボットデータ、各種位置データ及びワークデータが上流側及び下流側のロボット４，５の駆動制御に用いられる。
【００３６】
より具体的には、ロボットコントローラー６は、上流側及び下流側のロボット４，５のそれぞれについて、ロボットデータなどに基づいて各関節の角度を調整してそれぞれの作業部Ｐ０を所定の軌道に沿って移動させることにより、当該作業部Ｐ０を目標位置に移動させたり、所定の速度で移動させたりする。例えば、ロボットコントローラー６は、上流側のロボット４を駆動制御して、その作業部Ｐ０をコンベヤー１に搬送されるワークＷの中心位置Ｐ１に移動させて近接した状態となるように追従させる。そして、上流側のロボット４の作業部Ｐ０の把持装置にワークＷを把持させてから作業台７の配置位置Ｐ２まで移動させて、把持されたワークＷを配置位置Ｐ２に載置させることができる。また例えば、ロボットコントローラー６は、下流側のロボット５を駆動制御して、上記上流側のロボット４と同様に、その作業部Ｐ０をコンベヤー１に搬送されるワークＷの中心位置Ｐ１に移動させて近接した状態となるように追従させる。そして、下流側のロボット５の作業部Ｐ０の把持装置にワークＷを把持させてから作業台８の配置位置Ｐ３まで移動させて、把持されたワークＷを配置位置Ｐ３に載置させることができる。
【００３７】
このロボットコントローラー６は、中央演算処理装置（ＣＰＵ）、記憶装置（不揮発性メモリ、揮発性メモリなど）を有するマイクロコンピュータを中心に構成されており、メモリに格納されている各種データ及びプログラムに基づいて各種制御を実行する。
【００３８】
図２に示すように、ロボットコントローラー６は、そのＣＰＵにて、追従順番決定部１
２、ワーク位置検出部１４、搬送量検出部１６、追従対象検出部１７、第１及び第２の追従指令値生成部２０，２２、第１及び第２のモーター制御部２１，２３などの演算処理を実行する。また、ロボットコントローラー６は、その記憶装置に、ワーク位置記憶部１３及び追従領域設定部１５を備えている。
【００３９】
搬送量検出部１６は、エンコーダー３から入力されるコンベヤーパルスの積算によるコンベヤーパルス数を検出し、当該検出されたコンベヤーパルス数と予め設定された単位コンベヤーパルスあたりの搬送量との積によりコンベヤー１の搬送量を求める。詳述すると、図４に示すように、「所定のタイミングｎ」にて、搬送量検出部１６は、エンコーダー３の位置におけるコンベヤー１の搬送量を、Ｘ軸方向については「Ｘ０ｎ」、Ｙ軸方向については「Ｙ０（定数「０」）」と算出する。そして、当該算出された搬送量を追従順番決定部１２やワーク位置検出部１４、追従対象検出部１７に伝達する。なお、説明の便宜上、このときのエンコーダー３の位置におけるコンベヤー１の搬送量を（Ｘ０ｎ，Ｙ０）として示す。また、搬送量Ｘ０ｎの「ｎ」は特定の一のタイミング（時刻）を表す符号とし、この符号が異なる場合には異なるタイミングであるものとする。
【００４０】
ワーク位置検出部１４は、カメラ２が撮像した画像に画像認識処理などを施して、当該画像に含まれるコンベヤー１上のワークＷの初期位置（Ｘ軸方向の座標及びＹ軸方向の座標）を求めて（ワーク初期位置認識工程）、その初期位置の情報を追従順番決定部１２に伝達する。詳述すると、ワーク位置検出部１４は、例えば複数のワークＷのうち撮像領域２ａに含まれることとなった各ワークＷ１，Ｗ２，Ｗ３について、撮像領域２ａに定義された撮像原点２ｂに対する相対位置（相対座標）を求める。すなわち、図４に示すように、撮像時のワークＷ１の相対位置を、Ｘ座標がｄ１、Ｙ座標がｙ１と求め、同じくワークＷ２の相対位置を、Ｘ座標がｄ２、Ｙ座標がｙ２と求め、同じくワークＷ３の相対位置を、Ｘ座標がｄ３、Ｙ座標がｙ３と求める。また、エンコーダー３から撮像領域２ａに定義された撮像原点２ｂまでの間を距離Ｌ１（定数）と定義すると、撮像原点２ｂにおけるコンベヤー１の搬送量を（Ｘ０ｎ−Ｌ１，Ｙ０）と表すことができる。すなわち、本実施形態では、撮像原点２ｂのＸ軸座標はエンコーダー３のＸ軸座標より距離Ｌ１だけ小さくなる。これらのことから、ワークＷ１の初期位置は（Ｘ０ｎ−Ｌ１＋ｄ１，ｙ１）として表され、これをワークＷ１の初期位置（ｘ１，ｙ１）と表す。同様に、ワークＷ２の初期位置は（Ｘ０ｎ−Ｌ１＋ｄ２，ｙ２）と表され、これをワークＷ２の初期位置（ｘ２，ｙ２）と表し、ワークＷ３の初期位置は（Ｘ０ｎ−Ｌ１＋ｄ３，ｙ３）を表され、これをワークＷ３の初期位置（ｘ３，ｙ３）と表す。なお、本実施形態では、距離Ｌ１は上述のｄ１，ｄ２，ｄ３よりも大きいことから、各ワークＷ１，Ｗ２，Ｗ３の初期位置のＸ軸座標はエンコーダー３の位置よりも小さい値となる。ワークＷ１の情報には少なくともその初期位置（ｘ１，ｙ１）が含まれ、ワークＷ２の情報にも少なくともその初期位置（ｘ２，ｙ２）が含まれ、ワークＷ３の情報にも少なくともその初期位置（ｘ３，ｙ３）が含まれる。
【００４１】
追従領域設定部１５には、上流側及び下流側のロボット４，５のそれぞれについて、ロボットがワークＷに対して追従動作を開始できる追従領域が、当該追従領域を設定するための追従領域設定工程により設定されている。追従領域設定部１５は、上流側のロボット４の追従領域を設定する第１追従領域記憶部１５ａと、下流側のロボット５の追従領域を設定する第２追従領域記憶部１５ｂとを備えている。この追従領域は、ロボットがワークＷに対して追従動作を行うための領域としてコンベヤー１上に設定される。
【００４２】
本実施形態では、追従領域は、複数の指示点を含むように予め設定された直線により区画される。図３に示すように、上流側のロボット４の追従領域は、上流側のロボット４の可動限界ＲＡ１内にある、第１境界ＢＬ１と、第２境界ＢＬ２と、コンベヤー１の各側線１ａ，１ｂとによって囲まれる範囲として設定される。第１境界ＢＬ１は、コンベヤー１
の搬送方向Ｃｖの上流側に該コンベヤー１を横切るように設けられており、第２境界ＢＬ２は、コンベヤー１の搬送方向Ｃｖの下流側に該コンベヤー１を横切るように設けられている。またコンベヤー１の各側線１ａ，１ｂは、コンベヤー１の幅の両側にそれぞれ対応する。換言すると、第１境界ＢＬ１は、コンベヤー１の側線１ｂとロボット４の搬送方向Ｃｖ上流側の可動限界ＲＡ１とが交差する指示点Ｐ１１と、コンベヤー１の側線１ａとロボット４の搬送方向Ｃｖ上流側の可動限界ＲＡ１とが交差する指示点Ｐ１２とを結ぶ直線として設定される。また、第２境界ＢＬ２は、コンベヤー１の側線１ｂとロボット４の搬送方向Ｃｖ下流側の可動限界ＲＡ１内の指定端点Ｐ３１と、コンベヤー１の側線１ａとロボット４の搬送方向Ｃｖ下流側の可動限界ＲＡ１内の指定端点Ｐ３２とを結ぶ直線として設定される。すなわち、上流側のロボット４の追従領域は、各指示点Ｐ１１，Ｐ１２及び各指定端点Ｐ３２，Ｐ３１とを結び囲まれる範囲に設定される。
【００４３】
一方、下流側のロボット５の追従領域は、下流側のロボット５の可動限界ＲＡ２内にある、第１境界ＢＬ３と、第２境界ＢＬ４と、コンベヤー１の各側線１ａ，１ｂとによって囲まれる範囲として設定される。第１境界ＢＬ３は、コンベヤー１の搬送方向Ｃｖの上流側にコンベヤー１を横切るように設けられており、第２境界ＢＬ４は、コンベヤー１の搬送方向Ｃｖの下流側にコンベヤー１を横切るように設けられている。換言すると、第１境界ＢＬ３は、コンベヤー１の側線１ａとロボット５の搬送方向Ｃｖ上流側の可動限界ＲＡ２とが交差する指示点Ｐ４１と、コンベヤー１の側線１ｂとロボット５の搬送方向Ｃｖ上流側の可動限界ＲＡ２とが交差する指示点Ｐ４２とを結ぶ直線として設定される。また、第２境界ＢＬ４は、コンベヤー１の側線１ａとロボット５の搬送方向Ｃｖ下流側の可動限界ＲＡ２内の指定端点Ｐ６１と、コンベヤー１の側線１ｂとロボット５の搬送方向Ｃｖ下流側の可動限界ＲＡ２内の指定端点Ｐ６２とを結ぶ直線として設定される。すなわち、下流側のロボット５の追従領域は、各指示点Ｐ４１，Ｐ４２及び各指定端点Ｐ６２，Ｐ６１とを結び囲まれる範囲に設定される。
【００４４】
上記の各指示点Ｐ１１，Ｐ１２，Ｐ４１，Ｐ４２は、上流側及び下流側のロボット４，５の各作業部Ｐ０を、例えば、実際に移動させた位置（点）が教示されるティーチングにより設定される（追従領域設定工程）。また、ロボットコントローラー６としては、このティーチングの際に、上流側及び下流側のロボット４，５を当該指示点に作業部Ｐ０を配置させるときの各関節の角度も記憶する。また、上流側のロボット４の追従領域にあって、コンベヤー１の上流側に設けられる第１境界ＢＬ１を上流側のロボット４の上流側境界として設定する（境界設定工程）。同様に、下流側のロボット５の追従領域にあって、コンベヤー１の上流側に設けられる第１境界ＢＬ３を下流側のロボット５の上流側境界として設定する（境界設定工程）。
【００４５】
すなわち、上流側のロボット４にあっては、第１境界ＢＬ１は、ワークＷがコンベヤー１に搬送されながら上流側のロボット４の追従領域に入るときに通過する上流側境界となる。一方、ワークＷがコンベヤー１に搬送されながら該追従領域から出るときに通過する第２境界ＢＬ２は、下流側境界線となる。同様に、下流側のロボット５にあっては、第１境界ＢＬ３は、ワークＷがコンベヤー１に搬送されながら下流側のロボット５の追従領域に入るときに通過する上流側境界となる。一方、ワークＷがコンベヤー１に搬送されながら該追従領域から出るときに通過する第２境界ＢＬ４は、下流側境界線となる。
【００４６】
追従順番決定部１２は、上流側及び下流側のロボット４，５のそれぞれに対して各ロボットがワークＷに対して追従動作を行う順番をそれぞれ計算する。すなわち、上流側のロボット４がワークＷに対して追従動作を行う順番（追従順番）を、ワークＷの現在位置と上流側のロボット４の上流側境界との間の距離に基づいて随時設定する。また、下流側のロボット５がワークＷに対して追従動作を行う順番（追従順番）を、ワークＷの現在位置と下流側のロボット５の上流側境界との間の距離に基づいて随時設定する。また、追従動
作を行うべきワークＷから除外されたワークＷに対しては当該ワークＷを追従順番から除外する処理を行う。なお、各ロボット４，５の追従順番を定める計算や方法については、後で詳しく述べる。
【００４７】
ワーク位置記憶部１３は、追従順番決定部１２で計算された上流側及び下流側のロボット４，５の追従順番を記憶するものであり、追従順番決定部１２により読み書き可能になっているとともに、追従対象検出部１７により読み出し可能になっている。ワーク位置記憶部１３は、第１追従順番記憶部１３ａと第２追従順番記憶部１３ｂとを備えており、第１追従順番記憶部１３ａには、上流側のロボット４の追従順番が登録され、第２追従順番記憶部１３ｂには、下流側のロボット５の追従順番が登録される。
【００４８】
追従対象検出部１７は、所定の実行周期で、ワークＷの現在位置と追従領域設定部１５に記憶された追従領域とを比較する。具体的には、ワークＷの現在位置が上流側のロボット４の上流境界線（第１境界ＢＬ１）を越えて追従領域に進入したとき、当該ワークＷを上流側のロボット４の追従対象として検出する。一方、ワークＷの現在位置が上流側のロボット４の下流側境界（第２境界ＢＬ２）を過ぎて追従領域から逸脱したことなどにより、当該ワークＷを上流側のロボット４の追従対象外として検出する。同様にして、ワークＷの現在位置が下流側のロボット５の上流境界線（第１境界ＢＬ３）を越えて追従領域に進入したとき、当該ワークＷを下流側のロボット５の追従対象として検出する。一方、ワークＷの現在位置が下流側のロボット５の下流側境界（第２境界ＢＬ４）を過ぎて追従領域から逸脱したことなどにより、当該ワークＷを下流側のロボット５の追従対象外として検出する。そして、上流側のロボット４の追従対象として検出されたワークＷを順次、第１の追従指令値生成部２０に伝達し、下流側のロボット５の追従対象として検出されたワークＷを順次、第２の追従指令値生成部２２に伝達する。また、追従対象外として検出されたワークＷを追従順番決定部１２や第１もしくは第２の追従指令値生成部２０，２２に伝達する。
【００４９】
第１及び第２の追従指令値生成部２０，２２は、追従対象であるワークＷに作業部Ｐ０を追従させるための軌道を生成するとともに、当該軌道を移動するための各関節の関節角度を計算する。なお、本実施形態では、軌道は、コンベヤー１の搬送量（コンベヤ１の速度）を考慮して生成される。また、第１及び第２の追従指令値生成部２０，２２は、生成した軌道（各関節の角度）をモーター指令値（パルス）に変換して出力する。これにより第１の追従指令値生成部２０から出力されたモーター指令値が当該モーター指令値に従って各関節のモーター４ａを制御する第１のモーター制御部２１に伝達され、上流側のロボット４が駆動制御される。また、第２の追従指令値生成部２２から出力されたモーター指令値が当該モーター指令値に従って各関節のモーター５ａを制御する第２のモーター制御部２３に伝達され、下流側のロボット５が駆動制御される。
【００５０】
例えば、第１の追従指令値生成部２０は、上流側のロボット４を軌道に沿わせるための各関節の関節角度を、第１のモーター制御部２１によるモーター４ａの制御周期に応じたサンプリングタイム毎の目標関節角度として第１のモーター制御部２１に出力する。同様に、第２の追従指令値生成部２２は、下流側のロボット５を軌道に沿わせるための各関節の関節角度を、第２のモーター制御部２３によるモーター５ａの制御周期に応じたサンプリングタイム毎の目標関節角度として第２のモーター制御部２３に出力する。
【００５１】
このように、第１及び第２の追従指令値生成部２０，２２は、軌道を生成し、その軌道に沿うための目標関節角度をサンプリングタイム周期で繰り返し算出する。そして、各ロボット４，５にワークＷへの追従動作を終了させたとき、当該ワークＷが作業対象外となった旨を追従対象検出部１７や追従順番決定部１２に伝達する。一方、第１及び第２の追従指令値生成部２０，２２は、追従対象検出部１７からワークＷが作業対象外とされた旨
が伝達されたとき、当該ワークＷに対する追従処理を終了させるようにもなっている。
【００５２】
第１のモーター制御部２１は、第１の追従指令値生成部２０から入力されたモーター指令値に基づいて上流側のロボット４の各関節のモーター４ａを駆動制御して、上流側のロボット４をワークＷに対して追従動作させる。また第２のモーター制御部２３は、第２の追従指令値生成部２２から入力されたモーター指令値に基づいて下流側のロボット５の各関節のモーター５ａを駆動制御して、下流側のロボット５をワークＷに対して追従動作させる。
【００５３】
次に、上流側及び下流側のロボット４，５の追従領域と、それら追従領域の設定方法について説明する。
上述のように、上流側のロボット４の追従領域は、上流側のロボット４の第１境界ＢＬ１及び第２境界ＢＬ２と、コンベヤー１の各側線１ａ，１ｂとによって囲まれる範囲に設定される。また、下流側のロボット５の追従領域は、上流側のロボット４の追従領域に対してコンベヤー１の搬送方向Ｃｖの下流に隣接した領域に、第１境界ＢＬ３と、第２境界ＢＬ４と、コンベヤー１の各側線１ａ，１ｂとによって囲まれる範囲に設定される。なお、下流側のロボット５の追従領域は、上流側のロボット４の追従領域がコンベヤー１の幅方向の中心線を中心に反転された領域と同様に設定される領域であることから、説明の便宜上、以下では下流側のロボット５の追従領域の詳細な説明については割愛する。
【００５４】
ところで、上流側のロボット４の第２境界ＢＬ２は、２つの指定端点Ｐ３１と指定端点Ｐ３２を結ぶ直線として設定されている。指定端点Ｐ３１は、コンベヤー１の側線１ｂとロボット４の搬送方向Ｃｖ下流側の可動限界ＲＡ１とが交差する指示点Ｐ２１が当該可動限界ＲＡ１内に距離Ｓ２１だけ移動した点として設定されている。また、指定端点Ｐ３２は、コンベヤー１の側線１ａと同可動限界ＲＡ１とが交差する指示点Ｐ２２が当該可動限界ＲＡ１内に距離Ｓ２２だけ移動した点として設定されている。本実施形態では、各距離Ｓ２１，Ｓ２２は略等しい長さに設定されている。
【００５５】
各距離Ｓ２１，Ｓ２２は、その位置において搬送方向Ｃｖに搬送されているワークＷに対して上流側のロボット４が追従動作を開始しても、当該追従動作を可動限界ＲＡ１内で終了させることのできる距離である。すなわち、各距離Ｓ２１，Ｓ２２は、上流側のロボット４の可動限界ＲＡ１内の位置と、当該位置から下流可動限界との間に予め設定される距離である。このことから、距離Ｓ２１，Ｓ２２は、コンベヤー１の速度や、ワークＷへの上流側のロボット４の追従能力や、当該上流側のロボット４の作業内容などによって、適宜変更される値であり、それら値は、当該上流側のロボット４の動作から測定されたり、演算式やシミュレーションなどから算出されるなどして設定される。すなわち、第２境界ＢＬ２は、上流側のロボット４の可動限界ＲＡ１の境界との間に、上流側のロボット４の追従動作に最小限必要とされる距離Ｓ２１や距離Ｓ２２に一致する距離もしくは、それより長い距離を有している。
【００５６】
このようなことから、可動限界ＲＡ１に含まれるものの追従領域には含まれない、上流側のロボット４の第１境界ＢＬ１と、上流側の可動限界ＲＡ１とにより区画される領域の面積が小さく設定されるようになり上流側のロボット４の可動限界ＲＡ１が有効利用される。また、可動限界ＲＡ１に含まれるものの追従領域には含まれない、上流側のロボット４の第２境界ＢＬ２と、下流側の可動限界ＲＡ１と、各側線１ａ，１ｂとにより区画される領域の面積を小さくするように設定することで、上流側のロボット４の可動限界ＲＡ１が有効利用される。なお、本実施形態では、各距離Ｓ２１，Ｓ２２は等距離に設定されているが、これらの距離Ｓ２１，Ｓ２２は、その条件に応じて各別の距離に異なる値に設定されてもよい。
【００５７】
下流側のロボット５の追従領域は、上述のように上流側のロボット４と同様であり、２つの指示点Ｐ４１，Ｐ４２とそれらを結ぶ第１境界ＢＬ３はそれぞれ、上流側のロボット４の２つの指示点Ｐ１１，Ｐ１２とそれらを結ぶ第１境界ＢＬ１に対応している。また、下流側のロボット５の２つの指示点Ｐ５１，Ｐ５２及び２つの指定端点Ｐ６１，Ｐ６２はそれぞれ、上流側のロボット４の２つの指示点Ｐ２１，Ｐ２２及び２つの指定端点Ｐ３１，Ｐ３２に対応している。さらに、下流側のロボット５の各距離Ｓ５１，Ｓ５２及び第２境界ＢＬ４はそれぞれ、上流側のロボット４の各距離Ｓ２１，Ｓ２２及び第２境界ＢＬ２に対応している。
【００５８】
ところで、本実施形態では、上流側のロボット４の各指示点Ｐ１１，Ｐ１２，Ｐ２１，Ｐ２２は上流側のロボット４の作業部Ｐ０を当該位置に実際に移動させる教示（ティーチング）によってロボットコントローラー６に設定されるようになっている。すなわち、第１境界ＢＬ１の指示点Ｐ１１は、上流側のロボット４の作業部Ｐ０がコンベヤー１の側線１ｂと当該ロボット４の上流側の可動限界ＲＡ１との交点まで、例えば手動で移動されることによって設定される。同様に、第１境界ＢＬ１の指示点Ｐ１２は、ロボット４の作業部Ｐ０がコンベヤー１の側線１ａと当該ロボット４の上流側の可動限界ＲＡ１との交点まで、例えば手動で移動されることによって設定される。また、第２境界ＢＬ２の指示点Ｐ２１は、上流側のロボット４の作業部Ｐ０がコンベヤー１の側線１ｂと当該ロボット４の下流側の可動限界ＲＡ１との交点まで、例えば手動により移動されることによって設定される。同様に、第２境界ＢＬ２の指示点Ｐ２２は、ロボット４の作業部Ｐ０がコンベヤー１の側線１ａと当該ロボット４の下流側の可動限界ＲＡ１との交差点まで、例えば手動により移動されることによって設定される。これにより、指示点Ｐ２１に基づく指定端点Ｐ３１と、指示点Ｐ２２に基づく指定端点Ｐ３２とがそれぞれ設定可能となる。
【００５９】
下流側のロボット５の各指示点Ｐ４１，Ｐ４２，Ｐ５１，Ｐ５２は、下流側のロボット５の作業部Ｐ０を当該位置に実際に移動させる教示（ティーチング）によってロボットコントローラー６に設定されるようになっている。この下流側のロボット５の各指示点Ｐ４１，Ｐ４２，Ｐ５１，Ｐ５２のティーチングについても、上流側のロボット４の各指示点Ｐ１１，Ｐ１２，Ｐ２１，Ｐ２２のティーチングと同様であるので、その説明を割愛する。
【００６０】
次に、上流側及び下流側のロボット４，５がワークＷに対して追従動作を行う順番（追従順番）の決定について説明する。
まず、上流側のロボット４の追従順番の決定について図にしたがって説明する。図５は、上流側のロボット４の第１境界ＢＬ１に対するワークＷの距離について模式的に示す図であり、図６は、追従順番を設定する工程を示すフローチャートである。また、図７は、上流側のロボット４の追従順番の決定についてその概要を示す図である。
【００６１】
追従順番決定部１２は、所定のタイミングにおいて各ワークＷの現在位置と上流側のロボット４の第１境界ＢＬ１との間の距離を求めて、当該距離に基づいて上流側のロボット４の追従順番を決定する（第１追従順番決定工程）。例えば、「所定のタイミングｍ」における、上流側のロボット４の第１境界ＢＬ１と各ワークＷの現在位置とから、各ワークＷの現在位置と上流側のロボット４の第１境界ＢＬ１との間の距離を算出する。
【００６２】
図５に示すように、上流側のロボット４の第１境界ＢＬ１は数式にて「ｙ＝ａ１・ｘ＋ｃ１」として表されるものとする。すなわち、第１境界ＢＬ１は、上流側のロボット４の第１境界ＢＬ１の指示点Ｐ１１の位置を表す座標が（ｃ１，０）かつ、傾きが「ａ１」である、Ｘ軸方向に傾きを有する直線である。なお、「所定のタイミングｍ」において、エンコーダー３と指示点Ｐ１１との間のＸ軸方向の距離を距離Ｌ２（定数）と定義し、エンコーダー３により検出されるコンベヤー１の搬送量を（Ｘ０ｍ，Ｙ０）と表すと、指示点
Ｐ１１のＸ座標「ｃ１」はエンコーダー３の搬送量を用いて「Ｘ０ｍ−Ｌ２」とも表される。
【００６３】
各ワークＷ１，Ｗ２，Ｗ３の現在位置は、各ワークの初期位置に現在までの搬送量の差を加えて算出される（ワーク位置計算工程）。すなわち、「所定のタイミングｍ」におけるワークＷ１の現在位置は、ワークＷ１の初期位置としての（Ｘ０ｎ−Ｌ１＋ｄ１，ｙ１）に各軸における搬送量の差（Ｘ０ｍ−Ｘ０ｎ，０）をそれぞれ加えることにより、（Ｘ０ｍ−Ｌ１＋ｄ１，ｙ１）として表される。なお、これをワークＷ１の「所定のタイミングｍ」における現在位置（ｘ１１，ｙ１）として表す。同様に、各ワークＷ２，Ｗ３の現在位置として表される（Ｘ０ｍ−Ｌ１＋ｄ２，ｙ２），（Ｘ０ｍ−Ｌ１＋ｄ３，ｙ３）は、それぞれ「所定のタイミングｍ」における現在位置（ｘ１２，ｙ２），（ｘ１３，ｙ３）として表す。
【００６４】
そしてこれらの各現在位置に基づいて、第１境界ＢＬ１と各ワークＷ１，Ｗ２，Ｗ３との間の各距離Ｄ１１，Ｄ１２，Ｄ１３がそれぞれ算出される。なお、本実施形態では、第１境界ＢＬ１より上流側の距離を負の値とし、第１境界ＢＬ１より下流側の距離を正の値とするように各距離Ｄ１１，Ｄ１２，Ｄ１３を算出する。すなわち、第１境界ＢＬ１とワークＷ１との間の距離Ｄ１１は、Ｙ軸座標「ｙ１」における、ワークＷ１のＸ軸座標「ｘ１１」と第１境界ＢＬ１のＸ軸座標「（ｙ１−ｃ１）／ａ１」との差から算出される。これにより、距離Ｄ１１は、「ｘ１１−（ｙ１−ｃ１）／ａ１」と示される式から算出される。同様にして、第１境界ＢＬ１とワークＷ２との間の距離Ｄ１２は、「ｘ１２−（ｙ２−ｃ１）／ａ１」と示される式から算出され、第１境界ＢＬ１とワークＷ３との間の距離Ｄ１３は、「ｘ１３−（ｙ３−ｃ１）／ａ１」と示される式から算出される。そして、このように算出された距離Ｄ１１，Ｄ１２，Ｄ１３の値に基づいて、上流側のロボット４の追従順番が決定される。
【００６５】
具体的には、図６及び図７に示すように、追従順番決定部１２にて上流側のロボット４の追従順番が決定される。なお、ワークの距離はワーク位置検出部１４により検出されたタイミングにて算出されて、また、当該ワークの距離と比較される他のワークの距離も同じタイミングで算出され、それら算出されたワークの距離の値に基づいて追従順番が決定される。このことから、順番を決定するタイミング毎に、エンコーダー３により検出された現在の搬送量に基づいて比較される双方の距離（Ｄ１１，Ｄ１２，Ｄ１３）が演算されて、それら演算された距離の値の大きさが相互に比較される。
【００６６】
まず、ワーク位置検出部１４によりワークＷ１が最初のワークとして検出されると第１追従順番決定工程が開始され、図６に示すように、追従順番決定部１２は、上流側のロボット４の上流側境界とワークＷ１との間の距離Ｄ１１を算出する（図６のステップＳ１０）。距離Ｄ１１が算出されると、追従順番決定部１２は、算出された距離Ｄ１１の値に基づいてワークＷ１の情報を第１追従順番記憶部１３ａに記憶させる順番を算出する（図６のステップＳ１１）。このとき、図７（ａ）に示すように、ワークＷ１は最初に検出されたワークであるため第１追従順番記憶部１３ａには他のワークの情報が記憶されていないので、追従順番決定部１２は、第１追従順番記憶部１３ａの先頭（「順番１」）をワークＷ１の記憶位置として算出する。また、他のワークの情報が記憶されていないので、追従順番決定部１２は、既存データの移動を実施しないこととして（図６のステップＳ１２）、第１追従順番記憶部１３ａの先頭（「順番１」）にワークＷ１の情報を記憶させる（図６のステップＳ１３）。
【００６７】
次に、ワーク位置検出部１４によりワークＷ２が２番目のワークとして検出されると再び第１追従順番決定工程が開始され、追従順番決定部１２は、上流側境界とワークＷ２との間の距離Ｄ１２と、これと比較するワークＷ１の距離Ｄ１１とをそれぞれ算出する（図
６のステップＳ１０）。そして、追従順番決定部１２は、算出された距離Ｄ１２の値に基づいてワークＷ２の情報を第１追従順番記憶部１３ａに記憶させる順番を算出する（図６のステップＳ１１）。このとき、図７（ｂ）に示すように、第１追従順番記憶部１３ａにはワークＷ１の情報が記憶されているから、ワークＷ１の距離Ｄ１１の値とワークＷ２の距離Ｄ１２の値とを比較して、距離の値が大きい（負の距離が短い）ワークの順番が小さくなるようにワークＷ２の記憶順番を算出する。本実施形態では、距離Ｄ１２の値が距離Ｄ１１の値よりも小さいので、ワークＷ２はワークＷ１の次の「順番２」が記憶位置として算出される。また、ワークＷ１の情報を移動させる必要がないので、追従順番決定部１２は、既存データの移動を実施しないこととして（図６のステップＳ１２）、第１追従順番記憶部１３ａの「順番２」にワークＷ２の情報を記憶させる。
【００６８】
その次に、ワーク位置検出部１４によりワークＷ３が３番目のワークとして検出されると再び第１追従順番決定工程が開始され、追従順番決定部１２は、上流側境界とワークＷ３との間の距離Ｄ１３と、これと比較するワークＷ１の距離Ｄ１１及びワークＷ２の距離Ｄ１２とをそれぞれ算出する（図６のステップＳ１０）。そして、追従順番決定部１２は、算出された距離Ｄ１３の値に基づいてワークＷ３の情報を第１追従順番記憶部１３ａに記憶させる順番を算出する（図６のステップＳ１１）。このとき、図７（ｃ）に示すように、第１追従順番記憶部１３ａには既に２つのワークＷ１，Ｗ２の情報が記憶されているから、ワークＷ３の距離Ｄ１３の値をワークＷ１の距離Ｄ１１の値及びワークＷ２の距離Ｄ１２の値とそれぞれ比較して、距離の値が大きい（負の距離が短い）ワークの順番が小さくなるようにワークＷ３の記憶順番を算出する。本実施形態では、距離Ｄ１３の値は距離Ｄ１１の値よりも小さく、距離Ｄ１２の値よりも大きいので、ワークＷ３はワークＷ１より後ろ、かつ、ワークＷ２の順番を越えない「順番２」が記憶位置として算出される。このときには、ワークＷ２の情報を元の「順番２」から後の「順番３」に移動させる必要があるので、追従順番決定部１２は、ワークＷ２の順番を「順番２」から「順番３」に移動させて（図６のステップＳ１２）、第１追従順番記憶部１３ａの「順番２」にワークＷ３の情報を記憶させる。
【００６９】
そして、上流側のロボット４によるワークに対する追従動作が、ワークの上流側のロボット４の可動限界ＲＡ１内への進入に基づいて、第１追従順番記憶部１３ａに記憶された順番で行なわれるようになる。なお、本実施形態では、上流側のロボット４により追従動作の行なわれたワークＷ、及び上流側のロボット４の下流側境界を通過したワークは第１追従順番記憶部１３ａから削除されて、それに応じて既存のワークの情報の順番が繰り上げられるようになっている。なお、ワークは上流側のロボット４の下流側境界を通過することにより、その情報が第１追従順番記憶部１３ａから削除されることで当該第１追従順番記憶部１３ａにおいて付与されていた順番が削除されて（順番削除工程）、当該ワークの情報は、一旦、ワーク位置記憶部１３に設けられている一時記憶領域に移動保持される。
【００７０】
そして次に、下流側のロボット５がワークＷに対して追従動作を行う順番（追従順番）について図にしたがって説明する。図８は、下流側のロボット５の第１境界ＢＬ３に対するワークの距離について模式的に示す図であり、図９は、下流側のロボット５の追従順番の決定についてその概要を示す図である。
【００７１】
追従順番決定部１２は、ワークの情報が一時記憶領域に保持されたことを検出すると、当該ワークの情報を取得してそのワークＷの現在位置と下流側のロボット５の第１境界ＢＬ３との間の距離を求めて、当該距離に基づいて下流側のロボット５の追従順番を決定する（第２追従順番決定工程）。例えば、「所定のタイミングｐ」における、下流側のロボット５の第１境界ＢＬ３と各ワークＷの現在位置とから、各ワークＷの現在位置と下流側のロボット５の第１境界ＢＬ３との間の距離を算出する。なお、本実施形態では、追従順
番決定部１２は、第１追従順番決定工程や第２追従順番決定工程を所定の短時間で処理するようになっており、それぞれの工程はそれが必要とされるとき遅滞なく逐次処理されるようになっている。
【００７２】
図８に示すように、下流側のロボット５の第１境界ＢＬ３は数式にて「ｙ＝ａ２・ｘ＋ｃ２」として表されるものとする。すなわち、第１境界ＢＬ３は、下流側のロボット５の第１境界ＢＬ３の指示点Ｐ４１の位置を表す座標が（ｃ２，０）かつ、傾きが「ａ２」である、Ｘ軸方向に傾きを有する直線である。なお、本実施形態では、Ｙ軸方向の値の増加とともにＸ軸方向への値が減少するので、先の「ｃ１」とは異なり、「ｃ２」は負の値となっている。また、「所定のタイミングｐ」において、エンコーダー３と指示点Ｐ４１との間のＸ軸方向の距離を距離Ｌ３（定数）とし、エンコーダー３により検出されるコンベヤー１の搬送量を（Ｘ０ｐ，Ｙ０）と表すと、指示点Ｐ４１のＸ座標「ｃ２」はエンコーダー３の搬送量を用いて「Ｘ０ｐ−Ｌ３」とも表される。
【００７３】
各ワークＷ１，Ｗ２，Ｗ３の「所定のタイミングｐ」における現在位置は、上述の「所定のタイミングｍ」の場合と同様に、各ワークの初期位置に現在までの搬送量の差を加えて算出される。すなわち、ワークＷ１の現在位置は、ワークＷ１の初期位置としての（Ｘ０ｎ−Ｌ１＋ｄ１，ｙ１）に各軸における搬送量の差（Ｘ０ｐ−Ｘ０ｎ，０）をそれぞれ加えることにより、（Ｘ０ｐ−Ｌ１＋ｄ１，ｙ１）として表される。なお、これをワークＷ１の「所定のタイミングｐ」における現在位置（ｘ３１，ｙ１）として表す。同様に、各ワークＷ２，Ｗ３の現在位置として表される（Ｘ０ｐ−Ｌ１＋ｄ２，ｙ２），（Ｘ０ｐ−Ｌ１＋ｄ３，ｙ３）は、それぞれ「所定のタイミングｐ」における現在位置（ｘ３２，ｙ２），（ｘ３３，ｙ３）として表す。
【００７４】
そしてこれらの各現在位置に基づいて、第１境界ＢＬ３と各ワークＷ１，Ｗ２，Ｗ３との間の各距離Ｄ３１，Ｄ３２，Ｄ３３がそれぞれ算出される。第１境界ＢＬ３とワークＷ１との間の距離Ｄ３１は、Ｙ軸座標「ｙ１」における、ワークＷ１のＸ軸座標「ｘ３１」と第１境界ＢＬ３のＸ軸座標「（ｙ１−ｃ２）／ａ２」との差から算出される。すなわち、距離Ｄ３１は、「ｘ３１−（ｙ１−ｃ２）／ａ２」と示される式から算出される。同様にして、第１境界ＢＬ３とワークＷ２との間の距離Ｄ３２は、「ｘ３２−（ｙ２−ｃ２）／ａ２」と示される式から算出され、第１境界ＢＬ３とワークＷ３との間の距離Ｄ３３は、「ｘ３３−（ｙ３−ｃ２）／ａ２」と示される式から算出される。そして、このように算出された距離Ｄ３１，Ｄ３２，Ｄ３３の値に基づいて、下流側のロボット５の追従順番が決定される。
【００７５】
具体的には、図６及び図９に示すように、追従順番決定部１２にて下流側のロボット５の追従順番が決定される。なお、本実施形態では、下流側のロボット５の追従順番は、上流側のロボット４により追従動作が行なわれなかったワークについて決定されるものとする。そこで、先に説明したワークＷ１〜Ｗ３には上流側のロボット４による追従動作が行なわれなかったものとし、それらワークＷ１〜Ｗ３に対して追従順番が決定される場合について例示する。なお、上流側のロボット４による追従動作が行なわれなかったことは上流側のロボット４の下流側境界を通過したワークの順に確定されるので、ここで決定される下流側のロボット５の追従順番は、上流側のロボット４の第２境界ＢＬ２を通過したワークの順に決定される。具体的には、各ワークＷ１〜Ｗ３は上流側のロボット４の第２境界ＢＬ２をワークＷ３，Ｗ１，Ｗ２の順に通過するので、下流側のロボット５による追従順番はワークＷ３，Ｗ１，Ｗ２の順に決定される。このことから、順番を決定するタイミング毎に、エンコーダー３により検出された現在の搬送量に基づいて比較される双方の距離（Ｄ３１，Ｄ３２，Ｄ３３）が演算されて、それら演算された距離の値の大きさが相互に比較される。
【００７６】
まず、ワークＷ３の情報が一時記憶領域に保持されたことが検出されると第２追従順番決定工程が開始され、図６に示すように、追従順番決定部１２は、下流側のロボット５の上流側境界とワークＷ３との間の距離Ｄ３３を算出する（図６のステップＳ１０）。距離Ｄ３３が算出されると、追従順番決定部１２は、算出された距離Ｄ３３の値に基づいてワークＷ３の情報を第２追従順番記憶部１３ｂに記憶させる順番を算出する（図６のステップＳ１１）。このとき、図９（ａ）に示すように、ワークＷ３は最初に検出されたワークであるため第２追従順番記憶部１３ｂには他のワークの情報が記憶されていないので、追従順番決定部１２は、第１追従順番記憶部１３ａの先頭（「順番１」）をワークＷ３の記憶位置として算出する。また、他のワークの情報が記憶されていないので、追従順番決定部１２は、既存データの移動を実施しないこととして（図６のステップＳ１２）、第２追従順番記憶部１３ｂの先頭（「順番１」）にワークＷ３の情報を記憶させる（図６のステップＳ１３）。
【００７７】
次に、ワークＷ１の情報が一時記憶領域に保持されたことが検出されると再び第２追従順番決定工程が開始され、追従順番決定部１２は、上流側境界とワークＷ１との間の距離Ｄ３１と、これと比較するワークＷ３の距離Ｄ３３とをそれぞれ算出する（図６のステップＳ１０）。そして、追従順番決定部１２は、算出された距離Ｄ３１の値に基づいてワークＷ１の情報を第２追従順番記憶部１３ｂに記憶させる順番を算出する（図６のステップＳ１１）。このとき、図９（ｂ）に示すように、第２追従順番記憶部１３ｂにはワークＷ３の情報が記憶されているから、ワークＷ３の距離Ｄ３３の値とワークＷ１の距離Ｄ３１の値とを比較して、距離の値が大きい（負の距離が短い）ワークの順番が小さくなるようにワークＷ１の記憶順番を算出する。本実施形態では、距離Ｄ３１の値が距離Ｄ３３の値よりも小さいので、ワークＷ１はワークＷ３の次の「順番２」が記憶位置として算出される。また、ワークＷ３の情報を移動させる必要がないので、追従順番決定部１２は、既存データの移動を実施しないこととして（図６のステップＳ１２）、第２追従順番記憶部１３ｂの「順番２」にワークＷ１の情報を記憶させる。
【００７８】
その次に、ワークＷ２の情報が一時記憶領域に保持されたことが検出されると再び第２追従順番決定工程が開始され、追従順番決定部１２は、上流側境界とワークＷ２との間の距離Ｄ３２、これと比較するワークＷ３の距離Ｄ３３及びワークＷ１の距離Ｄ３１とをそれぞれを算出する（図６のステップＳ１０）。そして、追従順番決定部１２は、算出された距離Ｄ３２の値に基づいてワークＷ２の情報を第２追従順番記憶部１３ｂに記憶させる順番を算出する（図６のステップＳ１１）。このとき、図９（ｃ）に示すように、第２追従順番記憶部１３ｂには２つのワークＷ３，Ｗ１の情報が記憶されているから、ワークＷ２の距離Ｄ３２の値をワークＷ３の距離Ｄ３３の値及びワークＷ１の距離Ｄ３１の値とそれぞれ比較して、距離の値が大きい（負の距離が短い）ワークの順番が小さくなるようにワークＷ２の記憶順番を算出する。本実施形態では、距離Ｄ３２の値は距離Ｄ３３の値及び距離Ｄ３１のいずれよりも小さいので、ワークＷ２はワークＷ３及びワークＷ１より後ろの位置、すなわち「順番３」が記憶位置として算出される。また、ワークＷ３及びワークＷ１の情報を移動させる必要がないので、追従順番決定部１２は、既存データの移動を実施しないこととして（図６のステップＳ１２）、第２追従順番記憶部１３ｂの「順番３」にワークＷ２の情報を記憶させる。
【００７９】
そして、下流側のロボット５によるワークに対する追従動作が、ワークの下流側のロボット５の可動限界ＲＡ２内への進入に基づいて、第２追従順番記憶部１３ｂに記憶された順番に行なわれるようになる（追従工程）。なお、本実施形態では、下流側のロボット５により追従動作の行なわれたワークＷは第２追従順番記憶部１３ｂから削除されて、それに応じて既存のワークの情報の順番が繰り上げられるようになっている。
【００８０】
以上説明したように、本実施形態のロボットシステムによれば、以下に列記するような
効果が得られるようになる。
（１）上流側のロボット４と下流側のロボット５との各別にワークＷに対して追従動作を行なう順番（追従順番）を決定する。これにより、それら追従順番を各ロボットの上流側境界に対応するかたちに決定することができる。また、上流側のロボット４に対して決定されたワークＷに対して追従動作を行なう順番に関わらず、下流側のロボット５がワークに対して追従動作を行なう順番がワークＷと下流側のロボット５の上流側境界との間の距離により決定できる。このことから、上流側のロボット４と下流側のロボット５とで上流側境界が非平行で、それぞれの上流側境界に進入するワークＷの順番が相違するような場合であれ、下流側のロボット５の追従動作を行なう順番をその上流側境界に適合するように、上流側のロボット４の追従動作を行なう順番とは異なる順番にすることができる。
【００８１】
（２）また、下流側のロボット５が追従動作するワークＷを、上流側のロボット４が追従動作を行なわなかったワークＷとすることで、下流側のロボット５が追従動作すべきワークＷを適正に絞り込むことができるようにもなる。
【００８２】
（３）下流側のロボット５の上流側境界を、ｘの関数としてｙ＝ａ１・ｘ＋ｃ１と定義し、この逆関数をｘ＝（ｙ−ｃ１）／ａ１とした。これにより、ワークＷと下流側のロボット５の上流側境界との間の距離を逆関数と、ワークＷの搬送方向の位置（Ｘ軸方向の座標）及び搬送方向に直交する方向の位置（Ｙ軸方向の座標）とから求めることができるようになる。
【００８３】
（４）ワークＷと下流側のロボット５の上流側境界との間の距離の順に下流側のロボット５がワークＷに対して追従動作を行なう順番を決定するので、当該順番の決定が容易である。
【００８４】
（５）旋回アームの旋回軌道に基づき制約される動作特性を有する多関節型ロボットであるスカラーロボットの採用により当該ロボットの動作特性による制約を考慮した追従領域が設定された場合であれ、下流側のロボット５の追従動作を行なう順番が好適に決定されるようになる。
【００８５】
（６）カメラ２やワーク位置検出部１４からなる画像認識装置などの位置検出装置にて検出されたコンベヤー１に搬送されるワークＷの位置と、エンコーダー３などの搬送量検出装置にて検出されたコンベヤー１の搬送量とに基づいてワークＷの現在位置を逐次追跡（トラッキング）するロボットシステムにもロボットの追従順番の設定ができる。これにより、トラッキングされたワークＷに対する追従動作を行なう順番がロボットの別に決定され、この決定された追従動作を行なう順番に基づいて各ロボット４，５によりワークＷに対する追従動作が好適に行なわれるシステムが構成されるようになる。
【００８６】
（第２の実施形態）
以下、本発明を具体化したロボットシステムの第２の実施形態について図１０に従って説明する。図１０は、本実施形態のロボットシステムに設定されるロボットの上流側境界に対するワークＷの距離について模式的に示した図である。なお、本実施形態のロボットシステムは、第１の実施形態のロボットシステムとロボットの上流側境界が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第１の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。また、本実施形態では、下流側のロボット５には上流側のロボット４の上流側境界（第１境界ＢＬ１３）と同様の上流側境界が設定されるため、以下では、上流側のロボット４の上流側境界（第１境界ＢＬ１３）について説明することとし、説明の便宜上、下流側のロボット５の上流側境界（第１境界）についての説明を割愛する。
【００８７】
追従順番決定部１２は、第１の実施形態にて上流側のロボット４の追従順番を決定する場合と同様に、所定のタイミングにおいて各ワークＷの現在位置と上流側のロボット４の上流側境界との間の距離を求めて、当該距離に基づいて上流側のロボット４の追従順番を決定する（第１追従順番決定工程）。例えば、「所定のタイミングｐ」における、上流側のロボット４の第１境界ＢＬ１３と各ワークＷの現在位置とから、各ワークＷの現在位置と上流側のロボット４の第１境界ＢＬ１３との間の距離を算出する。
【００８８】
図１０に示すように、上流側のロボット４の第１境界ＢＬ１３が数式にて「（ｘ−α）＾２＋ｙ＾２＝ｒ＾２」（但し、「＾２」は二乗を表す記号とする）として表されものとする。すなわち、第１境界ＢＬ１３は、上流側のロボット４の第１境界ＢＬ１３の中心点Ｐαの位置が（α，０）と示されかつ、半径が「ｒ」とされる円の円弧である。なお、「所定のタイミングｑ」において、エンコーダー３と中心点Ｐαとの間のＸ軸方向の距離を距離Ｌα（定数）とし、エンコーダー３により検出されるコンベヤー１の搬送量を（Ｘ０ｑ，Ｙ０）と表すと、中心点ＰαのＸ座標「α」はエンコーダー３の搬送量を用いて「Ｘ０ｑ−Ｌα」と表される。
【００８９】
例えばワークＷ１，Ｗ３の現在位置は、各ワークの初期位置に現在までの搬送量の差を加えたものとして示される（ワーク位置計算工程）。すなわち、「所定のタイミングｑ」におけるワークＷ１の現在位置は、ワークＷ１の初期位置を示す（Ｘ０ｎ−Ｌ１＋ｄ１，ｙ１）に各軸の搬送量の差（Ｘ０ｑ−Ｘ０ｎ，０）をそれぞれ加えることにより、（Ｘ０ｑ−Ｌ１＋ｄ１，ｙ１）として表される。なお、これをワークＷ１の「所定のタイミングｑ」における現在位置（ｘ１５，ｙ１）と表すものとする。同様に、ワークＷ３の現在位置を表す（Ｘ０ｑ−Ｌ１＋ｄ３，ｙ３）は、これを「所定のタイミングｑ」における現在位置（ｘ１６，ｙ３）と表す。
【００９０】
そしてこれらの各現在位置に基づいて、第１境界ＢＬ１３と各ワークＷ１，Ｗ３との間の各距離Ｄ１５，Ｄ１６をそれぞれ算出する。まず、第１境界ＢＬ１３とワークＷ１との間の距離Ｄ１５を、Ｙ軸座標「ｙ１」における、ワークＷ１のＸ軸座標「ｘ１５」と第１境界ＢＬ１３のＸ軸座標「α＋（ｒ＾２−ｙ１＾２）＾（−２）」（但し、「＾（−２）」は平方根を表す記号とする）との差から求める。すなわち、距離Ｄ１５は、「ｘ１５−（α＋（ｒ＾２−ｙ１＾２）＾（−２））」と示される式から算出される。同様にして、第１境界ＢＬ１３とワークＷ３との間の距離Ｄ１６は、「ｘ１６−（α＋（ｒ＾２−ｙ３＾２）＾（−２））」と示される式から算出される。すなわち、このようにして算出された距離Ｄ１５，Ｄ１６の値に基づいて、上流側のロボット４の追従順番が決定される。
【００９１】
また同様に、下流側のロボット５の上流側境界と各ワークＷ１，Ｗ３との間の距離が算出され、このように算出された距離の値に基づいて、下流側のロボット５の追従順番も決定される（第２追従順番決定工程）。
【００９２】
以上説明したように、本実施形態によっても先の第１の実施形態の前記（１）及び（６）の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
【００９３】
（７）上流側のロボット４の上流側境界を、「（ｘ−α）＾２＋ｙ＾２＝ｒ＾２」と定義し、このｘを求める逆関数をｘ＝α＋（ｒ＾２−ｙ１＾２）＾（−２）とした。これにより、上流境界が円弧であってもワークＷと上流側のロボット４の上流側境界との間の距離を求めることができるようになる。また、ワークＷと下流側のロボット５の上流側境界との間の距離も同様に求めることができるようになる。
【００９４】
（第３の実施形態）
以下、本発明を具体化したロボットシステムの第３の実施形態について図１１に従って説明する。図１１は、本実施形態のロボットシステムに設定されるロボットの上流側境界に対するワークＷの距離について模式的に示した図である。なお、本実施形態のロボットシステムは、第１の実施形態のロボットシステムとロボットの上流側境界が相違するものの、その他の構成については同様であることから、以下では主に相違点についての説明をし、第１の実施形態と同様の構成については、説明の便宜上、同一の符号を付し、その説明を省略する。また、本実施形態では、下流側のロボット５には上流側のロボット４の上流側境界（第１境界ＢＬ１４）と同様の上流側境界が設定されるため、以下では、上流側のロボット４の上流側境界（第１境界ＢＬ１４）について説明することとし、説明の便宜上、下流側のロボット５の上流側境界（第１境界）についての説明を割愛する。
【００９５】
追従順番決定部１２は、第１の実施形態にて上流側のロボット４の追従順番を決定する場合と同様に、所定のタイミングにおいて各ワークＷの現在位置と上流側のロボット４の上流側境界との間の距離を求めて、当該距離に基づいて上流側のロボット４の追従順番を決定する（第１追従順番決定工程）。例えば、「所定のタイミングｒ」における、上流側のロボット４の第１境界ＢＬ１４と各ワークＷの現在位置とから、各ワークＷの現在位置と上流側のロボット４の第１境界ＢＬ１４との間の距離を算出する。
【００９６】
図１１に示すように、上流側のロボット４の第１境界ＢＬ１４は、ｙ座標の値が「ｅ（定数）」以下のとき数式にて「ｙ＝ａ３・ｘ＋ｃ３」と表され、ｙ座標の値が「ｅ（定数）」より大きいとき数式にて「ｘ＝ｃ４」として表されるものとする。なお、「ｅ」はコンベヤーの各側線１ａ，１ｂの間の位置に設定されるＹ軸座標の値である。すなわち、第１境界ＢＬ１４は、ｙ座標の値が「ｅ（定数）」以下のとき、上流側のロボット４の第１境界ＢＬ１４の指示点Ｐ１３の位置を表す座標が（ｃ３，０）かつ、傾きが「ａ３」である、Ｘ軸方向に傾きを有する直線である。また、第１境界ＢＬ１４は、ｙ座標の値がｅ（定数）より大きいとき、上流側のロボット４の第１境界ＢＬ１４の指示点Ｐ１４の位置を表す座標（ｃ４，ｅ）に続いてＹ軸方向に沿って側線１ａ方向に延びる直線である。なお、「所定のタイミングｒ」において、エンコーダー３と指示点Ｐ１３との間のＸ軸方向の距離を距離Ｌ４（定数）と定義し、エンコーダー３により検出されるコンベヤー１の搬送量を（Ｘ０ｒ，Ｙ０）と表すと、指示点Ｐ１３のＸ座標「ｃ３」はエンコーダー３の搬送量を用いて「Ｘ０ｒ−Ｌ４」と表される。また、エンコーダー３と指示点Ｐ１４との間のＸ軸方向の距離を距離Ｌ５（定数）と定義すると、「所定のタイミングｒ」における指示点Ｐ１４のＸ座標「ｃ４」はエンコーダー３の搬送量を用いて「Ｘ０ｒ−Ｌ５」と表される。
【００９７】
例えばワークＷ１，Ｗ３の現在位置は、各ワークの初期位置に現在までの搬送量の差を加えたものとして示される（ワーク位置計算工程）。すなわち、「所定のタイミングｒ」におけるワークＷ１の現在位置は、ワークＷ１の初期位置を示す（Ｘ０ｎ−Ｌ１＋ｄ１，ｙ１）に各軸の搬送量の差である（Ｘ０ｒ−Ｘ０ｎ，０）をそれぞれ加えることにより、（Ｘ０ｒ−Ｌ１＋ｄ１，ｙ１）として表される。なお、これをワークＷ１の「所定のタイミングｒ」における現在位置（ｘ１７，ｙ１）と表す。同様に、ワークＷ３の現在位置として表される（Ｘ０ｒ−Ｌ１＋ｄ３，ｙ３）は、これを「所定のタイミングｓ」における現在位置（ｘ１８，ｙ３）と表す。
【００９８】
そしてこれらの各現在位置に基づいて、第１境界ＢＬ１４と各ワークＷ１，Ｗ３との間の各距離Ｄ１７，Ｄ１８をそれぞれ算出する。なお、ワークＷ１のＹ軸座標は「ｅ」以下とし、ワークＷ３のＹ軸座標は「ｅ」よりも大きいものとする。第１境界ＢＬ１４とワークＷ１との間の距離Ｄ１７を、Ｙ軸座標「ｙ１」における、ワークＷ１のＸ軸座標「ｘ１７」と第１境界ＢＬ１４のＸ軸座標「（ｙ１−ｃ３）／ａ３」との差から算出する。すなわち、距離Ｄ１７は、「ｘ１７−（ｙ１−ｃ３）／ａ３」と示される式から算出される。
また、第１境界ＢＬ１４とワークＷ３との間の距離Ｄ１８は、「ｘ１８−ｃ４」と示される式から算出される。すなわち、このようにして算出された距離Ｄ１７，Ｄ１８の値に基づいて、上流側のロボット４の追従順番が決定される。
【００９９】
また同様に、下流側のロボット５の上流側境界と各ワークＷ１，Ｗ３との間の距離が算出され、このように算出された距離に基づいて、下流側のロボット５の追従順番も決定される（第２追従順番決定工程）。
【０１００】
以上説明したように、本実施形態によっても先の第１の実施形態の前記（１）及び（６）の効果と同等もしくはそれに準じた効果が得られるとともに、以下に列記するような効果が得られるようになる。
【０１０１】
（８）上流側のロボット４の上流側境界を、「ｙ≦ｅ」のとき数式にて「ｙ＝ａ３・ｘ＋ｃ３」と表し、「ｙ＞ｅ」のとき「ｘ＝ｃ４」として表し、このｘを求める逆関数をｘ＝（ｙ１−ｃ３）／ａ３：（ｙ≦ｅ）及びｘ＝ｃ４：（ｙ＞ｅ）とすることができる。これにより、上流境界が複数の直線の組み合わせであってもワークＷと上流側のロボット４の上流側境界との間の距離を求めることができるようになる。また、ワークＷと下流側のロボット５の上流側境界との間の距離も同様に求めることができるようになる。
【０１０２】
なお、上記各実施形態は、例えば以下のような態様にて実施することもできる。
・上記各実施形態では、追従順番決定部１２、ワーク位置検出部１４、搬送量検出部１６、追従対象検出部１７、第１及び第２の追従指令値生成部２０，２２、第１及び第２のモーター制御部２１，２３の各処理が全てＣＰＵにて行なわれる場合について例示した。しかしこれに限らず、追従順番決定部、ワーク位置検出部、搬送量検出部、追従対象検出部、第１及び第２の追従指令値生成部、第１及び第２のモーター制御部の各処理の全部又は一部がＣＰＵとは別に設けられた処理装置等により処理されてもよい。また、追従順番決定部、ワーク位置検出部、搬送量検出部、追従対象検出部、第１及び第２の追従指令値生成部、第１及び第２のモーター制御部などで行なわれる各処理を、複数のＣＰＵ等の処理装置により分散処理するようにしてもよい。
【０１０３】
・上記各実施形態では、ロボットコントローラー６にワーク位置記憶部１３と追従領域設定部１５とが設けられる場合について例示した。しかしこれに限らず、ワーク位置記憶部や追従領域設定部は、必要な情報が保持されるのであれば、ロボットコントローラーとの通信可能とされているロボットコントローラーとは別個の記憶装置に設けられてもよい。また、ワーク位置記憶部や追従領域設定部などが複数の記憶装置に分散して設けられてもよい。
【０１０４】
・上記各実施形態では、ロボットコントローラー６に第１及び第２のモーター制御部２１，２３が共に設けられている場合について例示した。しかしこれに限らず、ロボットコントローラーによる制御ができる態様であれば、少なくとも一つのモーター制御部がロボットコントローラーに対して独立して設けられていてもよい。この場合、ロボットコントローラーは追従指令値生成部からのモーター指令値を対応するモーター制御部に伝達し、モーター指令値を受けたモーター制御部が同モーター指令値に従って各関節のモーターを制御するようにすればよい。
【０１０５】
・上記各実施形態では、各指示点Ｐ１１〜Ｐ１４，Ｐ２１，Ｐ２２，Ｐ４１，Ｐ４２，Ｐ５１，Ｐ５２が手動のティーチングにより設定される場合について例示した。しかしこれに限らず、各指示点は、ロボットの先端位置（作業部）とコンベヤーの幅等とを検出可能なセンサーなどを用いることなどにより、ロボットの先端を自動的にティーチングさせて設定するようにしてもよい。
【０１０６】
・上記各実施形態では、各指示点Ｐ１１〜Ｐ１４，Ｐ２１，Ｐ２２，Ｐ４１，Ｐ４２，Ｐ５１，Ｐ５２がティーチングにより設定される場合について例示した。しかしこれに限らず、各指示点は、ロボットの可動限界とコンベヤーの配置位置などから演算により算出されるようにしてもよいし、当該指示点の座標そのものが直接設定されるようにしてもよい。
【０１０７】
・上記各実施形態では、各指定端点Ｐ３１，Ｐ３２，Ｐ６１，Ｐ６２は、ティーチングされた指示点Ｐ２１，Ｐ２２，Ｐ５１，Ｐ５２から算出される場合について例示した。しかしこれに限らず、各指定端点は、ティーチングなどにより設定されてもよい。
【０１０８】
・上記各実施形態では、上流側のロボット４と下流側のロボット５とが同様の構造や可動特性などを有するスカラーロボットである場合について例示した。しかしこれに限らず、上流側のロボットと下流側のロボットとのそれぞれの構造や可動特性などには、相違があってもよい。この場合には、各ロボットの構造や可動特性に基づいて、可動限界や軌道の計算を行うことで、上流側のロボットと下流側のロボットの駆動制御を各別に行うことが可能である。
【０１０９】
・上記各実施形態では、追従順番決定部１２は、下流側のロボット５の追従順番をワークＷと下流側のロボット５の上流側境界との間の距離の順に決定する場合について例示した。しかしこれに限らず、追従順番決定部は、追従順番を、例えばワークと下流側のロボットの下流側境界との間の距離の順に基づいて決定するようにしてもよい。また例えば、ワークと、上流側境界と下流側境界との関係等を考慮した条件などに基づいて決定するようにしてもよい。
【０１１０】
・上記各実施形態では、上流側境界を数式で表せる場合について例示した。しかしこれに限らず、上流側境界は、Ｘ軸座標とそれに対応するＹ軸座標とを対として記憶するマップデータにより設定されても、数式とマップデータとの組み合わせなどで設定されてもよい。
【０１１１】
・上記各実施形態では、各ワークＷ１〜Ｗ３が上流側境界よりも上流側にある場合について例示した。しかしこれに限らず、ワークが上流側境界よりも下流側にあってもよい。この場合、上流側境界との間の距離は正の値となり、上流側境界よりも上流側にあるワークとの間でそれらの距離を相互に比較して追従順番を計算することができる。
【０１１２】
・上記各実施形態では、距離Ｄ１１〜Ｄ１８，Ｄ３１〜Ｄ３３の値を上流側境界よりも上流側の場合には負とし、下流側の場合には正とした。しかしこれに限らず、距離の値を上流側境界よりも上流側の場合には正とし、下流側の場合には負としてもよい。
【０１１３】
・上記各実施形態では、第１及び第２追従順番記憶部１３ａ，１３ｂにワークの情報そのもの（初期位置）が保持される場合について例示したが、第１及び第２追従順番記憶部には、ワークの情報の位置を示す一つまたは複数のアドレスや、ワークの情報の全部もしくは一部とアドレスとの組み合わせが保持されるなどしてもよい。
【０１１４】
・上記各実施形態では、複数の指示点Ｐ１１，Ｐ１２，Ｐ４１，Ｐ４２等が直線で結ばれることにより上流側境界が規定される場合について例示した。しかしこれに限らず、複数の指示点は、曲線などにより結ばれてもよい。曲線により結ぶ場合は、演算処理等が増加するが、これによっても、上流側境界の設定の自由度を高くすることができる。
【０１１５】
・上記各実施形態では、上流側のロボット４の上流側境界（第１境界ＢＬ１等）と下流
側のロボット５の上流側境界（第１境界ＢＬ３等）とが共に同様の形状（直線、又は円弧、又は直線の組み合わせ）である場合について例示した。しかしこれに限らず、上流側のロボットの上流側境界と下流側のロボットの上流側境界とがそれぞれ異なる形状に設定されていてもよい。
【０１１６】
・また、上流側境界の形状としても、Ｙ軸座標の値が戻るような部分を含まない形状であれば、直線、又は円弧、又は直線の組み合わせ、もしくはそれらの組み合わせなどのような線形状であってもよい。
【０１１７】
・上記各実施形態では、上流側のロボット４の上流側境界と、下流側のロボット５の上流側境界がともにワークＷの搬送方向Ｃｖに非直交な部分を有する場合について例示した。しかしこれに限らず、上流側のロボットの上流側境界及び下流側のロボットの上流側境界のいずれか一方にワークの搬送方向に非直交な部分が含まれていてもよい。すなわち、各ロボットの上流側境界のいずれか一つがワークの搬送方向に直交するかたちに設定されていてもよい。
【０１１８】
・上記各実施形態では、下流側のロボット５の追従順番は、上流側のロボット４により追従動作が行なわれなかったワークについて決定されるものとした。しかしこれに限らず、下流側のロボットの追従順番を、上流側のロボットによる追従動作が行なわれた後にもコンベヤー上に載置され続けているワークに対して決定するようにしてもよい。
【０１１９】
・上記各実施形態では、下流側のロボット５の追従順番を上流側のロボット４の下流側境界を通過したワークの順に決定する場合について例示した。しかしこれに限らず、別途設定された条件や、上流側のロボットの追従動作後にもコンベヤー上に残されるワークであれば上流側のロボットの追従動作の終了した順などに基づいて決定されてもよい。
【０１２０】
・上記各実施形態では、上流側及び下流側のロボット４，５がコンベヤー１を挟んで千鳥状に配置される場合について例示した。しかし、これに限らず、上流側及び下流側のロボットはコンベヤー１の同じ側に設けられてもよい。
【０１２１】
・上記各実施形態では、上流側及び下流側のロボット４，５の各可動限界ＲＡ１，ＲＡ２が近接して設けられる場合について例示したが、上流側及び下流側のロボットの各可動限界の間に広い間隔があってもよく、また、その間隔にワークの状態を変化させない工程が含まれていてもよい。
【０１２２】
・上記各実施形態では、上流側及び下流側のロボット４，５が共にスカラーロボットである場合について例示した。しかし、これに限らず、上流側及び下流側のロボットの少なくともいずれか一方がスカラーロボット以外のロボット、例えば、旋回アームを有する六軸ロボットなどでもよい。
【符号の説明】
【０１２３】
１…コンベヤー、１ａ…側線、１ｂ…側線、２…位置検出装置及び画像認識手段を構成するカメラ、２ａ…撮像領域、２ｂ…撮像原点、３…搬送量検出装置としてのエンコーダー、４…ロボット、４ａ…モーター、５…ロボット、５ａ…モーター、６…ロボットコントローラー、７，８…作業台、１２…追従順番決定部、１３…ワーク位置記憶部、１３ａ…第１追従順番記憶部、１３ｂ…第２追従順番記憶部、１４…位置検出装置及び画像認識手段を構成するワーク位置検出部、１５…追従領域設定部、１５ａ…第１追従領域記憶部、１５ｂ…第２追従領域記憶部、１６…搬送量検出部、１７…追従対象検出部、２０…第１の追従指令値生成部、２１…第１のモーター制御部、２２…第２の追従指令値生成部、２３…第２のモーター制御部、Ｐ０…作業部、Ｗ，Ｗ１，Ｗ２，Ｗ３…ワーク、ＢＬ１，
ＢＬ１３，ＢＬ１４…第１境界、ＢＬ２…第２境界、ＢＬ３…第１境界、ＢＬ４…第２境界、ＲＡ１，ＲＡ２…可動限界。
【図１】
2011140085.tif 000003
【図２】
2011140085.tif 000004
【図３】
2011140085.tif 000005
【図４】
2011140085.tif 000006
【図５】
2011140085.tif 000007
【図６】
2011140085.tif 000008
【図７】
2011140085.tif 000009
【図８】
2011140085.tif 000010
【図９】
2011140085.tif 000011
【図１０】
2011140085.tif 000012
【図１１】
2011140085.tif 000013