(57)【要約】【課題】対象物を高精度に位置決めできる制御システムを提供する。【解決手段】画像処理装置は、撮像動作によって得られる画像に基づいて、対象物の特徴部分の位置を特定する。移動制御部は、画像処理装置によって特定された位置に基づいて、対象物の位置が目標位置に近づくように移動機構を制御する。推定部は、第１の撮像動作によって得られた画像に基づいて特定された特徴部分の位置と、移動機構からの情報とに基づいて、次の第２の撮像動作における露光期間中の特徴部分の移動軌跡を推定する。画像処理装置は、移動軌跡に基づいて、第２の撮像動作によって得られた画像のブレ補正を行なう。【選択図】図１
2019215635.tif 000002
【特許請求の範囲】
【請求項１】
対象物を移動させる移動機構を制御して、前記対象物の位置決めを行なう制御システムであって、
前記対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分の位置を特定するための画像処理装置と、
前記画像処理装置によって特定された前記特徴部分の位置に基づいて、前記対象物の位置が目標位置に近づくように前記移動機構を制御するための移動制御部と、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置によって特定された前記特徴部分の位置と、前記移動機構からの情報および前記移動制御部によって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分の移動軌跡を推定するための推定部とを備え、
前記画像処理装置は、前記移動軌跡に基づいて、前記第２の撮像動作によって得られた画像のブレ補正を行なう、制御システム。
【請求項２】
前記移動機構は、前記対象物を移動させるために駆動されるモータを含み、
前記参照情報は、前記第１の撮像動作からの前記モータの駆動量を示す情報を含む、請求項１に記載の制御システム。
【請求項３】
前記移動制御部は、制御周期ごとに前記移動機構に対する移動指令を生成し、
前記参照情報は、前記第１の撮像動作以降に前記移動制御部によって生成された移動指令を示す情報を含む、請求項１に記載の制御システム。
【請求項４】
前記移動制御部は、前記目標位置に対する前記画像処理装置によって特定された位置の偏差に基づいて前記移動機構の目標軌道を決定し、決定した前記目標軌道に従って移動するように前記移動機構を制御し、
前記参照情報は、前記目標軌道を示す情報を含む、請求項１に記載の制御システム。
【請求項５】
前記移動制御部は、
制御周期ごとに前記移動機構に対する速度指令を生成し、
前記露光期間と重なる前記制御周期において、一定の速度指令を生成する、請求項１から４のいずれか１項に記載の制御システム。
【請求項６】
前記移動機構は、並進移動する第１機構と、回転移動する第２機構とを含み、
前記移動制御部は、前記露光期間において、前記第２機構を停止させる、請求項１から５のいずれか１項に記載の制御システム。
【請求項７】
対象物を移動させる移動機構と、前記対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分の位置を特定するための画像処理装置とを制御して、前記対象物の位置決めを行なう制御装置であって、
前記画像処理装置によって特定された前記特徴部分の位置に基づいて、前記対象物の位置が目標位置に近づくように前記移動機構を制御するための移動制御部と、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置によって特定された前記特徴部分の位置と、前記移動機構からの情報および前記移動制御部によって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分の移動軌跡を推定するための推定部と、
前記移動軌跡に基づいて前記第２の撮像動作によって得られた画像のブレ補正を行なう前記画像処理装置に指示するための指示部とを備える、制御装置。
【請求項８】
対象物を移動させる移動機構を制御する制御装置からの指示に応じて、前記対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分の位置を特定するための画像処理装置であって、
前記制御装置は、前記画像処理装置によって特定された前記特徴部分の位置に基づいて、前記対象物の位置が目標位置に近づくように前記移動機構を制御し、
前記画像処理装置は、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置によって特定された前記特徴部分の位置と、前記移動機構からの情報および前記制御装置によって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分の移動軌跡を推定するための推定部と、
前記移動軌跡に基づいて、前記第２の撮像動作によって得られた画像のブレ補正を行なうための補正部とを備える、画像処理装置。
【請求項９】
対象物を移動させる移動機構を制御して、前記対象物の位置決めを行なう制御システムをサポートするためのプログラムであって、
前記制御システムは、前記対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分の位置を特定するための画像処理装置を備え、
コンピュータに、
前記画像処理装置によって特定された前記特徴部分の位置に基づいて、前記対象物の位置が目標位置に近づくように前記移動機構を制御するステップと、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置によって特定された前記特徴部分の位置と、前記移動機構からの情報および前記制御するステップによって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分の移動軌跡を推定するステップと、
前記移動軌跡に基づいて前記第２の撮像動作によって得られた画像のブレ補正を行なう前記画像処理装置に指示するステップとを実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、対象物を位置決めするための制御システム、制御装置、画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
ＦＡ（ファクトリーオートメーション）において、対象物の位置を目標位置に合わせる技術（位置決め技術）が各種実用化されている。この際、目標位置に対する対象物の位置の偏差を計測する方法として、対象物を撮像することにより得られた画像を用いる方法がある。
【０００３】
特開２０１４−２０３３６５号公報（特許文献１）には、対象物の位置を変更する移動機構の移動中に対象物を撮像して画像データを取得し、画像データに含まれる特徴部分の位置に基づいて、対象物を目標位置に位置決めする制御システムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３３６５号公報
【特許文献２】特開２００６−１２９２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術では、移動中の対象物を撮像して得られた画像データを用いて特徴部分の位置が特定されるため、位置決めを高速化できる。しかしながら、移動中の対象物を撮像するため画像ブレが発生する。画像ブレが発生した画像データを用いて特徴部分の位置を特定する場合、特徴部分の位置精度が低下する。その結果、位置決め精度も低下する。
【０００６】
本発明は、上記の問題を鑑みてなされたものであり、その目的は、対象物を高精度に位置決めできる制御システム、制御装置、画像処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
本開示の一例によれば、対象物を移動させる移動機構を制御して、対象物の位置決めを行なう制御システムは、画像処理装置と、移動制御部と、推定部とを備える。画像処理装置は、対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、対象物の特徴部分の位置を特定する。移動制御部は、画像処理装置によって特定された特徴部分の位置に基づいて、対象物の位置が目標位置に近づくように移動機構を制御する。推定部は、第１の撮像動作によって得られた画像に基づいて画像処理装置によって特定された特徴部分の位置と、移動機構からの情報および移動制御部によって生成される情報の少なくとも一方を含む参照情報とに基づいて、第１の撮像動作の次の第２の撮像動作における露光期間中の特徴部分の移動軌跡を推定する。画像処理装置は、移動軌跡に基づいて、第２の撮像動作によって得られた画像のブレ補正を行なう。
【０００８】
この開示によれば、移動機構からの情報および移動制御部によって生成される情報の少なくとも一方を含む参照情報は、移動機構の移動を直接的に示す情報である。そのため、推定部は、第２の撮像動作の露光期間における特徴部分の移動軌跡を精度良く推定できる。これにより、画像処理装置は、画像のブレ補正を精度良く行なうことができ、特徴部分の位置を精度良く特定できる。その結果、対象物を高精度に位置決めすることができる。
【０００９】
本開示の一例によれば、移動機構は、対象物を移動させるために駆動されるモータを含む。参照情報は、第１の撮像動作からのモータの駆動量を示す情報を含む。
【００１０】
この開示によれば、露光期間のモータの駆動量を示す情報は、第１の撮像動作からの移動機構の移動量を直接的に示す。そのため、推定部は、第２の撮像動作の露光期間における特徴部分の移動軌跡をより精度良く推定できる。
【００１１】
本開示の一例によれば、移動制御部は、制御周期ごとに移動機構に対する移動指令を生成する。参照情報は、第１の撮像動作以降に移動制御部によって生成された移動指令を示す情報を含む。
【００１２】
移動指令は、移動機構を移動させるための指令であり、移動機構の移動に直接的に関係する。そのため、この開示によれば、推定部は、第２の撮像動作の露光期間における特徴部分の移動軌跡をより精度良く推定できる。さらに、推定部は、露光期間の終了時刻と重なる制御周期の開始時刻において、当該露光期間における特徴部分の移動軌跡を推定することができる。すなわち、推定部は、露光期間の終了前に、移動軌跡を推定することができる。そのため、画像処理装置は、第２の撮像動作の終了後にブレ補正を即座に開始することができる。
【００１３】
本開示の一例によれば、移動制御部は、目標位置に対する画像処理装置によって特定された位置の偏差に基づいて移動機構の目標軌道を決定し、決定した目標軌道に従って移動するように移動機構を制御する。参照情報は、目標軌道を示す情報を含む。
【００１４】
この開示によっても、推定部は、露光期間の終了前に、移動軌跡を推定することができる。そのため、画像処理装置は、第２の撮像動作の終了後にブレ補正を即座に開始することができる。
【００１５】
本開示の一例によれば、移動制御部は、制御周期ごとに移動機構に対する速度指令を生成し、露光期間と重なる制御周期において、一定の速度指令を生成する。
【００１６】
この開示によれば、露光期間において、特徴部分は等速移動する。そのため、画像処理装置におけるブレ補正の処理に要する時間が短くなる。
【００１７】
本開示の一例によれば、移動機構は、並進移動する第１機構と、回転移動する第２機構とを含む。移動制御部は、露光期間において、第２機構を停止させる。
【００１８】
この開示によれば、画像処理装置は、回転のブレによるぼけを除去するブレ補正を行なう必要がない。そのため、画像処理装置におけるブレ補正の処理に要する時間が短くなる。
【００１９】
本開示の一例によれば、対象物を移動させる移動機構と、対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、対象物の特徴部分の位置を特定するための画像処理装置とを制御して、対象物の位置決めを行なう制御装置は、移動制御部と、推定部と、指示部とを備える。移動制御部は、画像処理装置によって特定された特徴部分の位置に基づいて、対象物の位置が目標位置に近づくように移動機構を制御する。推定部は、第１の撮像動作によって得られた画像に基づいて画像処理装置によって特定された特徴部分の位置と、移動機構からの情報および移動制御部によって生成される情報の少なくとも一方を含む参照情報とに基づいて、第１の撮像動作の次の第２の撮像動作における露光期間中の特徴部分の移動軌跡を推定する。指示部は、移動軌跡に基づいて第２の撮像動作によって得られた画像のブレ補正を行なう画像処理装置に指示する。
【００２０】
本開示の一例によれば、画像処理装置は、対象物を移動させる移動機構を制御する制御装置からの指示に応じて、対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、対象物の特徴部分の位置を特定する。制御装置は、画像処理装置によって特定された特徴部分の位置に基づいて、対象物の位置が目標位置に近づくように移動機構を制御する。画像処理装置は、推定部と、補正部とを備える、推定部は、第１の撮像動作によって得られた画像に基づいて画像処理装置によって特定された特徴部分の位置と、移動機構からの情報および制御装置によって生成される情報の少なくとも一方を含む参照情報とに基づいて、第１の撮像動作の次の第２の撮像動作における露光期間中の特徴部分の移動軌跡を推定する。補正部は、移動軌跡に基づいて、第２の撮像動作によって得られた画像のブレ補正を行なう。
【００２１】
本開示の一例によれば、対象物を移動させる移動機構を制御して、対象物の位置決めを行なう制御システムをサポートするためのプログラムは、コンピュータに、第１〜第３のステップを実行させる。制御システムは、対象物に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、対象物の特徴部分の位置を特定するための画像処理装置を備える。第１ステップは、画像処理装置によって特定された特徴部分の位置に基づいて、対象物の位置が目標位置に近づくように移動機構を制御するステップである。第２ステップは、第１の撮像動作によって得られた画像に基づいて画像処理装置によって特定された特徴部分の位置と、移動機構からの情報および制御するステップによって生成される情報の少なくとも一方を含む参照情報とに基づいて、第１の撮像動作の次の第２の撮像動作における露光期間中の特徴部分の移動軌跡を推定するステップである。第３ステップは、移動軌跡に基づいて第２の撮像動作によって得られた画像のブレ補正を行なう画像処理装置に指示するステップである。
【００２２】
これらの開示によって、画像処理装置は、画像のブレ補正を精度良く行なうことができ、対象物の位置を精度良く特定できる。その結果、対象物を高精度に位置決めすることができる。
【発明の効果】
【００２３】
本発明によれば、対象物を高精度に位置決めできる。
【図面の簡単な説明】
【００２４】
【図１】本実施の形態に係る制御システムの全体構成を示す模式図である。
【図２】本実施の形態に係る制御システムを構成する画像処理装置のハードウェア構成を示す模式図である。
【図３】実施の形態に係る制御システムを構成するモーションコントローラのハードウェア構成を示す模式図である。
【図４】図１に示される制御システムの機能構成を示すブロック図である。
【図５】ワークの移動量を推定する方法を説明する図である。
【図６】制御システムの位置決め処理の流れの一例を示すフローチャートである。
【図７】移動制御部による移動機構の制御処理の流れの一例を示すフローチャートである。
【図８】変形例３に係る制御システムの機能構成を示すブロック図である。
【図９】目標軌道の一例を示す図である。
【図１０】目標軌道決定部における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２６】
§１  適用例
まず、本実施の形態に係る制御システムの一つの適用例について説明する。図１は、本実施の形態に係る制御システム１の全体構成を示す模式図である。図１に示す制御システム１は、画像処理を用いてアライメントを行う。アライメントは、典型的には、工業製品の製造過程などにおいて、対象物（以下、「ワーク」とも称す）を生産ラインの本来の位置に配置する処理などを意味する。このようなアライメントの一例として、制御システム１は、液晶パネルの生産ラインにおいて、ガラス基板であるワーク２に対する回路パターンの焼付処理前に、露光マスク４に対するワーク２の位置決めを制御する。ワーク２には、予め定められた位置に位置決め用の特徴部分であるマーク５ａ，５ｂが設けられている。制御システム１では、ワーク２上に設けられたマーク５ｂ，５ｂを撮像し、撮像により得られた画像に対して画像処理を行うことで、ワーク２の位置決めを実現する。
【００２７】
制御システム１は、移動機構１００と、ドライバユニット２００と、視覚センサ３００と、モーションコントローラ４００とを備える。
【００２８】
移動機構１００は、ワーク２を移動させる。移動機構１００は、ワーク２を目標位置に配置できる機構であればどのような自由度のものであってもよい。移動機構１００は、たとえば、水平方向の並進移動と回転移動とをワーク２に与えることができるＸＹθステージである。
【００２９】
図１に示す例の移動機構１００は、Ｘステージ１１０Ｘと、Ｙステージ１１０Ｙと、θステージ１１０θと、サーボモータ１２０Ｘ，１２０Ｙ，１２０θとを含む。図１に示す例では、サーボモータ１２０Ｘ，１２０Ｙ，１２０θの各々は回転式モータで構成される。サーボモータ１２０Ｘは、Ｘステージ１１０ＸをＸ軸方向に沿って並進駆動する。サーボモータ１２０Ｙは、Ｙステージ１１０ＹをＹ軸方向に沿って並進駆動する。サーボモータ１２０θは、Ｚ軸に平行な軸を中心にθステージ１１０θを回転駆動する。Ｘステージ１１０ＸとＹステージ１１０Ｙとサーボモータ１２０Ｘ，１２０Ｙとは、並進移動する機構を構成する。θステージ１１０θとサーボモータ１２０θとは、回転移動する機構を構成する。
【００３０】
ドライバユニット２００は、制御周期Ｔｓごとに受ける移動指令に従って、移動機構１００に対するフィードバック制御を行なう。図１に示されるように、ドライバユニット２００は、サーボドライバ２００Ｘ，２００Ｙ，２００θを含む。サーボドライバ２００Ｘは、Ｘステージ１１０Ｘの移動量が移動指令に近付くように、サーボモータ１２０Ｘに対してフィードバック制御を行なう。サーボドライバ２００Ｙは、Ｙステージ１１０Ｙの移動量が移動指令に近付くように、サーボモータ１２０Ｙに対してフィードバック制御を行なう。サーボドライバ２００θは、θステージ１１０θの移動量が移動指令に近付くように、サーボモータ１２０θに対してフィードバック制御を行なう。
【００３１】
視覚センサ３００は、１つ以上のカメラ（図１の例では、カメラ３０２ａ，３０２ｂ）と、画像処理装置３０４とを含む。画像処理装置３０４は、ワーク２に対する撮像周期Ｔｂごとのカメラ３０２ａ，３０２ｂの撮像動作によって得られた画像を取得し、取得した画像に基づいて、ワーク２上のマーク５ａ，５ｂの位置を特定する。
【００３２】
モーションコントローラ４００は、たとえばＰＬＣ（プログラマブルロジックコントローラ）であり、各種のＦＡ制御を行なう。モーションコントローラ４００は、画像処理装置３０４によって特定されたマーク５ａ，５ｂの位置に基づいて、ワーク２の位置が目標位置に近づくように移動機構１００を制御する。具体的には、モーションコントローラ４００は、制御周期Ｔｓごとに、ワーク２の位置を目標位置に近づけるための移動指令を生成し、生成した移動指令をドライバユニット２００に出力する。
【００３３】
モーションコントローラ４００は、移動機構１００からの情報に基づいて、カメラ３０２ａ，３０２ｂの露光期間におけるマーク５ａ，５ｂの移動軌跡を示す軌跡情報を生成する。移動機構１００からの情報は、移動機構１００の移動量を示す情報であり、たとえば、サーボモータ１２０Ｘ，１２０Ｙ，１２０θの駆動量（ここでは回転量）を示すエンコーダ値である。
【００３４】
画像処理装置３０４は、モーションコントローラ４００によって生成された軌跡情報を用いて、カメラ３０２ａ，３０２ｂによって撮像された画像のブレ補正を行なう。これにより、画像処理装置３０４は、ブレ補正が行なわれた画像に含まれるマーク５ａ，５ｂの位置を精度良く特定できる。その結果、ワーク２の位置決め精度を向上させることができる。
【００３５】
§２  具体例
次に、本実施の形態に係る制御システム１の具体例について説明する。
【００３６】
＜２−１．画像処理装置のハードウェア構成＞
図２は、本実施の形態に係る制御システムを構成する画像処理装置のハードウェア構成を示す模式図である。図２を参照して、画像処理装置３０４は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の画像処理を実現する。
【００３７】
より具体的には、画像処理装置３０４は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ３１０と、ＲＡＭ（Random Access Memory）３１２と、表示コントローラ３１４と、システムコントローラ３１６と、Ｉ／Ｏ（Input Output）コントローラ３１８と、ハードディスク３２０と、カメラインターフェイス３２２と、入力インターフェイス３２４と、モーションコントローラインターフェイス３２６と、通信インターフェイス３２８と、メモリカードインターフェイス３３０とを含む。これらの各部は、システムコントローラ３１６を中心として、互いにデータ通信可能に接続される。
【００３８】
プロセッサ３１０は、システムコントローラ３１６との間でプログラム（コード）などを交換して、これらを所定順序で実行することで、目的の演算処理を実現する。
【００３９】
システムコントローラ３１６は、プロセッサ３１０、ＲＡＭ３１２、表示コントローラ３１４、およびＩ／Ｏコントローラ３１８とそれぞれバスを介して接続されており、各部との間でデータ交換などを行うとともに、画像処理装置３０４全体の処理を司る。
【００４０】
ＲＡＭ３１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク３２０から読み出されたプログラムや、カメラ３０２ａ，３０２ｂによって取得された画像（画像データ）、画像に対する処理結果、およびワークデータなどを保持する。
【００４１】
表示コントローラ３１４は、表示部３３２と接続されており、システムコントローラ３１６からの内部コマンドに従って、各種の情報を表示するための信号を表示部３３２へ出力する。
【００４２】
Ｉ／Ｏコントローラ３１８は、画像処理装置３０４に接続される記録媒体や外部機器との間のデータ交換を制御する。より具体的には、Ｉ／Ｏコントローラ３１８は、ハードディスク３２０と、カメラインターフェイス３２２と、入力インターフェイス３２４と、モーションコントローラインターフェイス３２６と、通信インターフェイス３２８と、メモリカードインターフェイス３３０と接続される。
【００４３】
ハードディスク３２０は、典型的には、不揮発性の磁気記憶装置であり、プロセッサ３１０で実行される制御プログラム３５０に加えて、各種設定値などが格納される。このハードディスク３２０にインストールされる制御プログラム３５０は、メモリカード３３６などに格納された状態で流通する。なお、ハードディスク３２０に代えて、フラッシュメモリなどの半導体記憶装置やＤＶＤ−ＲＡＭ（Digital Versatile Disk Random Access Memory）などの光学記憶装置を採用してもよい。
【００４４】
カメラインターフェイス３２２は、ワークを撮影することで生成された画像データを受付ける入力部に相当し、プロセッサ３１０とカメラ３０２ａ，３０２ｂとの間のデータ伝送を仲介する。カメラインターフェイス３２２は、カメラ３０２ａ，３０２ｂからの画像データをそれぞれ一時的に蓄積するための画像バッファ３２２ａ，３２２ｂを含む。複数のカメラに対して、カメラの間で共有できる単一の画像バッファを設けてもよいが、処理高速化のため、それぞれのカメラに対応付けて独立に複数配置することが好ましい。
【００４５】
入力インターフェイス３２４は、プロセッサ３１０とキーボード３３４、マウス、タッチパネル、専用コンソールなどの入力装置との間のデータ伝送を仲介する。
【００４６】
モーションコントローラインターフェイス３２６は、プロセッサ３１０とモーションコントローラ４００との間のデータ伝送を仲介する。
【００４７】
通信インターフェイス３２８は、プロセッサ３１０と図示しない他のパーソナルコンピュータやサーバ装置などとの間のデータ伝送を仲介する。通信インターフェイス３２８は、典型的には、イーサネット（登録商標）やＵＳＢ（Universal Serial Bus）などからなる。
【００４８】
メモリカードインターフェイス３３０は、プロセッサ３１０と記録媒体であるメモリカード３３６との間のデータ伝送を仲介する。メモリカード３３６には、画像処理装置３０４で実行される制御プログラム３５０などが格納された状態で流通し、メモリカードインターフェイス３３０は、このメモリカード３３６から制御プログラムを読み出す。メモリカード３３６は、ＳＤ（Secure Digital）などの汎用的な半導体記憶デバイスや、フレキシブルディスク（Flexible Disk）などの磁気記録媒体や、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体等からなる。あるいは、通信インターフェイス３２８を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置３０４にインストールしてもよい。
【００４９】
上述のような汎用的なコンピュータアーキテクチャに従う構造を有するコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、本実施の形態に係る制御プログラムは、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼び出して処理を実行するものであってもよい。
【００５０】
さらに、本実施の形態に係る制御プログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係る制御プログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００５１】
なお、代替的に、制御プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００５２】
＜２−２．モーションコントローラのハードウェア構成＞
図３は、実施の形態に係る制御システムを構成するモーションコントローラ４００のハードウェア構成を示す模式図である。モーションコントローラ４００は、チップセット４１２と、プロセッサ４１４と、不揮発性メモリ４１６と、主メモリ４１８と、システムクロック４２０と、メモリカードインターフェイス４２２と、通信インターフェイス４２８と、内部バスコントローラ４３０と、フィールドバスコントローラ４３８とを含む。チップセット４１２と他のコンポーネントとの間は、各種のバスを介してそれぞれ結合されている。
【００５３】
プロセッサ４１４およびチップセット４１２は、典型的には、汎用的なコンピュータアーキテクチャに従う構成を有している。すなわち、プロセッサ４１４は、チップセット４１２から内部クロックに従って順次供給される命令コードを解釈して実行する。チップセット４１２は、接続されている各種コンポーネントとの間で内部的なデータを遣り取りするとともに、プロセッサ４１４に必要な命令コードを生成する。システムクロック４２０は、予め定められた周期のシステムクロックを発生してプロセッサ４１４に提供する。チップセット４１２は、プロセッサ４１４での演算処理の実行の結果得られたデータなどをキャッシュする機能を有する。
【００５４】
モーションコントローラ４００は、記憶手段として、不揮発性メモリ４１６および主メモリ４１８を有する。不揮発性メモリ４１６は、プロセッサ４１４で実行される制御プログラム４４０に加えて、データ定義情報、ログ情報などを不揮発的に保持する。制御プログラム４４０は、記録媒体４２４などに格納された状態で流通する。主メモリ４１８は、揮発性の記憶領域であり、プロセッサ４１４で実行されるべき各種プログラムを保持するとともに、各種プログラムの実行時の作業用メモリとしても使用される。
【００５５】
モーションコントローラ４００は、通信手段として、通信インターフェイス４２８および内部バスコントローラ４３０を有する。これらの通信回路は、データの送信および受信を行う。
【００５６】
通信インターフェイス４２８は、画像処理装置３０４との間でデータを遣り取りする。内部バスコントローラ４３０は、内部バスを介したデータの遣り取りを制御する。より具体的には、内部バスコントローラ４３０は、バッファメモリ４３６と、ＤＭＡ（Dynamic Memory Access）制御回路４３２と、内部バス制御回路４３４とを含む。
【００５７】
メモリカードインターフェイス４２２は、モーションコントローラ４００に対して着脱可能な記録媒体４２４とプロセッサ４１４とを接続する。
【００５８】
フィールドバスコントローラ４３８は、フィールドネットワークに接続するための通信インターフェイスである。モーションコントローラ４００は、フィールドバスコントローラ４３８を介してサーボドライバ２００Ｘ，２００Ｙ，２００θと接続される。当該フィールドネットワークには、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが採用される。
【００５９】
＜２−３．画像処理装置の機能構成＞
図４は、図１に示される制御システム１の機能構成を示すブロック図である。画像処理装置３０４は、モーションコントローラ４００から撮像トリガＴＲを受けると、撮像動作を行なうようにカメラ３０２ａ，３０２ｂを制御し、撮像動作によって得られた画像を取得する。図４に示されるように、画像処理装置３０４は、補正部３２と位置特定部３４とを含む。
【００６０】
＜２−３−１．補正部＞
補正部３２は、モーションコントローラ４００から受けた軌跡情報を用いて、カメラ３０２ａ，３０２ｂによって撮像された画像から画像ブレによるぼけを除去するブレ補正を行なう。軌跡情報は、露光期間中のマーク５ａ，５ｂの画像上の移動軌跡を示す情報である。
【００６１】
補正部３２は、軌跡情報で示されるマーク５ａ，５ｂの移動軌跡に基づいて、たとえば特開２００６−１２９２３６号公報（特許文献２）等に記載されている公知の技術を用いてブレ補正を行なう。
【００６２】
具体的には、補正部３２は、マーク５ａの移動軌跡に基づいて、点拡がり関数（Point Spread Function）を作成する。点拡がり関数は、画像ブレによるぼけのない画像から画像ブレによるぼけのある画像を生成するための空間フィルタである。補正部３２は、点拡がり関数の逆特性を有する補正関数を求め、当該補正関数を用いて、カメラ３０２ａの撮像動作によって得られた画像から画像ブレによるぼけを除去することができる。たとえば、補正部３２は、露光開始時刻からの画像ブレによるぼけを画像から除去することにより、露光開始時刻のマーク５ａの状態に近い画像を生成できる。同様にして、補正部３２は、マーク５ｂの移動軌跡に基づいて、カメラ３０２ｂの撮像動作によって得られた画像に対してブレ補正を行なう。
【００６３】
＜２−３−２．位置特定部＞
位置特定部３４は、カメラ３０２ａによって撮像された画像に含まれるマーク５ａの位置（以下、「計測位置ＰＳａ」という）を特定する。位置特定部３４は、カメラ３０２ｂによって撮像された画像に含まれるマーク５ｂの位置（以下、「計測位置ＰＳｂ」という）を特定する。位置特定部３４は、公知のパターン認識技術を用いて、画像の中からマーク５ａ，５ｂを認識し、認識したマーク５ａ，５ｂの座標を計測する。マーク５ａ，５ｂの座標は、カメラ３０２ａ，３０２ｂのローカル座標系でそれぞれ示される。位置特定部３４は、特定したマーク５ａの計測位置ＰＳａ，ＰＳｂの座標をモーションコントローラ４００に出力する。
【００６４】
位置特定部３４は、補正部３２がモーションコントローラ４００から軌跡情報を受けている場合、補正部３２によってブレ補正が行なわれた画像の中からマーク５ａ，５ｂをそれぞれ探索する。位置特定部３４は、補正部３２がモーションコントローラ４００から軌跡情報を受けていない場合、カメラ３０２ａ，３０２ｂによって撮像された画像の中からマーク５ａ，５ｂを探索する。
【００６５】
＜２−４．モーションコントローラの機能構成＞
図４を参照して、モーションコントローラ４００は、移動制御部４１と、指示部４５と、推定部４６とを備える。移動制御部４１と指示部４５と推定部４６とは、図３に示すプロセッサ４１４が制御プログラム４４０を実行することにより実現される。
【００６６】
また、図４に示されるように、移動機構１００はエンコーダ１３０を含む。エンコーダ１３０は、サーボモータ１２０Ｘ，１２０Ｙ，１２０θの移動量に応じたパルス信号をそれぞれ発生する。エンコーダ１３０は、サーボモータ１２０Ｘに対応するパルス信号に含まれるパルス数をカウントすることにより、初期位置からのＸステージ１１０ＸのＸ方向の並進移動量をエンコーダ値ＰＶｍＸとして計測する。パルス数のカウント値と移動量とは、所定の係数によって関係付けられる。そのため、エンコーダ１３０は、パルス数のカウント値に当該係数を乗ずることにより、移動量を計測できる。同様に、エンコーダ１３０は、初期位置からのＹステージ１１０ＹのＹ方向の並進移動量をエンコーダ値ＰＶｍＹとして計測するとともに、初期位置からのθステージ１１０θの回転移動量をエンコーダ値ＰＶｍθとして計測する。エンコーダ１３０は、制御周期Ｔｓと同じ周期で、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを計測して出力する。
【００６７】
＜２−３−１．移動制御部＞
移動制御部４１は、画像処理装置３０４によって特定された、マーク５ａの計測位置ＰＳａおよびマーク５ｂの計測位置ＰＳｂに基づいて、ワーク２の位置が目標位置ＳＰに近づくように移動機構１００を制御する。
【００６８】
ワーク２の目標位置ＳＰは、生産工程ごとに予め決められている。たとえば、マーク５ａとマーク５ｂとの中点が予め定められた座標に位置し、かつ、マーク５ａとマーク５ｂとを結ぶ直線とＸ軸またはＹ軸とのなす角度が予め定められた角度となるようなワーク２の位置が目標位置ＳＰとして設定される。
【００６９】
もしくは、カメラ３０２ａ，３０２ｂは、ワーク２のマーク５ａ，５ｂと合わせて、露光マスク４（図１参照）に設けられた２つの目標マークも撮像してもよい。この場合、撮像された画像に含まれる当該２つの目標マークの位置に応じて目標位置ＳＰが設定される。たとえば、マーク５ａが２つの目標マークの一方と一致し、かつ、マーク５ｂが２つの目標マークの他方と一致するようなワーク２の位置が目標位置ＳＰとして設定される。
【００７０】
移動制御部４１は、画像処理装置３０４によって特定されたマーク５ａの計測位置ＰＳａおよびマーク５ｂの計測位置ＰＳｂに基づいて、ワーク２の位置を目標位置ＳＰに近づけるための移動指令を生成する。
【００７１】
計測位置ＰＳａ，ＰＳｂは、撮像周期Ｔｂごとに特定される。一方、移動指令は、制御周期Ｔｓごとに生成される。一例として、撮像周期Ｔｂは、撮像状況などに応じて変動し、たとえば約６０ｍｓである。制御周期Ｔｓは、固定であり、たとえば１ｍｓである。このように、撮像周期Ｔｂは、制御周期Ｔｓよりも長い。そのため、画像処理装置３０４によって特定された計測位置ＰＳａ，ＰＳｂのみを用いて移動機構１００が制御されると、オーバシュートおよび振動が生じやすくなる。このようなオーバシュートおよび振動を避けるため、移動制御部４１は、計測位置ＰＳａ，ＰＳｂと、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθとを用いて、ワーク２の推定位置ＰＶを決定し、推定位置ＰＶに基づいて制御指令を生成する。
【００７２】
図４に示されるように、移動制御部４１は、位置決定部４２と、減算部４３と、演算部４４とを含む。
【００７３】
位置決定部４２は、画像処理装置３０４によって特定されたマーク５ａの計測位置ＰＳａおよびマーク５ｂの計測位置ＰＳｂとエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθとに基づいて、ワーク２の推定位置ＰＶを制御周期Ｔｓごとに決定する。推定位置ＰＶの決定方法の詳細については、後述する動作例において説明する。
【００７４】
減算部４３は、目標位置ＳＰに対する推定位置ＰＶの偏差を出力する。演算部４４は、目標位置ＳＰに対する推定位置ＰＶの偏差が０に収束するように演算（たとえばＰ演算、ＰＩＤ演算など）を行ない、制御周期Ｔｓごとに移動指令ＭＶＸ、ＭＶＹ，ＭＶθを算出する。移動指令ＭＶＸは、Ｘステージ１１０Ｘに対する移動指令である。移動指令ＭＶＹは、Ｙステージ１１０Ｙに対する移動指令である。移動指令ＭＶθは、θステージ１１０θに対する移動指令である。演算部４４は、算出した移動指令ＭＶＸ、ＭＶＹ，ＭＶθをサーボドライバ２００Ｘ，２００Ｙ，２００θにぞれぞれ出力する。移動指令ＭＶＸ、ＭＶＹ，ＭＶθは、たとえば位置指令または速度指令である。
【００７５】
＜２−３−２．指示部＞
指示部４５は、視覚センサ３００に対して動作指示を出力する。指示部４５は、撮像周期Ｔｂに従って、撮像トリガＴＲを画像処理装置３０４に出力する。これにより、撮像トリガを受けた画像処理装置３０４は、カメラ３０２ａ，３０２ｂを制御して、予め設定された露光時間Ｔａだけ露光させる。ただし、指示部４５が撮像トリガＴＲを出力してからカメラ３０２ａ，３０２ｂが露光を開始するまで、一定の遅延時間が発生する。当該遅延時間は、予め実験等により確認されている。
【００７６】
さらに、指示部４５は、推定部４６によって後述する軌跡情報が生成されると、当該軌跡情報を用いて画像のブレ補正を行なうように画像処理装置３０４に指示する。
【００７７】
＜２−３−３．推定部＞
推定部４６は、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθに基づいて、カメラ３０２ａ，３０２ｂの露光期間における、ワーク２のマーク５ａ，５ｂの画像上の移動軌跡を推定する。以下、推定部４６によるマーク５ａ，５ｂの画像上の移動軌跡の推定手順について説明する。
【００７８】
推定部４６は、指示部４５から撮像トリガＴＲが出力された時刻（以下、「トリガ出力時刻」という）に基づいて、カメラ３０２ａ，３０２ｂの各撮像タイミングにおける露光開始時刻と露光終了時刻とを算出する。具体的には、推定部４６は、トリガ出力時刻に予め確認されている上記の遅延時間だけ経過した時刻を露光開始時刻として算出する。さらに、推定部４６は、露光開始時刻から露光時間Ｔａだけ経過した時刻を露光終了時刻として算出する。本実施の形態では、露光時間Ｔａは、制御周期Ｔｓの整数倍の時間である。
【００７９】
推定部４６は、ｋ回目（ｋは２以上の整数）の撮像動作の露光期間中における制御周期Ｔｓ間隔の複数の時刻を特定する。具体的には、露光時間Ｔａが制御周期Ｔｓのｎ倍である場合、推定部４６は、ｋ回目（ｋは２以上の整数）の撮像動作の露光開始時刻（以下、「時刻ｔｋ０」という）から露光終了時刻（以下、「時刻ｔｋｎ」という）までのｎ＋１個の時刻ｔｋｉ（ｉは、０〜ｎの整数））を特定する。時刻ｔｋ（ｉ＋１）は、時刻ｔｋｉから制御周期Ｔｓだけ経過した時刻である。
【００８０】
推定部４６は、（ｋ−１）回目の撮像動作の露光開始時刻（以下、「時刻ｔ（ｋ−１）」という）から時刻ｔｋｉ（ｉは、０〜ｎの整数））までの間のワーク２の移動量Δｐｉ＝（ΔＸｉ，ΔＹｉ，Δθｉ）を推定する。ΔＸｉは、Ｘステージ１１０ＸのＸ方向の並進移動量を示す。ΔＹｉは、Ｙステージ１１０ＹのＹ方向の並進移動量を示す。Δθｉは、θステージ１１０θの回転移動量を示す。
【００８１】
図５は、時刻ｔ（ｋ−１）から時刻ｔｋｉまでの間のワーク２の移動量を推定する方法を説明する図である。図５に示されるように、推定部４６は、時刻ｔ（ｋ−１）におけるエンコーダ値ＰＶｍ（ｋ−１）と時刻ｔｋｉにおけるエンコーダ値ＰＶｍ（ｋｉ）とに基づいて、移動量Δｐｉを推定する。なお、時刻ｔｊにおけるＰＶｍ（ｊ）は、（ＰＶｍＸ（ｊ），ＰＶｍＹ（ｊ），ＰＶｍθ（ｊ））で表される。ＰＶｍＸ（ｊ），ＰＶｍＹ（ｊ），ＰＶｍθ（ｊ）は、それぞれ時刻ｔｊにおいてエンコーダ１３０から出力されるエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθである。もしくは、時刻ｔｊとエンコーダ１３０の検出時刻とがずれている場合、ＰＶｍＸ（ｊ）は、時刻ｔｊに近接する２つの検出時刻にエンコーダ１３０から出力されるエンコーダ値ＰＶｍＸの内挿補間値である。同様に、ＰＶｍＹ（ｊ）は、時刻ｔｊに近接する２つの検出時刻にエンコーダ１３０から出力されるエンコーダ値ＰＶｍＹの内挿補間値である。ＰＶｍθ（ｊ）は、時刻ｔｊに近接する２つの検出時刻にエンコーダ１３０から出力されるエンコーダ値ＰＶｍθの内挿補間値である。内挿補間値の算出方法については後述する。
【００８２】
推定部４６は、時刻ｔ（ｋ−１）におけるエンコーダ値ＰＶｍ（ｋ−１）と時刻ｔｋｉにおけるエンコーダ値ＰＶｍ（ｋｉ）との差を、時刻ｔ（ｋ−１）０から時刻ｔｋｉまで間のワーク２の移動量Δｐｉとして推定する。つまり、推定部４６は、以下の式（１）に従って、移動量Δｐｉを推定する。
【００８３】
Δｐｉ＝（ΔＸｉ，ΔＹｉ，Δθｉ）
＝（ＰＶｍＸ（ｋｉ）−ＰＶｍＸ（ｋ−１），ＰＶｍＹ（ｋｉ）−ＰＶｍＹ（ｋ−１），ＰＶｍθ（ｋｉ）−ＰＶｍθ（ｋ−１）  ・・・式（１）
推定部４６は、時刻ｔｋ０，・・・，ｔｋｎについて、移動量Δｐ０，・・・，Δｐｎをそれぞれ推定する。
【００８４】
推定部４６は、（ｋ−１）回目の撮像動作で得られた画像から特定されたマーク５ａの計測位置ＰＳａと、移動量Δｐｉとに基づいて、時刻ｔｋｉにおけるマーク５ａの予測位置ＰＥａｉを予測する。
【００８５】
推定部４６は、画像処理装置３０４から受けた計測位置ＰＳａの座標（カメラ３０２ａのローカル座標系）をワールド座標系（移動機構１００の機械座標系）の座標に変換する。推定部４６は、カメラ３０２ａのローカル座標系とワールド座標系とを対応付ける第１キャリブレーションデータを用いて、ワールド座標系における計測位置ＰＳａのＸＹ座標（ｘｓａ，ｙｓａ）を求める。
【００８６】
推定部４６は、移動量Δｐｉ＝（ΔＸｉ，ΔＹｉ，Δθｉ）だけワーク２が移動したときの計測位置ＰＳａから予測位置ＰＥａｉへの変換式を用いて、ワールド座標系における予測位置ＰＥａｉの座標を求める。変換式は、以下の式（２）に示される。
【００８７】
Ｅａｉ＝Ｔｉ（Ｒａｉ（Ｓａ））  ・・・式（２）
式（２）において、Ｓａは、ワールド座標系における計測位置ＰＳａのＸ座標ｘｓａおよびＹ座標ｙｓａの転置行列である（ｘｓａ，ｙｓａ）Ｔを示す。Ｒａ（  ）は、回転移動に対応する変換式を示し、θステージ１１０θの回転中心と計測位置ＰＳａとの距離と、θステージ１１０θの回転移動量Δθｉとに基づいて定められる。Ｔｉ（  ）は、並進移動に対応する変換式を示し、Ｘステージ１１０Ｘの移動量ΔＸｉとＹステージ１１０Ｙの移動量ΔＹｉと応じて定められる。Ｅａｉは、ワールド座標系における予測位置ＰＥａｉのＸ座標ｘｅａｉおよびＹ座標ｙｅａｉの転置行列である（ｘｅａｉ，ｙｅａｉ）Ｔを示す。
【００８８】
推定部４６は、第１キャリブレーションデータを用いて、ワールド座標系における予測位置ＰＥａｉの座標をカメラ３０２ａに対応するローカル座標系の座標に逆変換する。これにより、推定部４６は、ローカル座標系における予測位置ＰＥａｉの座標を得ることができる。このようにして、推定部４６は、時刻ｔｋ０，・・・，ｔｋｎについて、予測位置ＰＥａ０，・・・，ＰＥａｎの座標をそれぞれ算出する。
【００８９】
同様の方法により、推定部４６は、時刻ｔｋｉにおけるマーク５ｂの予測位置ＰＥｂｉを予測する。つまり、推定部４６は、画像処理装置３０４から受けた計測位置ＰＳｂの座標（カメラ３０２ｂのローカル座標系）をワールド座標系の座標に変換する。推定部４６は、カメラ３０２ｂのローカル座標系とワールド座標系とを対応付ける第２キャリブレーションデータを用いて、ワールド座標系における計測位置ＰＳｂのＸＹ座標（ｘｓｂ，ｙｓｂ）を求める。
【００９０】
推定部４６は、移動量Δｐｉ＝（ΔＸｉ，ΔＹｉ，Δθｉ）だけワーク２が移動したときの計測位置ＰＳｂから予測位置ＰＥｂｉへの変換式を用いて、ワールド座標系における予測位置ＰＥｂｉの座標を求める。変換式は、以下の式（３）に示される。
【００９１】
Ｅｂｉ＝Ｔｉ（Ｒｂｉ（Ｓｂ））  ・・・式（３）
式（３）において、Ｓｂは、ワールド座標系における計測位置ＰＳｂのＸ座標ｘｓｂおよびＹ座標ｙｓｂの転置行列である（ｘｓｂ，ｙｓｂ）Ｔを示す。Ｒｂｉ（  ）は、回転移動に対応する変換式を示し、θステージ１１０θの回転中心と計測位置ＰＳｂとの距離と、θステージ１１０θの回転移動量Δθｉとに基づいて定められる。Ｔｉ（  ）は、並進移動に対応する変換式を示し、Ｘステージ１１０Ｘの移動量ΔＸｉとＹステージ１１０Ｙの移動量ΔＹｉと応じて定められる。Ｅｂｉは、ワールド座標系における予測位置ＰＥａｉのＸ座標ｘｅｂｉおよびＹ座標ｙｅｂｉの転置行列である（ｘｅｂｉ，ｙｅｂｉ）Ｔを示す。
【００９２】
推定部４６は、第２キャリブレーションデータを用いて、ワールド座標系における予測位置ＰＥｂｉの座標をカメラ３０２ｂに対応するローカル座標系の座標に変換する。これにより、推定部４６は、ローカル座標系における予測位置ＰＥｂｉの座標を得ることができる。このようにして、推定部４６は、時刻ｔｋ０，・・・，ｔｋｎについて、予測位置ＰＥｂ０，・・・，ＰＥｂｎの座標をそれぞれ算出する。
【００９３】
予測位置ＰＥａ０，・・・，ＰＥａｎの座標（ローカル座標系）は、時刻ｔｋ０，・・・，ｔｋｎにおける画像上のマーク５ａの予測位置の座標を示す。そのため、推定部４６は、予測位置ＰＥａ０，・・・，ＰＥａｎをこの順に繋ぐ軌跡を、ｋ回目のカメラ３０２ａの撮像動作の露光期間におけるマーク５ａの画像上の移動軌跡として推定する。推定部４６は、予測位置ＰＥａ０，・・・，ＰＥａｎをこの順に繋ぐ軌跡を示す関数をマーク５ａの軌跡情報として生成する。関数は、連続する２つの予測位置同士を結ぶ直線を示してもよいし、予測位置ＰＥａ０，・・・，ＰＥａｎの近似曲線を示してもよい。
【００９４】
予測位置ＰＥｂ０，・・・，ＰＥｂｎの座標（ローカル座標系）は、時刻ｔｋ０，・・・，ｔｋｎにおける画像上のマーク５ｂの予測位置の座標を示す。そのため、推定部４６は、予測位置ＰＥｂ０，・・・，ＰＥｂｎをこの順に繋ぐ軌跡を、ｋ回目のカメラ３０２ｂの撮像動作の露光期間におけるマーク５ｂの画像上の移動軌跡として推定する。推定部４６は、予測位置ＰＥｂ０，・・・，ＰＥｂｎをこの順に繋ぐ軌跡を示す関数をマーク５ｂの軌跡情報として生成する。関数は、連続する２つの予測位置同士を結ぶ直線を示してもよいし、予測位置ＰＥｂ０，・・・，ＰＥｂｎの近似曲線を示してもよい。
【００９５】
なお、露光時間Ｔａが制御周期Ｔｓの１（＝ｎ）倍である場合、推定部４６は、ｋ回目の撮像動作の露光開始時刻（時刻ｔｋ０）および露光終了時刻（時刻ｔｋ１）におけるマーク５ａの予測位置ＰＥａ０および予測位置ＰＥａ１をそれぞれ予測する。この場合、ｋ回目のカメラ３０２ａの撮像動作の露光期間におけるマーク５ａの画像上の移動軌跡は、予測位置ＰＥａ０を始点とし、予測位置ＰＥａ１を終点とするベクトルによって示される。同様に、推定部４６は、露光開始時刻（時刻ｔｋ０）および露光終了時刻（時刻ｔｋ１）におけるマーク５ｂの予測位置ＰＥｂ０および予測位置ＰＥｂ１をそれぞれ予測する。そして、ｋ回目のカメラ３０２ｂの撮像動作の露光期間におけるマーク５ｂの画像上の移動軌跡は、予測位置ＰＥｂ０を始点とし、予測位置ＰＥｂ１を終点とするベクトルによって示される。
【００９６】
§３  動作例
＜３−１．制御システムの位置決め処理の流れ＞
図６を参照して、制御システム１の位置決め処理の流れの一例について説明する。図６は、制御システムの位置決め処理の流れの一例を示すフローチャートである。
【００９７】
まずステップＳ１において、モーションコントローラ４００は、推定位置ＰＶおよびエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを初期化する。次にステップＳ２において、ワーク２が移動機構１００上に載置されると、指示部４５は、視覚センサ３００に対して撮像トリガＴＲを出力する。これにより、移動機構１００が停止した状態で、カメラ３０２ａ，３０２ｂは、ワーク２に対する１回目の撮像動作を行なう。
【００９８】
次にステップＳ３において、画像処理装置３０４は、カメラ３０２ａの撮像動作によって得られた画像に含まれるマーク５ａの計測位置ＰＳａと、カメラ３０２ｂの撮像動作によって得られた画像に含まれるマーク５ｂの計測位置ＰＳｂとを特定する。次にステップＳ４において、移動制御部４１は、移動機構１００の移動制御を開始する。
【００９９】
次にステップＳ５において、移動制御部４１は、目標位置ＳＰに対する推定位置ＰＶの偏差が閾値未満か否かを判断する。閾値は、要求される位置決め精度に応じて予め定められる。目標位置ＳＰに対する推定位置ＰＶの偏差が閾値未満である場合（ステップＳ５でＹＥＳ）、移動制御部４１は、移動機構１００の移動制御を終了する。これにより、位置決め処理が終了する。
【０１００】
目標位置ＳＰに対する推定位置ＰＶの偏差が閾値未満でない場合（ステップＳ５でＮＯ）、ステップＳ６〜ステップＳ１０の処理が撮像周期Ｔｂごとに繰り返される。なお、ステップＳ６〜Ｓ１０の間にも、移動制御部４１による移動制御が並行して実行される。
【０１０１】
ステップＳ６において、指示部４５は、現時刻が撮像トリガＴＲの出力時刻であるか否かを判断する。撮像トリガＴＲの出力時刻は、撮像周期Ｔｂに従って定められている。現時刻が撮像トリガＴＲの出力時刻でない場合（ステップＳ６でＮＯ）、処理はステップＳ５に戻る。
【０１０２】
現時刻が撮像トリガＴＲの出力時刻である場合（ステップＳ６でＹＥＳ）、指示部４５は、撮像トリガＴＲを画像処理装置３０４に出力する。これにより、ステップＳ７において、撮像トリガＴＲを受けた画像処理装置３０４は、撮像するようにカメラ３０２ａ，３０２ｂを制御し、カメラ３０２ａ，３０２ｂによって撮像された画像を取得する。
【０１０３】
次にステップＳ８において、推定部４６は、カメラ３０２ａ，３０２ｂの露光期間中におけるマーク５ａ，５ｂの画像上の移動軌跡をそれぞれ推定し、推定した移動軌跡を示す軌跡情報を生成する。そして、指示部４５は、生成された軌跡情報を用いて画像のブレ補正を行なうように、画像処理装置３０４に指示する。
【０１０４】
次にステップＳ９において、画像処理装置３０４の補正部３２は、軌跡情報を用いて、カメラ３０２ａ，３０２ｂによって撮像された画像のブレ補正を行なう。ステップＳ１０において、位置特定部３４は、ブレ補正が行なわれた画像に含まれるマーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂをそれぞれ特定する。ステップＳ１０の後、処理はステップＳ５に戻る。
【０１０５】
＜３−２．移動制御部の処理＞
図７は、移動制御部による移動機構の制御処理の流れの一例を示すフローチャートである。まずステップＳ１１において、位置決定部４２は、画像処理装置３０４によって特定された最新の計測位置ＰＳａ，ＰＳｂを取得する。ステップＳ１２において、位置決定部４２は、計測位置ＰＳａ，Ｐｓｂの算出の元となる撮像時刻を取得する。たとえば、位置決定部４２は、推定部４６によって算出された露光開始時刻を撮像時刻として取得すればよい。
【０１０６】
次にステップＳ１３において、位置決定部４２は、撮像時刻に近い複数の時刻のエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを取得する。
【０１０７】
次にステップＳ１４において、位置決定部４２は、複数の時刻のエンコーダ値ＰＶｍＸの内挿補間値を算出し、当該内挿補間値を撮像時刻のエンコーダ値ＰＶｍｓＸとする。同様に、位置決定部４２は、複数の時刻のエンコーダ値ＰＶｍＹの内挿補間値を算出し、当該内挿補間値を撮像時刻のエンコーダ値ＰＶｍｓＹとする。位置決定部４２は、複数の時刻のエンコーダ値ＰＶｍθの内挿補間値を算出し、当該内挿補間値を撮像時刻のエンコーダ値ＰＶｍｓθとする。
【０１０８】
具体的には、位置決定部４２は、以下のようにして内挿補間値を算出する。検出時刻ｔ（ｊ）においてエンコーダ１３０によって検出されたエンコーダ値ＰＶｍＸをエンコーダ値ＰＶｍＸ（ｊ）とする。位置決定部４２は、撮像時刻ｔｖｉに近接する２つの時刻、例えば、時間軸上で、撮像時刻ｔｖｉを挟む検出時刻ｔ（ｑ）と検出時刻ｔ（ｑ＋１）とを特定する。
【０１０９】
位置決定部４２は、検出時刻ｔ（ｑ）のエンコーダ値ＰＶｍＸ（ｑ）と、検出時刻ｔ（ｑ＋１）のエンコーダ値ＰＶｍＸ（ｑ＋１）とを取得する。過去に検出されたエンコーダ値は、モーションコントローラ４００の記憶部（たとえば不揮発性メモリ４１６または主メモリ４１８（図３参照））に記憶される。
【０１１０】
位置決定部４２は、エンコーダ値ＰＶｍＸ（ｑ）とエンコーダ値ＰＶｍＸ（ｑ＋１）との内挿補間値を用いて、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＸ（ｖｉ）を算出する。具体的には、位置決定部４２は、次の式（４）を用いて、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＸ（ｖｉ）を算出する。
【０１１１】
ＰＶｍｓＸ（ｖｉ）＝ＰＶｍＸ（ｑ）＋Ｋｋ＊（ＰＶｍＸ（ｑ＋１）−ＰＶｍＸ（ｑ））  ・・・（４）
ここで、Ｋｋは、内挿補間係数である。制御周期をＴｓとし、エンコーダ値ＰＶｍＸの伝送遅延時間をＴｅｄとし、撮像トリガＴＲの伝送遅延時間をＴｓｄとして、Ｔｓ−Ｔｅｄ≦Ｔｓｄ＜２Ｔｓ−Ｔｅｄの場合、内挿補間係数Ｋｋは、次の式（５）を用いて算出される。
【０１１２】
Ｋｋ＝｛Ｔｓｄ−（Ｔｓ−Ｔｅｄ）｝／Ｔｓ  ・・・（５）
このような内挿補間値の算出方法を用いることによって、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＸ（ｖｉ）を高精度に算出できる。同様にして、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＹ（ｖｉ），ＰＶｍｓθ（ｖｉ）が算出される。なお、撮像時刻がエンコーダ値の算出時刻と一致する場合には、このエンコーダ値をそのまま用いればよい。
【０１１３】
次にステップＳ１５において、位置決定部４２は、最新の計測位置ＰＳａ，ＰＳｂと、撮像時刻以後のエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθと、撮像時刻のエンコーダ値ＰＶｍｓＸ，ＰＶｍｓＹ，ＰＶｍｓθとを用いて、推定位置ＰＶを算出する。
【０１１４】
具体的には、Ｘ方向に（ＰＶｍＸ−ＰＶｍｓＸ）だけ並進移動し、Ｙ方向に（ＰＶｍＹ−ＰＶｍｓＹ）だけ並進移動し、（ＰＶｍθ−ＰＶｍｓθ）だけ回転移動するときのアフィン変換式に計測位置ＰＳａを入力し、アフィン変換後の位置ＰＳｗａが算出される。同様に、当該アフィン変換式に計測位置ＰＳｂを入力し、アフィン変換後の位置ＰＳｗｂが算出される。位置決定部４２は、マーク５ａが位置ＰＳｗａに位置し、マーク５ｂが位置ＰＳｗｂに位置するときのワーク２の位置を推定位置ＰＶとして決定する。つまり、位置決定部４２は、位置ＰＳｗａと位置ＰＳｗｂとの中点の座標と、位置ＰＳｗａと位置ＰＳｗｂとを結ぶ直線とＸ軸またはＹ軸とのなす角度とを、推定位置ＰＶを特定する情報として算出する。
【０１１５】
次にステップＳ１６において、演算部４４は、目標位置ＳＰに対する推定位置ＰＶの偏差に基づいて、たとえばＰ演算により、移動指令ＭＶＸ，ＭＶＹ，ＭＶθを生成して、サーボドライバ２００Ｘ，２００Ｙ，２００θにそれぞれ出力する。
【０１１６】
このような処理を実行することによって、モーションコントローラ４００は、画像処理による高精度な計測位置ＰＳａ，ＰＳｂが入力される時刻には、この高精度な計測位置ＰＳａ，ＰＳｂを用いて推定位置ＰＶを算出し、高精度な位置決め制御を実現できる。ここで、計測位置ＰＳａ，ＰＳｂが入力される時間間隔は、撮像周期Ｔｂであり、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθが入力される制御周期Ｔｓに比べて長い。しかしながら、時間軸上で隣り合う計測位置ＰＳａ，ＰＳｂの入力時刻間において、位置決定部４２は、入力周期が短いエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθの入力時刻毎に、推定位置ＰＶを決定して、移動機構１００の移動制御を行う。これにより、高精度且つ短周期の位置決め制御が可能になる。さらに、位置決定部４２は、上述の簡単な四則演算を用いる処理を行なう。そのため、簡素な構成および処理による高速且つ高精度な位置決めを実現できる。
【０１１７】
＜３−３．作用・効果＞
以上のように、制御システム１は、画像処理装置３０４と移動制御部４１とを備える。画像処理装置３０４は、ワーク２に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、ワーク２のマーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂをそれぞれ特定する。移動制御部４１は、画像処理装置３０４によって特定された計測位置ＰＳａ，ＰＳｂに基づいて、ワーク２の位置が目標位置ＳＰに近づくように移動機構１００を制御する。さらに、制御システム１は、推定部４６を備える。推定部４６は、（ｋ−１）回目の撮像動作によって得られた画像に基づいて特定された計測位置ＰＳａ，ＰＳｂと、移動機構１００からの情報を含む参照情報とに基づいて、ｋ回目の撮像動作における露光期間中のマーク５ａ，５ｂの移動軌跡を推定する。画像処理装置３０４は、マーク５ａ，５ｂの移動軌跡に基づいて、ｋ回目の撮像動作によって得られた画像のブレ補正を行なう。
【０１１８】
移動機構１００からの情報は、移動機構１００の移動を直接的に示す情報である。そのため、軌跡情報は、カメラ３０２ａ，３０２ｂの露光期間におけるマーク５ａ，５ｂの移動軌跡を精度良く示す。これにより、画像処理装置３０４は、画像のブレ補正を精度良く行なうことができ、マーク５ａ，５ｂの位置を精度良く特定できる。その結果、ワーク２を高精度に位置決めすることができる。
【０１１９】
移動機構１００からの情報は、ワーク２を移動させるために駆動されるサーボモータ１２０Ｘ，１２０Ｙ，１２０θの回転量をそれぞれ示すエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθである。カメラ３０２ａ，３０２ｂの露光期間におけるエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθは、移動機構１００の移動量を直接的に示す。そのため、推定部４６によって生成される軌跡情報は、露光期間におけるマーク５ａ，５ｂの移動軌跡を精度良く示す。
【０１２０】
§４  変形例
＜４−１．変形例１＞
推定部４６は、（ｋ−１）回目の撮像動作以降に移動制御部４１によって生成された移動指令ＭＶＸ，ＭＶＹ，ＭＶθを参照情報として取得し、移動指令ＭＶＸ，ＭＶＹ，ＭＶθに基づいて、軌跡情報を生成してもよい。
【０１２１】
ワーク２が載置された移動機構１００は、移動指令ＭＶＸ，ＭＶＹ，ＭＶθに従って移動する。そのため、（ｋ−１）回目の撮像動作の露光開始時刻（時刻ｔ（ｋ−１））からｋ回目の撮像動作の露光期間中の時刻ｔｋｉ（ｉは、０〜ｎの整数））までの期間におけるワーク２のＸ方向の並進移動量ΔＸｉは、当該期間に生成された移動指令ＭＶＸから推定される。同様に、時刻ｔ（ｋ−１）から時刻ｔｋｉまでの期間におけるワーク２のＹ方向の移動量ΔＹｉは、当該期間に生成された移動指令ＭＶＹから推定される。時刻ｔ（ｋ−１）から時刻ｔｋｉまでの期間におけるワーク２の回転移動量Δθｉは、当該期間に生成された移動指令ＭＶθから推定される。
【０１２２】
推定部４６は、たとえば移動指令ＭＶＸが速度指令であり、時刻ｔにおける移動指令ＭＶＸの値をＭＶＸ（ｔ）とすると、以下の式（６）に従って、時刻ｔ（ｋ−１）から時刻ｔｋｉまでの期間におけるＸ方向の並進移動量ΔＸｉを算出する。制御周期Ｔｓの間、ＭＶＸ（ｔ）は一定である。
【０１２３】
【数１】
2019215635.tif 000003
【０１２４】
同様に、推定部４６は、以下の式（７），（８）に従って、時刻ｔ（ｋ−１）から時刻ｔｋｉまでの期間における、Ｙ方向の並進移動量ΔＹｉと、回転移動量Δθｉとを算出する。式（７）において、ＭＶＹ（ｔ）は、時刻ｔにおける移動指令ＭＶＹの値を示す。式（８）において、ＭＶθ（ｔ）は、時刻ｔにおける移動指令ＭＶθの値を示す。移動指令ＭＶＹ，ＭＶθは速度指令であり、ＭＶＹ（ｔ）およびＭＶθ（ｔ）は、制御周期Ｔｓの間、一定である。
【０１２５】
【数２】
2019215635.tif 000004
【０１２６】
推定部４６は、上記のようにして算出したΔＸｉ，ΔＹｉ，Δθｉを用いて、移動軌跡を推定すればよい。
【０１２７】
変形例１に係る制御システムによれば、露光終了時刻と重なる制御周期Ｔｓの開始時刻において、推定部４６は、軌跡情報を生成することができる。すなわち、推定部４６は、露光終了時刻の前に、軌跡情報を生成することができる。そのため、画像処理装置３０４の補正部３２は、カメラ３０２ａ，３０２ｂによって撮像された画像に対するブレ補正を即座に行なうことができる。これにより、撮像トリガＴＲが出力されてから計測位置ＰＳａ，ＰＳｂが特定されるまでの時間を短縮できる。
【０１２８】
＜４−２．変形例２＞
推定部４６は、ｋ回目の撮像動作の露光期間中の時刻ｔｋｉ（ｉは、０〜ｎの整数））を前半（時刻ｔｋｉ（ｉは、０〜ｓの整数（ｓは1以上ｎ未満の整数））と後半（時刻ｔｋｉ（ｉは、ｓ＋１〜ｎの整数）とに分けてもよい。推定部４６は、（ｋ−１）回目の撮像動作の露光開始時刻（時刻ｔ（ｋ−１））から前半の時刻ｔｋｉ（ｉは、０〜ｓの整数））までの期間におけるワーク２の移動量Δｐｉを、エンコーダ値を用いて算出する。推定部４６は、時刻ｔ（ｋ−１）から後半の時刻ｔｋｉ（ｉは、ｓ＋１〜ｎの整数））までの期間におけるワーク２の移動量Δｐｉを、変形例１と同様に移動指令ＭＶＸ，ＭＶＹ，ＭＶθを用いて算出する。
【０１２９】
これにより、軌跡情報によって示される移動軌跡は、変形例１に係る制御システムと比較して、マーク５ａ，５ｂの実軌跡により近くなる。その結果、画像処理装置３０４の補正部３２によってブレ補正された画像がより鮮明となり、位置決め精度を高めることができる。さらに、変形例１と同様に、推定部４６は、露光終了時刻の前に、軌跡情報を生成することができる。そのため、撮像トリガＴＲが出力されてから計測位置ＰＳａ，ＰＳｂが特定されるまでの時間を短縮できる。
【０１３０】
＜４−３．変形例３＞
上記の説明では、移動制御部４１は、推定位置ＰＶが目標位置ＳＰに近づくように、移動指令ＭＶＸ，ＭＶＹ，ＭＶθを生成する。しかしながら、ワーク２をより滑らかに移動させるための移動機構１００の目標軌道が決定され、決定された目標軌道に従って移動機構１００が制御されてもよい。この場合、ワーク２は、決定された目標軌道に従って移動する。そのため、制御システムは、撮像トリガＴＲを出力する前に、目標軌道に基づいて、露光期間におけるマーク５ａ，５ｂの移動軌跡を示す軌道情報を生成することができる。これにより、変形例１，２と同様に、撮像トリガＴＲが出力されてから計測位置ＰＳａ，ＰＳｂが特定されるまでの時間を短縮できる。さらに、モーションコントローラは、撮像トリガＴＲと軌道情報とを同時に画像処理装置３０４に出力することができる。その結果、画像処理装置３０４とモーションコントローラ４００との間の通信シーケンスを簡略化できる。
【０１３１】
＜４−３−１．制御システムの機能構成＞
図８は、変形例３に係る制御システム１Ａの機能構成を示すブロック図である。図８に示されるように、制御システム１Ａは、図４に示す制御システム１と比較して、モーションコントローラ４００の代わりにモーションコントローラ４００Ａを備える点で相違する。モーションコントローラ４００Ａは、モーションコントローラ４００と比較して、移動制御部４１および推定部４６の代わりに、移動制御部４１Ａおよび推定部４６Ａをそれぞれ含む点で相違する。移動制御部４１Ａは、移動制御部４１と比較して、位置決定部４２、減算部４３および演算部４４の代わりに目標軌道決定部４７および演算部４４Ａを備える点で相違する。
【０１３２】
＜４−３−１−１．目標軌道決定部＞
目標軌道決定部４７は、画像処理装置３０４によって特定された計測位置ＰＳａ，ＰＳｂと、目標位置ＳＰとに基づいて、移動機構１００の目標軌道を決定する。具体的には、以下のようにして目標軌道を決定する。
【０１３３】
目標軌道決定部４７は、画像処理装置３０４によって特定された計測位置ＰＳａ，ＰＳｂに基づいて、ワーク２の実位置を特定する。目標軌道決定部４７は、特定したワーク２の実位置から目標位置ＳＰに移動させるための移動機構１００の必要移動距離Ｌｏを算出する。目標軌道決定部４７は、移動機構１００の必要移動距離Ｌｏを、Ｘ軸方向の必要移動距離ＬＸとＹ軸方向の必要移動距離ＬＹと回転方向の必要移動距離Ｌθに分解する。
【０１３４】
目標軌道決定部４７は、必要移動距離ＬＸと、Ｘステージ１１０Ｘの目標位置ＳＰＸとに基づいて、Ｘステージ１１０Ｘの目標軌道ＴＧＸを決定する。目標軌道決定部４７は、必要移動距離ＬＹと、Ｙステージ１１０Ｙの目標位置ＳＰＹとに基づいて、Ｙステージ１１０Ｙの目標軌道ＴＧＹを決定する。目標軌道決定部４７は、必要移動距離Ｌθと、θステージ１１０θの目標位置ＳＰＸとに基づいて、θステージ１１０θの目標軌道ＴＧθを決定する。
【０１３５】
図９は、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθの一例を示す図である。目標軌道ＴＧＸは、時刻ｔにおける目標軌道ＴＧＸの位置と目標位置ＳＰＸとの偏差の時間変化を示す関数ＬＸ（ｔ）が５次以上の多次関数となるように決定される。関数ＬＸ（ｔ）は、必要移動距離ＬＸと時刻ｔとを少なくとも説明変数とする関数である。同様に、目標軌道ＴＧＹは、時刻ｔにおける目標軌道ＴＧＹの位置と目標位置ＳＰＹとの偏差の時間変化を示す関数ＬＹ（ｔ）が５次以上の多次関数となるように決定される。目標軌道ＴＧθは、時刻ｔにおける目標軌道ＴＧθの位置と目標位置ＳＰθとの偏差の時間変化を示す関数Ｌθ（ｔ）が５次以上の多次関数となるように決定される。
【０１３６】
目標軌道決定部４７は、決定した目標軌道ＴＧＸ，ＴＧＹ，ＴＧθと目標位置ＳＰＸ，ＳＰＹ，ＳＰθとの偏差の時間変化をそれぞれ示す関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を演算部４４Ａに出力する。関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、それぞれ目標軌道ＴＧＸ，ＴＧＹ，ＴＧθを示す情報である。
【０１３７】
目標軌道決定部４７は、撮像周期Ｔｂごとに、画像処理装置３０４によって特定されたワーク２の最新の実位置に従って、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を更新する。
【０１３８】
＜４−３−１−２．演算部＞
演算部４４Ａは、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）に基づいて、制御周期Ｔｓごとに移動指令ＭＶＸ、ＭＶＹ，ＭＶθをそれぞれ算出する。具体的には、演算部４４Ａは、関数ＬＸ（ｔ）に現時刻ｔを代入することにより、目標位置ＳＰＸに対する目標軌道ＴＧＸにおける現時刻ｔの位置の偏差を算出する。演算部４４Ａは、算出した偏差に対してたとえばＰ演算を行なうことにより、移動指令ＭＶＸを算出する。演算部４４Ａは、同様の方法により、移動指令ＭＶＹ，ＭＶθを算出する。
【０１３９】
＜４−３−１−３．推定部＞
推定部４６Ａは、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθを示す情報を参照情報として取得する。推定部４６Ａは、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθに基づいて、（ｋ−１）回目の撮像動作の露光開始時刻（時刻ｔ（ｋ−１））からｋ回目の撮像動作の露光期間中の時刻ｔｋｉ（ｉは、０〜ｎの整数））までの期間におけるワーク２の移動量Δｐｉを算出する。具体的には、図９に示されるように、推定部４６Ａは、目標軌道ＴＧＸにおける時刻ｔ（ｋ−１）から時刻ｔｋｉまでの移動量を、ワーク２のＸ方向の並進移動量ΔＸｉとして算出する。同様に、推定部４６Ａは、目標軌道ＴＧＹにおける時刻ｔ（ｋ−１）から時刻ｔｋｉまでの移動量を、ワーク２のＹ方向の並進移動量ΔＹｉとして算出する。推定部４６Ａは、目標軌道ＴＧθにおける時刻ｔ（ｋ−１）から時刻ｔｋｉまでの移動量を、ワーク２の回転移動量Δθｉとして算出する。
【０１４０】
推定部４６Ａは、上記のようにして算出したΔＸｉ，ΔＹｉ，Δθｉを用いて、移動軌跡を推定すればよい。
【０１４１】
＜４−３−２．目標軌道決定部の処理＞
図１０は、目標軌道決定部における処理の流れを示すフローチャートである。図１０に示される処理は、撮像周期Ｔｂごとに行なわれる。
【０１４２】
ステップＳ２１において、目標軌道決定部４７は、マーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂを画像処理装置３０４からそれぞれ取得する。
【０１４３】
ステップＳ２２において、目標軌道決定部４７は、マーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂに基づいて、ワーク２の実位置を特定する。そして、目標軌道決定部４７は、特定したワーク２の実位置から目標位置ＳＰに移動させるための、Ｘ軸方向の必要移動距離ＬＸとＹ軸方向の必要移動距離ＬＹと回転方向の必要移動距離Ｌθとを算出する。
【０１４４】
ステップＳ２３において、目標軌道決定部４７は、必要移動距離ＬＸ，ＬＹ，Ｌθを補正する。当該補正は、移動機構１００上におけるワーク２のすべりや、移動機構１００の位置決め後における残留振動を抑制するために行なわれる。なお、ワーク２のすべりや残留振動が無視できる程度に小さい場合には、ステップＳ２３は省略されてもよい。
【０１４５】
ステップＳ２３の補正方法は、以下の通りである。目標軌道決定部４７は、エンコーダ１３０からのエンコーダ値に基づいて決定される移動機構１００の実位置と、前回決定した目標軌道における現時刻の位置との位置偏差Ｅｎ（ｔ）を誤差として算出する。位置偏差Ｅｎ（ｔ）は、Ｘ軸方向の成分ＥｎＸ（ｔ）と、Ｙ軸方向の成分ＥｎＹ（ｔ）と、回転方向の成分Ｅｎθ（ｔ）とに分解される。
【０１４６】
目標軌道決定部４７は、必要移動距離ＬＸを位置偏差ＥｎＸ（ｔ）で補正することにより、補正後の必要移動距離ＬＸｍを算出する。同様に、目標軌道決定部４７は、必要移動距離ＬＹを位置偏差ＥｎＹ（ｔ）で補正することにより、補正後の必要移動距離ＬＹｍを算出する。目標軌道決定部４７は、必要移動距離Ｌθを位置偏差Ｅｎθ（ｔ）で補正することにより、補正後の必要移動距離Ｌθｍを算出する。
【０１４７】
ステップＳ２４において、目標軌道決定部４７は、計測時刻ｔをゼロに初期化する。ステップＳ２５において、目標軌道決定部４７は、軌道時間Ｔを算出する。軌道時間Ｔは、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθの開始点から終了点まで移動機構１００を移動するために要する時間を表わす。一例として、軌道時間Ｔは、以下の式（９）に基づいて算出される。
【０１４８】
Ｔ＝ｍａｘ｛ｆ（Ａｍａｘ），Ｔｍｉｎ｝ ・・・（９）
上記式（９）に示される「Ａｍａｘ」は、最大加速度を表わす。「ｆ（）」は、最大加速度Ａｍａｘで必要移動距離を移動機構１００に移動させた場合にかかる軌道時間を求めるための関数である。「Ｔｍｉｎ」は、所定の最小軌道時間である。「ｍａｘ（α，β）」は、数値α，βの内から最大値を取得するための関数である。
【０１４９】
上記式（９）により、軌道時間Ｔは、最小軌道時間Ｔｍｉｎ未満にならないように決められる。最小軌道時間Ｔｍｉｎが設けられていなければ、必要移動距離Ｌが非常に小さい場合に、移動機構１００が目標位置にすぐに到達してしまうので、次の撮像タイミングまでの時間を無駄にすることになる。しかしながら、最小軌道時間Ｔｍｉｎが設けられることで、必要移動距離Ｌｏが非常に小さい場合に、移動機構１００は、最大加速度よりも低い加速度で移動することとなり、移動機構１００は、滑らかに移動することができる。一例として、最小軌道時間Ｔｍｉｎは、平均撮像間隔に対して一定の割合（たとえば、５０％）を乗じることで算出される。
【０１５０】
ステップＳ２６において、目標軌道決定部４７は、ステップＳ２３で得られた必要移動距離ＬＸｍ，ＬＹｍ，Ｌθｍと、ステップＳ２５で算出された軌道時間Ｔとに基づいて、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθをそれぞれ決定する。
【０１５１】
具体的には、目標軌道決定部４７は、目標軌道ＴＧＸの位置と目標位置ＳＰＸとの偏差の時間変化を示す関数ＬＸ（ｔ）が以下の式（１０）で表されるように、目標軌道ＴＧＸを決定する。目標軌道決定部４７は、目標軌道ＴＧＹの位置と目標位置ＳＰＹとの偏差の時間変化を示す関数ＬＹ（ｔ）が以下の式（１１）で表されるように、目標軌道ＴＧＹを決定する。目標軌道決定部４７は、目標軌道ＴＧθの位置と目標位置ＳＰθとの偏差の時間変化を示す関数Ｌθ（ｔ）が以下の式（１２）で表されるように、目標軌道ＴＧＸを決定する。
【０１５２】
ＬＸ（ｔ）＝ＬＸｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）＋６（ｔ／Ｔ）２｝］・・・（１０）
ＬＹ（ｔ）＝ＬＹｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）＋６（ｔ／Ｔ）２｝］・・・（１１）
Ｌθ（ｔ）＝Ｌθｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）＋６（ｔ／Ｔ）２｝］・・・（１２）
式（１０）〜（１２）に示されるように、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、必要移動距離ＬＸｍ，ＬＹｍ，Ｌθｍと時刻ｔとを少なくとも説明変数とし、目標位置ＳｐＸ，ＳＰＹ，ＳＰθとの偏差を目的変数とする多次関数である。
【０１５３】
なお、上記の式（１０）〜（１２）に示す関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、５次関数であるが、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、６次以上の多次関数であってもよい。
【０１５４】
最大加速度Ａｍａｘが与えられた場合、軌道時間Ｔは、下記式（１３）〜式（１５）で計算される。なお、式（１０）において、Ｌｍは、ＬＸｍ，ＬＹｍ，Ｌθｍである。
【０１５５】
ｆ（Ａｍａｘ）＝Ｃ１＊Ｌｍ／Ａｍａｘ ・・・（１３）
Ｃ１＝６０Ｃ２（２Ｃ２２−３Ｃ２＋１） ・・・（１４）
Ｃ２＝０．５−３１／２／６ ・・・（１５）
このようにして、目標軌道決定部４７は、計測位置ＰＳａ，ＰＳｂが特定されるたびに、移動機構１００が目標位置ＳＰに到達するまでの間の目標軌道ＴＧＸ，ＴＧＹ，ＴＧθをそれぞれ示す関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を一括して算出する。
【０１５６】
＜４−４．変形例４＞
ワーク２が一定速度で移動している場合、画像処理装置３０４の補正部３２におけるブレ補正の処理に要する時間が短くなる。そのため、移動制御部４１は、カメラ３０２ａ，３０２ｂの露光期間において生成する移動指令ＭＶＸ，ＭＶＹ，ＭＶθを、一定の速度指令とすることが好ましい。
【０１５７】
＜４−５．変形例５＞
一般に、並進および回転の両方のブレによるぼけを除去するブレ補正よりも並進のブレによるぼけのみを除去するブレ補正の方が処理に要する時間が短い。そのため、移動制御部４１は、カメラ３０２ａ，３０２ｂの露光期間において回転移動しないように移動機構１００を制御することが好ましい。つまり、移動制御部４１は、移動機構１００のうち回転移動する機構であるθステージ１１０θとサーボモータ１２０θとを停止させる。具体的には、移動制御部４１は、移動指令ＭＶθが位置指令である場合、露光期間に生成する移動指令ＭＶθを一定値とする。もしくは、移動制御部４１は、移動指令ＭＶθが速度指令である場合、露光期間に生成する移動指令ＭＶθを０とする。
【０１５８】
変形例４と変形例５とを組み合わせることにより、移動機構１００は、カメラ３０２ａ，３０２ｂの露光期間において、等速直線移動する。これにより、補正部３２によるブレ補正の処理に要する時間をさらに短くすることができる。この場合、露光期間におけるマーク５ａの移動軌跡を示す軌跡情報は、露光開始時刻のマーク５ａの位置を始点とし、露光終了時刻のマーク５ａの位置を終点とする移動ベクトルによって示される。同様に、露光期間におけるマーク５ｂの移動軌跡を示す軌跡情報は、露光開始時刻のマーク５ｂの位置を始点とし、露光終了時刻のマーク５ｂの位置を終点とする移動ベクトルによって示される。そのため、推定部４６による軌跡情報の生成に要する時間も短くすることができる。
【０１５９】
＜４−６．その他の変形例＞
上記の説明では、移動機構１００はＸＹθテーブルとした。しかしながら、移動機構１００は、θＸＹテーブル、ＵＶＷテーブル、ＸＹテーブル、ＸＹＺテーブル、多関節ロボットなどであってもよい。
【０１６０】
上記の説明では、ワーク２に設けられたマーク５ａ，５ｂをワーク２の特徴部分として用いて、ワーク２が位置決めされる。しかしながら、ワーク２の他の部分をワーク２の特徴部分として用いて、ワーク２が位置決めされてもよい。たとえば、ワーク２に設けられたネジまたはネジ穴をワーク２の特徴部分として用いてもよい。もしくは、ワーク２の角部をワーク２の特徴部分として用いてもよい。
【０１６１】
上記の説明では、推定部４６，４６Ａは、モーションコントローラ４００，４００Ａにそれぞれ含まれるものとした。しかしながら、推定部４６，４６Ａは、画像処理装置３０４に含まれていてもよい。この場合、画像処理装置３０４に含まれる推定部４６は、移動機構１００からの情報であるエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを取得して、軌跡情報を生成する。もしくは、画像処理装置３０４に含まれる推定部４６は、移動制御部４１によって生成された情報である移動指令ＭＶＸ，ＭＶＹ，ＭＶθを取得して、軌跡情報を生成する。もしくは、画像処理装置３０４に含まれる推定部４６Ａは、移動制御部４１Ａによって生成された、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθを示す情報（関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を取得して、軌跡情報を生成する。
【０１６２】
サーボモータ１２０Ｘ，１２０Ｙ，１２０θは、回転式モータではなく、リニアモータであってもよい。また、エンコーダ１３０は、リニアエンコーダであってもよい。この場合、推定部４６は、モータの駆動量を示す情報として直線軸の位置を示す情報を取得し、取得した情報に基づいて、移動量Δｐを推定すればよい。
【０１６３】
§５  付記
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０１６４】
（構成１）
対象物（２）を移動させる移動機構（１００）を制御して、前記対象物（２）の位置決めを行なう制御システム（１，１Ａ）であって、
前記対象物（２）に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物（２）の特徴部分（５ａ，５ｂ）の位置を特定するための画像処理装置（３０４）と、
前記画像処理装置（３０４）によって特定された前記特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するための移動制御部（４１，４１Ａ）と、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置（３０４）によって特定された前記特徴部分の位置と、前記移動機構（１００）からの情報および前記移動制御部（４１，４１Ａ）によって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分（５ａ，５ｂ）の移動軌跡を推定するための推定部（４６，４６Ａ）とを備え、
前記画像処理装置（３０４）は、前記移動軌跡に基づいて、前記第２の撮像動作によって得られた画像のブレ補正を行なう、制御システム（１，１Ａ）。
【０１６５】
（構成２）
前記移動機構（１００）は、前記対象物（２）を移動させるために駆動されるモータ（１２０Ｘ，１２０Ｙ，１２０θ）を含み、
前記参照情報は、前記第１の撮像動作からの前記モータ（１２０Ｘ，１２０Ｙ，１２０θ）の駆動量を示す情報を含む、構成１に記載の制御システム（１）。
【０１６６】
（構成３）
前記移動制御部（４１）は、制御周期ごとに前記移動機構（１００）に対する移動指令を生成し、
前記参照情報は、前記第１の撮像動作以降に前記移動制御部（４１）によって生成された移動指令を示す情報を含む、構成１に記載の制御システム（１）。
【０１６７】
（構成４）
前記移動制御部（４１Ａ）は、前記目標位置に対する前記画像処理装置（３０４）によって特定された位置の偏差に基づいて前記移動機構（１００）の目標軌道を決定し、決定した前記目標軌道に従って移動するように前記移動機構（１００）を制御し、
前記参照情報は、前記目標軌道を示す情報を含む、構成１に記載の制御システム（１Ａ）。
【０１６８】
（構成５）
前記移動制御部（４１，４１Ａ）は、
制御周期ごとに前記移動機構（１００）に対する速度指令を生成し、
前記露光期間と重なる前記制御周期において、一定の速度指令を生成する、構成１から４のいずれかに記載の制御システム（１，１Ａ）。
【０１６９】
（構成６）
前記移動機構（１００）は、並進移動する第１機構（１１０Ｘ，１１０Ｙ，１２０Ｘ，１２０Ｙ）と、回転移動する第２機構（１１０θ，１２０θ）とを含み、
前記移動制御部（４１，４１Ａ）は、前記露光期間において、前記第２機構（１１０θ，１２０θ）を停止させる、構成１から５のいずれかに記載の制御システム（１，１Ａ）。
【０１７０】
（構成７）
対象物（２）を移動させる移動機構（１００）と、前記対象物（２）に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分（５ａ，５ｂ）の位置を特定するための画像処理装置（３０４）とを制御して、前記対象物（２）の位置決めを行なう制御装置であって、
前記画像処理装置（３０４）によって特定された前記特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するための移動制御部（４１，４１Ａ）と、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置（３０４）によって特定された前記特徴部分の位置と、前記移動機構（１００）からの情報および前記移動制御部（４１，４１Ａ）によって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分（５ａ，５ｂ）の移動軌跡を推定するための推定部（４６，４６Ａ）と、
前記移動軌跡に基づいて前記第２の撮像動作によって得られた画像のブレ補正を行なう前記画像処理装置（３０４）に指示するための指示部（４５）とを備える、制御装置。
【０１７１】
（構成７’）
構成１から６のいずれかの制御システム（１，１Ａ）に用いられる制御装置（４００，４００Ａ）であって、
前記移動制御部（４１，４１Ａ）と、
前記推定部（４６，４６Ａ）と、
前記移動軌跡に基づいて前記第２の撮像動作によって得られた画像のブレ補正を行なう前記画像処理装置（３０４）に指示するための指示部（４５）とを備える、制御装置（４００，４００Ａ）。
【０１７２】
（構成８）
対象物（２）を移動させる移動機構（１００）を制御する制御装置（４００，４００Ａ）からの指示に応じて、前記対象物（２）に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分（５ａ，５ｂ）の位置を特定するための画像処理装置（３０４）であって、
前記制御装置（４００，４００Ａ）は、前記画像処理装置（３０４）によって特定された特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御し、
前記画像処理装置（３０４）は、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置（３０４）によって特定された前記特徴部分の位置と、前記移動機構（１００）からの情報および前記制御装置（４００，４００Ａ）によって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分（５ａ，５ｂ）の移動軌跡を推定するための推定部（４６，４６Ａ）と、
前記移動軌跡に基づいて、前記第２の撮像動作によって得られた画像のブレ補正を行なうための補正部（３２）とを備える、画像処理装置（３０４）。
【０１７３】
（構成８’）
構成１から６のいずれかの制御システム（１，１Ａ）に用いられる画像処理装置（３０４）であって、
前記推定部（４６，４６Ａ）と、
前記移動軌跡に基づいて、前記第２の撮像動作によって得られた画像のブレ補正を行なうための補正部（３２）とを備える、画像処理装置（３０４）。
【０１７４】
（構成９）
対象物（２）を移動させる移動機構（１００）を制御して、前記対象物（２）の位置決めを行なう制御システム（１，１Ａ）をサポートするためのプログラム（４４０）であって、
前記制御システム（１，１Ａ）は、前記対象物（２）に対する撮像周期ごとの撮像動作によって得られる画像を取得し、取得した画像に基づいて、前記対象物の特徴部分（５ａ，５ｂ）の位置を特定するための画像処理装置（３０４）を備え、
コンピュータに、
前記画像処理装置（３０４）によって特定された特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するステップと、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置（３０４）によって特定された前記特徴部分の位置と、前記移動機構（１００）からの情報および前記制御するステップによって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分（５ａ，５ｂ）の移動軌跡を推定するステップと、
前記移動軌跡に基づいて前記第２の撮像動作によって得られた画像のブレ補正を行なう前記画像処理装置（３０４）に指示するステップとを実行させる、プログラム（４４０）。
【０１７５】
（構成９’）
構成１から６のいずれかの制御システム（１，１Ａ）をサポートするためのプログラムであって、
コンピュータに、
前記画像処理装置（３０４）によって特定された位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するステップと、
第１の撮像動作によって得られた画像に基づいて前記画像処理装置（３０４）によって特定された前記特徴部分の位置と、前記移動機構（１００）からの情報および前記制御するステップによって生成される情報の少なくとも一方を含む参照情報とに基づいて、前記第１の撮像動作の次の第２の撮像動作における露光期間中の前記特徴部分（５ａ，５ｂ）の移動軌跡を推定するステップと、
前記移動軌跡に基づいて前記第２の撮像動作によって得られた画像のブレ補正を行なう前記画像処理装置（３０４）に指示するステップとを実行させる、プログラム。
【０１７６】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
【符号の説明】
【０１７７】
１，１Ａ  制御システム、２  ワーク、４  露光マスク、５ａ，５ｂ  マーク、３２  補正部、３４  位置特定部、４１，４１Ａ  移動制御部、４２  位置決定部、４３  減算部、４４，４４Ａ  演算部、４５  指示部、４６，４６Ａ  推定部、４７  目標軌道決定部、１００  移動機構、１１０Ｘ  Ｘステージ、１１０Ｙ  Ｙステージ、１１０θ  θステージ、１２０Ｘ，１２０Ｙ，１２０θ  サーボモータ、１３０  エンコーダ、２００  ドライバユニット、２００Ｘ，２００Ｙ，２００θ  サーボドライバ、３００  視覚センサ、３０２ａ，３０２ｂ  カメラ、３０４  画像処理装置、３１０，４１４  プロセッサ、３１２  ＲＡＭ、３１４  表示コントローラ、３１６  システムコントローラ、３１８  Ｉ／Ｏコントローラ、３２０  ハードディスク、３２２  カメラインターフェイス、３２２ａ，３２２ｂ  画像バッファ、３２４  入力インターフェイス、３２６  モーションコントローラインターフェイス、３２８，４２８  通信インターフェイス、３３０，４２２  メモリカードインターフェイス、３３２  表示部、３３４  キーボード、３３６  メモリカード、３５０，４４０  制御プログラム、４００，４００Ａ  モーションコントローラ、４１２  チップセット、４１６  不揮発性メモリ、４１８  主メモリ、４２０  システムクロック、４２４  記録媒体、４３０  内部バスコントローラ、４３２  ＤＭＡ制御回路、４３４  内部バス制御回路、４３６  バッファメモリ、４３８  フィールドバスコントローラ。
【図１】
2019215635.tif 000005
【図２】
2019215635.tif 000006
【図３】
2019215635.tif 000007
【図４】
2019215635.tif 000008
【図５】
2019215635.tif 000009
【図６】
2019215635.tif 000010
【図７】
2019215635.tif 000011
【図８】
2019215635.tif 000012
【図９】
2019215635.tif 000013
【図１０】
2019215635.tif 000014