(57)【要約】【課題】視覚センサの撮像時に生じ得る被写体ぶれを抑制する。【解決手段】制御システムは、対象物を移動させる移動機構と、対象物を撮像して得られた画像から対象物の実位置を計測する視覚センサと、撮像間隔よりも短い制御周期ごとに移動機構の位置関連情報を検出する検出部と、実位置と位置関連情報とに基づいて、対象物の推定位置を決定する位置決定部と、推定位置を目標位置に合わせる移動指令を移動機構に出力するフィードバック制御部と、移動機構の移動速度が所定値よりも小さいときに対象物を撮像させるために、撮像指示の出力タイミングと移動指令と実位置の更新タイミングとの少なくとも１つを調整する調整部とを備える。【選択図】図１
2019188550.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）制御回路２３２と、内部バス制御回路２３４とを含む。
【００６７】
メモリカードインターフェイス２２２は、主制御ユニット２１０に対して着脱可能なメモリカード２２４とプロセッサ２１４とを接続する。
【００６８】
フィールドバスコントローラ２３８は、フィールドネットワークに接続するための通信インターフェイスである。コントローラ２００は、フィールドバスコントローラ２３８を介してサーボドライバ３００（たとえば、サーボドライバ３００Ｘ，３００Ｙ，３００θ）と接続される。当該フィールドネットワークには、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが採用される。
【００６９】
＜Ｄ．コントローラ２００の制御構造＞
上述のように、コントローラ２００は、移動機構４００の移動速度が所定値よりも小さいときに視覚センサ５０に撮像処理を実行させることで被写体ぶれを抑制する。被写体ぶれを抑制するための方法としては、（ａ）視覚センサ５０に撮像トリガＴＲを出力するタイミングを調整することと、（ｂ）サーボドライバ３００に対する移動指令ＭＶを調整することと、（ｃ）視覚センサ５０によって計測されたワークＷの実位置ＰＶｖを更新するタイミングを調整することとが挙げられる。
【００７０】
以下では、図５〜図９を参照して、被写体ぶれの抑制方法（ａ）〜（ｃ）について順に説明する。
【００７１】
（Ｄ１．制御フロー１）
まず、図５および図６を参照して、上記抑制方法（ａ）について説明する。本例においては、コントローラ２００は、移動機構４００の移動速度が所定値よりも小さいときに、撮像トリガＴＲを視覚センサ５０に出力する。
【００７２】
図５は、撮像トリガＴＲの出力タイミングを調整するための制御フローを示す図である。図５に示される処理は、コントローラ２００のプロセッサ２１４がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００７３】
ステップＳ１１０において、プロセッサ２１４は、計測時間ｔをゼロに初期化する。
ステップＳ１２０において、プロセッサ２１４は、視覚センサ５０が撮像可能状態であるか否かを判断する。ここでいう撮像可能状態とは、撮像指示を待っている状態のことをいう。典型的には、視覚センサ５０が撮像トリガＴＲを受け付けてから撮像が終了するまでの時間は撮像不可能状態であり、それ以外の時間は撮像可能状態である。プロセッサ２１４は、視覚センサ５０が撮像可能状態であると判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１３０に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、プロセッサ２１４は、制御をステップＳ１３４に切り替える。
【００７４】
ステップＳ１３０において、プロセッサ２１４は、移動機構４００の現在の移動速度が所定値以下であるか否かを判断する。当該移動速度は、たとえば、エンコーダ４１２によって検出されるエンコーダ値ＰＶｍから算出される。あるいは、当該移動速度は、サーボドライバ３００に出力される移動指令ＭＶから特定される。プロセッサ２１４は、移動機構４００の現在の移動速度が所定値以下であると判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３２に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、プロセッサ２１４は、制御をステップＳ１３４に切り替える。
【００７５】
ある局面において、ステップＳ１３０において、プロセッサ２１４は、各軸方向における移動機構４００の移動速度が全て所定値ｔｈ以下であるか否かを判断する。他の局面において、ステップＳ１３０において、プロセッサ２１４は、移動機構４００の移動速度が所定値ｔｈ以下であるか否かを判断してもよい。一例として、移動機構４００がＸ軸およびＹ軸の２軸駆動である場合には、プロセッサ２１４は、Ｘ軸方向の移動速度とＹ軸方向の移動速度との２乗和の平方根を移動機構４００の移動速度として算出し、当該移動速度所定値ｔｈ以下であるか否かを判断する。
【００７６】
ステップＳ１３２において、プロセッサ２１４は、上述の調整部２５６（図１参照）として、撮像トリガＴＲを視覚センサ５０に出力する。視覚センサ５０は、撮像トリガＴＲを受け付けたことに応じて撮像処理を開始する。その後、視覚センサ５０は、得られた画像データに対して所定の画像解析を行ない、画像データに基づいてワークＷの実位置ＰＶｖを計測する。
【００７７】
ステップＳ１３４において、プロセッサ２１４は、上述のフィードバック制御部２５４（図１参照）として、視覚センサ５０によって計測されたワークＷの実位置ＰＶｖと、エンコーダ４１２から得られるエンコーダ値ＰＶｍとに基づいて、現時点におけるワークＷの推定位置ＰＶを決定する。推定位置ＰＶの決定方法の詳細については後述する。
【００７８】
ステップＳ１３６において、プロセッサ２１４は、上述のフィードバック制御部２５４（図１参照）として、ステップＳ１３４で決定されたワークＷの推定位置ＰＶを目標位置ＳＰに合わせるための移動指令ＭＶを生成し、当該移動指令ＭＶをサーボドライバ３００に出力する。
【００７９】
ステップＳ１３８において、プロセッサ２１４は、計測時間ｔに制御周期Ｔｓを加算し、計測時間ｔを更新する。
【００８０】
ステップＳ１４０において、プロセッサ２１４は、移動機構４００の制御処理を終了するか否かを判断する。一例として、プロセッサ２１４は、停止操作を受け付けたことに基づいて、移動機構４００の制御処理を終了する。プロセッサ２１４は、移動機構４００の制御処理を終了すると判断した場合（ステップＳ１４０においてＹＥＳ）、図５に示される処理を終了する。そうでない場合には（ステップＳ１４０においてＮＯ）、プロセッサ２１４は、制御をステップＳ１２０に戻す。
【００８１】
以上のように、プロセッサ２１４は、ステップＳ１３０，Ｓ１３２の処理により、移動機構４００の移動速度が所定値以下の場合に視覚センサ５０に撮像トリガＴＲを出力し、移動機構４００の移動速度が所定値を超えている場合には視覚センサ５０に撮像トリガＴＲを出力しない。
【００８２】
図６を参照して、図５のステップＳ１３０，Ｓ１３２での撮像トリガＴＲの出力タイミングの具体例について説明する。図６は、移動機構４００の移動速度の推移の一例を示す図である。
【００８３】
時刻ｔ１１において、視覚センサ５０の状態が撮像不可能状態から撮像可能状態に変化したとする。このとき、プロセッサ２１４は、移動機構４００の移動機構の移動速度が所定値ｔｈを超えているので、視覚センサ５０が撮像可能状態であったとしても視覚センサ５０に撮像トリガＴＲを出力しない。
【００８４】
時刻ｔ１２において、移動機構４００の移動速度が所定値ｔｈになったとする。このことに基づいて、視覚センサ５０は、撮像トリガＴＲを視覚センサ５０に出力する。このように、視覚センサ５０は、視覚センサ５０が撮像可能状態である場合において、移動機構４００の移動速度が所定値ｔｈよりも小さいときに、撮像トリガＴＲを視覚センサ５０に出力する。視覚センサ５０は、撮像トリガＴＲを受け付けたことに基づいて、撮像処理とワークＷの実位置ＰＶｖの計測処理とを順次実行する。
【００８５】
時刻ｔ１３において、再び、視覚センサ５０の状態が撮像不可能状態から撮像可能状態に変化したとする。このとき、移動機構４００の移動機構の移動速度は、所定値ｔｈ以下であるので、プロセッサ２１４は、撮像トリガＴＲを視覚センサ５０に出力する。
【００８６】
このように、移動機構４００の移動速度が所定値ｔｈ以下のときに撮像トリガＴＲが出力されることで、被写体ぶれが抑制される。これにより、視覚センサ５０は、被写体ぶれが抑制された画像データを取得でき、ワークＷの位置計測精度の低下を抑制することができる。
【００８７】
（Ｄ２．制御フロー２）
次に、図７および図８を参照して、上記抑制方法（ｂ）について説明する。本例においては、コントローラ２００は、視覚センサ５０がワークＷを撮像している間において移動機構４００の移動速度が所定値よりも小さくなるように移動指令ＭＶを調整する。
【００８８】
図７は、サーボドライバ３００に対する移動指令ＭＶを調整するための制御フローを示す図である。図７に示される処理は、コントローラ２００のプロセッサ２１４がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００８９】
ステップＳ２１０において、プロセッサ２１４は、計測時間ｔをゼロに初期化する。
ステップＳ２２２において、プロセッサ２１４は、視覚センサ５０によって計測されたワークＷの実位置ＰＶｖと、エンコーダ４１２から得られるエンコーダ値ＰＶｍとに基づいて、現時点におけるワークＷの推定位置ＰＶを決定する。推定位置ＰＶの決定方法の詳細については後述する。
【００９０】
ステップＳ２２４において、プロセッサ２１４は、上述のフィードバック制御部２５４（図１参照）として、ステップＳ２２２で決定されたワークＷの推定位置ＰＶを目標位置ＳＰに合わせるための移動指令ＭＶを生成し、当該移動指令ＭＶをサーボドライバ３００に出力する。
【００９１】
ステップＳ２３０において、プロセッサ２１４は、視覚センサ５０が撮像中であるか否か（すなわち、シャッターが開いているか否か）を判断する。一例として、プロセッサ２１４は、視覚センサ５０の状態情報を定期的に視覚センサ５０から取得し、当該情報に基づいて視覚センサ５０が撮像中であるか否かを判断する。あるいは、視覚センサ５０が撮像トリガＴＲを受けた後にシャッターが開くタイミング、期間が決まっている場合には、プロセッサ２１４は、撮像トリガＴＲの出力タイミングに基づいて、視覚センサ５０が撮像中であるか否かを判断してもよい。プロセッサ２１４は、視覚センサ５０が撮像中であると判断した場合（ステップＳ２３０においてＹＥＳ）、制御をステップＳ２３２に切り替える。そうでない場合には（ステップＳ２３０においてＮＯ）、プロセッサ２１４は、制御をステップＳ２３４に切り替える。
【００９２】
ステップＳ２３２において、プロセッサ２１４は、上述の調整部２５６（図１参照）として、移動機構４００の移動速度が所定値以下になるようにステップＳ２２４で生成された移動指令ＭＶを制限する。より具体的には、プロセッサ２１４は、移動機構４００の現時点の移動速度が所定値を超えている場合には移動指令ＭＶを制限し、移動機構４００の現時点の移動速度が所定値以下である場合には移動指令ＭＶを制限しない。
【００９３】
ステップＳ２３４において、プロセッサ２１４は、ステップＳ２３０でＮＯと判断された場合には、ステップＳ２２４で生成された移動指令ＭＶをサーボドライバ３００に出力する。一方で、プロセッサ２１４は、ステップＳ２３０でＹＥＳと判断された場合には、ステップＳ２３２で制限された移動指令ＭＶをサーボドライバ３００に出力する。
【００９４】
ステップＳ２３６において、プロセッサ２１４は、計測時間ｔに制御周期Ｔｓを加算し、計測時間ｔを更新する。
【００９５】
ステップＳ２４０において、プロセッサ２１４は、移動機構４００の制御処理を終了するか否かを判断する。一例として、プロセッサ２１４は、停止操作を受け付けたことに基づいて、移動機構４００の制御処理を終了する。プロセッサ２１４は、移動機構４００の制御処理を終了すると判断した場合（ステップＳ２４０においてＹＥＳ）、図７に示される処理を終了する。そうでない場合には（ステップＳ２４０においてＮＯ）、プロセッサ２１４は、制御をステップＳ２２２に戻す。
【００９６】
以上のように、プロセッサ２１４は、ステップＳ２３０，Ｓ２３２の処理により、視覚センサ５０がワークを撮像している間において移動機構４００の移動速度が所定値よりも小さくなるような移動指令ＭＶを制限する。
【００９７】
図８を参照して、図７のステップＳ２３０，Ｓ２３２での移動指令ＭＶの制限処理の具体例について説明する。図８は、移動機構４００の移動速度の推移の一例を示す図である。
【００９８】
時刻ｔ２１において、視覚センサ５０の状態が撮像不可能状態から撮像可能状態に変化したとする。このことに基づいて、プロセッサ２１４は、撮像トリガＴＲを視覚センサ５０に出力する。これにより、視覚センサ５０は、撮像処理を開始する。ここでいう撮像処理とは、画像を生成するために実行される処理を意味し、たとえば、シャッターの開閉処理などを含む。プロセッサ２１４は、視覚センサ５０の撮像処理中において、移動機構４００の移動速度を所定値ｔｈ以下に制限するための移動指令ＭＶを生成し、サーボドライバ３００に出力する。これにより、移動機構４００の速度は、視覚センサ５０の撮像処理中において所定値ｔｈ以下となる。
【００９９】
時刻ｔ２２において、視覚センサ５０の撮像処理が完了したとする。このことに基づいて、プロセッサ２１４は、移動機構４００の移動速度の制限を解除する。
【０１００】
このように、プロセッサ２１４は、視覚センサ５０がワークを撮像している間において移動機構４００の移動速度が所定値ｔｈよりも小さくなるような移動指令を生成する。これにより、視覚センサ５０は、被写体ぶれが抑制された画像データを取得でき、ワークＷの位置計測精度の低下を抑制することができる。
【０１０１】
（Ｄ３．制御フロー３）
次に、図９および図１０を参照して、上記抑制方法（ｃ）について説明する。本例においては、コントローラ２００は、視覚センサ５０から新たな実位置ＰＶｖが得られたときに、視覚センサ５０による撮像が可能な状態になっている場合には、実位置ＰＶｖの更新よりも視覚センサ５０の撮像を優先する。そして、視覚センサ５０の撮像が完了したことに基づいて、現在記憶されている実位置ＰＶｖを新たな実位置ＰＶｖで更新する。通常、実位置ＰＶｖの更新直後においては、移動機構４００の速度が上がる傾向にあるが、実位置ＰＶｖの更新が撮像中には止められることで、被写体ぶれが抑制される。
【０１０２】
図９は、ワークＷの実位置ＰＶｖを更新するタイミングを調整するための制御フローを示す図である。図９に示される処理は、コントローラ２００のプロセッサ２１４がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１０３】
ステップＳ３１０において、プロセッサ２１４は、計測時間ｔをゼロに初期化する。
ステップＳ３２０において、プロセッサ２１４は、更新待機フラグがＴＲＵＥに設定されているか否かを判断する。更新待機フラグは、視覚センサ５０によって計測された実位置ＰＶｖの更新タイミングを管理するためのフラグである。プロセッサ２１４は、更新待機フラグがＴＲＵＥに設定されていると判断した場合（ステップＳ３２０においてＹＥＳ）、制御をステップＳ３５０に切り替える。そうでない場合には（ステップＳ３５０においてＮＯ）、プロセッサ２１４は、制御をステップＳ３３０に切り替える。
【０１０４】
ステップＳ３３０において、プロセッサ２１４は、視覚センサ５０によるワークＷの位置計測が完了しているか否かを判断する。プロセッサ２１４は、視覚センサ５０によるワークＷの位置計測が完了していると判断した場合（ステップＳ３３０においてＹＥＳ）、制御をステップＳ３３２に切り替える。そうでない場合には（ステップＳ３３０においてＮＯ）、プロセッサ２１４は、制御をステップＳ３６０に切り替える。
【０１０５】
ステップＳ３３２において、プロセッサ２１４は、新たに計測されたワークＷの実位置ＰＶｖを視覚センサ５０から取得する。
【０１０６】
ステップＳ３４０において、プロセッサ２１４は、視覚センサ５０の状態が撮像可能状態であるか否かを判断する。プロセッサ２１４は、視覚センサ５０の状態が撮像可能状態であると判断した場合（ステップＳ３４０においてＹＥＳ）、制御をステップＳ３４２に切り替える。そうでない場合には（ステップＳ３４０においてＮＯ）、プロセッサ２１４は、制御をステップＳ３５４に切り替える。
【０１０７】
ステップＳ３４２において、プロセッサ２１４は、更新待機フラグをＴＲＵＥに設定する。
【０１０８】
ステップＳ３４４において、プロセッサ２１４は、撮像トリガＴＲを視覚センサ５０に出力する。
【０１０９】
ステップＳ３５０において、プロセッサ２１４は、視覚センサ５０による撮像が完了したか否かを判断する。プロセッサ２１４は、視覚センサ５０による撮像が完了したと判断した場合（ステップＳ３５０においてＹＥＳ）、制御をステップＳ３５２に切り替える。そうでない場合には（ステップＳ３５０においてＮＯ）、プロセッサ２１４は、制御をステップＳ３６０に切り替える。
【０１１０】
ステップＳ３５２において、プロセッサ２１４は、更新待機フラグをＦＡＬＳＥに設定する。
【０１１１】
ステップＳ３５４において、プロセッサ２１４は、現在のワークＷの実位置ＰＶｖを、ステップＳ３３２で取得された新たな実位置ＰＶｖで更新する。現在のワークＷの実位置ＰＶｖは、たとえば、コントローラ２００の不揮発性メモリ２１６や主メモリ２１８（図４参照）内で管理される。
【０１１２】
ステップＳ３６０において、プロセッサ２１４は、現在のワークＷの実位置ＰＶｖと、エンコーダ４１２から得られるエンコーダ値ＰＶｍとに基づいて、現時点におけるワークＷの推定位置ＰＶを決定する。推定位置ＰＶの決定方法の詳細については後述する。
【０１１３】
ステップＳ３６２において、プロセッサ２１４は、上述のフィードバック制御部２５４（図１参照）として、ワークＷの推定位置ＰＶを目標位置ＳＰに合わせるための移動指令ＭＶを生成し、当該移動指令ＭＶをサーボドライバ３００に出力する。
【０１１４】
ステップＳ３６４において、プロセッサ２１４は、計測時間ｔに制御周期Ｔｓを加算し、計測時間ｔを更新する。
【０１１５】
ステップＳ３７０において、プロセッサ２１４は、移動機構４００の制御処理を終了するか否かを判断する。一例として、プロセッサ２１４は、停止操作を受け付けたことに基づいて、移動機構４００の制御処理を終了する。プロセッサ２１４は、移動機構４００の制御処理を終了すると判断した場合（ステップＳ３７０においてＹＥＳ）、図９に示される処理を終了する。そうでない場合には（ステップＳ３７０においてＮＯ）、プロセッサ２１４は、制御をステップＳ３２０に戻す。
【０１１６】
以上のように、プロセッサ２１４は、視覚センサ５０が撮像可能状態である場合に、ワークＷの実位置ＰＶｖが視覚センサ５０によって新たに計測されたときには、視覚センサ５０の撮像が終了したことに基づいて前回に計測された実位置ＰＶｖを新たに計測された実位置ＰＶｖで更新する。すなわち、プロセッサ２１４は、視覚センサ５０の撮像が終了するまでは実位置ＰＶｖを更新せずに、視覚センサ５０の撮像が終了した後に実位置ＰＶｖを更新する。
【０１１７】
位置決定部２５２は、実位置ＰＶｖの更新前においては、更新前の実位置ＰＶｖとエンコーダ値ＰＶｍとに基づいて、推定位置ＰＶを決定し、実位置ＰＶｖの更新後においては、更新後の実位置ＰＶｖとエンコーダ値ＰＶｍとに基づいて、推定位置ＰＶを決定する。
【０１１８】
＜Ｅ．推定位置ＰＶの決定処理＞
位置決定部２５２は、たとえば、図１０のフローチャートに示すような処理を行なうことで、推定位置ＰＶを算出する。図１０は、図５に示されるステップＳ１３４、図７に示されるステップＳ２２２、および図９に示されるステップＳ３６０のサブルーチンの処理内容を示すフローチャートである。
【０１１９】
ステップＳ４２１において、位置決定部２５２は、視覚センサ５０から実位置ＰＶｖが得られているか否かを検出する。位置決定部２５２は、実位置ＰＶｖが得られていれば（ステップＳ４２１においてＹＥＳ）、制御をステップＳ４２２に切り替える。そうでない場合には（ステップＳ４２１においてＮＯ）、位置決定部２５２は、制御をステップＳ４２７に切り替える。
【０１２０】
ステップＳ４２２において、位置決定部２５２は、実位置ＰＶｖが正常値であるか否かを判断する。たとえば、位置決定部２５２は、実位置ＰＶｖが所定範囲内の値であれば正常値であると判断する。位置決定部２５２は、実位置ＰＶｖが正常値であると判断した場合（ステップＳ４２２においてＹＥＳ）、制御をステップＳ４２３に切り替える。そうでない場合には（ステップＳ４２７においてＮＯ）、位置決定部２５２は、制御をステップＳ４２７に切り替える。
【０１２１】
ステップＳ４２３において、位置決定部２５２は、実位置ＰＶｖの入力を受け付ける。ステップＳ４２４において、位置決定部２５２は、実位置ＰＶｖの入力を受け付けると、当該実位置ＰＶｖの算出の元となる撮像時刻のエンコーダ値ＰＶｍｓの推定を行なう。なお、撮像部５２の露光時間が長い場合、撮像時刻は、たとえば、露光開始時刻（撮像部５２のシャッターが開となる時刻）と露光終了時刻（撮像部５２のシャッターが閉となる時刻）との中間の時刻によって設定される。
【０１２２】
ステップＳ４２５において、位置決定部２５２は、同時刻の実位置ＰＶｖおよびエンコーダ値ＰＶｍと、当該実位置ＰＶｖの算出元となる撮像時刻のエンコーダ値ＰＶｍｓとを用いて、推定位置ＰＶを算出する。より具体的には、ステップＳ４２５では、位置決定部２５２は、次の（式１）を用いて、推定位置ＰＶを算出する。
【０１２３】
ＰＶ＝ＰＶｖ＋（ＰＶｍ−ＰＶｍｓ）  ・・・（式１）
ステップＳ４２６において、位置決定部２５２は、算出した推定位置ＰＶをフィードバック制御部２５４に出力する。また、位置決定部２５２は、この推定位置ＰＶを参照推定位置ＰＶｐとし、この時刻のエンコーダ値ＰＶｍを参照エンコーダ値ＰＶｍｐとして記憶する。
【０１２４】
ステップＳ４２７において、位置決定部２５２は、実位置ＰＶｖの出力が１回以上であるか否かを判断する。位置決定部２５２は、実位置ＰＶｖの出力が１回以上であると判断した場合（ステップＳ４２７においてＹＥＳ）、制御をステップＳ４２８に切り替える。そうでない場合には（ステップＳ４２７においてＮＯ）、プロセッサ２１４は、制御をステップＳ４２６に切り替える。
【０１２５】
ステップＳ４２８において、位置決定部２５２は、エンコーダ値ＰＶｍ、参照推定位置ＰＶｐ、および、参照エンコーダ値ＰＶｍｐを用いて、推定位置ＰＶを算出する。より具体的には、ステップＳ４２８では、位置決定部２５２は、次の（式２）を用いて、推定位置ＰＶを算出する。
【０１２６】
ＰＶ＝ＰＶｐ＋ＰＶｍ―ＰＶｍｐ  ・・・（式２）
＜Ｆ．付記＞
以上のように、本実施形態は以下のような開示を含む。
【０１２７】
［構成１］
対象物を移動させるための移動機構（４００）と、
撮像指示を受け付けたことに基づいて前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を計測するための視覚センサ（５０）と、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構（４００）の位置に関する位置関連情報を検出するための検出部（４１２）と、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するための位置決定部（２５２）と、
前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに前記移動機構（４００）に出力するフィードバック制御部（２５４）と、
前記移動機構（４００）の移動速度が所定値よりも小さいときに前記視覚センサ（５０）に前記対象物を撮像させるために、前記撮像指示の出力タイミングと、前記移動指令と、前記実位置の更新タイミングとの少なくとも１つを調整するための調整部（２５６）とを備える、制御システム（１）。
【０１２８】
［構成２］
前記調整部（２５６）は、前記視覚センサ（５０）が撮像可能状態である場合において、前記位置関連情報から特定される前記移動機構（４００）の移動速度が所定値よりも小さいときに、前記撮像指示を前記視覚センサ（５０）に出力する、構成１に記載の制御システム（１）。
【０１２９】
［構成３］
前記調整部（２５６）は、前記視覚センサ（５０）が前記対象物を撮像している間において前記移動機構（４００）の移動速度が前記所定値よりも小さくなるような移動指令を前記フィードバック制御部（２５４）に生成させる、構成１に記載の制御システム（１）。
【０１３０】
［構成４］
前記位置決定部（２５２）は、前記視覚センサ（５０）が撮像可能状態である場合に、前記実位置が前記視覚センサ（５０）によって新たに計測されたときには、前回に計測された前記実位置と、前記位置関連情報とに基づいて、前記推定位置を決定する、構成１に記載の制御システム（１）。
【０１３１】
［構成５］
前記調整部（２５６）は、前記視覚センサ（５０）の撮像が終了したことに基づいて前回に計測された前記実位置を新たに計測された前記実位置で更新する、構成４に記載の制御システム（１）。
【０１３２】
［構成６］
対象物を移動させるための移動機構（４００）の制御方法であって、
撮像指示を視覚センサ（５０）に出力し、前記対象物して得られた画像から前記対象物の実位置を前記視覚センサ（５０）に計測させるステップと、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構（４００）の位置に関する位置関連情報を検出するステップと、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するステップと、
前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに前記移動機構（４００）に出力するステップと、
前記移動機構（４００）の移動速度が所定値よりも小さいときに前記視覚センサ（５０）に前記対象物を撮像させるために、前記撮像指示の出力タイミングと、前記移動指令と、前記実位置の更新タイミングとの少なくとも１つを調整するステップとを備える、制御方法。
【０１３３】
［構成７］
対象物を移動させるための移動機構（４００）の制御プログラムであって、
前記制御プログラムは、前記移動機構（４００）を制御するためのコントローラに、
撮像指示を視覚センサ（５０）に出力し、前記対象物して得られた画像から前記対象物の実位置を前記視覚センサ（５０）に計測させるステップと、
前記撮像指示が前記視覚センサ（５０）に出力される間隔よりも短い予め定められた制御周期ごとに前記移動機構（４００）の位置に関する位置関連情報を検出するステップと、
前記実位置と前記位置関連情報とに基づいて、現時点における前記対象物の推定位置を前記制御周期ごとに決定するステップと、
前記推定位置を前記対象物の目標位置に合わせるための移動指令を前記制御周期ごとに前記移動機構（４００）に出力するステップと、
前記移動機構（４００）の移動速度が所定値よりも小さいときに前記視覚センサ（５０）に前記対象物を撮像させるために、前記撮像指示の出力タイミングと、前記移動指令と、前記実位置の更新タイミングとの少なくとも１つを調整するステップとを実行させる、制御プログラム。
【０１３４】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３５】
１  制御システム、４，７  ベースプレート、６，９  ボールネジ、１２  特徴部分、５０  視覚センサ、５２  撮像部、５４  画像処理部、１００  画像処理装置、１０２，１０４  カメラ、１１０，２１４  プロセッサ、１１２  ＲＡＭ、１１４  表示コントローラ、１１６  システムコントローラ、１１８  Ｉ／Ｏコントローラ、１２０  ハードディスク、１２２  カメラインターフェイス、１２２ａ  画像バッファ、１２４  入力インターフェイス、１２６  コントローラインターフェイス、１２８，２２８  通信インターフェイス、１３０，２２２  メモリカードインターフェイス、１３２  表示部、１３４  キーボード、１３６，２２４  メモリカード、１５０  制御プログラム、２００  コントローラ、２１０  主制御ユニット、２１２  チップセット、２１６  不揮発性メモリ、２１８  主メモリ、２２０  システムクロック、２２６  内部バス、２３０  内部バスコントローラ、２３２  制御回路、２３４  内部バス制御回路、２３６  バッファメモリ、２３８  フィールドバスコントローラ、２５２  位置決定部、２５４  フィードバック制御部、２５６  調整部、３００，３００Ｘ，３００Ｙ  サーボドライバ、４００  移動機構、４１０，４１０Ｘ，４１０Ｙ  サーボモータ、４１２  エンコーダ、４２０  ステージ。
【図１】
2019188550.tif 000003
【図２】
2019188550.tif 000004
【図３】
2019188550.tif 000005
【図４】
2019188550.tif 000006
【図５】
2019188550.tif 000007
【図６】
2019188550.tif 000008
【図７】
2019188550.tif 000009
【図８】
2019188550.tif 000010
【図９】
2019188550.tif 000011
【図１０】
2019188550.tif 000012