説明

画像処理システムに向けられたユーザ支援装置、そのプログラムおよび画像処理装置

【課題】上述のようなコンベアトラッキング等などの画像処理システムにおいて、撮像部が撮像を行うための撮像開始条件をユーザが容易に設定できるユーザ支援装置、その機能を実現するためのプログラム、およびその機能を実装した画像処理装置を提供する。
【解決手段】ユーザ支援装置は、撮像部の撮像によって得られた画像を表示する表示手段と、表示手段に表示される画像に対して、検出すべきワークを示す領域の指定を受付ける入力手段と、撮像部の撮像範囲と搬送装置の物理的長さとの関係を利用して、検出すべきワークを示す領域の大きさから、搬送装置の移動量によって定義される撮像部の撮像開始条件を決定する決定手段とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンベアトラッキング等などの画像処理システムに向けられたユーザ支援装置、そのプログラムおよび画像処理装置に関する。
【背景技術】
【0002】
ファクトリーオートメーション(FA)分野においては、省力化のため、画像処理を用いて各種の工程を制御する技術が多用されている。このような画像処理技術の適用例の一つとして、ベルトコンベア等の搬送装置によってワークを搬送するとともに、その搬送中のワークを移動機械(以下、「産業用ロボット」あるいは単に「ロボット」とも称す。)を用いて、追跡(トラッキング)および把持するような作業工程がある。このような作業工程は、コンベアトラッキング等と称される。
【0003】
このコンベアトラッキングの技術においては、撮像装置を用いて搬送装置上のワークを撮像し、その撮像によって得られた画像に対して、画像処理装置を用いてパターンマッチングあるいは2値化処理などの計測処理を行うことで、各ワークの存在位置(座標値)を特定する。そして、この特定された各ワークの存在位置(座標値)に基づいて、ロボットが各ワークを追跡および把持する。
【0004】
例えば、特許文献1(特開2002−113679号公報)は、搬送体によって搬送される複数のワークを撮像し、当該撮像結果から認識された各ワークの位置座標に基づいて複数のワークのハンドリングを制御するトラッキング方法を開示している。より具体的には、特許文献1に記載のトラッキング方法は、撮像手段による撮像領域とその直後の撮像領域とがワークの全形が収まる一定の幅で進行方向に重なるように連続的に撮像し、撮像領域内に全形を含むワークのみ位置座標を認識するという構成を採用する。
【0005】
すなわち、特許文献1に記載のトラッキング方法においては、コンベアが一定量移動する毎に撮像に行われる。このとき、対象のワークの撮像/計測のもれが生じないように、互いに連続する撮像範囲の重複範囲が、ワークサイズ1つ分以上であって、カメラ視野の半分より小さくなるように、撮像タイミング(トリガ間隔)が設定される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−113679号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般的には、互いに連続する撮像範囲の重複範囲は、各生産ラインなどに応じて調整が必要となる場合が多い。しかしながら、特許文献1に記載のトラッキング方法では、この撮像範囲の調整方法については何ら言及されていない。
【0008】
例えば、ワークが食料品などのように不定形状である場合は、ワークサイズ(ワークの大きさ)を正確に把握することが難しいため、撮像範囲の重複範囲(すなわち、撮像タイミング)の調整に時間および手間がかかるという課題がある。
【0009】
さらに、画像処理装置における計測処理の方法によっては、重複範囲として設定すべき最小値がワークサイズより大きくなる場合がある。例えば、予め登録したモデルとのマッチング処理を用いて、ワークの位置を検出する場合、重複範囲として設定すべき最小値は、モデルとして登録すべき領域の外接矩形(モデルが回転する場合は、外接矩形の対角線)としなければならない。そうでなければ、ワークを正確に計測できないという事態が生じ得る。
【0010】
そこで、本発明は、上述のような課題を解決するためになされたものであり、その目的は、上述のようなコンベアトラッキング等などの画像処理システムにおいて、撮像部が撮像を行うための撮像開始条件をユーザが容易に設定できるユーザ支援装置、その機能を実現するためのプログラム、およびその機能を実装した画像処理装置を提供することである。
【課題を解決するための手段】
【0011】
本発明のある局面によれば、画像処理システムに向けられたユーザ支援装置を提供する。画像処理システムは、搬送装置上を搬送されるワークを撮像するように配置された撮像部と、撮像部に接続される画像処理装置とを含む。ユーザ支援装置は、撮像部の撮像によって得られた画像を表示する表示手段と、表示手段に表示される画像に対して、撮像範囲の間の重複範囲を決定する重複範囲決定手段と、撮像部の撮像範囲と搬送装置の属性との関係を利用して、決定された重複範囲の大きさから、搬送装置の移動量によって定義される撮像部の撮像開始条件を決定する撮像開始条件決定手段とを含む。
【0012】
好ましくは、ユーザ操作に応答して、決定された撮像開始条件を変更する変更手段をさらに含む。
【0013】
好ましくは、ユーザ支援装置は、撮像部の撮像によって得られた画像に対して計測処理を行う計測手段をさらに含む。重複範囲決定手段は、計測処理により検出された範囲から重複範囲を決定する。
【0014】
あるいは好ましくは、重複範囲決定手段は、表示手段に表示される画像に対して、検出すべき領域の指定に応答して、重複範囲を決定する。
【0015】
あるいは好ましくは、重複範囲決定手段は、少なくとも検出すべきワークを示す領域を含むように、重複範囲を決定する。
【0016】
さらに好ましくは、重複範囲決定手段は、検出すべきワークを示す領域の対角線より長くなるように、重複範囲を決定する。
【0017】
あるいは好ましくは、重複範囲決定手段は、搬送装置上を搬送されるワークに対応する範囲とともに、一連の撮像の対象となる複数の撮像範囲を同時に表示する手段と、表示される複数の撮像範囲に対するユーザ操作に応答して、重複範囲を決定する手段とを含む。
【0018】
好ましくは、ユーザ支援装置は、撮像開始条件と画像処理装置での計測処理時間との関係から、搬送装置で許容される搬送速度を決定する手段をさらに含む。
【0019】
好ましくは、ユーザ支援装置は、撮像開始条件と画像処理装置での計測処理時間との関係から、搬送装置で許容される搬送速度を決定する手段をさらに含む。
【0020】
この発明の別の局面に従えば、コンピュータにより実行されることで、当該コンピュータを画像処理システムに向けられたユーザ支援装置として機能させるプログラムを提供する。画像処理システムは、搬送装置上を搬送されるワークを撮像するように配置された撮像部と、撮像部に接続される画像処理装置とを含む。プログラムは、コンピュータを、撮像部の撮像によって得られた画像を表示する表示手段と、表示手段に表示される画像に対して、撮像範囲の間の重複範囲を決定する重複範囲決定手段と、撮像部の撮像範囲と搬送装置の属性との関係を利用して、決定された重複範囲の大きさから、搬送装置の移動量によって定義される撮像部の撮像開始条件を決定する撮像開始条件決定手段として機能させる。
【0021】
この発明のさらに別の局面に従えば、搬送装置上を搬送されるワークを撮像するように配置された撮像部に接続される画像処理装置を提供する。画像処理装置は、撮像部の撮像によって得られた画像を表示する表示手段と、表示手段に表示される画像に対して、撮像範囲の間の重複範囲を決定する重複範囲決定手段と、撮像部の撮像範囲と搬送装置の属性との関係を利用して、決定された重複範囲の大きさから、搬送装置の移動量によって定義される撮像部の撮像開始条件を決定する撮像開始条件決定手段とを含む。
【発明の効果】
【0022】
本発明によれば、コンベアトラッキング等などの画像処理システムにおいて、撮像部が撮像を行うための撮像開始条件をユーザが容易に設定できる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施の形態に係る視覚センサを利用したコンベアトラッキングシステムの構成を示す模式図である。
【図2】本発明の実施の形態に係る視覚センサを利用したコンベアトラッキングシステムにおける位置決めおよびトラッキング処理を説明するための図である。
【図3】本発明の実施の形態に係る視覚センサを利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。
【図4】本発明の実施の形態に係る視覚センサによる撮像範囲を説明するための図である。
【図5】本発明の実施の形態に係る視覚センサと接続可能なサポート装置のハードウェア構成を示す模式図である。
【図6】本発明の実施の形態に係るキャリブレーションを説明するための図である。
【図7】図6に示すキャリブレーションによって取得されるパラメータセットの一例を示す図である。
【図8】本発明の実施の形態に係るキャリブレーションの手順を説明するための図である。
【図9】本発明の実施の形態に係るキャリブレーションの手順を説明するための図である。
【図10】本発明の実施の形態に係るキャリブレーションの手順を説明するための図である。
【図11】本発明の実施の形態1に係るユーザインターフェイスの一例を示す図である。
【図12】本発明の実施の形態1に係るユーザインターフェイスの一例を示す図である。
【図13】本発明の実施の形態1に係る撮像開始条件の設定処理の手順を示すフローチャートである。
【図14】本発明の実施の形態2に係るユーザインターフェイスの一例を示す図である。
【図15】本発明の実施の形態2に係る撮像開始条件の設定処理の手順を示すフローチャートである。
【図16】本発明の実施の形態2に係るユーザインターフェイスの別の一例を示す図である。
【図17】本発明の実施の形態3に係るユーザインターフェイスの一例を示す図である。
【図18】図17に対応するワークの配置状態を説明するための図である。
【図19】本発明の実施の形態に係る視覚センサを利用したコンベアトラッキングシステムにおける搬送速度の上限値を決定する手順を示すフローチャートである。
【図20】本発明の実施の形態に係る視覚センサを利用したコンベアトラッキングシステムにおける制御動作を示すシーケンス図である。
【図21】本発明の実施の形態に係るロボット制御装置における処理を示すフローチャートである。
【発明を実施するための形態】
【0024】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0025】
<A.システム構成>
図1は、本発明の実施の形態に係る視覚センサ100を利用したコンベアトラッキングシステムの構成を示す模式図である。図1に示すコンベアトラッキングシステムは、2つの搬送装置(コンベア)10および20を含む。コンベア10および20は、それぞれ駆動ローラ12および22によって回転駆動される。以下では、コンベア10および20をそれぞれライン1およびライン2とも称す。図1に示す例では、ライン1は、紙面右側に移動し、ライン2は、紙面左側に移動する。ライン1には、搬出装置30等によって紙面左側からワークWがランダムに提供される。このライン1上のワークWは、紙面左側から紙面右側へ移動する。ワークWとしては、典型的には、お菓子等の食品や各種の錠剤等が想定される。
【0026】
本実施の形態に係る視覚センサ100は、ライン1上の所定位置に設けられる。後述するように、視覚センサ100は、ワークなどの被写体を撮像するための撮像部と当該撮像部によって撮像された画像を処理するための画像処理部とを一体的に構成したものである。但し、撮像部と画像処理部とを別体として構成してもよい。
【0027】
視覚センサ100は、その撮像範囲がライン1の幅方向(搬送方向とは直交する方向)の全体を含むように設定される。そして、視覚センサ100が所定の撮像開始条件に従って撮像を行うことで、ライン1上をランダムに流れてくるワークWを順次撮像する。視覚センサ100は、この順次撮像される画像に対してパターンマッチングや2値化処理といった計測処理を行うことで、各ワークの位置決めおよびトラッキング処理を行う。このように、視覚センサ100の撮像部(図3に示す撮像部110)は、搬送装置であるコンベア10上を搬送されるワークWを撮像するように配置されている。そして、この撮像部に画像処理装置(図3に示す画像処理部120)が接続される。
【0028】
ライン1の搬送方向には、視覚センサ100の下流側に、ワークWを把持してライン2へ移動させるロボット300が配置されている。このロボット300は、ワークWを把持するためのハンド先端を有しており、このハンド先端を目的位置に移動させることで、ライン2上のワークを把持する。すなわち、ロボット300は、搬送装置であるコンベア10(ライン1)の搬送経路において、視覚センサ100の撮像部の撮像範囲より下流側に配置されるとともにワークWを取り扱う移動機械に相当する。より具体的には、ロボット300は、そのハンド先端を目的のワークWに位置決めして、ピックアップしてライン2上に整列する。
【0029】
さらに、ロボット300は、ライン1に沿って移動するための移動機構400(図2参照)上に配置されており、所定の稼動範囲に亘って移動する。このロボット300の稼動範囲をトラッキング範囲とも称す。
【0030】
ロボット300のトラッキング処理および位置決め処理については、ライン1に設けられたエンコーダ14による検出結果を用いて制御される。このエンコーダ14は、典型的には、ロータリーエンコーダが採用され、回転に伴ってパルス信号を発生する。この発生するパルス信号のパルス数をカウントすることで、コンベア10(ライン1)と連結されたローラの回転数、すなわち、エンコーダ14が発生するパルス信号は、搬送装置であるコンベア10の搬送経路における移動量を示す信号に相当し、このパルス信号に基づいて、コンベア10の移動量が算出される。
【0031】
ロボット300は、ロボット制御装置200からの指示に従って動作する。すなわち、ロボット制御装置200は、移動機械であるロボット300を制御するための制御装置である。ロボット制御装置200は、視覚センサ100とネットワークNWを介して接続されており、視覚センサ100によって検出された各ワークWの位置に基づいて、ロボット300に対してワークWの把持動作に必要な指示を与える。
【0032】
ロボット制御装置200には、ロボット300のキャリブレーションなどを行うためのティーチングペンダント2100が接続されている。ユーザは、ティーチングペンダント2100を操作して、キャリブレーションなどに必要な位置にロボット300を移動させる。
【0033】
ネットワークNWには、視覚センサ100およびロボット制御装置200に加えて、操作表示装置500およびサポート装置600が接続されていてもよい。操作表示装置500は、視覚センサ100からの処理結果やロボット制御装置200からのロボット300の動作状態などを表示するとともに、ユーザからの操作に応答して、視覚センサ100および/またはロボット制御装置200へ各種の指示を与える。
【0034】
図1に示すコンベアトラッキングシステムにおいては、撮像範囲を重複させて撮像を行った場合に、同一のワークが重複して撮像されることがある。この場合には、同一のワークが重複して検出されることになる。そのため、ワークの位置座標が検出されるたびに、先に検出されているワークと重複しているか否かをチェックし、重複した検出結果を削除する重複排除機能が実装される。この重複排除機能は、視覚センサ100および/またはロボット制御装置200内に実装されることが好ましい。
【0035】
<B.位置決めおよびトラッキング処理>
次に、図1に示すコンベアシステムにおける位置決めおよびトラッキング処理の詳細について説明する。
【0036】
図2は、本発明の実施の形態に係る視覚センサ100を利用したコンベアトラッキングシステムにおける位置決めおよびトラッキング処理を説明するための図である。図2を参照して、視覚センサ100は、内蔵の撮像部を用いてライン1を撮像する。視覚センサ100の撮像動作は、視覚センサ100で発行された撮像指示、または、ロボット制御装置200で発行された撮像指示に応じて開始される。
【0037】
本実施の形態に係るコンベアトラッキングシステムにおいては、この撮像指示を発行するための撮像開始条件(典型的には、後述するように、コンベアの移動量で定義される撮像周期)をより容易に決定するための支援ロジックが実装される。
【0038】
撮像指示がロボット制御装置200で発行される場合には、撮像指示は、視覚センサ100とロボット制御装置200とを接続するネットワークNW経由で搬送される。このネットワークNWは、典型的には、イーサネット(登録商標)などの汎用的なネットワークを採用することができる。
【0039】
視覚センサ100は、撮像指示に応答して撮像を開始する。これにより、視覚センサ100は、撮像範囲を写した画像を順次取得する。そして、視覚センサ100は、当該画像に対して計測処理(典型的には、予め登録されたワークWについてのモデル画像に基づくパターンマッチング処理、あるいは、2値化処理)を実行する。さらに、視覚センサ100は、この計測処理によって得られた各ワークWの撮像時の位置情報(X,Y,θ)をロボット制御装置200へ送信する。
【0040】
このように、視覚センサ100は、撮像部の撮像によって得られた画像に対して計測処理を行うことで、画像中の予め登録されたワークに対応する領域の位置情報を取得する。
【0041】
視覚センサ100から送信される位置情報は、コンベア10上のワークWの位置(X,Y)およびワークWの回転角度(θ)を含む。
【0042】
また、ワークWの座標値(X,Y)には、ロボット制御装置200における処理を簡素化する観点から、ロボット300を制御するための座標系に換算した値が用いられる。すなわち、視覚センサ100は、ワークWの位置情報をロボット300の座標系で定義された値としてロボット制御装置200へ送信する。
【0043】
より具体的には、図2に示すように、視覚センサ100(撮像部110)が撮像によって、幅WD×高さHT[pixel]の画像が取得できるとする。この画像に対して設定されるxy座標系(以下、「画像座標系」とも称す。)において定義される座標値(xi,yi)をロボット300のハンド先端(ピッキング)位置に対して設定されるXY座標系(以下、「ロボット座標系」とも称す。)の座標値に変換する。この座標変換に係る変換式およびパラメータについては、後述する。
【0044】
このような座標変換を行うことで、ロボット300のハンド先端(ピッキング)位置をX座標(コンベアの搬送方向)およびY座標(コンベアの搬送方向とは直交する方向)で定義しておき、このXY座標系(ロボット座標系)を用いてパターンマッチング処理により検出された各ワークの位置を特定することができる。
【0045】
このように、位置情報は、撮像によって取得された画像中の予め登録されたワークに対応する領域を移動機械であるロボット300の座標系「ロボット座標系」で表した座標値を含む。また、各ワークWの計測された位置情報をロボット座標系の値として出力できるように、視覚センサ100およびロボット制御装置200は、予めキャリブレーションされている。このキャリブレーションについては、後述する。
【0046】
また、ワークWの回転角度(θ)は、ワークWのモデル画像を基準とした場合の回転角度を意味する。すなわち、位置情報は、予め登録されたワークの姿勢を基準とした、画像中の当該ワークに対応する領域の回転角度をさらに含む。ワークWの形状によっては、この回転角度の情報に基づいて、ロボット300のハンド先端の回転角度などが適宜制御される。
【0047】
ロボット制御装置200は、エンコーダ14からのパルス信号に含まれるパルス数をカウントし、予め定められた値以上の数のパルスが入力されたタイミングで、ネットワークNWを経由して視覚センサ100に対して撮像指示を送出する。
【0048】
視覚センサ100からの各ワークの位置情報は、ネットワークNWを介してロボット制御装置200へ送信され、ロボット制御装置200の内部にあるメモリに格納される。また、ロボット制御装置200は、エンコーダ14からのパルス信号を受けるたびに、メモリ内に格納されているすべてのワークWの座標値(X,Y)を更新する。これは、ロボット制御装置200のメモリ上において、実際にベルトコンベア上を搬送するワークWをトラッキングするためである。そして、いずれかのワークWの更新後の位置情報(座標値)がロボット300のトラッキング範囲に入ると、ロボット300に対して把持動作に必要な指示を与える。
【0049】
ライン1に設けられたエンコーダ14の検出結果に応じて生成されるパルス信号は、視覚センサ100およびロボット制御装置200へ入力されるように構成されている。視覚センサ100およびロボット制御装置200は、パルス信号に含まれるパルス数をカウントするためのエンコーダカウンタをそれぞれ有している。エンコーダ14からのパルス信号は、並列的に、視覚センサ100およびロボット制御装置200に入力されるので、それぞれのエンコーダカウンタを同じタイミングで初期化(カウンタリセット)しておけば、その後に入力されるパルス信号についてのカウント値は互いに同じ値となる。カウント値についての同期をとることができる。
【0050】
より具体的には、視覚センサ100およびロボット制御装置200には、いずれも、エンコーダ14からのパルス信号に含まれる1パルスあたりのコンベアの移動量が予め設定されている。さらに、視覚センサ100およびロボット制御装置200のそれぞれのエンコーダカウンタについても、互いに同一のパラメータ(カウンタ最大値、カウンタ最小値、1パルスに対する増加値など)が設定されている。すなわち、視覚センサ100のエンコーダカウンタは、ロボット制御装置200のエンコーダカウンタとの間で、カウントに関して同一のパラメータが設定されている。
【0051】
また、これらのエンコーダカウンタによるカウント値は、生産ラインの稼動前に0に初期化される。すなわち、視覚センサ100のエンコーダカウンタは、パルス信号に含まれるパルス数のカウント開始前に、ロボット制御装置200のエンコーダカウンタとともに、リセットされる。
【0052】
このように本実施の形態においては、視覚センサ100とロボット制御装置200との間でコンベア10の搬送経路における移動量を同期して保持する手段が実現される。
【0053】
上述のような構成の下、視覚センサ100は、ロボット制御装置200からの撮像指示に従って実際に撮像を行ったときのカウント値を各ワークの位置情報に付加して、ロボット制御装置200へ送信する。すなわち、視覚センサ100は、ワークWの位置情報と対応するコンベア10における移動量とをロボット制御装置200へ送信する。
【0054】
上述したように、視覚センサ100とロボット制御装置200との間でカウント値を同期して保持しているため、ロボット制御装置200から撮像指示を送出したタイミングと、撮像指示に応答して視覚センサ100が実際に撮像を行ったタイミングとの間にライムラグがあっても、共通の時間軸上で、すなわち同期されたカウント値を用いて、実際に撮像が行われたタイミングが特定される。
【0055】
このように、視覚センサ100は、検出されたワークWの位置情報と、当該位置情報の取得に用いた画像を撮像したときのコンベア10における移動量とをロボット制御装置200へ送信する。このワークWの位置情報の取得に用いた画像を撮像したときの移動量は、カウンタによるカウント値で示される。
【0056】
ロボット制御装置200では、視覚センサ100から受信した撮像時のカウント値を用いて、対応する位置情報を補正した上で、自装置のメモリに格納する。これによって、ライン速度が高く、撮像指示の出力から現実の撮像までのタイムラグが、ロボット300における位置決めおよびトラッキング処理に影響を与えるという事態を回避できる。
【0057】
<C.ハードウェア構成>
図3は、本発明の実施の形態に係る視覚センサ100を利用したコンベアトラッキングシステムのハードウェア構成について示す模式図である。図3を参照して、視覚センサ100は、撮像部110と、画像処理部120とを含む。
【0058】
撮像部110は、撮像範囲に存在する被写体を撮像する装置であり、主体たる構成要素として、レンズや絞りなどの光学系と、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどの受光素子とを含む。撮像部110は、画像処理部120からの指令に従って撮像するとともに、その撮像によって得られた画像データを画像処理部120へ出力する。
【0059】
画像処理部120は、CPU(Central Processing Unit)122と、メモリ124と、撮像制御部126と、通信インターフェイス(I/F)128と、入出力インターフェイス(I/F)130と、エンコーダカウンタ132とを含む。これらのコンポーネントは、バス134を介して互いにデータ通信可能に接続されている。
【0060】
CPU122は、画像処理部120において主たる演算を行うプロセッサである。メモリ124は、CPU122によって実行される各種プログラム、撮像部110によって撮像された画像データ、各種パラメータなどを格納する。典型的には、メモリ124は、DRAM(Dynamic Random Access Memory)などの揮発性記憶装置と、FLASHメモリなどの不揮発性記憶装置とからなる。
【0061】
撮像制御部126は、CPU122などからの内部コマンドに従って、接続されている撮像部110における撮像動作を制御する。撮像制御部126は、撮像部110に対して各種コマンドを送信するインターフェイスと、撮像部110からの画像データを受信するインターフェイスとを有している。
【0062】
通信インターフェイス128は、ロボット制御装置200との間で各種データを遣り取りする。典型的には、視覚センサ100およびロボット制御装置200とはイーサネット(登録商標)を介して接続されており、通信インターフェイス128は、このようなイーサネット(登録商標)に準拠したハードウェアである。
【0063】
入出力インターフェイス130は、画像処理部120から外部へ各種信号を出力し、あるいは、外部からの各種信号を入力する。特に、入出力インターフェイス130は、エンコーダ14で生成されるパルス信号を受け入れ、その信号をデジタル信号に変換してエンコーダカウンタ132へ出力する。
【0064】
エンコーダカウンタ132は、エンコーダ14からのパルス信号に含まれるパルス数をカウントする。このエンコーダカウンタ132は、基本的には、CPU122の演算サイクルとは独立して動作するため、エンコーダ14からのパルス信号に含まれるパルス数を取り逃すことがない。
【0065】
一方、ロボット制御装置200は、演算処理部210と、通信インターフェイス(I/F)228と、入出力インターフェイス(I/F)230と、エンコーダカウンタ232と、ピッキング制御部240と、移動制御部250とを含む。
【0066】
演算処理部210は、視覚センサ100からの位置情報に基づいて、ロボット300および移動機構400に対してコマンドを出力するための演算を行うプロセッサであり、それぞれのワークWをトラッキングするためのメモリ220を含む。メモリ220には、視覚センサ100の計測処理によって検出されたそれぞれのワークWの位置情報が格納される。演算処理部210は、対象のコンベアの移動(エンコーダ14からのパルス信号に基づいて検出)に応じて、それぞれのワークWの位置情報を順次更新する。
【0067】
通信インターフェイス(I/F)228は、視覚センサ100の画像処理部120との間で各種データを遣り取りする。典型的には、視覚センサ100およびロボット制御装置200とはイーサネット(登録商標)を介して接続されており、通信インターフェイス228は、このようなイーサネット(登録商標)に準拠したハードウェアである。
【0068】
入出力インターフェイス230は、ロボット制御装置200から外部へ各種信号を出力し、あるいは、外部からの各種信号を入力する。特に、入出力インターフェイス230は、エンコーダ14で生成されるパルス信号を受け入れ、その信号をデジタル信号に変換してエンコーダカウンタ232へ出力する。
【0069】
エンコーダカウンタ232は、エンコーダ14からのパルス信号に含まれるパルス数をカウントする。このエンコーダカウンタ232は、基本的には、演算処理部210の演算サイクルとは独立して動作するため、エンコーダ14からのパルス信号に含まれるパルス数を取り逃すことがない。
【0070】
ピッキング制御部240は、演算処理部210などからの内部コマンドに従って、接続されているロボット300における把持動作を制御する。ピッキング制御部240は、ロボット300のそれぞれの可動軸における目標位置などを送信するインターフェイスと、ロボット300のそれぞれの可動軸における現在位置を受信するインターフェイスとを有している。
【0071】
移動機構400は、演算処理部210などからの内部コマンドに従って、接続されているロボット300を駆動する移動機構400におけるトラッキングを制御する。移動機構400は、移動機構400の目標位置および目標速度などを送信するインターフェイスと、移動機構400の移動軸における現在位置を受信するインターフェイスとを有している。
【0072】
<D.撮像開始条件>
本実施の形態に係るコンベアトラッキングシステムは、コンベア上を搬送されるワークを順次撮像するための撮像開始条件を決定するための支援機能を提供する。この撮像開始条件は、コンベア10の搬送速度が変動した場合であっても、対象のワークの撮像もれや計測もれ(検出もれ)が生じないように、コンベア10の移動量に関連付けて定義される。より具体的には、コンベア10が所定距離だけ進むごとに、撮像部110を用いて撮像を行う。そのため、典型的な撮像開始条件は、撮像指示を発生する周期を示すコンベア10の移動量(エンコーダ14からのパルス信号のカウント値)として定義される。すなわち、エンコーダカウンタ132または232のカウント値が、撮像開始条件として設定された所定値だけ増加するごとに、撮像指示が発行される。この撮像指示に応答して、撮像部110による撮像範囲の撮像および撮像によって得られた画像に対する計測処理が行われる。また、このような撮像指示を発生する周期をトリガ間隔とも称す。
【0073】
図4は、本発明の実施の形態に係る視覚センサ100による撮像範囲を説明するための図である。図4(a)を参照して、まず、視覚センサ100(撮像部110)が撮像によって、幅WD×高さHT[pixel]の画像が取得できるとする。一方、コンベア10上のワークWは、コンベア10の搬送速度で移動することになる。図4(a)の状態から所定期間後に撮像指示が与えられ、視覚センサ100(撮像部110)による撮像が行われた場合に、図4(b)に示すような画像が取得されたとする。
【0074】
本実施の形態に係るコンベアトラッキングシステムでは、対象のワークWの撮像/計測のもれが生じないように、一連の撮像の対象となる撮像範囲の間の重複範囲、すなわち、前回の撮像範囲と今回の撮像範囲との間の重複範囲(図4(b)参照)が、少なくともワークW(モデルとして登録すべき領域)を含むように、撮像開始条件が設定される。
【0075】
典型的には、本実施の形態に係るコンベアトラッキングシステムでは、一連の撮像の対象となる撮像範囲の間の重複範囲の搬送方向における長さが、ワークW(モデルとして登録すべき領域)の対角線の長さより大きくなるように、撮像開始条件を設定することが好ましい。これは、ワークWの配置方向が必ずしも揃っているわけではないため、ワークWの回転角度によらず、対象のワークの撮像/計測のもれを生じさせないためには、重複範囲の長さLを、少なくとも、ワークWの対角線の長さより大きくすることが好ましいからである。
【0076】
なお、図4(b)に示す前回の撮像範囲および今回の撮像範囲のいずれにも、ワークWは含まれることになるので、それぞれの撮像範囲を撮像して得られた画像のいずれにおいても、ワークWが検出される(パターンマッチングにより抽出される)。この場合には、上述の重複排除機能により、同一のワークWからは1つの位置情報のみが登録されるように処理されるので、コンベアトラッキングにおいては、何ら問題は生じない。
【0077】
本実施の形態においては、このような撮像開始条件をユーザが容易に設定できるようなユーザインターフェイスを提供する。これらのユーザインターフェイスの実現例について、実施の形態1〜4として詳細に後述する。
【0078】
<E.ユーザ支援装置>
まず、上述したような撮像開始条件を容易に設定するためのユーザインターフェイスを提供するユーザ支援装置の一例について説明する。典型的には、本実施の形態に係るユーザ支援装置は、視覚センサ100およびロボット制御装置200とネットワークNWを介して接続されるサポート装置600(図1)として実装される。すなわち、サポート装置600は、視覚センサ100を含む画像処理システムに向けられたユーザ支援装置に相当する。
【0079】
図5は、本発明の実施の形態に係る視覚センサ100と接続可能なサポート装置600のハードウェア構成を示す模式図である。サポート装置600は、典型的には、汎用のコンピュータで構成される。なお、メンテナンス性の観点からは、可搬性に優れたノート型のパーソナルコンピュータが好ましい。
【0080】
図5を参照して、サポート装置600は、OSを含む各種プログラムを実行するCPU61と、BIOSや各種データを格納するROM(Read Only Memory)62と、CPU61でのプログラムの実行に必要なデータを格納するための作業領域を提供するメモリRAM63と、CPU61で実行されるプログラムなどを不揮発的に格納するハードディスク(HDD)64とを含む。
【0081】
サポート装置600は、さらに、ユーザからの操作を受付けるキーボード65およびマウス66と、情報をユーザに提示するためのモニタ67とを含む。
【0082】
後述するように、サポート装置600で実行される各種プログラムは、CD−ROM69に格納されて流通する。すなわち、本実施の形態に係るユーザ支援装置を実現するためのプログラム(すなわち、ユーザインターフェイスを提供するためのプログラム)は、CD−ROM69に格納される。そして、これらのプログラムは、CD−ROM(Compact Disk-Read Only Memory)ドライブ68によって読取られ、ハードディスク(HDD)64などへ格納される。もちろん、上位のホストコンピュータなどからネットワークを通じてプログラムをサポート装置600へダウンロードするように構成してもよい。
【0083】
このようにユーザ支援装置を実現するためのプログラムがサポート装置600にインストールされることで、CPU61には、ユーザ支援ロジック61aが実現される。このユーザ支援ロジック61aが後述するようなユーザ支援機能を提供する。なお、本実施の形態に係るユーザ支援装置は、視覚センサ100および/またはロボット制御装置200との間で必要なデータを遣り取りする場合もある。このような場合には、サポート装置600と、視覚センサ100および/またはロボット制御装置200とが協働してユーザ支援機能を提供するとも言える。また、ユーザ支援ロジック61aは、サポート装置600で実行されるオペレーションシステム(OS)が提供する共通モジュール(ライブラリ)などを利用して、各種の表示画面を生成する場合もある。そのため、ユーザ支援機能を実現するためのプログラムとしては、OSが提供する汎用的な部分については含まれないことになるが、このような場合であっても、本発明の権利範囲に含まれることは言うまでもない。さらに、ユーザ支援ロジック61aは、CPU61がプログラムを実行することで実現される場合以外に、その全部または一部を専用のハードウェアを用いて実現してもよい。
【0084】
上述したように、サポート装置600は、汎用的なコンピュータを用いて実現されるので、これ以上の詳細な説明は行わない。
【0085】
また、本実施の形態に係るユーザ支援装置は、操作表示装置500として具現化してもよいし、このユーザ支援機能を視覚センサ100に実装してもよい。
【0086】
<F.キャリブレーション>
次に、本実施の形態に係るユーザ支援機能を実現するための各種パラメータを取得するためのキャリブレーションについて説明する。
【0087】
図6は、本発明の実施の形態に係るキャリブレーションを説明するための図である。図7は、図6に示すキャリブレーションによって取得されるパラメータセットの一例を示す図である。図8〜図10は、本発明の実施の形態に係るキャリブレーションの手順を説明するための図である。
【0088】
図6を参照して、本実施の形態に係るキャリブレーションにおいては、主として、以下の2つの観点でキャリブレーションが行われる。
【0089】
(1) ロボット−コンベア間のキャリブレーション:
このキャリブレーションにおいては、エンコーダ14からのパルス信号に含まれる1パルスあたりのコンベアの移動量が取得される。このコンベアの移動量は、図7の下から2段目に示されるdXおよびdYに相当する。このコンベアの移動量は、ロボット300がエンコーダ14からのパルス信号を受けて、コンベア10上のワーク位置を追跡(トラッキング)するために必要なパラメータである。
【0090】
(2) 視覚センサ−ロボット間のキャリブレーション:
視覚センサ100によって計測されたワークの位置情報(画像座標系の座標値(xi,yi)[pixel])を、ロボット座標系の座標値(X,Y)[mm]に変換するための関係式が取得される。この関係式は、図7の最下段に示される6個のパラメータA〜Fによって定義される。
【0091】
なお、図6に示すように、キャリブレーションを行うためには、ロボット300の位置情報(ロボット座標値)が必要であるので、ロボット制御装置200からネットワークNWを介して視覚センサ100にこれらの位置情報が転送される。
【0092】
次に、キャリブレーションの手順についてより詳細に説明する。なお、後述するように、本実施の形態に係るコンベアシステムにおいては、ユーザは、上述したようなキャリブレーションの意味を理解せずとも、指定された手順に従って操作するだけで、容易にキャリブレーションを行うことができる。より具体的には、本実施の形態に係るキャリブレーションは、図8〜図10に示す3段階の手順によって実現される。
【0093】
なお、本実施の形態に係るキャリブレーションにおいては、図7の最上段に示すターゲットパターンが描画されたキャリブレーション用シートSが用いられる。このキャリブレーション用シートSに示されたターゲットパターンは、その内部が約90°ずつに塗り分けられた5個の円(マーク)を含む。なお、後述するように、基本的には4個のマークを用いてキャリブレーションが行われるが、追加的に配置された1個のマークは、キャリブレーション用シートSの配置向きを所定方向に統一するために用いられる。
【0094】
(第1段階)
第1段階としては、図8に示すように、ユーザは、ターゲットパターンが描画されたキャリブレーション用シートSを視覚センサ100(撮像部110)の視野内に配置する。そして、ユーザは、視覚センサ100に対して撮像指示を与える。すると、視覚センサ100は、撮像によって得られた画像(ターゲットパターンが被写体として含まれる画像)に対して計測処理を行い、ターゲットパターンに含まれる四隅に配置された4個のマークについての各中心点の座標値を決定する。これによって、ターゲットパターンに含まれる4個のマークについての画像座標系の座標値[pixel]がそれぞれ取得される。この取得される4個の座標値が、図7の最上段に示される(xi1,yi1)、(xi2,yi2)、(xi3,yi3)、(xi4,yi4)に相当する。
【0095】
(第2段階)
第2段階としては、図9に示すように、ユーザは、コンベア10を動かしてターゲットパターンが描画されたキャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)内に配置するとともに、ロボット300を操作して、ターゲットパターンに含まれる4個のマークとロボット300との位置関係を対応付ける。
【0096】
より具体的には、まず、ユーザは、コンベア10を動かして、キャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)内に配置する。なお、このコンベア10の移動前(キャリブレーション開始時)のカウント値が、予め取得されているものとする。このカウント値が図7の上から2段目に示されるエンコーダカウント値E1(キャリブレーション開始時)に相当する。
【0097】
続いて、ユーザは、ロボット制御装置200に付属しているティーチングペンダント2100を操作するなどによって、ロボット300のハンド先端をキャリブレーション用シートS上の1つのマークと対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボット制御装置200が把握しているロボット300の位置情報(ロボット300のハンド先端の位置を示すロボット座標系での座標値)が視覚センサ100へ送信される。このロボット300のハンド先端の位置決めして、および、位置決め状態におけるロボット300の位置情報の視覚センサ100へ送信する処理は、ターゲットパターンに含まれる4個のマークのすべてに対して繰り返し実行される。
【0098】
このような手順によって、ターゲットパターンに含まれる4個のマークに対応するロボット300の位置情報がそれぞれ取得される。この取得される4個のマークに対応するロボット300の位置情報が、図7の上から3段目に示される(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)に相当する。
【0099】
なお、図9に示すように、キャリブレーション用シートSがロボット300のトラッキング範囲(稼動範囲)内に配置された状態は、4個のマークすべてに対応するロボット300の位置情報が視覚センサ100へ送信されるまで維持される。
【0100】
また、視覚センサ100は、図9に示す状態におけるカウント値についても格納する。このカウント値が、図7の上から2段目に示されるエンコーダカウント値E2(コンベアをロボット稼動範囲(上流)まで移動させたとき)に相当する。
【0101】
(第3段階)
第3段階としては、図10に示すように、ユーザは、コンベア10をさらに動かしてキャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)の最下流の位置に配置するとともに、ロボット300を操作して、ターゲットパターンに含まれる1個のマークとロボット300との位置関係を対応付ける。
【0102】
より具体的には、まず、ユーザは、コンベア10を動かして、キャリブレーション用シートSをロボット300のトラッキング範囲(稼動範囲)の下流側の端部に配置する。
【0103】
続いて、ユーザは、ティーチングペンダント2100を操作するなどによって、ロボット300のハンド先端をキャリブレーション用シートS上の1番目のマーク(第2段階で座標値(X1,Y1)を取得したマーク)と対応するように位置決めする。ユーザは、この位置決めされた状態で指示を与えることで、ロボット制御装置200が把握しているロボット300の位置情報(ロボット300のハンド先端の位置を示すロボット座標系での座標値)が視覚センサ100へ送信される。
【0104】
このような手順によって、ターゲットパターンに含まれる1番目のマークに対応するロボット300の位置情報がそれぞれ取得される。この取得される1番目のマークに対応するロボット300の位置情報が、図7の上から4段目に示される(X5,Y5)に相当する。
【0105】
また、視覚センサ100は、図10に示す状態におけるカウント値についても格納する。このカウント値が、図7の上から2段目に示されるエンコーダカウント値E3(コンベアをロボット稼動範囲(下流)まで移動させたとき)に相当する。
【0106】
(パラメータ算出処理)
上述したような第1〜第3段階の処理によって取得されたパラメータを用いて、まず、エンコーダ14からの1カウントあたりのワークの移動量dXおよびdYが算出される。より具体的には、以下の式に従って算出される。
【0107】
dX=(X5−X1)/(E3−E2)
dY=(Y5−Y1)/(E3−E2)
これらの式は、図9に示す状態と図10に示す状態との間で、ロボット300のハンド先端がキャリブレーション用シートS内の同一のマークに位置決めされた場合に生じる、カウント値の変化量に対するロボット300の位置情報の変化量を算出することを意味する。これらの演算式によって、1カウントあたりのワークの移動量dXおよびdYが決定される。すなわち、ロボット−コンベア間のキャリブレーションが実現される。
【0108】
また、図8において取得される画像座標系の座標値(xi1,yi1),(xi2,yi2),(xi3,yi3),(xi4,yi4)と、図9において取得されるロボット座標系の座標値(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4)との対応関係に基づいて、座標系の変換に係る変換式の6個のパラメータA〜Fが決定される。すなわち、公知の手法を用いて、以下の式を満たす(あるいは、誤差が最小となる)パラメータA〜Fが決定される。
【0109】
X=A・xi+B・yi+C
Y=D・xi+E・yi+F
これにより、視覚センサ−ロボット間のキャリブレーションが実現される。
【0110】
<G.実施の形態1>
(g1:概略)
まず、実施の形態1として、ユーザがモデルとして登録すべき領域を指定することに応答して、撮像開始条件が自動的に設定される例について説明する。なお、この自動的に設定された撮像開始条件は、いわゆるデフォルト設定として扱われ、ユーザは必要に応じてこれらの撮像開始条件を任意に変更することができる。
【0111】
図11および図12は、本発明の実施の形態1に係るユーザインターフェイスの一例を示す図である。図11は、計測処理としてサーチ処理(パターンマッチング処理)を行う場合の例を示し、図12は、計測処理として2値化処理を行う場合の例を示す。すなわち、図11に示すサーチ処理においては、検出すべきワークを示すモデルが予め登録され、この登録されたモデルと一致する領域がサーチされる。一方、図12に示す2値化処理においては、入力された画像に対して2値化処理が行われ、この2値化処理によって他の領域とは区別される部分(白領域または黒領域)がワークとして検出される。
【0112】
(g2:サーチ処理)
まず、図11を参照して、計測処理としてサーチ処理を用いる場合に、撮像開始条件を設定するためのユーザインターフェイスについて説明する。
【0113】
本実施の形態に係るユーザ支援機能の開始が指示されると、図11(a)に示すように、計測処理を選択するためのメニューを含むガイダンス画面800がモニタ67(図5)に表示される。ガイダンス画面800は、計測処理のリストが提示されるメニュー部分810と、撮像部110の視野(撮像範囲)の大きさを実寸法(搬送装置の物理的長さ)で示す視野表示部820とを含む。
【0114】
図11(a)に示すメニュー部分810のうち、ユーザがサーチ処理を意味する「0.サーチ」の行811を選択すると、図11(b)に示すガイダンス画面801へ遷移する。図11(b)を参照して、ガイダンス画面801は、撮像部110によって撮像された画像を表示する表示領域840を含む。この表示領域840に表示される画像は、撮像部110での撮像タイミングに応じて順次更新されるモード(スルーモード)、および、撮像部110があるタイミングで撮像して得られる画像を表示するモード(フリーズモード)を選択できるようにしてもよい。
【0115】
このガイダンス画面801は、「モデル登録する範囲を囲ってください」という、ユーザに検出すべきワークを示す領域(サーチ処理に用いられるモデル)の指定を促す画面である。ユーザは、ガイダンス画面801の表示領域840に表示される画像に対して、検出すべきワークを示す領域を指定する。具体的には、ユーザは、マウス66(図5)などを用いて、カーソル845でモデル領域844を指定する。なお、モデル領域844の指定方法は、任意の入力手段を用いた方法を採用することができる。
【0116】
このユーザに指定されたモデル領域844は、表示領域840の画像上に明示的に示される。なお、モデル領域844の設定に伴って、モデル領域844の画像内の位置情報がモデル範囲表示部830に表示される。このモデル範囲表示部830には、典型的には、モデル領域844の対角線上にある2つの座標値が表示される。
【0117】
図11(b)に示すガイダンス画面801においてモデル領域844の設定が完了すると、後述するような計算ロジックに従って、撮像開始条件(トリガ間隔)が決定される。この撮像開始条件が決定されると、図11(c)に示すガイダンス画面802へ遷移する。このガイダンス画面802は、撮像開始条件を示す撮像開始条件表示部835を含む。撮像開始条件表示部835には、撮像開始条件(トリガ間隔)が、コンベア10の物理的長さ(ロボット座標系での長さ)として表示される(図11(c)に示す「50[mm]」)とともに、その長さに対応するパルス数(カウント値)としても表示される(図11(c)に示す「1000[pulse]」)。
【0118】
さらに、ガイダンス画面802は、決定された撮像開始条件を変更するためのインターフェイスについても提供する。すなわち、ガイダンス画面802は、重複範囲の長さLをユーザが任意に変更するための操作バー860を含む。ユーザは、表示領域840に表示される画像およびその上に設定されるモデル領域844の大きさなどを見ながら、操作バー860を操作することで、より好ましい撮像開始条件に微調整することもできる。
【0119】
なお、コンベア10の搬送方向は、撮像部110の撮像範囲のいずれかの辺に対して平行であるとは限らないので、その搬送方向を示す搬送方向表示842が表示領域840の上にオーバーレイ表示される。この搬送方向表示842は、上述のキャリブレーションによって取得される、エンコーダ14からの1カウントあたりのワークの移動量dX(X方向)[mm/pulse]およびdY(Y方向)[mm/pulse]を用いて生成される。
【0120】
次に、図11に示すようなユーザが指定するモデル領域844に応じて、撮像開始条件を決定するロジックについて説明する。上述したキャリブレーションによって、パルス信号の1カウントあたりのワークの移動量dXおよびdY、ならびに、画像座標系からロボット座標系への変換に係る6個のパラメータA〜Fが予め取得されているとする。また、撮像部110の撮像によって得られる画像サイズ(幅WD×高さHT[pixel])も既知である。
【0121】
撮像開始条件は、図11に示すガイダンス画面において設定される計測処理(サーチ処理)に係る設定内容を用いて算出される。より具体的には、一連の撮像の対象となる撮像範囲の間の重複範囲の搬送方向における長さが、検出すべきワークを示す領域の対角線の長さより大きくなるように、撮像開始条件が決定される。
【0122】
すなわち、撮像開始条件(トリガ間隔)を概略的な数式で示すと、以下のようになる。
(トリガ間隔)={(画像サイズ)−(モデルとして登録すべき領域の外接矩形対角線)}/(エンコーダ1パルスあたりの移動量)
但し、実装の形態としては、対角線の長さを計算するのではなく、ロボット座標系のX軸方向およびY軸方向のうち、ワークWがより大きく移動する方向の成分のみに着目して、撮像開始条件を決定すればよい。これにより、計算に要するリソースを低減できる。すなわち、ワークWのX方向の移動量dXとY方向の移動量dYとの大小関係に応じて、下記のいずれかの式に従って、トリガ間隔が算出される。なお、重複範囲の長さをL[pixel]とする。
【0123】
(1)dX>dYの場合:
(トリガ間隔)={A・(WD−L)}/dX[pulse]
(2)dX≦dYの場合:
(トリガ間隔)={D・WD+E・(HT−L)}/dY[pulse]
なお、ユーザが図11(c)の操作バー860などを操作することで、重複範囲の長さLが変更されると、上述の式が再度実行され、撮像開始条件(トリガ間隔)が更新される。
【0124】
以上のような処理をまとめると以下のように表現することができる。本実施の形態に係る支援機能は、表示手段であるモニタ67に表示される画像に対して、ユーザ操作に応答して撮像範囲の間の重複範囲を決定し、撮像部110の撮像範囲とコンベア10(搬送装置)の属性との関係を利用して、決定された重複範囲の大きさから、コンベア10の移動量によって定義される撮像部110の撮像開始条件を決定する。
【0125】
すなわち、表示手段であるモニタ67は、視覚センサ100の撮像部110の撮像によって得られた画像を表示する。そして、入力手段であるキーボード65および/またはマウス66は、モニタ67に表示される画像に対して、検出すべきワークを示す領域の指定を受付ける。この受付けられた指令は、CPU61(ユーザ支援ロジック61a)へ転送される。CPU61(ユーザ支援ロジック61a)は、撮像部110の撮像範囲とコンベア10(搬送装置)の属性との関係を利用して、コンベア10(搬送装置)の移動量(パルス数)によって定義される撮像部110の撮像開始条件を決定する。この撮像部110の撮像範囲とコンベア10の属性との関係の具体的な内容としては、パルス信号の1カウントあたりのワークの移動量dX(X方向)およびdY(Y方向)、ならびに、画像座標系からロボット座標系への変換に係る6個のパラメータA〜Fからなる変換関数を含む。さらに、CPU61(ユーザ支援ロジック61a)は、図11(c)の操作バー860に示すように、ユーザ操作に応答して、決定された撮像開始条件を変更する。
【0126】
このとき、CPU61(ユーザ支援ロジック61a)は、一連の撮像の対象となる撮像範囲の間の重複範囲が、少なくとも検出すべきワークを示す領域を含むように、撮像開始条件を決定する。言い換えれば、CPU61(ユーザ支援ロジック61a)は、一連の撮像の対象となる撮像範囲の間の重複範囲の搬送方向における長さが、検出すべきワークを示す領域の対角線の長さより大きくなるように、撮像開始条件を決定する。
【0127】
(g3:2値化処理)
次に、図12を参照して、計測処理として2値化処理を用いる場合に、撮像開始条件を設定するためのユーザインターフェイスについて説明する。
【0128】
本実施の形態に係るユーザ支援機能の開始が指示されると、図11(a)と同様の計測処理を選択するためのメニューを含むガイダンス画面800がモニタ67(図5)に表示される(図12(a))。
【0129】
図12(a)に示すメニュー部分810のうち、ユーザが2値化処理を意味する「1.2値化」の行812を選択すると、図12(b)に示すガイダンス画面803へ遷移する。図12(b)に示すガイダンス画面803においては、表示領域840に、撮像部110によって撮像された画像に対して2値化処理が実行された後の結果画像が表示される。すなわち、表示領域840には、各画素が「黒」または「白」に量子化(2値化)されたモノクロ画像が表示される。この2値化処理のしきい値(2値化レベル)は、ユーザがレベル設定ボックス870に任意の値(例えば、0〜255)を設定することで、自在に変更することができる。
【0130】
ユーザは、表示領域840に表示される結果画像を確認しながら、適切な2値化レベルを設定することになる。このような2値化処理が実行された後、CPU61(ユーザ支援ロジック61a)は、その結果画像に含まれるより少ない色の画素(図12(b)に示す例では「白」)の領域を特定し、グルーピングすることで、検出すべきワークを特定する。さらに、特定した各ワークを囲む外接矩形領域846を決定する。さらに、CPU61(ユーザ支援ロジック61a)は、複数の外接矩形が抽出された場合には、その対角線の長さが最大となるものを特定し、その対角線の長さの最大値をワークサイズの最大値(ワークの最大寸法)として決定する。このワークの最大寸法の情報は、最大寸法表示部832に表示される。
【0131】
このようにワークの最大寸法が決定されると、後述するような計算ロジックに従って、撮像開始条件(トリガ間隔)が決定される。この撮像開始条件が決定されると、図12(c)に示すガイダンス画面804へ遷移する。このガイダンス画面804の撮像開始条件表示部835には、撮像開始条件(トリガ間隔)が、コンベア10の物理的長さ(ロボット座標系での長さ)として表示される(図12(c)に示す「50[mm]」)とともに、その長さに対応するパルス数(カウント値)としても表示される(図12(c)に示す「1000[pulse]」)。
【0132】
さらに、ガイダンス画面804は、決定された撮像開始条件を変更するためのインターフェイスについても提供する。すなわち、ガイダンス画面802は、重複範囲の長さLをユーザが任意に変更するための操作バー860を含む。ユーザは、表示領域840に表示される画像およびその上に設定される外接矩形領域846および変更後の外接矩形領域848の大きさなどを見ながら、操作バー860を操作することで、より好ましい撮像開始条件に微調整することもできる。このとき、2値化処理の結果画像から算出される初期値(デフォルト値)の外接矩形領域846と、ユーザ操作によって変更された外接矩形領域848との両方を結果画像上に重ねて表示することが好ましい。
【0133】
なお、コンベア10の搬送方向は、撮像部110の撮像範囲のいずれかの辺に対して平行であるとは限らないので、図12(c)においても、その搬送方向を示す搬送方向表示842が表示領域840の上にオーバーレイ表示される。
【0134】
次に、図12に示すようなユーザが指定する外接矩形領域846に応じて、撮像開始条件を決定するロジックについて説明する。上述したように、パルス信号の1カウントあたりのワークの移動量dXおよびdY、ならびに、画像座標系からロボット座標系への変換に係る6個のパラメータA〜Fが予め取得されているとする。また、撮像部110の撮像によって得られる画像サイズ(幅WD×高さHT[pixel])も既知である。
【0135】
撮像開始条件は、図12に示すガイダンス画面において算出または設定されるワークの最大寸法を用いて算出される。より具体的には、一連の撮像の対象となる撮像範囲の間の重複範囲の搬送方向における長さが、対象のワークの最大寸法(矩形領域の対角線の長さ)より大きくなるように、撮像開始条件が決定される。
【0136】
すなわち、撮像開始条件(トリガ間隔)を概略的な数式で示すと、以下のようになる。
(トリガ間隔)={(画像サイズ)−(ワーク最大径)}/(エンコーダ1パルスあたりの移動量)
但し、実装の形態としては、対角線の長さを計算するのではなく、ワークWがロボット座標系のX軸方向およびY軸方向のうちより大きく移動する方向の成分のみに着目して、撮像開始条件を決定すればよい。これにより、計算に要するリソースを低減できる。すなわち、上述の図11について説明した式に従って、トリガ間隔が算出される。
【0137】
なお、ユーザが図12(c)の操作バー860などを操作することで、重複範囲の長さLが変更されると、上述の式が再度実行され、撮像開始条件(トリガ間隔)が更新される。
【0138】
以上のような処理をまとめると以下のように表現することができる。本実施の形態に係る支援機能は、表示手段であるモニタ67に表示される画像に対して、計測処理(典型的には、2値化処理)により検出された範囲から重複範囲を決定し、撮像部110の撮像範囲とコンベア10(搬送装置)の属性との関係を利用して、決定された重複範囲の大きさから、コンベア10の移動量によって定義される撮像部110の撮像開始条件を決定する。すなわち、表示手段であるモニタ67は、視覚センサ100の撮像部110の撮像によって得られた画像を表示する。このとき、撮像部110の撮像によって得られた画像に対して計測処理(2値化処理)を行う計測手段が実装されており、モニタ67は、その計測処理の結果(結果画像)を表示する。
【0139】
CPU61(ユーザ支援ロジック61a)は、撮像部110の撮像範囲とコンベア10(搬送装置)の属性との関係を利用して、検出すべきワークを示す領域の大きさから、コンベア10(搬送装置)の移動量(パルス数)によって定義される撮像部110の撮像開始条件を決定する。上述したように、この撮像部110の撮像範囲とコンベア10の属性との関係の具体的な内容としては、パルス信号の1カウントあたりのワークの移動量dXおよびdY、ならびに、画像座標系からロボット座標系への変換に係る6個のパラメータA〜Fからなる変換関数を含む。さらに、CPU61(ユーザ支援ロジック61a)は、図12(c)の操作バー860に示すように、ユーザ操作に応答して、決定された撮像開始条件を変更する。すなわち、入力手段であるキーボード65および/またはマウス66は、モニタ67に表示される画像に対して、検出すべきワークを示す領域の指定を受付ける。この受付けられた指令は、CPU61(ユーザ支援ロジック61a)へ転送される。
【0140】
そして、CPU61(ユーザ支援ロジック61a)は、一連の撮像の対象となる撮像範囲の間の重複範囲が、少なくとも検出すべきワークを示す領域を含むように、撮像開始条件を決定する。言い換えれば、CPU61(ユーザ支援ロジック61a)は、一連の撮像の対象となる撮像範囲の間の重複範囲の搬送方向における長さが、検出すべきワークを示す領域の対角線の長さより大きくなるように、撮像開始条件を決定する。
【0141】
(g4:フローチャート)
次に、上述の実施の形態1に係る撮像開始条件の設定処理の手順について説明する。図13は、本発明の実施の形態1に係る撮像開始条件の設定処理の手順を示すフローチャートである。図13を参照して、CPU61(ユーザ支援ロジック61a)は、ユーザ支援機能の開始が指示される(ステップS100においてYES)と、図11(a)および図12(a)に示すような、計測処理を選択するためのメニューを含むガイダンス画面を表示する(ステップS102)。そして、CPU61は、「サーチ処理」および「2値化処理」のいずれが選択されたかを判断する(ステップS104)。「サーチ処理」が選択された場合(ステップS104において「サーチ処理」の場合)、処理はステップS110へ進み、「2値化処理」が選択された場合(ステップS104において「2値化処理」の場合)、処理はステップS120へ進む。
【0142】
ステップS110において、CPU61は、撮像部110の撮像によって取得された画像を表示し(ステップS110)、さらに、ユーザからのモデル領域844の指定を受付ける(ステップS112)。ユーザによってモデル領域844が指定されると、CPU61は、指定されたモデル領域844の大きさを取得し(ステップS114)、さらに、そのモデル領域844の大きさ(対角線長さ)から撮像開始条件(トリガ周期;重複範囲の長さL)を算出する(ステップS116)。さらに、CPU61は、算出した撮像開始条件およびコンベアの移動方向などを表示中の画像の上に重ねて表示する(ステップS118)。
【0143】
ステップS120において、CPU61は、撮像部110の撮像によって取得された画像を表示し、さらに、ユーザからの2値化レベルの指定を受付ける(ステップS122)。ユーザによって2値化レベルが指定されると、CPU61は、指定された2値化レベルに従って2値化処理を実行する(ステップS124)。続いて、CPU61は、2値化処理によって得られた結果画像に含まれる特定画素群をグルーピングした上で、検出対象として特定した各ワークを囲む外接矩形領域846を決定する(ステップS126)。さらに、CPU61は、決定した複数の外接矩形領域846の対角線の長さが最大となるものを特定し、その対角線の長さの最大値をワークサイズの最大値(ワークの最大寸法)として決定する(ステップS128)。CPU61は、決定したワークサイズの最大値(ワークの最大寸法)から撮像開始条件(トリガ周期;重複範囲の長さL)を算出する(ステップS130)。さらに、CPU61は、算出した撮像開始条件およびコンベアの移動方向などを表示中の画像の上に重ねて表示する(ステップS132)。
【0144】
その後、CPU61は、ユーザによる重複範囲の長さLについての変更を受付ける(ステップS140)。すなわち、ユーザは、ガイダンス画面に表示される画像(または、結果画像)ならびに領域表示などを見ながら、適切な重複範囲の長さLを微調整する。ユーザが重複範囲の長さLを変更すると、それに応答して、CPU61は、撮像開始条件を更新する(ステップS142)。
【0145】
さらに、CPU61は、ユーザ支援機能の終了が指示される(ステップS144においてYES)まで、ステップS140以下の処理を繰返す。
【0146】
<H.実施の形態2>
(h1:概略)
次に、実施の形態2として、トラッキング対象のワークのサイズが既知である場合に、ユーザがワークサイズを設定することで、撮像開始条件が自動的に設定される例について説明する。例えば、一般的な生産ラインなどでは、設計仕様書や金型などのサイズから、製品または半製品の大きさが既知である場合も多い。このような場合には、撮像部110を用いて実際に撮像するまでもなく、このワークサイズの情報から、撮像開始条件(重複範囲の長さ)を決定してもよい。
【0147】
上述の実施の形態1と同様に、決定された撮像開始条件は、いわゆるデフォルト設定として扱われ、ユーザは必要に応じてこれらの撮像開始条件を任意に変更することができる。
【0148】
(h2:ガイダンス画面例1)
図14は、本発明の実施の形態2に係るユーザインターフェイスの一例を示す図である。本実施の形態に係るユーザ支援機能の開始が指示されると、図14に示すようなガイダンス画面805がモニタ67(図5)に表示される。ガイダンス画面805は、撮像開始条件であるトリガ間隔を入力(変更)するための数値ボックス881と、ワークサイズを入力するための数値ボックス882とを含む。図14には、トリガ間隔およびワークサイズのいずれについても、最も実用的なロボット座標系での値(一例として「ミリ」)単位で入力される例を示すが、画像座標系での値(一例として「画素数/ピクセル」)またはパルス数であってもよい。
【0149】
まずは、ワークサイズが入力されると、仮想表示領域883において、検出対象のワークのサイズを示す円マーク887および、それに関連付けて、第1撮像範囲884および第2撮像範囲885が表示される。第1撮像範囲884および第2撮像範囲885は、視覚センサ100(撮像部110)が撮像によって取得する画像の大きさ(すなわち、幅WD×高さHT[pixel])と、数値ボックス882に入力されるワークサイズとの相対関係に基づいた大きさで表示される。
【0150】
より具体的には、第1撮像範囲884(実線表示)は、入力されたワークサイズによって規定されるワークに内接するような位置に設定される。また、第2撮像範囲885(破線表示)は、第1撮像範囲884との重複範囲(両範囲の重なり部分)にワークの全体が含まれるように、初期設定される。このように、第1撮像範囲884および第2撮像範囲885が設定されると、それに従って撮像開始条件(トリガ間隔)が決定され、その決定された撮像開始条件(トリガ間隔)が数値ボックス881に表示される。
【0151】
また、ガイダンス画面805は、スライドバー886を含む。このスライドバー886は、第2撮像範囲885の相対位置と連動しており、ユーザは、スライドバー886を操作することで、第1撮像範囲884と第2撮像範囲885との間の重複範囲の長さを調整する。すなわち、ユーザがスライドバー886を操作すると、仮想表示領域883に表示される、第1撮像範囲884およびワークのサイズを示す円マーク887の位置は固定されたまま、第2撮像範囲885が紙面左右方向に移動する。なお、数値ボックス881に示されるトリガ間隔の値は、ユーザによるスライドバー886の操作に連動して随時更新される。
【0152】
なお、撮像開始条件の初期値は、数値ボックス882に入力されるワークサイズに応じて、以下の数式に従って算出される。
【0153】
(トリガ間隔)={(画像サイズ)−(ユーザ設定のワークサイズ)}/(エンコーダ1パルスあたりの移動量)
但し、実装の形態としては、対角線の長さを計算するのではなく、ロボット座標系のX軸方向およびY軸方向のうち、ワークWがより大きく移動する方向の成分のみに着目して、撮像開始条件を決定すればよい。より具体的な算出方式は、上述の実施の形態1と同様であるので、詳細な説明は繰返さない。
【0154】
図14に示す撮像開始条件の設定処理の手順は、図15に示すようなフローチャートとして表すことができる。図15は、本発明の実施の形態2に係る撮像開始条件の設定処理の手順を示すフローチャートである。
【0155】
図15を参照して、CPU61(ユーザ支援ロジック61a)は、ユーザ支援機能の開始が指示される(ステップS200においてYES)と、図14に示すガイダンス画面805を表示する(ステップS202)。そして、CPU61は、ユーザからの数値ボックス882を介したワークサイズの入力を待つ(ステップS204)。ワークサイズが入力されると(ステップS204においてYES)、CPU61は、視覚センサ100(撮像部110)が撮像によって取得する画像の大きさ、および、入力されたワークサイズなどに基づいて、撮像開始条件(トリガ間隔)の初期値を算出する(ステップS206)。続いて、CPU61は、算出した撮像開始条件の初期値に基づいて、仮想表示領域883において、検出対象のワークのサイズを示す円マーク887、ならびに、第1撮像範囲884および第2撮像範囲885を表示する(ステップS208)。
【0156】
続いて、CPU61は、ユーザによるスライドバー886に対する操作を待つ(ステップS210)。スライドバー886が操作されると(ステップS210においてYES)、CPU61は、ユーザによるスライドバー886の操作量に応じて、先に決定されている撮像開始条件を更新する(ステップS212)とともに、仮想表示領域883における表示も更新する(ステップS214)。
【0157】
CPU61は、ユーザ支援機能の終了が指示される(ステップS216においてYES)まで、ステップS210以下の処理を繰返す。
【0158】
以上のような処理をまとめると以下のように表現することができる。本実施の形態に係る支援機能は、表示手段であるモニタ67に、コンベア10(搬送装置)上を搬送されるワークWに対応する範囲とともに、一連の撮像の対象となる複数の撮像範囲を同時に表示し、表示される複数の撮像範囲に対するユーザ操作に応答して、重複範囲を決定する。さらに、撮像部110の撮像範囲とコンベア10(搬送装置)の属性との関係を利用して、決定された重複範囲の大きさから、コンベア10の移動量によって定義される撮像部110の撮像開始条件を決定する。すなわち、表示手段であるモニタ67は、コンベア10上を搬送されるワークに対応する範囲(円マーク887)とともに、一連の撮像の対象となるそれぞれ撮像範囲(第1撮像範囲884および第2撮像範囲885)を表示する。このとき、モニタ67は、一連の撮像の対象となる複数の撮像範囲を同時に表示する。また、入力手段であるキーボード65および/またはマウス66は、表示されるワークの大きさの指定を受付ける(ガイダンス画面805中の数値ボックス882)。
【0159】
CPU61(ユーザ支援ロジック61a)は、撮像部110の撮像範囲とコンベア10の物理的長さとの関係を利用して、モニタ67に表示されている撮像範囲の位置関係から、コンベア10の移動量によって定義される撮像部110の撮像開始条件を決定する。さらに、CPU61(ユーザ支援ロジック61a)は、ユーザ操作(ガイダンス画面805中のスライドバー886)に応答して、モニタ67に表示される撮像範囲を変更する。
【0160】
(h3:ガイダンス画面例2)
上述のガイダンス画面例1においては、重複範囲を設定するユーザインターフェイスとして、第1撮像範囲884およびワークの位置を固定した上で、第2撮像範囲の位置をスライドさせるという構成を採用した例を示した。これに対して、以下に説明するガイダンス画面例2においては、実際の搬送路をイメージして、ワークの位置をスライドさせて、撮像開始条件を設定するという構成を採用した例を示す。
【0161】
図16は、本発明の実施の形態2に係るユーザインターフェイスの別の一例を示す図である。本実施の形態に係るユーザ支援機能の開始が指示されると、まずは、図16(a)に示すようなガイダンス画面806がモニタ67(図5)に表示される。ガイダンス画面806においても、撮像開始条件であるトリガ間隔を入力(変更)するための数値ボックス881と、ワークサイズを入力するための数値ボックス882とを含む。
【0162】
数値ボックス882に何らかのワークサイズが入力されると、実際のコンベアに模した仮想表示領域890において、検出対象のワークのサイズを示す円マーク893が表示される。円マーク893がオーバーレイ表示される仮想表示領域890の表示範囲は、スライドバー894と連動しており、ユーザがスライドバー894を操作することで、仮想表示領域890の全体が紙面左右方向にスライドする。すなわち、スライドバー894のスライド操作に応答して、ワークサイズが示されたコンベアに模した画像が動くことになる。
【0163】
ユーザは、スライドバー894を操作して、ワークを示す円マーク893が適切な位置にある状態で、マウスに応答して移動するカーソル895などを用いて、カメラアイコン896を選択する。すると、図16(a)に示すような、第1撮像範囲891が設定される。なお、カメラアイコン896が選択される前は、第1撮像範囲891を設定可能な領域が未確定の状態を示す態様(図16(a)の例では、破線)で表示されており、カメラアイコン896が選択された後は、第1撮像範囲891の領域を設定済の状態を示す態様(図16(b)の例では、実線)で表示されている。
【0164】
第1撮像範囲891が一旦設定されると、第1撮像範囲891の仮想表示領域890(表示されるワーク)に対する相対位置は、固定される。すなわち、一旦設定された第1撮像範囲891については、ユーザによるスライドバー894に連動して紙面左右方向にスライドするようになる。なお、この時点では、やり直しアイコン897は非活性状態(グレイアウト)となっている。
【0165】
続いて、ユーザは、第1撮像範囲891が設定されている状態で、さらにスライドバー894を操作して、仮想表示領域890をスライドさせて、先に設定されている第1撮像範囲891との間の相対距離を調整する。この場合にも、第2撮像範囲892を設定可能な領域が未確定の状態を示す態様(図16(b)の例では、破線)で表示される。
【0166】
ユーザは、仮想表示領域890に対してオーバーレイされた第1撮像範囲891(実線)と未確定の第2撮像範囲892(破線)とを比較することで、両者の重なり度合いを決定する。ユーザは、両者の重なり度合いが適切な位置に調整した上で、カメラアイコン896を選択する。
【0167】
すると、第1撮像範囲891および第2撮像範囲892の相対的な位置関係が決定されるので、両者の重なり度合い(重複範囲)が定まり、これによって、撮像開始条件(トリガ間隔)の初期値が算出される。
【0168】
なお、ユーザがやり直しアイコン897を選択すると、先に決定されている撮像開始条件(トリガ間隔)はリセットされる。したがって、図16に示すガイダンス画面806においては、ユーザによる初期設定値からの変更は、やり直しアイコン897の選択後に、スライドバー894を再度操作するとともに、カメラアイコン896を再度選択することになる。
【0169】
基本的な撮像開始条件を設定するための処理は、上述の図14に示すフローチャートと同様であるので、ここでは、詳細な説明は繰返さない。
【0170】
<I.実施の形態3>
次に、実施の形態3として、ユーザが視野範囲を直接確認しながら撮像開始条件を決定する例について説明する。
【0171】
図17は、本発明の実施の形態3に係るユーザインターフェイスの一例を示す図である。図18は、図17に対応するワークWの配置状態を説明するための図である。
【0172】
本実施の形態に係るユーザ支援機能の開始が指示されると、図17(a)に示すように、計測処理を選択するためのメニューを含むガイダンス画面807がモニタ67(図5)に表示される。ガイダンス画面807には、表示領域840に撮像部110によって撮像された画像が表示される。この表示領域840に表示される画像は、撮像部110での撮像タイミングに応じて順次更新されることが好ましい。
【0173】
ユーザは、図18(a)に示すように、撮像部110の撮像範囲内であって、コンベア10の上流側に検出対象のワークWを配置する。たとえば、図17(a)に示すような位置関係にワークWが配置された状態で、ユーザは、ガイダンス画面807の撮影ボタン862を選択する。撮影ボタン862の1番目の選択によって、1番目の撮像タイミングが算出される。すなわち、1番目の撮像タイミングに対応するカウント値が取得される。
【0174】
続いて、ユーザは、図18(b)に示すように、コンベア10を駆動してワークWを、撮像部110の撮像範囲内であって、コンベア10の下流側に配置する。すなわち、ユーザは、ガイダンス画面807の表示領域840に表示される内容を確認しながら、2番目の撮像タイミングに対応するワークWの相対位置を探す。そして、ユーザは、2番目の撮像タイミングとすべき相対位置になった状態で、ガイダンス画面807の撮影ボタン862を選択する。すると、2番目の撮像タイミングに対応するカウント値が取得される。
【0175】
そして、1番目の撮像タイミングに対応するカウント値と2番目の撮像タイミングに対応するカウント値とから、撮像開始条件(撮像周期)が算出される。この算出された撮像開始条件は、ガイダンス画面807の撮像開始条件表示部835に表示される。
【0176】
典型的には、ユーザは、1番目および2番目のいずれの撮像タイミングにおいても、撮像部110の撮像範囲に同一のワークWが含まれるように、ワークを適切に位置決めする。
【0177】
なお、図17(c)に示すような撮像開始条件が自動的に決定された後であっても、ユーザは、その値を微調整することができる。
【0178】
基本的な撮像開始条件を設定するための処理は、上述の図14に示すフローチャートと同様であるので、ここでは、詳細な説明は繰返さない。
【0179】
実施の形態3によれば、ユーザは、実際の撮像によって得られる画像のイメージを見ながら撮像タイミングを調整できるので、より直感的に撮像開始条件を決定できる。
【0180】
<J.許容速度算出>
上述の実施の形態1〜3のいずれかの方法に従って撮像開始条件を決定した後、当該決定された撮像開始条件の下で許容される搬送速度を決定することもできる。以下、このような許容される搬送速度を決定する方法について例示する。
【0181】
上述したように、撮像開始条件は、コンベア10の移動距離(カウント値)によって定義されるトリガ間隔として規定される。そのため、コンベア10の移動速度が高くなるほど、ある撮像を行ってから次の撮像を行うまでの時間間隔は短くなる。そのため、撮像に時間間隔は、視覚センサ100による撮像動作および撮像された画像に対する計測処理に要する時間より長くする必要がある。そこで、コンベア10の搬送速度の上限値は、以下のような手順で予め算出することができる。
【0182】
図19は、本発明の実施の形態に係る視覚センサ100を利用したコンベアトラッキングシステムにおける搬送速度の上限値を決定する手順を示すフローチャートである。
【0183】
図19を参照して、まず、上述のいずれかの方法によって、撮像開始条件および対応する重複範囲の長さL[pixel]を算出したとする(ステップS300)。
【0184】
次に、ユーザは、テスト計測を実行する。より具体的には、ユーザは、コンベア10上に複数のワークWを配置するとともに、これらのワークWに対して計測処理を実行させる(ステップS302)。あわせて、ユーザは、複数のワークWに対する計測処理の処理結果などを見ながら、計測処理に係るパラメータを調整する(ステップS304)。この調整内容としては、モデル範囲の調整や回転角度の分割数などの調整が挙げられる。計測処理に要する時間が最も小さくなるように、パラメータが調整される。
【0185】
この調整が完了すると、計測処理に要する時間である計測処理時間T[sec]が取得される(ステップS306)。この計測処理時間Tからコンベア10の搬送速度の上限値(最大搬送速度V[mm/sec])が算出される(ステップS308)。
【0186】
より具体的には、上述したトリガ間隔の算出方法と同様に、ワークWのX方向の移動量dXとY方向の移動量dYとの大小関係に応じて、下記のいずれかの式に従って、最大搬送速度Vが算出される。
【0187】
(1)dX>dYの場合:
最大搬送速度V={A・(WD−L)+B・HT}/T[mm/sec]
(2)dX≦dYの場合:
最大搬送速度V={D・WD+E・(HT−L)}/T[mm/sec]
このように、本実施の形態に係る視覚センサ100においては、撮像開始条件(トリガ間隔)と画像処理装置での計測処理時間(T[sec])との関係から、搬送装置(コンベア10)で許容される搬送速度を決定する機能を有する。
【0188】
このような機能を搭載することで、視覚センサおよび搬送装置を含めた生産設備全体の生産能力を容易に評価することができる。
【0189】
<K.稼動中の処理手順>
次に、上述のような手順によって決定された撮像開始条件に従う稼動中の処理手順について説明する。
【0190】
図20は、本発明の実施の形態に係る視覚センサ100を利用したコンベアトラッキングシステムにおける制御動作を示すシーケンス図である。
【0191】
図20を参照して、まず、視覚センサ100およびロボット制御装置200のいずれに対しても、互いに同一のパラメータ(カウンタ最大値、カウンタ最小値、1パルスに対する増加値など)が設定される(ステップS1およびS2)。そして、視覚センサ100およびロボット制御装置200のいずれに対しても、それぞれのエンコーダカウンタに対するリセット(カウンタリセット)が実行される(ステップS3およびS4)。このようなエンコーダカウンタについての共通パラメータの設定およびカウンタリセットが実行されて、視覚センサ100およびロボット制御装置200との間で、エンコーダ14からのパルス信号に含まれるパルスの数についてのカウント動作を同期させることができる。
【0192】
続いて、視覚センサ100の画像処理部120は、撮像開始条件が満たされたか否かを判断する(ステップS5)。すなわち、視覚センサ100の画像処理部120は、エンコーダ14からのパルス信号に含まれるパルス数が前回撮像したときの値からトリガ間隔以上増加したか否かを判断する。
【0193】
撮像開始条件が満たされていれば、視覚センサ100の画像処理部120は、視覚センサ100に対して、撮像指示を発行する(ステップS6)。視覚センサ100の画像処理部120は、撮像指示の発行に同期して、エンコーダカウンタ132を参照して、撮像時のカウンタ値(C0)を取得する(ステップS7)。
【0194】
続いて、視覚センサ100の画像処理部120は、撮像部110に撮像を実行させる(ステップS8)。撮像部110が撮像して得られた画像は、画像処理部120へ伝送される。画像処理部120は、撮像部110からの画像に対して計測処理を実行する(ステップS9)。さらに、画像処理部120は、ステップS9における計測処理によって得られた計測結果(それぞれのワークの位置情報(X,Y,θ))を、ステップS7において取得したカウンタ値C0とともに、ロボット制御装置200へ送信する(ステップS10)。
【0195】
ロボット制御装置200は、画像処理部120からの計測結果に基づいて、重複排除処理を実行する(ステップS11)。
【0196】
ロボット制御装置200の演算処理部210は、新たなワークWについての位置情報が取得されたか否かを判断し(ステップS12)、新たなワークWについての位置情報が取得された場合(ステップS12においてYESの場合)には、メモリに当該新たな位置情報を格納する(ステップS13)。そして、処理はリターンする。
【0197】
<L.ロボット制御装置における処理>
次に、ロボット制御装置200における処理について説明する。
【0198】
図21は、本発明の実施の形態に係るロボット制御装置200における処理を示すフローチャートである。図21(a)〜図21(d)には、ロボット制御装置200において実行される主要な処理を例示するが、ロボット制御装置200における処理は図21に示すものに限られない。
【0199】
図21(a)は、エンコーダ14がパルス信号を発生した場合に生じる処理を示す。より具体的には、図21(a)の処理は、エンコーダ14がパルス信号を発生し、エンコーダカウンタ232がカウントアップする(ステップS50)ことをイベントとして起動される。エンコーダカウンタ232がカウントアップすると、ロボット制御装置200のメモリに格納されているそれぞれのワークの位置情報が更新される(ステップS51)。この位置情報の更新方法については、以下のとおりである。
【0200】
図2に示すように、ワークがX方向に搬送され、ロボット300のトラッキング範囲の右端をX方向の原点とする。このとき、エンコーダ14の1パルスあたりのコンベアの移動量(移動ベクトル)を(dX,dY)とすると、更新前の位置情報が(X0,Y0,θ0)であるワークWの位置情報は、n個のパルスが入力したとすると、更新後の位置情報は、(X0−dX×n,Y0−dY×n,θ0)となる。すなわち、1パルス当たりのコンベア上の単位移動量にパルスの数を乗じて得られた値がワークWの移動量(dX×n,dY×n)となる。そして、ワークWが原点方向に移動しているとすると、この移動量(移動ベクトル)の分だけワークの位置情報が更新される。
【0201】
そして、エンコーダカウンタ232が新たにカウントアップするまで待つ。
図21(b)においても、エンコーダ14がパルス信号を発生した場合に生じる処理を示す。より具体的には、図21(b)の処理は、エンコーダ14がパルス信号を発生し、エンコーダカウンタ232がカウントアップする(ステップS50)ことをイベントとして起動される。エンコーダカウンタ232がカウントアップすると、撮像指示の発生条件が成立したか否かが判断される。例えば、上述の例では、エンコーダ14からのパルス信号に含まれるパルス数が前回撮像したときの値から所定値以上増加したか否かが判断される。そして、撮像指示の発生条件が成立した場合(ステップS50においてYESの場合)には、ロボット制御装置200から視覚センサ100へ撮像指示が送信される。
【0202】
図21(c)は、ロボット300による把持動作について説明するものである。図21(c)のフローは、ワークの位置情報が更新された(ステップS60)ことをイベントとして起動される。より具体的には、ワークの位置情報が更新されると、ロボット300のトラッキング範囲内にいずれかのワークWが存在しているか否かが判断される(ステップS61)。ロボット300のトラッキング範囲内にいずれかのワークWが存在している場合(ステップS61においてYESの場合)には、ロボット300によるワークWの把持動作の制御が開始される。具体的には、トラッキング範囲内にある把持対象ワークの位置情報の取得(ステップS62)、把持対象ワークとロボット300との偏差の算出(ステップS63)、ステップS63において算出された偏差に基づいて、ロボット300および移動機構400についての指示の生成(ステップS64)、および、ワークWの位置情報の更新(ステップS65)が繰返される。そして、ロボット300がワークWを把持することができる位置まで移動すると、ロボット制御装置200は、ロボット300に対して把持動作の指示を出力する(ステップS66)。続いて、把持状態のロボット300に対して、把持しているワークWを目的の位置まで移動させるための、移動動作の指示をロボット300に対して出力する(ステップS67)。そして処理は、リターンする。
【0203】
図21(d)は、他の位置情報を受けることをイベントとして起動される。より具体的には、現在の位置情報が算出され(ステップS69)、さらに、重複排除処理が実行される(ステップS70)。その後、位置情報がメモリへ格納される(ステップS71)。
【0204】
ステップS69に示すワークWの現在の位置情報の算出方法については、撮像時のカウント値と各時点のカウント値との差分を算出し、この差分に1パルス当たりのコンベア上の単位移動量を乗じて得られた値が補正量となる。この補正量を計測結果(視覚センサ100から受信したワークの位置情報)に適用することで、現在の位置情報が算出される。
【0205】
以上のような処理手順によって、本実施の形態に係るコンベアトラッキングが実現される。
【0206】
<M.サポート装置のその他の機能>
上述したように、サポート装置600は、視覚センサ100およびロボット制御装置200のいずれともデータ通信可能であるので、各種のデータを収集することができる。そこで、本実施の形態に係るサポート装置600は、調整時において計測処理の対象となった画像を視覚センサ100から収集するように構成されてもよい。
【0207】
この視覚センサ100から計測処理の対象となった画像を収集する場合に、対応する、カウント値および計測値(座標値および角度等)と各画像とを関連付けて保存する。これらの情報は、ネットワークNWを介して、視覚センサ100からサポート装置600へ送信される。そして、サポート装置600のハードディスク64などに格納される。
【0208】
特に、対応するカウント値をキーとして、画像および計測結果を関連付けて保存することで、所望のタイミングに対応するカウント値を用いて、必要な画像および計測結果を容易に検索することができる。
【0209】
このような画像および計測結果のデータベースを用意することで、以下のような機能を提供することができる。すなわち、ロボット300において、ロボット動作(位置決めおよびトラッキング処理)をカウント値と関連付けて記録しておくことで、ロボット動作と対応する画像処理を関連付けることができる。これにより、例えば、把持動作が失敗した場合などに、その失敗した原因を追求するために、把持対象であったワークの画像および計測結果をサポート装置600上で再現できる。そのため、不具合原因をより容易に解析することができる。
【0210】
<N.利点>
本実施の形態によれば、コンベアトラッキング等などの画像処理システムに係る調整工数を削減することができる。すなわち、ユーザは、視覚センサ100から出力される情報(例えば、撮像された画像や登録されるモデルの外接矩形など)を見ながら、直感的に重複範囲(トリガ間隔)を設定できる。また、上述の実施の形態に係る視覚センサ100は、コンベアトラッキングなどの特定の分野に限定されるものではなく、一般的な画像処理装置に標準搭載される計測処理へ拡張することもできる。すなわち、予めモデルが登録される計測処理を使用する場合などにおいて、最適なトリガ間隔(撮像開始条件)をグラフィカルに設定できる。
【0211】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0212】
10 コンベア、12 駆動ローラ、14 エンコーダ、30 搬出装置、61,122 CPU、61a ユーザ支援ロジック、63 RAM、64 ハードディスク、65 キーボード、66 マウス、67 モニタ、68 ドライブ、69 CD−ROM、100 視覚センサ、110 撮像部、120 画像処理部、124,220 メモリ、126 撮像制御部、128,228 通信インターフェイス、130,230 入出力インターフェイス、132,232 エンコーダカウンタ、134 バス、200 ロボット制御装置、210 演算処理部、240 ピッキング制御部、250 移動制御部、300 ロボット、400 移動機構、500 操作表示装置、600 サポート装置、2100 ティーチングペンダント、NW ネットワーク、S キャリブレーション用シート、W ワーク。

