(57)【要約】【課題】視覚センサの計測位置に基づいて駆動される移動機構をより滑らかに駆動する技術が望まれている。【解決手段】制御システムは、対象物を移動させる移動機構と、第１時間間隔ごとに対象物を撮像して得られた画像から対象物の実位置を順次計測する視覚センサと、実位置から到達目標位置に対象物を移動させるための必要移動距離を算出する算出部と、必要移動距離と時刻とを少なくとも説明変数とし、移動機構の目標位置を目的変数とする多次関数で表される目標軌道に基づいて、第１時間間隔よりも短い第２時間間隔ごとに、現時刻に対応する目標位置を決定する位置決定部と、当該目標位置に移動機構を移動させる移動制御部とを備える。【選択図】図１
2019188549.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）制御回路２３２と、内部バス制御回路２３４とを含む。
【００６８】
メモリカードインターフェイス２２２は、主制御ユニット２１０に対して着脱可能なメモリカード２２４とプロセッサ２１４とを接続する。
【００６９】
フィールドバスコントローラ２３８は、フィールドネットワークに接続するための通信インターフェイスである。コントローラ２００は、フィールドバスコントローラ２３８を介してサーボドライバ３００（たとえば、サーボドライバ３００Ｘ，３００Ｙ，３００θ）と接続される。当該フィールドネットワークには、たとえば、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが採用される。
【００７０】
＜Ｄ．目標軌道ＴＧの更新処理＞
上述の位置決定部２５２（図１参照）は、視覚センサ５０の撮像周期Ｔｂごとに目標軌道ＴＧを生成する。このとき、位置決定部２５２は、新たに生成された目標軌道ＴＧで前回に生成された目標軌道ＴＧを更新する。すなわち、目標軌道ＴＧは、視覚センサ５０によってワークＷの実位置が計測される度に更新される。これにより、目標軌道ＴＧの誤差は、視覚センサ５０の撮像周期Ｔｂごとに修正される。
【００７１】
典型的には、位置決定部２５２は、目標軌道ＴＧの更新前後で、移動機構４００の速度が変化しないように新たな目標軌道ＴＧを生成する。以下では、図６および図７を参照して、目標軌道ＴＧの更新処理について説明する。
【００７２】
図６は、図１に示される制御システム１の機能構成をさらに具体化した図である。図６に示されるように、コントローラ２００は、算出部２５０と、補正部２５１Ｘ，２５１Ｙと、位置決定部２５２Ｘ，２５２Ｙと、移動制御部２５４Ｘ，２５４Ｙとを含む。
【００７３】
補正部２５１Ｘ、位置決定部２５２Ｘ、および移動制御部２５４Ｘは、Ｘ軸方向の駆動制御を行なうサーボドライバ３００Ｘのための機能構成である。補正部２５１Ｙ、位置決定部２５２Ｙ、および移動制御部２５４Ｙは、Ｙ軸方向の駆動制御を行なうサーボドライバ３００Ｙのための機能構成である。その他の点に関しては、補正部２５１Ｘ，２５１Ｙの機能は同じであり、位置決定部２５２Ｘ，２５２Ｙの機能は同じであり、移動制御部２５４Ｘ，２５４Ｙの機能は同じである。
【００７４】
算出部２５０は、視覚センサ５０によって検出されたワークＷの実位置ＰＶｖと、所定の到達目標位置ＳＰとに基づいて、ワークＷを実位置ＰＶｖから到達目標位置ＳＰに移動させるための移動機構４００の必要移動距離Ｌを算出する。その後、算出部２５０は、移動機構４００の必要移動距離ＬをＸ軸方向の必要移動距離ＬｘとＹ軸方向の必要移動距離Ｌｙとに分解し、必要移動距離Ｌｘを補正部２５１Ｘに出力するとともに、必要移動距離Ｌｙを補正部２５１Ｙに出力する。
【００７５】
補正部２５１Ｘは、移動機構４００の実位置を検出するためのエンコーダ４１２Ｘ（検出部）からのためのエンコーダ値ＰＶｍに基づいて移動機構４００の実位置を特定する。より具体的には、エンコーダ４１２Ｘは、サーボモータ４１０Ｘの移動量に応じてパルス信号を発生する。サーボモータ４１０Ｘに含まれるカウンタは、エンコーダ４１２Ｘからパルス信号を受け、当該パルス信号に含まれるパルス数をカウントすることで移動機構４００の移動量をエンコーダ値ＰＶｍとして計測する。エンコーダ値ＰＶｍは、制御周期Ｔｓごとに補正部２５１にコントローラ２００に入力される。補正部２５１は、移動機構４００の移動量に相当するエンコーダ値ＰＶｍに基づいて、Ｘ方向における移動機構４００の実位置を特定する。
【００７６】
補正部２５１Ｘは、移動機構４００の実位置と目標位置ＳＰ（ｔ）との位置偏差Ｅｎ（ｔ）を誤差として算出する。そして、補正部２５１Ｘは、必要移動距離Ｌｘに位置偏差Ｅｎ（ｔ）で補正し、補正後の必要移動距離Ｌｍを位置決定部２５２Ｘに出力する。補正部２５１Ｙは、補正部２５１Ｘと同様に、エンコーダ４１２Ｙからのエンコーダ値ＰＶｍに基づいて、Ｙ方向における必要移動距離Ｌｍを位置決定部２５２Ｙに出力する。
【００７７】
位置決定部２５２Ｘは、視覚センサ５０の撮像周期Ｔｂが到来したことに基づいて、必要移動距離Ｌｍから目標軌道ＴＧを生成する。図７は、更新前の目標軌道ＴＧ１と、更新後の目標軌道ＴＧ２とを示す図である。
【００７８】
図７に示されるように、時刻ｔ５において、視覚センサ５０によりワークＷの実位置ＰＶｖが計測され、目標軌道が更新されるとする。補正部２５１Ｘは、目標軌道の更新のタイミングにおいて検出された移動機構４００の実位置と、当該タイミングにおける移動機構４００の目標位置との位置偏差Ｅｎ（ｔ）で、必要移動距離Ｌを補正する。図７の例では、必要移動距離Ｌに位置偏差Ｅｎ（ｔ５）を加算することで、必要移動距離Ｌが必要移動距離Ｌｍに補正されている。その後、位置決定部２５２Ｘは、補正後の必要移動距離Ｌｍに基づいて、新たな目標軌道ＴＧ２を生成する。
【００７９】
これにより、目標軌道ＴＧ１から目標軌道ＴＧ２に更新する過程で、移動機構４００の位置の誤差が吸収され、移動機構４００の速度が急変することが防止される。その結果、移動機構４００上におけるワークＷのすべりや、移動機構４００の位置決め後における残留振動が抑制され、結果として、ワークＷのアライメント時間が短縮される。
【００８０】
位置決定部２５２Ｘは、更新後の目標軌道ＴＧ２に基づいて、現時刻ｔに対応する目標位置ＳＰ（ｔ）を決定し、当該目標位置ＳＰ（ｔ）を制御周期Ｔｓごとに移動制御部２５４Ｘに出力する。移動制御部２５４Ｘの機能については、図１で説明した移動制御部２５４と同じであるので、その説明については繰り返さない。
【００８１】
＜Ｅ．コントローラ２００の制御構造＞
図８を参照して、コントローラ２００の制御構造について説明する。図８は、コントローラ２００が実行する制御処理の一部を表わすフローチャートである。図８に示される処理は、コントローラ２００のプロセッサ２１４がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【００８２】
図８に示される処理は、ある軸方向に対する制御フローを表わす。すなわち、実際には、図８に示されるステップＳ１３０，Ｓ１５０以外の処理は、軸方向の分だけ並列に実行される。
【００８３】
ステップＳ１１０において、プロセッサ２１４は、計測時刻ｔ（現時刻）をゼロに初期化する。
【００８４】
ステップＳ１３０において、プロセッサ２１４は、視覚センサ５０からワークＷの位置計測が完了したことを示す情報を受け付けたか否かを判断する。プロセッサ２１４は、視覚センサ５０からワークＷの位置計測が完了したことを示す情報を受け付けたと判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３１に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、プロセッサ２１４は、制御をステップＳ１３８に切り替える。
【００８５】
ステップＳ１３１において、プロセッサ２１４は、上述の算出部２５０（図１参照）として、視覚センサ５０によって検出されたワークＷの実位置ＰＶｖと、所定の到達目標位置ＳＰとに基づいて、ワークＷを実位置ＰＶｖから到達目標位置ＳＰに移動させるための移動機構４００の必要移動距離Ｌを算出する。
【００８６】
ステップＳ１３２において、プロセッサ２１４は、上述の補正部２５１（図６参照）として、計測時刻ｔにおける位置偏差Ｅｎ（ｔ）を必要移動距離Ｌに加算し、必要移動距離Ｌを必要移動距離Ｌｍに補正する。必要移動距離Ｌの補正方法については図７で説明した通りであるので、その説明については繰り返さない。
【００８７】
ステップＳ１３４において、プロセッサ２１４は、計測時刻ｔをゼロに初期化する。
ステップＳ１３６において、プロセッサ２１４は、軌道時間Ｔを算出する。軌道時間Ｔは、目標軌道ＴＧの開始点から終了点まで移動機構４００を移動するために要する時間を表わす。一例として、軌道時間Ｔは、下記式（１）に基づいて算出される。
【００８８】
Ｔ＝ｍａｘ｛ｆ（Ａｍａｘ），Ｔｍｉｎ｝         ・・・（１）
上記式（１）に示される「Ａｍａｘ」は、最大加速度を表わす。「ｆ（）」は、最大加速度Ａｍａｘで必要移動距離Ｌを移動機構４００に移動させた場合にかかる軌道時間Ｔを求めるための関数である。「Ｔｍｉｎ」は、所定の最小軌道時間である。「ｍａｘ（α，β）」は、数値α，βの内から最大値を取得するための関数である。
【００８９】
上記式（１）により、軌道時間Ｔは、最小軌道時間Ｔｍｉｎ未満にならないように決められる。最小軌道時間Ｔｍｉｎが設けられていなければ、必要移動距離Ｌが非常に短い場合に、移動機構４００が目標位置にすぐに到達してしまうので、次の撮像タイミングまでの時間を無駄にすることになる。しかしながら、最小軌道時間Ｔｍｉｎが設けられることで、必要移動距離Ｌが非常に短い場合に、移動機構４００は、最大加速度よりも低い加速度で移動することとなり、移動機構４００は、滑らかに移動することができる。一例として、軌道時間Ｔｍｉｎは、平均撮像間隔に対して一定の割合（たとえば、５０％）を乗じることで算出される。
【００９０】
ステップＳ１３８において、プロセッサ２１４は、上述の位置決定部２５２（図１参照）として、ステップＳ１３２で得られた補正後の必要移動距離Ｌｍと、ステップＳ１３６で算出された軌道時間Ｔとに基づいて、現時刻ｔに対応する目標位置ＳＰ（ｔ）を算出する。一例として、目標位置ＳＰ（ｔ）は、下記式（２）に基づいて算出される。
【００９１】
ＳＰ（ｔ）＝Ｌｍ＊［１−（ｔ／Ｔ）３｛１０−１５（ｔ／Ｔ）｝＋６（ｔ／Ｔ）２｝］・・・（２）
上記式（２）の右辺は、移動機構４００の目標軌道ＴＧを表わす。式（２）に示されるように、目標軌道ＴＧは、必要移動距離Ｌｍと時刻ｔとを少なくとも説明変数とし、移動機構４００の目標位置ＳＰ（ｔ）を目的変数とする多次関数で表される。
【００９２】
なお、式（２）においては、目標軌道ＴＧが時刻ｔの５次関数で表されているが、目標軌道ＴＧの次数は、６次以上の多次関数で表されてもよい。また、目標軌道ＴＧは、スプライン補間関数で表されてもよい。
【００９３】
最大加速度Ａｍａｘが与えられた場合、上記式（２）に示される軌道時間Ｔは、下記式（３）〜式（５）で計算される。
【００９４】
ｆ（Ａｍａｘ）＝Ｃ１＊Ｌｍ／Ａｍａｘ                  ・・・（３）
Ｃ１＝６０Ｃ２（２Ｃ２２−３Ｃ２＋１）         ・・・（４）
Ｃ２＝０．５−３１／２／６                     ・・・（５）
ステップＳ１４０において、プロセッサ２１４は、上述の移動制御部２５４（図１参照）として、ステップＳ１３８で得られた目標位置ＳＰ（ｔ）に移動機構４００を移動させるための移動指令ＭＶを生成し、当該移動指令ＭＶをサーボドライバ３００に出力する。
【００９５】
ステップＳ１４２において、プロセッサ２１４は、計測時間ｔに制御周期Ｔｓを加算し、計測時間ｔを更新する。
【００９６】
ステップＳ１５０において、プロセッサ２１４は、目標軌道ＴＧの更新処理を終了するか否かを判断する。一例として、プロセッサ２１４は、目標軌道ＴＧの更新処理の停止命令を受け付けたことに基づいて、図８に示される処理を終了する。プロセッサ２１４は、目標軌道ＴＧの更新処理を終了すると判断した場合（ステップＳ１５０においてＹＥＳ）、図８に示される処理を終了する。そうでない場合には（ステップＳ１５０においてＮＯ）、プロセッサ２１４は、制御をステップＳ１３０に戻す。
【００９７】
なお、上述では、制御周期Ｔｓごとに目標位置ＳＰ（ｔ）が算出される例について説明を行ったが、プロセッサ２１４は、移動機構４００が最終的な目標到達位置ＳＰに到達するまでの間における各時刻の目標位置ＳＰ（ｔ）を一括して算出してもよい。
【００９８】
＜Ｆ．付記＞
以上のように、本実施形態は以下のような開示を含む。
【００９９】
［構成１］
対象物を移動させるための移動機構（４００）と、
撮像指示を受け付けたことに基づいて前記対象物を撮像し、撮像により得られた画像から前記対象物の実位置を計測するための視覚センサ（５０）と、
前記実位置から所定の到達目標位置に前記対象物を移動させるための、前記移動機構（４００）の必要移動距離を算出するための算出部（２５０）と、
前記必要移動距離と時刻とを少なくとも説明変数とし、前記移動機構（４００）の目標位置を目的変数とする多次関数で表される目標軌道に基づいて、前記撮像指示が前記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに、現時刻に対応する目標位置を決定するための位置決定部（２５２）と、
前記位置決定部（２５２）によって決定される目標位置に前記移動機構（４００）を移動させるための移動制御部とを備える、制御システム。
【０１００】
［構成２］
前記多次関数は、５次以上の関数である、構成１に記載の制御システム。
【０１０１】
［構成３］
前記位置決定部（２５２）は、前記移動機構（４００）の加速度が予め定められた最大加速度を超えないように、前記目標軌道を生成する、構成１に記載の制御システム。
【０１０２】
［構成４］
前記位置決定部（２５２）は、前記視覚センサ（５０）が前記対象物の実位置を計測する度に前記目標軌道を生成し、新たに生成された前記目標軌道で前回に生成された前記目標軌道を更新する、構成１〜３のいずれか１項に記載の制御システム。
【０１０３】
［構成５］
前記位置決定部（２５２）は、前記目標軌道の更新前後で、前記移動機構（４００）の速度が変化しないように新たな前記目標軌道を生成する、構成４に記載の制御システム。
【０１０４】
［構成６］
前記制御システムは、
前記制御周期ごとに前記移動機構（４００）の実位置を検出するための検出部（４１２）と、
前記目標軌道の更新のタイミングにおいて前記検出部によって検出された実位置と、前記タイミングにおける前記移動機構の目標位置との位置偏差で、前記必要移動距離を補正するための補正部とをさらに備える、構成５に記載の制御システム。
【０１０５】
［構成７］
対象物を移動させるための移動機構（４００）の制御方法であって、
撮像指示を視覚センサに出力し、前記対象物を撮像して得られた画像から前記対象物の実位置を前記視覚センサに計測させるステップと、
前記実位置から所定の到達目標位置に前記対象物を移動させるための、前記移動機構（４００）の必要移動距離を算出するステップと、
前記必要移動距離と時刻とを少なくとも説明変数とし、前記移動機構（４００）の目標位置を目的変数とする多次関数で表される目標軌道に基づいて、前記撮像指示が前記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに、現時刻に対応する目標位置を決定するステップと、
前記決定するステップで決定される目標位置に前記移動機構（４００）を移動させるステップとを備える、制御方法。
【０１０６】
［構成８］
対象物を移動させるための移動機構（４００）の制御プログラムであって、
前記制御プログラムは、前記移動機構（４００）を制御するためのコントローラ（２００）に、
撮像指示を視覚センサに出力し、前記対象物を撮像して得られた画像から前記対象物の実位置を前記視覚センサに計測させるステップと、
前記実位置から所定の到達目標位置に前記対象物を移動させるための、前記移動機構（４００）の必要移動距離を算出するステップ（Ｓ１３１）と、
前記必要移動距離と時刻とを少なくとも説明変数とし、前記移動機構（４００）の目標位置を目的変数とする多次関数で表される目標軌道に基づいて、前記撮像指示が前記視覚センサに出力される間隔よりも短い予め定められた制御周期ごとに、現時刻に対応する目標位置を決定するステップと、
前記決定するステップで決定される目標位置に前記移動機構（４００）を移動させるステップ（Ｓ１４０）とを実行させる、制御プログラム。
【０１０７】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１０８】
１  制御システム、４，７  ベースプレート、６，９  ボールネジ、１２  特徴部分、５０  視覚センサ、１００  画像処理装置、１０２，１０４  カメラ、１１０，２１４  プロセッサ、１１２  ＲＡＭ、１１４  表示コントローラ、１１６  システムコントローラ、１１８  Ｉ／Ｏコントローラ、１２０  ハードディスク、１２２  カメラインターフェイス、１２２ａ  画像バッファ、１２４  入力インターフェイス、１２６  モーションコントローラインターフェイス、１２８，２２８  通信インターフェイス、１３０，２２２  メモリカードインターフェイス、１３２  表示部、１３４  キーボード、１３６，２２４  メモリカード、１５０  制御プログラム、２００  コントローラ、２１０  主制御ユニット、２１２  チップセット、２１６  不揮発性メモリ、２１８  主メモリ、２２０  システムクロック、２３０  内部バスコントローラ、２３２  制御回路、２３４  内部バス制御回路、２３６  バッファメモリ、２３８  フィールドバスコントローラ、２５０  算出部、２５１，２５１Ｘ，２５１Ｙ  補正部、２５２，２５２Ｘ，２５２Ｙ  位置決定部、２５４，２５４Ｘ，２５４Ｙ  移動制御部、３００，３００Ｘ，３００Ｙ  サーボドライバ、４００  移動機構、４１０，４１０Ｘ，４１０Ｙ  サーボモータ、４１２，４１２Ｘ，４１２Ｙ  エンコーダ、４２０  ステージ。
【図１】
2019188549.tif 000003
【図２】
2019188549.tif 000004
【図３】
2019188549.tif 000005
【図４】
2019188549.tif 000006
【図５】
2019188549.tif 000007
【図６】
2019188549.tif 000008
【図７】
2019188549.tif 000009
【図８】
2019188549.tif 000010