(57)【要約】【課題】対象物の位置決め精度の低下を抑制できる制御システムを提供する。【解決手段】制御システムは、視覚センサと、移動制御部と、推定部と、撮像制御部とを備える。推定部は、最新の撮像タイミングで撮像された画像から視覚センサによって特定された特徴部分の最新の位置と、移動機構からの情報および移動制御部によって生成される情報の少なくとも一方を含む参照情報とに基づいて、次の撮像予定タイミングにおける特徴部分の移動速度を推定する。撮像制御部は、移動速度が閾値未満である場合に撮像予定タイミングで撮像させ、移動速度が閾値を超える場合に撮像予定タイミングで撮像させないように、視覚センサを制御する。【選択図】図６
2019215634.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）制御回路４３２と、内部バス制御回路４３４とを含む。
【００５３】
メモリカードインターフェイス４２２は、モーションコントローラ４００に対して着脱可能な記録媒体４２４とプロセッサ４１４とを接続する。
【００５４】
フィールドバスコントローラ４３８は、フィールドネットワークに接続するための通信インターフェイスである。モーションコントローラ４００は、フィールドバスコントローラ４３８を介してサーボドライバ２００Ｘ，２００Ｙ，２００θと接続される。当該フィールドネットワークには、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが採用される。
【００５５】
＜２−３．画像処理装置の機能構成＞
図４は、図１に示される制御システムの機能構成を示すブロック図である。図４に示されるように、画像処理装置３０４は、画像取得部３２と、位置特定部３４とを含む。
【００５６】
画像取得部３２は、モーションコントローラ４００から撮像トリガＴＲを受けると、撮像するようにカメラ３０２ａ，３０２ｂを制御し、カメラ３０２ａ，３０２ｂから所定サイズの画像を取得する。
【００５７】
位置特定部３４は、カメラ３０２ａによって撮像された画像に含まれるマーク５ａの位置（以下、「計測位置ＰＳａ」という）を特定する。位置特定部３４は、カメラ３０２ｂによって撮像された画像に含まれるマーク５ｂの位置（以下、「計測位置ＰＳｂ」という）を特定する。位置特定部３４は、公知のパターン認識技術を用いて、画像の中からマーク５ａ，５ｂを認識し、認識したマーク５ａ，５ｂの座標を計測する。当該座標は、カメラ３０２ａ，３０２ｂ各々のローカル座標系で示される。位置特定部３４は、特定したマーク５ａの計測位置ＰＳａの座標と、特定したマーク５ｂの計測位置ＰＳｂの座標とをモーションコントローラ４００に出力する。
【００５８】
＜２−４．モーションコントローラの機能構成＞
図４に示されるように、モーションコントローラ４００は、移動制御部４１と、推定部４５と、撮像制御部４６とを備える。移動制御部４１と推定部４５と撮像制御部４６とは、図３に示すプロセッサ４１４が制御プログラム４４０を実行することにより実現される。
【００５９】
また、図４に示されるように、移動機構１００はエンコーダ１３０を含む。エンコーダ１３０は、サーボモータ１２０Ｘ，１２０Ｙ，１２０θの移動量に応じたパルス信号をそれぞれ発生する。エンコーダ１３０は、サーボモータ１２０Ｘに対応するパルス信号に含まれるパルス数をカウントすることにより、初期位置からのＸステージ１１０ＸのＸ方向の並進移動量をエンコーダ値ＰＶｍＸとして計測する。パルス数のカウント値と移動量とは、所定の係数によって関係付けられる。そのため、エンコーダ１３０は、パルス数のカウント値に当該係数を乗ずることにより、移動量を計測できる。同様に、エンコーダ１３０は、初期位置からのＹステージ１１０ＹのＹ方向の並進移動量をエンコーダ値ＰＶｍＹとして計測するとともに、初期位置からのθステージ１１０θの回転移動量をエンコーダ値ＰＶｍθとして計測する。エンコーダ１３０は、制御周期Ｔｓと同じ周期で、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを計測して出力する。
【００６０】
＜２−４−１．移動制御部＞
移動制御部４１は、視覚センサ３００によって特定された、マーク５ａの最新の計測位置ＰＳａおよびマーク５ｂの最新の計測位置ＰＳｂに基づいて、ワーク２の位置が目標位置ＳＰに近づくように移動機構１００を制御する。
【００６１】
ワーク２の目標位置ＳＰは、生産工程ごとに予め決められている。たとえば、マーク５ａとマーク５ｂとの中点が予め定められた座標に位置し、かつ、マーク５ａとマーク５ｂとを結ぶ直線とＸ軸またはＹ軸とのなす角度が予め定められた角度となるようなワーク２の位置が目標位置ＳＰとして設定される。
【００６２】
もしくは、カメラ３０２ａ，３０２ｂは、ワーク２のマーク５ａ，５ｂと合わせて、露光マスク４（図１参照）に設けられた２つの目標マークも撮像してもよい。この場合、撮像された画像に含まれる当該２つの目標マークの位置に応じて目標位置ＳＰが設定される。たとえば、マーク５ａが２つの目標マークの一方と一致し、かつ、マーク５ｂが２つの目標マークの他方と一致するようなワーク２の位置が目標位置ＳＰとして設定される。
【００６３】
移動制御部４１は、視覚センサ３００によって特定されたマーク５ａの最新の計測位置ＰＳａおよびマーク５ｂの最新の計測位置ＰＳｂに基づいて、ワーク２の位置を目標位置ＳＰに近づけるための移動指令を生成する。
【００６４】
計測位置ＰＳａ，ＰＳｂが特定される周期は、最短でも撮像周期Ｔｂである。一方、移動指令は、制御周期Ｔｓごとに生成される。一例として、撮像周期Ｔｂは、たとえば約６０ｍｓであり、制御周期Ｔｓは、たとえば１ｍｓである。このように、撮像周期Ｔｂは、制御周期Ｔｓよりも長い。そのため、視覚センサ３００によって特定された計測位置ＰＳａ，ＰＳｂのみを用いて移動機構１００が制御されると、オーバシュートおよび振動が生じやすくなる。このようなオーバシュートおよび振動を避けるため、移動制御部４１は、計測位置ＰＳａ，ＰＳｂと、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθとを用いて、ワーク２の推定位置ＰＶを決定し、推定位置ＰＶに基づいて制御指令を生成する。過去に検出されたエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθは、モーションコントローラ４００の記憶部（たとえば不揮発性メモリ４１６または主メモリ４１８（図３参照））に記憶される。
【００６５】
図４に示されるように、移動制御部４１は、位置決定部４２と、減算部４３と、演算部４４とを含む。
【００６６】
位置決定部４２は、視覚センサ３００によって特定されたマーク５ａの最新の計測位置ＰＳａおよびマーク５ｂの最新の計測位置ＰＳｂとエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθとに基づいて、ワーク２の推定位置ＰＶを制御周期Ｔｓごとに決定する。推定位置ＰＶの決定方法の詳細については、後述する動作例において説明する。
【００６７】
減算部４３は、目標位置ＳＰに対する推定位置ＰＶの偏差を出力する。演算部４４は、目標位置ＳＰに対する推定位置ＰＶの偏差が０に収束するように演算（たとえばＰ演算、ＰＩＤ演算など）を行ない、制御周期Ｔｓごとに移動指令ＭＶＸ、ＭＶＹ，ＭＶθを算出する。移動指令ＭＶＸは、Ｘステージ１１０Ｘに対する移動指令である。移動指令ＭＶＹは、Ｙステージ１１０Ｙに対する移動指令である。移動指令ＭＶθは、θステージ１１０θに対する移動指令である。演算部４４は、算出した移動指令ＭＶＸ、ＭＶＹ，ＭＶθをサーボドライバ２００Ｘ，２００Ｙ，２００θにぞれぞれ出力する。移動指令ＭＶＸ、ＭＶＹ，ＭＶθは、位置指令または速度指令である。
【００６８】
＜２−４−２．推定部＞
推定部４５は、最新の計測位置ＰＳａ，ＰＳｂと、移動制御部４１によって生成される移動指令ＭＶＸ，ＭＶＹ，ＭＶθとに基づいて、次の撮像予定タイミングｔｋにおける画像上の、マーク５ａの移動速度Ｖａとマーク５ｂの移動速度Ｖｂとを推定する。撮像予定タイミングｔｋは、撮像周期Ｔｂに従って予め定められる。推定部４５は、撮像予定タイミングｔｋよりも制御周期Ｔｓのｑ倍（ｑは、１以上の整数である）の期間だけ前の第１中間タイミングｔｍ１において、移動速度Ｖａ，Ｖｂを推定する。制御周期Ｔｓのｑ倍が撮像周期Ｔｂよりも十分に小さくなるように、ｑは予め定められる。ｑは、たとえば１、２または３である。以下、推定部４５の具体的な処理方法について説明する。
【００６９】
まず、推定部４５は、視覚センサ３００がワーク２を撮像した最新の撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの間のワーク２の移動量Δｐ１＝（ΔＸ１，ΔＹ１，Δθ１）を推定する。ΔＸ１は、Ｘステージ１１０ＸのＸ方向の並進移動量を示す。ΔＹ１は、Ｙステージ１１０ＹのＹ方向の並進移動量を示す。Δθ１は、θステージ１１０θの回転移動量を示す。
【００７０】
なお、撮像タイミングｔ（ｋ−１）から次の撮像予定タイミングｔｋまでの期間は、撮像周期Ｔｂと一致する場合もあれば、撮像周期Ｔｂの２以上の整数倍の期間と一致する場合もある。撮像予定タイミングにおいて撮像を中止するように視覚センサ３００が制御される場合があるからである。
【００７１】
図５は、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの間のワーク２の移動量を推定する方法を説明する図である。図５に示されるように、推定部４５は、撮像タイミングｔ（ｋ−１）におけるエンコーダ値ＰＶｍ（ｋ−１）と第１中間タイミングｔｍ１におけるエンコーダ値ＰＶｍ（ｍ１）とに基づいて、移動量Δｐ１を推定する。なお、タイミングｔｉにおけるＰＶｍ（ｉ）は、（ＰＶｍθ（ｉ），ＰＶｍＸ（ｉ），ＰＶｍＹ（ｉ））で表される。ＰＶｍθ（ｉ），ＰＶｍＸ（ｉ），ＰＶｍＹ（ｉ）は、それぞれタイミングｔｉにおいてエンコーダ１３０から出力されるエンコーダ値ＰＶｍθ，ＰＶｍＸ，ＰＶｍＹである。もしくは、タイミングｔｉとエンコーダ１３０の検出時刻とがずれている場合、ＰＶｍＸ（ｉ）は、タイミングｔｉに近接する２つの検出時刻にエンコーダ１３０から出力されるエンコーダ値ＰＶｍＸの内挿補間値である。同様に、ＰＶｍＹ（ｊ）は、時刻ｔｊに近接する２つの検出時刻にエンコーダ１３０から出力されるエンコーダ値ＰＶｍＹの内挿補間値である。ＰＶｍθ（ｊ）は、時刻ｔｊに近接する２つの検出時刻にエンコーダ１３０から出力されるエンコーダ値ＰＶｍθの内挿補間値である。内挿補間値の算出方法については後述する。
【００７２】
推定部４５は、撮像タイミングｔ（ｋ−１）におけるエンコーダ値ＰＶｍ（ｋ−１）と第１中間タイミングｔｍ１におけるエンコーダ値ＰＶｍ（ｍ１）との差を、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１まで間のワーク２の移動量Δｐ１として推定する。つまり、推定部４５は、以下の式（１）に従って、移動量Δｐ１を推定する。
【００７３】
Δｐ１＝（ΔＸ１，ΔＹ１，Δθ１）
＝（ＰＶｍＸ（ｍ１）−ＰＶｍＸ（ｋ−１），ＰＶｍＹ（ｍ１）−ＰＶｍＹ（ｋ−１），ＰＶｍθ（ｍ１）−ＰＶｍθ（ｋ−１））  ・・・式（１）。
【００７４】
次に、推定部４５は、第１中間タイミングｔｍ１における、マーク５ａの位置（以下、「推定位置ＰＭ１ａ」という）およびマーク５ｂの位置（以下、「推定位置ＰＭ１ｂ」という）を推定する。まず、推定位置ＰＭ１ａの推定方法について説明する。
【００７５】
推定部４５は、画像処理装置３０４から受けた計測位置ＰＳａの座標（カメラ３０２ａのローカル座標系）をワールド座標系（移動機構１００の機械座標系）の座標に変換する。推定部４５は、カメラ３０２ａのローカル座標系とワールド座標系とを対応付ける第１キャリブレーションデータを用いて、ワールド座標系における計測位置ＰＳａのＸＹ座標（ｘｓａ，ｙｓａ）を求める。
【００７６】
推定部４５は、移動量Δｐ１＝（ΔＸ１，ΔＹ１，Δθ１）だけワーク２が移動したときの計測位置ＰＳａから推定位置ＰＭ１ａへの変換式を用いて、ワールド座標系における推定位置ＰＭ１ａの座標を求める。変換式は、以下の式（２）に示される。
【００７７】
Ｓａ’＝Ｔ（Ｒａ（Ｓａ））  ・・・式（２）
式（２）において、Ｓａは、ワールド座標系における計測位置ＰＳａのＸ座標ｘｓａおよびＹ座標ｙｓａの転置行列である（ｘｓａ，ｙｓａ）Ｔを示す。Ｒａ（  ）は、回転移動に対応する変換式を示し、θステージ１１０θの回転中心と計測位置ＰＳａとの距離と、撮像タイミングｔ（ｋ−１）からのθステージ１１０θの回転移動量とに基づいて定められる。ここでは、回転移動量としてΔθ１が用いられる。Ｔ（  ）は、並進移動に対応する変換式を示し、撮像タイミングｔ（ｋ−１）からの、Ｘステージ１１０ＸおよびＹステージ１１０Ｙの並進移動量に応じて定められる。ここでは、並進移動量としてΔＸ１およびΔＹ１が用いられる。Ｓａ’は、ワーク２を移動量Δｐ１だけ移動させたときの、ワールド座標系におけるマーク５ａの位置のＸ座標，Ｙ座標の転置行列を示す。ここでは、Ｓａ’は、推定位置ＰＭ１ａのＸ座標ｘｍ１ａおよびＹ座標ｙｍ１ａの転置行列である（ｘｍ１ａ，ｙｍ１ａ）Ｔを示す。
【００７８】
推定部４５は、第１キャリブレーションデータを用いて、ワールド座標系における推定位置ＰＭ１ａの座標をカメラ３０２ａに対応するローカル座標系の座標に逆変換する。これにより、推定部４５は、ローカル座標系における推定位置ＰＭ１ａの座標を得ることができる。
【００７９】
同様の方法により、推定部４５は、第１中間タイミングｔｍ１におけるマーク５ｂの推定位置ＰＭ１ｂを予測する。つまり、推定部４５は、画像処理装置３０４から受けた計測位置ＰＳｂの座標（カメラ３０２ｂのローカル座標系）をワールド座標系の座標に変換する。推定部４５は、カメラ３０２ｂのローカル座標系とワールド座標系とを対応付ける第２キャリブレーションデータを用いて、ワールド座標系における計測位置ＰＳｂのＸＹ座標（ｘｓｂ，ｙｓｂ）を求める。
【００８０】
推定部４５は、移動量Δｐ１＝（ΔＸ１，ΔＹ１，Δθ１）だけワーク２が移動したときの計測位置ＰＳｂから推定位置ＰＭ１ｂへの変換式を用いて、ワールド座標系における推定位置ＰＭ１ｂの座標を求める。変換式は、以下の式（３）に示される。
【００８１】
Ｓｂ’＝Ｔ（Ｒｂ（Ｓｂ））  ・・・式（３）
式（３）において、Ｓｂは、ワールド座標系における計測位置ＰＳｂのＸ座標ｘｓｂおよびＹ座標ｙｓｂの転置行列である（ｘｓｂ，ｙｓｂ）Ｔを示す。Ｒｂ（  ）は、回転移動に対応する変換式を示し、θステージ１１０θの回転中心と計測位置ＰＳｂとの距離と、撮像タイミングｔ（ｋ−１）からのθステージ１１０θの回転移動量とに基づいて定められる。ここでは、回転移動量としてΔθ１が用いられる。Ｔ（  ）は、並進移動に対応する変換式を示し、撮像タイミングｔ（ｋ−１）からの、Ｘステージ１１０ＸおよびＹステージ１１０Ｙの並進移動量と応じて定められる。ここでは、並進移動量としてΔＸ１およびΔＹ１が用いられる。Ｓｂ’は、ワーク２を移動量Δｐ１だけ移動させたときの、ワールド座標系におけるマーク５ｂの位置のＸ座標，Ｙ座標の転置行列を示す。ここでは、Ｓｂ’は、推定位置ＰＭ１ｂのＸ座標ｘｍ１ｂおよびＹ座標ｙｍ１ｂの転置行列である（ｘｍ１ｂ，ｙｍ１ｂ）Ｔを示す。
【００８２】
推定部４５は、第２キャリブレーションデータを用いて、ワールド座標系における推定位置ＰＭ１ｂの座標をカメラ３０２ｂに対応するローカル座標系の座標に逆変換する。これにより、推定部４５は、ローカル座標系における推定位置ＰＭ１ｂの座標を得ることができる。
【００８３】
第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの期間は、制御周期Ｔｓの１〜数倍である。そのため、当該期間において移動指令の変化量はわずかである。すなわち、第１中間タイミングｔｍ１における移動指令が撮像予定タイミングｔｋまで継続されるとみなしてもよい。
【００８４】
そのため、推定部４５は、第１中間タイミングｔｍ１におけるマーク５ａの推定位置ＰＭ１ａのＸ座標，Ｙ座標を上記の式（２）のＳａに代入することにより、撮像予定タイミングｔｋにおける位置（以下、「予測位置ＰＥａ」という）を予測する。この場合、式（２）におけるＲａ（  ）は、θステージ１１０θの回転中心と第１中間タイミングｔｍ１における推定位置ＰＭ１ａとの距離と、第１中間タイミングｔｍ１における移動指令ＭＶθと、第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの時間とに基づいて定められる。Ｔ（  ）は、第１中間タイミングｔｍ１における移動指令ＭＶＸ，ＭＶＹと、第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの時間とに応じて定められる。
【００８５】
推定部４５は、第１キャリブレーションデータを用いて、ワールド座標系における予測位置ＰＥａの座標をカメラ３０２ａに対応するローカル座標系の座標に逆変換する。これにより、推定部４５は、ローカル座標系における予測位置ＰＥａの座標を得ることができる。
【００８６】
同様に、推定部４５は、第１中間タイミングｔｍ１におけるマーク５ｂの推定位置ＰＭ１ｂのＸ座標，Ｙ座標を上記の式（３）のＳｂに代入することにより、撮像予定タイミングｔｋにおける位置（以下、「予測位置ＰＥｂ」という）を予測する。この場合、式（３）におけるＲａ（  ）は、θステージ１１０θの回転中心と第１中間タイミングｔｍ１における推定位置ＰＭ１ｂとの距離と、第１中間タイミングｔｍ１における移動指令ＭＶθと、第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの時間とに基づいて定められる。Ｔ（  ）は、第１中間タイミングｔｍ１における移動指令ＭＶＸ，ＭＶＹと、第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの時間とに応じて定められる。
【００８７】
推定部４５は、第２キャリブレーションデータを用いて、ワールド座標系における予測位置ＰＥｂの座標をカメラ３０２ｂに対応するローカル座標系の座標に逆変換する。これにより、推定部４５は、ローカル座標系における予測位置ＰＥｂの座標を得ることができる。
【００８８】
推定部４５は、以下の式（４）（５）に従って、撮像予定タイミングｔｋにおける画像上の、マーク５ａの移動速度Ｖａおよびマーク５ｂの移動速度Ｖｂを推定する。
【００８９】
Ｖａ＝（ＰＥａ−ＰＭ１ａ）／（ｔｋ−ｔｍ１）  ・・・式（４）
Ｖｂ＝（ＰＥｂ−ＰＭ１ｂ）／（ｔｋ−ｔｍ１）  ・・・式（５）
式（４）において、「ＰＥａ−ＰＭ１ａ」は、予測位置ＰＥａと推定位置ＰＭ１ａとの距離を示し、予測位置ＰＥａと推定位置ＰＭ１ａとのローカル座標系におけるＸ座標，Ｙ座標に基づいて算出される。式（５）において、「ＰＥｂ−ＰＭ１ｂ」は、予測位置ＰＥｂと推定位置ＰＭ１ｂとの距離を示し、予測位置ＰＥｂと推定位置ＰＭ１ｂとのローカル座標系におけるＸ座標，Ｙ座標に基づいて算出される。「ｔｋ−ｔｍ１」は、第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの時間を示す。
【００９０】
このようにして、推定部４５は、次の撮像予定タイミングｔｋよりも前の第１中間タイミングｔｍ１において、撮像予定タイミングｔｋにおける画像上のマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂをそれぞれ推定する。
【００９１】
＜２−４−３．撮像制御部＞
撮像制御部４６は、視覚センサ３００の動作を制御する。撮像制御部４６は、上位の制御装置から位置決め処理の開始指示を受けると、撮像周期Ｔｂに従って、撮像トリガＴＲ（撮像指示）を画像処理装置３０４に出力する。具体的には、撮像制御部４６は、位置決め処理の開始指示を受けると、１回目の撮像トリガＴＲを出力する。その後、撮像制御部４６は、撮像周期Ｔｂだけ経過するたびに、２回目以降の撮像トリガＴＲを出力する。
【００９２】
ただし、撮像制御部４６は、推定部４５によって推定された移動速度Ｖａ，Ｖｂに基づいて、撮像トリガＴＲの出力の可否を判断する。撮像制御部４６は、移動速度Ｖａ，Ｖｂが予め定められた閾値Ｔｈ１未満である場合に次の撮像予定タイミングｔｋで撮像トリガＴＲを出力し、移動速度Ｖａ，Ｖｂの少なくとも一方が閾値Ｔｈ１を超える場合に撮像予定タイミングｔｋで撮像トリガＴＲを出力しない。すなわち、撮像制御部４６は、移動速度Ｖａ，Ｖｂが閾値Ｔｈ１未満である場合に撮像予定タイミングｔｋで撮像させ、移動速度Ｖａ，Ｖｂの少なくとも一方が閾値Ｔｈ１を超える場合に撮像予定タイミングｔｋで撮像させないように、視覚センサ３００を制御する。
【００９３】
閾値Ｔｈ１は、画像ブレによるぼけに起因する計測位置ＰＳａ，ＰＳｂの計測誤差の許容上限値に応じて、実験的または理論的に定められる。すなわち、許容上限値の計測誤差が生じるときの、画像上のマーク５ａ，５ｂの移動速度が閾値Ｔｈ１として予め定められる。
【００９４】
§３  動作例
＜３−１．制御システムの位置決め処理の流れ＞
図６を参照して、制御システム１の位置決め処理の流れの一例について説明する。図６は、制御システムの位置決め処理の流れの一例を示すフローチャートである。
【００９５】
まずステップＳ１において、モーションコントローラ４００は、推定位置ＰＶおよびエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを初期化する。次に、ワーク２が移動機構１００上に載置されると、撮像制御部４６は、画像処理装置３０４に対して１回目の撮像トリガＴＲを出力する。これにより、ステップＳ２において、カメラ３０２ａ，３０２ｂは、移動機構１００が停止した状態で、ワーク２を撮像する。
【００９６】
次にステップＳ３において、画像処理装置３０４は、カメラ３０２ａによって撮像された画像に含まれるマーク５ａの計測位置ＰＳａと、カメラ３０２ｂによって撮像された画像に含まれるマーク５ｂの計測位置ＰＳｂとを特定する。次にステップＳ４において、移動制御部４１は、移動機構１００の移動制御を開始する。
【００９７】
次にステップＳ５において、移動制御部４１は、目標位置ＳＰに対する推定位置ＰＶの偏差が閾値Ｔｈ２未満か否かを判断する。閾値Ｔｈ２は、要求される位置決め精度に応じて予め定められる。目標位置ＳＰに対する推定位置ＰＶの偏差が閾値Ｔｈ２未満である場合（ステップＳ５でＹＥＳ）、移動制御部４１は、移動機構１００の移動制御を終了する。これにより、位置決め処理が終了する。
【００９８】
目標位置ＳＰに対する推定位置ＰＶの偏差が閾値Ｔｈ２未満でない場合（ステップＳ５でＮＯ）、ステップＳ６〜ステップＳ１２の処理が撮像周期Ｔｂごとに繰り返される。なお、ステップＳ６〜Ｓ１２の間にも、移動制御部４１による移動制御が並行して実行される。
【００９９】
ステップＳ６において、推定部４５は、現時刻が次の撮像予定タイミングｔｋより制御周期Ｔｓのｑ倍前の第１中間タイミングｔｍ１であるか否かを判断する。現時刻が第１中間タイミングｔｍ１でない場合（ステップＳ６でＮＯ）、処理はステップＳ５に戻る。
【０１００】
現時刻が第１中間タイミングｔｍ１である場合（ステップＳ６でＹＥＳ）、ステップＳ７において、推定部４５は、撮像予定タイミングｔｋにおける画像上のマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂをそれぞれ推定する。
【０１０１】
次にステップＳ８において、撮像制御部４６は、移動速度Ｖａ，Ｖｂが閾値Ｔｈ１未満であるが否かを判断する。
【０１０２】
移動速度Ｖａ，Ｖｂが閾値Ｔｈ１未満である場合（ステップＳ８でＹＥＳ）、撮像制御部４６は、撮像予定タイミングｔｋにおいて、撮像トリガＴＲを画像処理装置３０４に出力する（ステップＳ９）。ステップＳ１０において、画像処理装置３０４の画像取得部３２は、撮像するようにカメラ３０２ａ，３０２ｂを制御し、カメラ３０２ａ，３０２ｂによって撮像された画像を取得する。ステップＳ１１において、位置特定部３４は、画像に含まれるマーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂをそれぞれ特定する。
【０１０３】
次にステップＳ１２において、次の撮像予定タイミングが更新される。具体的には、モーションコントローラ４００は、更新前の撮像予定タイミングｔｋから撮像周期Ｔｂだけ経過した時刻を次の撮像予定タイミングｔｋとして設定する。ステップＳ１２の後、処理はステップＳ５に戻る。
【０１０４】
移動速度Ｖａ，Ｖｂの少なくとも一方が閾値Ｔｈ１以上である場合も（ステップＳ８でＮＯ）、処理はステップＳ１２に移る。すなわち、更新前の撮像予定タイミングｔｋにおいて、撮像トリガＴＲが出力されず、視覚センサ３００は、ワーク２を撮像しない。
【０１０５】
＜３−２．移動制御部の処理＞
図７は、移動制御部による移動機構の制御処理の流れの一例を示すフローチャートである。まずステップＳ２１において、位置決定部４２は、画像処理装置３０４によって特定された最新の計測位置ＰＳａ，ＰＳｂを取得する。位置決定部４２は、上記の第１キャリブレーションデータ，第２キャリブレーションデータを用いて、画像処理装置３０４から受けた計測位置ＰＳａ，ＰＳｂの座標（ローカル座標系）をワールド座標系の座標にそれぞれ変換する。
【０１０６】
ステップＳ２２において、位置決定部４２は、最新の撮像時刻を取得する。位置決定部４２は、たとえば、最新の撮像トリガＴＲが出力された時刻を撮像時刻として取得する。もしくは、撮像トリガＴＲが出力されてからカメラ３０２ａ，３０２ｂが露光開始するまでの遅延時間を考慮して、位置決定部４２は、撮像トリガＴＲが出力された時刻から遅延時間だけ経過した時刻を撮像時刻として取得してもよい。
【０１０７】
次にステップＳ２３において、位置決定部４２は、撮像時刻に近い複数の時刻のエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを取得する。
【０１０８】
次にステップＳ２４において、位置決定部４２は、複数の時刻のエンコーダ値ＰＶｍＸの内挿補間値を算出し、当該内挿補間値を撮像時刻のエンコーダ値ＰＶｍｓＸとする。同様に、位置決定部４２は、複数の時刻のエンコーダ値ＰＶｍＹの内挿補間値を算出し、当該内挿補間値を撮像時刻のエンコーダ値ＰＶｍｓＹとする。位置決定部４２は、複数の時刻のエンコーダ値ＰＶｍθの内挿補間値を算出し、当該内挿補間値を撮像時刻のエンコーダ値ＰＶｍｓθとする。
【０１０９】
具体的には、位置決定部４２は、以下のようにして内挿補間値を算出する。検出時刻ｔ（ｎ）においてエンコーダ１３０によって検出されたエンコーダ値ＰＶｍＸをエンコーダ値ＰＶｍＸ（ｎ）とする。位置決定部４２は、撮像時刻ｔｖｉに近接する２つの時刻、例えば、時間軸上で、撮像時刻ｔｖｉを挟む検出時刻ｔ（ｎ−ｋ）と検出時刻ｔ（ｎ−ｋ＋１）とを特定する。
【０１１０】
位置決定部４２は、検出時刻ｔ（ｎ−ｋ）のエンコーダ値ＰＶｍＸ（ｎ−ｋ）と、検出時刻ｔ（ｎ−ｋ＋１）のエンコーダ値ＰＶｍＸ（ｎ−ｋ＋１）とを取得する。
【０１１１】
位置決定部４２は、エンコーダ値ＰＶｍＸ（ｎ−ｋ）とエンコーダ値ＰＶｍＸ（ｎ−ｋ＋１）との内挿補間値を用いて、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＸ（ｖｉ）を算出する。具体的には、位置決定部４２は、次の式（６）を用いて、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＸ（ｖｉ）を算出する。
【０１１２】
ＰＶｍｓＸ（ｖｉ）＝ＰＶｍＸ（ｎ−ｋ）＋Ｋｋ＊（ＰＶｍＸ（ｎ−ｋ＋１）−ＰＶｍＸ（ｎ−ｋ））  ・・・（６）
ここで、Ｋｋは、内挿補間係数である。制御周期をＴｓとし、エンコーダ値ＰＶｍＸの伝送遅延時間をＴｅｄとし、撮像トリガＴＲの伝送遅延時間をＴｓｄとして、Ｔｓ−Ｔｅｄ≦Ｔｓｄ＜２Ｔｓ−Ｔｅｄの場合、内挿補間係数Ｋｋは、次の式（７）を用いて算出される。
【０１１３】
Ｋｋ＝｛Ｔｓｄ−（Ｔｓ−Ｔｅｄ）｝／Ｔｓ  ・・・（７）
このような内挿補間値の算出方法を用いることによって、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＸ（ｖｉ）を高精度に算出できる。同様にして、撮像時刻ｔｖｉのエンコーダ値ＰＶｍｓＹ（ｖｉ），ＰＶｍｓθ（ｖｉ）が算出される。なお、撮像時刻がエンコーダ値の算出時刻と一致する場合には、このエンコーダ値をそのまま用いればよい。
【０１１４】
次にステップＳ２５において、位置決定部４２は、最新の計測位置ＰＳａ，ＰＳａと、撮像時刻以後のエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθと、撮像時刻のエンコーダ値ＰＶｍｓＸ，ＰＶｍｓＹ，ＰＶｍｓθとを用いて、推定位置ＰＶを算出する。
【０１１５】
具体的には、Ｘ方向に（ＰＶｍＸ−ＰＶｍｓＸ）だけ並進移動し、Ｙ方向に（ＰＶｍＹ−ＰＶｍｓＹ）だけ並進移動し、（ＰＶｍθ−ＰＶｍｓθ）だけ回転移動するときのアフィン変換式に計測位置ＰＳａを入力し、アフィン変換後の位置ＰＳｗａが算出される。同様に、当該アフィン変換式に計測位置ＰＳｂを入力し、アフィン変換後の位置ＰＳｗｂが算出される。位置決定部４２は、マーク５ａが位置ＰＳｗａに位置し、マーク５ｂが位置ＰＳｗｂに位置するときのワーク２の位置を推定位置ＰＶとして決定する。つまり、位置決定部４２は、位置ＰＳｗａと位置ＰＳｗｂとの中点の座標と、位置ＰＳｗａと位置ＰＳｗｂとを結ぶ直線とＸ軸またはＹ軸とのなす角度とを、推定位置ＰＶを特定する情報として算出する。
【０１１６】
次にステップＳ２６において、演算部４４は、目標位置ＳＰに対する推定位置ＰＶの偏差に基づいて、たとえばＰ演算により、移動指令ＭＶＸ，ＭＶＹ，ＭＶθを生成して、サーボドライバ２００Ｘ，２００Ｙ，２００θにそれぞれ出力する。
【０１１７】
このような処理を実行することによって、モーションコントローラ４００は、画像処理による高精度な計測位置ＰＳａ，ＰＳｂが入力される時刻には、この高精度な計測位置ＰＳａ，ＰＳｂを用いて推定位置ＰＶを算出し、高精度な位置決め制御を実現できる。ここで、計測位置ＰＳａ，ＰＳｂが入力される時間間隔は、撮像周期Ｔｂであり、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθが入力される制御周期Ｔｓに比べて長い。しかしながら、時間軸上で隣り合う計測位置ＰＳａ，ＰＳｂの入力時刻間において、位置決定部４２は、入力周期が短いエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθの入力時刻毎に、推定位置ＰＶを決定して、移動機構１００の移動制御を行う。これにより、高精度且つ短周期の位置決め制御が可能になる。さらに、位置決定部４２は、上述の簡単な四則演算を用いる処理を行なう。そのため、簡素な構成および処理による高速且つ高精度な位置決めを実現できる。
【０１１８】
＜３−３．作用・効果＞
以上のように、制御システム１は、視覚センサ３００と、移動制御部４１と、推定部４５と、撮像制御部４６とを備える。視覚センサ３００は、ワーク２を撮像タイミングごとに撮像することにより画像を取得し、画像に基づいて、ワーク２のマーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂをそれぞれ特定する。移動制御部４１は、視覚センサ３００によって特定された計測位置ＰＳａ，ＰＳｂに基づいて、ワーク２の位置が目標位置に近づくように移動機構１００を制御する。推定部４５は、最新の撮像タイミングｔ（ｋ−１）で撮像された画像から特定された最新の計測位置ＰＳａ，ＰＳｂと、参照情報とに基づいて、次の撮像予定タイミングｔｋにおけるマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂをそれぞれ推定する。参照情報は、移動機構１００からの情報および移動制御部４１によって生成される情報を含む。撮像制御部４６は、移動速度Ｖａ，Ｖｂが閾値Ｔｈ１未満である場合に撮像予定タイミングｔｋで撮像させ、移動速度Ｖａ，Ｖｂが閾値Ｔｈ１を超える場合に撮像予定タイミングｔｋで撮像させないように、視覚センサ３００を制御する。
【０１１９】
これにより、画像ブレ量の大きい画像の撮像を回避することができ、当該画像による位置決め精度の低下を抑制できる。
【０１２０】
参照情報は、撮像タイミングｔ（ｋ−１）からのサーボモータ１２０Ｘ，１２０Ｙ，１２０θの駆動量（ここでは、回転量）をそれぞれ示すエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθを含む。さらに、参照情報は、撮像タイミングｔ（ｋ−１）以降に移動制御部４１によって生成された移動指令ＭＶＸ，ＭＶＹ，ＭＶθを含む。具体的には、参照情報は、第１中間タイミングｔｍ１で生成された移動指令ＭＶＸ，ＭＶＹ，ＭＶθを含む。
【０１２１】
エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθは、移動機構１００の移動量を直接的に示す。また、移動機構１００は、移動指令ＭＶＸ，ＭＶＹ，ＭＶθに従って移動する。そのため、ワーク２のマーク５ａ，５ｂも、移動指令ＭＶＸ，ＭＶＹ，ＭＶθに従って移動する。したがって、推定部４５は、撮像予定タイミングｔｋにおけるマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂをそれぞれ精度良く推定することができる。
【０１２２】
§４  変形例
＜４−１．変形例１＞
推定部４５は、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までに出力されたエンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθに基づいて、次の撮像予定タイミングｔｋにおけるマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂを推定してもよい。
【０１２３】
図８は、変形例１における移動速度Ｖａ，Ｖｂの推定方法を説明する図である。図８に示されるに、推定部４５は、撮像タイミングｔ（ｋ−１）から第２中間タイミングｔｍ２までの間のワーク２の移動量Δｐ２＝（ΔＸ２，ΔＹ２，Δθ２）を推定する。第２中間タイミングｔｍ２は、第１中間タイミングｔｍ１よりも制御周期Ｔｓのｒ倍（ｒは、１以上の整数である）の期間だけ前のタイミングである。ｒは、たとえば１、２または３である。移動量Δｐ２を推定する方法は、移動量Δｐ１を推定する方法と同じである。すなわち、推定部４５は、撮像タイミングｔ（ｋ−１）におけるエンコーダ値ＰＶｍ（ｋ−１）と、第２中間タイミングｔｍ２におけるエンコーダ値ＰＶｍ（ｍ２）＝（ＰＶｍＸ（ｍ２），ＰＶｍＹ（ｍ２），ＰＶｍθ（ｍ２））との差を、移動量Δｐ２として推定する。
【０１２４】
推定部４５は、第２中間タイミングｔｍ２における、マーク５ａの位置（以下、「推定位置ＰＭ２ａ」という）およびマーク５ｂの位置（以下、「推定位置ＰＭ２ｂ」という）を推定する。
【０１２５】
具体的には、推定部４５は、最新の計測位置ＰＳａと推定した移動量Δｐ２とを用いて、上記の式（２）に従って、推定位置ＰＭ２ａを推定する。このとき、Ｒａ（  ）は、θステージ１１０θの回転中心と計測位置ＰＳａとの距離と、撮像タイミングｔ（ｋ−１）からのθステージ１１０θの回転移動量Δθ２とに基づいて定められる。Ｔ（  ）は、撮像タイミングｔ（ｋ−１）からの、Ｘステージ１１０Ｘの並進移動量ΔＸ２およびＹステージ１１０Ｙの並進移動量ΔＹ２に応じて定められる。
【０１２６】
推定部４５は、最新の計測位置ＰＳｂと推定した移動量Δｐ２とを用いて、上記の式（３）に従って、推定位置ＰＭ２ｂを推定する。このとき、Ｒａ（  ）は、θステージ１１０θの回転中心と計測位置ＰＳｂとの距離と、撮像タイミングｔ（ｋ−１）からのθステージ１１０θの回転移動量Δθ２とに基づいて定められる。Ｔ（  ）は、撮像タイミングｔ（ｋ−１）からの、Ｘステージ１１０Ｘの並進移動量ΔＸ２およびＹステージ１１０Ｙの並進移動量ΔＹ２に応じて定められる。
【０１２７】
第１中間タイミングｔｍ１から撮像予定タイミングｔｋまでの期間は、制御周期Ｔｓの１〜数倍である。そのため、当該期間においてマーク５ａ，５ｂの移動速度はほとんど変化しない。したがって、推定部４５は、第２中間タイミングｔｍ２から第１中間タイミングｔｍ１までの画像上のマーク５ａ，５ｂの移動速度を、撮像予定タイミングｔｋにおける画像上の移動速度Ｖａ，Ｖｂとしてそれぞれ推定する。すなわち、推定部４５は、以下の式（８）（９）に従って、撮像予定タイミングｔｋにおける画像上のマーク５ａの移動速度Ｖａおよびマーク５ｂの移動速度Ｖｂを推定する。
【０１２８】
Ｖａ＝（ＰＭ１ａ−ＰＭ２ａ）／（ｔｍ１−ｔｍ２）  ・・・（８）
Ｖｂ＝（ＰＭ１ｂ−ＰＭ２ｂ）／（ｔｍ１−ｔｍ２）  ・・・（９）
式（８）において、「ＰＭ１ａ−ＰＭ２ａ」は、推定位置ＰＭ１ａと推定位置ＰＭ２ａとの距離を示す。式（９）において、「ＰＭ１ｂ−ＰＭ２ｂ」は、推定位置ＰＭ１ｂと推定位置ＰＭ２ｂとの距離を示す。「ｔｍ１−ｔｍ２」は、第２中間タイミングｔｍ２から第１中間タイミングｔｍ１までの時間を示す。
【０１２９】
このようにして、推定部４５は、次の撮像予定タイミングｔｋよりも前の第１中間タイミングｔｍ１において、撮像予定タイミングｔｋにおけるマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂをそれぞれ推定する。
【０１３０】
＜４−２．変形例２＞
上記の説明では、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの間のワーク２の移動量Δｐ１は、エンコーダ値ＰＶｍＸ，ＰＶｍＹ，ＰＶｍθに基づいて推定された。しかしながら、推定部４５は、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの期間に生成された移動指令ＭＶＸ，ＭＶＹ，ＭＶθに基づいて、当該期間におけるワーク２の移動量Δｐ１を推定してもよい。
【０１３１】
ワーク２が載置された移動機構１００は、移動指令ＭＶＸ，ＭＶＹ，ＭＶθに従って移動する。そのため、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの期間におけるワーク２のＸ方向の並進移動量ΔＸ１は、当該期間に生成された移動指令ＭＶＸから推定される。同様に、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの期間におけるワーク２のＹ方向の並進移動量ΔＹ１は、当該期間に生成された移動指令ＭＶＹから推定される。撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの期間におけるワーク２の回転移動量Δθ１は、当該期間に生成された移動指令ＭＶθから推定される。
【０１３２】
推定部４５は、たとえば移動指令ＭＶＸが速度指令であり、時刻ｔにおける移動指令ＭＶＸの値をＭＶＸ（ｔ）とすると、以下の式（１０）に従って、並進移動量ΔＸ１を算出する。制御周期Ｔｓの間、ＭＶＸ（ｔ）は一定である。
【０１３３】
【数１】
2019215634.tif 000003
【０１３４】
同様に、推定部４５は、以下の式（１１），（１２）に従って、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの期間における、Ｙ方向の並進移動量ΔＹ１と、回転移動量Δθ１とを算出する。式（１１）において、ＭＶＹ（ｔ）は、時刻ｔにおける移動指令ＭＶＹの値を示す。式（１２）において、ＭＶθ（ｔ）は、時刻ｔにおける移動指令ＭＶθの値を示す。移動指令ＭＶＹ，ＭＶθは速度指令であり、ＭＶＹ（ｔ）およびＭＶθ（ｔ）は、制御周期Ｔｓの間、一定である。
【０１３５】
【数２】
2019215634.tif 000004
【０１３６】
このようにして、推定部４５は、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までに生成された移動指令ＭＶＸ，ＭＶＹ，ＭＶθに基づいて、次の撮像予定タイミングｔｋにおけるマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂを推定してもよい。
【０１３７】
＜４−３．変形例３＞
上記の説明では、移動制御部４１は、推定位置ＰＶが目標位置ＳＰに近づくように、移動指令ＭＶＸ，ＭＶＹ，ＭＶθを生成する。しかしながら、ワーク２をより滑らかに移動させるための移動機構１００の目標軌道が決定され、決定された目標軌道に従って移動機構１００が制御されてもよい。この場合、決定された目標軌道に基づいて、撮像予定タイミングｔｋにおける画像上のマーク５ａ，５ｂの移動速度Ｖａ，Ｖｂが推定されてもよい。
【０１３８】
＜４−３−１．制御システムの機能構成＞
図９は、変形例３に係る制御システム１Ａの機能構成を示すブロック図である。図９に示されるように、制御システム１Ａは、図４に示す制御システム１と比較して、モーションコントローラ４００の代わりにモーションコントローラ４００Ａを備える点で相違する。モーションコントローラ４００Ａは、モーションコントローラ４００と比較して、移動制御部４１および推定部４５の代わりに、移動制御部４１Ａおよび推定部４５Ａをそれぞれ含む点で相違する。移動制御部４１Ａは、移動制御部４１と比較して、位置決定部４２、減算部４３および演算部４４の代わりに目標軌道決定部４７および演算部４４Ａを備える点で相違する。
【０１３９】
＜４−３−１−１．目標軌道決定部＞
目標軌道決定部４７は、画像処理装置３０４によって特定されたマーク５ａの計測位置ＰＳａおよびマーク５ｂの計測位置ＰＳｂと、目標位置ＳＰとに基づいて、移動機構１００の目標軌道を決定する。具体的には、以下のようにして目標軌道を決定する。
【０１４０】
目標軌道決定部４７は、最新の計測位置ＰＳａ，ＰＳｂに基づいて、撮像タイミングｔ（ｋ−１）におけるワーク２の実位置を特定する。目標軌道決定部４７は、特定したワーク２の実位置から目標位置ＳＰに移動させるための移動機構１００の必要移動距離Ｌｏを算出する。目標軌道決定部４７は、移動機構１００の必要移動距離Ｌｏを、Ｘ軸方向の必要移動距離ＬＸとＹ軸方向の必要移動距離ＬＹと回転方向の必要移動距離Ｌθに分解する。
【０１４１】
目標軌道決定部４７は、必要移動距離ＬＸと、Ｘステージ１１０Ｘの目標位置ＳＰＸとに基づいて、Ｘステージ１１０Ｘの目標軌道ＴＧＸを決定する。目標軌道決定部４７は、必要移動距離ＬＹと、Ｙステージ１１０Ｙの目標位置ＳＰＹとに基づいて、Ｙステージ１１０Ｙの目標軌道ＴＧＹを決定する。目標軌道決定部４７は、必要移動距離Ｌθと、θステージ１１０θの目標位置ＳＰθとに基づいて、θステージ１１０θの目標軌道ＴＧθを決定する。
【０１４２】
図１０は、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθの一例を示す図である。目標軌道ＴＧＸは、時刻ｔにおける目標軌道ＴＧＸの位置と目標位置ＳＰＸとの偏差の時間変化を示す関数ＬＸ（ｔ）が５次以上の多次関数となるように決定される。関数ＬＸ（ｔ）は、必要移動距離ＬＸと時刻ｔとを少なくとも説明変数とする関数である。同様に、目標軌道ＴＧＹは、時刻ｔにおける目標軌道ＴＧＹの位置と目標位置ＳＰＹとの偏差の時間変化を示す関数ＬＹ（ｔ）が５次以上の多次関数となるように決定される。目標軌道ＴＧθは、時刻ｔにおける目標軌道ＴＧθの位置と目標位置ＳＰθとの偏差の時間変化を示す関数Ｌθ（ｔ）が５次以上の多次関数となるように決定される。
【０１４３】
目標軌道決定部４７は、決定した目標軌道ＴＧＸ，ＴＧＹ，ＴＧθと目標位置ＳＰＸ，ＳＰＹ，ＳＰθとの偏差の時間変化をそれぞれ示す関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を演算部４４Ａに出力する。関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、それぞれ目標軌道ＴＧＸ，ＴＧＹ，ＴＧθを示す情報である。
【０１４４】
目標軌道決定部４７は、撮像周期Ｔｂごとに、画像処理装置３０４によって特定されたマーク５ａ，５ｂの最新の計測位置ＰＳａ，ＰＳｂに従って、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を更新する。
【０１４５】
＜４−３−１−２．演算部＞
演算部４４Ａは、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）に基づいて、制御周期Ｔｓごとに移動指令ＭＶＸ、ＭＶＹ，ＭＶθをそれぞれ算出する。具体的には、演算部４４Ａは、関数ＬＸ（ｔ）に現時刻ｔを代入することにより、目標位置ＳＰＸに対する目標軌道ＴＧＸにおける現時刻ｔの位置の偏差を算出する。演算部４４Ａは、算出した偏差に対してたとえばＰ演算を行なうことにより、移動指令ＭＶＸを算出する。演算部４４Ａは、同様の方法により、移動指令ＭＶＹ，ＭＶθを算出する。
【０１４６】
＜４−３−１−３．推定部＞
推定部４５Ａは、目標軌道決定部４７によって決定された目標軌道ＴＧＸ，ＴＧＹ，ＴＧθに基づいて、撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までのワーク２の移動量Δｐ１を推定する。具体的には、図１０に示されるように、推定部４５Ａは、目標軌道ＴＧＸにおける撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの移動量を、ワーク２のＸ方向の並進移動量ΔＸ１として算出する。同様に、推定部４５Ａは、目標軌道ＴＧＹにおける撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの移動量を、ワーク２のＹ方向の並進移動量ΔＹ１として算出する。推定部４５Ａは、目標軌道ＴＧθにおける撮像タイミングｔ（ｋ−１）から第１中間タイミングｔｍ１までの移動量を、ワーク２の回転移動量Δθ１として算出する。
【０１４７】
推定部４５Ａは、最新の計測位置ＰＳａと推定した移動量Δｐ１とを用いて、上記の式（２）に従って、第１中間タイミングｔｍ１におけるマーク５ａの推定位置ＰＭ１ａを推定する。推定部４５Ａは、最新の計測位置ＰＳｂと推定した移動量Δｐ１とを用いて、上記の式（３）に従って、第１中間タイミングｔｍ１におけるマーク５ｂの推定位置ＰＭ１ｂを推定する。
【０１４８】
さらに、推定部４５Ａは、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθに基づいて、撮像タイミングｔ（ｋ−１）から撮像予定タイミングｔｋまでのワーク２の移動量Δｐｋ＝（ΔＸｋ，ΔＹｋ，Δθｋ）を推定する。具体的には、推定部４５Ａは、目標軌道ＴＧＸにおける撮像タイミングｔ（ｋ−１）から撮像予定タイミングｔｋまでの移動量を、ワーク２のＸ方向の並進移動量ΔＸｋとして算出する。同様に、推定部４５Ａは、目標軌道ＴＧＹにおける撮像タイミングｔ（ｋ−１）から撮像予定タイミングｔｋまでの移動量を、ワーク２のＹ方向の並進移動量ΔＹｋとして算出する。推定部４５Ａは、目標軌道ＴＧθにおける撮像タイミングｔ（ｋ−１）から撮像予定タイミングｔｋまでの移動量を、ワーク２の回転移動量Δθｋとして算出する。
【０１４９】
推定部４５Ａは、最新の計測位置ＰＳａのＸ座標ｘｓａおよびＹ座標ｙｓａを上記の式（２）の右辺に代入することにより、撮像予定タイミングｔｋにおけるマーク５ａの予測位置ＰＥａを推定する。このとき、Ｒａ（  ）は、θステージ１１０θの回転中心と計測位置ＰＳａとの距離と、撮像タイミングｔ（ｋ−１）からのθステージ１１０θの回転移動量Δθｋとに基づいて定められる。Ｔ（  ）は、撮像タイミングｔ（ｋ−１）からの、Ｘステージ１１０Ｘの並進移動量ΔＸｋおよびＹステージ１１０Ｙの並進移動量ΔＹｋに応じて定められる。
【０１５０】
同様に、推定部４５Ａは、最新の計測位置ＰＳｂのＸ座標ｘｓｂおよびＹ座標ｙｓｂを上記の式（３）の左辺に代入することにより、撮像予定タイミングｔｋにおけるマーク５ｂの予測位置ＰＥｂを推定する。このとき、Ｒａ（  ）は、θステージ１１０θの回転中心と計測位置ＰＳｂとの距離と、撮像タイミングｔ（ｋ−１）からのθステージ１１０θの回転移動量Δθｋとに基づいて定められる。Ｔ（  ）は、撮像タイミングｔ（ｋ−１）からの、Ｘステージ１１０Ｘの並進移動量ΔＸｋおよびＹステージ１１０Ｙの並進移動量ΔＹｋに応じて定められる。
【０１５１】
推定部４５Ａは、上記の式（４），（５）に従って、撮像予定タイミングｔｋにおける、マーク５ａの移動速度Ｖａおよびマーク５ｂの移動速度Ｖｂを推定する。
【０１５２】
＜４−３−２．目標軌道決定部の処理＞
図１１は、目標軌道決定部における処理の流れを示すフローチャートである。図１１に示される処理は、画像処理装置３０４によってマーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂが特定されるたびに行なわれる。
【０１５３】
ステップＳ３１において、目標軌道決定部４７は、マーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂを画像処理装置３０４から取得する。
【０１５４】
ステップＳ３２において、目標軌道決定部４７は、マーク５ａ，５ｂの計測位置ＰＳａ，ＰＳｂに基づいて、ワーク２の実位置を特定する。そして、目標軌道決定部４７は、特定したワーク２の実位置から目標位置ＳＰに移動させるための、Ｘ軸方向の必要移動距離ＬＸとＹ軸方向の必要移動距離ＬＹと回転方向の必要移動距離Ｌθとを算出する。
【０１５５】
ステップＳ３３において、目標軌道決定部４７は、必要移動距離ＬＸ，ＬＹ，Ｌθを補正する。当該補正は、移動機構１００上におけるワーク２のすべりや、移動機構１００の位置決め後における残留振動を抑制するために行なわれる。なお、ワーク２のすべりや残留振動が無視できる程度に小さい場合には、ステップＳ３３は省略されてもよい。
【０１５６】
ステップＳ３３の補正方法は、以下の通りである。目標軌道決定部４７は、エンコーダ１３０からのエンコーダ値に基づいて決定される移動機構１００の実位置と、前回決定した目標軌道における現時刻の位置との位置偏差Ｅｎ（ｔ）を誤差として算出する。位置偏差Ｅｎ（ｔ）は、Ｘ軸方向の成分ＥｎＸ（ｔ）と、Ｙ軸方向の成分ＥｎＹ（ｔ）と、回転方向の成分Ｅｎθ（ｔ）とに分解される。
【０１５７】
目標軌道決定部４７は、必要移動距離ＬＸを位置偏差ＥｎＸ（ｔ）で補正することにより、補正後の必要移動距離ＬＸｍを算出する。同様に、目標軌道決定部４７は、必要移動距離ＬＹを位置偏差ＥｎＹ（ｔ）で補正することにより、補正後の必要移動距離ＬＹｍを算出する。目標軌道決定部４７は、必要移動距離Ｌθを位置偏差Ｅｎθ（ｔ）で補正することにより、補正後の必要移動距離Ｌθｍを算出する。
【０１５８】
ステップＳ３４において、目標軌道決定部４７は、計測時刻ｔをゼロに初期化する。ステップＳ３５において、目標軌道決定部４７は、軌道時間Ｔを算出する。軌道時間Ｔは、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθの開始点から終了点まで移動機構１００を移動するために要する時間を表わす。一例として、軌道時間Ｔは、以下の式（１３）に基づいて算出される。
【０１５９】
Ｔ＝ｍａｘ｛ｆ（Ａｍａｘ），Ｔｍｉｎ｝ ・・・（１３）
上記式（１３）に示される「Ａｍａｘ」は、最大加速度を表わす。「ｆ（）」は、最大加速度Ａｍａｘで必要移動距離を移動機構１００に移動させた場合にかかる軌道時間を求めるための関数である。「Ｔｍｉｎ」は、所定の最小軌道時間である。「ｍａｘ（α，β）」は、数値α，βの内から最大値を取得するための関数である。
【０１６０】
上記式（１３）により、軌道時間Ｔは、最小軌道時間Ｔｍｉｎ未満にならないように決められる。最小軌道時間Ｔｍｉｎが設けられていなければ、必要移動距離Ｌｏが非常に小さい場合に、移動機構１００が目標位置にすぐに到達してしまうので、次の撮像タイミングまでの時間を無駄にすることになる。しかしながら、最小軌道時間Ｔｍｉｎが設けられることで、必要移動距離Ｌｏが非常に小さい場合に、移動機構１００は、最大加速度よりも低い加速度で移動することとなり、移動機構１００は、滑らかに移動することができる。一例として、最小軌道時間Ｔｍｉｎは、平均撮像間隔に対して一定の割合（たとえば、５０％）を乗じることで算出される。
【０１６１】
ステップＳ３６において、目標軌道決定部４７は、ステップＳ３３で得られた必要移動距離ＬＸｍ，ＬＹｍ，Ｌθｍと、ステップＳ３５で算出された軌道時間Ｔとに基づいて、目標軌道ＴＧＸ，ＴＧＹ，ＴＧθをそれぞれ決定する。
【０１６２】
具体的には、目標軌道決定部４７は、目標軌道ＴＧＸの位置と目標位置ＳＰＸとの偏差の時間変化を示す関数ＬＸ（ｔ）が以下の式（１４）で表されるように、目標軌道ＴＧＸを決定する。目標軌道決定部４７は、目標軌道ＴＧＹの位置と目標位置ＳＰＹとの偏差の時間変化を示す関数ＬＹ（ｔ）が以下の式（１５）で表されるように、目標軌道ＴＧＹを決定する。目標軌道決定部４７は、目標軌道ＴＧθの位置と目標位置ＳＰθとの偏差の時間変化を示す関数Ｌθ（ｔ）が以下の式（１６）で表されるように、目標軌道ＴＧθを決定する。
【０１６３】
ＬＸ（ｔ）＝ＬＸｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）＋６（ｔ／Ｔ）２｝］・・・（１４）
ＬＹ（ｔ）＝ＬＹｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）＋６（ｔ／Ｔ）２｝］・・・（１５）
Ｌθ（ｔ）＝Ｌθｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）＋６（ｔ／Ｔ）２｝］・・・（１６）
式（１４）〜（１６）に示されるように、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、必要移動距離ＬＸｍ，ＬＹｍ，Ｌθｍと時刻ｔとを少なくとも説明変数とし、目標位置ＳｐＸ，ＳＰＹ，ＳＰθとの偏差を目的変数とする多次関数である。
【０１６４】
なお、上記の式（１４）〜（１６）に示す関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、５次関数であるが、関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）は、６次以上の多次関数であってもよい。
【０１６５】
最大加速度Ａｍａｘが与えられた場合、軌道時間Ｔは、下記式（１７）〜（１９）で計算される。なお、式（１７）において、Ｌｍは、ＬＸｍ，ＬＹｍ，Ｌθｍである。
【０１６６】
ｆ（Ａｍａｘ）＝Ｃ１＊Ｌｍ／Ａｍａｘ ・・・（１７）
Ｃ１＝６０Ｃ２（２Ｃ２２−３Ｃ２＋１） ・・・（１８）
Ｃ２＝０．５−３１／２／６ ・・・（１９）
このようにして、目標軌道決定部４７は、計測位置ＰＳａ，ＰＳｂが特定されるたびに、移動機構１００が目標位置ＳＰに到達するまでの間の目標軌道ＴＧＸ，ＴＧＹ，ＴＧθをそれぞれ示す関数ＬＸ（ｔ），ＬＹ（ｔ），Ｌθ（ｔ）を一括して算出する。
【０１６７】
＜４−４．その他の変形例＞
上記の説明では、移動機構１００はＸＹθテーブルとした。しかしながら、移動機構１００は、θＸＹテーブル、ＵＶＷテーブル、ＸＹテーブル、ＸＹＺテーブル、多関節ロボットなどであってもよい。
【０１６８】
上記の説明では、ワーク２に設けられたマーク５ａ，５ｂをワーク２の特徴部分として用いてワーク２が位置決めされる。しかしながら、ワーク２の他の部分をワーク２の特徴部分として用いてワーク２が位置決めされてもよい。たとえば、ワーク２に設けられたネジまたはネジ穴をワーク２の特徴部分として用いてもよい。もしくは、ワーク２の角部をワーク２の特徴部分として用いてもよい。
【０１６９】
サーボモータ１２０Ｘ，１２０Ｙ，１２０θは、回転式モータではなく、リニアモータであってもよい。また、エンコーダ１３０は、リニアエンコーダであってもよい。この場合、推定部４５は、モータの駆動量を示す情報として直線軸の位置を示す情報を取得し、取得した情報に基づいて、移動量Δｐ１を推定すればよい。
【０１７０】
§５  付記
以上のように、本実施の形態および変形例は以下のような開示を含む。
【０１７１】
（構成１）
対象物（２）を移動させる移動機構（１００）を制御して、前記対象物（２）の位置決めを行なう制御システム（１，１Ａ）であって、
前記対象物（２）を撮像タイミングごとに撮像することにより画像を取得し、当該画像に基づいて、前記対象物（２）の特徴部分（５ａ，５ｂ）の位置を特定するための視覚センサ（３００）と、
前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するための移動制御部（４１，４１Ａ）と、
最新の撮像タイミングで撮像された画像から前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の最新の位置と、前記移動機構（１００）からの情報および前記移動制御部（４１，４１Ａ）によって生成される情報の少なくとも一方を含む参照情報とに基づいて、次の撮像予定タイミングにおける前記特徴部分（５ａ，５ｂ）の移動速度を推定するための推定部（４５，４５Ａ）と、
前記移動速度が閾値未満である場合に前記撮像予定タイミングで撮像させ、前記移動速度が閾値を超える場合に前記撮像予定タイミングで撮像させないように、前記視覚センサ（３００）を制御するための撮像制御部（４６）とを備える、制御システム（１，１Ａ）。
【０１７２】
（構成２）
前記移動機構（１００）は、前記対象物（２）を移動させるために駆動されるモータを含み、
前記参照情報は、前記最新の撮像タイミングからの前記モータの駆動量を示す情報を含む、構成１に記載の制御システム（１）。
【０１７３】
（構成３）
前記移動制御部（４１，４１Ａ）は、制御周期ごとに前記移動機構（１００）に対する移動指令を生成し、
前記参照情報は、前記最新の撮像タイミング以降に前記移動制御部（４１，４１Ａ）によって生成された移動指令を示す情報を含む、構成１または２に記載の制御システム（１）。
【０１７４】
（構成４）
前記移動制御部（４１Ａ）は、前記最新の位置に基づいて前記移動機構（１００）の目標軌道を決定し、決定した前記目標軌道に従って移動するように前記移動機構（１００）を制御し、
前記参照情報は、前記目標軌道を示す情報を含む、構成１に記載の制御システム（１Ａ）。
【０１７５】
（構成５）
対象物（２）を移動させる移動機構（１００）と、前記対象物（２）を撮像することにより画像を取得し、当該画像に基づいて、前記対象物（２）の特徴部分（５ａ，５ｂ）の位置を特定するための視覚センサ（３００）とを制御して、前記対象物（２）の位置決めを行なう制御装置（４００）であって、
前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するための移動制御部（４１，４１Ａ）と、
最新の撮像タイミングで撮像された画像から前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の最新の位置と、前記移動機構（１００）からの情報および前記移動制御部（４１，４１Ａ）によって生成される情報の少なくとも一方を含む参照情報とに基づいて、次の撮像予定タイミングにおける前記特徴部分（５ａ，５ｂ）の移動速度を推定するための推定部（４５，４５Ａ）と、
前記移動速度が閾値未満である場合に前記撮像予定タイミングで撮像させ、前記移動速度が閾値を超える場合に前記撮像予定タイミングで撮像させないように、前記視覚センサ（３００）を制御するための撮像制御部（４６）とを備える、制御装置（４００）。
【０１７６】
（構成５’）
構成１から４のいずれかの制御システム（１，１Ａ）に用いられる制御装置（４００）であって、
前記移動制御部（４１，４１Ａ）と、
前記推定部（４５，４５Ａ）と、
前記撮像制御部（４６）とを備える、制御装置。
【０１７７】
（構成６）
対象物（２）を移動させる移動機構（１００）を制御して、前記対象物（２）の位置決めを行なう制御システム（１，１Ａ）をサポートするためのプログラムであって、
前記制御システム（１，１Ａ）は、前記対象物（２）を撮像することにより画像を取得し、当該画像に基づいて、前記対象物（２）の特徴部分（５ａ，５ｂ）の位置を特定するための視覚センサ（３００）を備え、
コンピュータに、
前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するステップと、
最新の撮像タイミングで撮像された画像から前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の最新の位置と、前記移動機構（１００）からの情報および前記制御するステップによって生成される情報の少なくとも一方を含む参照情報とに基づいて、次の撮像予定タイミングにおける前記特徴部分（５ａ，５ｂ）の移動速度を推定するステップと、
前記移動速度が閾値未満である場合に前記撮像予定タイミングで撮像させ、前記移動速度が閾値を超える場合に前記撮像予定タイミングで撮像させないように、前記視覚センサ（３００）を制御するステップとを実行させる、プログラム。
【０１７８】
（構成６’）
構成１から４のいずれかの制御システム（１，１Ａ）をサポートするためのプログラムであって、
コンピュータに、
前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の位置に基づいて、前記対象物（２）の位置が目標位置に近づくように前記移動機構（１００）を制御するステップと、
最新の撮像タイミングで撮像された画像から前記視覚センサ（３００）によって特定された前記特徴部分（５ａ，５ｂ）の最新の位置と、前記移動機構（１００）からの情報および前記制御するステップによって生成される情報の少なくとも一方を含む参照情報とに基づいて、次の撮像予定タイミングにおける前記特徴部分（５ａ，５ｂ）の移動速度を推定するステップと、
前記移動速度が閾値未満である場合に前記撮像予定タイミングで撮像させ、前記移動速度が閾値を超える場合に前記撮像予定タイミングで撮像させないように、前記視覚センサ（３００）を制御するステップとを実行させる、プログラム。
【０１７９】
今回開示された各実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組合せても、実施することが意図される。
【符号の説明】
【０１８０】
１，１Ａ  制御システム、２  ワーク、４  露光マスク、５ａ，５ｂ  マーク、３２  画像取得部、３４  位置特定部、４１，４１Ａ  移動制御部、４２  位置決定部、４３  減算部、４４，４４Ａ  演算部、４５，４５Ａ  推定部、４６  撮像制御部、４７  目標軌道決定部、１００  移動機構、１１０Ｘ  Ｘステージ、１１０Ｙ  Ｙステージ、１１０θ  θステージ、１２０Ｘ，１２０Ｙ，１２０θ  サーボモータ、１３０  エンコーダ、２００  ドライバユニット、２００Ｘ，２００Ｙ，２００θ  サーボドライバ、３００  視覚センサ、３０２ａ，３０２ｂ  カメラ、３０４  画像処理装置、３１０，４１４  プロセッサ、３１２  ＲＡＭ、３１４  表示コントローラ、３１６  システムコントローラ、３１８  Ｉ／Ｏコントローラ、３２０  ハードディスク、３２２  カメラインターフェイス、３２２ａ，３２２ｂ  画像バッファ、３２４  入力インターフェイス、３２６  モーションコントローラインターフェイス、３２８，４２８  通信インターフェイス、３３０，４２２  メモリカードインターフェイス、３３２  表示部、３３４  キーボード、３３６  メモリカード、３５０，４４０  制御プログラム、４００，４００Ａ  モーションコントローラ、４１２  チップセット、４１６  不揮発性メモリ、４１８  主メモリ、４２０  システムクロック、４２４  記録媒体、４３０  内部バスコントローラ、４３２  ＤＭＡ制御回路、４３４  内部バス制御回路、４３６  バッファメモリ、４３８  フィールドバスコントローラ。
【図１】
2019215634.tif 000005
【図２】
2019215634.tif 000006
【図３】
2019215634.tif 000007
【図４】
2019215634.tif 000008
【図５】
2019215634.tif 000009
【図６】
2019215634.tif 000010
【図７】
2019215634.tif 000011
【図８】
2019215634.tif 000012
【図９】
2019215634.tif 000013
【図１０】
2019215634.tif 000014
【図１１】
2019215634.tif 000015