(57)【要約】【課題】フィードバック制御に関する制御パラメータの調整工数を削減する。【解決手段】制御システムは、対象物を移動させる移動機構と、対象物を撮像して得られた画像から対象物の実位置を計測する視覚センサと、撮像間隔よりも短い制御周期ごとに移動機構の位置に関する位置関連情報を検出する検出部と、実位置と位置関連情報とに基づいて対象物の推定位置を決定する位置決定部と、設定されている制御パラメータに従って、推定位置を目標位置に合わせる移動指令を移動機構に出力するフィードバック制御部と、予め決められた移動指令を移動機構に出力して得られるフィードバック値の推移に基づいて、制御パラメータを調整する調整部とを備える。【選択図】図１
2019188551.tif 000002
【特許請求の範囲】
【請求項１】
対象物を移動させるための移動機構と、
撮像指示を受け付けたことに基づいて前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を計測するための視覚センサと、
前記撮像指示が前記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構の位置に関する位置関連情報を検出するための検出部と、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するための位置決定部と、
設定されている制御パラメータに従って、前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに生成し、当該移動指令を前記制御周期ごとに前記移動機構に出力するフィードバック制御部と、
予め決められた移動指令を前記移動機構に順次出力して前記検出部から得られるフィードバック値としての位置関連情報の推移に基づいて、前記制御パラメータを調整するための調整部とを備える、制御システム。
【請求項２】
対象物を移動させるための移動機構と、
撮像指示を受け付けたことに基づいて前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を計測するための視覚センサと、
前記撮像指示が前記視覚センサに出力される間隔よりも短い予め決められた制御周期ごとに、所定の制御パラメータに従って、前記実位置を前記対象物の目標位置に合わせるための移動指令を生成し、当該移動指令を前記移動機構に出力するフィードバック制御部と、
予め決められた移動指令を前記移動機構に順次出力して前記視覚センサから得られるフィードバック値としての実位置の推移に基づいて、前記制御パラメータを調整するための調整部とを備える、制御システム。
【請求項３】
前記調整部は、
前記推移に基づいて決定された前記制御パラメータの値を基準として、前記フィードバック制御部に設定され得る複数の制御パラメータ候補を生成し、
前記複数の制御パラメータ候補の各々を前記フィードバック制御部に順次設定するとともに、各制御パラメータ候補について、前記対象物を所定位置から前記目標位置に移動するまでに要したアライメント時間を計測し、
前記複数の制御パラメータ候補の内、前記アライメント時間が最短となる制御パラメータ候補を最適化結果としての前記制御パラメータとして選択する、請求項１または２に記載の制御システム。
【請求項４】
前記調整部は、予め決められた複数の倍率のそれぞれを前記基準の制御パラメータに乗算することで、前記複数の制御パラメータ候補を生成する、請求項３に記載の制御システム。
【請求項５】
前記調整部は、
前記推移における単位時間当たりの最大変化率を算出し、
前記推移において前記最大変化率が表れる時点と、前記最大変化率とに基づいて、前記フィードバック制御部による制御対象の遅れ時間を算出し、
前記遅れ時間に基づいて、前記制御パラメータを決定する、請求項１〜４のいずれか１項に記載の制御システム。
【請求項６】
前記制御パラメータは、前記フィードバック制御部の比例制御に用いられる比例ゲインを含む、請求項１〜５のいずれか１項に記載の制御システム。
【請求項７】
対象物を移動させるための移動機構の制御方法であって、
撮像指示を視覚センサに出力することで前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を前記視覚センサに計測させるステップと、
前記撮像指示が前記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構の位置に関する位置関連情報を検出するステップと、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するステップと、
設定されている制御パラメータに従って、前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに生成し、当該移動指令を前記制御周期ごとに前記移動機構に出力するステップと、
予め決められた移動指令を前記移動機構に順次出力して前記検出するステップで得られるフィードバック値としての位置関連情報の推移に基づいて、前記制御パラメータを調整するステップとを備える、制御方法。
【請求項８】
対象物を移動させるための移動機構の制御プログラムであって、
前記制御プログラムは、前記移動機構を制御するためのコントローラに、
撮像指示を視覚センサに出力することで前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を前記視覚センサに計測させるステップと、
前記撮像指示が前記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構の位置に関する位置関連情報を検出するステップと、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するステップと、
設定されている制御パラメータに従って、前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに生成し、当該移動指令を前記制御周期ごとに前記移動機構に出力するステップと、
予め決められた移動指令を前記移動機構に順次出力して前記検出するステップで得られるフィードバック値としての位置関連情報の推移に基づいて、前記制御パラメータを調整するステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、視覚センサによって計測されたワークの位置に基づいて、ワークの位置決めを行なうための技術に関する。
【背景技術】
【０００２】
ＦＡ（ファクトリー  オートメーション）において、ワークなどの対象物の位置を目標位置に合わせる技術（位置決め技術）が各種実用化されている。この際、対象物の位置と目標位置との偏差（距離）を計測する方法として、視覚センサによって撮像された画像を用いる方法がある。
【０００３】
特開２０１７−２４１３４号公報（特許文献１）には、可動台と、可動台を移動させる移動機構と、可動台に載置されたワークを繰り返し撮像し、当該ワークの位置を繰り返し検出する視覚センサとを備えるワーク位置決め装置が開示されている。ワーク位置決め装置は、視覚センサによって位置が検出されるごとに、検出された位置と目標位置との差を算出し、当該差が許容範囲内であると判定されたときに、可動台の移動を停止する。ワーク位置決め装置は、可動台の移動停止後に視覚センサによって検出された位置と目標位置との差を算出し、算出された差が許容範囲内であるか否かを判定する。差が許容範囲外であると判定されると、当該差を小さくする可動台の移動方向が決定され、決定された移動方向へ可動台を移動させるように、移動機構が制御される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２４１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
視覚センサによるワークの実位置の計測処理と、計測された実位置を目標位置に合わせる位置合わせ処理とを繰り返して行なう場合、実位置から目標位置までの必要移動距離に応じて移動機構に対する移動指令を変えるフィードバック制御が有効である。
【０００６】
フィードバック制御の一例として、比例制御（すなわち、Ｐ制御）が知られている。比例制御では、必要移動量に比例ゲインを乗じた値が移動指令となる。比例ゲインが小さ過ぎると、ワークが目標位置に到達するまでの時間（以下、「アライメント時間」ともいう。）が長くなる。一方で、比例ゲインが大き過ぎると、ワークが目標位置を超えるオーバーシュートが生じたり、オーバーシュートとアンダーシュートとが繰り返される振動が生じたりする。その結果、アライメント時間が長くなる。
【０００７】
したがって、アライメント時間を短縮するためには、フィードバック制御の制御パラメータを最適化する必要がある。しかしながら、最適な制御パラメータを設定するには経験が必要であり、特に、経験の少ないユーザにとってはパラメータ設定に工数がかかる。
【０００８】
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、フィードバック制御に関する制御パラメータの調整工数を削減することが可能な制御システムを提供することである。他の局面における目的は、フィードバック制御に関する制御パラメータの調整工数を削減することが可能な制御方法を提供することである。他の局面における目的は、フィードバック制御に関する制御パラメータの調整工数を削減することが可能な制御プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本開示の一例では、制御システムは、対象物を移動させるための移動機構と、撮像指示を受け付けたことに基づいて上記対象物を撮像し、撮像により得られた画像から上記対象物の実位置を計測するための視覚センサと、上記撮像指示が上記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに上記移動機構の位置に関する位置関連情報を検出するための検出部と、上記実位置と上記位置関連情報とに基づいて、現時点における上記対象物の推定位置を上記制御周期ごとに決定するための位置決定部と、設定されている制御パラメータに従って、上記推定位置を上記対象物の目標位置に合わせるための移動指令を上記制御周期ごとに生成し、当該移動指令を上記制御周期ごとに上記移動機構に出力するフィードバック制御部と、予め決められた移動指令を上記移動機構に順次出力して上記検出部から得られるフィードバック値としての位置関連情報の推移に基づいて、上記制御パラメータを調整するための調整部とを備える。
【００１０】
この開示によれば、フィードバック制御に関する制御パラメータが自動で調整される。これにより、制御システムは、フィードバック制御に関する制御パラメータの調整工数を削減することができる。
【００１１】
本開示の一例では、制御システムは、対象物を移動させるための移動機構と、撮像指示を受け付けたことに基づいて上記対象物を撮像し、撮像により得られた画像から上記対象物の実位置を計測するための視覚センサと、上記撮像指示が上記視覚センサに出力される間隔よりも短い予め決められた制御周期ごとに、所定の制御パラメータに従って、上記実位置を上記対象物の目標位置に合わせるための移動指令を生成し、当該移動指令を上記移動機構に出力するフィードバック制御部と、予め決められた移動指令を上記移動機構に順次出力して上記視覚センサから得られるフィードバック値としての実位置の推移に基づいて、上記制御パラメータを調整するための調整部とを備える。
【００１２】
この開示によれば、フィードバック制御に関する制御パラメータが自動で調整される。これにより、制御システムは、フィードバック制御に関する制御パラメータの調整工数を削減することができる。
【００１３】
本開示の一例では、上記調整部は、上記推移に基づいて決定された上記制御パラメータの値を基準として、上記フィードバック制御部に設定され得る複数の制御パラメータ候補を生成し、上記複数の制御パラメータ候補の各々を上記フィードバック制御部に順次設定するとともに、各制御パラメータ候補について、上記対象物を所定位置から上記目標位置に移動するまでに要したアライメント時間を計測し、上記複数の制御パラメータ候補の内、上記アライメント時間が最短となる制御パラメータ候補を最適化結果としての上記制御パラメータとして選択する。
【００１４】
この開示によれば、制御システムは、フィードバック制御に関する制御パラメータをさらに最適化することができる。
【００１５】
本開示の一例では、上記調整部は、予め決められた複数の倍率のそれぞれを上記基準の制御パラメータに乗算することで、上記複数の制御パラメータ候補を生成する。
【００１６】
この開示によれば、制御システムは、基準の制御パラメータから容易に制御パラメータ候補を生成することができる。
【００１７】
本開示の一例では、上記調整部は、上記推移における単位時間当たりの最大変化率を算出し、上記推移において上記最大変化率が表れる時点と、上記最大変化率とに基づいて、上記フィードバック制御部による制御対象の遅れ時間を算出し、上記遅れ時間に基づいて、上記制御パラメータを決定する。
【００１８】
この開示によれば、上記制御パラメータが遅れ時間に基づいて決定されることで、制御システムは、フィードバック制御に関する制御パラメータをより最適に調整することができる。
【００１９】
本開示の一例では、上記制御パラメータは、上記フィードバック制御部の比例制御に用いられる比例ゲインを含む。
【００２０】
この開示によれば、比例ゲインが自動で調整される。これにより、制御システムは、比例ゲインの調整工数を削減することができる。
【００２１】
本開示の他の例では、対象物を移動させるための移動機構の制御方法は、撮像指示を視覚センサに出力することで上記対象物を撮像し、撮像により得られた画像から上記対象物の実位置を上記視覚センサに計測させるステップと、上記撮像指示が上記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに上記移動機構の位置に関する位置関連情報を検出するステップと、上記実位置と上記位置関連情報とに基づいて、現時点における上記対象物の推定位置を上記制御周期ごとに決定するステップと、設定されている制御パラメータに従って、上記推定位置を上記対象物の目標位置に合わせるための移動指令を上記制御周期ごとに生成し、当該移動指令を上記制御周期ごとに上記移動機構に出力するステップと、予め決められた移動指令を上記移動機構に順次出力して上記検出するステップで得られるフィードバック値としての位置関連情報の推移に基づいて、上記制御パラメータを調整するステップとを備える。
【００２２】
この開示によれば、フィードバック制御に関する制御パラメータが自動で調整される。これにより、制御システムは、フィードバック制御に関する制御パラメータの調整工数を削減することができる。
【００２３】
本開示の一例では、対象物を移動させるための移動機構の制御プログラムは、上記移動機構を制御するためのコントローラに、撮像指示を視覚センサに出力することで上記対象物を撮像し、撮像により得られた画像から上記対象物の実位置を上記視覚センサに計測させるステップと、上記撮像指示が上記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに上記移動機構の位置に関する位置関連情報を検出するステップと、上記実位置と上記位置関連情報とに基づいて、現時点における上記対象物の推定位置を上記制御周期ごとに決定するステップと、設定されている制御パラメータに従って、上記推定位置を上記対象物の目標位置に合わせるための移動指令を上記制御周期ごとに生成し、当該移動指令を上記制御周期ごとに上記移動機構に出力するステップと、予め決められた移動指令を上記移動機構に順次出力して上記検出するステップで得られるフィードバック値としての位置関連情報の推移に基づいて、上記制御パラメータを調整するステップとを実行させる。
【００２４】
この開示によれば、フィードバック制御に関する制御パラメータが自動で調整される。これにより、制御システムは、フィードバック制御に関する制御パラメータの調整工数を削減することができる。
【発明の効果】
【００２５】
ある局面において、フィードバック制御に関する制御パラメータの調整工数を削減することができる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態に従う制御システムの概要を示す模式図である。
【図２】変形例に従う制御システムの概要を示す模式図である。
【図３】実施の形態に従う制御システムの装置構成の一例を説明する。
【図４】実施の形態に従う視覚センサを構成する画像処理装置のハードウェア構成の一例を示す模式図である。
【図５】実施の形態に従うコントローラのハードウェア構成を示す模式図である。
【図６】制御パラメータの調整処理の流れを表わすフローチャートである。
【図７】移動機構に入力された移動指令と、その応答として移動機構から出力されるフィードバック値との関係を時間軸上に示す図である。
【図８】制御パラメータの最適化処理の流れ表わすフローチャートである。
【図９】図１に示される位置決定部による推定位置の決定処理を表わすフローチャートである。
【発明を実施するための形態】
【００２７】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。
【００２８】
＜Ａ．適用例１＞
まず、図１を参照して、本発明が適用される場面の一例について説明する。図１は、本実施の形態に従う制御システム１の概要を示す模式図である。
【００２９】
制御システム１は、画像処理を用いてアライメントを行なう。アライメントは、典型的には、工業製品の製造過程などにおいて、対象物（以下、「ワークＷ」ともいう。）を生産ラインの本来の位置に配置する処理などを意味する。このようなアライメントの一例として、制御システム１は、液晶パネルの生産ラインにおいて、ガラス基板に回路パターンの焼付処理（露光処理）前に、露光マスクに対するガラス基板の位置決めを行なう。
【００３０】
制御システム１は、たとえば、視覚センサ５０と、コントローラ２００と、移動機構４００と、エンコーダ４５０とを含む。視覚センサ５０は、たとえば、撮像部５２と、画像処理部５４とを含む。移動機構４００は、たとえば、サーボドライバ４０２と、サーボモータ４１０と、ステージ４２０とで構成されている。
【００３１】
撮像部５２は、撮像視野に存在する被写体を撮像して画像データを生成する撮像処理を行なうものであり、ステージ４２０に載置されるワークＷを撮像する。撮像部５２は、コントローラ２００からの撮像トリガＴＲに応じて撮像を行なう。撮像部５２によって生成された画像データは、画像処理部５４に順次出力される。画像処理部５４は、撮像部５２から得られた画像データに対して画像解析を行ない、ワークＷの実位置ＰＶｖを計測する。実位置ＰＶｖは、計測される度にコントローラ２００に出力される。
【００３２】
コントローラ２００は、たとえばＰＬＣ（プログラマブル  ロジック  コントローラ）であり、各種のＦＡ制御を行なう。コントローラ２００は、機能構成の一例として、位置決定部２５２と、フィードバック制御部２５４と、調整部２６４とを含む。
【００３３】
位置決定部２５２は、視覚センサ５０によって計測された実位置ＰＶｖと、視覚センサ５０による撮像間隔Ｔｂよりも短い制御周期Ｔｓごとに得られるエンコーダ値ＰＶｍ（位置関連情報）とに基づいて、制御周期ＴｓごとにワークＷの位置（以下、「推定位置ＰＶ」ともいう。）を推定する。一例として、撮像周期Ｔｂは、撮像状況などに応じて変動し、たとえば約６０ｍｓである。制御周期Ｔｓは、固定であり、たとえば１ｍｓである。推定位置ＰＶは、制御周期Ｔｓごとにフィードバック制御部２５４に出力される。
【００３４】
フィードバック制御部２５４は、制御パラメータ２６２に従って、推定位置ＰＶを目標位置ＳＶに合わせるための移動指令ＭＶを制御周期Ｔｓごとに生成し、制御周期Ｔｓごとに移動指令ＭＶをサーボドライバ４０２に出力する。移動指令ＭＶは、たとえば、サーボドライバ４０２に対する指令位置、指令速度、または指令トルクのいずれかである。
【００３５】
ある局面において、目標位置ＳＰは、生産工程ごとに予め決められており、現在の生産工程に応じて順次切り替えられる。他の局面において、目標位置ＳＰは、視覚センサ５０が所定の画像処理を行なうことにより画像内から検出される。この場合、視覚センサ５０は、予め定められたマークを画像から検出し、当該マークを目標位置ＳＰとして認識する。
【００３６】
フィードバック制御部２５４によるフィードバック制御は、たとえば、ＰＩＤ（Proportional Integral Differential）制御、ＰＩ制御、ＰＤ制御、またはＰ制御により実現される。図１の例では、Ｐ制御を行なうフィードバック制御部２５４が示されている。フィードバック制御部２５４は、減算部２５６と、乗算部２５８とで構成されている。
【００３７】
減算部２５６は、目標位置ＳＰから、位置決定部２５２によって決定された推定位置ＰＶを減算し、その減算結果を乗算部２５８に出力する。乗算部２５８は、減算部２５６による減算結果を、制御パラメータ２６２に規定される比例ゲインＫｐ倍に増幅／減衰する。乗算部２５８による乗算結果は、積分処理された上で位置指令としてサーボドライバ４０２に出力される。あるいは、乗算部２５８による乗算結果は、そのまま速度指令としてサーボドライバ４０２に出力される。
【００３８】
サーボドライバ４０２は、制御周期Ｔｓごとに受ける移動指令ＭＶに従って、サーボモータ４１０を駆動する。より具体的には、サーボドライバ４０２は、制御周期Ｔｓごとにエンコーダ４５０（検出部）からエンコーダ値ＰＶｍを取得する。サーボドライバ４０２は、エンコーダ値ＰＶｍにより示される速度／位置を、移動指令ＭＶにより示される速度／位置に合わせるように、サーボモータ４１０をフィードバック制御する。一例として、サーボドライバ４０２によるフィードバック制御は、ＰＩＤ制御、ＰＩ制御、ＰＤ制御、またはＰ制御により実現される。
【００３９】
調整部２６４は、フィードバック制御部２５４に関する制御パラメータ２６２を調整する。より具体的には、コントローラ２００は、動作モードとして、通常の制御モードと、制御パラメータ２６２の調整モードとを有する。動作モードが通常の制御モードに設定された場合、フィードバック制御部２５４とサーボドライバ４０２とが接続されるようにスイッチＳＷが切り替えられる。一方で、動作モードが調整モードに設定された場合には、調整部２６４とサーボドライバ４０２とが接続されるようにスイッチＳＷが切り替えられる。
【００４０】
調整モードにおいて、調整部２６４は、予め決められた移動指令ＭＶｎを移動機構４００に順次出力し、エンコーダ４５０（検出部）からエンコーダ値ＰＶｍをフィードバック値として順次取得する。その後、調整部２６４は、取得されたエンコーダ値ＰＶｍの推移に基づいて制御パラメータ２６２を調整する。制御パラメータ２６２の調整方法の詳細については後述する。このように、制御パラメータ２６２が自動で調整されることで、制御パラメータ２６２の調整工数が削減される。
【００４１】
なお、図１には、位置決定部２５２、フィードバック制御部２５４、調整部２６４、サーボドライバ４０２、サーボモータ４１０、およびエンコーダ４５０のコンポーネント群が１つしか示されていないが、これらのコンポーネント群は、ステージ４２０を駆動する軸数の分だけ設けられる。各コンポーネント群は、ステージ４２０の１つの軸方向における制御を担うことになる。この場合、視覚センサ５０によって計測された実位置ＰＶｖは、各軸方向における実位置に分解され、分解後の各実位置が対応のコンポーネント群に出力されることとなる。
【００４２】
＜Ｂ．適用例２＞
次に、図２を参照して、本発明が適用される場面の他の例について説明する。図２は、変形例に従う制御システム１の概要を示す模式図である。
【００４３】
図１の例では、調整部２６４は、予め決められた移動指令ＭＶｎを移動機構４００に入力してエンコーダ４５０から得られるエンコーダ値ＰＶｍの推移に基づいて、制御パラメータ２６２を調整していた。これに対して、図２の例では、調整部２６４は、予め決められた移動指令ＭＶｎを移動機構４００に入力して視覚センサ５０から得られる実位置ＰＶｖの推移に基づいて制御パラメータ２６２を調整する。制御パラメータ２６２の調整方法の詳細については後述する。
【００４４】
また、図２に示される制御システム１は、位置決定部２５２を有さない点、エンコーダ値ＰＶｍがコントローラ２００にフィードバックされない点で、図１に示される制御システム１と異なる。図２に示される制御システム１のその他の点について図１に示される制御システム１と同じであるので、それらの説明については繰り返さない。
【００４５】
＜Ｃ．制御システム１の装置構成＞
図３は、制御システム１の装置構成の一例を説明する。図３に示されるように、制御システム１は、視覚センサ５０と、コントローラ２００と、移動機構４００とを含む。視覚センサ５０は、画像処理装置１００と、１つ以上のカメラ（図３の例では、カメラ１０２および１０４）とを含む。移動機構４００は、ベースプレート４，７と、ボールネジ６，９と、サーボドライバ４０２（図３の例では、サーボドライバ４０２Ｘ，４０２Ｙ）と、ステージ４２０と、１つ以上のサーボモータ４１０（図３の例では、サーボモータ４１０Ｘ，４１０Ｙ）とで構成されている。
【００４６】
画像処理装置１００は、カメラ１０２，１０４がワークＷを撮影して得られた画像データに基づいて、ワークＷの特徴部分１２（たとえば、ネジ穴など）を検出する。画像処理装置１００は、検出した特徴部分１２の位置をワークＷの実位置ＰＶｖとして検出する。
【００４７】
コントローラ２００には、１つ以上のサーボドライバ４０２（図３の例では、サーボドライバ４０２Ｘ，４０２Ｙ）が接続されている。サーボドライバ４０２Ｘは、コントローラ２００からの受けるＸ方向の移動指令に従って、制御対象のサーボモータ４１０Ｘを駆動する。サーボドライバ４０２Ｙは、コントローラ２００からの受けるＹ方向の移動指令に従って、制御対象のサーボモータ４１０Ｙを駆動する。
【００４８】
コントローラ２００は、Ｘ方向に対して生成された目標軌道ＴＧｘに従って、サーボドライバ４０２Ｘに対してＸ方向の目標位置を指令値として与える。また、コントローラ２００は、Ｙ方向に対して生成された目標軌道ＴＧｙに従って、サーボドライバ４０２Ｙに対してＹ方向の目標位置を指令値として与える。Ｘ，Ｙ方向のそれぞれの目標位置が順次更新されることで、ワークＷが目標位置ＳＰに移動させられる。
【００４９】
コントローラ２００およびサーボドライバ４０２は、フィールドネットワークを介してデイジーチェーンで接続されている。フィールドネットワークには、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）が採用される。但し、フィールドネットワークは、ＥｔｈｅｒＣＡＴに限定されず、任意の通信手段が採用され得る。一例として、コントローラ２００およびサーボドライバ４０２は、信号線で直接接続されてもよい。また、コントローラ２００およびサーボドライバ４０２は、一体的に構成されてもよい。
【００５０】
ベースプレート４には、ステージ４２０をＸ方向に沿って移動させるボールネジ６が配置されている。ボールネジ６は、ステージ４２０に含まれるナットと係合されている。ボールネジ６の一端に連結されたサーボモータ４１０Ｘが回転駆動することで、ステージ４２０に含まれるナットとボールネジ６とが相対回転し、その結果、ステージ４２０がＸ方向に沿って移動する。
【００５１】
ベースプレート７は、ステージ４２０およびベースプレート４をＹ方向に沿って移動させるボールネジ９が配置されている。ボールネジ９は、ベースプレート４に含まれるナットと係合されている。ボールネジ９の一端に連結されたサーボモータ４１０Ｙが回転駆動することで、ベースプレート４に含まれるナットとボールネジ９とが相対回転し、その結果、ステージ４２０およびベースプレート４がＹ方向に沿って移動する。
【００５２】
なお、図３には、サーボモータ４１０Ｘ，４１０Ｙによる２軸駆動の移動機構４００が示されているが、移動機構４００は、ＸＹ平面上の回転方向（θ方向）にステージ４２０を駆動するサーボモータがさらに組み込まれてもよい。
【００５３】
＜Ｄ．ハードウェア構成＞
図４および図５を参照して、視覚センサ５０を構成する画像処理装置１００およびコントローラ２００のハードウェア構成について順に説明する。
【００５４】
（Ｄ１．画像処理装置１００のハードウェア構成）
図４は、視覚センサ５０を構成する画像処理装置１００のハードウェア構成の一例を示す模式図である。図４を参照して、画像処理装置１００は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の画像処理を実現する。
【００５５】
より具体的には、画像処理装置１００は、ＣＰＵ（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）制御回路２３２と、内部バス制御回路２３４とを含む。
【００７６】
メモリカードインターフェイス２２２は、主制御ユニット２１０に対して着脱可能なメモリカード２２４とプロセッサ２１４とを接続する。
【００７７】
フィールドバスコントローラ２３８は、フィールドネットワークに接続するための通信インターフェイスである。コントローラ２００は、フィールドバスコントローラ２３８を介してサーボドライバ４０２（たとえば、サーボドライバ４０２Ｘ，４０２Ｙ，４０２θ）と接続される。当該フィールドネットワークには、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが採用される。
【００７８】
＜Ｅ．制御パラメータ２６２の調整処理＞
図６および図７を参照して、調整部２６４による制御パラメータ２６２の調整フローについて説明する。
【００７９】
図６は、制御パラメータ２６２の調整処理の流れを表わすフローチャートである。図６に示される処理は、コントローラ２００のプロセッサ２１４が調整部２６４として機能することにより実現される。他の局面において、図６に示される処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００８０】
図６に示される処理は、ある軸方向に対する制御フローを表わす。実際には、図６に示される各処理は、軸方向の分だけ並列に実行される。
【００８１】
ステップＳ１１０において、調整部２６４は、初期化処理を実行する。一例として、プロセッサ２１４は、計測時間ｔを０に初期化し、フィードバック値を記憶するための変数ＰＶｎ−１を０に初期化する。ここでいう「フィードバック値」とは、図１の例ではエンコーダ４５０によって検出されたエンコーダ値ＰＶｍに相当し、図２の例では視覚センサ５０によって計測された実位置ＰＶｖに相当する。
【００８２】
ステップＳ１１２において、調整部２６４は、下記の（式１）に従って、サーボドライバ４０２に出力するための移動指令ＭＶｎを生成し、移動指令ＭＶｎをサーボドライバ４０２に出力する。
【００８３】
ＭＶｎ＝Ｒｍｖ＊ｔ  ・・・（式１）
ステップＳ１１４において、調整部２６４は、移動指令ＭＶｎの応答としてフィードバック値ＰＶｎを取得する。上述のように、「フィードバック値」とは、図１の例ではエンコーダ４５０によって検出されたエンコーダ値ＰＶｍに相当し、図２の例では視覚センサ５０によって計測された実位置ＰＶｖに相当する。
【００８４】
ステップＳ１２０において、調整部２６４は、下記（式２）に従って、フィードバック値ＰＶｎの時間当たりの変化率が現時点での最大変化率Ｒｍａｘを超えているか否かを判断する。より具体的には、調整部２６４は、今回のフィードバック値ＰＶｎから前回のフィードバック値ＰＶｎ−１を差分し、当該差分結果を制御周期Ｔｓで除算し、当該除算結果が現時点での最大変化率Ｒｍａｘを超えているか否かを判断する。
【００８５】
（ＰＶｎ−ＰＶｎ−１）／Ｔｓ＞Ｒｍａｘ  ・・・（式２）
調整部２６４は、フィードバック値ＰＶｎの時間当たりの変化率が現時点での最大変化率Ｒｍａｘを超えていると判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１２２に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、調整部２６４は、制御をステップＳ１３０に切り替える。
【００８６】
ステップＳ１２２において、調整部２６４は、下記（式３）に従って、現時点で記録されている最大変化率Ｒｍａｘを新たに更新された最大変化率に書き換える。
【００８７】
Ｒｍａｘ＝（ＰＶｎ−ＰＶｎ−１）／Ｔｓ  ・・・（式３）
また、調整部２６４は、最大変化率Ｒｍａｘが出現した時点におけるフィードバック値ＰＶｎをフィードバック値ＰＶｒとして記憶する。また、調整部２６４は、最大変化率Ｒｍａｘが出現した時間を時間Ｔｒとして記憶する。ステップＳ１２２で記憶される各種情報は、たとえば、コントローラ２００の記憶部（たとえば、不揮発性メモリ２１６または主メモリ２１８（図５参照））に格納する。
【００８８】
ステップＳ１２４において、調整部２６４は、今回のフィードバック値ＰＶｎで前回のフィードバック値ＰＶｎ−１を更新する。また、調整部２６４は、計測時間ｔに制御周期Ｔｓを加算し、計測時間ｔを更新する。
【００８９】
ステップＳ１３０において、調整部２６４は、フィードバック値の計測を終了するか否かを判断する。一例として、調整部２６４は、予め定められた計測終了条件が満たされた場合に、フィードバック値の計測を終了すると判断する。ある局面において、計測終了条件は、ステップＳ１３０の処理の実行回数が予め定められた回数に達した場合に満たされる。他の局面において、計測終了条件は、最大変化率Ｒｍａｘが一定値に収束した場合に満たされる。調整部２６４は、フィードバック値の計測を終了すると判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１４０に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、調整部２６４は、制御をステップＳ１１２に戻す。
【００９０】
図７は、移動機構４００に入力された移動指令ＭＶｎと、その応答として移動機構４００から出力されるフィードバック値ＰＶｎとの関係を時間軸上に示す図である。
【００９１】
ステップＳ１１２の処理が繰り返されることで、図７に示されるランプ状の移動指令ＭＶｎがサーボドライバ４０２に入力されることになる。なお、移動指令ＭＶｎが位置指令である場合には、サーボドライバ４０２に入力される移動指令ＭＶｎは、図７に示されるようなランプ状になるが、移動指令ＭＶｎが速度指令である場合には、サーボドライバ４０２に入力される移動指令ＭＶｎは一定値となる。
【００９２】
調整部２６４は、予め決められた移動指令ＭＶｎを移動機構４００に順次出力して得られたフィードバック値ＰＶｎの推移に基づいて、フィードバック制御部２５４に係る制御パラメータ２６２（たとえば、比例ゲインＫｐ）を調整する。
【００９３】
より具体的には、ステップＳ１４０において、調整部２６４は、下記（式４）に従って、定常ゲインＫを算出する。
【００９４】
Ｋ＝Ｒｍａｘ／Ｒｍｖ  ・・・（式４）
（式４）に示される「Ｒｍａｘ」は、ステップＳ１２２で記憶された最大変化率に相当する。「Ｒｍｖ」は、移動指令ＭＶｎの推移における傾き（すなわち、変化率）を表わす。
【００９５】
ステップＳ１４２において、調整部２６４は、フィードバック制御部２５４の制御対象の遅れ時間を算出する。「遅れ時間」とは、フィードバック制御部２５４の制御対象に対して移動指令を与えてから、当該移動指令に応じた出力が現れるまでの時間を表わす。フィードバック制御部２５４の制御対象は、図１に示される制御システム１の例では、移動機構４００とエンコーダ４５０とを含む制御系を指す。一方で、フィードバック制御部２５４の制御対象は、図２に示される制御システム１の例では、視覚センサ５０と、移動機構４００と、エンコーダ４５０とを含む制御系を指す。
【００９６】
調整部２６４は、フィードバック値ＰＶｎの推移において最大変化率Ｒｍａｘが出現した時間Ｔｒと、最大変化率Ｒｍａｘとに基づいて、フィードバック制御部２５４による制御対象の遅れ時間Ｌを算出する。一例として、遅れ時間Ｌは、下記（式５）に基づいて算出される。
【００９７】
Ｌ＝Ｔｒ−ＰＶｒ／Ｒｍａｘ  ・・・（式５）
ステップＳ１４４において、調整部２６４は、ステップＳ１４０で算出した定常ゲインＫと、ステップＳ１４２で算出した遅れ時間Ｌとに基づいて、比例ゲインＫｐを算出する。比例ゲインＫｐは、たとえば、下記（式６）に基づいて算出される。
【００９８】
Ｋｐ＝α／（Ｋ・Ｌ）  ・・・（式６）
（式６）に示される「α」は、予め定められた係数である。（式６）に示されるように、遅れ時間Ｌが長いほど、調整部２６４は、比例ゲインＫｐを小さくする。異なる言い方をすれば、遅れ時間Ｌが短いほど、調整部２６４は、比例ゲインＫｐを大きくする。また、定常ゲインが大きいほど、調整部２６４は、比例ゲインＫｐを小さくする。異なる言い方をすれば、定常ゲインが小さいほど、調整部２６４は、比例ゲインＫｐを大きくする。
【００９９】
ステップＳ１４６において、調整部２６４は、ステップＳ１４４で算出した比例ゲインＫｐをフィードバック制御部２５４の制御パラメータ２６２として設定する。
【０１００】
なお、上述では、ステップＳ１４０で定常ゲインＫが算出される例について説明を行なったが、図１に示される制御システム１のように、入力値としての移動指令ＭＶと、出力値としてのフィードバック値ＰＶｎとが定常的に一致する場合には、定常ゲインＫが１となるので、ステップＳ１４０の処理は省略されてもよい。「Ｋ＝１」となる場合、比例ゲインＫｐは、上記（式６）に示されるように、遅れ時間Ｌに基づいて決められる。また、「Ｋ＝１」となる場合、遅れ時間Ｌは、下記（式７）に基づいて算出される。
【０１０１】
Ｌ＝Ｔｒ−ＰＶｒ／Ｒｍｖ  ・・・（式７）
また、図６の例では、ステップＳ１１０において、フィードバック値ＰＶｎ−１の初期値が０に設定される例について説明を行なったが、フィードバック値ＰＶｎ−１の初期値は、必ずしも０に設定される必要はない。一例として、フィードバック値の初期値が一定値ＰＶ０に安定している場合には、遅れ時間Ｌは、下記（式８）に基づいて算出される。
【０１０２】
Ｌ＝Ｔｒ−（ＰＶｒ−ＰＶ０）／Ｒｍａｘ  ・・・（式８）
また、図６の例では、フィードバック値ＰＶｎの最大変化率ＲｍａｘがステップＳ１２２で逐次更新される例について説明を行なったが、調整部２６４は、ステップＳ１１４で計測されたフィードバック値ＰＶｎを全て記憶しておき、記憶された全てのフィードバック値ＰＶｎから最大変化率Ｒｍａｘを算出してもよい。
【０１０３】
＜Ｆ．制御パラメータ２６２の最適化処理＞
図８を参照して、上記「Ｅ．制御パラメータ２６２の調整処理」で決定された制御パラメータ２６２の最適化処理について説明する。
【０１０４】
図８は、制御パラメータ２６２の最適化処理の流れ表わすフローチャートである。図８に示される処理は、コントローラ２００のプロセッサ２１４が調整部２６４として機能することにより実現される。他の局面において、図８に示される処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１０５】
以下では、上記「Ｅ．制御パラメータ２６２の調整処理」で決定された制御パラメータ２６２を「基準の比例ゲインＫｐ」ともいう。
【０１０６】
ステップＳ１５０において、調整部２６４は、基準の比例ゲインＫｐに乗じる倍率β（ｉ）を取得する。倍率β（ｉ）は、予め定められていてもよいし、ユーザによって任意に設定されてもよい。倍率β（ｉ）は、たとえば、変数「β（１）〜β（ｎ）」を管理する配列データである。
【０１０７】
ステップＳ１５２において、調整部２６４は、変数ｉを１に初期化する。
ステップＳ１５４において、調整部２６４は、基準の比例ゲインＫｐに倍率β（ｉ）を乗算し、設定候補の比例ゲインＫｐ（ｉ）を生成する。
【０１０８】
ステップＳ１５６において、調整部２６４は、ステップＳ１５４で生成した設定候補の比例ゲインＫｐ（ｉ）をフィードバック制御部２５４に設定するとともに、所定のアライメント処理をフィードバック制御部２５４に実行させる。一例として、当該所定のアライメント処理は、予め定められた開始位置から予め定められた目標位置ＳＰまでワークＷを移動する処理である。このとき、調整部２６４は、予め定められた開始位置から予め定められた目標位置ＳＰまでワークＷを移動するまでに要するアライメント時間Ｔａ（ｉ）を計測しておく。
【０１０９】
ステップＳ１５８において、調整部２６４は、ステップＳ１５６で計測されたアライメント時間Ｔａ（ｉ）をコントローラ２００の記憶部（たとえば、不揮発性メモリ２１６または主メモリ２１８（図５参照））に格納する。
【０１１０】
ステップＳ１６０において、調整部２６４は、変数ｉをインクリメントする。すなわち、調整部２６４は、変数ｉに１を加算する。
【０１１１】
ステップＳ１７０において、調整部２６４は、変数ｉが所定値ｎよりも小さいか否かを判断する。所定値ｎは、ステップＳ１５４，Ｓ１５６，Ｓ１５８，Ｓ１６０の実行回数を表し、予め規定されている。調整部２６４は、変数ｉが所定値ｎよりも小さいと判断した場合（ステップＳ１７０においてＹＥＳ）、制御をステップＳ１５４に戻す。そうでない場合には（ステップＳ１７０においてＮＯ）、調整部２６４は、制御をステップＳ１７２に切り替える。
【０１１２】
ステップＳ１７２において、調整部２６４は、制御パラメータ候補Ｋｐ（ｉ）の内、アライメント時間Ｔａ（ｉ）が最短となる制御パラメータ候補を最適結果としての制御パラメータ２６２として選択する。
【０１１３】
以上のように、調整部２６４は、予め決められた倍率β（ｉ）のそれぞれを基準の比例ゲインＫｐに乗算することで制御パラメータ候補Ｋｐ（ｉ）を生成する。そして、調整部２６４は、制御パラメータ候補Ｋｐ（ｉ）の各々をフィードバック制御部２５４の制御パラメータ２６２に順次設定するとともに、各制御パラメータ候補について、ワークＷを所定位置から目標位置ＳＰに移動するまでに要したアライメント時間Ｔａ（ｉ）を計測する。その後、調整部２６４は、制御パラメータ候補Ｋｐ（ｉ）の内、アライメント時間Ｔａ（ｉ）が最短となる制御パラメータ候補を最適化結果としての制御パラメータ２６２として選択する。これにより、調整部２６４は、上記「Ｅ．制御パラメータ２６２の調整処理」で決定された制御パラメータ２６２をさらに最適化することができる。
【０１１４】
なお、図８の例では、アライメント時間Ｔａ（ｉ）が最短となる制御パラメータ候補を最適化結果として選択する例について説明を行なったが、その他の評価指標に基づいて、制御パラメータ２６２が最適化されてもよい。一例として、調整部２６４は、各制御パラメータ候補について最大オーバーシュート距離を算出し、最大オーバーシュート距離が最小となる制御パラメータ候補を最適化結果として選択してもよい。あるいは、調整部２６４は、各制御パラメータ候補について移動距離を算出し、移動距離が最小となる制御パラメータ候補を最適化結果として選択してもよい。
【０１１５】
＜Ｇ．推定位置ＰＶの決定処理＞
図９は、図１に示される位置決定部２５２による推定位置ＰＶの決定処理を表わすフローチャートである。以下では、図９を参照して、位置決定部２５２による推定位置ＰＶの決定処理について説明する。
【０１１６】
ステップＳ４２１において、位置決定部２５２は、視覚センサ５０から実位置ＰＶｖが得られているか否かを検出する。位置決定部２５２は、実位置ＰＶｖが得られている時刻であれば（ステップＳ４２１においてＹＥＳ）、制御をステップＳ４２２に切り替える。そうでない場合には（ステップＳ４２１においてＮＯ）、位置決定部２５２は、制御をステップＳ４２７に切り替える。
【０１１７】
ステップＳ４２２において、位置決定部２５２は、実位置ＰＶｖが正常値であるか否かを判断する。たとえば、位置決定部２５２は、実位置ＰＶｖが所定範囲内の値であれば正常値であると判断する。位置決定部２５２は、実位置ＰＶｖが正常値であると判断した場合（ステップＳ４２２においてＹＥＳ）、制御をステップＳ４２３に切り替える。そうでない場合には（ステップＳ４２７においてＮＯ）、位置決定部２５２は、制御をステップＳ４２７に切り替える。
【０１１８】
ステップＳ４２３において、位置決定部２５２は、実位置ＰＶｖの入力を受け付ける。ステップＳ４２４において、位置決定部２５２は、実位置ＰＶｖの入力を受け付けると、当該実位置ＰＶｖの算出の元となる撮像時刻のエンコーダ値ＰＶｍｓの推定を行なう。なお、撮像部５２の露光時間が長い場合、撮像時刻は、たとえば、露光開始時刻（撮像部５２のシャッターが開となる時刻）と露光終了時刻（撮像部５２のシャッターが閉となる時刻）との中間の時刻によって設定される。
【０１１９】
ステップＳ４２５において、位置決定部２５２は、同時刻の実位置ＰＶｖおよびエンコーダ値ＰＶｍと、当該実位置ＰＶｖの算出元となる撮像時刻のエンコーダ値ＰＶｍｓとを用いて、推定位置ＰＶを算出する。より具体的には、ステップＳ４２５では、位置決定部２５２は、次の（式９）を用いて、推定位置ＰＶを算出する。
【０１２０】
ＰＶ＝ＰＶｖ＋（ＰＶｍ−ＰＶｍｓ）  ・・・（式９）
ステップＳ４２６において、位置決定部２５２は、算出した推定位置ＰＶをフィードバック制御部２５４に出力する。また、位置決定部２５２は、この推定位置ＰＶを参照推定位置ＰＶｐとし、この時刻のエンコーダ値ＰＶｍを参照エンコーダ値ＰＶｍｐとして記憶する。
【０１２１】
ステップＳ４２７において、位置決定部２５２は、実位置ＰＶｖの出力が１回以上であるか否かを判断する。位置決定部２５２は、実位置ＰＶｖの出力が１回以上であると判断した場合（ステップＳ４２７においてＹＥＳ）、制御をステップＳ４２８に切り替える。そうでない場合には（ステップＳ４２７においてＮＯ）、プロセッサ２１４は、制御をステップＳ４２６に切り替える。
【０１２２】
ステップＳ４２８において、位置決定部２５２は、エンコーダ値ＰＶｍ、参照推定位置ＰＶｐ、および、参照エンコーダ値ＰＶｍｐを用いて、推定位置ＰＶを算出する。より具体的には、ステップＳ４２８では、位置決定部２５２は、次の（式１０）を用いて、推定位置ＰＶを算出する。
【０１２３】
ＰＶ＝ＰＶｐ＋ＰＶｍ―ＰＶｍｐ  ・・・（式１０）
＜Ｈ．付記＞
以上のように、本実施形態は以下のような開示を含む。
【０１２４】
［構成１］
対象物を移動させるための移動機構（４００）と、
撮像指示を受け付けたことに基づいて前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を計測するための視覚センサ（５０）と、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構（４００）の位置に関する位置関連情報を検出するための検出部（４５０）と、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するための位置決定部（２５２）と、
設定されている制御パラメータに従って、前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに生成し、当該移動指令を前記制御周期ごとに前記移動機構（４００）に出力するフィードバック制御部（２５４）と、
予め決められた移動指令を前記移動機構（４００）に順次出力して前記検出部（４５０）から得られるフィードバック値としての位置関連情報の推移に基づいて、前記制御パラメータを調整するための調整部（２６４）とを備える、制御システム（１）。
【０１２５】
［構成２］
対象物を移動させるための移動機構（４００）と、
撮像指示を受け付けたことに基づいて前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を計測するための視覚センサ（５０）と、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め決められた制御周期ごとに、所定の制御パラメータに従って、前記実位置を前記対象物の目標位置に合わせるための移動指令を生成し、当該移動指令を前記移動機構（４００）に出力するフィードバック制御部（２５４）と、
予め決められた移動指令を前記移動機構（４００）に順次出力して前記視覚センサ（５０）から得られるフィードバック値としての実位置の推移に基づいて、前記制御パラメータを調整するための調整部（２６４）とを備える、制御システム（１）。
【０１２６】
［構成３］
前記調整部（２６４）は、
前記推移に基づいて決定された前記制御パラメータの値を基準として、前記フィードバック制御部（２５４）に設定され得る複数の制御パラメータ候補を生成し、
前記複数の制御パラメータ候補の各々を前記フィードバック制御部（２５４）に順次設定するとともに、各制御パラメータ候補について、前記対象物を所定位置から前記目標位置に移動するまでに要したアライメント時間を計測し、
前記複数の制御パラメータ候補の内、前記アライメント時間が最短となる制御パラメータ候補を最適化結果としての前記制御パラメータとして選択する、構成１または２に記載の制御システム（１）。
【０１２７】
［構成４］
前記調整部（２６４）は、予め決められた複数の倍率のそれぞれを前記基準の制御パラメータに乗算することで、前記複数の制御パラメータ候補を生成する、構成３に記載の制御システム（１）。
【０１２８】
［構成５］
前記調整部（２６４）は、
前記推移における単位時間当たりの最大変化率を算出し、
前記推移において前記最大変化率が表れる時点と、前記最大変化率とに基づいて、前記フィードバック制御部（２５４）による制御対象の遅れ時間を算出し、
前記遅れ時間に基づいて、前記制御パラメータを決定する、構成１〜４のいずれか１項に記載の制御システム（１）。
【０１２９】
［構成６］
前記制御パラメータは、前記フィードバック制御部（２５４）の比例制御に用いられる比例ゲインを含む、構成１〜５のいずれか１項に記載の制御システム（１）。
【０１３０】
［構成７］
対象物を移動させるための移動機構（４００）の制御方法であって、
撮像指示を視覚センサ（５０）に出力することで前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を前記視覚センサ（５０）に計測させるステップと、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構（４００）の位置に関する位置関連情報を検出するステップと、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するステップと、
設定されている制御パラメータに従って、前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに生成し、当該移動指令を前記制御周期ごとに前記移動機構（４００）に出力するステップと、
予め決められた移動指令を前記移動機構（４００）に順次出力して前記検出するステップで得られるフィードバック値としての位置関連情報の推移に基づいて、前記制御パラメータを調整するステップとを備える、制御方法。
【０１３１】
［構成８］
対象物を移動させるための移動機構（４００）の制御プログラムであって、
前記制御プログラムは、前記移動機構（４００）を制御するためのコントローラに、
撮像指示を視覚センサ（５０）に出力することで前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を前記視覚センサ（５０）に計測させるステップと、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構（４００）の位置に関する位置関連情報を検出するステップと、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するステップと、
設定されている制御パラメータに従って、前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに生成し、当該移動指令を前記制御周期ごとに前記移動機構（４００）に出力するステップと、
予め決められた移動指令を前記移動機構（４００）に順次出力して前記検出するステップで得られるフィードバック値としての位置関連情報の推移に基づいて、前記制御パラメータを調整するステップとを実行させる、制御プログラム。
【０１３２】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３３】
１  制御システム、４，７  ベースプレート、６，９  ボールネジ、１２  特徴部分、５０  視覚センサ、５２  撮像部、５４  画像処理部、１００  画像処理装置、１０２，１０４  カメラ、１１０，２１４  プロセッサ、１１２  ＲＡＭ、１１４  表示コントローラ、１１６  システムコントローラ、１１８  Ｉ／Ｏコントローラ、１２０  ハードディスク、１２２  カメラインターフェイス、１２２ａ  画像バッファ、１２４  入力インターフェイス、１２６  コントローラインターフェイス、１２８，２２８  通信インターフェイス、１３０，２２２  メモリカードインターフェイス、１３２  表示部、１３４  キーボード、１３６，２２４  メモリカード、１５０  制御プログラム、２１０  主制御ユニット、２１２  チップセット、２１６  不揮発性メモリ、２１８  主メモリ、２２０  システムクロック、２２６  内部バス、２３０  内部バスコントローラ、２３２  制御回路、２３４  内部バス制御回路、２３６  バッファメモリ、２３８  フィールドバスコントローラ、２５２  位置決定部、２５４  フィードバック制御部、２５６  減算部、２５８  乗算部、２６２  制御パラメータ、２６４  調整部、４００  移動機構、４０２，４０２Ｘ，４０２Ｙ  サーボドライバ、４１０，４１０Ｘ，４１０Ｙ  サーボモータ、４２０  ステージ、４５０  エンコーダ。
【図１】
2019188551.tif 000003
【図２】
2019188551.tif 000004
【図３】
2019188551.tif 000005
【図４】
2019188551.tif 000006
【図５】
2019188551.tif 000007
【図６】
2019188551.tif 000008
【図７】
2019188551.tif 000009
【図８】
2019188551.tif 000010
【図９】
2019188551.tif 000011