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