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