【特許請求の範囲】
【請求項1】
画像処理システムに向けられたユーザ支援装置であって、
前記画像処理システムは、
搬送装置上を搬送されるワークを撮像するように配置された撮像部と、
前記撮像部に接続される画像処理装置とを備え、
前記ユーザ支援装置は、
前記撮像部の撮像によって得られた画像を表示する表示手段と、
前記表示手段に表示される画像に対して、撮像範囲の間の重複範囲を決定する重複範囲決定手段と、
前記撮像部の撮像範囲と前記搬送装置の属性との関係を利用して、前記決定された重複範囲の大きさから、前記搬送装置の移動量によって定義される前記撮像部の撮像開始条件を決定する撮像開始条件決定手段とを備える、ユーザ支援装置。
【請求項2】
ユーザ操作に応答して、前記決定された撮像開始条件を変更する変更手段をさらに備える、請求項1に記載のユーザ支援装置。
【請求項3】
前記撮像部の撮像によって得られた画像に対して計測処理を行う計測手段をさらに備え、
前記重複範囲決定手段は、計測処理により検出された範囲から前記重複範囲を決定する、請求項1または2に記載のユーザ支援装置。
【請求項4】
前記重複範囲決定手段は、前記表示手段に表示される画像に対して、検出すべき領域の指定に応答して、前記重複範囲を決定する、請求項1または2に記載のユーザ支援装置。
【請求項5】
前記重複範囲決定手段は、少なくとも検出すべきワークを示す領域を含むように、前記重複範囲を決定する、請求項1または2に記載のユーザ支援装置。
【請求項6】
前記重複範囲決定手段は、前記検出すべきワークを示す領域の対角線より長くなるように、前記重複範囲を決定する、請求項5に記載のユーザ支援装置。
【請求項7】
前記重複範囲決定手段は、
搬送装置上を搬送されるワークに対応する範囲とともに、一連の撮像の対象となる複数の撮像範囲を同時に表示する手段と、
前記表示される複数の撮像範囲に対するユーザ操作に応答して、前記重複範囲を決定する手段とを含む、請求項1または2に記載のユーザ支援装置。
【請求項8】
前記撮像開始条件と前記画像処理装置での計測処理時間との関係から、前記搬送装置で許容される搬送速度を決定する手段をさらに備える、請求項1〜7のいずれか1項に記載のユーザ支援装置。
【請求項9】
前記撮像開始条件と前記画像処理装置での計測処理時間との関係から、前記搬送装置で許容される搬送速度を決定する手段をさらに備える、請求項1〜8のいずれか1項に記載のユーザ支援装置。
【請求項10】
コンピュータにより実行されることで、当該コンピュータを画像処理システムに向けられたユーザ支援装置として機能させるプログラムであって、
前記画像処理システムは、
搬送装置上を搬送されるワークを撮像するように配置された撮像部と、
前記撮像部に接続される画像処理装置とを備え、
前記プログラムは、前記コンピュータを
前記撮像部の撮像によって得られた画像を表示する表示手段と、
前記表示手段に表示される画像に対して、撮像範囲の間の重複範囲を決定する重複範囲決定手段と、
前記撮像部の撮像範囲と前記搬送装置の属性との関係を利用して、前記決定された重複範囲の大きさから、前記搬送装置の移動量によって定義される前記撮像部の撮像開始条件を決定する撮像開始条件決定手段として機能させる、プログラム。
【請求項11】
搬送装置上を搬送されるワークを撮像するように配置された撮像部に接続される画像処理装置であって、
前記撮像部の撮像によって得られた画像を表示する表示手段と、
前記表示手段に表示される画像に対して、撮像範囲の間の重複範囲を決定する重複範囲決定手段と、
前記撮像部の撮像範囲と前記搬送装置の属性との関係を利用して、前記決定された重複範囲の大きさから、前記搬送装置の移動量によって定義される前記撮像部の撮像開始条件を決定する撮像開始条件決定手段とを備える、画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図13】
image rotate

【図15】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図14】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2012−192466(P2012−192466A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−56570(P2011−56570)
【出願日】平成23年3月15日(2011.3.15)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】