(57)【要約】【課題】対象物の位置が検出されなかった場合に生産性が低下することを極力防止することができる技術を提供する。【課題手段】位置制御システム１は、ワークを撮影して得られる画像データを取得し、第１検出処理によって画像データに基づきワークの位置を検出し、ワークの位置が検出された場合に、ワークの位置を制御するための制御指令を出力し、ワークの位置が検出されなかった場合に、第１検出処理よりもロバスト性が高い第２検出処理によって画像データに基づきワークの位置を検出し、第２検出処理による検出結果に基づきワークの位置を制御するための制御指令を出力する。【選択図】図７
2019012016.tif 000002
【特許請求の範囲】
【請求項１】
移動機構によって移動する対象物の位置を制御する位置制御システムであって、
前記移動機構を制御する制御手段と、
前記対象物を撮影して得られる画像データを取得する取得手段と、
第１検出処理に従って前記画像データに基づき前記対象物の位置を検出する第１検出手段と、
前記第１検出手段によって前記対象物の位置が検出された場合に、前記対象物の位置を制御するための第１制御指令を前記制御手段に出力する第１出力手段と、
前記第１検出手段によって前記対象物の位置が検出されなかった場合に、前記第１検出処理よりもロバスト性が高い第２検出処理に従って前記画像データに基づき前記対象物の位置を検出する第２検出手段と、
前記第２検出手段による検出結果に基づき前記対象物の位置を制御するための第２制御指令を前記制御手段に出力する第２出力手段とを備える、位置制御システム。
【請求項２】
移動機構によって移動する対象物の位置を検出する位置検出装置であって、
前記対象物を撮影して得られる画像データを取得する取得手段と、
第１検出処理によって前記画像データに基づき前記対象物の位置を検出する第１検出手段と、
前記第１検出手段によって前記対象物の位置が検出された場合に、前記対象物の位置を制御するための第１制御指令を出力する第１出力手段と、
前記第１検出手段によって前記対象物の位置が検出されなかった場合に、前記第１検出処理よりもロバスト性が高い第２検出処理によって前記画像データに基づき前記対象物の位置を検出する第２検出手段と、
前記第２検出手段による検出結果に基づき前記対象物の位置を制御するための第２制御指令を出力する第２出力手段とを備える、位置検出装置。
【請求項３】
前記第２検出処理が従うアルゴリズムは、前記第１検出処理が従うアルゴリズムと異なる、請求項２に記載の位置検出装置。
【請求項４】
前記第２検出処理が従うパラメータの設定値は、前記第１検出処理が従うパラメータの設定値と異なる、請求項２または請求項３に記載の位置検出装置。
【請求項５】
前記第２検出処理による前記対象物の位置検出の回数は、前記第１検出処理による前記対象物の位置検出の回数よりも多い、請求項２〜請求項４のいずれか１項に記載の位置検出装置。
【請求項６】
前記第２検出手段によって前記対象物の位置が検出されなかった場合に、前記対象物の位置を特定可能な位置データを受け付ける受付手段をさらに備える、請求項２〜請求項５のいずれか１項に記載の位置検出装置。
【請求項７】
前記画像データとともに前記画像データに対応付けて前記位置データを記憶する記憶手段と、
前記記憶手段に記憶された前記画像データおよび前記位置データに基づき、前記第２検出処理が従うアルゴリズムおよびパラメータの設定値のうちの少なくとも一方を更新する更新手段とをさらに備える、請求項６に記載の位置検出装置。
【請求項８】
前記第２制御指令は、前記対象物を生産ラインから外部へ搬送するように前記対象物の位置を制御するための指令であり、
前記第２出力手段は、前記第２検出手段によって前記対象物の位置が検出されたか否かに関わらず、前記第２制御指令を出力する、請求項２〜請求項７のいずれか１項に記載の位置検出装置。
【請求項９】
前記第１制御指令は、前記対象物を生産ライン上の次工程に搬送するように前記対象物の位置を制御するための指令であり、
前記第２制御指令は、前記対象物を生産ラインから外部へ搬送するように前記対象物の位置を制御するための指令であり、
前記第２出力手段は、
前記第２検出手段によって前記対象物の位置が検出された場合に前記第１制御指令を出力し、
前記第２検出手段によって前記対象物の位置が検出されなかった場合に前記第２制御指令を出力する、請求項２〜請求項７のいずれか１項に記載の位置検出装置。
【請求項１０】
コンピュータにより実行されることで移動機構によって移動する対象物の位置を検出する位置検出装置を実現する制御プログラムであって、前記コンピュータに、
前記対象物を撮影して得られる画像データを取得する取得ステップと、
第１検出処理によって前記画像データに基づき前記対象物の位置を検出する第１検出ステップと、
前記第１検出ステップによって前記対象物の位置が検出された場合に、前記対象物の位置を制御するための第１制御指令を出力する第１出力ステップと、
前記第１検出ステップによって前記対象物の位置が検出されなかった場合に、前記第１検出処理よりもロバスト性が高い第２検出処理によって前記画像データに基づき前記対象物の位置を検出する第２検出ステップと、
前記第２検出ステップによる検出結果に基づき前記対象物の位置を制御するための第２制御指令を出力する第２出力ステップとを実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、移動機構によって移動する対象物の位置を制御する位置制御システム、移動機構によって移動する対象物の位置を検出する位置検出装置、および位置検出装置を実現する制御プログラムに関する。
【背景技術】
【０００２】
従来から、ＦＡ（Factory Automation）分野などにおいては、対象物（以下、「ワーク」とも称す。）を撮影して得られる画像データに基づきワークの位置を検出し、検出した位置データに基づきワークを本来の位置に配置する処理が行われている。
【０００３】
たとえば、特開２０１４−２０３３６５号公報（特許文献１）は、ステージ上に配置されたワークの位置決めマークを撮影するとともにその画像データに基づきワークの位置を検出し、検出したワークの位置データに基づく指令を、ステージを制御するコントローラに出力する処理装置を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２０３３６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した従来の処理装置が用いられる生産ラインでは、ワークの位置検出に失敗した場合に、後続のワークを受け入れるために位置検出に失敗したワークを外部へ搬送しなければならない場合がある。この場合、ワークを問題なく外部へ搬送するために、ワークの位置検出に成功したときに検出される位置座標までは正確でなくとも、ある程度、精度のある位置座標をユーザ（オペレータ，作業者など）が目視で設定するようになっていた。ところが、ワークの位置検出に失敗した場合、ユーザが駆けつけるまで生産ラインが停止したり、ユーザの不手際により生産ラインの停止時間が拡大したりといったことが起こる場合があり、生産性が低下する虞があった。
【０００６】
本技術は、対象物の位置が検出されなかった場合に生産性が低下することを極力防止することができる技術を提供する。
【課題を解決するための手段】
【０００７】
本発明のある局面によれば、移動機構によって移動する対象物の位置を制御する位置制御システムが提供される。位置制御システムは、移動機構を制御する制御手段と、対象物を撮影して得られる画像データを取得する取得手段と、第１検出処理に従って画像データに基づき対象物の位置を検出する第１検出手段と、第１検出手段によって対象物の位置が検出された場合に、対象物の位置を制御するための第１制御指令を制御手段に出力する第１出力手段と、第１検出手段によって対象物の位置が検出されなかった場合に、第１検出処理よりもロバスト性が高い第２検出処理に従って画像データに基づき対象物の位置を検出する第２検出手段と、第２検出手段による検出結果に基づき対象物の位置を制御するための第２制御指令を制御手段に出力する第２出力手段とを備える。
【０００８】
本発明の別の局面によれば、移動機構によって移動する対象物の位置を検出する位置検出装置が提供される。位置検出装置は、対象物を撮影して得られる画像データを取得する取得手段と、第１検出処理によって画像データに基づき対象物の位置を検出する第１検出手段と、第１検出手段によって対象物の位置が検出された場合に、対象物の位置を制御するための第１制御指令を出力する第１出力手段と、第１検出手段によって対象物の位置が検出されなかった場合に、第１検出処理よりもロバスト性が高い第２検出処理によって画像データに基づき対象物の位置を検出する第２検出手段と、第２検出手段による検出結果に基づき対象物の位置を制御するための第２制御指令を出力する第２出力手段とを備える。
【０００９】
好ましくは、第２検出処理が従うアルゴリズムは、第１検出処理が従うアルゴリズムと異なる。
【００１０】
好ましくは、第２検出処理が従うパラメータの設定値は、第１検出処理が従うパラメータの設定値と異なる。
【００１１】
好ましくは、第２検出処理による対象物の位置検出の回数は、第１検出処理による対象物の位置検出の回数よりも多い。
【００１２】
好ましくは、位置検出装置は、第２検出手段によって対象物の位置が検出されなかった場合に、対象物の位置を特定可能な位置データを受け付ける受付手段をさらに備える。
【００１３】
好ましくは、位置検出装置は、画像データとともに画像データに対応付けて位置データを記憶する記憶手段と、記憶手段に記憶された画像データおよび位置データに基づき、第２検出処理が従うアルゴリズムおよびパラメータの設定値のうちの少なくとも一方を更新する更新手段とをさらに備える。
【００１４】
好ましくは、第２制御指令は、対象物を生産ラインから外部へ搬送するように対象物の位置を制御するための指令である。第２出力手段は、第２検出手段によって対象物の位置が検出されたか否かに関わらず、第２制御指令を出力する。
【００１５】
好ましくは、第１制御指令は、対象物を生産ライン上の次工程に搬送するように対象物の位置を制御するための指令である。第２制御指令は、対象物を生産ラインから外部へ搬送するように対象物の位置を制御するための指令である。第２出力手段は、第２検出手段によって対象物の位置が検出された場合に第１制御指令を出力し、第２検出手段によって対象物の位置が検出されなかった場合に第２制御指令を出力する。
【００１６】
本発明の別の局面によれば、コンピュータにより実行されることで移動機構によって移動する対象物の位置を検出する位置検出装置を実現する制御プログラムが提供される。制御プログラムは、コンピュータに、対象物を撮影して得られる画像データを取得する取得ステップと、第１検出処理によって画像データに基づき対象物の位置を検出する第１検出ステップと、第１検出ステップによって対象物の位置が検出された場合に、対象物の位置を制御するための第１制御指令を出力する第１出力ステップと、第１検出ステップによって対象物の位置が検出されなかった場合に、第１検出処理よりもロバスト性が高い第２検出処理によって画像データに基づき対象物の位置を検出する第２検出ステップと、第２検出ステップによる検出結果に基づき対象物の位置を制御するための第２制御指令を出力する第２出力ステップとを実行させる。
【発明の効果】
【００１７】
本技術によれば、対象物の位置が検出されなかった場合に生産性が低下することを極力防止することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に係る位置制御システムが適用される生産ラインの一例を説明するための図である。
【図２】本実施の形態に係る位置制御システムの全体構成を示す図である。
【図３】本実施の形態に係る位置検出装置のハードウェア構成を示す図である。
【図４】本実施の形態に係るモーションコントローラのハードウェア構成を示す図である。
【図５】本実施の形態に係る位置検出装置において処理フローを設定するときの画面表示例を示す図である。
【図６】本実施の形態に係る位置検出装置において処理フローを設定するときの画面表示例を示す図である。
【図７】本実施の形態に係る位置検出装置が実行するアライメント処理を示すフローチャートである。
【図８】本実施の形態に係る位置検出装置において位置検出に失敗したときの画面表示例を示す図である。
【図９】本実施の形態に係る位置検出装置が実行する処理フロー決定処理を示すフローチャートである。
【図１０】本実施の形態に係る位置検出装置が実行する処理フロー決定処理の概略を説明するための図である。
【図１１】本実施の形態に係る位置検出装置における処理フローの評価結果を説明するための図である。
【図１２】本実施の形態に係る位置検出装置における第１検出処理と第２検出処理とのロバスト性の違いを説明するための一例を示す図である。
【図１３】本実施の形態に係る位置検出装置における第１検出処理と第２検出処理とのロバスト性の違いを説明するための一例を示す図である。
【図１４】本実施の形態に係る位置検出装置における第１検出処理と第２検出処理とのロバスト性の違いを説明するための一例を示す図である。
【図１５】本実施の形態に係る位置検出装置における第１検出処理と第２検出処理とのロバスト性の違いを説明するための一例を示す図である。
【図１６】本実施の形態の変形例に係る位置検出装置が実行するアライメント処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００２０】
＜Ａ．位置制御システムが適用される生産ラインの一例＞
図１は、本実施の形態に係る位置制御システム１が適用される生産ラインの一例を説明するための図である。
【００２１】
図１を参照して、本実施の形態に係る位置制御システム１は、工業製品の生産ラインなどにおいて、画像処理を用いてアライメントを行う。アライメントは、典型的には、ワークを生産ラインの本来の位置に配置する処理などを意味する。このようなアライメントの一例として、位置制御システム１は、ステージ板２の上面に配置された対象物（ワーク４）を撮影して得られる画像データに基づきワーク４の位置を検出し、検出した位置データ（本実施の形態においては位置座標）に基づきステージ３００を制御することでワークを正しい位置に配置する。
【００２２】
具体的には、図１（ａ）に示すように、搬送ロボット９１０のアーム９１１，９１２によって搬送されたワーク４は、ステージ３００によって位置制御されるステージ板２の上面に配置される。図１（ｂ）に示すように、ワーク４の上面には位置決めマーク１２，１４が設けられている。本実施の形態においては、位置決めマーク１２，１４として、ワーク４の四隅のうちの少なくとも一部に十字マークが印刷されている。なお、位置決めマークは、ワーク４の四隅に限らず、中央など、ワーク４上のいずれの位置に設けられてもよい。また、位置決めマークは、十字に限らず、長方形、丸、扇形、任意の多角形などのいずれの形状であってもよい。
【００２３】
位置決めマーク１２，１４は、カメラ１０２，１０４によってそれぞれ撮影される。なお、複数の位置決めマークのそれぞれに１台のカメラを割り当てるのではなく、１台のカメラが移動しながら複数の位置決めマークを撮影するものであってもよい。図１（ｃ）に示すように、カメラ１０２，１０４によって得られた位置決めマーク１２，１４の撮影データに基づきワークの位置検出処理が行われる。
【００２４】
ワーク４の位置検出に成功した場合、図１（ｄ）に示すように、検出されたワーク４の位置座標に基づきステージ３００が制御されることでステージ板２が移動する。ここで、ワーク４の位置が要求精度内でなければ、ワーク４の位置が本来の位置に是正される。たとえば、ステージ３００の制御によりステージ板２が反時計回りに回転することで、ワーク４の位置が後述する被組立部材５の位置に合うように是正される。なお、図示は省略するが、ワーク４の位置が是正された後、再びカメラ１０２，１０４によって位置決めマークが撮影されることで得られる画像データに基づきワーク４の位置が再度検出される。そして、再びワーク４の位置が要求精度内であるか否かが判定される。ワーク４の位置が要求精度内である場合、図１（ｅ）に示すように、ステージ３００の移動に伴いワーク４が成功経路へと導かれ、搬送ロボット９３０のアーム９３１，９３２によって搬送された被組立部材５がワーク４に対して貼り付けられる。このようにして工業製品が組み立てられる。
【００２５】
一方、ワーク４の位置検出に失敗した場合、ワーク４を問題なく生産ラインから外部へ搬送するために、ワーク４の位置検出に成功したときに検出される位置座標までは正確でなくとも、ある程度、精度のある位置座標が設定されなければならない。その理由の一例としては、後述する図１（ｇ）に示すように、ワーク４を外部に搬送するための搬送路９２０の幅が決まっているためである。具体的には、ステージ３００に対して位置座標を示す指令が入力されなかったり、ステージ３００に対して位置座標を示す指令が入力されたとしてもその位置座標が適切でない場合、ワーク４が搬送路９２０に収まらない事態が生じ得る。そうすると、生産ラインが停止してしまう虞がある。よって、円滑に後続のワーク４を受け入れるためには、ワーク４の位置検出に失敗した場合に、ある程度、精度のある位置座標が設定されなければならない。
【００２６】
このため、従来では、ワーク４の位置検出に失敗した場合、ユーザによってワーク４の位置座標が手入力されるようになっている。しかし、ワーク４の位置検出に失敗する度にユーザによって位置座標が手入力されると、ユーザが駆けつけるまで生産ラインが停止したり、ユーザの不手際により生産ラインの停止時間が拡大したりといったことが起こる場合があり、生産性が低下する虞がある。
【００２７】
そこで、本実施の形態に係る位置制御システム１においては、ユーザによって過去に手入力された位置座標（以下、手入力座標とも称す。）が画像データに対応付けられて記憶される。そして、その蓄積された手入力座標および画像データの組に基づき、ワーク４の位置検出に失敗した場合に２回目の位置検出処理が行われる。この２回目の位置検出処理は、図１（ｃ）で行われた１回目の位置検出処理よりもロバスト性が高くなっているため、１回目の位置検出処理で位置検出に失敗した場合であっても、２回目の位置検出処理で位置検出に成功する確率が上がる。その結果、ユーザが位置座標を手入力しなくても、自動的に位置座標を設定することができる。
【００２８】
図１（ｆ）に示すように、２回目の位置検出処理によって位置座標が検出され、その位置座標に基づきステージ３００が制御される。たとえば、ステージ３００の制御によりステージ板２が反時計回りに回転することで、ワーク４の位置が、搬送路９２０に収まるように是正される。そして、図１（ｇ）に示すように、ステージ３００の移動に伴いワーク４が失敗経路へと導かれ、搬送路９２０によってワーク４が生産ラインから外部に搬送される。
【００２９】
＜Ｂ．位置制御システムの全体構成＞
図２は、本実施の形態に係る位置制御システム１の全体構成を示す図である。図２に示すように、位置制御システム１は、位置検出装置１００と、モーションコントローラ２００と、ステージ３００とを備える。
【００３０】
位置検出装置１００は、１つ以上のカメラ（図２の例では、カメラ１０２，１０４）が撮影した画像データを取得し、その取得した画像データに含まれる位置決めマーク１２，１４の位置を検出することでワーク４の位置を特定する。位置検出装置１００は、特定したワーク４の位置に基づき、ワーク４を正しい位置に配置するための指令をモーションコントローラ２００に出力する。
【００３１】
モーションコントローラ２００は、位置検出装置１００からの指令に従って、ステージ３００に対して指令を与えることで、ワーク４に対するアライメントを実現する。
【００３２】
ステージ３００は、ワーク４を正しい位置に配置できる機構であればどのような自由度のものであってもよい。本実施の形態においては、ステージ３００は、水平方向の変位と回転の変位をワーク４に与えることができる。
【００３３】
＜Ｃ．位置検出装置の全体構成＞
図３は、本実施の形態に係る位置検出装置１００のハードウェア構成を示す図である。図３に示すように、位置検出装置１００は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の処理を実現する。
【００３４】
より具体的には、位置検出装置１００は、ＣＰＵ（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）制御回路２３２とを含む。
【００５６】
メモリカードインターフェイス２２２は、主制御ユニット２１０に対して着脱可能なメモリカード２２４とチップセット２１２とを接続する。
【００５７】
＜Ｅ．処理フロー設定時の画面表示例＞
図５および図６は、本実施の形態に係る位置検出装置１００において処理フローを設定するときの画面表示例を示す図である。図５および図６には、画像処理の一例として、サーチ検出処理のアルゴリズムを処理フローとして設定する場合の例を示す。なお、位置検出装置１００のプロセッサ１１０および図示しないグラフィックボードなどが協働することで、図５および図６に示すような画面を表示させる。このような画面表示は、ＯＳ（Operating System）の一部として組み込まれるＧＵＩ（Graphical User Interface）プログラムによって実現され、またＧＵＩは、ユーザがキーボード１３４またはマウス１３８により操作される画面上のカーソルや矢印アイコンを用いて、さまざまなユーザ設定を行うための環境も提供する。
【００５８】
「処理フロー」は、位置検出に用いられるアルゴリズムおよびパラメータの設定値のことである。ユーザは、図５および図６に示す画面を介して、処理フローとして、位置検出に用いられるアルゴリズムおよびパラメータの設定値を選択することができる。
【００５９】
「サーチ検出処理」は、ワークの検出すべき特徴部分を画像パターン（モデル）として予め登録しておき、登録されたモデルの特徴部分を画像データから探し出すことで、位置座標を特定する処理である。一例として、位置検出装置１００は、画像データ上を走査しながら座標ごとの濃淡度合を算出して特徴部分を特定し、特定した特徴部分と登録されたモデルの特徴部分との間の類似度を算出することで、位置決めマークの位置を検出する。なお、サーチ検出処理は、上述した手法に限らず、公知のものを用いてもよい。
【００６０】
なお、サーチ検出処理に関わらず、位置検出にその他の処理を用いてもよい。たとえば、ユーザは、位置検出にエッジ検出処理を選択できてもよい。「エッジ検出処理」は、画像データ上のＸ軸（たとえば横軸）およびＹ軸（たとえば縦軸）の両方から走査しながら座標ごとの濃淡度合を算出し、隣接する座標間での濃淡度合の差分が閾値を超えた部分をエッジと特定することで、位置座標を特定する処理である。走査する領域は、エッジ領域として予めユーザが設定できる。なお、エッジ検出処理は、上述した手法に限らず、公知のものを用いてもよい。
【００６１】
図５に示すように、「モデル登録」のタブ４０１が選択されると、表示部１３２に設定画面４００Ａが表示される。設定画面４００Ａは、モデル登録エリア４０１＃と、画像表示エリア４０４と、全体表示エリア４０６と、表示制御アイコン群４０８とを含む。
【００６２】
画像表示エリア４０４には、カメラ１０２，１０４により取得された画像データが表示される。各種設定中においては、この画像表示エリア４０４に表示される画像は、リアルタイムで更新される。全体表示エリア４０６には、画像表示エリア４０４と同様にカメラ１０２，１０４で取得された画像データが表示される。但し、全体表示エリア４０６には、画像表示エリア４０４での表示範囲とは独立して、対象の画像データの全体が表示される。さらに、表示制御アイコン群４０８に対するユーザ操作（拡大または縮小など）に応じて、画像表示エリア４０４に表示される画像データの表示範囲および表示精度が変更される。
【００６３】
モデル登録エリア４０１＃には、モデル編集ボタン４３０と、登録図形表示ボックス４３２と、モデルパラメータ設定エリア４１０と、モデル登録画像エリア４４０とが表示される。
【００６４】
ユーザがサーチすべきモデルを登録する場合には、モデルを含む基準物を、カメラ１０２，１０４を用いて予め取得しておき、この取得された画像データを画像表示エリア４０４および全体表示エリア４０６に表示させた状態で操作を行う。
【００６５】
まず、ユーザは、マウス１３８などを操作してモデル編集ボタン４３０を押下すると、図示しない描画ツールダイアログが表示される。ユーザは、この描画ツールダイアログを操作して、画像表示エリア４０４に表示される画像データの上に重ねてモデルとして登録すべき範囲を指定する。図５には、画像表示エリア４０４上に位置決めマーク（十字マーク）を含む四角形の範囲がモデル５１０として設定されている場合を示す。何らかのモデルが登録済である場合には、登録図形表示ボックス４３２に、登録済モデルの形状が表示される（図５の場合には、「四角形」）。なお、モデル登録する形状は、四角形に限られず、長方形、丸、扇形、任意の多角形などのいずれの形状であってもよい。
【００６６】
登録済のモデルの設定変更などを行う場合には、ユーザはモデル登録画像エリア４４０の必要なボタンを押下する。モデル登録に用いられた画像データが保存されており、後から登録済のモデルに関するパラメータだけを変更することができる。より具体的には、登録画面表示ボタン４４２が押下されると、モデル登録に用いられた画像データが表示される。この登録画面表示ボタン４４２が再度押下されると、現在入力されている画像データの表示に切り替わる。モデル再登録ボタン４４４が押下されると、登録済のモデル画像はそのままで、それ以外のパラメータが変更された状態でモデルとして再登録される。さらに、削除ボタン４４６が押下されると、登録済のモデルが削除される。
【００６７】
モデルパラメータ設定エリア４１０は、設定項目として、サーチモードの選択を受付ける。サーチモードは、モデルとどの程度似ているかを評価する手法の選択である。このサーチモードについては、ラジオボタン４１２を操作することで、「相関」および「形状」のいずれかを選択できる。「相関」は、入力された画像データの明るさを正規化した上でモデルとの相関値を算出することで類似度を計測する手法である。一方、「形状」は、モデルの輪郭形状との一致度に基づいて類似度を計測するアルゴリズムである。一般的には、「相関」モードの方が安定した計測が可能である。
【００６８】
このサーチモードにおいて「相関」が選択されると、「回転」、「安定度」、「精度」の設定が可能となる。一方、サーチモードにおいて「形状」が選択されると、「回転範囲」および「安定度」の設定が可能となる。
【００６９】
「回転」では、ワークが回転するような場合に、登録済のモデルを予め定められた角度ずつ回転させた複数のモデルを内部的に生成し、生成したそれぞれのモデルに基づいて類似度を計測する処理に係るパラメータの設定値が指定される。すなわち、回転のチェックボックス４１４がチェックされると、回転の処理が有効化される。そして、数値ボックス４１５に、回転範囲（回転角度上限値および回転角度下限値）および刻み角度がそれぞれ入力されると、回転範囲に亘って、刻み角度ずつ回転させたモデルを生成することが指定される。一般的には、刻み角度が小さいほど安定性は高くなるが、処理時間は長くなる。なお、高速に回転サーチを行うことが可能なスマートモードを設定することも可能である。
【００７０】
「安定度」では、計測の安定度と処理速度とのいずれを優先するのかが設定される。すなわち、スライドバー４１６は、所定幅（たとえば、１〜１５）の範囲でいずれかの値に設定され、この設定される値が小さいほど処理時間が短縮され、この値が大きいほど処理時間が長くなる一方で安定度が高められる。
【００７１】
「精度」では、計測の位置精度と処理速度とのどちらを優先するのかが設定される。すなわち、スライドバー４１８は、所定幅（たとえば、１〜３）の範囲でいずれかの値に設定され、この設定される値が小さいほど処理時間が短縮され、この値が大きいほど処理時間が長くなる一方で精度が高められる。
【００７２】
ＯＫボタン４０７が押下されることで、上述したような内容が位置検出の処理として反映される。なお、キャンセルボタン４０９が押下された場合、未反映の内容はリセットされる。
【００７３】
このようなモデル登録に続いて、「領域設定」のタブ４０２が選択されると、モデルを探す範囲を指定するための設定画面が表示される（図示は省略する）。この設定画面では、ユーザは、画像表示エリア４０４上で任意の領域をサーチ領域として設定することができる。なお、入力画像データの全体をサーチ領域とすることもできるが、一部の領域にサーチ領域を制限すれば処理時間を短縮することができる。
【００７４】
図６に示すように、領域設定の入力に続いて、「計測パラメータ」のタブ４０３が選択されると、設定画面４００Ｂが表示される。設定画面４００Ｂは、計測パラメータ設定エリア４０３＃と、画像表示エリア４０４と、全体表示エリア４０６と、表示制御アイコン群４０８とを含む。計測パラメータ設定エリア４０３＃には、判定条件設定エリア４２０と、計測条件設定エリア４５０と、計測ボタン４５２とが表示される。
【００７５】
画像表示エリア４０４には、位置決めマークと、領域設定で決められたサーチ領域５００とが表示される。
【００７６】
計測条件設定エリア４５０は、サーチ検出処理の付加的な処理（以下、付加処理とも称する。）として、「フィルタ処理」の有効／無効、および「大きさ変動処理」の有効／無効を受け付ける。
【００７７】
「フィルタ処理」は、画像データにおける位置決めマークに対応する部分を強調することで位置決めマークを検出しやすくするための処理である。たとえば、位置決めマークが印刷されるような場合、印刷精度が悪ければ位置決めマークとその周辺とで濃淡差が小さくなり、それらの境界が識別し難くなる。このような場合であっても、フィルタ処理を有効に設定していれば、位置決めマークとその周辺との濃淡差を強調した上でサーチ検出処理を行うことができる。但し、フィルタ処理は、位置決めマークとその周辺との濃淡差を調整するための画像処理に時間が掛かるため、サーチ検出処理全体の処理時間が長くなる。
【００７８】
「大きさ変動処理」は、画像データにおける位置決めマークに対応する部分の大きさが本来の大きさと異なる場合であっても、その大きさに応じた処理を追加することで位置決めマークを検出しやすくするための処理である。たとえば、位置決めマークの印刷精度が悪ければ、位置決めマークが登録済のモデル画像の大きさと異なって印刷されてしまうことがある。このような場合であっても、大きさ変動処理を有効に設定していれば、位置決めマークの大きさを考慮してサーチ検出処理を行うことができる。処理の一例としては、画像データ上を走査することによって特定された特徴部分が登録済みのモデル画像と比較される際、そのモデル画像の大きさを変動させたものが複数枚生成される。その上で、生成された複数枚のモデル画像の全てまたは一部と特徴部分とが比較される。そして、最も合致するモデル画像に基づく比較によって、特徴部分の位置が特定される。但し、大きさ変動処理は、位置決めマークの大きさに応じた処理に時間が掛かるため、サーチ検出処理全体の処理時間が長くなる。
【００７９】
計測条件設定エリア４５０の項目を設定・変更した場合には、ユーザは、計測ボタン４５２を押下して、正しくサーチ検出処理が実行可能であるか否かを判断させる。
【００８０】
判定条件設定エリア４２０は、計測された各座標における類似度（相関値）のうち、登録済のモデルと一致する（「ＯＫ」である）と判定するものを設定するための条件を受付ける。より具体的には、設定項目として、計測座標Ｘ、計測座標Ｙ、計測角度、および相関値の４項目が設定可能である。計測座標Ｘおよび計測座標Ｙでは、数値ボックス４２２，４２４にそれぞれ数値範囲が入力されることで、計測された座標値（Ｘ座標値およびＹ座標値）が含まれるべきそれぞれの座標範囲が設定される。計測角度では、数値ボックス４２６に数値範囲が入力されることで、計測されたモデルの回転角度が含まれるべき角度範囲が設定される。さらに、相関値では、数値ボックス４２８に数値範囲が入力されることで、計測されたモデルとの相関値が含まれるべき数値範囲が設定される。
【００８１】
なお、上述のようなサーチ検出処理では、入力画像内において、登録されたモデルとの間の類似度を算出する領域を順次更新していくことで、入力画像のいずれの位置（座標）における類似度が高いのかを探索する。したがって、実際の内部処理としては、入力画像内の複数の座標におけるそれぞれの類似度が算出される。そのため、算出されたすべての類似度のうち、最も高い値をもつものに加えて、２番目、３番目に高い類似度をもつものについても検出結果として出力してもよい。
【００８２】
上述したように、ユーザは、「モデル登録」のタブ４０１、「領域設定」のタブ４０２、または「計測パラメータ」のタブ４０３を選択し、そのときに表示された各種の設定画面において位置検出に用いられる処理フロー（アルゴリズム，パラメータの設定値）を設定することができる。
【００８３】
本実施の形態における「アルゴリズム」とは、位置検出の手法、およびその手法に関連する付加的な処理（付加処理）を意味する。たとえば、アルゴリズムに含まれる位置検出の手法としては、サーチ検出処理およびエッジ検出処理が含まれる。これらのアルゴリズムは、位置検出を行うための主要なアルゴリズムであるため、以下では、計測アルゴリズムとも称する。アルゴリズムに含まれる付加処理としては、フィルタ処理および大きさ変動処理が含まれる。
【００８４】
アルゴリズムは、位置検出の手法（計測アルゴリズム）、およびその手法に関連する付加的な処理（付加処理）を含むため、アルゴリズムを変更することによって、位置検出時の処理量が変わり、それに伴い処理時間も変わる。たとえば、アルゴリズムとして付加処理を有効化すれば、位置検出の成功確率が上がってロバスト性が高くなるが、その分、位置検出時の処理量が多くなって処理時間が長くなる。また、複数種類のアルゴリズムを用いれば、位置検出の成功確率が上がってロバスト性が高くなるが、その分、位置検出時の処理量が多くなって処理時間が長くなる。なお、上述したアルゴリズムは、一例であり、変更することによってロバスト性が変化するものであれば、いずれの位置検出の手法およびその手法に関連する付加処理が含まれてもよい。
【００８５】
「パラメータの設定値」とは、これらアルゴリズムに従った位置検出を行う際に用いられる各種の設定値を意味する。たとえば、サーチ検出処理におけるパラメータの設定値としては、図５に示すモデルパラメータ設定エリア４１０で設定可能な各種のパラメータの設定値、「領域設定」のタブ４０２を選択することで設定可能なサーチ領域の設定値、図６に示す判定条件設定エリア４２０で設定可能な各種のパラメータの設定値が含まれる。パラメータの設定値は、アルゴリズムに従った位置検出を行う際に用いられる各種の設定値であるため、パラメータの設定値を変更することによって、位置検出時の処理量が変わり、それに伴い処理時間も変わる。たとえば、サーチ領域を広くするようにパラメータの設定値を設定すれば、位置検出の成功確率が上がってロバスト性が高くなるが、その分、位置検出時の処理量が多くなって処理時間が長くなる。また、複数種類のパラメータの設定値を用いれば、位置検出の成功確率が上がってロバスト性が高くなるが、その分、位置検出時の処理量が多くなって処理時間が長くなる。なお、上述したパラメータの設定値は、一例であり、変更することによってロバスト性が変化するものであれば、いずれの種類のパラメータの設定値が含まれてもよい。
【００８６】
＜Ｆ．アライメント処理＞
図７は、本実施の形態に係る位置検出装置１００が実行するアライメント処理を示すフローチャートである。なお、以下では、各ステップを単に「Ｓ」と略す。
【００８７】
図７に示すように、位置検出装置１００は、ステージ３００によって搬送されたワークをカメラ１０２，１０４で撮影することで、ワークの画像データを取得する（Ｓ２）。位置検出装置１００は、１回目の位置検出処理である第１検出処理に従って画像データに基づきワークの位置検出を試みる（Ｓ４）。具体的には、位置検出装置１００は、図５および図６で示した画面においてユーザが設定した処理フローに従って、画像データに基づき位置決めマークの位置検出を試みる。
【００８８】
位置検出装置１００は、第１検出処理によってワークの位置検出に成功したか否かを判定する（Ｓ６）。位置検出装置１００は、ワークの位置検出に成功した場合（Ｓ６でＹＥＳ）、ワークの現在位置が要求精度内であるか否かを判定する（Ｓ８）。位置検出装置１００は、ワークの現在位置が要求精度内である場合（Ｓ８でＹＥＳ）、ステージ３００に対してワークの位置を制御するための指令を出力する（Ｓ１０）。具体的には、位置検出装置１００は、成功経路へとワークを導いて生産ラインの次工程へワークを搬送するための指令をモーションコントローラ２００に出力する。その後、位置検出装置１００は、処理を終了する。
【００８９】
一方、位置検出装置１００は、ワークの現在位置が要求精度内でない場合（Ｓ８でＮＯ）、ワークの位置を本来の位置に是正するためのステージ制御量を算出する（Ｓ１２）。その後、位置検出装置１００は、算出したステージ制御量に基づき、モーションコントローラ２００に対してワークの位置を制御するための指令を出力し（Ｓ１４）、Ｓ４の処理に戻る。これにより、ワークの位置が本来の位置に是正される。
【００９０】
Ｓ６の処理において位置検出装置１００がワークの位置検出に失敗した場合（Ｓ６でＮＯ）、位置検出装置１００は、第２検出処理に従ってＳ４で用いた画像データと同じ画像データに基づき２回目の位置検出処理である第２検出処理を試みる（Ｓ１６）。このとき、位置検出装置１００は、Ｓ４の第１検出処理で用いた処理フローよりもロバスト性の高い処理フローを用いる。
【００９１】
たとえば、第２検出処理は、第１検出処理と異なりロバスト性の高いアルゴリズムを用いてもよい。第２検出処理は、第１検出処理と異なりロバスト性の高いパラメータの設定値を用いてもよい。第２検出処理は、第１検出処理と同じアルゴリズムおよびパラメータの設定値を用いるが、第１検出処理よりも検出を試みる回数が多くてもよい。第２検出処理は、第１検出処理と異なりロバスト性の高いアルゴリズムを用い、かつ第１検出処理よりも検出を試みる回数が多くてもよい。第２検出処理は、第１検出処理と異なりロバスト性の高いパラメータの設定値を用い、かつ第１検出処理よりも検出を試みる回数が多くてもよい。このように、第２検出処理は、処理フローの内容（アルゴリズム，パラメータの設定値）や検出回数を第１検出処理と異ならせることで、よりロバスト性の高い位置検出を行う処理である。
【００９２】
位置検出装置１００は、第２検出処理によってワークの位置検出に成功したか否かを判定する（Ｓ１８）。位置検出装置１００は、ワークの位置検出に成功した場合（Ｓ１８でＹＥＳ）、生産ラインから外部へ搬送するためにワークの位置を是正するためのステージ制御量を算出する（Ｓ２０）。その後、位置検出装置１００は、算出したステージ制御量に基づき、モーションコントローラ２００に対してワークの位置を制御するための指令を出力する（Ｓ２２）。具体的には、位置検出装置１００は、失敗経路へとワークを導くための指令をモーションコントローラ２００に出力する。その後、位置検出装置１００は、処理を終了する。
【００９３】
一方、位置検出装置１００は、ワークの位置検出に失敗した場合（Ｓ１８でＮＯ）、ユーザによるワークの位置座標（正確には位置決めマークの位置座標）の手入力を受け付ける（Ｓ２４）。なお、ユーザによる位置座標の手入力の具体的な方法については、図８を用いて後述する。
【００９４】
位置検出装置１００は、位置検出に失敗したときの画像データとともに画像データに対応付けてＳ２４でユーザによって手入力された位置座標（手入力座標）を記憶する（Ｓ２６）。
【００９５】
位置検出装置１００は、学習開始条件が成立したか否かを判定する（Ｓ２８）。学習開始条件とは処理フロー決定処理を開始するための条件である。処理フロー決定処理とは、第２検出処理が従う処理フローを機械学習で決定するための処理であり、具体的には図９を用いて後述する。
【００９６】
処理フロー決定処理では、ある程度のサンプルデータがないと適切な処理フローを決定できない。このため、学習開始条件は、たとえば位置検出に失敗したときの画像データと手入力座標との組の数が所定数を超えたときに成立するようにすればよい。なお、学習開始条件は、サンプルデータの数に限らず時間経過、あるいは位置検出の成功または失敗に限らず生産ラインに搬送されたワークの数など、その他の条件を用いてもよい。
【００９７】
位置検出装置１００は、学習開始条件が成立した場合（Ｓ２８でＹＥＳ）、処理フロー決定処理を実行し（Ｓ３０）、Ｓ２０以降の処理に移行する。一方、学習開始条件が成立しなかった場合（Ｓ２８でＮＯ）、処理フロー決定処理を実行することなくＳ２０以降の処理に移行する。
【００９８】
このように、位置検出装置１００は、第１検出処理に従って画像データに基づきワークの位置を検出し（Ｓ４）、ワークの位置が検出された場合に、ワークの位置を制御するための制御指令を出力し（Ｓ１０）、ワークの位置が検出されなかった場合に、第１検出処理よりもロバスト性が高い第２検出処理に従って画像データに基づきワークの位置を検出し（Ｓ１６）、その検出結果に基づきワークの位置を制御するための制御指令を出力する（Ｓ２２）。
【００９９】
また、位置検出装置１００は、第２検出処理によってワークの位置が検出されたか否かに関わらず、生産ラインから外部へ搬送するようにワークの位置を制御するための制御指令を出力する（Ｓ２２）。
【０１００】
＜Ｇ．位置検出に失敗したときの画面表示例＞
図８は、本実施の形態に係る位置検出装置１００において位置検出に失敗したときの画面表示例を示す図である。図８に示すように、第２検出処理で位置検出に失敗した場合（図７のＳ１８でＮＯの場合）、表示部１３２に座標設定画面４００Ｃが表示される。以下、座標設定画面４００Ｃについて説明する。
【０１０１】
座標設定画面４００Ｃは、画像表示エリア４９０と、データ設定エリア４７０と、座標表示エリア４８０と、表示制御アイコン群４８８とを含む。
【０１０２】
画像表示エリア４９０には、位置検出が行われた画像データが表示される。画像表示エリア４９０に表示された画像には、位置決めマークが示されているが、印刷精度が悪かったために、位置決めマークとその周辺との濃淡差が小さくなり、それらの境界が識別し難くなっている。また、画像表示エリア４９０には、十字アイコン４６５を含むカーソル４６０が表示されている。ユーザは、キーボード１３４またはマウス１３８を用いて後述する十字ボタン４７４を選択することでカーソル４６０を移動することができ、十字アイコン４６５の中心が位置する座標を、手入力座標として設定することができる。
【０１０３】
データ設定エリア４７０には、データ表示欄４７１と、Ｘ座標値欄４７２と、Ｙ座標値欄４７３と、十字ボタン４７４とが表示される。データ表示欄４７１には、整理Ｎｏ．と、計測座標（ピクセル）と、状態とが表示される。Ｘ座標値欄４７２には、十字アイコン４６５の中心が位置する座標のうちのＸ座標値が示される。Ｙ座標値欄４７３には、十字アイコン４６５の中心が位置する座標のうちのＹ座標値が示される。
【０１０４】
座標表示エリア４８０には、カメラ１０２，１０４で取得された画像データが模式的に表されるとともに、座標を分かり易くするためのＸ軸およびＹ軸が示されている。ユーザが十字ボタン４７４を選択することによってカーソル４６０を移動させると、それに伴い座標表示エリア４８０においてポインタ４８５が移動する。さらに、表示制御アイコン群４８８に対するユーザ操作（拡大または縮小など）に応じて、座標表示エリア４８０に表示される画像データの表示範囲および表示精度が変更される。ユーザは、ポインタ４８５の位置を確認しながら十字ボタン４７４を選択することで、位置決めマークの位置座標をより正確に決定することができる。
【０１０５】
ユーザがＯＫボタン４９５を押下すると、ユーザによって決定された位置座標が手入力座標の設定値として反映される。このように、第２検出処理で位置検出に失敗した場合、ユーザは、座標設定画面４００Ｃに表示された画像を目視で確認しながら、位置座標を設定することができる。
【０１０６】
＜Ｈ．処理フロー決定処理＞
図９は、本実施の形態に係る位置検出装置１００が実行する処理フロー決定処理を示すフローチャートである。なお、以下では、各ステップを単に「Ｓ」と略す。
【０１０７】
図９に示すように、位置検出装置１００は、現行の第２検出処理で用いている処理フローを抽出する（Ｓ３２０２）。具体的には、位置検出装置１００は、図７のＳ１６に示す第２検出処理で用いた処理フローを抽出する。
【０１０８】
位置検出装置１００は、抽出した処理フローに基づき、処理フローの候補を生成する（Ｓ３２０４）。たとえば、位置検出装置１００は、現行の処理フローに含まれるアルゴリズムおよびパラメータの設定値を基準として、アルゴリズムおよびパラメータの設定値のうちの少なくとも一方を更新することで、複数種類の処理フローの候補を生成する。なお、処理フローの候補を生成する手法は、いずれの手法を用いてもよい。たとえば、過去に第２検出処理で位置検出に失敗した数と、そのときに用いた処理フローの内容とに基づいて、機械学習によって複数種類の処理フローの候補を生成してもよい。
【０１０９】
位置検出装置１００は、生成した各処理フローに基づき、図７のＳ２６の処理で蓄積して記憶していた位置検出失敗時の画像データを用いて位置検出を試みる（Ｓ３２０６）。このとき、位置検出装置１００は、蓄積して記憶していた過去分全ての画像データを用いて位置検出を試みてもよいし、画像データの数を限定してもよい。
【０１１０】
位置検出装置１００は、生成した各処理フローに基づき検出した結果と、位置検出失敗時の画像データに対応づけて記憶していた手入力座標とに基づき、生成した各処理フローが適切であるか否かを評価する（Ｓ３２０８）。
【０１１１】
位置検出装置１００は、Ｓ３２０８の処理で得られた評価結果に基づき、生成した各処理フローの中から最適な処理フローを決定し、決定した処理フローを次回からの第２検出処理用の処理フローとする（Ｓ３２１０）。その後、位置検出装置１００は、処理を終了する。なお、最適な処理フローの決定については、図１１を用いて後述する。
【０１１２】
このように、位置検出装置１００は、記憶した画像データと、画像データに対応付けられた位置データとに基づき、第２検出処理が従うアルゴリズムおよびパラメータの設定値のうちの少なくとも一方を更新することで、最適な処理フローを決定する。
【０１１３】
＜Ｉ．処理フロー決定処理の概略＞
図１０は、本実施の形態に係る位置検出装置１００が実行する処理フロー決定処理の概略を説明するための図である。
【０１１４】
図１０に示すように、位置検出装置１００は、現行処理フローアプリケーション４０によって、現行の第２検出処理で用いている処理フローを抽出する。次に、位置検出装置１００は、処理フロー候補生成アプリケーション５０によって、抽出した処理フローに基づき、処理フローの候補６０を生成する。位置検出装置１００は、検出処理アプリケーション２２によって、生成した各処理フロー６０に基づき、蓄積して記憶していた位置検出失敗時のデータ群１０の中から一の画像データ１０ａを用いて位置検出を試みる。
【０１１５】
位置検出装置１００は、評価処理アプリケーション３２によって、検出処理アプリケーション２２で出力された検出結果２６と、位置検出を試みた画像データ１０ａに対応する手入力座標１０ｂとに基づき、生成した各処理フロー６０が適切であるか否かを評価する。
【０１１６】
位置検出装置１００は、評価処理アプリケーション３２によって得られた評価結果７０に基づき、生成した各処理フロー６０の中から最適な処理フローを決定する。
【０１１７】
＜Ｊ．評価結果の概略＞
図１１は、本実施の形態に係る位置検出装置１００における処理フローの評価結果を説明するための図である。
【０１１８】
図１１に示すように、評価結果は、生成された各処理フローの候補１１００に対応して、アルゴリズム１２００およびパラメータの設定値１３００を含む処理フローと、その評価結果１４００とを含む。
【０１１９】
アルゴリズム１２００には、計測アルゴリズム１２１０と、付加処理１２２０とが含まれる。計測アルゴリズム１２１０は、サーチ検出処理１２１１と、エッジ検出処理１２１２とを含む。付加処理１２２０は、フィルタ処理１２２１と、大きさ変動処理１２２２とを含む。パラメータの設定値１３００は、サーチ領域１３０１を含む。なお、これらアルゴリズム１２００およびパラメータの設定値１３００は、一例であり、評価結果にはその他のアルゴリズムおよびパラメータの設定値が含まれてもよい。
【０１２０】
この例では、処理フローの候補として、６種類の候補が生成されている。いずれの候補においても、計測アルゴリズムとして、サーチ検出処理が有効に設定され、エッジ検出処理が無効に設定されている。また、候補１〜３は、付加処理として、フィルタ処理および大きさ変動処理のいずれも無効に設定されている。候補４〜６は、付加処理として、フィルタ処理が無効に設定される一方で、大きさ変動処理が有効に設定されている。また、いずれの候補においても、パラメータの設定値として、サーチ領域が設定されているが、その設定値に応じてサーチ領域が候補間で異なる。たとえば、候補１および候補６は、全ての候補の中でサーチ領域が最も広い。一方、候補３および候補６は、全ての候補の中でサーチ領域が最も狭い。
【０１２１】
フィルタ処理が有効に設定された候補は、フィルタ処理が無効に設定された候補よりもロバスト性が高いが、処理時間が長くなる傾向にある。また、サーチ領域が狭く設定された候補は、サーチ領域が広く設定された候補よりもロバスト性が高いが、処理時間が長くなる傾向にある。
【０１２２】
位置検出装置１００は、図１１に示すような評価結果が得られると、所定の採用基準に基づいて、挙げられた候補１〜６の中から、最適な処理フローを決定する。採用基準は、ユーザによって適宜設定可能である。
【０１２３】
たとえば、位置検出装置１００は、評価時に検出した位置座標と過去に記憶していた手入力座標との間の乖離度が最も小さい候補を、最適な処理フローに決定してもよい。乖離度が最も小さい候補が選択された場合、よりロバスト性の高い処理フローが決定される。
【０１２４】
また、位置検出装置１００は、処理時間が最も短い候補を、最適な処理フローに決定してもよい。処理時間が最も短い候補が選択された場合、より処理時間の短い処理フローが決定される。
【０１２５】
さらに、位置検出装置１００は、評価時に検出した位置座標と過去に記憶していた手入力座標との間の乖離度と、処理時間とのそれぞれに対して重み付けをした値を算出し、算出した値に基づき最適な処理フローを決定してもよい。なお、乖離度と処理時間とに対する重み付けの方法および重み付けの比率などは、ユーザが設定できるものであってもよいし、位置検出装置１００が蓄積されたデータに基づき機械学習によって決定してもよい。このように、乖離度と処理時間との両方を考慮して候補が選択された場合、ロバスト性と処理時間とが考慮された最適な処理フローが決定される。
【０１２６】
＜Ｋ．具体例＞
図１２〜図１５は、本実施の形態に係る位置検出装置１００における第１検出処理と第２検出処理とのロバスト性の違いを説明するための一例を示す図である。
【０１２７】
図１２は、第１検出処理と第２検出処理とでアルゴリズムが同じであり、かつパラメータの設定値が異なる場合についての例を示す。具体的には、第１検出処理および第２検出処理のいずれにおいても、アルゴリズムとしてサーチ検出処理が用いられ、付加処理は無効に設定されている。但し、第１検出処理においては、サーチ領域が一部に設定されているのに対して、第２検出処理においては、サーチ領域が全体に設定されている。
【０１２８】
なお、図１２（Ａ−１）および図１２（Ｂ−１）のそれぞれに示す例では、ともに同じ正常な画像データ（以下、正常時画像データとも称する。）に対して位置検出が行われている。たとえば、正常時画像データは、位置決めマークが正常に印刷されかつステージ上の正常な位置に配置されたワークを撮影して得られた画像データである。一方、図１２（Ａ−２）および図１２（Ｂ−２）のそれぞれに示す例では、ともに正常でない画像データ（以下、非正常時画像データとも称する。）に対して位置検出が行われている。この例における非正常時画像データは、位置決めマークが正常に印刷されているが、ステージ上の正常ではない位置（この例では正常な位置から左上に外れた位置）に配置されたワークの画像データである。
【０１２９】
図１２（Ａ−１）に示すように、正常時画像データに対して第１検出処理が行われると、サーチ領域５００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。一方、図１２（Ｂ−１）に示すように、正常時画像データに対して第２検出処理が行われると、第１検出処理と同様にサーチ領域５００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。
【０１３０】
図１２（Ａ−２）に示すように、非正常時画像データに対して第１検出処理が行われると、サーチ領域５００に位置決めマークが収まらないため、位置検出装置１００は、位置決めマークを検出することができない。一方、図１２（Ｂ−２）に示すように、非正常時画像データに対して第２検出処理が行われると、サーチ領域５００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。但し、第２検出処理は、サーチ領域５００が広い分、第１検出処理よりも、位置検出時の処理量が多くなって処理時間が長くなる。
【０１３１】
図１３は、第１検出処理と第２検出処理とでアルゴリズムが異なり、かつパラメータの設定値が同じ場合についての例を示す。具体的には、第１検出処理および第２検出処理のいずれにおいても、アルゴリズムとしてサーチ検出処理が用いられるが、付加処理として、第１検出処理はフィルタ処理が無効に設定されるのに対して、第２検出処理はフィルタ処理が有効に設定されている。
【０１３２】
なお、図１３（Ａ−１）および図１３（Ｂ−１）のそれぞれに示す例では、ともに同じ正常時画像データに対して位置検出が行われている。一方、図１３（Ａ−２）および図１３（Ｂ−２）のそれぞれに示す例では、ともに非正常時画像データに対して位置検出が行われている。この例における非正常時画像データは、位置決めマークとその周辺との間の境界が識別し難くなったワークの画像データである。
【０１３３】
図１３（Ａ−１）に示すように、正常時画像データに対して第１検出処理が行われると、位置決めマークが鮮明であるため、位置検出装置１００は、位置決めマークを検出することができる。一方、図１３（Ｂ−１）に示すように、正常時画像データに対して第２検出処理が行われると、第１検出処理と同様に位置決めマークが鮮明であるため、位置検出装置１００は、位置決めマークを検出することができる。
【０１３４】
図１３（Ａ−２）に示すように、非正常時画像データに対して第１検出処理が行われると、位置決めマークが不鮮明であるため、位置検出装置１００は、位置決めマークを検出することができない。一方、図１３（Ｂ−２）に示すように、非正常時画像データに対して第２検出処理が行われると、フィルタ処理によって位置決めマークが鮮明になるため、位置検出装置１００は、位置決めマークを検出することができる。但し、第２検出処理は、フィルタ処理を実行する分、第１検出処理よりも、位置検出時の処理量が多くなって処理時間が長くなる。
【０１３５】
図１４は、第１検出処理と第２検出処理とでアルゴリズムが異なり、かつパラメータの設定値が同じ場合についての例を示す。具体的には、第１検出処理および第２検出処理のいずれにおいても、アルゴリズムとしてサーチ検出処理が用いられるが、付加処理として、第１検出処理は大きさ変動処理が無効に設定されるのに対して、第２検出処理は大きさ変動処理が有効に設定されている。
【０１３６】
なお、図１４（Ａ−１）および図１４（Ｂ−１）のそれぞれに示す例では、ともに同じ正常時画像データに対して位置検出が行われている。一方、図１４（Ａ−２）および図１４（Ｂ−２）のそれぞれに示す例では、ともに非正常時画像データに対して位置検出が行われている。この例における非正常時画像データは、位置決めマークが本来よりも大きく印刷されたワークの画像データである。
【０１３７】
図１４（Ａ−１）に示すように、正常時画像データに対して第１検出処理が行われると、位置決めマークが本来の大きさで印刷されているため、位置検出装置１００は、位置決めマークを検出することができる。一方、図１４（Ｂ−１）に示すように、正常時画像データに対して第２検出処理が行われると、第１検出処理と同様に位置決めマークが本来の大きさで印刷されているため、位置検出装置１００は、位置決めマークを検出することができる。
【０１３８】
図１４（Ａ−２）に示すように、非正常時画像データに対して第１検出処理が行われると、位置決めマークが本来よりも大きく印刷されているため、位置検出装置１００は、位置決めマークを検出することができない。一方、図１４（Ｂ−２）に示すように、非正常時画像データに対して第２検出処理が行われると、大きさ変動処理によって位置決めマークの大きさに応じて生成された複数のモデル画像に基づきサーチ検出処理が行われるため、位置検出装置１００は、位置決めマークを検出することができる。但し、第２検出処理は、大きさ変動処理を実行する分、第１検出処理よりも、位置検出時の処理量が多くなって処理時間が長くなる。
【０１３９】
図１５は、第１検出処理と第２検出処理とでアルゴリズムが異なり、かつパラメータの設定値も異なる場合についての例を示す。具体的には、計測アルゴリズムとして、第１検出処理はエッジ検出処理が用いられるのに対して、第２検出処理はサーチ検出処理が用いられている。また、パラメータの設定値として、第１検出処理がエッジ検出処理用のパラメータが用いられるのに対して、第２検出処理がサーチ検出処理用のパラメータが用いられている。たとえば、第１検出処理で用いられるエッジ領域は一部に設定されているのに対して、第２検出処理で用いられるサーチ領域は全体に設定されている。
【０１４０】
なお、図１５（Ａ−１）および図１５（Ｂ−１）のそれぞれに示す例では、ともに同じ正常時画像データに対して位置検出が行われている。一方、図１５（Ａ−２）および図１５（Ｂ−２）のそれぞれに示す例では、ともに非正常時画像データに対して位置検出が行われている。この例における非正常時画像データは、この例における非正常時画像データは、位置決めマーク（この例では丸型）が正常に印刷されているが、ステージ上の正常ではない位置（この例では正常な位置から左上に外れた位置）に配置されたワークの画像データである。
【０１４１】
図１５（Ａ−１）に示すように、正常時画像データに対して第１検出処理が行われると、エッジ領域６００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。一方、図１５（Ｂ−１）に示すように、正常時画像データに対して第２検出処理が行われると、サーチ領域５００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。
【０１４２】
図１５（Ａ−２）に示すように、非正常時画像データに対して第１検出処理が行われると、エッジ領域６００に位置決めマークが収まらないため、位置検出装置１００は、位置決めマークを検出することができない。一方、図１５（Ｂ−２）に示すように、非正常時画像データに対して第２検出処理が行われると、サーチ領域５００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。但し、第２検出処理で用いられるサーチ検出処理は、第２検出処理で用いられるエッジ検出処理よりも処理量が多く、また、その走査領域も広い。このため、第２検出処理は、第１検出処理よりも処理時間が長くなる。
【０１４３】
このように、第２検出処理は、第１検出処理よりも処理量が多くなって処理時間が長くなる一方で、ロバスト性が高い処理である。
【０１４４】
以上のように、位置検出装置１００は、第１検出処理によって画像データに基づきワークの位置を検出できなかった場合、第１検出処理よりもロバスト性が高い第２検出処理によって同じ画像データに基づきワークの位置を検出する。そして、位置検出装置１００は、第２検出処理によってワークの位置を検出できた場合、検出した位置座標を用いてステージ３００の制御量を算出し、算出したステージ制御量に基づき、モーションコントローラ２００に対してワークの位置を制御するための指令を出力する。これにより、ワークの位置が検出されなかった場合であっても、ユーザが目視で確認して位置座標を手入力する頻度を減らせることができるため、生産性が低下することを極力防止することができる。
【０１４５】
また、位置検出装置１００は、第２検出処理によって画像データに基づきワークの位置を検出できなかった場合、ユーザの手入力を受け付けるが、それによって得られた手入力座標を、画像データに対応付けて記憶する。そして、位置検出装置１００は、蓄積して記憶した画像データおよび手入力座標のセットが所定数を超えると、処理フロー決定処理によってロバスト性や処理時間などを考慮した第２検出処理のための最適な処理フローを決定する。位置検出装置１００は、次回から、決定した最適な処理フローを用いて第２検出処理を実行することができる。
【０１４６】
＜Ｌ．変形例＞
本実施の形態に係る位置制御システム１においては、図７に示すように、位置検出装置１００は、第２検出処理によってワークの位置を検出したか否かに関わらず（Ｓ１８の結果に関わらず）、ワークを生産ラインから外部へ搬送するようにワークの位置を制御するための指令をモーションコントローラ２００に出力するものであった（Ｓ２２）。しかし、位置検出装置１００は、図１６に示すような処理を実行してもよい。
【０１４７】
図１６は、本実施の形態の変形例に係る位置検出装置１００が実行するアライメント処理を示すフローチャートである。具体的には、位置検出装置１００は、第２検出処理によってワークの位置を検出した場合（Ｓ１８ａでＹＥＳ）、第１検出処理によってワークの位置を検出したとき（Ｓ６でＹＥＳのとき）と同じフローを通るように、Ｓ８の処理に移行してもよい。たとえば、図１２や図１５に示す非正常時画像データは、ステージ上の正常ではない位置に配置されたに過ぎず、ワークそのものは位置決めマークが正常に印刷されている。このため、図１６に示すように、第１検出処理よりもロバスト性の高い第２検出処理によってワークの位置を検出した場合にワークを生産ラインの次工程に搬送するためのフローへと移行するようにすれば、歩留まりを向上させることができる。
【０１４８】
本実施の形態に係る位置制御システム１においては、位置検出装置１００がワークの位置検出を実行し、さらにステージ３００の制御量を算出してステージ３００を制御するための指令を出力していた。しかし、位置制御システム１は、位置検出装置１００が有する機能に加えて他の機能を有する装置を含んでいてもよい。また、位置制御システム１においては、位置検出装置１００がワークの位置を検出する機能のみを有し、ステージ３００の制御量を算出する機能やステージ３００を制御するための指令を出力する機能は、位置検出装置１００とは別の装置、あるいはモーションコントローラ２００が有していてもよい。
【０１４９】
本実施の形態に係る位置制御システム１においては、位置検出装置１００は、図７のＳ２６の処理において、位置検出に失敗した画像データのみを蓄積して記憶していたが、これに限らない。たとえば、位置検出装置１００は、位置検出に失敗した画像データに限らず、Ｓ１８の処理で位置検出に成功した画像データについても、検出した位置座標に対応付けて記憶してもよい。そして、処理フロー決定処理では、位置検出に失敗した画像データに限らず位置検出に成功した画像データに基づいて、最適な処理フローを決定してもよい。
【０１５０】
＜Ｍ．利点＞
本実施の形態に係る位置制御システム１および位置検出装置１００によれば、ワークの位置が検出されなかった場合であっても、ユーザが目視で確認して位置座標を手入力する頻度を減らせることができるため、生産性が低下することを極力防止することができる。
【０１５１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５２】
１  位置制御システム、２  ステージ板、４  ワーク、５  被組立部材、１００  位置検出装置、１０２，１０４  カメラ、１１０，２１４  プロセッサ、１１２  ＲＡＭ、１１４  表示コントローラ、１１６  システムコントローラ、１１８  コントローラ、１２０  ハードディスク、１２２  カメラインターフェイス、１２２ａ，１２２ｂ  画像バッファ、１２４  入力インターフェイス、１２６  モーションコントローラインターフェイス、１２８，２２８  通信インターフェイス、１３０，２２２  メモリカードインターフェイス、１３２  表示部、１３４  キーボード、１３６，２２４  メモリカード、１３８  マウス、２００  モーションコントローラ、２１０  主制御ユニット、２１２  チップセット、２１６  不揮発性メモリ、２１８  主メモリ、２２０  システムクロック、２２６  内部バス、２３０  内部バスコントローラ、２３２  制御回路、２３４  内部バス制御回路、２３６  バッファメモリ、２４０，２４２，２４４  サーボユニット、２５０，２５２，２５４  サーボドライバ、３００  ステージ、３１０，３１２，３１４  サーボモータ。
【図１】
2019012016.tif 000003
【図２】
2019012016.tif 000004
【図３】
2019012016.tif 000005
【図４】
2019012016.tif 000006
【図５】
2019012016.tif 000007
【図６】
2019012016.tif 000008
【図７】
2019012016.tif 000009
【図８】
2019012016.tif 000010
【図９】
2019012016.tif 000011
【図１０】
2019012016.tif 000012
【図１１】
2019012016.tif 000013
【図１２】
2019012016.tif 000014
【図１３】
2019012016.tif 000015
【図１４】
2019012016.tif 000016
【図１５】
2019012016.tif 000017
【図１６】
2019012016.tif 000018
【手続補正書】
【提出日】平成30年2月21日(2018.2.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
この例では、処理フローの候補として、６種類の候補が生成されている。いずれの候補においても、計測アルゴリズムとして、サーチ検出処理が有効に設定され、エッジ検出処理が無効に設定されている。また、候補１〜３は、付加処理として、フィルタ処理および大きさ変動処理のいずれも無効に設定されている。候補４〜６は、付加処理として、フィルタ処理が無効に設定される一方で、大きさ変動処理が有効に設定されている。また、いずれの候補においても、パラメータの設定値として、サーチ領域が設定されているが、その設定値に応じてサーチ領域が候補間で異なる。たとえば、候補１および候補４は、全ての候補の中でサーチ領域が最も広い。一方、候補３および候補６は、全ての候補の中でサーチ領域が最も狭い。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
フィルタ処理が有効に設定された候補は、フィルタ処理が無効に設定された候補よりもロバスト性が高いが、処理時間が長くなる傾向にある。また、サーチ領域が広く設定された候補は、サーチ領域が狭く設定された候補よりもロバスト性が高いが、処理時間が長くなる傾向にある。
【手続補正書】
【提出日】平成30年3月7日(2018.3.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１２３
【補正方法】変更
【補正の内容】
【０１２３】
たとえば、位置検出装置１００は、評価時に検出した位置座標と過去に記憶していた手入力座標との間の乖離度１４０１が最も小さい候補を、最適な処理フローに決定してもよい。乖離度１４０１が最も小さい候補が選択された場合、よりロバスト性の高い処理フローが決定される。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１２４
【補正方法】変更
【補正の内容】
【０１２４】
また、位置検出装置１００は、処理時間１４０２が最も短い候補を、最適な処理フローに決定してもよい。処理時間１４０２が最も短い候補が選択された場合、より処理時間の短い処理フローが決定される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
さらに、位置検出装置１００は、評価時に検出した位置座標と過去に記憶していた手入力座標との間の乖離度１４０１と、処理時間１４０２とのそれぞれに対して重み付けをした値を算出し、算出した値に基づき最適な処理フローを決定してもよい。なお、乖離度１４０１と処理時間１４０２とに対する重み付けの方法および重み付けの比率などは、ユーザが設定できるものであってもよいし、位置検出装置１００が蓄積されたデータに基づき機械学習によって決定してもよい。このように、乖離度と処理時間との両方を考慮して候補が選択された場合、ロバスト性と処理時間とが考慮された最適な処理フローが決定される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１４０
【補正方法】変更
【補正の内容】
【０１４０】
なお、図１５（Ａ−１）および図１５（Ｂ−１）のそれぞれに示す例では、ともに同じ正常時画像データに対して位置検出が行われている。一方、図１５（Ａ−２）および図１５（Ｂ−２）のそれぞれに示す例では、ともに非正常時画像データに対して位置検出が行われている。この例における非正常時画像データは、位置決めマーク（この例では丸型）が正常に印刷されているが、ステージ上の正常ではない位置（この例では正常な位置から左上に外れた位置）に配置されたワークの画像データである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１４２
【補正方法】変更
【補正の内容】
【０１４２】
図１５（Ａ−２）に示すように、非正常時画像データに対して第１検出処理が行われると、エッジ領域６００に位置決めマークが収まらないため、位置検出装置１００は、位置決めマークを検出することができない。一方、図１５（Ｂ−２）に示すように、非正常時画像データに対して第２検出処理が行われると、サーチ領域５００に位置決めマークが収まるため、位置検出装置１００は、位置決めマークを検出することができる。但し、第２検出処理で用いられるサーチ検出処理は、第１検出処理で用いられるエッジ検出処理よりも処理量が多く、また、その走査領域も広い。このため、第２検出処理は、第１検出処理よりも処理時間が長くなる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１５２
【補正方法】変更
【補正の内容】
【０１５２】
１  位置制御システム、２  ステージ板、４  ワーク、５  被組立部材、１００  位置検出装置、１０２，１０４  カメラ、１１０，２１４  プロセッサ、１１２  ＲＡＭ、１１４  表示コントローラ、１１６  システムコントローラ、１１８  コントローラ、１２０  ハードディスク、１２２  カメラインターフェイス、１２２ａ，１２２ｂ  画像バッファ、１２４  入力インターフェイス、１２６  モーションコントローラインターフェイス、１２８，２２８  通信インターフェイス、１３０，２２２  メモリカードインターフェイス、１３２  表示部、１３４  キーボード、１３６，２２４  メモリカード、１３８  マウス、２００  モーションコントローラ、２１０  主制御ユニット、２１２  チップセット、２１６  不揮発性メモリ、２１８  主メモリ、２２０  システムクロック、２２６  内部バス、２３０  内部バスコントローラ、２３２  制御回路、２３６  バッファメモリ、２４０，２４２，２４４  サーボユニット、２５０，２５２，２５４  サーボドライバ、３００  ステージ、３１０，３１２，３１４  サーボモータ。