(実施形態1)
以下に、本開示を実施するための実施形態1について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
図1は、実施形態1に係るアライメントシステム1の全体構成例を示すブロック図である。アライメントシステム1は、制御対象であるワーク10を移動させるアライメント機構100と、アライメント機構100を制御する動作制御ユニット200と、ワーク10を撮像する撮像装置300と、撮像装置300が撮像した画像を処理する画像処理ユニット400と、画像処理ユニット400での処理に用いる各種設定を行う設定端末500と、を備える。
アライメント機構100には、各方向への駆動力を与えワーク10を移動させる駆動機器111,112,113が接続されている。また、駆動機器111,112,113には、駆動制御装置121,122,123がそれぞれ接続されており、動作制御ユニット200からの制御信号に基づいて、駆動制御装置121,122,123がそれぞれ駆動機器111,112,113を駆動させる。
駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400及び撮像装置300は、互いに通信接続されている。通信手段は、イーサネット(登録商標)、CameraLink、CoaxPress(登録商標)、USB(Universal Serial Bus、登録商標)等、従来の任意の通信手段でよいが、同期性を担保するため、CC-Link IE/field(登録商標)、CC-Link IE/TSN(登録商標)等のイーサネットをベースとした産業用ネットワークが好適である。
アライメント機構100は、ワーク10を載置する載置台101を備え、載置台101を移動させる機構を有する。例えば、水平方向で互いに直交するX方向及びY方向に載置台を並進移動させることができ、また、水平面上の回転方向であるθ方向に載置台を回転移動させることができる。本実施形態では、アライメント機構100に結合された駆動機器111がX方向に並進移動させ、駆動機器112がY方向に並進移動させ、駆動機器113がθ方向に回転移動させるとする。
駆動機器111,112,113は、アライメント機構100を精密に駆動することのできる任意の駆動機器(アクチュエータ)であり、例えばサーボモータである。駆動制御装置121,122,123は、動作制御ユニット200からの制御信号に基づいて、それぞれ、駆動機器111,112,113の駆動を制御する制御装置であり、例えばサーボアンプである。
駆動機器111,112,113は、内部又は外部に任意の位置センサを有しており、駆動機器111,112,113の駆動により実際に変化した位置を検出し出力する。位置センサは、例えばアクチュエータに付属されているエンコーダである。エンコーダの出力信号は、駆動制御装置121,122,123を介して動作制御ユニット200に入力される。本実施形態では、駆動機器111,112,113がサーボモータであり、駆動制御装置121,122,123がサーボアンプであり、位置センサがエンコーダである場合について説明する。
動作制御ユニット200は、駆動制御装置121,122,123に対して駆動機器111,112,113の動作に係る指令を行うモーションコントローラであり、例えばPLC(Programmable Logic Controller)を含む。動作制御ユニット200は、駆動制御装置121,122,123及び画像処理ユニット400から取得した情報に基づいて、指令を示す制御信号を生成し、駆動制御装置121,122,123に対して出力する。
動作制御ユニット200は、図2に示すように、プロセッサ210、揮発性メモリ220、不揮発性メモリ230、クロック240、通信インタフェース250を備える。プロセッサ210と、揮発性メモリ220と、不揮発性メモリ230と、クロック240と、通信インタフェース250と、はバスB1を介して互いに通信接続されている。
プロセッサ210は、例えばCPU(Central Processing Unit:中央演算装置)であり、不揮発性メモリ230に記憶された制御プログラム231を読み込んで実行することにより、位置情報生成部211、移動量算出部212、指令部213として機能する。
プロセッサ210の位置情報生成部211は、駆動機器111,112,113の位置センサの出力信号に基づいて、ワーク10が載置された載置台101の位置に対応する位置情報を生成する。移動量算出部212は、画像処理ユニット400が撮像画像から検出した識別対象の位置に基づいて、ワーク10のX方向、Y方向及びθ方向の移動量を算出する。指令部213は、移動量算出部212が算出した移動量に基づく制御信号を駆動制御装置121,122,123に出力する。
揮発性メモリ220は、プロセッサ210が実行する演算処理の際に、高速でデータの読み書きが可能なワークメモリであり、例えば、RAM(Random Access Memory)である。不揮発性メモリ230は、動作制御ユニット200の各種機能を実現するための制御プログラム231と、制御プログラム231の実行時に使用されるパラメータ、過去の検出データ及び指令データを含む制御データ232と、を記憶する。不揮発性メモリ230は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等の不揮発性半導体メモリ、磁気ディスク、又は、光ディスクである。
クロック240は、動作制御ユニット200が有するクロック素子のクロック信号をカウントすることによりローカル時刻を計測し、さらに、駆動制御装置121,122,123、撮像装置300、画像処理ユニット400との同期を行う。これにより動作制御ユニット200は、駆動制御装置121,122,123、撮像装置300、画像処理ユニット400と同期された時刻情報を有する。
通信インタフェース250は、動作制御ユニット200が駆動制御装置121,122,123、撮像装置300、画像処理ユニット400と通信するためのインタフェースであり、例えば、CC-Link IE/field、CC-Link IE/TSN等の通信規格に準拠したインタフェースである。
撮像装置300は、アライメント機構100の上方からワーク10を一定時間間隔で撮像する撮像装置であり、例えばアライメントシステム1のアライメント精度を実現させるのに十分な解像度を有するカメラである。撮像装置300の数は任意であるが、アライメントのために用いる識別対象の数及び位置に応じて撮像装置300の数は決定される。図1は、2つの撮像装置300を備えた場合を示している。識別対象は、ワーク10の位置を示す任意の対象でよく、例えば、ワーク10上に付したアライメントマーク、ワーク10の角端部、又は、載置台101の角端部である。
撮像装置300も、駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400と同期された時刻情報と、駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400と通信するための通信インタフェースと、を有する。
画像処理ユニット400は、撮像装置300から取得した撮像画像に対して、互いに異なる探索方法の粗探索と詳細探索とにより、識別対象を検出する処理を行う。粗探索は、撮像装置300から取得した撮像画像の全範囲で実行され、詳細探索は、粗探索の範囲より狭い探索範囲で実行される。画像処理ユニット400は、詳細探索により識別対象が検出されたとき、動作制御ユニット200に対して、識別対象の実座標を出力する。ここで実座標は、動作制御ユニット200の移動量算出部212と整合の取れた基準座標における座標である。
画像処理ユニット400は、図3に示すように、プロセッサ410、揮発性メモリ420、不揮発性メモリ430、クロック440、通信インタフェース450を備える。プロセッサ410と、揮発性メモリ420と、不揮発性メモリ430と、クロック440と、通信インタフェース450と、はバスB2を介して互いに通信接続されている。
プロセッサ410は、例えばCPU(Central Processing Unit:中央演算装置)であり、不揮発性メモリ430に記憶された制御プログラム431を読み込んで実行することにより、画像取得部411、範囲決定部412、探索部413として機能する。
プロセッサ410の画像取得部411は、撮像装置300が撮像した画像を取得する。範囲決定部412は、動作制御ユニット200の位置情報生成部211が生成した位置情報を含む情報に基づいて、画像取得部411が取得した撮像画像のうち、識別対象を探索する範囲を決定する。探索部413は、範囲決定部412が決定した探索範囲内の画像について識別対象の詳細探索を行い、識別対象を検出できたときは、識別対象の実座標を、動作制御ユニット200に対して出力する。
揮発性メモリ420は、プロセッサ410が実行する演算処理の際に、高速でデータの読み書きが可能なワークメモリであり、例えば、RAM(Random Access Memory)である。不揮発性メモリ430は、画像処理ユニット400の各種機能を実現するための制御プログラム431と、制御プログラム431の実行時に使用されるパラメータ、過去の検出データを含む制御データ432と、を記憶する。不揮発性メモリ430は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等の不揮発性半導体メモリ、磁気ディスク、又は、光ディスクである。
クロック440は、画像処理ユニット400が有するクロック素子のクロック信号をカウントすることによりローカル時刻を計測し、さらに、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300との同期を行う。これにより画像処理ユニット400は、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300と同期された時刻情報を有する。
通信インタフェース450は、画像処理ユニット400が駆動制御装置121,122,123、動作制御ユニット200、撮像装置300と通信するためのインタフェースであり、例えば、CC-Link IE/field、CC-Link IE/TSN等の通信規格に準拠したインタフェースである。
設定端末500は、画像処理ユニット400の制御プログラム431に対応したアプリケーションプログラムをインストールした端末であり、例えば、パーソナルコンピュータである。設定端末500は、画像処理ユニット400の不揮発性メモリ430に記憶されているパラメータの入力又は変更を含む画像処理ユニット400の管理機能を有する。設定端末500が画像処理ユニット400と通信接続するための通信インタフェースは、画像処理ユニット400が有するインタフェースに対応した任意のインタフェースであり、例えば、USBインタフェース又はRS232Cインタフェースである。
動作制御ユニット200は、画像処理ユニット400が検出した識別対象の実座標と、アライメント先の目標座標との差に基づく移動量を算出し、移動量に基づく制御信号を駆動制御装置121,122,123に対して出力する。
以上説明した構成を有するアライメントシステム1の動作について説明する。まず、前提となる、識別対象の位置に基づくアライメント方法の例について、図4,5を用いて説明する。図4,5は、識別対象がワーク10の端部に付されたアライメントマーク1001,1002である場合のアライメント方法を説明する図である。
アライメントマーク1001,1002の形状は任意であるが、基準点の位置及び回転角度が明確に判別できる形状が好ましく、例えば、図4,5に示す十字のマークが好適である。また、アライメントマークの数は任意であり、図4に示すように1個でもよく、図5に示すようにワーク10の対角の端部に2個のアライメントマーク1001,1002が付されていてもよい。
1個のアライメントマーク1001を用いる場合は、1つの撮像装置300で撮像範囲1300の画像を取得する。2個のアライメントマーク1001,1002を用いる場合で、かつ1つの撮像範囲1300で2個のアライメントマーク1001,1002を撮像できない場合は、2つの撮像装置300で互いにずれた撮像範囲1300の画像を取得する。
図4のように1つのアライメントマーク1001を使用する場合は、アライメント先マーク1101の基準点の座標と、ワーク10上のアライメントマーク1001の基準点の座標と、アライメント先マーク1101とアライメントマーク1001との角度差の3つの情報を用いる。
一方、図5のように2つのアライメントマーク1001,1002を使用する場合は、アライメント先マーク1101,1102の基準点の中点座標と、ワーク10上のアライメントマーク1001,1002の基準点の中点座標と、アライメント先マーク1101,1102を結ぶ直線とアライメントマーク1001,1002を結ぶ直線との角度差の3つの情報を用いる。
図4,5のいずれの場合も、角度差Δθがθ軸の移動量となる。このため、動作制御ユニット200は、図4に示すように、ワーク10をアライメント機構100のθ軸回転中心1200を中心に角度Δθ回転した後の仮想マーク1201の基準点の仮想座標を求める。その後、仮想座標と、アライメント先マーク1101の目標座標と、の差により、X軸方向の移動量ΔX及びY軸方向の移動量ΔYを計算する。このようにして得られたΔθ、ΔX、ΔYの移動を実現する制御信号を、動作制御ユニット200の指令部213が駆動制御装置121,122,123に送信することにより指令を行う。
図4に示すように、1つのアライメントマーク1001を使用する方法は、十字マークのように、アライメントマーク1001の回転を明確に判別できる場合に使用できる。一方、図5に示すように、2つのアライメントマーク1001,1002を使用する場合は、アライメントマーク自体の回転を検出する必要がないため、例えば、円のアライメントマークであってもワークの回転を検出できる。また、十分に離れた2点の検出によりθ方向の角度差Δθを算出するため高精度で制御ができる。
このようにして、動作制御ユニット200が、識別対象であるアライメントマーク1001,1002の基準点の座標及び角度差に基づいてΔθ、ΔX、ΔYを算出し、これらの値を用いて駆動制御装置121,122,123が駆動機器111,112,113を制御してワーク10を移動させる。しかし、通常は、一度で目標座標との差が認容範囲内にならないことも多いため、識別対象の検出と駆動機器111,112,113の制御とが繰り返し実行される。
このような繰り返しの処理において、撮像装置300による撮像画像から識別対象を探索する処理の負担が非常に大きい。よって、本実施形態に係るアライメントシステム1は、探索を実行する範囲を限定して処理負担を軽減させたものである。
以下、詳細の処理について、図6-8を用いて説明する。図6は、本実施形態に係るアライメントシステム1の機能構成例を示したブロック図であり、図7は、動作制御ユニット200が実行するアライメント制御処理のフローチャートであり、図8は、画像処理ユニット400が実行する探索処理のフローチャートである。
まず、動作制御ユニット200は、ワーク10を予め設定された概算目標位置まで移動させる指令を行う(図7、ステップS101)。具体的には、動作制御ユニット200が、駆動制御装置121,122,123に対して、各方向の移動を実現させる制御信号を出力する。そして、制御信号に基づく駆動制御装置121,122,123の制御により駆動機器111,112,113が駆動し、ワーク10を載置した載置台101が移動する。
移動終了後、動作制御ユニット200は画像処理ユニット400に対して、撮像画像の取得及び探索を指示するとともに(ステップS102)、駆動機器111,112,113が有する位置センサの出力に基づいて位置情報を生成し出力する(ステップS103)。その後、動作制御ユニット200は、画像処理ユニット400の探索終了まで待機する(ステップS104)。
ステップS102で動作制御ユニット200から識別対象の探索処理を指示された画像処理ユニット400は、図8に示す処理を実行する。ここでは撮像が初回であるため(ステップS201:Yes)、画像処理ユニット400の画像取得部411は、撮像装置300が撮像した撮像画像を取得する(ステップS202)。その後、探索部413が、識別対象の粗探索(ラフサーチ)を実行する(ステップS203)。
粗探索は、例えば、予め登録しておいたアライメントマーク1001のパターンモデルを用いたパターンマッチング処理により行う。探索部413は、パターンマッチングの一致率が予め定めた閾値以上であったときのアライメントマーク1001を検出し、アライメントマーク1001の基準点の位置又は回転角度に基づいて、詳細探索の探索範囲を決定する(ステップS204)。このときの探索範囲の形状又は大きさは、アライメントマーク1001の形状又は大きさに応じて予め設定されたものであり、設定端末500へのユーザの入力により設定可能としてもよい。
例えば、図9Aに示す十字のアライメントマーク1001の場合には、パターンマッチングで基準点である中心の位置と十字の回転角度を特定し、アライメントマーク1001の大きさに対して、予め定めた余裕分を追加した大きさの探索範囲1301を決定する。また、図9Bに示す角度に係る探索範囲(探索角度範囲)も決定する。
次に、探索部413は、ステップS204で決定した探索範囲内の画像に対して、詳細探索(ファインサーチ)を実行する(ステップS205)。詳細探索としては、例えば、エッジ検出を行い、正確な直線又は曲線を検出することにより、より正確な識別対象の実座標を取得することができる。ここで、識別対象の実座標は、識別対象の基準点の位置(XY座標)と回転角度(θ座標)を含む。
探索部413がステップS205の詳細探索で識別対象を検出できなかった場合は(ステップS212:No)、ステップS201に戻り、ステップS202~205の処理を繰り返す。一方、ステップS205の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS205で取得した識別対象の実座標を出力する(ステップS213)。
ここで図7のフローチャートに戻り、画像処理ユニット400による探索処理が終了後(ステップS104:Yes)、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント制御処理を終了する。ここで、目標座標は、アライメント先の座標であり、中心位置(XY座標)と回転角度(θ座標)を含む。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行する(ステップS107;指令ステップ)。具体的には、実座標を目標座標に一致させる制御信号を駆動制御装置121,122,123に対して出力する。
駆動機器111,112,113の駆動終了後、ステップS102に戻る。動作制御ユニット200は再度、撮像と探索を指示し(ステップS102)、位置情報を出力する(ステップS103)。
再び、図8のフローチャートに移り、撮像が2回目以降であり、前回検出成功しているため(ステップS201:No)、画像処理ユニット400は、位置情報を取得する(ステップS206)。画像処理ユニット400の範囲決定部412は、その時点の識別対象の予測座標の算出を行う(ステップS207)。
具体的には、範囲決定部412は、初回のアライメント制御時に動作制御ユニット200から取得した位置情報と、初回の詳細探索で検出した実座標の対応関係を特定する。例えば、初回の位置情報のXY座標が(x1,y1)で表され、実座標のXY座標が(X1,Y1)で表されるとき、これらの関係は、以下の式(1)の定数行列Aで表される。
2回目のアライメント制御時に動作制御ユニット200から取得した位置情報のXY座標を(x2,y2)とすると、2回目の探索で用いる予測座標のXY座標(X2,Y2)は、式(1)で表される定数行列Aを用いて、以下の式(2)で表すことができる。また、3回目以降を含むn回目についても同様に式(3)で表すことができる。
なお、位置情報と実座標の対応関係を表す定数行列Aは、繰り返しのアライメント制御において取得する位置情報及び実座標に基づいて、毎回更新してもよく、又は、複数回の平均を用いてもよい。あるいは、事前のキャリブレーションにより、予め位置情報と実座標の対応関係を構築してもよい。例えば、識別対象として載置台101の角端部を用いたアライメント制御の場合には、実行毎の誤差が小さいため、このような事前のキャリブレーションが有効である。
このようにして、撮像画像から検出した識別対象の基準点のXY座標と位置情報との対応関係を予め特定し、この対応関係を用いて新たに取得した位置情報からXY座標を予測する(ステップS207)。その後、予測したXY座標を中心とし、予め定めた大きさの探索範囲を決定する(ステップS208)。また、θ座標についても、同様に、詳細探索で検出した実座標と位置情報との対応関係を予め特定した上で、新たに取得した位置情報に基づいて識別対象の回転角度を示すθ座標の予測を行い(ステップS207)、予測したθ座標を中心とし、予め定めた角度幅の探索角度範囲を決定する(ステップS208)。なお、探索範囲は予測座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測座標を含む範囲を探索範囲としてもよい。
ここで、探索範囲の大きさは、設定端末500へのユーザの入力により設定してもよく、自動で設定してもよい。例えば、探索範囲の大きさは、識別対象の形状又は大きさに対して、駆動機器111,112,113の移動速度に基づいて自動又は手動で設定した余裕分を追加した大きさであってもよい。あるいは、過去のアライメント制御結果に基づいて統計的に探索範囲の大きさを決定してもよく、例えば、識別対象の形状及び大きさに対して、過去の互いに対応する時点における、位置情報から算出した予測座標と、撮像画像から検出した実座標との差の平均値を余裕分として加えた大きさであってもよい。
つまり、範囲決定部412は、2回目以降でかつ前回検出を失敗していない場合には、ステップS203の粗探索を実行せずに、ステップS207で位置センサ出力に基づく位置情報から算出した予測座標を中心とする探索範囲を決定する。この位置情報に基づく探索範囲の決定処理は、ステップS203で実行した粗探索による探索範囲の決定処理と比較して、処理量が大幅に少ない。よって、毎回粗探索から行う従来のアライメント制御と比較して、高速制御が可能となる。
次に、画像取得部411が画像を取得し(ステップS209;画像取得ステップ)、取得した画像のうちステップS208で決定した探索範囲の画像について、簡易処理を行う(ステップS210)。簡易処理は、詳細探索を行う前の任意の処理であり、例えば、探索部413が、ステップS208で決定した探索範囲より広いが全範囲より限定した範囲での粗探索を行い、探索範囲を再決定してもよい。あるいは、ステップS207でXY座標の予測座標を算出してステップS208でXY座標における探索範囲を決定しておいた場合には、簡易処理として、θ座標の粗検索を行い探索角度範囲を決定してもよい。なお、簡易処理は省略してもよい。
その後、探索部413が、ステップS208で決定した探索範囲又はステップS210で決定した範囲について詳細探索を実行する(ステップS211:探索ステップ)。詳細探索の方法は、ステップS205と同じである。ステップS211で詳細探索を実行した結果、識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、前回検出失敗であるため(ステップS201:Yes)ステップS202~205の処理を実行する。ここで、全範囲の粗探索からやり直すのは、詳細探索で検出失敗を繰り返すことにより、制御不能になるのを回避するためである。
ステップS211の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS211で取得した識別対象の実座標を出力する。
再度、図7のフローチャートに戻り、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント処理を終了する。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213がアライメント機構100の位置を補正する指令を実行する(ステップS107)。具体的には、実座標を目標座標に一致させるための制御信号を駆動制御装置121,122,123に対して出力する。その後、ステップS102に戻り、処理を継続する。
以上説明したように、本実施形態に係るアライメントシステム1は、識別対象を有するワーク10を撮像した画像から識別対象を検出する画像処理ユニット400と、画像処理ユニット400が検出した識別対象の実座標に基づいて、ワーク10を移動させる駆動機器111,112,113を制御する動作制御ユニットと、を備える。画像処理ユニット400は、駆動機器111,112,113の位置センサ出力に基づく位置情報と撮像画像から検出する識別対象の実座標との対応関係を予め特定し、この対応関係を用いて、次に取得する位置情報から識別対象の予測座標を算出し、この予測座標を含む探索範囲を決定し、探索範囲の画像から識別対象を検出することとした。これにより、全範囲の粗探索処理を省略でき高速かつ高精度で位置決めすることが可能となる。
(実施形態2)
以下に、本開示を実施するための実施形態2について図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
本実施形態2に係るアライメントシステム2の全体構成及び各構成部のハードウェア構成は実施形態1と同様である。本実施形態2に係るアライメントシステム2において、画像処理ユニット400の画像取得部411が、転送範囲を指定した転送指示を行うことにより、撮像装置300から撮像画像を取得し、転送範囲内の撮像画像について探索部413が探索処理を行う点が、実施形態1と異なる。
本実施形態においても、実施形態1と同様に、駆動制御装置121,122,123、動作制御ユニット200、画像処理ユニット400及び撮像装置300は、互いに通信接続されている。ただし、本実施形態は、実施形態1よりもさらに高い応答性を求められるため、CC-Link IE/field、CC-Link IE/TSN等の産業用ネットワークにより通信接続することが望ましい。
CC-Link IE/field、CC-Link IE/TSN等の産業用ネットワークは、同期性を担保するために、H/W機器にて一定以上の定時性を実現しつつ、統計的に伝送路遅延計測を行い、μ秒精度で機器間のタイミングを合わせる仕組みを有している。
伝送路遅延計測による同期方式は、マスタ局からデバイス局までの伝送路遅延測定値を利用して、より高精度の同期を実現する方式である。図10に伝送路遅延計測による同期方式を示す。伝送路遅延計測方式では、同期ポイントで同期を行う。マスタ局40から送信された伝送制御(MyStatus)フレームは距離が離れるにつれて遅延が生じる。
マスタ局40は、各デバイス局50、60、70から応答信号を受信したマスタ局時刻から各デバイス局50、60、70における伝送路遅延時間を算出し、各デバイス局50、60、70に送信する。同期ポイントは、マスタ局40が伝送制御(MyStatus)フレームを送信してから一定時間(Tsync)経過後の時刻である。各デバイス局50、60、70は、伝送制御(MyStatus)フレームを受け取ってから、伝送路遅延時間を差し引いた時間であるTps時間(Tsync-遅延時間)後に同期を行う。
本実施形態では、この伝送路遅延計測方式を用いて、例えば動作制御ユニット200をマスタ局40として、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300及び画像処理ユニット400のタイミング制御が行われる。つまり、駆動制御装置121,122,123、動作制御ユニット200、撮像装置300及び画像処理ユニット400は、伝送路遅延時間が計測される産業用ネットワーク(通信線)で互いに通信接続されており、同期された時刻情報を有することとなる。
マスタ局40である動作制御ユニット200は、指示の送信時刻から最長の伝送路遅延時間を経過した後の特定時刻を同期ポイントとして設定する。そして、画像処理ユニット400は、未来の特定時刻における予測座標を含む範囲を、転送範囲として決定し、撮像装置300に対して特定時刻における撮像と、撮像した画像のうち転送範囲内の画像の転送と、を指示する。
さらに撮像装置300についてはシャッタ速度も考慮したタイミング制御を行う必要がある。図11は、撮像装置300のシャッタのタイミング制御を説明する図である。同期ポイントの算出元である同期された時刻情報を用いて、画像処理ユニット400から得た又は事前の設定情報に従って撮像装置300が自動的に撮像タイミングを決定する。このとき、未来の特定時刻で撮像するために、画像処理ユニット400は必要に応じて猶予時間内に先行した撮像指示を行うことができる。また、予約撮像のタイミングを露出時間範囲の中心を合わせることも有用である。
図12は、本実施形態に係るアライメントシステム2の機能構成例を示したブロック図であり、図13は、動作制御ユニット200が実行するアライメント制御処理のフローチャートであり、図14は、画像処理ユニット400が実行する探索処理のフローチャートである。図13,14のフローチャートに沿って、アライメントシステム2の動作について説明する。
まず、動作制御ユニット200は、ワーク10を予め設定された概算目標位置まで移動させる指令を行う(図13、ステップS101)。具体的には、動作制御ユニット200が、駆動制御装置121,122,123に対して、各方向の移動を実現させる制御信号を出力する。そして、制御信号に基づく駆動制御装置121,122,123の制御により、駆動機器111,112,113が駆動し、ワーク10を載置した載置台101が移動する。
移動指令後、動作制御ユニット200は撮像装置300における撮像時刻を時刻Tn(n=1)に決定し(ステップS122)、画像処理ユニット400に対して指定する。また、動作制御ユニット200の位置情報生成部211は、駆動機器111,112,113が有する位置センサの出力に基づいて位置情報を生成し位置情報を出力する(ステップS103)。その後、動作制御ユニット200は、画像処理ユニット400の探索終了まで待機する(ステップS104)。
動作制御ユニット200から位置情報を取得した画像処理ユニット400は、図14に示す処理を実行する。ここでは撮像が初回であるため(ステップS201:Yes)、画像処理ユニット400の画像取得部411は、撮像装置300に対して、時刻Tn(n=1)における撮像と、全範囲の撮像画像の転送を指示する(ステップS221)。その後、画像取得部411は、全範囲の撮像画像を取得する(ステップS222)。
次に、画像処理ユニット400の探索部413が、全範囲の撮影画像に対して、識別対象の粗探索(ラフサーチ)を実行する(ステップS203)。粗探索は、例えば、予め登録しておいたアライメントマーク1001のパターンモデルを用いたパターンマッチング処理により行う。探索部413は、パターンマッチングの一致率が予め定めた閾値以上であったときのアライメントマーク1001を識別対象として検出し、アライメントマーク1001の基準点の位置又は回転角度に基づいて、詳細探索の探索範囲を決定する(ステップS204)。このときの探索範囲の形状又は大きさは、アライメントマーク1001の形状又は大きさに基づいて予め決定されたものであり、設定端末500へのユーザの入力により設定可能としてもよい。
次に、ステップS204で決定した探索範囲内の画像に対して、詳細探索(ファインサーチ)を実行する(ステップS205)。詳細探索は、例えば、エッジ検出を行い、正確な直線又は曲線を検出することにより、より正確な識別対象の実座標を取得することができる。ここで、識別対象の実座標は、識別対象の基準点の位置(XY座標)と回転角度(θ座標)を含む。
ステップS205の詳細探索で識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、ステップS221,S222,S203~205の処理を繰り返す。一方、ステップS205の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS205で取得した識別対象の実座標を出力する(ステップS213)。
図13のフローチャートに戻り、画像処理ユニット400の探索処理が終了後(ステップS104:Yes)、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント制御処理を終了する。ここで、目標座標は、アライメント先の座標であり、中心位置(XY座標)と回転角度(θ座標)を含む。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行する(ステップS107;指令ステップ)。具体的には、実座標を目標座標に一致させるための制御信号を駆動制御装置121,122,123に対して出力する。
動作制御ユニット200は、アライメント機構100への補正指令後、ステップS122に戻り、撮像時刻を時刻Tn(n=2)に決定し(ステップS122)、位置情報を出力し(ステップS103)、画像処理ユニット400の探索処理が終了するまで待機する(ステップS104)。
再度、図14のフローチャートに戻り、次の撮像が2回目以降であり、前回検出成功しているため(ステップS201:No)、画像処理ユニット400は、撮像装置300に対して、時刻Tn(n=2)における撮像を指示する(ステップS223)。また、画像処理ユニット400は動作制御ユニット200から位置情報を取得する(ステップS206)。画像処理ユニット400の範囲決定部412は、その時点の識別対象の座標の予測を行う(ステップS207)。
座標の予測方法は、実施形態1と同様であり、初回のアライメント制御時に動作制御ユニット200から取得した位置情報と、初回の詳細探索で検出した実座標の対応関係を特定する。範囲決定部412は、特定した対応関係を用いて、ステップS206で取得した位置情報から識別対象の基準点のXY座標の予測を行う(ステップS207)。その後、範囲決定部412は、ステップS207で予測したXY座標を中心とし、予め定めた大きさの転送範囲を決定し、撮像装置300に対して、転送範囲を指定した撮像画像の転送指示を行う。(ステップS226)。なお、転送範囲は予測したXY座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測したXY座標を含む範囲を転送範囲としてもよい。
ここで、転送範囲の大きさは、設定端末500へのユーザの入力により設定してもよい。例えば、ロバスト性と処理速度とがトレードオフの関係にあるため、処理のぶれを許容しつつ平均処理速度を最大化することによりスループットを優先させる場合には転送範囲を小さく設定してもよい。一方、処理速度よりもジッター特性を優先させて処理時間を一定化したい場合には、転送範囲を大きく設定してもよい。
あるいは、転送範囲の大きさは、識別対象の形状又は大きさに対して、駆動機器111,112,113の移動速度に基づいて自動又は手動で設定した余裕分を追加した大きさであってもよい。あるいは、範囲決定部412が過去のアライメント制御結果に基づいて統計的に転送範囲の大きさを決定してもよく、例えば、識別対象の大きさに、過去の位置情報に基づいて算出した予測座標と、画像から検出した識別対象の実座標との差の平均値を余裕分として加えた大きさを転送範囲の大きさとしてもよい。
このように、撮像が2回目以降でかつ前回検出を失敗していない場合には、撮像装置300は全範囲の画像を転送せずに、ステップS226で求めた、位置センサの位置情報に基づく予測座標を中心とする転送範囲の画像のみを転送する。ここで転送する画像のデータ容量は、ステップS221で転送する全範囲の画像のデータ量と比較して大幅に少ない。よって、毎回全範囲の画像を転送する場合と比較して、データの転送容量を削減でき転送時間も短縮され、また、全範囲の粗探索を実行しないため高速制御が可能となる。
ステップS226で転送指示することにより転送されてきた、転送範囲の画像を画像取得部411が取得し(ステップS209;画像取得ステップ)、探索部413が、転送範囲内の画像について簡易処理を行う(ステップS210)。簡易処理は、詳細探索を行う前の任意の処理であり、例えば、ステップS209で取得した転送範囲内の画像について粗探索を行い、探索範囲を決定してもよい。特に、θ座標の粗検索を簡易処理として行い、探索角度範囲を決定してもよい。なお、簡易処理は省略してもよい。
その後、ステップS209で取得した転送範囲内の画像について、又は、ステップS210で決定した探索範囲について詳細探索を実行する(ステップS211;探索ステップ)。詳細探索の方法は、ステップS205と同じである。ステップS211で詳細探索を実行した結果、識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、前回検出失敗であるため(ステップS201:Yes)ステップS221,S222,S203~205の処理を実行する。ここで、全範囲の画像の粗探索からやり直すのは、詳細探索で検出失敗を繰り返すことにより、制御不能になるのを回避するためである。
ステップS211の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS211で取得した識別対象の実座標を出力する(ステップS213)。
再度、図13のフローチャートに戻り、動作制御ユニット200は、画像処理ユニット400より実座標を取得し(ステップS105)、目標座標との差を算出する。実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント処理を終了する。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行する(ステップS107)。具体的には、実座標を目標座標に一致させるための制御信号を駆動制御装置121,122,123に対して出力する。その後、ステップS122に戻り、処理を継続する。
このようにして、画像処理ユニット400の範囲決定部412が位置情報に基づいて画像の転送範囲を決定し、探索部413が撮像装置300から転送される画像について詳細探索を行うとした。これにより、転送時間及び探索時間を大幅に短縮することができる。
なお、画像処理ユニット400から撮像装置300への転送範囲の指定は、撮像指示と共に転送範囲を含む撮像パラメータを指定する方法の他、事前に撮像装置300に対して転送範囲を指定し、その後撮像トリガを撮像装置300に出力してもよい。
前者の撮像指示と共に転送範囲指定を行う場合は、前述した伝送路遅延計測の同期方式を用いて、撮像装置300の撮像と、位置情報の取得のタイミングを合わせることにより、待機時間を削減すると共に適切な転送範囲での探索が可能となる。一方、後者の事前に転送範囲を指定する場合は、撮像トリガのみを専用線で出力することにより、撮像タイミングを高精度に合わせることが可能となる。
また、図14のステップS221で指定する全範囲の画像転送、及び、ステップS226で指定する転送範囲の画像転送は、撮像装置300により画像を縮小して転送してもよい。縮小方法は、従来の任意の方法でよく、例えば、サブサンプリング又はビニングが用いられる。特にビニングは、処理が比較的軽く、画素信号のS/N比(Signal to Noise Ratio)を改善させる効果があり、縮小による解像度の低下に対して、位置認識精度の低下を抑えることができるため好適である。
ステップS226での転送指示により転送範囲の限定(トリミング)を行う際に、アライメント制御の早い段階で実座標と目標座標が離れている場合に転送範囲の限定と共に縮小を行い、実座標と目標座標との距離が一定の範囲内となり近づいてきた後に、縮小を行わない制御を行ってもよい。また、全範囲又は転送範囲内の画像の縮小を行う場合に、探索用のパターンモデルとして縮小データに合わせたモデルを予め用意しておき、探索部413はこのモデルを用いた粗探索又は詳細探索を行ってもよい。
また、ステップS226での転送指示により転送範囲の撮像画像を取得した後の詳細探索(ステップS211)に並行して、全範囲の撮像画像を取得しておいてもよい。ステップS211の詳細探索で識別対象が検出できなかった場合(ステップS212:No)の全範囲の撮像画像を取得する時間を削減することができる。この場合、詳細探索で識別対象が検出できた段階で、全範囲の撮像画像の転送停止又は転送画像の削除を行ってもよい。
以上説明したように、本実施形態に係るアライメントシステム2において、画像処理ユニット400は、駆動機器111,112,113が有する位置情報と撮像画像から検出する識別対象の実座標との対応関係を予め特定し、この対応関係を用いて、次に取得する位置情報から識別対象の予測座標を算出し、この予測座標を含む画像の転送範囲を決定し、撮像装置300から転送された転送範囲内の画像を詳細探索して識別対象を検出することとした。これにより、転送時間及び転送する画像の容量を削減でき、また、全範囲の画像の粗探索を省略できるため、高速かつ高精度でアライメント制御することが可能となる。
(変形例)
上記実施形態は、種々の変更が可能である。変形例について以下に述べる。
[変形例1]
実施形態1,2において、画像処理ユニット400の範囲決定部412が、駆動機器111,112,113の位置センサ出力に基づく位置情報から算出した予測座標を含む範囲を、探索範囲又は転送範囲として決定するとした。しかし、探索範囲又は転送範囲を他の方法で決定してもよい。本変形例1は、探索範囲又は転送範囲を決定する他の方法について説明する。
本変形例は、駆動機器111,112,113の駆動に係る指令情報を、探索範囲又は転送範囲を決定するための予測座標の算出に用いる。具体的には、画像処理ユニットの範囲決定部412が指令情報に基づいて予測座標の算出を行い、予測座標を含む探索範囲又は転送範囲を決定する。
本変形例において、撮像装置300の撮像と、指令情報に基づく駆動機器111,112,113の駆動と、位置センサ出力の取得と、のタイミング制御を、同期性を担保して行うことで、より高速な制御が可能となる。図15は本変形例に係るアライメントシステム3の機能構成例を示したブロック図であり、図16は本変形例に係る動作制御ユニット200が実行するアライメント制御処理のフローチャートであり、図17は画像処理ユニット400が実行する探索処理のフローチャートである。
ここで、図15-17は、実施形態2の変形例であって、指令情報に基づいて画像の転送範囲を決定する形態を表しているが、実施形態1の変形例として、指令情報に基づいて画像の探索範囲を決定する形態も、同様に実現できる。以下、図16,17のフローチャートに沿って、本変形例に係るアライメントシステム3の動作について説明するが、実施形態2と同じ処理については説明を省略する。
まず、動作制御ユニット200は、ワーク10を予め設定された概算目標位置まで移動させる指令を行う(図16、ステップS101)。このときの指令情報は、転送範囲の決定に用いるために、画像処理ユニット400に渡される。その後、指令情報に係る制御信号に基づいて駆動機器111,112,113が駆動開始し、ワーク10を載置した載置台101が移動する。
移動指令後、動作制御ユニット200は撮像装置300における撮像時刻を未来の特定時刻Tn(n=1)を決定し(ステップS122)、画像処理ユニット400に対して指定する。また、動作制御ユニット200の位置情報生成部211は、駆動機器111,112,113が有する位置センサの出力に基づいて、時刻Tnにおける位置情報の記録を指定する(ステップS123)。その後、動作制御ユニット200は、画像処理ユニット400の探索終了まで待機する(ステップS104)。その後の画像処理ユニット400の動作は、実施形態2と同様であり、図17のステップS221,222,203-205,212,213の処理を実行する。
図16のフローチャートに戻り、画像処理ユニット400の探索処理が終了した時に(ステップS104:Yes)、動作制御ユニット200の移動量算出部212が、画像処理ユニット400より実座標を取得し(ステップS105)、位置情報生成部211が時刻Tnの位置センサ出力に基づいて位置情報を生成し記録する(ステップS124)。移動量算出部212は、実座標と目標座標との差を算出し、実座標と目標座標との差が閾値以下である場合は(ステップS106:Yes)、アライメント制御処理を終了する。
実座標と目標座標との差が閾値を超える場合は(ステップS106:No)、指令部213が、アライメント機構100の位置を補正する指令を実行するが、このとき、ステップS124で記録した特定時刻Tnにおける位置情報を参照し、指令が示す位置と位置情報が示す実際の位置とのずれも補償した指令を実行する(ステップS125)。
指令部213によりアライメント機構100への指令を実行した後、ステップS122に戻り、撮像時刻を時刻Tn(n=2)に決定し(ステップS122)、特定時刻Tn(n=2)の位置情報の記録を指定し(ステップS123)、画像処理ユニット400の探索処理が終了するまで待機する(ステップS104)。
再度、図17のフローチャートに移り、次の撮像が2回目以降であり、前回検出成功しているため(ステップS201:No)、画像処理ユニット400は、撮像装置300に対して、時刻Tn(n=2)における撮像を指示する(ステップS223)。また、画像処理ユニット400は動作制御ユニット200から時刻Tnにおける指令情報を取得する(ステップS224)。画像処理ユニット400の範囲決定部412は、その時点の識別対象の予測座標を算出する(ステップS225)。
範囲決定部412による予測座標の算出方法は、まず、実施形態2の位置情報に代えて初回のアライメント制御時の指令情報と、初回の詳細探索で検出した実座標と、の対応関係を特定する。範囲決定部412は、特定した対応関係を用いて、ステップS224で取得した特定時刻Tnの予定位置に係る指令情報から識別対象の基準点の予測座標(XY座標)の算出を行う(ステップS225)。対応関係を用いた予測方法は実施形態2と同様である。
その後、範囲決定部412は、ステップS225で予測したXY座標を中心とし、予め定めた大きさの転送範囲を決定し、撮像装置300に対して、決定した転送範囲内の画像の転送を指示する。(ステップS226)。なお、転送範囲は予測したXY座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測したXY座標を含む範囲を転送範囲としてもよい。
ステップS226で転送指示することにより転送されてきた、転送範囲の画像を画像取得部411が取得し(ステップS209)、簡易処理を行う(ステップS210)。その後、探索部413は、ステップS209で取得した転送範囲内の画像について、又は、ステップS210で簡易処理した画像について詳細探索を実行する(ステップS211)。ステップS211で詳細探索を実行した結果、識別対象が検出できなかった場合は(ステップS212:No)、ステップS201に戻り、前回検出失敗であるため(ステップS201:Yes)ステップS221,S222,S203-205の処理を実行する。
ステップS211の詳細探索で識別対象の検出に成功した場合は(ステップS212:Yes)、動作制御ユニット200に対して、ステップS211で取得した識別対象の実座標を出力する(ステップS213)。その後の動作制御ユニット200の処理は実施形態2と同様である。
このようにして、画像処理ユニット400の範囲決定部412が動作制御ユニット200の指令情報に基づいて画像の転送範囲を決定し、探索部413が撮像装置300から転送される画像について詳細探索を行うとした。これにより、未来の予定位置に係る指令情報に基づいて探索範囲又は転送範囲を決定するため、より高効率なタイミング制御ができ、より高速のアライメント制御が可能となる。
[変形例2]
本変形例2は、探索範囲又は転送範囲を決定するための、さらに他の方法について説明する。実施形態1,2においては、範囲決定部412が、位置情報に基づいて算出した予測座標を中心とする探索範囲又は転送範囲を決定するとしたが、本変形例では、前回検出した実座標を中心とする探索範囲又は転送範囲を決定する。
具体的には、範囲決定部412は、位置情報又は指令情報を取得することなく、画像処理ユニット400の探索部413による詳細探索で前回検出し、不揮発性メモリ230に記憶しておいた識別対象の基準点を中心とする範囲を転送範囲として決定する。あるいは、範囲決定部412は、記憶しておいた識別対象の基準点を中心とする範囲、又は、識別対象の回転角度を中心とする角度範囲を、探索範囲として決定する。なお、転送範囲又は探索範囲は前回検出した実座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、前回検出した実座標を含む範囲を転送範囲又は探索範囲としてもよい。
探索範囲又は転送範囲の大きさは、過去に検出した識別対象の実座標の移動速度に基づいて決定してもよい。あるいは、アライメント制御の設定パラメータに基づいて各駆動機器の移動速度に基づいて決定してもよい。例えば、最大移動速度に撮像装置300の撮像間隔を乗じて決定した大きさにしてもよい。撮像間隔が短く設定されることにより撮像間隔間の移動距離が短い場合には、前回の検出結果を利用することで十分に探索範囲又は転送範囲を限定することができるため、実施形態1,2及び変形例1と比較して、処理を簡易化することが可能となる。
[変形例3]
本変形例3は、探索範囲又は転送範囲を決定するための、さらに他の方法について説明する。本変形例では、範囲決定部412は、探索部413による詳細探索で過去に検出した実座標の軌跡に基づいて探索範囲又は転送範囲を決定する。つまり、実施形態1,2のように位置情報又は指令情報を取得することなく、画像処理ユニット400の探索部413による詳細探索で過去に検出し、不揮発性メモリ230に記憶しておいた識別対象の実座標の軌跡に基づいて予測座標を算出し、予測座標を中心とする範囲を探索範囲又は転送範囲として決定する。
具体的には、範囲決定部412は、識別対象の基準点のXY座標の軌跡に基づいて予測したXY座標を中心とし予め定めた大きさを有する範囲を転送範囲として決定する。あるいは、範囲決定部412は、識別対象の基準点のXY座標の軌跡に基づいて予測したXY座標を中心とし予め定めた大きさを有する範囲、又は、θ座標の軌跡に基づいて予測したθ座標を中心とする角度範囲を、探索範囲として決定する。図18A,Bは識別対象の予測を説明する図である。なお、転送範囲又は探索範囲は予測座標を中心とした範囲でなくてもよく、アライメント条件又は識別対象の形態によっては、予測座標を含む範囲を転送範囲又は探索範囲としてもよい。
予測座標(XYθ座標)の算出は、前回以前2回分以上の時刻と、各時刻の実座標を用いて、撮像装置300の撮像時における予測により行う。例えば、図18Aに示すように、前回と前々回の2回分のXY座標のデータに基づいて線形予測して、撮像時におけるXY座標を予測する。あるいは、図18Bに示すように、前回と前々回と前々々回の3回分のXY座標のデータに基づいて2次予測して、撮像時におけるXY座標を予測する。
探索範囲又は転送範囲の大きさは、過去に検出した識別対象の実座標の移動速度に基づいて決定してもよい。あるいは、駆動機器111,112,113の移動速度に基づいて決定してもよい。例えば、最大移動速度に撮像装置300の撮像間隔を乗じて決定した大きさにしてもよい。線形予測は、2次予測又はさらに高次の予測より、予測精度が悪くなるため、探索範囲又は転送範囲の大きさを大きくする必要がある。
また、探索範囲又は転送範囲の大きさは、過去の検出結果に対する誤差の統計的情報に基づいて決定してもよい。例えば、識別対象の形状及び大きさに対して、過去の互いに対応する時点における、実座標の軌跡に基づく予測座標と、撮像画像から検出した実座標との差の平均値を余裕分として加えた大きさであってもよい。
本変形例によれば、撮像間隔が長く撮像間隔間の移動距離が長い場合には、予測精度が向上し、探索範囲又は転送範囲を狭くすることが可能となる。
[変形例4]
実施形態1,2において、識別対象がワーク10上に付されたアライメントマーク1001,1002である場合について説明したが、識別対象の形態に応じて、処理を一部変更してもよい。図19Aは本変形例に係る粗探索を説明する図であり、図19Bは本変形例に係る詳細探索を説明する図である。
例えば、ワーク12が図19Aに示すような多数の端子を有するIC(Integrated Circuit)であって、識別対象がICの端子である場合には、探索部413はパターンモデル1312を用いて、パターンマッチング処理を行うことにより粗探索を行う(図8、ステップS203)。
このとき、探索部413は、パターンマッチングの一致率が予め定めた閾値以上であったときのパターン1313の位置又は回転角度に基づいて、詳細探索の探索範囲1314を決定する(図8、ステップS204)。このパターンマッチングにおいて、図19Aに示すように、一致率が予め定めた閾値以上であるパターンが複数検出される場合があるが、その場合は一致率が最高である場合のパターン1313を特定して、探索範囲1314を決定してもよい。
図19Bに示す例において、探索部413は、粗探索により特定したパターン1313から予め定めた位置関係を有する探索範囲1314を、詳細探索の探索範囲として決定する(図8、ステップS204)。探索部413は、ステップS204で決定した探索範囲について詳細探索を実行する(図8、ステップS205)。
ここで、実施形態1,2において、2回目以降の撮像であって、前回の検出に成功していた場合には(図8、ステップS201:No)、位置情報から算出した予測座標を含む探索範囲を決定して(図8、ステップS208)、詳細探索を実行する(図8、ステップS211)。しかし、図19Aに示したICのように一定の精度で予測座標の算出が可能な場合は、位置情報に基づく予測座標の算出をすることなく、ステップS203の粗探索で決定した探索範囲を用いて、詳細探索を繰り返してもよい。そして、詳細探索による検出に失敗した場合のみ、粗探索による探索範囲の決定処理を行ってもよい。
本変形例によれば、識別対象の形態に応じて、処理を簡易化することが可能となる。なお、設定端末500のアプリケーションにより、識別対象の形態を分類し、当該分類に適した探索処理方法を自動選択してもよい。
[変形例5]
本変形例5は、識別対象がさらに異なる形態である場合について説明する。図20Aは本変形例に係る粗探索を説明する図であり、図20Bは本変形例に係る詳細探索を説明する図である。本変形例において、設定端末500のプロセッサが、専用のアプリケーションプログラムを実行することにより、粗探索のモデル登録と、詳細探索のロジック生成を自動で行う。
例えば、ワーク13が図20Aに示すようなレンズである場合には、設定端末500のプロセッサは、撮像画像からレンズの外形を抽出しパターンモデル1322の登録を行う。さらにプロセッサは、パターンモデル1322の形状に基づいて詳細探索の探索ロジックを自動生成する。例えば、設定端末500のプロセッサが、パターンモデル1322の形状が円弧を含むことを検出した場合には図20Bに示すように、詳細探索のロジックとしてエッジを探索し、検出したエッジに対して円近似を行い、円の中心を基準点1323として検出するロジックを自動生成する。
画像処理ユニット400は、設定端末500のアプリケーションにより生成された粗探索のパターンモデルと詳細探索のロジックを用いて、実施形態1,2で説明した探索処理を実行する。本変形例によれば、識別対象の形態に応じて、最適な粗探索及び詳細探索を実行することができる。また、画像処理ユニット400の探索処理を実行するための事前の設定を自動化することができ、ユーザの設定端末500への設定入力の負担を軽減することが可能となる。
[変形例6]
実施形態1,2では、初回の撮像画像に対して粗探索を行い、粗探索の結果に基づいて決定した探索範囲の詳細探索を実行し、詳細探索の結果に基づき、次の詳細探索の探索範囲又は転送範囲を決定するための識別対象の予測座標を算出する。しかし、識別対象の座標の予測精度が十分高い場合には、アライメント制御の事前のキャリブレーションにより、初回の撮像画像に対する粗探索を省略してもよい。特に、ワーク10を載置する載置台101の角端部を用いたアライメント制御の場合には、実行毎の誤差が小さいため、このような事前のキャリブレーションが有効である。
図21は、初回の撮像画像に対する粗探索を省略した場合の探索処理のフローチャートである。画像取得部411が初回の撮像画像を取得した後(ステップS301)、範囲決定部412は、事前のキャリブレーション情報を用いて位置情報に基づいて識別対象の予測座標を算出する(ステップS302)。範囲決定部412が算出した予測座標を含む探索範囲を決定し(ステップS303)、決定した探索範囲について詳細探索を実行する(ステップS304)。
ステップS304の詳細探索で識別対象の実座標の検出に成功した場合は(ステップS305:Yes)、実座標は動作制御ユニット200に対して出力され(ステップS309)、動作制御ユニット200が、その実座標を用いて駆動機器111,112,113を制御する。ワーク10の移動後、次の撮像画像について前回と同じ探索範囲について詳細探索を実行する。このように、詳細探索で検出成功した場合には、粗探索を実行せずに詳細探索を繰り返し実行する。
詳細探索を繰り返す中で、識別対象の検出に失敗した場合のみ(ステップS305:No)、粗探索を実行することにより(ステップS306)探索範囲を決定し(ステップS307)、決定した探索範囲において詳細探索を実行し(ステップS308)、実座標が出力される(ステップS309)。このように本変形例によれば、事前のキャリブレーション情報に基づいて詳細探索を繰り返し、識別対象が検出できなかったときのみ、粗探索を実行することとした。これにより、処理を簡易化することができ高速なアライメント制御が可能となる。
なお、上記実施形態及び変形例に示したハードウェア構成及びフローチャートは一例であり、任意に変更及び修正が可能である。例えば、上記実施形態及び変形例において、動作制御ユニット200、撮像装置300、画像処理ユニット400及び設定端末500は、独立した構成としたが、これらの少なくとも2つを一体化した構成でもよい。
また、上記実施形態及び変形例に示した探索処理は、任意に組み合わせて実行してもよい。また、設定端末500により、上記実施形態及び変形例に係る探索処理のいずれかを選択可能にしてもよい。あるいは、画像処理ユニット400が、ワークの種類、識別対象の形態等の条件に応じて上記実施形態及び変形例に係る探索処理のいずれかを自動選択してもよい。
また、上記実施形態及び変形例における動作制御ユニット200と画像処理ユニット400と、におけるプロセッサが実現する各機能の分担は一例であり、任意に分担を変更してもよい。また、動作制御ユニット200又は画像処理ユニット400のプロセッサが実現する各機能は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
また、上記実施形態の動作を実行するためのプログラムを、コンピュータが読み取り可能なCD-ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical Disc)、メモリカード等の記録媒体に格納して配布し、プログラムをコンピュータにインストールすることにより、各機能を実現することができるコンピュータを構成してもよい。そして、各機能をOS(Operating System)とアプリケーションとの分担、又はOSとアプリケーションとの協同により実現する場合には、OS以外の部分のみを記録媒体に格納してもよい。
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、本開示の範囲内とみなされる。