〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施形態においては、検出対象であるワーク40および検出装置である撮像装置33の少なくとも一方の移動中に検出した検出結果から、ワーク40の位置Pwを特定する位置特定装置10を、「検出対象の位置を特定する位置特定装置」の典型例として説明する。
§1.適用例
(制御システムの概要)
本発明の一態様に係る位置特定装置10についての理解を容易にするため、先ず、本発明が適用される場面の一例について、具体的には、位置特定装置10を含む制御システム1の概要について、図2を用いて説明する。
図2は、制御システム1の全体概要を示す図である。制御システム1は、マスタとしての位置特定装置10と、マスタにネットワークを介して接続される1つ以上のスレーブとしてのサーボ制御系20および検出系30とを含む、マスタスレーブ制御システムである。位置特定装置10は、制御システム1において、ネットワークを介したデータ伝送を管理しているという意味で「マスタ」と呼ばれ、一方、「スレーブ」は、マスタによって管理され、例えば、工場内に設置される設備のデータ収集および制御を行う。制御システム1において、マスタとしての位置特定装置10と、スレーブとしてのサーボ制御系20および検出系30とをつなぐネットワークとしては、例えば、EtherCAT(登録商標)を使用することができる。
なお、「マスタ」および「スレーブ」は、ネットワーク上のデータ伝送の制御機能に着目して定義されるものであり、各装置間でどのような情報が送受信されるかについては、特に限定されない。
(位置特定装置)
位置特定装置10は、マスタとして、サーボ制御系20および検出系30等のスレーブが出力する制御結果(例、制御量および検出結果)を示すデータを、制御周期Ccごとに取得する(受信する)。また、位置特定装置10は、マスタとして、サーボ制御系20および検出系30等のスレーブへと、指令値Cmおよび検出指示時刻aTdを含む制御信号Cs(制御指示)を、制御周期Ccごとに出力する(送信する)。
位置特定装置10は、例えば、サーボモータ22などの制御機器を制御するためのユーザプログラムを実行するPLC(Programmable Logic Controller)等の産業用の位置特定装置である。制御システム1において、位置特定装置10は、下位コントローラとしてのサーボドライバ21に対する上位コントローラである。
具体的には、位置特定装置10は、目標軌道Ttから制御周期Ccごとに生成した指令値Cmを、サーボドライバ21を含むサーボ制御系20に対して制御周期Ccごとに出力する。サーボ制御系20において、指令値Cmを受信したサーボドライバ21は、制御対象であるサーボモータ22等の出力である制御量を、指令値Cmに追従するようにフィードバック制御を行う。そして、位置特定装置10は、サーボ制御系20(特に、サーボドライバ21)から、サーボモータ22の出力(制御量。例えば、トルク、速度、および位置など)に係るデータを制御周期Ccごとに取得する。位置特定装置10は、サーボ制御系20から受信した制御量(例、制御周期Ccごとのフィードバック位置Pf)に基づいてさらにサーボ制御系20に指令値Cmを生成し、生成した指令値Cmをサーボ制御系20へと送信することで、サーボ制御系20を制御する。
ここで、位置特定装置10は、例えば複数のサーボ制御系20を制御し、具体的には、以下のように複数のサーボ制御系20を制御する。すなわち、位置特定装置10は、複数のサーボ制御系20の各々について、目標軌道Ttからサーボ制御系20ごとの指令軌道Coを生成する。そして、位置特定装置10は、サーボ制御系20ごとの指令軌道Coから生成した「サーボ制御系20ごとの指令値Cm」を、複数のサーボ制御系20の各々に対する制御周期Ccごとに出力して、複数のサーボ制御系20を協調制御する。位置特定装置10は、複数のサーボ制御系20の各々の応答遅れ時間Dsを考慮して「サーボ制御系20ごとの指令値Cm」を生成することによって、複数のサーボ制御系20を、動作結果(制御量)のレベルで同期させる。
図2に示す例では、位置特定装置10は、目標軌道Ttから、サーボ制御系20(A)および20(B)の各々の指令軌道Co(A)およびCo(B)を生成する。位置特定装置10は、指令軌道Co(A)およびCo(B)の各々から、サーボ制御系20(A)および20(B)の各々の指令値Cm(A)およびCm(B)を生成する。特に、位置特定装置10は、サーボ制御系20(A)および20(B)の各々の応答遅れ時間Ds(A)およびDs(B)を考慮して、指令値Cm(A)およびCm(B)を生成する。位置特定装置10は、指令値Cm(A)およびCm(B)を、サーボ制御系20の制御周期Ccごとに出力することによって、サーボ制御系20(A)および20(B)の各々を協調制御する。
また、制御システム1において、位置特定装置10は、検出指示時刻aTdを指定した制御信号Csを、例えば制御周期Ccごとに出力する。また、位置特定装置10は、検出系30から、検出系30の実行した検出動作(例、撮像動作)の結果である検出結果(例、撮像画像Im)を、例えば制御周期Ccごとに、取得する(受信する)。
詳細は後述するが、位置特定装置10は、「検出系30の応答遅れ時間Dd」によって検出時刻Tdを補正した時刻である検出指示時刻aTdを、制御信号Csにおいて指定する。そして、位置特定装置10は、検出指示時刻aTdを指定した制御信号Csを検出系30へと出力することによって、検出時刻Tdにおいて、撮像装置33(検出装置)に、検出動作(撮像動作)を実行させる。
図2に示す例では、マスタとしての位置特定装置10に対して、サーボ制御系20(A)および20(B)という2つのサーボ制御系20と、1つの検出系30とが、スレーブとして接続されている例が示されている。ただし、位置特定装置10に接続されるサーボ制御系20が2つであることは必須ではなく、制御システム1において、マスタとしての位置特定装置10に接続されるサーボ制御系20は1つ以上であればよく、例えば、5つであってもよい。
以下の説明においては、サーボ制御系20について、複数のサーボ制御系20の各々を区別する必要がある場合には、符号に「(A)」、「(B)」、「(C)」、・・・、「(Z)」等の添え字を付して区別する。例えば、「サーボ制御系20(A)」、「サーボ制御系20(B)」、「サーボ制御系20(C)」、・・・、「サーボ制御系20(Z)」と記載して区別する。複数のサーボ制御系20の各々を特に区別する必要がない場合は単に「サーボ制御系20」と称する。
また、ワーク40について、複数のワーク40の各々を区別する必要がある場合には、符号に「(A)」、「(B)」、「(C)」、・・・、「(Z)」等の添え字を付して区別する。例えば、「ワーク40(A)」、「ワーク40(B)」、「ワーク40(C)」、・・・、「ワーク40(Z)」と記載して区別する。複数のワーク40の各々を特に区別する必要がない場合は単に「ワーク40」と称する。「ワーク40の位置Pw」、「撮像画像Im」、「検出時刻Td」、「予想検出位置pPd」等についても同様である。
(サーボ制御系)
サーボ制御系20は、位置特定装置10からの指令値Cmに従って、サーボ制御系20の出力(例えば、位置)を制御し、具体的には、撮像装置33およびワーク40の少なくとも一方の位置を制御するフィードバック制御系である。例えば、図3に示す例ではサーボ制御系20は、撮像装置33の位置を制御し、図4に示す例ではサーボ制御系20は、ワーク40の位置Pw(より具体的には、ワーク40の載置された基板の位置)を制御している。
サーボ制御系20は、撮像装置33およびワーク40の少なくとも一方の位置を変更するアクチュエータ(Actuator)としてのサーボモータ22と、サーボモータ22を制御するサーボドライバ21とを含む。
サーボドライバ21は、サーボモータ22の制御装置であり、位置特定装置10からの制御信号Cs(具体的には、指令値Cm)を制御周期Ccごとに受信し、受信した制御信号Csに従ってサーボモータ22の駆動を制御する。また、サーボドライバ21は、サーボモータ22の軸に接続されている位置センサおよびトルクセンサなどから、位置、速度、トルクといったサーボモータ22の出力に係る実測値を取得する。サーボドライバ21は、取得したこれら実測値に係るデータを、制御周期Ccごとに位置特定装置10に出力する。
サーボモータ22は、サーボドライバ21の制御に従って出力(具体的には、撮像装置33およびワーク40の少なくとも一方の位置)が制御されるアクチュエータであり、例えば、リニアアクチュエータである。サーボモータ22は、例えば、手先に撮像装置33を備えるマニピュレータの軸を駆動することによって、撮像装置33の位置を変更し、つまり、検出位置Pdを変更する。以下の説明において、サーボモータ22の出力に係る実測値としての「サーボ制御系20の出力位置」を、「フィードバック位置Pf」と称することがある。
例えばサーボ制御系20が撮像装置33の位置を制御する場合、サーボモータ22(A)およびサーボモータ22(B)の各々の出力によって、互いに直行するX軸、Y軸の各々における、撮像装置33の位置は決定される。つまり、撮像装置33の位置(言い換えれば、検出位置Pd)のX軸、Y軸の各々における値は、サーボモータ22(A)およびサーボモータ22(B)の各々の出力によって、決定される。サーボドライバ21(A)、21(B)の各々は、サーボモータ22(A)、22(B)の各々の出力を制御し、つまり、各々の駆動を制御する。
例えばサーボ制御系20が撮像装置33の位置を制御する場合、サーボドライバ21(A)は、サーボモータ22(A)の出力に係る実測値(制御量)の1つとして、撮像装置33のX軸におけるフィードバック位置Pf(A)を位置特定装置10に送信する。同様に、サーボドライバ21(B)は、サーボモータ22(B)の制御量の1つとして、撮像装置33のY軸におけるフィードバック位置Pf(B)を位置特定装置10に送信する。
(検出系)
検出系30は、ワーク40を検出した結果である検出結果を生成し、特に、「ワーク40の位置Pwと検出位置Pdとのずれ量」を算出するための情報を検出結果として生成し、生成した検出結果を位置特定装置10へと通知する(送信する)。図2に例示する検出系30は、検出装置である撮像装置33と、撮像装置33による検出動作(例、撮像動作)を制御する撮像制御装置32と、撮像制御装置32と通信を実行する通信装置31とを含んでいる。
撮像装置33は、撮像制御装置32から検出トリガ(撮像トリガ)を受信すると、検出動作(撮像動作)を実行し、また、実行した検出動作の結果を、例えば、撮像動作の実行によって生成した撮像画像Imを、撮像制御装置32へと出力する(送信する)。
撮像制御装置32は、検出トリガ(撮像トリガ)を撮像装置33へと出力する(送信する)ことにより、撮像装置33に、検出動作(撮像動作)を実行させ、また、撮像装置33から、検出動作の実行結果である検出結果(例、撮像画像Im)を受信する。特に、撮像制御装置32は、撮像装置33への検出トリガ(撮像トリガ)の出力を指示する出力指示(検出指示)を通信装置31から受信すると、撮像装置33へと、検出トリガを送信する。
撮像制御装置32は、撮像装置33から、検出動作の実行結果である検出結果(例、撮像画像Im)を受信すると、受信した検出結果を、ネットワークを介して、位置特定装置10へと出力する(送信する)。例えば、撮像制御装置32は、撮像装置33による検出動作の実行結果である検出結果(例、撮像画像Im)を、検出時刻Td以降の或る制御周期Ccにおいて、ネットワークを介して、位置特定装置10へと出力する(送信する)。
詳細は後述するが、撮像制御装置32は、撮像装置33から、検出動作の実行結果である検出結果(例、撮像画像Im)を受信すると、受信した検出結果を解析し、解析結果を、ネットワークを介して、位置特定装置10へと出力してもよい。例えば、撮像制御装置32は、撮像装置33の生成した撮像画像Imに対して画像解析を実行し、画像解析の結果を、検出時刻Td以降の或る制御周期Ccにおいて、ネットワークを介して、位置特定装置10へと出力してもよい。
具体的には、撮像制御装置32は、撮像画像Imに対する画像解析によって、撮像画像Imにおけるワーク40の位置Pw(例、ワーク40の中心位置)と基準位置Rbとのずれ量である「画像内での位置ずれ」量を算出してもよい。そして、撮像制御装置32は、算出した「画像内での位置ずれ」量を、ネットワークを介して、位置特定装置10へと出力してもよい。例えば、撮像制御装置32は、算出した「画像内での位置ずれ」量を、検出時刻Td以降の或る制御周期Ccにおいて位置特定装置10へと送信してもよい。
通信装置31は、位置特定装置10から制御周期Ccごとに制御信号Csを受信し、受信した制御信号Csにおいて指定されている検出指示時刻aTdにおいて、出力指示(検出指示)を、撮像制御装置32へと出力する(送信する)。
検出系30において、通信装置31が出力指示を撮像制御装置32へと送信してから、撮像装置33が検出動作を実行するまでには所定時間が必要であり、この所定時間を「検出系30の応答遅れ時間Dd」とも称する。「検出系30の応答遅れ時間Dd」は、「撮像装置33(検出装置)の応答遅れ時間」とも呼ばれる。
(制御システムの適用例)
図3は、制御システム1の適用例を説明する図である。具体的には、制御システム1を、基板上に載置されている複数のワーク40の各々の位置Pwを特定するために、撮像装置33を移動させて、複数のワーク40の各々について、撮像画像Imを生成するアプリケーションに適用した例を説明する図である。
制御システム1(特に、位置特定装置10)は、図3に例示するように、基板上に載置されている複数のワーク40の各々の頭上を通る軌跡で、撮像装置33を移動させる。また、位置特定装置10は、複数のワーク40の各々の頭上で撮像装置33に撮像を実行させ、複数のワーク40の各々についての撮像画像Imを生成させる。そして、位置特定装置10は、撮像装置33に複数のワーク40の各々についての撮像画像Imを生成させた時刻における撮像装置33の位置と、複数のワーク40の各々についての撮像画像Imとから、複数のワーク40の各々の位置Pwを特定する。
例えば、図3において点線矢印で示すように、位置特定装置10は、撮像装置33を、先ずワーク40(A)の頭上に移動させ、次にワーク40(B)の頭上に移動させ、さらに順次、ワーク40(C)、40(D)、40(E)の各々の頭上へと移動させる。
また、位置特定装置10は、ワーク40(A)から40(E)の各々の頭上で撮像装置33に撮像を実行させ、ワーク40(A)から40(E)の各々についての撮像画像Imを生成させ、つまり、撮像画像Im(A)から撮像画像Im(E)を生成させる。
そして、位置特定装置10は、「撮像装置33に撮像画像Im(A)を生成させた時刻である検出時刻Td(A)における、撮像装置33の位置」と、撮像画像Im(A)とから、ワーク40(A)の位置Pw(A)を特定する。位置特定装置10は、「撮像装置33に撮像画像Im(B)を生成させた時刻である検出時刻Td(B)における、撮像装置33の位置」と、撮像画像Im(B)とから、ワーク40(B)の位置Pw(B)を特定する。位置特定装置10は、「撮像装置33に撮像画像Im(C)を生成させた時刻である検出時刻Td(C)における、撮像装置33の位置」と、撮像画像Im(C)とから、ワーク40(C)の位置Pw(C)を特定する。位置特定装置10は、「撮像装置33に撮像画像Im(D)を生成させた時刻である検出時刻Td(D)における、撮像装置33の位置」と、撮像画像Im(D)とから、ワーク40(D)の位置Pw(D)を特定する。位置特定装置10は、「撮像装置33に撮像画像Im(E)を生成させた時刻である検出時刻Td(E)における、撮像装置33の位置」と、撮像画像Im(E)とから、ワーク40(E)の位置Pw(E)を特定する。
ここで、図3に示す例では、ワーク40は、1mm以下の微細電子部品であり、例えば、積層セラミックコンデンサ、水晶振動子、ICチップ、その他各種素子である。部品の微細化と回路の微細化とが進んでいるため、このような電子部品の基板上の位置を特定する作業(位置特定作業、検査作業)には、高精度化が要求されている。また、使用部品点数が増加しているのに合わせて検査箇所も増加しているため、上述の位置特定作業、検査作業を高速化して、位置特定作業、検査作業に要する時間を短縮することも要求されている。すなわち、微細な部品配置、微細な印刷パターンについて、位置検査を高速かつ高精度化に実現したいとの要望がある。
そこで、制御システム1(特に、位置特定装置10)は、以下の2つの値を用いて、ワーク40の位置Pwを高精度に特定する。すなわち、位置特定装置10は、「検出位置Pd(つまり、検出時刻Tdにおける撮像装置33の位置)」と、「検出位置Pdとワーク40の位置Pwとのずれ量である検出ずれ量Qd」とによって、ワーク40の位置Pwを高精度に特定する。検出位置Pdは、撮像画像Imにおける基準位置Rbに対応するから、検出ずれ量Qdは、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」である「画像内での位置ずれ量」に対応する。
また、制御システム1(特に、位置特定装置10)は、撮像装置33の移動を停止させずに、撮像装置33の移動中に、撮像装置33にワーク40を撮像させ、その結果得られた撮像画像Imから、検出ずれ量Qdを算出する。したがって、制御システム1(特に、位置特定装置10)は、撮像装置33の移動を停止させてから撮像画像Imを生成させる方法に比べて、検出ずれ量Qdを考慮したワーク40の高精度な位置特定を、高速で実現することができる。
(検出装置を移動させる例について)
図3に例示する制御システム1において、検出装置である撮像装置33の位置は、サーボ制御系20によって制御され、つまり、撮像装置33の位置はサーボ制御系20の出力によって決定される。すなわち、位置特定装置10は、サーボドライバ21へと指令値Cmを送信することによって、サーボドライバ21に、サーボモータ22の出力(出力位置)を制御させる。例えば、撮像装置33の、互いに直行するX軸、Y軸上の各々における位置は、サーボ制御系20(A)、20(B)という2つのサーボ制御系20の各々の出力(出力位置)である。
具体的には、位置特定装置10から指令値Cm(A)を受けたサーボドライバ21(A)は、サーボモータ22(A)を制御し、サーボモータ22(A)によって撮像装置33はX軸方向に移動する。また、サーボモータ22(A)の制御結果(出力)は、サーボドライバ21(A)へとフィードバックされる。同様に、位置特定装置10から指令値Cm(B)を受けたサーボドライバ21(B)は、サーボモータ22(B)を制御し、サーボモータ22(B)によって撮像装置33はY軸方向に移動する。また、サーボモータ22(B)の制御結果は、サーボドライバ21(B)にフィードバックされる。
また、図3に例示する制御システム1において、位置特定装置10は、検出指示時刻aTdを指定した制御信号Csを検出系30(特に、通信装置31)へと送信することによって、検出時刻Tdにおいて撮像装置33に撮像を実行させる。検出時刻Tdは、撮像装置33の位置とワーク40の位置Pwとが一致し、または、両者のずれ量が十分に小さくなる時刻である。検出時刻Tdにおいて撮像装置33が撮像を実行して生成した撮像画像Imは、撮像制御装置32によって、位置特定装置10へと送信される。撮像制御装置32は、撮像画像Imに代えて、撮像画像Imに対する画像解析によって算出した、『撮像画像Imにおけるワーク40の位置Pwと基準位置Rbとのずれ量である「画像内での位置ずれ」量』を、位置特定装置10へと出力してもよい。
ここで、撮像装置33がワーク40を検出する位置である検出位置Pdは、検出時刻Tdにおける撮像装置33の位置とみなすことができる。そのため、位置特定装置10は、検出時刻Tdにおける撮像装置33の位置から、検出位置Pdを算出することができる。
また、検出位置Pdは、つまり、検出時刻Tdにおける撮像装置33の位置は、撮像装置33の生成する検出結果である撮像画像Imにおける基準位置Rb(例えば、撮像画像Imの中心位置)に対応する。そのため、位置特定装置10は、撮像画像Imにおける基準位置Rbとワーク40の位置Pwとのずれ量から、基準位置Rbに対応する検出位置Pdとワーク40の位置Pwとのずれ量(検出ずれ量Qd)を算出することができる。図3に示す例では、撮像画像Imにおける基準位置Rbは、撮像画像Imにおける二点鎖線の交差する点として示されている。
そして、位置特定装置10は、検出時刻Tdにおける撮像装置33の位置から算出した検出位置Pdと、撮像画像Imから算出した検出ずれ量Qdとによって、ワーク40の位置Pwを特定する。
図3に示す例では、位置特定装置10がサーボ制御系20を介して撮像装置33の位置を制御する例を説明したが、位置特定装置10は、サーボ制御系20を介して、ワーク40の位置Pwを制御してもよい。以下、図4を用いて、位置特定装置10がワーク40の位置Pw(より具体的には、ワーク40の載置された基板の位置)を制御する例について説明する。
(検出対象を移動させる例について)
図4は、図3に示したのと同様の制御システム1の適用例について、位置特定装置10が、サーボ制御系20を介して、検出対象であるワーク40の位置Pw(より具体的には、ワーク40の載置された基板の位置)を制御する運用例を示す図である。すなわち、図3においては、ワーク40の位置Pwは固定され、撮像装置33が移動したのに対して、図4においては、撮像装置33の位置は固定され、ワーク40の位置Pwが移動する。ただし、その他の点においては、位置特定装置10が実行する処理の内容は、図4に示す例と図3に示す例とでほぼ同様である。
図4に例示する制御システム1において、ワーク40の位置Pwは、サーボ制御系20によって制御され、つまり、ワーク40の位置Pwはサーボ制御系20の出力によって決定される。すなわち、位置特定装置10は、サーボドライバ21へと指令値Cmを送信することによって、サーボドライバ21に、サーボモータ22の出力(出力位置)を制御させる。例えば、ワーク40の位置Pwの、互いに直行するX軸、Y軸上の各々における値は、サーボ制御系20(A)、20(B)という2つのサーボ制御系20の各々の出力(出力位置)である。
具体的には、位置特定装置10から指令値Cm(A)を受けたサーボドライバ21(A)は、サーボモータ22(A)を制御し、サーボモータ22(A)によってワーク40はX軸方向に移動する。また、サーボモータ22(A)の制御結果(出力)は、サーボドライバ21(A)へとフィードバックされる。同様に、位置特定装置10から指令値Cm(B)を受けたサーボドライバ21(B)は、サーボモータ22(B)を制御し、サーボモータ22(B)によってワーク40はY軸方向に移動する。また、サーボモータ22(B)の制御結果は、サーボドライバ21(B)にフィードバックされる。
図4に示す例においても、図3に示したのと同様に、位置特定装置10は、検出指示時刻aTdを指定した制御信号Csを検出系30へと送信することによって、検出時刻Tdにおいて撮像装置33に撮像を実行させる。そして、位置特定装置10は、撮像装置33の位置から算出した検出位置Pdと、撮像画像Imから算出した検出ずれ量Qdとによって、ワーク40の位置Pwを特定する。図4に示す例においても、図3に示したのと同様に、撮像画像Imにおける基準位置Rbは、撮像画像Imにおける二点鎖線の交差する点として示されている。
図3では、位置特定装置10が、サーボ制御系20を介して撮像装置33を制御する運用例を示し、また、図4では、位置特定装置10が、サーボ制御系20を介してワーク40の位置Pwを制御する運用例を示した。ただし、位置特定装置10が位置を制御するのは撮像装置33またはワーク40のどちらか一方である必要はなく、位置特定装置10は、撮像装置33およびワーク40の両方の位置を制御してもよい。
例えば、制御システム1において、撮像装置33のX軸上の位置はサーボ制御系20(A)の出力によって決定され、ワーク40の位置PwのY軸上の値はサーボ制御系20(B)の出力によって決定されてもよい。すなわち、位置特定装置10は、サーボドライバ21(A)へと指令値Cm(A)を送信することによって、サーボドライバ21(A)に、サーボモータ22(A)の出力(出力位置)を制御させ、つまり、撮像装置33の、X軸上の位置を制御させる。また、位置特定装置10は、サーボドライバ21(B)へと指令値Cm(B)を送信することによって、サーボドライバ21(B)に、サーボモータ22(B)の出力(出力位置)を制御させ、つまり、ワーク40の位置Pwの、Y軸上の値を制御させる。
具体的には、位置特定装置10から指令値Cm(A)を受けたサーボドライバ21(A)は、サーボモータ22(A)を制御し、サーボモータ22(A)によって撮像装置33はX軸方向に移動する。また、サーボモータ22(A)の制御結果(出力)は、サーボドライバ21(A)へとフィードバックされる。同様に、位置特定装置10から指令値Cm(B)を受けたサーボドライバ21(B)は、サーボモータ22(B)を制御し、サーボモータ22(B)によってワーク40はY軸方向に移動する。また、サーボモータ22(B)の制御結果は、サーボドライバ21(B)にフィードバックされる。
位置特定装置10が撮像装置33およびワーク40の両方の位置を制御する場合であっても、位置特定装置10による「ワーク40の位置Pwの特定方法」は、図3および図4を用いて説明したのと同様である。すなわち、位置特定装置10は、検出指示時刻aTdを指定した制御信号Csを検出系30へと送信することによって、検出時刻Tdにおいて撮像装置33に撮像を実行させる。そして、位置特定装置10は、検出時刻Tdにおける撮像装置33の位置から算出した検出位置Pdと、撮像画像Imから算出した検出ずれ量Qdとによって、ワーク40の位置Pwを特定する。
なお、以下では、位置特定装置10の実行する処理についての理解を容易にするため、「位置特定装置10が、サーボ制御系20を介して撮像装置33の位置を制御する」例を用いて、位置特定装置10による「ワーク40の位置Pwの特定方法」を説明する。ただし、前述の通り、位置特定装置10は撮像装置33およびワーク40の少なくとも一方の位置を制御すればよく、位置特定装置10にとって撮像装置33の位置を制御することは必須ではない。
また、撮像画像Imに対する画像解析を位置特定装置10が実行することは必須ではない。位置特定装置10は、撮像画像Imにおけるワーク40の位置Pw(例、ワーク40の中心位置)と基準位置Rbとのずれ量である「画像内での位置ずれ量」から、ワーク40の位置Pwと検出位置Pdとのずれ量である検出ずれ量Qdを特定することができればよい。撮像画像Imに対する画像解析を実行するのは撮像制御装置32であってもよく、言い換えれば、撮像制御装置32が、撮像画像Imに対する画像解析によって、「画像内での位置ずれ」量を算出してもよい。その場合、位置特定装置10は、撮像制御装置32から「画像内での位置ずれ量」を取得し、取得した「画像内での位置ずれ量」から、検出ずれ量Qdを特定する(算出する)。
(ワークの撮像方法に係る第一の工夫:無停止での撮像画像の生成)
図5は、ワーク40の撮像方法のヴァリエーションを説明する図である。図5の(A)は、「基準位置Rbに対応する検出位置Pdとワーク40の位置Pwとのずれ量(検出ずれ量Qd)を算出する」ための撮像画像Imを生成させる、従来までの方法を説明する図である。
すなわち、従来は、撮像装置33の移動を停止させてワーク40を撮像させ、撮像画像Imを生成させる方法が一般的であった。具体的には、従来の制御システムは、撮像装置33の移動速度(サーボ速度Vs)をいったん「0」にし、撮像装置33等の振動が収まってから、つまり、待機時間(振動減衰待ち時間)が経過してから、検出トリガを出力して、撮像装置に撮像を実行させていた。そして、従来の制御システムは、撮像装置が生成した撮像画像を用いて、ワーク40の位置Pwを特定し、ワーク40が所望の位置にあるかを検査していた。
「撮像装置33の移動を停止して、撮像画像Imを生成させる」従来までの方法は、基準位置Rbに対応する検出位置Pdとワーク40の位置Pwとのずれ量(検出ずれ量Qd)を高精度に検出可能な撮像画像Imを生成できるとの利点を有する。
ただし、従来の制御システムは、「撮像装置33の移動を停止させる」、および、「待機時間が経過するまで待つ」という処理の後に、撮像を実行するため、図5の(A)に示すように撮像の実行に要する時間が長くなるという問題がある。
図5の(B)は、制御システム1(特に、位置特定装置10)が実行する、「基準位置Rbに対応する検出位置Pdとワーク40の位置Pwとのずれ量(検出ずれ量Qd)を算出する」ための撮像画像Imを生成させる方法を説明する図である。位置特定装置10は、撮像装置33の移動を停止せずに、つまり、無停止で、撮像画像Imを生成させる。具体的には、図5の(B)に示すように、位置特定装置10は、撮像装置33の移動速度(サーボ速度Vs)を「0」にすることなく、撮像装置33の移動中に、検出トリガを出力して、撮像装置33に撮像を実行させる。
図5の(B)に示す、位置特定装置10の「無停止で撮像画像Imを生成させる」方法は、図5の(A)に示す、従来の制御システムの「撮像装置33の移動を停止させてから撮像画像Imを生成させる」方法に比べて、タクトを上げることができる。
特に、図5に示すように複数のワーク40の各々の位置Pwを特定するために、複数のワーク40の各々についての、複数の撮像画像Imを生成させようとする場合、従来までの方法と、位置特定装置10が実行する方法との違いは大きくなる。
すなわち、従来までの方法では、撮像画像Imを生成させようとする都度、撮像装置33の移動速度をいったん「0」にし、待機時間が経過してから、撮像画像Imを生成させるため、複数の撮像画像Imを生成させるには膨大な時間を要した。これに対して、位置特定装置10は、撮像装置33の移動を停止させずに、つまり、撮像装置33の移動中に、複数の撮像画像Imを順次生成させるため、複数の撮像画像Imを生成させるのに要する時間を、従来までの方法に比べて大幅に短縮できる。
図5の(A)に示すように、撮像画像Imを生成させる都度、撮像装置33の移動を停止して、撮像装置33の位置を所定の位置に配置してから撮像画像Imを生成させる場合、撮像画像Imを生成するのに要する時間は長くなる。ただし、撮像画像Imの生成時刻における撮像装置33の位置は固定されており、つまり、検出位置Pdは固定だから、ワーク40の位置Pwは、予め設定された検出位置Pdと、「ワーク40の位置Pwの、検出位置Pdからのずれ量」とによって特定できる。そして、「ワーク40の位置Pwの、検出位置Pdからのずれ量」は、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」によって、精緻に算出することができる。
これに対して、図5の(B)に示すように、撮像装置33の移動を停止させずに撮像画像Imを生成させる場合、撮像画像Imを生成するのに要する時間は、「撮像画像Imを生成させる都度、撮像装置33の移動を停止させる」のに比べて短縮することができる。ただし、撮像画像Imの生成時点における撮像装置33の位置は固定されておらず、つまり、検出位置Pdは固定されていない。
そのため、ワーク40の位置Pwは、「時刻ごとに変化する検出位置Pdの、撮像画像Imの生成時刻(つまり、検出時刻Td)における位置」と、「ワーク40の位置Pwの、検出位置Pdからのずれ量」とを精緻に把握しなければ、算出することができない。つまり、位置特定装置10は、ワーク40の位置Pwを特定するために、第一に、検出時刻Tdにおける検出位置Pdを、言い換えれば、「検出時刻Tdにおける、撮像装置33の位置」を精緻に算出しなければならない。第二に、位置特定装置10は、「ワーク40の位置Pwの、検出位置Pdからのずれ量」を、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」から精緻に算出しなければならない。
位置特定装置10は、撮像装置33の移動を停止させずに、撮像装置33の移動中に撮像した撮像画像Imからワーク40の位置Pwを特定するために、以下の2つの値を精緻に算出する。すなわち、位置特定装置10は、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」と、「検出時刻Tdにおける、撮像装置33の位置」とを、精緻に算出する。
ここで、撮像装置33の位置はサーボ制御系20によって制御されるから、撮像装置33の位置はサーボ制御系20のフィードバック位置Pfとみなすことができる。それゆえ、「検出時刻Tdにおける、撮像装置33の位置」は、「検出時刻Tdにおける、サーボ制御系20のフィードバック位置Pf」とみなすことができる。
また、「ワーク40の位置Pwの、検出位置Pdからのずれ量」は、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」に対応する。以下の説明においては、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」は、「画像内での位置ずれ」と略記することがある。
したがって、「ワーク40の位置Pwは、『ワーク40の位置Pwの、検出位置Pdからのずれ量』と『検出時刻Tdにおける検出位置Pd』とによって特定できる」という関係は、以下のように表現することができる。すなわち、{ワーク40の位置Pw = 画像内での位置ずれ + 「検出時刻Tdにおける、サーボ制御系20のフィードバック位置Pf(実位置)」}と表現することができる。
(撮像画像における基準位置とワークの位置とのずれ量について)
図6は、撮像画像Imから算出する「画像内での位置ずれ量」を説明する図である。前述の通り、位置特定装置10は、撮像画像Imから「画像内での位置ずれ量」を算出し、つまり、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」する。そして、位置特定装置10は、「画像内での位置ずれ量」から、基準位置Rbに対応する検出位置Pdとワーク40の位置Pwとのずれ量(検出ずれ量Qd)を算出する。
図6において、二点鎖線の交差する点は「撮像画像Im中の、検出位置Pdに対応する基準位置Rb(例、撮像画像Imの中心点)」を示している。また、星印は「ワーク40の位置Pw(例、ワーク40の中心位置)」を示している。
図6の(A)に示すように、撮像装置33の位置に対してワーク40の位置Pw(例、ワーク40の中心位置)が右側にずれた状態で撮像装置33が撮像を実行した場合、撮像画像Imにおいても、ワーク40の位置Pwは基準位置Rbに対して右側にずれる。
同様に、図6の(B)に示すように、撮像装置33の位置に対してワーク40の位置Pwが左側にずれた状態で撮像装置33が撮像を実行した場合、撮像画像Imにおいても、ワーク40の位置Pwは基準位置Rbに対して左側にずれる。
(検出を実行させるタイミングの調整)
(サーボ制御系の応答遅れ時間の考慮)
ここで、撮像装置33が撮像を実行するタイミング(つまり、検出時刻Td)において、撮像装置33がワーク40を撮像可能な範囲にワーク40が存在しない場合、位置特定装置10は、撮像画像Imから「画像内での位置ずれ量」を算出することはできない。
そこで、「検出時刻Tdにおいて、撮像装置33がワーク40を撮像可能な範囲にワーク40が存在しない」といった事態を回避するため、位置特定装置10は、以下の処理を実行している。すなわち、位置特定装置10は、撮像装置33の位置(つまり、検出位置Pd)とワーク40の位置Pwとが一致する予想した時刻において、撮像装置33に撮像を実行させる。
例えば、位置特定装置10は、「ワーク40の載置される基板」の設計図などから、「ワーク40が存在すべき位置(言い換えれば、ワーク40が載置される位置として、設計図などで予め設定されている位置)」である予想検出位置pPdを予め取得しておく。そして、位置特定装置10は、「基板上に実際に載置されたワーク40の位置Pwを特定し、ワーク40が上述の設計図通りに載置されているかを確認する」ために、以下の処理を実行する。
すなわち、位置特定装置10は、サーボ制御系20を制御して、撮像装置33が、「予め基板上の予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されているはずのワーク40」の頭上を通るように、撮像装置33を移動させる。
具体的には、位置特定装置10は、検出対象であるワーク40の予想検出位置pPdを目標位置Ptとする目標軌道Ttに沿って、サーボ制御系20を制御する。位置特定装置10がサーボ制御系20を介して撮像装置33の位置を制御する場合、目標軌道Ttは、撮像装置33の移動経路に相当する。
ここで、サーボ制御系20による撮像装置33の位置制御について、サーボ制御系20の応答遅れ時間Dsを考慮しない場合、図7に例示する大きなサーボ位置偏差(サーボ制御系20の、目標位置Ptとフィードバック位置Pfとの差)が発生する。
図7は、サーボ制御系20の応答遅れ時間Dsを考慮しない場合のサーボ位置偏差(目標位置Ptとフィードバック位置Pfとの差)などを説明する図である。図7の(A)に示すように、サーボ制御系20のフィードバック位置Pfは、「サーボ制御系20の応答遅れ時間Dsを考慮しない、サーボ制御系20の目標位置Pt」に対して、サーボ制御系20の応答遅れ時間Ds分だけ送れる。その結果、サーボ制御系20の応答遅れ時間Dsを考慮しない場合、図7の(B)に示すように、比較的大きなサーボ位置偏差が周期的に発生してしまう。
図8は、サーボ制御系20の応答遅れ時間Dsを考慮した場合のサーボ位置偏差(目標位置Ptとフィードバック位置Pfとの差)などを説明する図である。図8の(A)において、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」は点線で示されている。図8の(A)に示すように、サーボ制御系20のフィードバック位置Pfは、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」に略一致する。その結果、サーボ制御系20の応答遅れ時間Dsを考慮した場合、図8の(B)に示すように、サーボ位置偏差は十分に小さくなる。
そこで、位置特定装置10は、「撮像装置33の位置(つまり、検出位置Pd)とワーク40の位置Pwとが一致する予想した時刻において、撮像装置33に撮像を実行させる」ために、以下のように検出時刻Tdを決定する。すなわち、位置特定装置10は、「サーボ制御系20の応答遅れ時間Dsを考慮して算出するサーボ制御系20の目標位置Pt」が、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。
図8に例示したように、サーボ制御系20の応答遅れ時間Dsを考慮することにより、「サーボ制御系20の、時刻ごとの目標位置Pt」と「サーボ制御系20の、時刻ごとのフィードバック位置Pf」とは一致し、または、両者のずれ量は十分に小さくなる。そして、前述の通り、サーボ制御系20のフィードバック位置Pfは、撮像装置33の位置とみなすことができる。そのため、「撮像装置33の、時刻ごとの位置」は、「サーボ制御系20の応答遅れ時間Dsを考慮して算出される、サーボ制御系20の、時刻ごとの目標位置Pt」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「撮像装置33の位置」と、予想検出位置pPdとは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、前述の通り、ワーク40は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている。そのため、検出時刻Tdにおいて、撮像装置33の位置とワーク40の位置Pwとは一致し、または、両者のずれ量は十分に小さくなる。
その結果、位置特定装置10は、「検出時刻Tdにおいて、撮像装置33がワーク40を撮像可能な範囲にワーク40が存在しない」といった事態を回避することができる。
特に、位置特定装置10は、検出位置Pdとワーク40の位置Pwとが一致し、または、両者のずれ量が十分に小さくなる時刻である検出時刻Tdにおいて、撮像装置33に撮像を実行させることによって、以下の撮像画像Imを生成させることができる。すなわち、位置特定装置10は、「検出位置Pdに対応する基準位置Rbと撮像されたワーク40の位置Pwとが一致し、または、両者のずれ量が十分に小さい」撮像画像Imを生成させることができる。「検出位置Pdに対応する基準位置Rbと撮像されたワーク40の位置Pwとが一致し、または、両者のずれ量が十分に小さい」撮像画像Imに対しては、高解像度の画像解析を実行可能であるから、位置特定装置10は、検出ずれ量Qdを高精度に算出できる。
図9は、予想検出位置pPd(言い換えれば、目標位置Pt)を「100」とした場合の動作プロファイルの一例を示す図である。具体的には、図9の(A)は、予想検出位置pPdを「100」とした場合について、各時刻における、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」および「これに対応するサーボ制御系20の目標速度」を示している。図9の(B)は、予想検出位置pPdを「100」とした場合について、各時刻における、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」に対する「サーボ制御系20のフィードバック位置Pf」のずれ量を示している。
予想検出位置pPdを「100」とした場合、各時刻における、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」に対する「サーボ制御系20のフィードバック位置Pf」のずれ量は、以下の範囲に収まっている。「-0.005mm(つまり、-5μm)」から「+0.005mm(つまり、+5μm)」の範囲に収まっている。
図9の(B)に示すように、サーボ制御系20の、各時刻におけるサーボ制御系20のフィードバック位置Pfは、サーボ制御系20の応答遅れ時間Dsを考慮したとしても、サーボ制御系20の、各時刻における目標位置Ptに完全には一致していない。つまり、各時刻における撮像装置33の位置は、サーボ制御系20の応答遅れ時間Dsを考慮したとしても、サーボ制御系20の目標位置Ptに完全には一致していない。
ここで、前述の通り、検出時刻Tdにおいて、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」は、予想検出位置pPdに一致する。そして、検出時刻Tdにおいて、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」と「サーボ制御系20のフィードバック位置Pf(つまり、撮像装置33の位置)」とは一致していない。したがって、検出時刻Tdにおいて、撮像装置33の位置は、予想検出位置pPdに完全には一致していない。ただし、前述の通り、「サーボ制御系20の応答遅れ時間Ds」を考慮することで、「サーボ制御系20の目標位置Pt」と「サーボ制御系20のフィードバック位置Pf」との差は十分に小さくなる。つまり、検出時刻Tdにおいて、予想検出位置pPdと撮像装置33の位置とのずれ量は十分に小さくなっている。
図10は、検出時刻Tdにおける、「サーボ制御系20のフィードバック位置Pf」と、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」とのずれを説明する図である。具体的には、図10には、図9の(B)と、検出時刻Td付近における、図9の(B)の拡大図とが示されている。拡大図において、検出時刻Tdにおける、「サーボ制御系20のフィードバック位置Pf」と、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」とのずれ(量)は、一点鎖線矢印で示されている。
図11は、予想検出位置pPd(言い換えれば、目標位置Pt)を「40」とした場合の動作プロファイルの一例を示す図である。具体的には、図11の(A)は、予想検出位置pPdを「40」とした場合について、各時刻における、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」および「これに対応するサーボ制御系20の目標速度」を示している。図11の(B)は、予想検出位置pPdを「40」とした場合について、各時刻における、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」に対する「サーボ制御系20のフィードバック位置Pf」のずれ量を示している。
予想検出位置pPdを「40」とした場合、各時刻における、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」に対する「サーボ制御系20のフィードバック位置Pf」のずれ量は、以下の範囲に収まっている。「-0.2mm(つまり、-200μm)」から「+0.2mm(つまり、+200μm)」の範囲に収まっている。
図9の(B)に示した「予想検出位置pPdを『100』とした場合のずれ量」に比べて、図11の(B)に示した「予想検出位置pPdを『40』とした場合のずれ量」は大きい。すなわち、図9の(B)に示した「予想検出位置pPdを『100』とした場合のずれ量」は、「0.005mm」から「+0.005mm」の範囲に収まっていた。これに対して、図11の(B)に示した「予想検出位置pPdを『40』とした場合のずれ量」は、「-0.2mm」から「+0.2mm」の範囲になっている。
図11の(A)に示すように、撮像装置33の移動距離を短くすると、動作プロファイルが三角波となり、フィードバック位置Pfを「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」へ追従させるのは、より困難となる。ただし、前述の通り、「サーボ制御系20の応答遅れ時間Ds」を考慮することによって、検出時刻Tdにおける、予想検出位置pPdと撮像装置33の位置とのずれ量を小さくすることができる。
(検出系の応答遅れ時間の考慮)
これまでに説明してきたように、位置特定装置10は、撮像装置33の位置とワーク40の位置Pwとが一致し、または、両者のずれ量が十分に小さくなる時刻である検出時刻Tdにおいて、撮像画像Imを生成させる。
ただし、位置特定装置10が撮像装置33への撮像の指示を検出時刻Tdにおいて出力したしても、撮像装置33は、検出時刻Tdにおいて撮像を行うことはできない。前述の通り、撮像装置33を含む検出系30と位置特定装置10との通信は、制御周期Ccごとに実行されるのであり、また、検出系30の応答遅れ時間Dd(例、撮像装置33の応答遅れ時間Dd)も存在するからである。そこで、位置特定装置10は、撮像装置33が検出時刻Tdにおいて撮像を実行できるように、検出指示時刻aTdを予め検出系30に出力しておく。
すなわち、位置特定装置10(特に、図1の検出時刻決定部1150)は、先ず、「サーボ制御系20の応答遅れ時間Dsを考慮したサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻」を、検出時刻Tdとする。例えば、検出時刻決定部1150は、「サーボ制御系20の目標位置Ptと予想検出位置pPdとが一致する時刻」から、サーボ制御系20の応答遅れ時間Dsが経過した時刻を、検出時刻Tdとする。そして、検出時刻決定部1150は、「検出時刻Tdを検出系30の応答遅れ時間Ddによって補正した時刻」を検出指示時刻aTdとする。例えば、検出時刻決定部1150は、「検出時刻Tdから、検出系30の応答遅れ時間Ddを遡った時刻」を、検出指示時刻aTdとする。そして、位置特定装置10(特に、図1の指令部1210)は、検出指示時刻aTdを、予め検出系30へと出力しておく。
位置特定装置10は、「検出時刻Tdを検出系30の応答遅れ時間Ddによって補正した時刻」である検出指示時刻aTdを予め検出系30へと出力しておくことによって、撮像装置33に、検出時刻Tdにおいて撮像を実行させることができる。そして、検出時刻Tdにおいて、「サーボ制御系20の応答遅れ時間Dsを考慮したサーボ制御系20の目標位置Pt」と、予想検出位置pPdとは一致する。したがって、「サーボ制御系20の応答遅れ時間Dsを考慮したサーボ制御系20の目標位置Pt」と「サーボ制御系20のフィードバック位置Pf」とが一致するのであれば、以下の関係が成立する。すなわち、検出時刻Tdにおいて、「サーボ制御系20のフィードバック位置Pf」と予想検出位置pPdとは一致する。つまり、検出時刻Tdにおいて、撮像装置33の位置と予想検出位置pPdとは一致し、言い換えれば、検出時刻Tdにおいて、検出位置Pdと予想検出位置pPdとは一致する。
(高精度な解析を可能とする検出結果を取得するための工夫についての整理)
これまでに説明してきた内容を整理すれば、以下の通りである。すなわち、位置特定装置10(特に、図1の検出時刻決定部1150)は、先ず、検出時刻Tdを、「目標軌道Ttから算出されるサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する」時刻と、サーボ制御系20の応答遅れ時間Dsとから特定する。
そして、位置特定装置10(検出時刻決定部1150)は、検出時刻Tdを「検出系30の応答遅れ時間Dd」によって補正した時刻である検出指示時刻aTdを算出する。位置特定装置10は、検出指示時刻aTdを予め検出系30(特に、通信装置31)に送信しておくことによって、撮像装置33に、検出時刻Tdにおいて撮像を実行させる。
撮像装置33は、検出時刻Tdにおいて撮像を実行することにより、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」と、予想検出位置pPdとが一致した撮像画像Imを生成する。
前述の通り、「サーボ制御系20の応答遅れ時間Dsを考慮した、サーボ制御系20の目標位置Pt」と撮像装置33の位置とは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、撮像装置33の位置と、検出位置Pdとは同じものとみなすことができる。
そのため、検出時刻Tdにおいて、予想検出位置pPdと検出位置Pdとは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、ワーク40は、予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている。
したがって、検出時刻Tdに撮像された撮像画像Imにおいて、ワーク40の位置Pw(例、ワーク40の中心位置)と基準位置Rb(例、撮像画像Imの中心点)とは一致し、または、両者のずれ量は十分に小さくなるはずである。つまり、撮像画像Imにおいて、ワーク40は、基準位置Rbの周囲に配置されることになり、例えば、撮像画像Imの略中央に配置されることになる。
したがって、位置特定装置10は、ワーク40が略中央に配置されていない撮像画像Imに比べて、ワーク40の撮像された領域が撮像画像Imの全体に占める割合を大きくでき、つまり、ワーク40を拡大して撮像させた撮像画像Imを生成させることができる。そのため、位置特定装置10は、ワーク40が拡大して撮像された撮像画像Imに対して、撮像画像Imについての画素分解能を向上させた高精度な画像解析を行うことができる。
撮像画像Imについて、必要な撮像範囲は、ワーク40のサイズ(ワーク40の撮影される面の面積)と、想定される「位置ずれ(把持ずれ)の大きさ」とにより決定される。
(要求精度の違いによる検出位置(検出ずれ量)の解析結果への影響の違い)
図12は、ワーク40の位置Pwをどれだけ精緻(高精度)に特定するかの違い、つまり、特定すべきワーク40の位置Pwについての要求精度の違いによる、撮像画像Imに対する画像解析に際して必要となる画素分解能について説明する図である。図12の(A)および図12の(B)の各々において、二点鎖線の交差する点は「撮像画像Im中の、検出位置Pdに対応する基準位置Rb(例、撮像画像Imの中心点)」を示している。星印は「ワーク40の位置Pw(例、ワーク40の中心位置)」を示している。また、図12の(A)および図12の(B)の各々に示す例において、「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdは、「±5μm」であるものとする。
以下の説明において、「画素分解能(または要求精度)を上げていく」とは「画素分解能(または要求精度)の値を小さくしていく」ことを指す。ワーク40の位置Pwを高精度に特定しようとする場合、「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdを高精度に算出する必要がある。そして、「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdを高精度に算出しようとする場合、撮像画像Imに対する画素分解能を上げる必要がある。つまり、要求精度を上げることは、画素分解能を上げることである。以下に詳細を説明する。
例えば、要求精度が「100μm」のような低い値である場合、ワーク40の位置Pwを特定するのに際して、「±5μm」である「検出位置Pdとワーク40の位置Pwとのずれ量」は、問題とはならない。つまり、撮像画像Imに対する画像解析から、「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdが「±5μm」であると算出できなかったとしても、問題とはならない。そのため、画素分解能は、例えば「10μm」程度であってもよい。
これに対して、要求精度が「10μm」のような高い値である場合、ワーク40の位置Pwを特定するのに際して、「±5μm」である「検出位置Pdとワーク40の位置Pwとのずれ量」を算出することは必須となる。そして、「検出位置Pdとワーク40の位置Pwとのずれ量」である「±5μm」を、撮像画像Imに対する画像解析から算出するためには、画素分解能は「1μm」程度とすることが必要となる。
したがって、ワーク40の位置Pwを高精度に特定するためには、つまり、高い要求精度を満たして、ワーク40の位置Pwを特定するためには、撮像画像Imに対する画像解析に際して必要となる画素分解能を上げる必要がある。
ワーク40の撮像された領域が撮像画像Imの全体に占める割合が、図12の(A)に示すような小さな撮像画像Imよりも、図12の(B)に示すような大きな撮像画像Imの方が、撮像画像Im中のワーク40に対する画素分解能を上げることができる。そのため、撮像画像Imに撮像されるワーク40の画像を拡大し、言い換えれば、ワーク40を拡大した撮像画像Imを生成し、画素分解能を上げていくと、撮像画像Imに対する画像解析から検出ずれ量Qdを精緻(高精度)に算出することができる。
つまり、撮像画像Imに対する画像解析から「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdを精緻に算出するためには、撮像画像Imについて可能な画素分解能を上げる必要がある。そして、撮像画像Imについて可能な画素分解能を上げるためには、ワーク40の撮像された領域が撮像画像Imの全体に占める割合を大きくするのが望ましく、例えば、ワーク40を拡大して撮像した撮像画像Imが望ましい。
(サーボ目標位置の修正)
図13は、複数のワーク40の各々の位置Pwを順次特定する際に、位置特定装置10が実行する処理を説明する図である。図13に示す例において、例えば、位置特定装置10は、1枚の基板上に載置されたワーク40(A)、40(B)、40(C)、・・・40(Z)の各々の位置Pw(A)、Pw(B)、Pw(C)、・・・Pw(Z)を順次特定するものとする。
ここで、ワーク40(A)、40(B)、40(C)、・・・40(Z)が載置された基板の設計図において、ワーク40(A)、40(B)、40(C)、・・・40(Z)の各々について、図13に例示する以下の2つの情報が予め設定されていたものとする。
第一に、ワーク40(A)、40(B)、40(C)、・・・40(Z)の各々の直径(φ)は、約200μmであることが予め設定されていたものとする。
第二に、ワーク40(A)、40(B)、40(C)、・・・40(Z)の各々の予想検出位置pPdは、互いに500μm離れていることが予め設定されていたものとする。すなわち、ワーク40(A)の予想検出位置pPd(A)とワーク40(B)の予想検出位置pPd(B)とは互いに500μm離れていることが、予め設定されている。ワーク40(B)の予想検出位置pPd(B)とワーク40(C)の予想検出位置pPd(C)とは互いに500μm離れていることが、予め設定されている。ワーク40(C)の予想検出位置pPd(C)とワーク40(D)の予想検出位置pPd(D)とは互いに500μm離れていることが、予め設定されている。ワーク40(Y)の予想検出位置pPd(Y)とワーク40(Z)の予想検出位置pPd(Z)とは互いに500μm離れていることが、予め設定されている。
(設計図に従って検出時刻を設定する方法)
そこで、位置特定装置10は、「ワーク40(A)、40(B)、40(C)、・・・40(Z)が載置された基板の設計図」に従って撮像装置33の位置を制御し、撮像装置33に撮像を実行させる。例えば、位置特定装置10は、撮像装置33の移動中に、500μm移動させる都度、撮像装置33に撮像を実行させる。
例えば、ワーク40(A)の予想検出位置pPd(A)が500μm、ワーク40(B)の予想検出位置pPd(B)が1000μm、ワーク40(C)の予想検出位置pPd(C)が1500μmであると、位置特定装置10は、以下の処理を実行する。すなわち、位置特定装置10は、撮像装置33が、500μm、1000μm、1500μmの各々に到達する予定の時刻である検出時刻Td(A)、Td(B)、Td(C)に、撮像装置33に撮像を実行させる。
(直前の検出対象の位置によって次の検出対象の位置を予測する方法)
ただし、位置特定装置10は、或るワーク40(P)の位置Pw(P)を特定すると、特定した位置Pw(P)を利用して、或るワーク40(P)の次に位置Pwを特定すべき対象であるワーク40(Q)の存在すべき位置を予測してもよい。
すなわち、ワーク40(P)の予想検出位置pPd(P)とワーク40(Q)の予想検出位置pPd(Q)とは互いに500μm離れていることが予め分かっている。そこで、位置特定装置10は、ワーク40(Q)の存在すべき位置を、ワーク40(P)の位置Pw(P)と、予想検出位置pPd(P)と予想検出位置pPd(Q)との変位量(基準変位量Rd(PQ)、すなわち、「500μm」)とから、予測する。
具体的には、位置特定装置10は、ワーク40(P)の位置Pw(P)から基準変位量Rd(PQ)(つまり、500μm)進んだ位置を、ワーク40(Q)の存在すべき位置(つまり、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」)とする。
そして、位置特定装置10は、撮像装置33の位置が「補正後の予想検出位置pPd’(Q)」に一致する時刻を「補正後の検出時刻Td’(Q)」とし、「補正後の検出時刻Td’(Q)」において、撮像装置33に撮像を実行させてもよい。
例えば、ワーク40(P)の予想検出位置pPd(P)が「5500μm」であり、実際のワーク40(P)の位置Pw(P)が「5499μm」であったとする。その場合、位置特定装置10は、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」を以下のように算出する。すなわち、位置特定装置10は、位置Pw(P)(つまり、「5499μm」)から基準変位量Rd(PQ)(つまり、「500μm」)分だけ進んだ位置を、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」とする。具体的には、位置特定装置10は、「5999μm」を、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」とする。
複数のワーク40の各々の予想検出位置pPdは互いに500μm離れているとされ、複数のワーク40の各々の位置Pwが実際には互いに499μm離れていた場合、11番目のワーク40について、予想検出位置pPdと位置Pwとは10μm離れている。その結果、例えば11番目のワーク40の予想検出位置pPdと撮像装置33の位置とが一致する検出時刻Tdに、撮像装置33に撮像を実行させたとしても、撮像画像Imに11番目のワーク40は撮像されていないかもしれない。
「複数のワーク40の各々の予想検出位置pPdの差(例、500μm)」を「基準変位量Rd」と呼び、「複数のワーク40の各々の実際の位置Pwの差(例、499μm)」を「実変位量Ad」と呼ぶとすると、両者について以下のことが指摘できる。すなわち、基準変位量Rdと実変位量Adとの差分dPが十分に小さな値(上の例では「1μm」)であっても、差分dPが「n」回積み重なると、「n+1」番目のワーク40において、予想検出位置pPdと位置Pwとのずれ量は「n×差分dP」となり得る。
そこで、差分dPが積み重なって或るワーク40(例えば、ワーク40(Q))について予想検出位置pPdと位置Pwとのずれ量が大きくなってしまうことを避けるため、位置特定装置10は、以下の処理を実行する。
すなわち、位置特定装置10は、ワーク40(P)の位置Pw(P)と、「予想検出位置pPd(P)と予想検出位置pPd(Q)との変位量である基準変位量Rd(PQ)」とによって、ワーク40(Q)の存在すべき位置を予測する。例えば、位置特定装置10は、位置Pw(P)から「予想検出位置pPd(P)と予想検出位置pPd(Q)との変位量である基準変位量Rd(PQ)」分だけ進んだ位置を、補正後の「ワーク40(Q)の存在すべき位置」とする。つまり、位置特定装置10は、位置Pw(P)から基準変位量Rd(PQ)分だけ進んだ位置を、ワーク40(Q)についての「補正後の予想検出位置pPd’(Q)」とする。
§2.構成例
これまでに概要を説明してきた位置特定装置10について、次に、図1を用いてその詳細を説明していく。
図1は、位置特定装置10の構成例を示す図である。位置特定装置10は、機能ブロックとして、例えば、目標軌道Ttを取得する目標軌道取得部1110と、目標軌道Ttから時刻ごとの目標位置Ptを生成する位置指令生成部1120とを備えている。
また、位置特定装置10は、機能ブロックとして、例えば、検出ずれ量Qdを算出する検出ずれ量算出部1160と、検出位置Pdを算出する検出位置算出部1170とを備えている。さらに、位置特定装置10は、機能ブロックとして、例えば、検出ずれ量Qdと検出位置Pdとからワーク40の位置Pwを特定する位置特定部1180を備えている。
図1に例示する位置特定装置10はまた、機能ブロックとして、例えば、サーボ制御系20の応答遅れ時間Dsを算出する応答遅れ時間算出部1130と、検出指示時刻aTdを決定する検出時刻決定部1150とを備えている。さらに、位置特定装置10は、機能ブロックとして、例えば、「時刻ごとの目標位置Pt」から指令値Cmを生成する指令値生成部1140と、サーボ制御系20等との通信を実行する通信部1200とを備えている。
位置特定装置10は、上述の各機能ブロックに加えて、例えば、以下の構成(機能ブロック)を備えてもよい。すなわち、位置特定装置10は、時刻ごとのサーボ制御系20のフィードバック位置Pfを、時刻ごとのサーボ制御系20の目標位置Pt(特に、サーボ制御系20の応答遅れ時間Dsを考慮した目標位置Pt)に一致させるサーボ制御部等を備えてもよい。記載の簡潔性を担保するため、本実施の形態に直接関係のない位置特定装置10の構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、位置特定装置10は、これらの省略された構成を備えてもよい。
位置特定装置10の備える上述の機能ブロックは、例えば、CPU(central processing unit)等が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部1300)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。以下に先ず、記憶部以外の機能ブロックについて、その詳細を説明する。
(記憶部以外の機能ブロックについて)
目標軌道取得部1110は、外部(例えばユーザ)から目標軌道データ(目標軌道Tt)を受け付け、受け付けた目標軌道Ttを、位置指令生成部1120に出力する。目標軌道Ttは、位置特定装置10が位置Pwを特定すべきワーク40の予想検出位置pPd(つまり、ワーク40が存在すべき位置)を目標位置Ptとして含み、例えば、予想検出位置pPdの頭上を経由地点とする撮像装置33の移動経路を示している。
図3に例示する基板において、点線で示した矢印は、目標軌道Ttの一例である。例えば、位置特定装置10が基板上に載置されたワーク40(A)、40(B)、40(C)、・・・、40(Z)の各々の位置Pw(A)、Pw(B)、Pw(C)、・・・、Pw(Z)を特定しようとする場合、目標軌道Ttは以下の目標位置Ptを含む。すなわち、目標軌道Ttは、ワーク40(A)、40(B)、40(C)、・・・、40(Z)の各々の予想検出位置pPd(A)、pPd(B)、pPd(C)、・・・、pPd(Z)を目標位置Ptとして含む。
位置指令生成部1120は、目標軌道Ttから、「時刻ごとの目標位置Pt」を生成し、生成した「時刻ごとの目標位置Pt」を指令値生成部1140に出力する。
指令値生成部1140は、位置指令生成部1120から「時刻ごとの目標位置Pt」を取得し、応答遅れ時間算出部1130から「サーボ制御系20の応答遅れ時間Ds」を取得する。指令値生成部1140は、「時刻ごとの目標位置Pt」から、「サーボ制御系20の応答遅れ時間Ds」を考慮して、「サーボ制御系20に対する制御周期Ccごとの指令値Cm」を生成する。指令値生成部1140は、生成した「サーボ制御系20に対する制御周期Ccごとの指令値Cm」を、通信部1200へと、特に指令部1210へと、出力する。
例えば、位置指令生成部1120から取得した「時刻ごとの目標位置Pt」において、時刻T(n)における予想検出位置pPd(n)がP(n)であると、指令値生成部1140は、以下の指令値Cmを生成する。すなわち、指令値生成部1140は、「時刻T(n)から『サーボ制御系20の応答遅れ時間Ds』を遡った時刻」における予想検出位置pPd(n)をP(n)とする指令値Cmを生成する。
ここで、位置特定装置10が複数のサーボ制御系20を制御する場合、指令値生成部1140は、複数のサーボ制御系20の制御結果(制御量)を同期させるために、以下の処理を実行する。すなわち、複数のサーボ制御系20の各々について、複数のサーボドライバ21の各々が指令値Cmを受信してから、対応するサーボモータ22が応答するまでの時間(応答遅れ時間Ds)は、複数のサーボ制御系20の各々で異なっている場合がある。そこで、指令値生成部1140は、複数のサーボ制御系20の各々に対する指令値Cmを、複数のサーボ制御系20の各々の応答遅れ時間Dsを考慮して、生成する。
具体的には、指令値生成部1140は、「時刻ごとの目標位置Pt」から、「サーボ制御系20(A)の応答遅れ時間Ds(A)」を考慮して、サーボ制御系20(A)に対する制御周期Ccごとの指令値Cm(A)を生成する。指令値生成部1140は、「時刻ごとの目標位置Pt」から、「サーボ制御系20(B)の応答遅れ時間Ds(B)」を考慮して、サーボ制御系20(B)に対する制御周期Ccごとの指令値Cm(B)を生成する。
複数のサーボ制御系20の各々で異なる応答遅れ時間Dsを考慮して、複数のサーボ制御系20の各々に対する指令値Cmを生成することによって、指令値生成部1140は、複数のサーボ制御系20の各々の制御結果を同期させることができる。
応答遅れ時間算出部1130は、サーボ制御系20(特に、サーボドライバ21)の制御特性を示すサーボパラメータを取得し、取得したサーボパラメータから、「サーボ制御系20の応答遅れ時間Ds」を算出する。応答遅れ時間算出部1130は、算出した「サーボ制御系20の応答遅れ時間Ds」を、指令値生成部1140および検出時刻決定部1150へと出力する。
応答遅れ時間算出部1130は、サーボ制御系20の制御特性を示すサーボパラメータとして、サーボドライバ21の位置ループゲインを用いて、サーボ制御系20の応答遅れ時間Dsを算出してもよい。例えば、応答遅れ時間算出部1130は、サーボ制御系20(A)の応答遅れ時間Ds(A)を、サーボドライバ21(A)のサーボパラメータの1つである位置ループゲインの逆数としてもよい。応答遅れ時間算出部1130は、サーボ制御系20(B)の応答遅れ時間Ds(B)を、サーボドライバ21(B)のサーボパラメータの1つである位置ループゲインの逆数としてもよい。
検出時刻決定部1150は、位置指令生成部1120から「時刻ごとの目標位置Pt」を取得し、応答遅れ時間算出部1130から「サーボ制御系20の応答遅れ時間Ds」を取得する。また、検出時刻決定部1150は、記憶部1300を参照して、予想検出位置テーブル1310から「予想検出位置pPdに係る情報」を取得し、検出器応答遅れ時間テーブル1320から「検出系30の応答遅れ時間Dd」を取得する。検出時刻決定部1150は、「時刻ごとの目標位置Pt」、「サーボ制御系20の応答遅れ時間Ds」、「予想検出位置pPdに係る情報」、および、「検出系30の応答遅れ時間Dd」から、検出時刻Tdおよび検出指示時刻aTdを算出する。そして、検出時刻決定部1150は、算出した検出指示時刻aTdを、通信部1200へと、特に指令部1210へと、出力する。
具体的には、検出時刻決定部1150は、先ず、「時刻ごとの目標位置Pt」、「サーボ制御系20の応答遅れ時間Ds」、および、「予想検出位置pPdに係る情報」から、検出時刻Tdを算出する。すなわち、検出時刻決定部1150は、「サーボ制御系20の応答遅れ時間Ds」を考慮して、目標位置Ptと予想検出位置pPdとが一致する時刻として算出した時刻を、検出時刻Tdとする。
検出時刻決定部1150は、次に、検出時刻Tdと「検出系30の応答遅れ時間Dd」とから、検出指示時刻aTdを算出する。すなわち、検出時刻決定部1150は、検出時刻Tdを「検出系30の応答遅れ時間Dd」によって補正した時刻を、検出指示時刻aTdとする。
例えば、「サーボ制御系20の応答遅れ時間Ds」が存在しない場合に、目標位置Ptと予想検出位置pPdとが一致する時刻が時刻T0であったとすると、検出時刻決定部1150は、次のように、検出時刻Tdおよび検出指示時刻aTdを算出する。すなわち、検出時刻決定部1150は、「目標位置Ptと予想検出位置pPdとが一致する」時刻T0から、「サーボ制御系20の応答遅れ時間Ds」を経た時刻を、検出時刻Tdとする。また、検出時刻決定部1150は、検出時刻Tdから「検出系30の応答遅れ時間Dd」を遡った時刻を、検出指示時刻aTdとする。
検出ずれ量算出部1160は、通信部1200から、特に制御量取得部1220から、撮像画像Imを取得する。検出ずれ量算出部1160は、撮像画像Imに対して画像解析を実行して、撮像画像Imにおける「画像内での位置ずれ量」(つまり、撮像画像Imにおける「ワーク40の位置Pwの、基準位置Rbからのずれ量」)を算出する。検出ずれ量算出部1160は、算出した「画像内での位置ずれ量」から、検出ずれ量Qd(つまり、検出位置Pdとワーク40の位置Pwとのずれ量)を特定する。検出ずれ量算出部1160は、特定した検出ずれ量Qdを、位置特定部1180へと出力する。
具体的には、検出ずれ量算出部1160は、撮像画像Imに対して画像解析を実行して、撮像画像Imにおけるワーク40の位置Pw(例、ワーク40の中心位置)と基準位置Rbとのずれ量である「画像内での位置ずれ量」を算出する。そして、検出ずれ量算出部1160は、算出した「画像内での位置ずれ量」から、「画像内での位置ずれ量」に対応する、「検出時刻Tdにおける、ワーク40の位置Pwと検出位置Pdとのずれ量」である検出ずれ量Qdを特定する。
ただし、検出ずれ量算出部1160は、通信部1200(特に、制御量取得部1220)から、撮像画像Imに代えて、撮像画像Imの画像解析結果を取得してもよく、特に、撮像画像Imにおける「画像内での位置ずれ量」を取得してもよい。検出ずれ量算出部1160は、撮像画像Imにおける「画像内での位置ずれ量」から検出ずれ量Qdを特定できればよく、撮像画像Imから「画像内での位置ずれ量」を算出するのは、検出ずれ量算出部1160であっても、検出系30であってもよい。
すなわち、位置特定装置10(特に、制御量取得部1220)は、検出系30(例えば、撮像制御装置32)が撮像画像Imに対する画像解析によって算出した「画像内での位置ずれ量」を受信してもよい。そして、検出ずれ量算出部1160は、撮像制御装置32が受信した「画像内での位置ずれ量」から、検出ずれ量Qdを算出してもよい。
検出位置算出部1170は、通信部1200から、特に制御量取得部1220から、「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」を取得する。検出位置算出部1170は、「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」から、補間計算によって、「検出時刻Tdにおけるフィードバック位置Pf」を算出する。検出位置算出部1170は、算出した「検出時刻Tdにおけるフィードバック位置Pf」を、位置特定部1180へと出力する。
例えば、nを「0以上の整数」として、検出時刻Tdが「n」回目の制御周期Cc(n)と「n+1」回目の制御周期Cc(n+1)との間の時刻である場合、検出位置算出部1170は、以下の処理を実行する。すなわち、検出位置算出部1170は、先ず、「制御周期Cc(n)におけるフィードバック位置Pf(n)」と、「制御周期Cc(n+1)におけるフィードバック位置Pf(n+1)」とを取得する。そして、検出位置算出部1170は、フィードバック位置Pf(n)とフィードバック位置Pf(n+1)とから、補間計算によって、「検出時刻Tdにおけるフィードバック位置Pf」を算出する。例えば、検出位置算出部1170は、フィードバック位置Pf(n)とフィードバック位置Pf(n+1)とを結ぶ直線(または曲線)と、検出時刻Tdを示す直線との交点から、「検出時刻Tdにおけるフィードバック位置Pf」を算出する。
すなわち、検出位置算出部1170は、制御周期Ccごとに取得した、複数の「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」から、補間計算によって、「検出時刻Tdにおけるフィードバック位置Pf」を算出してもよい。
位置特定部1180は、検出ずれ量算出部1160から検出ずれ量Qd(つまり、検出位置Pdとワーク40の位置Pwとのずれ量)を取得し、検出位置算出部1170から「検出時刻Tdにおけるフィードバック位置Pf」を取得する。前述の通り、「検出時刻Tdにおけるフィードバック位置Pf」は、「検出時刻Tdにおける撮像装置33の位置」であり、つまり、検出位置Pdに対応する。そこで、位置特定部1180は、検出ずれ量Qd(つまり、検出位置Pdとワーク40の位置Pwとのずれ量)と、「検出時刻Tdにおけるフィードバック位置Pf」(つまり、検出位置Pd)とから、ワーク40の位置Pwを特定する。
通信部1200は、制御周期Ccごとに周期的に、スレーブとしてのサーボ制御系20および検出系30の各々と通信を実行し、指令部1210および制御量取得部1220を含んでいる。
指令部1210は、指令値生成部1140から「サーボ制御系20に対する制御周期Ccごとの指令値Cm」を取得し、検出時刻決定部1150から検出指示時刻aTdを取得する。指令部1210は、スレーブであるサーボ制御系20および検出系30へと、指令値Cmおよび検出指示時刻aTdを含む制御信号Cs(制御指示)を、制御周期Ccごとに出力する(送信する)。
制御量取得部1220は、スレーブであるサーボ制御系20および検出系30から、これらのスレーブが出力する制御結果(例、制御量および検出結果)を示すデータを、制御周期Ccごとに取得する(受信する)。すなわち、制御量取得部1220は、サーボ制御系20から「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」を示す情報を取得し、検出系30から撮像画像Imを取得する。制御量取得部1220は、「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」を示す情報を検出位置算出部1170へと送信し、撮像画像Imを検出ずれ量算出部1160へと出力する。
「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」を示す情報は、「制御周期Ccごとの、サーボ制御系20のフィードバック位置Pf」に加えて、フィードバック位置Pfが検出された時刻である実測時刻Tmを示す情報を含んでいてもよい。その場合、検出位置算出部1170は、例えば、「制御周期Cc(n)におけるフィードバック位置Pf(n)」と「フィードバック位置Pf(n)が検出された実測時刻Tm(n)」とを取得する。また、検出位置算出部1170は、「制御周期Cc(n+1)におけるフィードバック位置Pf(n+1)」と「フィードバック位置Pf(n+1)が検出された実測時刻Tm(n+1)」とを取得する。そして、検出位置算出部1170は、実測時刻Tm(n)におけるフィードバック位置Pf(n)と、実測時刻Tm(n+1)におけるフィードバック位置Pf(n+1)とから、「検出時刻Tdにおけるフィードバック位置Pf」を算出する。
また、前述の通り、制御量取得部1220は、検出系30から、撮像画像Imの代わりに、検出系30(例えば、撮像制御装置32)が撮像画像Imに対する画像解析によって算出した「画像内での位置ずれ量」を取得してもよい。その場合、制御量取得部1220は、取得した「画像内での位置ずれ量」を、検出ずれ量算出部1160へと出力する。
(複数のワークの各々の位置を順次特定する場合について)
位置特定装置10が、例えば1枚の基板上に載置された複数のワーク40の各々の位置Pwを順次特定する場合、位置特定装置10の備える各機能ブロックは、以下の処理を実行してもよい。
例えば、位置特定部1180が「或るワーク40(P)の位置Pw(P)」を特定すると、位置特定部1180は、特定した「或るワーク40(P)の位置Pw(P)」を、位置指令生成部1120に通知する。
位置指令生成部1120は、「或るワーク40(P)の予想検出位置pPd(P)」と、「或るワーク40(P)の次に位置Pwを特定すべきワーク40(Q)の、予想検出位置pPd(Q)」とを、予想検出位置テーブル1310を参照して取得する。そして、位置指令生成部1120は、予想検出位置pPd(P)から予想検出位置pPd(Q)への変位量である基準変位量Rd(PQ)を算出する。位置指令生成部1120は、算出した基準変位量Rd(PQ)と、位置特定部1180から通知された「位置Pw(P)」とによって、「或るワーク40(P)の次に位置Pwを特定すべきワーク40(Q)」が存在すべき位置を算出する。すなわち、位置指令生成部1120は、位置Pw(P)から基準変位量Rd(PQ)分だけ進んだ位置を、ワーク40(Q)の存在すべき位置(つまり、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」)とする。
位置指令生成部1120は、ワーク40(Q)の「補正前の予想検出位置pPd(Q)」に代えて、「補正後の予想検出位置pPd’(Q)」を目標位置Ptとして含む目標軌道Tt’から、「時刻ごとの目標位置Pt’」を生成する。そして、位置指令生成部1120は、「時刻ごとの目標位置Pt’」を、指令値生成部1140および検出時刻決定部1150に通知する。
指令値生成部1140は、位置指令生成部1120から通知された「時刻ごとの目標位置Pt’」から、「サーボ制御系20の応答遅れ時間Ds」を考慮して、「サーボ制御系20に対する制御周期Ccごとの指令値Cm’」を生成する。
検出時刻決定部1150は、位置指令生成部1120から通知された「時刻ごとの目標位置Pt’」を用いて、撮像装置33にワーク40(Q)を撮像させるべき時刻である検出時刻Td’(Q)を算出する。検出時刻決定部1150は、「時刻ごとの目標位置Pt’」、「サーボ制御系20の応答遅れ時間Ds」、および、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」から、検出時刻Td’(Q)を算出する。すなわち、検出時刻決定部1150は、「サーボ制御系20の応答遅れ時間Ds」を考慮した「時刻ごとの目標位置Pt’」が、「ワーク40(Q)の、補正後の予想検出位置pPd’(Q)」に一致する時刻を、検出時刻Td’(Q)とする。
例えば、「サーボ制御系20の応答遅れ時間Ds」が存在しない場合に、目標位置Pt’と「補正後の予想検出位置pPd’(Q)」とが一致する時刻が時刻T’0であったとすると、検出時刻決定部1150は、次のように、検出時刻Td’(Q)を算出する。すなわち、検出時刻決定部1150は、「目標位置Pt’と『補正後の予想検出位置pPd’(Q)』とが一致する」時刻T’0から、「サーボ制御系20の応答遅れ時間Ds」を経た時刻を、検出時刻Td’(Q)とする。
そして、検出時刻決定部1150は、検出時刻Td’(Q)から「検出系30の応答遅れ時間Dd」を遡った時刻を、検出指示時刻aTd’(Q)とする。指令部1210は、検出指示時刻aTd’(Q)を予め検出系30へと通知しておくことで、撮像装置33に、検出時刻Td’(Q)に撮像を実行させる。
(記憶部について)
記憶部1300は、位置特定装置10が使用する各種データを格納する記憶装置である。なお、記憶部1300は、位置特定装置10が実行する(1)制御プログラム、(2)OSプログラム、(3)位置特定装置10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)~(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。位置特定装置10は、図示しない一時記憶部を備えていてもよい。一時記憶部は、位置特定装置10が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)等の揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、位置特定装置10の使用目的、利便性、コスト、または、物理的な制約等から適宜決定される。記憶部1300はさらに、予想検出位置テーブル1310、および、検出器応答遅れ時間テーブル1320を格納している。
予想検出位置テーブル1310には、「予想検出位置pPdに係る情報」が、具体的には、「予想検出位置pPdを特定する情報」が格納されている。予想検出位置pPdは、「ワーク40が載置される基板」の設計図などに基づいて、「ワーク40が存在すべき位置」として予め予想検出位置テーブル1310に格納されている。
検出器応答遅れ時間テーブル1320には、「検出系30の応答遅れ時間Dd」が格納されている。
記憶部1300は、予想検出位置テーブル1310、および、検出器応答遅れ時間テーブル1320に加えて、サーボ制御系20(特に、サーボドライバ21)の制御特性を示すサーボパラメータを格納していてもよい。特に、記憶部1300は、複数のサーボ制御系20(特に、サーボドライバ21)の各々の制御特性を示すサーボパラメータを格納していてもよい。
(位置特定装置についての整理)
これまでに図1から図13を用いて説明してきた内容は、以下のように整理することができる。位置特定装置10は、検出対象であるワーク40の位置Pwを特定する位置特定装置である。位置特定装置10は、指令部1210と、制御量取得部1220(取得部)と、検出ずれ量算出部1160と、検出位置算出部1170と、位置特定部1180とを備えている。
指令部1210は、目標軌道Ttから演算した指令値Cmを、撮像装置33(検出装置)およびワーク40の少なくとも一方の位置を制御するサーボ制御系20へと出力する。目標軌道Ttは、「ワーク40が存在すべき位置」として予め設定された予想検出位置pPdを、目標位置Ptとして含む。
制御量取得部1220は、撮像装置33およびワーク40の少なくとも一方の移動中の時刻である検出時刻Tdにおける、撮像装置33の検出結果である撮像画像Imを取得する。検出時刻Tdは、「サーボ制御系20の応答遅れ時間Dsを考慮して算出したサーボ制御系20の目標位置Pt」が、予想検出位置pPdに一致する時刻である。
検出ずれ量算出部1160は、「撮像画像Imにおける、基準位置Rbとワーク40の位置Pwとのずれ量」から、「基準位置Rbに対応する位置である検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdを算出する。
検出位置算出部1170は、検出時刻Tdにおける撮像装置33の位置から、検出位置Pdを算出する。
位置特定部1180は、検出位置算出部1170の算出した検出位置Pdを、検出ずれ量算出部1160の算出した検出ずれ量Qdによって補正することにより、ワーク40の位置Pwを特定する。
前記の構成によれば、位置特定装置10は、撮像画像Imから、検出位置Pdとワーク40の位置Pwとのずれ量である検出ずれ量Qdを算出する。また、位置特定装置10は、検出時刻Tdにおける撮像装置33の位置から、検出位置Pdを算出する。そして、位置特定装置10は、検出ずれ量Qdと検出位置Pdとによって、ワーク40の位置Pwを特定する。
(位置検出の高精度化)
そのため、位置特定装置10は、検出時刻Tdにおいて、ワーク40の位置Pwと検出位置Pdとが一致しない場合にも、両者のずれ量を用いて、ワーク40の位置Pwを高精度に特定することができるとの効果を奏する。
(検出結果の高精度化および高速化)
また、前記の構成によれば、位置特定装置10は、サーボ制御系20の応答遅れ時間Dsを考慮して算出したサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻である検出時刻Tdにおける撮像画像Imから、検出ずれ量Qdを算出する。
ここで、撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲にワーク40が存在しない場合、撮像画像Imから検出ずれ量Qdを算出することはできない。
そこで、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲にワーク40が存在しない」といった事態を回避するため、位置特定装置10は、検出時刻Tdにおける撮像画像Imを取得する。
例えば、サーボ制御系20が撮像装置33のみを移動させ、ワーク40は移動されず、ワーク40は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている場合、位置特定装置10は、以下の処理を実行する。すなわち、位置特定装置10は、撮像装置33の位置を制御するサーボ制御系20の応答遅れ時間Dsを考慮して算出するサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。
ここで、サーボ制御系20の応答遅れ時間Dsを考慮することによって、「サーボ制御系20の、時刻ごとの目標位置Pt」は、「サーボ制御系20の、時刻ごとのフィードバック位置Pf」に一致し、または、両者のずれ量は十分に小さくなると考えられる。そして、撮像装置33の位置を制御するサーボ制御系20のフィードバック位置Pfは、撮像装置33の位置とみなすことができる。そのため、「撮像装置33の、時刻ごとの位置」は、「サーボ制御系20の応答遅れ時間Dsを考慮して算出される、サーボ制御系20の、時刻ごとの目標位置Pt」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「サーボ制御系20によって移動されている撮像装置33の位置」と、予想検出位置pPdとは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、前述の通り、ワーク40は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている。そのため、検出時刻Tdにおいて、「サーボ制御系20によって移動されている撮像装置33の位置」とワーク40の位置Pwとは一致し、または、両者のずれ量は十分に小さくなる。
その結果、位置特定装置10は、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲に、ワーク40が存在しない」といった事態を回避することができる。
また例えば、サーボ制御系20がワーク40のみを移動させ、撮像装置33は移動されず、撮像装置33は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている場合、位置特定装置10は、以下の処理を実行する。すなわち、位置特定装置10は、ワーク40の位置Pwを制御するサーボ制御系20の応答遅れ時間Dsを考慮して算出するサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。
前述の通り、サーボ制御系20の応答遅れ時間Dsを考慮することによって、「サーボ制御系20の、時刻ごとの目標位置Pt」は、「サーボ制御系20の、時刻ごとのフィードバック位置Pf」に一致し、または、両者のずれ量は十分に小さくなると考えられる。そして、ワーク40の位置Pwを制御するサーボ制御系20のフィードバック位置Pfは、ワーク40の位置Pwとみなすことができる。そのため、「ワーク40の、時刻ごとの位置」は、「サーボ制御系20の応答遅れ時間Dsを考慮して算出される、サーボ制御系20の、時刻ごとの目標位置Pt」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「サーボ制御系20によって移動されているワーク40の位置Pw」と、予想検出位置pPdとは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、前述の通り、撮像装置33は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている。そのため、検出時刻Tdにおいて、「サーボ制御系20によって移動されているワーク40の位置Pw」と撮像装置33の位置とは一致し、または、両者のずれ量は十分に小さくなる。
その結果、位置特定装置10は、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲に、ワーク40が存在しない」といった事態を回避することができる。
さらに例えば、第一のサーボ制御系20(1)が撮像装置33を移動させ、第二のサーボ制御系20(2)がワーク40を移動させる場合、位置特定装置10は、以下の時刻を、検出時刻Tdとする。すなわち、位置特定装置10は、「第一のサーボ制御系20(1)および第二のサーボ制御系20(2)の、各々の応答遅れ時間Dsを考慮して算出する、各々の目標位置Pt」が、共に、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。検出時刻Tdにおいて、「第一のサーボ制御系20(1)の応答遅れ時間Ds(1)を考慮して算出する、第一のサーボ制御系20(1)の目標位置Pt(1)」は、予想検出位置pPdに一致する。また、検出時刻Tdにおいて、「第二のサーボ制御系20(2)の応答遅れ時間Ds(2)を考慮して算出する、第二のサーボ制御系20(2)の目標位置Pt(2)」は、予想検出位置pPdに一致する。
前述の通り、サーボ制御系20の応答遅れ時間Dsを考慮することによって、「サーボ制御系20の、時刻ごとの目標位置Pt」は、「サーボ制御系20の、時刻ごとのフィードバック位置Pf」に一致し、または、両者のずれ量は十分に小さくなると考えられる。
そして、撮像装置33の位置を制御する第一のサーボ制御系20(1)のフィードバック位置Pf(1)は、撮像装置33の位置とみなすことができる。また、ワーク40の位置Pwを制御する第二のサーボ制御系20(2)のフィードバック位置Pf(2)は、ワーク40の位置Pwとみなすことができる。
そのため、「移動中の撮像装置33の、時刻ごとの位置」は、「第一のサーボ制御系20(1)の、応答遅れ時間Ds(1)を考慮して算出される、時刻ごとの目標位置Pt(1)」に一致し、または、両者のずれ量は十分に小さくなるはずである。また、「移動中のワーク40の、時刻ごとの位置」は、「第二のサーボ制御系20(2)の、応答遅れ時間Ds(2)を考慮して算出される、時刻ごとの目標位置Pt(2)」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「移動中の撮像装置33の位置」と、「移動中のワーク40の位置Pw」と、予想検出位置pPdとは一致し、または、三者のずれ量は十分に小さくなるはずである。
その結果、位置特定装置10は、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲に、ワーク40が存在しない」といった事態を回避することができる。
位置特定装置10は、検出装置およびワーク40の少なくとも一方の移動中の時刻であって、「ワーク40の位置Pwと、撮像装置33の位置とが一致し、または、両者のずれ量が十分に小さくなる」時刻である検出時刻Tdにおける撮像画像Imを取得する。
ここで、検出時刻Tdにおける撮像装置33の位置は、検出位置Pdに対応するから、検出時刻Tdにおける撮像画像Imにおいて、基準位置Rbとワーク40の位置Pwとのずれ量は十分に小さくなると考えられる。そして、「撮像画像Imにおいて、基準位置Rbとワーク40の位置Pwとのずれ量は十分に小さい」ことが予め分かっていれば、「撮像画像Imにおいて、両者のずれ量は予測不能または大きいと予測される」場合に比べて、撮像画像Imへの解析を高精度化できる。
そのため、位置特定装置10は、高精度な解析を実行可能な「検出時刻Tdにおける撮像画像Im」を取得し、つまり、「検出時刻Tdにおける撮像画像Im」から、検出ずれ量Qdを高精度に算出することができる。
また、位置特定装置10は、検出ずれ量Qdを、「撮像装置33が、ワーク40および撮像装置33の少なくとも一方の移動中に、検出した撮像画像Im」から算出する。そのため、位置特定装置10は、「ワーク40および撮像装置33の移動を停止させてから撮像装置33に検出を実行させ、撮像画像Imを生成させる」場合に比べて、撮像画像Imを高速に取得でき、その結果、検出ずれ量Qdの算出を高速化できる。
(検出対象の位置特定の高精度化および高速化)
これまでに説明してきた通り、位置特定装置10は、高精度な解析を実行可能な撮像画像Imを高速に取得し、撮像画像Imから検出ずれ量Qdを高速かつ高精度に算出することができる。そして、位置特定装置10は、算出した検出ずれ量Qdと、検出位置Pdとによって、ワーク40の位置Pwを特定する。
したがって、位置特定装置10は、ワーク40の位置Pwを、高速かつ高精度に特定することができるとの効果を奏する。
位置特定装置10は、サーボ制御系20と制御周期Ccごとに通信を実行する。サーボ制御系20によって撮像装置33の位置が制御される場合、位置特定装置10は、検出時刻Tdにおける撮像装置33の位置を、撮像装置33の位置を制御するサーボ制御系20の、制御周期Ccごとのフィードバック位置Pfから、補間計算によって算出する。
前記の構成によれば、位置特定装置10は、「検出時刻Tdにおける、撮像装置33の位置を制御するサーボ制御系20のフィードバック位置Pf」を、「サーボ制御系20の、制御周期Ccごとのフィードバック位置Pf」から、補間計算によって算出する。
nを「0以上の整数」として、例えば、検出時刻Tdが「n」回目の制御周期Ccと「n+1」回目の制御周期Ccとの間の時刻であると、位置特定装置10は、以下のように、「検出時刻Tdにおける、サーボ制御系20のフィードバック位置Pf」を算出する。
すなわち、位置特定装置10は、サーボ制御系20の、「『n』回目の制御周期Ccにおけるフィードバック位置Pf」と、「『n+1』回目の制御周期Ccにおけるフィードバック位置Pf」とから、「検出時刻Tdにおけるフィードバック位置Pf」を算出する。
したがって、位置特定装置10は、検出時刻Tdが、サーボ制御系20との通信周期である制御周期Ccの整数倍でない場合でも、高精度に、「検出時刻Tdにおける、サーボ制御系20のフィードバック位置Pf」を算出することができるとの効果を奏する。
位置特定装置10は、互いに同期した複数のサーボ制御系20の各々に、複数のサーボ制御系20の各々の応答遅れ時間Dsを考慮した指令値Cmを出力する。例えば、位置特定装置10は、サーボ制御系20(A)に、サーボ制御系20(A)の応答遅れ時間Ds(A)を考慮した指令値Cm(A)を出力する。また、位置特定装置10は、サーボ制御系20(B)に、サーボ制御系20(B)の応答遅れ時間Ds(B)を考慮した指令値Cm(B)を出力する。
前記の構成によれば、位置特定装置10は、互いに同期した複数のサーボ制御系20の各々に、複数のサーボ制御系20の各々の応答遅れ時間Dsを考慮した指令値Cmを出力する。
したがって、位置特定装置10は、複数のサーボ制御系20を、互いに同期させた状態で制御して、ワーク40の高精度な位置制御を実現できるとの効果を奏する。
制御システム1において、撮像制御装置32(検出制御装置)は、撮像装置33による検出動作(具体的には、撮像動作)を制御し、撮像制御装置32は、通信装置31(通信制御装置)との間で通信を実行する。
位置特定装置10は、通信装置31へと制御周期Ccごとに送信する制御信号Csにおいて、検出系30の応答遅れ時間Dd(撮像装置33の応答遅れ時間Dd)を考慮して検出時刻Tdを補正した検出指示時刻aTdを指定する。位置特定装置10は、制御信号Csにおいて検出指示時刻aTdを指定することによって、通信装置31に、撮像制御装置32への検出指示の出力を、検出指示時刻aTdにおいて実行させる。撮像制御装置32は、検出指示を通信装置31から受信すると、撮像装置33へと、検出トリガを送信し、撮像装置33に、検出動作(具体的には、撮像動作)を実行させる。
前記の構成によれば、位置特定装置10は、検出時刻Tdを「撮像装置33の応答遅れ時間Dd」によって補正した時刻である検出指示時刻aTdを算出する。そして、位置特定装置10は、通信装置31に対して制御周期Ccごとに出力する制御信号Csにおいて、検出指示時刻aTdを指定する。
制御信号Csを受信した通信装置31は、検出指示時刻aTdにおいて、前記検出指示を撮像制御装置32へと送信し、前記検出指示を受信した撮像制御装置32は、撮像装置33に、ワーク40を検出させる。そのため、撮像装置33が、ワーク40を検出する時刻は、撮像装置33の応答遅れ時間Ddの分だけ検出指示時刻aTdから遅れた時刻となり、つまり、検出時刻Tdとなる。
ここで、撮像装置33の応答遅れ時間Ddを考慮せずに、撮像装置33に検出を実行させようとした場合、撮像装置33が実際に検出を実行する時刻は、撮像装置33に検出の実行を指示した時刻から、撮像装置33の応答遅れ時間Ddの分だけ遅れることになる。
そこで、位置特定装置10は、検出時刻Tdを「撮像装置33の応答遅れ時間Dd」によって補正した時刻である検出指示時刻aTdを算出する。そして、位置特定装置10は、撮像装置33に検出の実行を指示する時刻として検出指示時刻aTdを指定する。
したがって、位置特定装置10は、制御信号Csにおいて、「撮像装置33の応答遅れ時間Dd」を考慮した検出指示時刻aTdを指定することによって、撮像装置33に、検出時刻Tdにおいて検出を実行させることができるとの効果を奏する。
また、位置特定装置10は、制御周期Ccごとに送信する制御信号Csにおいて検出指示時刻aTdを指定し、例えば、位置特定装置10は、検出指示時刻aTdを、検出指示時刻aTdよりも前の制御周期Ccにおける制御信号Csにおいて指定する。
したがって、位置特定装置10は、制御信号Csにおいて検出指示時刻aTdを指定することで、検出指示時刻aTdが、制御周期Ccの整数倍でない場合にも、検出時刻Tdにおいてワーク40を検出できるとの効果を奏する。
位置特定装置10について、「ワーク40の位置Pwと検出位置Pdとのずれ量」を検出可能な検出装置として、撮像装置33を利用する。検出ずれ量算出部1160は、撮像装置33が撮像した撮像画像Imにおける基準位置Rbと、撮像画像Imにおけるワーク40の位置Pwとのずれ量から、検出ずれ量Qdを算出する。
前記の構成によれば、位置特定装置10は、撮像画像Imにおける基準位置Rbと撮像画像Imにおけるワーク40の位置Pwとのずれ量によって、検出ずれ量Qdを算出する。そして、位置特定装置10は、検出位置Pdを検出ずれ量Qdによって補正することにより、ワーク40の位置Pwを特定する。
ここで、撮像画像中の撮像対象(検出対象)の位置等を高速かつ高精度に特定する画像解析技術が知られている。
したがって、位置特定装置10は、撮像画像Imから高速かつ高精度に算出した検出ずれ量Qdと、検出位置Pdとによって、ワーク40の高速かつ高精度な位置特定を実現できるとの効果を奏する。
また、前述の通り、検出時刻Tdにおいて、ワーク40の位置Pwと、撮像装置33の位置とは一致し、または、両者のずれ量は十分に小さくなる。したがって、例えば、撮像画像Imの中心位置を基準位置Rbとする場合、撮像画像Imにおいて、ワーク40は略中央に配置されることになる。
略中央にワーク40が配置された撮像画像Imを用いることにより、略中央にワーク40が配置されていない撮像画像を用いる場合に比べて、位置特定装置10は、撮像画像Imにおいてワーク40の位置Pwを特定するための検査領域を小さくすることができる。そのため、位置特定装置10は、撮像画像Imからワーク40を検出するのに必要な画像解析処理の高速化を実現することができる。
また、撮像画像Imにおいてワーク40は略中央に配置されるため、位置特定装置10は、ワーク40が略中央に配置されていない撮像画像に比べて、ワーク40の撮像された領域が撮像画像Imの全体に占める割合を大きくすることができる。つまり、位置特定装置10は、ワーク40を拡大して撮像した撮像画像Imを生成させたることができる。そのため、位置特定装置10は、ワーク40が拡大して撮像された撮像画像Imに対して、高精度な画像解析を行うことができる。
したがって、位置特定装置10は、撮像画像Imに対する高速かつ高精度な画像解析を実現し、この画像解析の結果を利用することによって、ワーク40の高速かつ高精度な位置制御を実現できるとの効果を奏する。
位置特定装置10は、複数のワーク40の各々の位置Pwを順次特定し、例えば、複数のワーク40の一つである第1のワーク40(1)の位置Pw(1)を特定した後、第2のワーク40(2)の位置Pw(2)を特定する際に以下の処理を実行する。すなわち、位置特定装置10は、(A)第1のワーク40(1)が存在すべき位置である第1の予想検出位置pPd(1)と、(B)第2のワーク40(2)が存在すべき位置である第2の予想検出位置pPd(2)との差から、基準変位量Rd(12)を算出する。そして、位置特定装置10は、位置特定部1180によって特定された第1のワーク40(1)の位置Pw(1)に、基準変位量Rd(12)を加えた位置を、補正後の第2の予想検出位置pPd’(2)とする。
位置特定装置10は、第2のワーク40(2)および撮像装置33の少なくとも一方の位置が、補正後の第2の予想検出位置pPd’(2)に一致すると予想した時刻を、第2のワーク40(2)を検出させる検出時刻Td’(2)とする。そして、位置特定装置10は、検出時刻Td’(2)において、撮像装置33に、第2のワーク40(2)に係る撮像画像Imを生成させる。
前記の構成によれば、位置特定装置10は、第1の予想検出位置pPd(1)と第2の予想検出位置pPd(2)との差から、基準変位量Rd(12)を算出する。
位置特定装置10は、算出した基準変位量Rd(12)を、第1のワーク40(1)の位置Pw(1)に加えた位置を、補正後の第2の予想検出位置pPd’(2)とする。そして、位置特定装置10は、第2のワーク40(2)および撮像装置33の少なくとも一方の位置が、補正後の第2の予想検出位置pPd’(2)に一致すると予想した時刻において、撮像装置33に前記第二の検出対象についての撮像画像Imを生成させる。
したがって、位置特定装置10は、複数のワーク40の各々の位置を特定するのに際して、直前に特定したワーク40の位置Pwを用いることによって、次に位置を特定しようとするワーク40が存在する位置を、高精度に予測できるとの効果を奏する。
例えば、第1のワーク40(1)の実際の位置Pw(1)と第2のワーク40(2)の実際の位置Pw(2)との差を、「実変位量Ad(12)」とする。そして、基準変位量Rd(12)に対し、実変位量Ad(12)が、差分dPだけ小さいとする。また、予想検出位置pPd(2)と「第2のワーク40(2)の次に位置を特定すべき第3のワーク40(3)の予想検出位置pPd(3)」との差を「基準変位量Rd(23)」とする。さらに、第2のワーク40(2)の実際の位置Pw(2)と第3のワーク40(3)の実際の位置Pw(3)との差を、「実変位量Ad(23)」とする。そして、基準変位量Rd(23)に対し、実変位量Ad(23)が、差分dPだけ小さいとする。
すると、第3のワーク40(3)の実際の位置Pw(3)は、第3のワーク40(3)の予想検出位置pPd(3)よりも、差分dP2つ分、つまり、2dP小さいことになる。
これに対して、第2のワーク40(2)の実際の位置Pw(2)に、基準変位量Rd(23)を加えた位置を、補正後の第三の予想検出位置pPd’(3)とすると、補正後の第三の予想検出位置pPd’(3)について以下のことが言える。すなわち、第3のワーク40(3)の実際の位置Pw(3)と、補正後の第三の予想検出位置pPd’(3)とのずれ量は、差分dPとなる。
つまり、予想検出位置pPd(3)を用いるのに比べて、第2のワーク40(2)の実際の位置Pw(2)によって補正した補正後の第三の予想検出位置pPd’(3)を用いることで、第3のワーク40(3)の位置Pw(3)の予測精度を向上できる。
§3.動作例
(処理の全体概要について)
図14は、位置特定装置10が実行する処理の全体概要を説明するフロー図である。図14に示すように、位置特定装置10において、検出時刻決定部1150は、検出指示時刻決定処理を実行する(S110)。そして、通信部1200(特に、指令部1210)は、検出指示時刻決定処理によって決定された検出指示時刻aTdと、指令値生成部1140によって生成された指令値Cmとを送信する(S120)。
通信部1200(特に、制御量取得部1220)は、検出系30の検出結果(例えば、撮像画像Im)、および、サーボ制御系20の制御結果(例えば、制御周期Ccごとのフィードバック位置Pf)を受信する(S130)。そして、制御量取得部1220は、受信した検出系30の検出結果を検出ずれ量算出部1160に通知し、また、受信したサーボ制御系20の制御結果を検出位置算出部1170に通知する。
検出ずれ量算出部1160は、検出系30の検出結果を用いて、検出ずれ量算出処理を実行する(S140)。また、検出位置算出部1170は、サーボ制御系20の制御結果を用いて、検出位置算出処理を実行する(S150)。
位置特定部1180は、S150で算出した検出位置Pdを、S140で算出した検出ずれ量Qdによって補正して、ワーク40の位置Pwを特定する(S160)。
(検出指示時刻決定処理について)
図15は、図14の検出指示時刻決定処理(S110)の一例を説明するフロー図である。図15に示すように、検出時刻決定部1150は、先ず、目標軌道Ttから、サーボ制御系20の応答遅れ時間Dsを考慮して、時刻ごとの目標位置Pt(t)を算出する(S210)。検出時刻決定部1150は、「サーボ制御系20の応答遅れ時間Dsを考慮した目標位置Pt(t)」と予想検出位置pPdとが一致する時刻を、検出時刻Tdとして特定する(S220)。検出時刻決定部1150は、検出時刻Tdに対して、検出系30の応答遅れ時間Ddを考慮して検出指示時刻aTdを決定する(S230)。
(検出ずれ量算出処理および検出位置算出処理について)
図16は、図14の検出ずれ量算出処理(S140)および検出位置算出処理(S150)の各々の一例を説明するフロー図である。具体的には、図16の(A)は、検出ずれ量算出処理の一例を説明するフロー図であり、図16の(B)は、検出位置算出処理の一例を説明するフロー図である。
図16の(A)に示すように、検出ずれ量算出部1160は、先ず、検出時刻Tdにおける撮像画像Imに対して画像解析を実行し、撮像画像Im中の、ワーク40の位置Pw(例、ワーク40の中心位置)を特定する(S310)。
検出ずれ量算出部1160は、特定した「撮像画像Im中のワーク40の位置Pw」と、「撮像画像Im中の、検出位置Pdに対応する基準位置Rb(例、撮像画像Imの中心点)」との間のずれ量(つまり、「画像内での位置ずれ量」)を算出する(S320)。
検出ずれ量算出部1160は、S320で算出されたずれ量から、「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdを算出する(S330)。
図16の(B)に示すように、検出位置算出部1170は、先ず、制御周期Ccごとの「サーボ制御系20のフィードバック位置Pf」から、「検出時刻Tdにおける、サーボ制御系20のフィードバック位置Pf」を算出する(S410)。検出位置算出部1170は、算出した「検出時刻Tdにおける、サーボ制御系20のフィードバック位置Pf」を、検出位置Pdとする(S420)。
これまで図14から図16を用いて説明してきた位置特定装置10の実行する処理は、以下のように整理することができる。すなわち、位置特定装置10の実行する制御方法は、検出対象であるワーク40の位置Pwを特定する位置特定装置の制御方法である。前記制御方法は、指令ステップ(S120)と、取得ステップ(S130)と、検出ずれ量算出ステップ(S140)と、検出位置算出ステップ(S150)と、位置特定ステップ(S160)とを含む。
指令ステップは、目標軌道Ttから演算した指令値Cmを、撮像装置33(検出装置)およびワーク40の少なくとも一方の位置を制御するサーボ制御系20へと出力する。目標軌道Ttは、「ワーク40が存在すべき位置」として予め設定された予想検出位置pPdを、目標位置Ptとして含む。
制御量取得ステップは、撮像装置33およびワーク40の少なくとも一方の移動中の時刻である検出時刻Tdにおける、撮像装置33の検出結果である撮像画像Imを取得する。検出時刻Tdは、「サーボ制御系20の応答遅れ時間Dsを考慮して算出したサーボ制御系20の目標位置Pt」が、予想検出位置pPdに一致する時刻である。
図16の(A)に例示するように、検出ずれ量算出ステップは、「撮像画像Imにおける、基準位置Rbとワーク40の位置Pwとのずれ量」から、「検出位置Pdとワーク40の位置Pwとのずれ量」である検出ずれ量Qdを算出する。
図16の(B)に例示するように、検出位置算出ステップは、検出時刻Tdにおける撮像装置33の位置から、検出位置Pdを算出する。
位置特定ステップは、検出位置算出部1170の算出した検出位置Pdを、検出ずれ量算出部1160の算出した検出ずれ量Qdによって補正することにより、ワーク40の位置Pwを特定する。
前記の構成によれば、前記制御方法は、撮像画像Imから、検出位置Pdとワーク40の位置Pwとのずれ量である検出ずれ量Qdを算出する。また、前記制御方法は、検出時刻Tdにおける撮像装置33の位置から、検出位置Pdを算出する。そして、前記制御方法は、検出ずれ量Qdと検出位置Pdとによって、ワーク40の位置Pwを特定する。
(位置検出の高精度化)
そのため、前記制御方法は、検出時刻Tdにおいて、ワーク40の位置Pwと検出位置Pdとが一致しない場合にも、両者のずれ量を用いて、ワーク40の位置Pwを高精度に特定することができるとの効果を奏する。
(検出結果の高精度化および高速化)
また、前記の構成によれば、前記制御方法は、サーボ制御系20の応答遅れ時間Dsを考慮して算出したサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻である検出時刻Tdにおける撮像画像Imから、検出ずれ量Qdを算出する。
ここで、撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲にワーク40が存在しない場合、撮像画像Imから検出ずれ量Qdを算出することはできない。
そこで、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲にワーク40が存在しない」といった事態を回避するため、前記制御方法は、検出時刻Tdにおける撮像画像Imを取得する。
例えば、サーボ制御系20が撮像装置33のみを移動させ、ワーク40は移動されず、ワーク40は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている場合、前記制御方法は、以下の処理を実行する。すなわち、前記制御方法は、撮像装置33の位置を制御するサーボ制御系20の応答遅れ時間Dsを考慮して算出するサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。
ここで、サーボ制御系20の応答遅れ時間Dsを考慮することによって、「サーボ制御系20の、時刻ごとの目標位置Pt」は、「サーボ制御系20の、時刻ごとのフィードバック位置Pf」に一致し、または、両者のずれ量は十分に小さくなると考えられる。そして、撮像装置33の位置を制御するサーボ制御系20のフィードバック位置Pfは、撮像装置33の位置とみなすことができる。そのため、「撮像装置33の、時刻ごとの位置」は、「サーボ制御系20の応答遅れ時間Dsを考慮して算出される、サーボ制御系20の、時刻ごとの目標位置Pt」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「サーボ制御系20によって移動されている撮像装置33の位置」と、予想検出位置pPdとは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、前述の通り、ワーク40は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている。そのため、検出時刻Tdにおいて、「サーボ制御系20によって移動されている撮像装置33の位置」とワーク40の位置Pwとは一致し、または、両者のずれ量は十分に小さくなる。
その結果、前記制御方法は、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲に、ワーク40が存在しない」といった事態を回避することができる。
また例えば、サーボ制御系20がワーク40のみを移動させ、撮像装置33は移動されず、撮像装置33は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている場合、前記制御方法は、以下の処理を実行する。すなわち、前記制御方法は、ワーク40の位置Pwを制御するサーボ制御系20の応答遅れ時間Dsを考慮して算出するサーボ制御系20の目標位置Ptが、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。
前述の通り、サーボ制御系20の応答遅れ時間Dsを考慮することによって、「サーボ制御系20の、時刻ごとの目標位置Pt」は、「サーボ制御系20の、時刻ごとのフィードバック位置Pf」に一致し、または、両者のずれ量は十分に小さくなると考えられる。そして、ワーク40の位置Pwを制御するサーボ制御系20のフィードバック位置Pfは、ワーク40の位置Pwとみなすことができる。そのため、「ワーク40の、時刻ごとの位置」は、「サーボ制御系20の応答遅れ時間Dsを考慮して算出される、サーボ制御系20の、時刻ごとの目標位置Pt」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「サーボ制御系20によって移動されているワーク40の位置Pw」と、予想検出位置pPdとは一致し、または、両者のずれ量は十分に小さくなるはずである。そして、前述の通り、撮像装置33は予め、予想検出位置pPdに載置され、または、予想検出位置pPdに十分近い位置に載置されている。そのため、検出時刻Tdにおいて、「サーボ制御系20によって移動されているワーク40の位置Pw」と撮像装置33の位置とは一致し、または、両者のずれ量は十分に小さくなる。
その結果、前記制御方法は、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲に、ワーク40が存在しない」といった事態を回避することができる。
さらに例えば、第一のサーボ制御系20(1)が撮像装置33を移動させ、第二のサーボ制御系20(2)がワーク40を移動させる場合、前記制御方法は、以下の時刻を、検出時刻Tdとする。すなわち、前記制御方法は、「第一のサーボ制御系20(1)および第二のサーボ制御系20(2)の、各々の応答遅れ時間Dsを考慮して算出する、各々の目標位置Pt」が、共に、予想検出位置pPdに一致する時刻を、検出時刻Tdとする。検出時刻Tdにおいて、「第一のサーボ制御系20(1)の応答遅れ時間Ds(1)を考慮して算出する、第一のサーボ制御系20(1)の目標位置Pt(1)」は、予想検出位置pPdに一致する。また、検出時刻Tdにおいて、「第二のサーボ制御系20(2)の応答遅れ時間Ds(2)を考慮して算出する、第二のサーボ制御系20(2)の目標位置Pt(2)」は、予想検出位置pPdに一致する。
前述の通り、サーボ制御系20の応答遅れ時間Dsを考慮することによって、「サーボ制御系20の、時刻ごとの目標位置Pt」は、「サーボ制御系20の、時刻ごとのフィードバック位置Pf」に一致し、または、両者のずれ量は十分に小さくなると考えられる。
そして、撮像装置33の位置を制御する第一のサーボ制御系20(1)のフィードバック位置Pf(1)は、撮像装置33の位置とみなすことができる。また、ワーク40の位置Pwを制御する第二のサーボ制御系20(2)のフィードバック位置Pf(2)は、ワーク40の位置Pwとみなすことができる。
そのため、「移動中の撮像装置33の、時刻ごとの位置」は、「第一のサーボ制御系20(1)の、応答遅れ時間Ds(1)を考慮して算出される、時刻ごとの目標位置Pt(1)」に一致し、または、両者のずれ量は十分に小さくなるはずである。また、「移動中のワーク40の、時刻ごとの位置」は、「第二のサーボ制御系20(2)の、応答遅れ時間Ds(2)を考慮して算出される、時刻ごとの目標位置Pt(2)」に一致し、または、両者のずれ量は十分に小さくなるはずである。
以上に説明した通り、検出時刻Tdにおいて、「移動中の撮像装置33の位置」と、「移動中のワーク40の位置Pw」と、予想検出位置pPdとは一致し、または、三者のずれ量は十分に小さくなるはずである。
その結果、前記制御方法は、「撮像装置33が検出を実行するタイミングにおいて、撮像装置33がワーク40を検出可能な範囲に、ワーク40が存在しない」といった事態を回避することができる。
前記制御方法は、検出装置およびワーク40の少なくとも一方の移動中の時刻であって、「ワーク40の位置Pwと、撮像装置33の位置とが一致し、または、両者のずれ量が十分に小さくなる」時刻である検出時刻Tdにおける撮像画像Imを取得する。
ここで、検出時刻Tdにおける撮像装置33の位置は、検出位置Pdに対応するから、検出時刻Tdにおける撮像画像Imにおいて、基準位置Rbとワーク40の位置Pwとのずれ量は十分に小さくなると考えられる。そして、「撮像画像Imにおいて、基準位置Rbとワーク40の位置Pwとのずれ量は十分に小さい」ことが予め分かっていれば、「撮像画像Imにおいて、両者のずれ量は予測不能または大きいと予測される」場合に比べて、撮像画像Imへの解析を高精度化できる。
そのため、前記制御方法は、高精度な解析を実行可能な「検出時刻Tdにおける撮像画像Im」を取得し、つまり、「検出時刻Tdにおける撮像画像Im」から、検出ずれ量Qdを高精度に算出することができる。
また、前記制御方法は、検出ずれ量Qdを、「撮像装置33が、ワーク40および撮像装置33の少なくとも一方の移動中に、検出した撮像画像Im」から算出する。そのため、前記制御方法は、「ワーク40および撮像装置33の移動を停止させてから撮像装置33に検出を実行させ、撮像画像Imを生成させる」場合に比べて、撮像画像Imを高速に取得でき、その結果、検出ずれ量Qdの算出を高速化できる。
(検出対象の位置特定の高精度化および高速化)
これまでに説明してきた通り、前記制御方法は、高精度な解析を実行可能な撮像画像Imを高速に取得し、撮像画像Imから検出ずれ量Qdを高速かつ高精度に算出することができる。そして、前記制御方法は、算出した検出ずれ量Qdと、検出位置Pdとによって、ワーク40の位置Pwを特定する。
したがって、前記制御方法は、ワーク40の位置Pwを、高速かつ高精度に特定することができるとの効果を奏する。
§4.変形例
これまで、位置特定装置10が複数のサーボ制御系20を制御する例を説明してきたが、位置特定装置10が制御するサーボ制御系20は1つであってもよい。また、これまで、「ワーク40の位置Pwと検出位置Pdとのずれ量」を検出する検出装置が、撮像装置33である例を説明してきたが、検出装置が撮像装置33であることは必須ではない。位置特定装置10は、「ワーク40の位置Pwと検出位置Pdとのずれ量」を検出することのできる検出装置から、「ワーク40の位置Pwと検出位置Pdとのずれ量」を算出可能な検出結果を取得できればよい。さらに、これまで、主として位置特定装置10が、撮像装置33を移動させて、固定されたワーク40の位置Pwを特定する例を説明してきたが、位置特定装置10が移動させる対象は、撮像装置33でなくともよい。例えば、位置特定装置10は、撮像装置33の位置を固定して、ワーク40を移動させてワーク40の位置Pwを特定してもよいし、撮像装置33およびワーク40の両方を移動させて、ワーク40の位置Pwを特定してもよい。
〔ソフトウェアによる実現例〕
位置特定装置10の制御ブロック(特に、目標軌道取得部1110、位置指令生成部1120、応答遅れ時間算出部1130、指令値生成部1140、検出時刻決定部1150、検出ずれ量算出部1160、検出位置算出部1170、位置特定部1180、および、通信部1200)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、位置特定装置10は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。