(57)【特許請求の範囲】
【請求項１】
搬送装置上を搬送されるワークを撮像するように配置された撮像部に接続される画像処理装置であって、
前記搬送装置の搬送経路における移動量を示す信号を受付けるインターフェイスと、
前記搬送経路において前記撮像部の撮像範囲より下流側に配置されるとともに前記ワークを取り扱う移動機械、を制御するための制御装置と通信するためのインターフェイスと、
前記撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する手段と、
前記制御装置との間で前記搬送経路における移動量を同期して保持する手段と、
撮像指示に応答して前記撮像部による撮像を開始する手段と、
前記位置情報と当該位置情報の取得に用いた画像を撮像したときの移動量とを前記制御装置へ送信する手段とを備え、
前記搬送装置の搬送経路における移動量を示す信号は、同期のために、前記画像処理装置および前記制御装置に入力されるように構成されている、画像処理装置。
【請求項２】
前記位置情報は、前記画像中の予め登録されたワークに対応する領域を前記移動機械の座標系で表した座標値を含む、請求項１に記載の画像処理装置。
【請求項３】
前記位置情報は、予め登録されたワークの姿勢を基準とした、前記画像中の当該ワークに対応する領域の回転角度をさらに含む、請求項２に記載の画像処理装置。
【請求項４】
前記搬送装置の搬送経路における移動量を示す信号は、パルス信号である、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記同期して保持する手段は、前記パルス信号に含まれるパルス数をカウントするための第１のカウンタを含み、
前記第１のカウンタは、前記制御装置が前記パルス信号に含まれるパルス数をカウントするための第２のカウンタとの間で、カウントに関して同一のパラメータが設定されている、請求項４に記載の画像処理装置。
【請求項６】
前記第１のカウンタは、前記パルス信号に含まれるパルス数のカウント開始前に、前記第２のカウンタとともに、リセットされる、請求項５に記載の画像処理装置。
【請求項７】
前記パルス信号は、前記画像処理装置に入力されるように構成されており、
前記同期して保持する手段は、前記パルス信号に含まれるパルス数をカウントするためのカウンタを含み、
前記制御装置へ送信する手段は、送受信に係る遅延時間が一定になるように構成されている、請求項４に記載の画像処理装置。
【請求項８】
前記位置情報の取得に用いた画像を撮像したときの移動量は、カウンタによるカウンタ値で示される、請求項５〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記画像処理装置は、前記撮像指示を前記制御装置から受信するように構成されている、請求項１に記載の画像処理装置。
【請求項１０】
搬送装置上を搬送されるワークを撮像するように配置された撮像部と、
前記搬送装置の搬送経路において前記撮像部の撮像範囲より下流側に配置されるとともに前記ワークを取り扱う移動機械、を制御するための制御装置と、
前記撮像部および前記制御装置に接続される画像処理装置とを備え、
前記画像処理装置は、
前記搬送装置の搬送経路における移動量を示す信号を受付けるインターフェイスと、
前記撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する手段と、
前記制御装置との間で前記搬送経路における移動量を同期して保持する手段と、
撮像指示に応答して前記撮像部による撮像を開始する手段と、
前記位置情報と当該位置情報の取得に用いた画像を撮像したときの移動量とを前記制御装置へ送信する手段とを備え、
前記搬送装置の搬送経路における移動量を示す信号は、同期のために、前記画像処理装置および前記制御装置に入力されるように構成されている、画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンベアトラッキング等に向けられた画像処理装置および画像処理システムに関する。
【背景技術】
【０００２】
ファクトリーオートメーション（ＦＡ）分野においては、省力化のため、画像処理を用いて各種の工程を制御する技術が多用されている。このような画像処理技術の適用例の一つとして、ベルトコンベア等の搬送装置によってワークを搬送するとともに、その搬送中のワークを移動機械（以下、「産業用ロボット」あるいは単に「ロボット」とも称す。）を用いて、追跡（トラッキング）および把持するような作業工程がある。このような作業工程は、コンベアトラッキング等と称される。
【０００３】
このコンベアトラッキングの技術においては、撮像装置を用いて搬送装置上のワークを撮像し、その撮像によって得られた画像に対して、画像処理装置を用いてパターンマッチングあるいは２値化処理などの計測処理を行うことで、各ワークの存在位置（座標）を特定する。そして、この特定された各ワークの存在位置（座標）に基づいて、ロボットが各ワークを追跡および把持する。
【０００４】
例えば、特許文献１（特開平０９−０７２７１７号公報）には、視覚センサを利用して簡素なシステムで画像取得・処理を行うことで、ロボットのトラッキング処理等に応用する構成が開示されている。
【０００５】
また、コンベアトラッキングに向けられたものではないが、視覚センサに関連する先行技術文献として、特許文献２（特開２００５−２９３５６７号公報）、特許文献３（特開２００５−０６３１７６号公報）、および特許文献４（国際公開ＷＯ２００６／０７５３５４パンフレット）が挙げられる。
【０００６】
特許文献２には、計測対象物の計測値を、計測値が得られた時間に関する情報と共に外部制御機器に出力できる計測装置が開示されている。
【０００７】
特許文献３には、コンベア上のワークのような、撮像手段に対して相対移動する物体の撮像結果を画像処理して、ワークの状態を認識する物体認識装置が開示されている。特に、特許文献３は、撮像タイミングでの撮像手段とワークとの位置関係を精度良く得て、精度の高い画像処理結果を得ることができる物体認識装置を開示する。
【０００８】
特許文献４には、コンベアトラッキングに向けられたものではないが、半導体チップとしてのワークがＸＹテーブル上に位置決めされることなく載せられている場合に、ワークをカメラで撮像することで、ワークを予め指定された位置に位置決めするための構成が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０９−０７２７１７号公報
【特許文献２】特開２００５−２９３５６７号公報
【特許文献３】特開２００５−０６３１７６号公報
【特許文献４】国際公開ＷＯ２００６／０７５３５４パンフレット
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述の特許文献１の構成においては、コンベアには、移動量を検出するために、パルスコーダが取り付けられ、パルスコーダからの検出出力はロボット制御部へ入力される。画像処理装置およびカメラを有する視覚センサは、パルスコーダの検出出力を利用して、撮像やトラッキングを行う。
【００１１】
しかしながら、特許文献１の構成においては、画像処理装置がパルスコーダからの検出出力が所定条件を満足すると判断したタイミングで視覚センサへ撮像指示を与えるが、この視覚センサへ撮像指示を与えるタイミングと実際に視覚センサが撮像を行うタイミングとは完全には一致しておらず、幾らかのタイムラグが生じる。このタイムラグの長さに比較して、コンベアの搬送速度が相対的に低い場合には、それほど問題にはならないが、コンベアの搬送速度が高速化すると、このタイムラグによって、トラッキングのずれ等が生じ得る。
【００１２】
そこで、特許文献２には、このようなタイムラグを解消するための一つのアプローチが開示されている。より具体的には、特許文献２は、信号処理部に計測制御部を設けて、計測時の時間を測定することで、計測結果に計測時の時間情報を付加して出力する構成を開示する。このような構成を上述のようなコンベアトラッキングに適用した場合には、搬送装置の搬送速度が一定である場合には、当該計測時の時間情報に基づいて移動量を計算することで、上述のようなタイムラグによる影響を低減することができる。
【００１３】
しかしながら、現実の生産ラインでは、搬送装置の搬送速度は変化するため、特許文献２の手法をそのまま適用しただけでは、トラッキング処理を確実に行うことができない場合もある。
【００１４】
また、特許文献３は、エンコーダによる計測結果ではなく、エンコーダとは別に設けられたトリガーセンサを用いて、撮像タイミングを生成するという構成を開示している。このとき、トリガーセンサによってワークの到着を検出するタイミングと、撮像のタイミングとの間にタイムラグが生じるため、エンコーダによる計測結果を用いて、撮像時のワークと撮像手段との間の位置関係の情報を生成し、この位置関係の情報を用いて画像認識が行われる。
【００１５】
しかしながら、現実の生産ラインでは、搬送経路上に複数のワークが配置されることも多く、特許文献３に開示されるようなトリガーセンサでワークの到着を検出することは現実的ではない。そのため、特許文献３の手法を適用しても、トラッキング処理を確実に行うことはできない。
【００１６】
さらに、特許文献４には、位置検出器からの位置検出信号がモータ制御装置を介して画像処理装置へ送られる。画像処理装置は、導体チップをカメラで撮像しつつ、マスタ装置からの位置指令信号と、位置検出器からの位置検出信号とに基づいて、モータ制御装置を制御する。特許文献４に開示される構成においては、モータ制御装置を経由して画像処理装置へ送信される位置検出器からの位置検出信号の送信遅延がＸＹテーブルの位置決め制御の周期に比較して相対的に無視できることが前提となっており、特許文献４の手法は、コンベアトラッキング等にはそのまま適用することができない。そのため、特許文献４の手法を採用したとしても、トラッキング処理を確実に行うことはできない。
【００１７】
そこで、本発明は、上述のような課題を解決するためになされたものであり、その目的は、撮像装置に対する撮像指示を発生してから実際に撮像が行われるまでにタイムラグが存在する場合であっても、正確にトラッキング処理を行うことのできる視覚センサを提供するものである。
【課題を解決するための手段】
【００１８】
本発明のある局面によれば、搬送装置上を搬送されるワークを撮像するように配置された撮像部に接続される画像処理装置を提供する。画像処理装置は、搬送装置の搬送経路における移動量を示す信号を受付けるインターフェイスと、搬送経路において撮像部の撮像範囲より下流側に配置されるとともにワークを取り扱う移動機械、を制御するための制御装置と通信するためのインターフェイスと、撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する手段と、制御装置との間で搬送経路における移動量を同期して保持する手段と、撮像指示に応答して撮像部による撮像を開始する手段と、位置情報と当該位置情報の取得に用いた画像を撮像したときの移動量とを制御装置へ送信する手段とを含む。
【００１９】
好ましくは、位置情報は、画像中の予め登録されたワークに対応する領域を移動機械の座標系で表した座標値を含む。
【００２０】
さらに好ましくは、位置情報は、予め登録されたワークの姿勢を基準とした、画像中の当該ワークに対応する領域の回転角度をさらに含む。
【００２１】
好ましくは、搬送装置の搬送経路における移動量を示す信号は、パルス信号である。
さらに好ましくは、パルス信号は、画像処理装置および制御装置に入力されるように構成されている。同期して保持する手段は、パルス信号に含まれるパルス数をカウントするための第１のカウンタを含む。第１のカウンタは、制御装置がパルス信号に含まれるパルス数をカウントするための第２のカウンタとの間で、カウントに関して同一のパラメータが設定されている。
【００２２】
さらに好ましくは、第１のカウンタは、パルス信号に含まれるパルス数のカウント開始前に、第２のカウンタとともに、リセットされる。
【００２３】
あるいは好ましくは、パルス信号は、画像処理装置に入力されるように構成されており、同期して保持する手段は、パルス信号に含まれるパルス数をカウントするためのカウンタを含み、制御装置へ送信する手段は、送受信に係る遅延時間が一定になるように構成されている。
【００２４】
好ましくは、位置情報の取得に用いた画像を撮像したときの移動量は、カウンタによるカウンタ値で示される。
【００２５】
好ましくは、画像処理装置は、撮像指示を制御装置から受信するように構成されている。
【００２６】
この発明の別の局面に従えば、搬送装置上を搬送されるワークを撮像するように配置された撮像部と、搬送装置の搬送経路において撮像部の撮像範囲より下流側に配置されるとともにワークを取り扱う移動機械、を制御するための制御装置と、撮像部および制御装置に接続される画像処理装置とを含む画像処理システムを提供する。画像処理装置は、搬送装置の搬送経路における移動量を示す信号を受付けるインターフェイスと、撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する手段と、制御装置との間で搬送経路における移動量を同期して保持する手段と、撮像指示に応答して撮像部による撮像を開始する手段と、位置情報と当該位置情報の取得に用いた画像を撮像したときの移動量とを制御装置へ送信する手段とを含む。
【発明の効果】
【００２７】
本発明によれば、撮像装置に対する撮像指示を発生してから実際に撮像が行われるまでにタイムラグが存在する場合であっても、正確にトラッキング処理を行うことのできる画像処理装置およびそれを含む画像処理システムを提供するものである。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。
【図２】本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムにおける位置決めおよびトラッキング処理を説明するための図である。
【図３】本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。
【図４】本発明の実施の形態に係るコンベアトラッキングシステムを関連する構成と対比して示す図である。
【図５】本発明に関連するトラッキングシステムにおける制御動作を示すシーケンス図である。
【図６】本発明に関連するトラッキングシステムにおける制御動作を示すタイムチャートである。
【図７】本発明の実施の形態１に係るトラッキングシステムにおける制御動作を示すシーケンス図である。
【図８】本発明の実施の形態１に係るトラッキングシステムにおいて送信される計測結果のフォーマット例を示す図である。
【図９】本発明の実施の形態１に係るトラッキングシステムにおける制御動作を示すタイムチャートである。
【図１０】本発明の実施の形態１の変形例に係るトラッキングシステムにおける制御動作を示すタイムチャートである。
【図１１】本発明の実施の形態１の別の変形例に係るトラッキングシステムにおける制御動作を示すタイムチャートである。
【図１２】本発明の実施の形態１に係るロボット制御装置における処理を示すフローチャートである。
【図１３】本発明の実施の形態１に係るトラッキングシステムにおける全体の制御動作を示すタイムチャートである。
【図１４】本発明の実施の形態２に係る視覚センサを利用したコンベアトラッキングシステムにおける位置決めおよびトラッキング処理を説明するための図である。
【図１５】本発明の実施の形態２に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。
【図１６】本発明の実施の形態２に係るフィールドネットワークにおける遅延時間の影響を説明するための図である。
【図１７】本発明の実施の形態３に係るサポート装置のハードウェア構成を示す模式図である。
【発明を実施するための形態】
【００２９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００３０】
［実施の形態１］
＜Ａ．システム構成＞
図１は、本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。図１に示すコンベアトラッキングシステムは、２つの搬送装置（コンベア）１０および２０を含む。コンベア１０および２０は、それぞれ駆動ローラ１２および２２によって回転駆動される。以下では、コンベア１０および２０をそれぞれライン１およびライン２とも称す。図１に示す例では、ライン１は、紙面右側に移動し、ライン２は、紙面左側に移動する。ライン１には、搬出装置３０等によって紙面左側からワークＷがランダムに提供される。このライン１上のワークＷは、紙面左側から紙面右側へ移動する。ワークＷとしては、典型的には、お菓子等の食品や各種の錠剤等が想定される。
【００３１】
本実施の形態に係る視覚センサ１００は、ライン１上の所定位置に設けられる。後述するように、視覚センサ１００は、ワークなどの被写体を撮像するための撮像部と当該撮像部によって撮像された画像を処理するための画像処理部とを一体的に構成したものである。但し、撮像部と画像処理部とを別体として構成してもよい。
【００３２】
視覚センサ１００は、その撮像視野がライン１の幅方向（搬送方向とは直交する方向）の全体を含むように設定される。そして、視覚センサ１００が所定周期で撮像を行うことで、ライン１上をランダムに流れてくるワークＷを順次撮像できる。視覚センサ１００は、この順次撮像される画像に対してパターンマッチング等の計測処理を行うことで、各ワークの位置決めおよびトラッキング処理を行う。このように、視覚センサ１００の撮像部（図３に示す撮像部１１０）は、搬送装置であるコンベア１０上を搬送されるワークＷを撮像するように配置されている。そして、この撮像部に画像処理装置（図３に示す画像処理部１２０）が接続される。
【００３３】
ライン１の搬送方向には、視覚センサ１００の下流側に、ワークＷを把持してライン２へ移動させるロボット３００が配置されている。このロボット３００は、ワークＷを把持するためのアームを有しており、このアームを目的位置に移動させることで、ライン２上のワークを把持する。すなわち、ロボット３００は、搬送装置であるコンベア１０（ライン１）の搬送経路において、視覚センサ１００の撮像部の撮像範囲より下流側に配置されるとともにワークＷを取り扱う移動機械に相当する。より具体的には、ロボット３００は、そのアームを目的のワークＷに位置決めして、ピックアップしてライン２上に整列する。
【００３４】
さらに、ロボット３００は、ライン１に沿って移動するための移動機構４００（図２参照）上に配置されており、所定の範囲に亘って移動する。このロボット３００の移動範囲をトラッキング範囲とも称す。
【００３５】
ロボット３００のトラッキング処理および位置決め処理については、ライン１に設けられたエンコーダ１４による検出結果を用いて制御される。このエンコーダ１４は、典型的には、ロータリーエンコーダが採用され、回転に伴ってパルス信号を発生する。この発生するパルス信号のパルス数をカウントすることで、コンベア１０（ライン１）と連結されたローラの回転数、すなわち、エンコーダ１４が発生するパルス信号は、搬送装置であるコンベア１０の搬送経路における移動量を示す信号に相当し、このパルス信号に基づいて、コンベア１０の移動量が算出される。
【００３６】
ロボット３００は、ロボット制御装置２００からの指示に従って動作する。すなわち、ロボット制御装置２００は、移動機械であるロボット３００を制御するための制御装置である。ロボット制御装置２００は、視覚センサ１００とネットワークＮＷを介して接続されており、視覚センサ１００によって検出された各ワークＷの位置に基づいて、ロボット３００に対してワークＷの把持動作に必要な指示を与える。
【００３７】
ロボット制御装置２００には、ロボット３００のキャリブレーションなどを行うためのティーチングペンダント２１００が接続されている。ユーザは、ティーチングペンダント２１００を操作して、キャリブレーションなどに必要な位置にロボット３００を移動させる。
【００３８】
ネットワークＮＷには、視覚センサ１００およびロボット制御装置２００に加えて、操作表示装置５００およびサポート装置６００が接続されていてもよい。操作表示装置５００は、視覚センサ１００からの処理結果やロボット制御装置２００からのロボット３００の動作状態などを表示するとともに、ユーザからの操作に応答して、視覚センサ１００および／またはロボット制御装置２００へ各種の指示を与える。
【００３９】
図１に示すコンベアトラッキングシステムにおいては、生産性を向上するために、ライン速度（搬送速度）をより高めたいという潜在的なニーズが存在する。このようなニーズに対処するため、本実施の形態に係るコンベアトラッキングシステムにおいては、エンコーダ１４が発生するパルス信号をロボット制御装置２００だけではなく、視覚センサ１００にも入力するという構成を採用する。このように、視覚センサ１００およびロボット制御装置２００が同期して対象の搬送装置（コンベア）の位置情報を取得することで、ロボット制御装置２００と視覚センサ１００との間のネットワークＮＷを介した通信による遅延時間が問題となる場合であっても、その影響を回避することができる。この詳細については、後述する。
【００４０】
＜Ｂ．位置決めおよびトラッキング処理＞
次に、図１に示すコンベアシステムにおける位置決めおよびトラッキング処理の詳細について説明する。
【００４１】
図２は、本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムにおける位置決めおよびトラッキング処理を説明するための図である。図２を参照して、視覚センサ１００は、内蔵の撮像部を用いてライン１を撮像する。視覚センサ１００の撮像動作は、ロボット制御装置２００からの撮像指示に応じて開始される。この撮像指示は、視覚センサ１００とロボット制御装置２００とを接続するネットワークＮＷ経由で搬送される。このネットワークＮＷは、典型的には、イーサネット（登録商標）などの汎用的なネットワークを採用することができる。
【００４２】
視覚センサ１００は、撮像指示をロボット制御装置２００から受信するように構成されており、この撮像指示に応答して撮像を開始する。これにより、視覚センサ１００は、撮像視野を写した画像を順次取得する。そして、視覚センサ１００は、当該画像に対して計測処理（典型的には、予め登録されたワークＷについてのモデル画像に基づくパターンマッチング処理、あるいは、２値化処理）を実行する。さらに、視覚センサ１００は、この計測処理によって得られた各ワークＷの撮像時の位置情報（Ｘ，Ｙ，θ）をロボット制御装置２００へ送信する。このように、視覚センサ１００は、撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する。
【００４３】
位置情報は、コンベア１０上のワークＷの位置（Ｘ，Ｙ）およびワークＷの回転角度（θ）を含む。なお、ワークＷの位置（Ｘ，Ｙ）は、ロボット制御装置２００における重複排除処理などを簡素化する観点から、ロボット３００を制御するための座標系に換算した値が用いられる。例えば、図２に示すように、ロボット３００のアーム（ピッキング）位置をＸ座標（コンベアの搬送方向）およびＹ座標（コンベアの搬送方向とは直交する方向）で定義しておき、このＸＹ座標系（以下「ロボット座標系」とも称す。）を用いてパターンマッチング処理により検出された各ワークの位置を特定する。すなわち、位置情報は、撮像によって取得された画像中の予め登録されたワークに対応する領域を移動機械であるロボット３００の座標系「ロボット座標系」で表した座標値を含む。このように、各ワークＷの計測された位置情報をロボット座標系の値として出力できるように、視覚センサ１００およびロボット制御装置２００は、予めキャリブレーションされている。
【００４４】
また、ワークＷの回転角度（θ）は、ワークＷのモデル画像を基準とした場合の回転角度を意味する。すなわち、位置情報は、予め登録されたワークの姿勢を基準とした、画像中の当該ワークに対応する領域の回転角度をさらに含む。ワークＷの形状によっては、この回転角度の情報に基づいて、ロボット３００のアームの回転角度などが適宜制御される。
【００４５】
より具体的には、ロボット制御装置２００は、エンコーダ１４からのパルス信号に含まれるパルス数をカウントし、予め定められた値以上の数のパルスが入力されたタイミングで、ネットワークＮＷを経由して視覚センサ１００に対して撮像指示を送出する。
【００４６】
視覚センサ１００からの各ワークの位置情報は、ネットワークＮＷを介してロボット制御装置２００へ送信され、ロボット制御装置２００の内部にあるメモリに格納される。視覚センサ１００が順次撮像することで、同一のワークＷが異なるタイミングで撮像されることもある。このような場合、同一のワークＷについての位置情報が重複してロボット制御装置２００へ送信されるが、このロボット制御装置２００では、このような重複を排除した上で、メモリに記憶する。また、ロボット制御装置２００は、エンコーダ１４からのパルス信号を受けるたびに、メモリ内に格納されているすべてのワークＷの位置情報（座標値Ｘ，Ｙ）を更新する。これは、ロボット制御装置２００のメモリ上において、実際にベルトコンベア上を搬送するワークＷをトラッキングするためである。そして、いずれかのワークＷの更新後の位置情報（座標値）がロボット３００のトラッキング範囲に入ると、ロボット３００に対して把持動作に必要な指示を与える。
【００４７】
ライン１に設けられたエンコーダ１４の検出結果に応じて生成されるパルス信号は、視覚センサ１００およびロボット制御装置２００へ入力されるように構成されている。視覚センサ１００およびロボット制御装置２００は、パルス信号に含まれるパルス数をカウントするためのエンコーダカウンタをそれぞれ有している。エンコーダ１４からのパルス信号は、並列的に、視覚センサ１００およびロボット制御装置２００に入力されるので、それぞれのエンコーダカウンタを同じタイミングで初期化（カウンタリセット）しておけば、その後に入力されるパルス信号についてのカウンタ値は、互いに同じ値、すなわち、カウンタ値についての同期をとることができる。
【００４８】
より具体的には、視覚センサ１００およびロボット制御装置２００には、いずれも、エンコーダ１４からのパルス信号に含まれる１パルスあたりのコンベアの移動量が予め設定されている。さらに、視覚センサ１００およびロボット制御装置２００のそれぞれのエンコーダカウンタについても、互いに同一のパラメータ（カウンタ最大値、カウンタ最小値、１パルスに対する増加値など）が設定されている。すなわち、視覚センサ１００のエンコーダカウンタは、ロボット制御装置２００のエンコーダカウンタとの間で、カウントに関して同一のパラメータが設定されている。
【００４９】
また、これらのエンコーダカウンタによるカウンタ値は、生産ラインの稼動前に０に初期化される。すなわち、視覚センサ１００のエンコーダカウンタは、パルス信号に含まれるパルス数のカウント開始前に、ロボット制御装置２００のエンコーダカウンタとともに、リセットされる。
【００５０】
このように本実施の形態においては、視覚センサ１００とロボット制御装置２００との間でコンベア１０の搬送経路における移動量を同期して保持する手段が実現される。
【００５１】
特に、本実施の形態に係る視覚センサ１００は、ロボット制御装置２００からの撮像指示に従って実際に撮像を行ったときのカウンタ値を各ワークの位置情報に付加して、ロボット制御装置２００へ送信する。上述したように、視覚センサ１００とロボット制御装置２００との間でカウンタ値を同期して保持しているため、ロボット制御装置２００から撮像指示を送出したタイミングと、撮像指示に応答して視覚センサ１００が実際に撮像を行ったタイミングとの間にライムラグがあっても、実際に撮像が行われたタイミングが共通の時間軸上で、すなわち同期されたカウンタ値を用いて、特定される。
【００５２】
このように、視覚センサ１００は、検出されたワークＷの位置情報と当該位置情報の取得に用いた画像を撮像したときのコンベア１０における移動量とをロボット制御装置２００へ送信する。このワークＷの位置情報の取得に用いた画像を撮像したときの移動量は、カウンタによるカウンタ値で示される。
【００５３】
ロボット制御装置２００では、視覚センサ１００から受信した撮像時のカウンタ値を用いて、対応する位置情報を補正した上で、自装置のメモリに格納する。これによって、ライン速度が高く、撮像指示の出力から現実の撮像までのタイムラグが、ロボット３００における位置決めおよびトラッキング処理に影響を与えるという事態を回避できる。
【００５４】
＜Ｃ．ハードウェア構成＞
図３は、本発明の実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。図３を参照して、視覚センサ１００は、撮像部１１０と、画像処理部１２０とを含む。
【００５５】
撮像部１１０は、撮像視野に存在する被写体を撮像する装置であり、主体たる構成要素として、レンズや絞りなどの光学系と、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの受光素子とを含む。撮像部１１０は、画像処理部１２０からの指令に従って撮像するとともに、その撮像によって得られた画像データを画像処理部１２０へ出力する。
【００５６】
画像処理部１２０は、ＣＰＵ（Central Processing Unit）１２２と、メモリ１２４と、撮像制御部１２６と、通信インターフェイス（Ｉ／Ｆ）１２８と、入出力インターフェイス（Ｉ／Ｆ）１３０と、エンコーダカウンタ１３２とを含む。これらのコンポーネントは、バス１３４を介して互いにデータ通信可能に接続されている。
【００５７】
ＣＰＵ１２２は、画像処理部１２０において主たる演算を行うプロセッサである。メモリ１２４は、ＣＰＵ１２２によって実行される各種プログラム、撮像部１１０によって撮像された画像データ、各種パラメータなどを格納する。典型的には、メモリ１２４は、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性記憶装置と、ＦＬＡＳＨメモリなどの不揮発性記憶装置とからなる。
【００５８】
撮像制御部１２６は、ＣＰＵ１２２などからの内部コマンドに従って、接続されている撮像部１１０における撮像動作を制御する。撮像制御部１２６は、撮像部１１０に対して各種コマンドを送信するインターフェイスと、撮像部１１０からの画像データを受信するインターフェイスとを有している。
【００５９】
通信インターフェイス１２８は、ロボット制御装置２００との間で各種データを遣り取りする。典型的には、視覚センサ１００およびロボット制御装置２００とはイーサネット（登録商標）を介して接続されており、通信インターフェイス１２８は、このようなイーサネット（登録商標）に準拠したハードウェアである。
【００６０】
入出力インターフェイス１３０は、画像処理部１２０から外部へ各種信号を出力し、あるいは、外部からの各種信号を入力する。特に、入出力インターフェイス１３０は、エンコーダ１４で生成されるパルス信号を受け入れ、その信号をデジタル信号に変換してエンコーダカウンタ１３２へ出力する。
【００６１】
エンコーダカウンタ１３２は、エンコーダ１４からのパルス信号に含まれるパルス数をカウントする。このエンコーダカウンタ１３２は、基本的には、ＣＰＵ１２２の演算サイクルとは独立して動作するため、エンコーダ１４からのパルス信号に含まれるパルス数を取り逃すことがない。
【００６２】
一方、ロボット制御装置２００は、演算処理部２１０と、通信インターフェイス（Ｉ／Ｆ）２２８と、入出力インターフェイス（Ｉ／Ｆ）２３０と、エンコーダカウンタ２３２と、ピッキング制御部２４０と、移動制御部２５０とを含む。
【００６３】
演算処理部２１０は、視覚センサ１００からの位置情報に基づいて、ロボット３００および移動機構４００に対してコマンドを出力するための演算を行うプロセッサであり、それぞれのワークＷをトラッキングするためのメモリ２２０を含む。メモリ２２０には、視覚センサ１００の計測処理によって検出されたそれぞれのワークＷの位置情報が格納される。演算処理部２１０は、対象のコンベアの移動（エンコーダ１４からのパルス信号に基づいて検出）に応じて、それぞれのワークＷの位置情報を順次更新する。
【００６４】
通信インターフェイス（Ｉ／Ｆ）２２８は、視覚センサ１００の画像処理部１２０との間で各種データを遣り取りする。典型的には、視覚センサ１００およびロボット制御装置２００とはイーサネット（登録商標）を介して接続されており、通信インターフェイス２２８は、このようなイーサネット（登録商標）に準拠したハードウェアである。
【００６５】
入出力インターフェイス２３０は、ロボット制御装置２００から外部へ各種信号を出力し、あるいは、外部からの各種信号を入力する。特に、入出力インターフェイス２３０は、エンコーダ１４で生成されるパルス信号を受け入れ、その信号をデジタル信号に変換してエンコーダカウンタ２３２へ出力する。
【００６６】
エンコーダカウンタ２３２は、エンコーダ１４からのパルス信号に含まれるパルス数をカウントする。このエンコーダカウンタ２３２は、基本的には、演算処理部２１０の演算サイクルとは独立して動作するため、エンコーダ１４からのパルス信号に含まれるパルス数を取り逃すことがない。
【００６７】
ピッキング制御部２４０は、演算処理部２１０などからの内部コマンドに従って、接続されているロボット３００における把持動作を制御する。ピッキング制御部２４０は、ロボット３００のそれぞれの可動軸における目標位置などを送信するインターフェイスと、ロボット３００のそれぞれの可動軸における現在位置を受信するインターフェイスとを有している。
【００６８】
移動機構４００は、演算処理部２１０などからの内部コマンドに従って、接続されているロボット３００を駆動する移動機構４００におけるトラッキングを制御する。移動機構４００は、移動機構４００の目標位置および目標速度などを送信するインターフェイスと、移動機構４００の移動軸における現在位置を受信するインターフェイスとを有している。
【００６９】
＜Ｄ．本発明に係る課題＞
次に、本発明に係る課題などについて、より詳細に説明する。
【００７０】
図４は、本発明の実施の形態に係るコンベアトラッキングシステムを関連する構成と対比して示す図である。すなわち、図４（ａ）は、本発明に関連するコンベアトラッキングシステムの模式的構成を示し、図４（ｂ）は、本実施の形態に係るコンベアトラッキングシステムの模式的構成を示す。
【００７１】
図４（ａ）に示す本発明に関連するコンベアトラッキングシステムにおいては、コンベア１０の移動量を検出するエンコーダ１４からのパルス信号がロボット制御装置２００にのみ入力されるものとする。この構成においては、ロボット制御装置２００がエンコーダ１４からのパルス信号に基づいて、コンベア１０が所定距離だけ移動する毎に、画像処理部１２０Ａに撮像指示を与える。画像処理部１２０Ａは、ロボット制御装置２００からの撮像指示に応答して、被写体を撮像し、その撮像によって得られた画像データに対して計測処理を実行する。そして、その計測処理の結果は、画像処理部１２０Ａからロボット制御装置２００へ返される。
【００７２】
なお、撮像部１１０の前回の撮像における撮像範囲と今回の撮像における撮像範囲との間で少なくとも一部は重複するように、撮像部１１０による撮像タイミングが設定される。これは、コンベア１０上を流れるすべてのワークＷを撮像できるように、各撮像における撮像範囲間にある程度のマージンを設定する必要があるからである。
【００７３】
図４（ａ）に示すようなシステム構成を採用した場合には、コンベアの搬送速度（ライン速度）が高まると、トラッキング処理を正確に行うことができない場合が生じる。以下、この理由については、図５および図６を参照して説明する。
【００７４】
図５は、本発明に関連するトラッキングシステムにおける制御動作を示すシーケンス図である。図６は、本発明に関連するトラッキングシステムにおける制御動作を示すタイムチャートである。
【００７５】
図５には、コンベア１０が所定距離だけ移動する毎に、撮像部１１０に対してロボット制御装置２００が撮像指示を（画像処理部１２０Ａを介して）与える場合の処理を示す。図５を参照して、ロボット制御装置２００の演算処理部２１０は、エンコーダ１４からのパルス信号に含まれるパルス数が前回撮像したときの値から所定値以上増加したか否かを判断する（ステップＳ１００）。すなわち、エンコーダカウンタ２３２での現在のカウンタ値が撮像タイミングに相当する距離以上増加したか否かが判断される。
【００７６】
エンコーダ１４からのパルス信号に含まれるパルス数が所定値以上に到達すれば、ロボット制御装置２００の演算処理部２１０は、エンコーダカウンタ２３２を参照して、現在のカウンタ値（Ｃ０’）を取得する（ステップＳ１０２）。続いて、ロボット制御装置２００の演算処理部２１０は、画像処理部１２０Ａに対して、撮像指示を送信する（ステップＳ１０４）。この撮像指示は、ネットワークＮＷを介して、画像処理部１２０Ａへ伝送される。画像処理部１２０Ａは、ロボット制御装置２００からの撮像指示に応答して、撮像部１１０に撮像を実行させる（ステップＳ１０６）。撮像部１１０が撮像して得られた画像は、画像処理部１２０Ａへ伝送される。画像処理部１２０Ａは、撮像部１１０からの画像に対して計測処理を実行する（ステップＳ１０８）。さらに、画像処理部１２０Ａは、ステップＳ１０８における計測処理によって得られた計測結果（それぞれのワークの位置情報（Ｘ，Ｙ，θ））をロボット制御装置２００へ送信する（ステップＳ１１０）。
【００７７】
ロボット制御装置２００は、画像処理部１２０Ａからの計測結果に基づいて、重複排除処理を実行する（ステップＳ１１２）。上述したように、連続する撮像の間でそれぞれの撮像範囲が重複するように、撮像部１１０における撮像タイミングが制御される。そのため、同一のワークＷが複数の画像に含まれることもある。このような複数の画像に含まれる同一のワークＷによるトラッキングの不具合を防ぐために、重複して取得された位置情報について削除する処理が重複排除処理である。
【００７８】
ロボット制御装置２００の演算処理部２１０は、新たなワークＷについての位置情報が取得されたか否かを判断し（ステップＳ１１４）、新たなワークＷについての位置情報が取得された場合（ステップＳ１１４においてＹＥＳの場合）には、メモリに当該新たな位置情報を格納する（ステップＳ１１６）。そして、処理はリターンする。
【００７９】
このとき、ロボット制御装置２００は、ステップＳ１１０において画像処理部１２０Ａから送信される計測結果については、対応するステップＳ１０２において取得されたカウンタ値Ｃ０’において取得された値であると取扱う。そのため、コンベア１０の移動に伴うワークＷの位置情報（座標値Ｘ，Ｙ）の更新処理においては、カウンタ値Ｃ０’と更新タイミングにおいて取得されたカウンタ値Ｃ１との差分に基づいて、更新量ΔＸ，ΔＹが算出される。そのため、それぞれのワークＷの位置情報と関連付けられる、撮像タイミングを示すカウンタ値Ｃ０’は実際の撮像タイミングを正確に反映させる必要がある。
【００８０】
しかしながら、図４（ａ）に示す構成では、ステップＳ１０２において取得されるカウンタ値Ｃ０’は実際の撮像タイミングを正確に反映しない場合がある。すなわち、以下に示す（１）および（２）の要因によって、ロボット制御装置２００が撮像指示を送信してから実際に撮像が行われるまでに遅延（タイムラグ）が発生する可能性があるため、コンベア１０の搬送速度が高い場合には、取得されるカウンタ値が本来の撮像タイミングを示すカウンタ値から乖離するため、位置決めおよびトラッキング処理において無視できない誤差になり得る。
【００８１】
（１）  ロボット制御装置２００がエンコーダ１４からのパルス信号を一旦受けた上で、撮像指示を発生するので、パルス信号の入力タイミングから実際に撮像指示が出力されるまでに、ロボット制御装置２００で実行されるプログラム１サイクル分の遅延が発生する。
【００８２】
（２）  ロボット制御装置２００と画像処理部１２０Ａとの間がネットワーク（例えば、イーサネット（登録商標））などを介して接続されている場合には、撮像指示の伝送遅延が発生する。
【００８３】
図６を参照して、より具体的な制御動作について説明する。図６に示すタイムチャートにおいては、ロボット制御装置２００は、エンコーダ１４から３個のパルス数が発生するたびに、撮像指示を発生するものとする。エンコーダカウンタ２３２が初期化（カウンタリセット）されているのであれば、まず、エンコーダカウンタ２３２のカウンタ値が「３」に到達すると、撮像指示が画像処理部１２０Ａへ出力される。但し、ロボット制御装置２００の演算処理部２１０が、カウンタ値が「３」に到達したと判断できるのは、カウンタ値が実際に「３」に到達した後のタイミングであるので、コンベア１０の搬送速度が相対的に大きな場合には、次のパルスが既に入力されている可能性もある。すなわち、図６に示すように、ロボット制御装置２００が撮像指示を出力するタイミングにおいては、エンコーダカウンタ２３２のカウンタ値が既に「４」になっている可能性もある。
【００８４】
さらに、ロボット制御装置２００から画像処理部１２０ＡへネットワークＮＷを介して撮像指示が送信される場合には、その伝送遅延が発生し、さらに、撮像部１１０における撮像動作および画像処理部１２０Ａにおける計測処理が直列的に実行され、その後、再度ネットワークを介して計測結果がロボット制御装置２００へ戻される。
【００８５】
このような一連の処理を経るため、例えば、エンコーダカウンタ２３２が「３」に到達したタイミングで撮像指示を出力するように設定したとしても、実際に撮像されるのは、エンコーダカウンタ２３２が「５」に到達したタイミングになっている可能性がある。
【００８６】
本実施の形態に係る視覚センサ１００では、このような遅延（タイムラグ）による位置決め処理およびトラッキング処理に対する影響を極力無くする方法を採用する。
【００８７】
なお、上述のような遅延による誤差を軽減するために、カウンタ値に対して一定量のオフセットで補正するという対処方法も考えられるが、コンベア１０の移動速度が変化するたびに当該オフセットを変更する必要があるため、実用的ではない。
【００８８】
＜Ｅ．本実施の形態における動作＞
次に、本実施の形態１に係るコンベアトラッキングシステムについて説明する。図４（ｂ）に示す本実施の形態に係るコンベアトラッキングシステムにおいては、コンベア１０の移動量を検出するエンコーダ１４からのパルス信号がロボット制御装置２００に加えて、視覚センサ１００へも入力される。視覚センサ１００およびロボット制御装置２００は、それぞれエンコーダカウンタ１３２および２３２を有している。エンコーダカウンタの各々がエンコーダ１４からのパルス信号に含まれるパルスを互いに独立にカウントする。但し、これらのエンコーダカウンタ１３２おおび２３２は、動作前にいずれもカウンタリセットされるとともに、カウント動作に係るパラメータが互いに同一に設定される。そのため、エンコーダカウンタ１３２によりカウントされるカウンタ値およびエンコーダカウンタ２３２によりカウントされるカウンタ値は、互いに同期して同じ値を示すことになる。
【００８９】
このように、視覚センサ１００とロボット制御装置２００との間でカウンタ値を同期的に保持する環境を実現するとともに、視覚センサ１００において撮像が行われた際のカウンタ値がその撮像によって得られた計測結果（それぞれのワークの位置情報）とともに、ロボット制御装置２００へ送信される。このように、本実施の形態に係る視覚センサ１００は、実際の撮像が行われたタイミングを示すカウンタ値をその計測結果と関連付けて出力する。これにより、ロボット制御装置２００で実行される位置決めおよびトラッキングシステム処理を正確に行うことができる。さらに、ロボット制御装置２００において重複排除処理が実行される場合には、当該重複排除処理についても正確に実行することができる。
【００９０】
図７〜図９を参照して、本実施の形態に係るトラッキングシステムにおける制御動作についてより詳細に説明する。
【００９１】
図７は、本発明の実施の形態１に係るトラッキングシステムにおける制御動作を示すシーケンス図である。図８は、本発明の実施の形態１に係るトラッキングシステムにおいて送信される計測結果のフォーマット例を示す図である。図９は、本発明の実施の形態１に係るトラッキングシステムにおける制御動作を示すタイムチャートである。
【００９２】
図７には、上述の図５と同様に、コンベア１０が所定距離だけ移動する毎に、撮像部１１０に対してロボット制御装置２００が視覚センサ１００に対して撮像指示を与える場合の処理を示す。
【００９３】
図７を参照して、まず、視覚センサ１００およびロボット制御装置２００のいずれに対しても、互いに同一のパラメータ（カウンタ最大値、カウンタ最小値、１パルスに対する増加値など）が設定される（ステップＳ１およびＳ２）。そして、視覚センサ１００およびロボット制御装置２００のいずれに対しても、それぞれのエンコーダカウンタに対するリセット（カウンタリセット）が実行される（ステップＳ３およびＳ４）。このようなエンコーダカウンタについての共通パラメータの設定およびカウンタリセットが実行されて、視覚センサ１００およびロボット制御装置２００との間で、エンコーダ１４からのパルス信号に含まれるパルスの数についてのカウント動作を同期させることができる。
【００９４】
続いて、ロボット制御装置２００の演算処理部２１０は、エンコーダ１４からのパルス信号に含まれるパルス数が前回撮像したときの値から所定値以上増加したか否かを判断する（ステップＳ５）。すなわち、エンコーダカウンタ２３２での現在のカウンタ値が撮像タイミングに相当する距離以上増加したか否かが判断される。
【００９５】
エンコーダ１４からのパルス信号に含まれるパルス数が所定値以上に到達すれば、ロボット制御装置２００の演算処理部２１０は、視覚センサ１００に対して、撮像指示を送信する（ステップＳ６）。この撮像指示は、ネットワークＮＷを介して、視覚センサ１００へ伝送される。視覚センサ１００の画像処理部１２０は、ロボット制御装置２００からの撮像指示に応答して、視覚センサ１００の画像処理部１２０は、エンコーダカウンタ１３２を参照して、撮像時のカウンタ値（Ｃ０）を取得する（ステップＳ７）。
【００９６】
続いて、視覚センサ１００の画像処理部１２０は、撮像部１１０に撮像を実行させる（ステップＳ８）。撮像部１１０が撮像して得られた画像は、画像処理部１２０へ伝送される。画像処理部１２０は、撮像部１１０からの画像に対して計測処理を実行する（ステップＳ９）。さらに、画像処理部１２０は、ステップＳ９における計測処理によって得られた計測結果（それぞれのワークの位置情報（Ｘ，Ｙ，θ））を、ステップＳ７において取得したカウンタ値Ｃ０とともに、ロボット制御装置２００へ送信する（ステップＳ１０）。
【００９７】
ロボット制御装置２００は、画像処理部１２０からの計測結果に基づいて、重複排除処理を実行する（ステップＳ１１）。この重複排除処理は、上述したものと同様の処理である。
【００９８】
ロボット制御装置２００の演算処理部２１０は、新たなワークＷについての位置情報が取得されたか否かを判断し（ステップＳ１２）、新たなワークＷについての位置情報が取得された場合（ステップＳ１２においてＹＥＳの場合）には、メモリに当該新たな位置情報を格納する（ステップＳ１３）。そして、処理はリターンする。
【００９９】
図７のシーケンス図のステップＳ１０において送信される計測結果は、図８に示すようなフォーマットに従って送信される。図８には、一例として、モデル画像と一致するワークＷが３個検出された場合のデータ例を示す。
【０１００】
すなわち、第１番目のアイテムには、検出されたワークＷの数である「３」が格納され、続く第２番目から第１０番目のアイテムには、検出された３個のワークＷについての位置情報（Ｘ座標値，Ｙ座標値，回転角度θ）が格納される。さらに、最後のアイテムには、当該検出結果を生成するために用いられた画像が撮像されたタイミングを示すカウンタ値が格納される。図８に示す例では、カウンタ値が「１００」のときに撮像が行われた例を示す。
【０１０１】
なお、図８に示すフォーマットは、検出数に応じて拡張されることは容易に理解されるであろう。なお、予め定められたモデル画像に一致するワークＷが検出されなかった場合には、検出結果として「ｎｕｌｌ」を送信してもよい。
【０１０２】
図９を参照して、本実施の形態に係るコンベアトラッキングシステムにおけるより具体的な制御動作について説明する。図９に示すタイムチャートにおいては、ロボット制御装置２００は、エンコーダ１４から３個のパルス数が発生するたびに、撮像指示を発生するものとする。
【０１０３】
上述したように、視覚センサ１００およびロボット制御装置２００のいずれに対しても、エンコーダカウンタに関して共通パラメータが設定され、かつ、いずれのエンコーダカウンタも予め初期化（カウンタリセット）されるので、エンコーダ１４から発生するパルス信号に応答して、それぞれのエンコーダカウンタは実質的に同期してカウントアップすることになる。
【０１０４】
処理開始後、まず、エンコーダカウンタ２３２のカウンタ値が「３」に到達すると、視覚センサ１００へ撮像指示が出力される。図６に示すタイムチャートと同様に、ロボット制御装置２００が撮像指示を出力するタイミングにおいては、エンコーダカウンタ２３２のカウンタ値が既に「４」になっている可能性もある。さらに、ロボット制御装置２００から視覚センサ１００へネットワークＮＷを介して撮像指示が送信される場合には、その伝送遅延が発生する。
【０１０５】
一方、視覚センサ１００から見れば、何らかのタイミングで撮像指示を受けると、撮像部１１０を用いた撮像動作および画像処理部１２０Ａにおける計測処理を実行する。この撮像および計測処理と並行して、視覚センサ１００では撮像時のカウンタ値が取得される。そして、視覚センサ１００は、この撮像時のカウンタ値とともに、計測結果をロボット制御装置２００へ送信する。
【０１０６】
以後同様にして、ロボット制御装置２００から視覚センサ１００へ撮像指示が出力され、視覚センサ１００では、この撮像指示に応答して、撮像および計測処理が実行される。
【０１０７】
上述したように、視覚センサ１００における撮像タイミングを示すカウンタ値が付加されて計測結果が送信されるので、ロボット制御装置２００では、各計測値に対応するカウンタ値に基づいて正確なトラッキング処理を行うことができる。
【０１０８】
すなわち、本実施の形態に係るコンベアトラッキングシステムにおいては、ロボット制御装置２００が撮像指示を送信するタイミングを厳密に制御する必要はなく（言い換えれば、コンベアの搬送速度に応じた周期で撮像指示が送信されれば十分である）、かつ、視覚センサ１００からロボット制御装置２００への計測結果の送信遅延は問題にならない。
【０１０９】
＜Ｆ．撮像時カウンタ値の決定方法の変形例＞
上述の図９に示すタイムチャートにおいては、視覚センサ１００の撮像動作の前にカウンタ値を取得する例を示したが、撮像動作は、エンコーダ１４がパルス信号を発生するタイミングとは独立して行われるため、撮像動作中にカウンタ値が更新される場合もある。特に、搬送速度の高いベルトコンベアであれば、その可能性はより高くなる。
【０１１０】
また、撮像環境によっては、エンコーダ１４がパルス信号を発生する周期より長い期間を撮像に要する場合も考えられる。
【０１１１】
このような場合には、撮像動作中（開始前および終了後も含む）の複数のタイミングでそれぞれカウンタ値を取得し、取得した複数のカウンタ値に基づいて、撮像タイミングを示すカウンタ値として決定してもよい。
【０１１２】
図１０は、本発明の実施の形態１の変形例に係るトラッキングシステムにおける制御動作を示すタイムチャートである。図１０に示すタイムチャートにおいては、一例として、撮像動作の前後においてそれぞれカウンタ値を取得し、当該取得した２つのカウンタ値を平均することで、撮像動作におけるカウンタ値として取扱う。
【０１１３】
このような処理を採用することで、撮像動作に要する時間がパルス信号の発生周期よりも長い場合であっても、撮像タイミングを示すカウンタ値を正確に取得することができる。
【０１１４】
＜Ｇ．撮像指示発生の変形例＞
上述したように、本実施の形態に係るコンベアトラッキングシステムにおいては、ロボット制御装置２００が撮像指示を送信するタイミングを厳密に制御する必要はない。そのため、ロボット制御装置２００が撮像指示を発生する形態に代えて、視覚センサ１００自身が内部的に撮像指示を発生してもよい。
【０１１５】
図１１は、本発明の実施の形態１の別の変形例に係るトラッキングシステムにおける制御動作を示すタイムチャートである。図１１に示す例では、視覚センサ１００が自身のエンコーダカウンタ１３２のカウンタ値を参照して、エンコーダ１４から３個のパルス数が発生するたびに、内部的に撮像指示を発生する。
【０１１６】
ロボット制御装置２００から見れば、撮像動作が行われたタイミングを示すカウンタ値を取得することができるので、このような構成を採用したとしても、ワークの位置決めおよびトラッキング処理については、何ら問題なく実現できる。さらに、ネットワークＮＷ上を撮像指示が伝送されないので、ネットワークＮＷ上の負荷を軽減できる利点がある。
【０１１７】
＜Ｈ．ロボット制御装置における処理＞
次に、ロボット制御装置２００における処理について説明する。
【０１１８】
図１２は、本発明の実施の形態１に係るロボット制御装置２００における処理を示すフローチャートである。図１２（ａ）〜図１２（ｄ）には、ロボット制御装置２００において実行される主要な処理を例示するが、ロボット制御装置２００における処理は図１２に示すものに限られない。
【０１１９】
図１２（ａ）は、エンコーダ１４がパルス信号を発生した場合に生じる処理を示す。より具体的には、図１２（ａ）の処理は、エンコーダ１４がパルス信号を発生し、エンコーダカウンタ２３２がカウントアップする（ステップＳ５０）ことをイベントとして起動される。エンコーダカウンタ２３２がカウントアップすると、ロボット制御装置２００のメモリに格納されているそれぞれのワークの位置情報が更新される（ステップＳ５１）。この位置情報の更新方法については、以下のとおりである。
【０１２０】
図２に示すように、ワークがＸ方向に搬送され、ロボット３００のトラッキング範囲の右端をＸ方向の原点とする。このとき、エンコーダ１４の１パルスあたりのコンベアの移動量（移動ベクトル）を（ΔＭｘ，ΔＭｙ）とすると、更新前の位置情報が（Ｘ０，Ｙ０，θ０）であるワークＷの位置情報は、ｎ個のパルスが入力したとすると、更新後の位置情報は、（Ｘ０−ΔＭｘ×ｎ，Ｙ０−ΔＭｙ×ｎ，θ０）となる。すなわち、１パルス当たりのコンベア上の単位移動量にパルスの数を乗じて得られた値がワークＷの移動量（ΔＭｘ×ｎ，Ｍｙ×ｎ）となる。そして、ワークＷが原点方向に移動しているとすると、この移動量（移動ベクトル）の分だけワークの位置情報が更新される。
【０１２１】
そして、エンコーダカウンタ２３２が新たにカウントアップするまで待つ。
図１２（ｂ）においても、エンコーダ１４がパルス信号を発生した場合に生じる処理を示す。より具体的には、図１２（ｂ）の処理は、エンコーダ１４がパルス信号を発生し、エンコーダカウンタ２３２がカウントアップする（ステップＳ５０）ことをイベントとして起動される。エンコーダカウンタ２３２がカウントアップすると、撮像指示の発生条件が成立したか否かが判断される。例えば、上述の例では、エンコーダ１４からのパルス信号に含まれるパルス数が前回撮像したときの値から所定値以上増加したか否かが判断される。そして、撮像指示の発生条件が成立した場合（ステップＳ５０においてＹＥＳの場合）には、ロボット制御装置２００から視覚センサ１００へ撮像指示が送信される。
【０１２２】
図１２（ｃ）は、ロボット３００による把持動作について説明するものである。図１２（ｃ）のフローは、ワークの位置情報が更新された（ステップＳ６０）ことをイベントとして起動される。より具体的には、ワークの位置情報が更新されると、ロボット３００のトラッキング範囲内にいずれかのワークＷが存在しているか否かが判断される（ステップＳ６１）。ロボット３００のトラッキング範囲内にいずれかのワークＷが存在している場合（ステップＳ６１においてＹＥＳの場合）には、ロボット３００によるワークＷの把持動作の制御が開始される。具体的には、トラッキング範囲内にある把持対象ワークの位置情報の取得（ステップＳ６２）、把持対象ワークとロボット３００との偏差の算出（ステップＳ６３）、ステップＳ６３において算出された偏差に基づいて、ロボット３００および移動機構４００についての指示の生成（ステップＳ６４）、および、ワークＷの位置情報の更新（ステップＳ６５）が繰り返される。そして、ロボット３００がワークＷを把持することができる位置まで移動すると、ロボット制御装置２００は、ロボット３００に対して把持動作の指示を出力する（ステップＳ６６）。続いて、把持状態のロボット３００に対して、把持しているワークＷを目的の位置まで移動させるための、移動動作の指示をロボット３００に対して出力する（ステップＳ６７）。そして処理は、リターンする。
【０１２３】
図１２（ｄ）は、他の位置情報を受けることをイベントとして起動される。より具体的には、現在の位置情報が算出され（ステップＳ６９）、さらに、重複排除処理が実行される（ステップＳ７０）。その後、位置情報がメモリへ格納される（ステップＳ７１）。
【０１２４】
ステップＳ６９に示すワークＷの現在の位置情報の算出方法については、撮像時のカウンタ値と各時点のカウンタ値との差分を算出し、この差分に１パルス当たりのコンベア上の単位移動量を乗じて得られた値が補正量となる。この補正量を計測結果（視覚センサ１００から受信したワークの位置情報）に適用することで、現在の位置情報が算出される。
【０１２５】
図１３は、本発明の実施の形態１に係るトラッキングシステムにおける全体の制御動作を示すタイムチャートである。図１３を参照して、例えば、ロボット制御装置２００のエンコーダカウンタ２３２のカウンタ値が「７」になったタイミングで、撮像指示が生成されたとする。この撮像指示は、視覚センサ１００へ送出され、撮像および計測処理が実行される。そして、視覚センサ１００のエンコーダカウンタ１３２の撮像時のカウンタ値である「９」とともに、その計測結果がロボット制御装置２００へ送信される。
【０１２６】
ロボット制御装置２００は、視覚センサ１００から計測結果を受信すると、重複排除処理などの後、関連付けられている（撮像時の）カウンタ値（この例では「９」）と、現在のカウンタ値（この例では「１２」）とを比較し、その差分であるカウンタ値「３」だけ計測結果が補正される（座標計算）。さらに、ロボット制御装置２００は、エンコーダカウンタ２３２がカウントアップするたびに、格納している位置情報（それぞれのワークの座標位置）を更新する（座標更新）。
【０１２７】
その後、対象のワークＷがロボット３００のトラッキング範囲に入ると、ロボット制御装置２００は、ロボット３００に対して把持動作を指示する。ロボット３００による把持動作が完了すると、ロボット制御装置２００に格納されているワークの位置情報は削除される。
【０１２８】
以上のような処理手順によって、本実施の形態に係るコンベアトラッキングが実現される。
【０１２９】
＜Ｉ．利点＞
本実施の形態によれば、視覚センサ１００（画像処理部１２０）がエンコーダ１４からのパルス信号の入力を直接的に受けるため、撮像動作および当該撮像動作によって得られた画像に対する計測処理が、ロボット制御装置２００のプログラム実行サイクルに影響されない。
【０１３０】
また、ロボット制御装置２００からの撮像指示がどのようなタイミングで発行されても、視覚センサ１００（撮像部１１０）における撮像時のカウンタ値を正確に取得することができる。これにより、撮像指示と実際の撮像動作との間に無視できない遅延時間が生じるとしても、正確なトラッキング処理およびロボット３００の正確な制御が可能となる。
【０１３１】
さらに、コンベアの速度が変化した場合でも、撮像時のカウンタ値を正確に取得することができるため、カウンタ動作に係るパラメータをコンベア速度に依存して調整する必要がない。
【０１３２】
［実施の形態２］
上述した実施の形態１においては、視覚センサ１００およびロボット制御装置２００のいずれにもエンコーダ１４からのパルス信号が入力され、それぞれの主体が同一のパラメータに設定されたエンコーダカウンタ１３２および２３２で当該パルス信号に含まれるパルスの数をカウントすることで、コンベアの移動量（カウンタ値）を同期して保持する。これに対して、実施の形態２においては、ネットワークを介して、コンベアの移動量（カウンタ値）を同期して保持する構成について例示する。
【０１３３】
図１４は、本発明の実施の形態２に係る視覚センサを利用したコンベアトラッキングシステムにおける位置決めおよびトラッキング処理を説明するための図である。図１４を参照して、実施の形態２に係る視覚センサを利用したコンベアトラッキングシステムは、エンコーダ１４からのパルス信号が視覚センサ１００＃にのみ入力されており、かつ、視覚センサ１００＃とロボット制御装置２００＃との間にフィールドネットワークＦＮが設けられている点において、図２に示す実施の形態１に係る視覚センサを利用したコンベアトラッキングシステムとは異なっている。その他の構成については、実施の形態１と同様であるので、以下では、主として相違点についてのみ説明する。
【０１３４】
図１５は、本発明の実施の形態２に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。図１５を参照して、実施の形態２に係る視覚センサ１００＃を構成する画像処理部１２０＃は、図３に示す画像処理部１２０に比較して、フィールドネットワークインターフェイス（Ｉ／Ｆ）１６０をさらに備えている。また、実施の形態２に係るロボット制御装置２００＃は、図３に示すロボット制御装置２００に比較して、エンコーダカウンタ２３２および入出力インターフェイス（Ｉ／Ｆ）２３０に代えて、フィールドネットワークインターフェイス（Ｉ／Ｆ）２６０が設けられている。その他の構成については、実施の形態１と同様であるので、以下では、主として相違点についてのみ説明する。
【０１３５】
視覚センサ１００＃を構成する画像処理部１２０＃とロボット制御装置２００＃との間では、フィールドネットワークＦＮを介して、画像処理部１２０＃内のエンコーダカウンタ１３２でカウントされるカウンタ値が共有される。
【０１３６】
フィールドネットワークＦＮとしては、典型的には、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、Ｐｒｏｆｉｎｅｔ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット（登録商標）以外のフィールドネットワークを用いてもよい。例えば、モーション制御を行わない場合であれば、ＤｅｖｉｃｅＮｅｔ、ＣｏｍｐｏＮｅｔ／ＩＰ（登録商標）などを用いてもよい。本実施の形態においては、典型的に、産業用イーサネット（登録商標）であるＥｔｈｅｒＣＡＴ（登録商標）をフィールドネットワークＦＮとして採用する。
【０１３７】
一般的なフィールドネットワークでは、送受信に係る遅延時間が一定になるように構成されており、この遅延時間は数ｎｓ程度に抑えることができる。そのため、上述したような、ロボット制御装置２００が撮像指示を送信してから実際に撮像が行われるまでに遅延（タイムラグ）に比べれば十分に小さく、視覚センサ１００＃とロボット制御装置２００＃との間で、カウント値を実質的に同期して保持しているとみなすことができる。
【０１３８】
そのため、実施の形態１において説明したような共通のパラメータが設定されたエンコーダカウンタをそれぞれ設ける必要がなく、より簡素な構成で、２つの装置間でカウンタ値を同期して保持できる。すなわち、視覚センサ１００とロボット制御装置２００との間でコンベア１０の搬送経路における移動量を同期して保持する手段としては、視覚センサ１００（または、ロボット制御装置２００）に設けられたパルス信号に含まれるパルス数をカウントするためのカウンタと、当該カウンタによるカウンタ値を装置間で実質的に同期して共有するフィールドネットワークＦＮとにより実現される。
【０１３９】
なお、フィールドネットワークＦＮ内の遅延時間の大きさが無視できない場合であっても、フィールドネットワークＦＮにおける遅延時間は一定値に制御されるので、以下のような方法によって、カウンタ値を同期して保持することができる。
【０１４０】
図１６は、本発明の実施の形態２に係るフィールドネットワークＦＮにおける遅延時間の影響を説明するための図である。図１６を参照して、例えば、視覚センサ１００＃で更新されるカウンタ値が遅延時間ΔＤだけ遅れて、ロボット制御装置２００＃に伝えられるとする。この遅延時間ΔＤは基本的には一定（予想可能）であるので、この遅延時間ΔＤを考慮して制御タイミングなどをずらすような対処が考えられる。
【０１４１】
例えば、視覚センサ１００＃がカウンタ値に基づいて開始する制御動作の開始タイミングを遅延時間ΔＤだけ遅延させれば、ロボット制御装置２００＃との間の遅延時間ΔＤを実質的に相殺できる。
【０１４２】
あるいは、遅延時間ΔＤがカウンタ値の更新周期より長い場合には、エンコーダ１４からのパルス信号に含まれるパルス周期に遅延時間ΔＤを乗じて得られる補正量（カウンタ補正値）をカウンタ値に加えて、制御に用いるようにしてもよい。
【０１４３】
なお、上述の実施の形態２においては、視覚センサ１００＃がフィールドネットワークＦＮのホストとなり、ロボット制御装置２００＃がフィールドネットワークＦＮのスレーブとして構成される例を示したが、ホストとスレーブとの関係は逆であってもよい。この場合には、ロボット制御装置２００＃側にのみエンコーダ１４からのパルス信号が入力するとともに、ロボット制御装置２００＃内にエンコーダカウンタが設けられる。
【０１４４】
［実施の形態３］
次に、視覚センサ１００およびロボット制御装置２００とネットワークＮＷを介して接続されるサポート装置６００について説明する。
【０１４５】
図１７は、本発明の実施の形態３に係るサポート装置６００のハードウェア構成を示す模式図である。サポート装置６００は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【０１４６】
図１７を参照して、サポート装置６００は、ＯＳを含む各種プログラムを実行するＣＰＵ６１と、ＢＩＯＳや各種データを格納するＲＯＭ（Read Only Memory）６２と、ＣＰＵ６１でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリＲＡＭ６３と、ＣＰＵ６１で実行されるプログラムなどを不揮発的に格納するハードディスク（ＨＤＤ）６４とを含む。
【０１４７】
サポート装置６００は、さらに、ユーザからの操作を受付けるキーボード６５およびマウス６６と、情報をユーザに提示するためのモニタ６７とを含む。
【０１４８】
後述するように、サポート装置６００で実行される各種プログラムは、ＣＤ−ＲＯＭ６９に格納されて流通する。このＣＤ−ＲＯＭ６９に格納されたプログラムは、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）ドライブ６８によって読取られ、ハードディスク（ＨＤＤ）６４などへ格納される。あるいは、上位のホストコンピュータなどからネットワークを通じてプログラムをダウンロードするように構成してもよい。
【０１４９】
上述したように、サポート装置６００は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
【０１５０】
このようなサポート装置６００は、視覚センサ１００およびロボット制御装置２００のいずれともデータ通信可能であるので、各種のデータを収集することができる。そこで、本実施の形態に係るサポート装置６００は、調整時において計測処理の対象となった画像を視覚センサ１００から収集するように構成される。
【０１５１】
この視覚センサ１００から計測処理の対象となった画像を収集する場合に、対応する、カウンタ値および計測値（座標情報および角度等）と各画像とを関連付けて保存する。これらの情報は、ネットワークＮＷを介して、視覚センサ１００からサポート装置６００へ送信される。そして、サポート装置６００のハードディスク６４などに格納される。
【０１５２】
特に、対応するカウンタ値をキーとして、画像および計測結果を関連付けて保存することで、所望のタイミングに対応するカウンタ値を用いて、必要な画像および計測結果を容易に検索することができる。
【０１５３】
このような画像および計測結果のデータベースを用意することで、以下のような機能を提供することができる。すなわち、ロボット３００において、ロボット動作（位置決めおよびトラッキング処理）をカウンタ値と関連付けて記録しておくことで、ロボット動作と対応する画像処理を関連付けることができる。これにより、例えば、把持動作が失敗した場合などに、その失敗した原因を追求するために、把持対象であったワークの画像および計測結果をサポート装置６００上で再現できる。そのため、不具合原因をより容易に解析することができる。
【０１５４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５５】
１０  コンベア、１２  駆動ローラ、１４  エンコーダ、３０  搬出装置、６１，１２２  ＣＰＵ、６３  ＲＡＭ、６４  ハードディスク、６５  キーボード、６６  マウス、６７  モニタ、６８  ドライブ、６９  ＣＤ−ＲＯＭ、１００  視覚センサ、１１０  撮像部、１２０，１２０Ａ  画像処理部、１２４，２２０  メモリ、１２６  撮像制御部、１２８，２２８  通信インターフェイス、１３０，２３０  入出力インターフェイス、１３２，２３２  エンコーダカウンタ、１３４  バス、２００  ロボット制御装置、２１０  演算処理部、２４０  ピッキング制御部、２５０  移動制御部、３００  ロボット、４００  移動機構、５００  操作表示装置、６００  サポート装置、２１００  ティーチングペンダント、ＦＮ  フィールドネットワーク、ＮＷ  ネットワーク、Ｗ  ワーク。
【図１】
0005316563.tif 000002
【図２】
0005316563.tif 000003
【図３】
0005316563.tif 000004
【図４】
0005316563.tif 000005
【図５】
0005316563.tif 000006
【図６】
0005316563.tif 000007
【図７】
0005316563.tif 000008
【図８】
0005316563.tif 000009
【図９】
0005316563.tif 000010
【図１０】
0005316563.tif 000011
【図１１】
0005316563.tif 000012
【図１２】
0005316563.tif 000013
【図１３】
0005316563.tif 000014
【図１４】
0005316563.tif 000015
【図１５】
0005316563.tif 000016
【図１６】
0005316563.tif 000017
【図１７】
0005316563.tif 000018