(57)【要約】      （修正有）【課題】目標軌跡を、ワークの撮像結果を用いて補正するとともに、制御対象の制御周期ごとの移動量を一定に維持する。【解決手段】ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置であって、ＰＬＣ（１０）は、制御周期ごとの補正後軌跡Ｃ’ｉの長さが、制御周期ごとの規範軌跡Ｃｉの長さに略一致するように、制御周期ごとの補正後軌跡Ｃ’ｉを生成する。【選択図】図１
2019067098.tif 000002
【特許請求の範囲】
【請求項１】
ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置であって、
制御周期ごとの前記目標軌跡を取得する取得部と、
前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成部と、
を備えることを特徴とする制御装置。
【請求項２】
ｉ、ｊの各々を１以上の整数として、
ｉ番目の前期制御周期の前期補正後軌跡がｊ番目の前期制御周期の前期目標軌跡から生成されている場合、ｉ＋１番目の前記制御周期の前記補正後軌跡に対応する前記目標軌跡として、ｊ＋１番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、１つ選択する選択部をさらに備え、
前記生成部は、前記選択部により選択された前記制御周期の前記目標軌跡から、ｉ＋１番目の前記制御周期の前記補正後軌跡を生成する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
ｉを１以上の整数として、
前記制御周期のｋ倍が前記撮像結果の生成から取得に要する時間よりも大きくなる整数ｋについて、
遅くとも、前記制御対象がｉ番目の制御周期の前記補正後軌跡の目標位置に達した時点で、ｉ＋２ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を、前記制御周期のｋ倍の周期で繰り返し開始する結果取得部をさらに備え、
前記生成部は、前記結果取得部が取得した前期撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡を生成する
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記生成部は、予め、１番目から２ｋ番目までの各々の前記制御周期の前記補正後軌跡を生成しておき、
前記結果取得部は、遅くとも、前記制御対象がｋ番目の制御周期の前記補正後軌跡の目標位置に達した時点で、３ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始する
ことを特徴とする請求項３に記載の制御装置。
【請求項５】
前記選択部は、
前記生成部が前記制御周期のｋ倍の周期で繰り返し生成したｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡のうち、ｉ＋２ｋ番目の制御周期の前記補正後軌跡を用いて、
ｉ＋３ｋ番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、ｊ＋３ｋ番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、１つ選択する
ことを特徴とする請求項２に記載の制御装置。      
【請求項６】
前記生成部は、前記結果取得部により取得された前記撮像結果を用いて、連続するｋ個の前記制御周期の各々に対応する前記目標軌跡を示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、連続するｋ個の前記制御周期の各々に対応する前記補正後軌跡を示すベクトルを、前記制御周期のｋ倍の周期で繰り返し生成する
ことを特徴とする請求項３または４に記載の制御装置。
【請求項７】
ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置の制御方法であって、
制御周期ごとの前記目標軌跡を取得する取得ステップと、
前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成ステップと、
を含むことを特徴とする制御方法。
【請求項８】
請求項１から６のいずれか１項に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項９】
請求項８に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの表面に沿って移動させる制御対象の、制御周期ごとの目標位置を示す目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置等に関する。
【背景技術】
【０００２】
従来、制御対象をワークの表面に沿って移動させる際の基準となる目標軌跡を、前記ワークの撮像結果を用いて補正する技術が知られている。例えば、下掲の特許文献１には、ウインドウの撮像画像に基づきウインドウの外形パターンを検出し、外形パターンと基準パターンとの比較を用いて、基準パターンに対する移動軌跡である目標軌跡を補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３５５６０５号公報（２００２年１２月１０日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような従来技術は、目標軌跡の長さと、撮像結果を用いて目標軌跡を補正した補正後軌跡の長さと、の間の差が考慮されていないという問題がある。
【０００５】
すなわち、ワークの設計データ等から算出されるワークの理想的な形状と、実際のワークの形状との差を補うために目標軌跡をワークの撮像画像を用いて補正する場合、目標軌跡の長さと、補正後軌跡の長さと、は完全には一致しないことがある。
【０００６】
しかしながら、目標軌跡の長さと、補正後軌跡の長さと、が一致しないにもかかわらず、両者の軌跡を実現する制御周期の長さ（時間間隔）と実行回数とを維持した場合、前記制御対象の制御周期ごとの移動量は、目標軌跡と、補正後軌跡と、で異なる。そして、例えばシーラー塗布装置の制御等に用いる軌跡について、ワーク表面の場所ごとのシーラーの塗布量は、制御周期ごとのディスペンサの移動量に比例するため、補正後軌跡の制御周期ごとの長さが変動すると、場所ごとにシーラーの塗布量が変動してしまう。
【０００７】
本発明の一態様は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することのできる制御装置等を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様に係る制御装置は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置であって、制御周期ごとの前記目標軌跡を取得する取得部と、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成部と、を備えることを特徴としている。
【０００９】
前記の構成によれば、前記制御装置は、前記目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成し、前記制御周期ごとの前記補正後軌跡の長さは、前記制御周期ごとの前記目標軌跡の長さに略一致する。
【００１０】
したがって、前記制御装置は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
【００１１】
本発明に係る制御装置は、ｉ、ｊの各々を１以上の整数として、ｉ番目の前期制御周期の前期補正後軌跡がｊ番目の前期制御周期の前期目標軌跡から生成されている場合、ｉ＋１番目の前記制御周期の前記補正後軌跡に対応する前記目標軌跡として、ｊ＋１番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、１つ選択する選択部をさらに備え、前記生成部は、前記選択部により選択された前記制御周期の前記目標軌跡から、ｉ＋１番目の前記制御周期の前記補正後軌跡を生成してもよい。
【００１２】
前記の構成によれば、前記制御装置は、ｊ＋１番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から選択された１つの前記目標軌跡から、ｉ＋１番目の前記制御周期の前記補正後軌跡を生成する。
【００１３】
ここで、ワークの設計データ等に基づき設定された前記目標軌跡の総距離（長さ）は、実際のワークの形状に基づいて生成された前記補正後軌跡の総距離（長さ）とは一致しないことがある。前記目標軌跡と前記補正後軌跡とで長さが一致しないにもかかわらず、両者の軌跡を実現する前記制御周期の長さ（時間間隔）と実行回数とを維持した場合、前記制御対象の前記制御周期ごとの移動量は、前記目標軌跡と前記補正後軌跡とで異なってしまう。
【００１４】
そこで、前記制御装置は、前記制御周期の実行回数を調整することにより、前記制御対象の前記制御周期ごとの移動量および前記制御周期の長さを維持しつつ、前記目標軌跡と前記補正後軌跡との長さの違いを補償する。
【００１５】
具体的には、前記制御装置は、ｊ＋１番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から選択された１つの前記目標軌跡から、ｉ＋１番目の前記制御周期の前記補正後軌跡を生成することにより、前記制御周期の実行回数を調整する。例えば、前記制御装置は、ｊ番目、ｊ＋１番目、およびｊ＋２番目のいずれか１つの前記制御周期の前記目標軌跡から、ｉ＋１番目の前記制御周期の前記補正後軌跡を生成することにより、前記制御周期の実行回数を調整する。
【００１６】
したがって、前記制御装置は、前記目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御周期の実行回数を調整して、前記制御対象の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
【００１７】
本発明に係る制御装置は、ｉを１以上の整数として、前記制御周期のｋ倍が前記撮像結果の生成から取得に要する時間よりも大きくなる整数ｋについて、遅くとも、前記制御対象がｉ番目の制御周期の前記補正後軌跡の目標位置に達した時点で、ｉ＋２ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を、前記制御周期のｋ倍の周期で繰り返し開始する結果取得部をさらに備え、前記生成部は、前記結果取得部が取得した前期撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡を生成してもよい。
【００１８】
前記の構成によれば、前記制御装置は、遅くとも、前記制御対象がｉ番目の制御周期の前記目標位置に達した時点で、ｉ＋２ｋ番目の制御周期の前記目標位置に対応する前期撮像結果の取得を、前記制御周期のｋ倍の周期で繰り返し開始する。
【００１９】
ここで、前記制御周期のｋ倍は、前記撮像結果の生成から取得に要する時間よりも大きい。そして、前記制御装置が「ｉ＋２ｋ番目の制御周期の前記目標位置に対応する前期撮像結果（つまり、２ｋ制御周期先の制御周期に対応する前期撮像結果）」の取得を開始するのは、遅くとも、前記制御対象がｉ番目の制御周期の前記目標位置に達した時点である。したがって、前記制御装置は、遅くともｉ＋ｋ番目の制御周期において、「２ｋ制御周期先の制御周期に対応する前期撮像結果」を、前記制御周期のｋ倍の周期で繰り返し取得することができる。
【００２０】
また、前記制御装置は、前記結果取得部が取得した前期撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡を生成する。つまり、前記制御装置は、遅くともｉ＋ｋ番目の制御周期において前期撮像結果を取得し、取得した前期撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡を生成する。
【００２１】
したがって、前記制御装置は、前記ワークの全体についての前記撮像結果ではなく、前記ワークの所望の一部分の前記撮像結果を、前記制御周期のｋ倍の周期で繰り返し取得することによって、前記補正後軌跡を生成することができるとの効果を奏する。
【００２２】
また、前記制御装置は、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡を、遅くともｉ＋ｋ番目の制御周期において取得した前期撮像結果を用いて生成することができる。つまり、前記制御装置は、前記制御周期のｋ倍の周期で繰り返し、２ｋ制御周期先の制御周期に対応する前期撮像結果を取得して、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡を、遅くともｉ＋ｋ番目の制御周期において生成する。
【００２３】
したがって、前記制御装置は、前記補正後軌跡の生成を中断することなく、前記制御周期のｋ倍の周期で繰り返し、前記ワークの所望の一部分の前記撮像結果を取得して、前記補正後軌跡を生成することができるとの効果を奏する。
【００２４】
本発明に係る制御装置において、前記生成部は、予め、１番目から２ｋ番目までの各々の前記制御周期の前記補正後軌跡を生成しておき、前記結果取得部は、遅くとも、前記制御対象がｋ番目の制御周期の前記補正後軌跡の目標位置に達した時点で、３ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始してもよい。
【００２５】
前記の構成によれば、前記制御装置は、予め、１番目から２ｋ番目までの各々の前記制御周期の前記補正後軌跡を生成しておく。また、前記制御装置は、遅くとも、前記制御対象がｋ番目の制御周期の前記補正後軌跡の目標位置に達した時点で、３ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始する。
【００２６】
つまり、前記制御装置は、１番目から２ｋ番目までの各々の前記制御周期においては、予め生成しておいた１番目から２ｋ番目までの各々の前記制御周期の前記補正後軌跡を用いた制御を実行する。
【００２７】
また、前記制御装置は、遅くとも、前記制御対象がｋ番目の制御周期の前記補正後軌跡の目標位置に達した時点で、３ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始する。そのため、前記制御装置が、「３ｋ番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果」を取得するのは、遅くとも２ｋ番目の制御周期である。そして、前記制御装置は、遅くとも２ｋ番目の制御周期において取得する前記撮像結果を用いて、２ｋ＋１番目から３ｋ番目までの各々の前記制御周期の前記補正後軌跡を生成する。つまり、前記制御装置は、予め生成しておいた１番目から２ｋ番目までの各々の前記制御周期の前記補正後軌跡を用いた制御の実行中に、２ｋ＋１番目から３ｋ番目までの各々の前記制御周期の前記補正後軌跡を生成する。
【００２８】
したがって、前記制御装置は、前記補正後軌跡の生成を中断することなく、前記制御周期のｋ倍の周期で繰り返し、前記ワークの所望の一部分の前記撮像結果を取得して、１番目以降の制御周期ごとの前記補正後軌跡を生成することができるとの効果を奏する。
【００２９】
本発明に係る制御装置において、前記選択部は、（１）前記生成部が前記制御周期のｋ倍の周期で繰り返し生成したｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の前記補正後軌跡のうち、ｉ＋２ｋ番目の制御周期の前記補正後軌跡を用いて、（２）ｉ＋３ｋ番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、ｊ＋３ｋ番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、１つ選択してもよい。
【００３０】
前記の構成によれば、前記制御装置は、ｉ＋２ｋ番目の制御周期の前記補正後軌跡を用いて、ｉ＋３ｋ番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、ｊ＋３ｋ番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、１つ選択する。
【００３１】
前述の通り、前記目標軌跡の総距離（長さ）は、前記補正後軌跡の総距離（長さ）とは一致しないことがある。また、前記制御装置は、前記制御周期ごとの前記補正後軌跡の長さが、前記制御周期ごとの前記目標軌跡の長さに略一致するように、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する。そのため、或る制御周期の前記補正後軌跡の目標位置（終点）は、その或る制御周期の前記目標軌跡の目標位置には、必ずしも近似しない。
【００３２】
例えば、前記制御装置が生成した或る制御周期の前記補正後軌跡の目標位置は、その或る制御周期の前記目標軌跡の目標位置よりも、その或る制御周期よりも１つ前の制御周期の前記目標軌跡の目標位置の近傍に位置することがある。この場合、前記補正後軌跡と前記目標軌跡とで前記制御周期ごとの長さを略一致させつつ、両者の乖離を抑制するためには、前記制御装置は、その或る制御周期よりも１つ後の制御周期の前記補正後軌跡を、以下のように生成するのが望ましい。すなわち、前記制御装置は、その或る制御周期の前記目標軌跡を用いて、その或る制御周期よりも１つ後の制御周期の前記補正後軌跡を生成するのが望ましい。
【００３３】
また例えば、前記制御装置が生成した或る制御周期の前記補正後軌跡の目標位置は、その或る制御周期の前記目標軌跡の目標位置よりも、その或る制御周期よりも１つ後の制御周期の前記目標軌跡の目標位置の近傍に位置することがある。この場合、前記補正後軌跡と前記目標軌跡とで前記制御周期ごとの長さを略一致させつつ、両者の乖離を抑制するためには、前記制御装置は、その或る制御周期よりも１つ後の制御周期の前記補正後軌跡を、以下のように生成するのが望ましい。すなわち、前記制御装置は、その或る制御周期よりも２つ後の制御周期の前記目標軌跡を用いて、その或る制御周期よりも１つ後の制御周期の前記補正後軌跡を生成するのが望ましい。
【００３４】
そのため、前記制御装置は、生成済の前記補正後軌跡を用いて、ｋ周期先の制御周期の前記補正後軌跡を生成するのに最適な制御周期の前記目標軌跡を決定する。具体的には、前記制御装置は、ｉ＋２ｋ番目の制御周期の前記補正後軌跡を用いて、ｉ＋３ｋ番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、ｊ＋３ｋ番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、１つ選択する。例えば、前記制御装置は、ｊ＋３ｋ−１番目、ｊ＋３ｋ番目、およびｊ＋３ｋ＋１番目の前記制御周期の前記目標軌跡の中から、ｉ＋３ｋ番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、ｉ＋２ｋ番目の制御周期の前記補正後軌跡を用いて決定する。
【００３５】
したがって、前記制御装置は、前記補正後軌跡の、前記目標軌跡からの乖離を抑制しつつ、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させることができるとの効果を奏する。
【００３６】
本発明に係る制御装置において、前記生成部は、前記結果取得部により取得された前記撮像結果を用いて、連続するｋ個の前記制御周期の各々に対応する前記目標軌跡を示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、連続するｋ個の前記制御周期の各々に対応する前記補正後軌跡を示すベクトルを、前記制御周期のｋ倍の周期で繰り返し生成してもよい。
【００３７】
前記の構成によれば、前記制御装置は、前記撮像結果を用いて、前記制御周期ごとの前記目標軌跡を示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、前記制御周期ごとの前記補正後軌跡を示すベクトルを生成する。
【００３８】
したがって、前記制御装置は、前記撮像結果を用いて、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記補正後軌跡を生成することができるとの効果を奏する。
【００３９】
上記の課題を解決するために、本発明の一態様に係る制御方法は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置の制御方法であって、制御周期ごとの前記目標軌跡を取得する取得ステップと、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成ステップと、を含むことを特徴としている。
【００４０】
前記の方法によれば、前記制御方法は、前記目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成し、前記制御周期ごとの前記補正後軌跡の長さは、前記制御周期ごとの前記目標軌跡の長さに略一致する。
【００４１】
したがって、前記制御方法は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
【発明の効果】
【００４２】
本発明の一態様によれば、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することができるとの効果を奏する。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施形態１に係るＰＬＣの要部構成を示すブロック図である。
【図２】図１のＰＬＣを含む制御システムの全体概要を示す図である。
【図３】図１のＰＬＣによる補正後軌跡の生成方法の概要を示す図である。
【図４】図１のＰＬＣによる補正後軌跡の生成方法の一例について詳細を示す図である。
【図５】図１のＰＬＣが実行する処理の概要を示すフロー図である。
【図６】図５におけるＳ１０２およびＳ１０９の「補正後指令データの生成」処理の詳細を示すフロー図である。
【図７】図６の（Ａ）および（Ｂ）における「ｍ周期先の目標位置情報の取得」処理（Ｓ２０１およびＳ３０１）の詳細を示すフロー図である。
【図８】図１のＰＬＣが実現しようとする目標軌跡の一例等を示す図である。
【図９】図１のＰＬＣが補正後指令を生成する方法の一例を示す図である。
【図１０】図１のＰＬＣが補正後指令を生成する方法について、図９に例示した方法以外の方法を示す図である。
【図１１】図１のＰＬＣが、補正後指令の基礎となる規範指令を選択する方法の一例を説明する図である。
【図１２】図１のＰＬＣが、補正後指令の基礎となる規範指令を選択する方法の一例について、図１１の続きを説明する図である。
【図１３】図１のＰＬＣが、補正後指令の基礎となる規範指令を選択する方法の一例について、図１２の続きを説明する図である。
【図１４】図１のＰＬＣが、基準となる規範指令を決定した後に、決定した規範指令を補正して補正後指令を生成する方法の一例を示す図である。
【図１５】図１６から図２３を用いて説明する制御処理の前提を説明する図である。
【図１６】図１７から図２３を用いて説明する制御処理について、規範軌跡等を説明する図である。
【図１７】図１のＰＬＣが、補正後指令を生成するのに必要な特徴点等を検出、算出する方法の一例を示す図である。
【図１８】図１のＰＬＣが、算出された回転と並進とを用いて補正後指令を生成する方法の一例を示す図である。
【図１９】図１のＰＬＣが、基礎となる規範指令を選択する方法、および、補正後指令を生成するための特徴点を検出する方法の一例を示す図である。
【図２０】図１のＰＬＣが、回転と並進とを算出する方法、および、算出した回転と並進とにより補正後指令Ｃ’２を生成する方法の一例を示す図である。
【図２１】図１のＰＬＣが、補正後指令Ｃ’３およびＣ’４を生成する方法の一例を説明する図である。
【図２２】図１のＰＬＣが、補正後指令Ｃ’５およびＣ’６を生成する方法の一例を説明する図である。
【図２３】規範指令Ｃ０〜Ｃ５と、図１のＰＬＣが生成した補正後指令Ｃ’０〜Ｃ’６と、を対比して示す図である。
【発明を実施するための形態】
【００４４】
〔実施形態１〕
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図１から図２３に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、機械および設備等の制御対象を制御するＰＬＣ（プログラマブル・ロジック・コントローラ、Programmable Logic Controller）を制御装置（コントローラ）の典型例として説明を行う。
【００４５】
§１．適用例
本発明の一態様に係るＰＬＣ１０（制御装置）についての理解を容易にするため、先ず、本発明が適用される場面の一例について、具体的には、ＰＬＣ１０を含む制御システム１の概要について、図２を用いて説明する。
【００４６】
図２は、制御システム１の全体概要を示す図である。制御システム１は、ＰＬＣ１０と、サーボドライバ２０と、サーボモータ３０と、ディスペンサ４０と、画像処理装置５０と、カメラ６０と、を含んでいる。
【００４７】
ＰＬＣ１０は、例えば、ユーザ等の外部から、塗布作業、研削作業、研磨作業などのための規範指令データ（目標軌跡、指令軌跡）を受け付ける。制御システム１において、ＰＬＣ１０は、ワークの表面に沿って移動させるディスペンサ４０についての規範指令データを受け付ける。そして、ＰＬＣ１０は、受け付けた規範指令データから制御周期ごとに規範指令（指令位置）を生成し、言い換えれば、制御周期ごとの規範指令（制御周期ごとの目標軌跡）を生成する。
【００４８】
ここで、規範指令データは、ワークの設計データ等、ワークの理想的な形状に基づいて生成・設定されているため、ＰＬＣ１０は、実際のワーク（実対象）の形状に合わせて規範指令データを補正した補正後指令データ（補正後軌跡）を生成する。具体的には、ＰＬＣ１０は、制御周期ごとの規範指令を、カメラ６０による前記ワークの撮像結果（または撮像画像の解析結果）を用いて補正した、制御周期ごとの補正後指令を生成する。
【００４９】
なお、制御周期ごとの規範指令および制御周期ごとの補正後指令は、共に、ディスペンサ４０の制御周期ごとの目標位置を示す情報であるため、以下では各々を、「規範軌跡」および「補正後軌跡」とも称する。
【００５０】
ＰＬＣ１０は、生成した補正後指令を、制御周期ごとにサーボドライバ２０に入力し、サーボドライバ２０は、受け取った補正後指令に基づいてサーボモータ３０を駆動して制御対象であるディスペンサ４０を移動させる。
【００５１】
ここで、ＰＬＣ１０が生成する補正後軌跡は、実際のワークの形状に合わせて規範軌跡を補正したものであるため、補正後軌跡の距離は、規範軌跡の距離と異なり得る。そこで、ＰＬＣ１０は、制御対象の速度を一定に保つことができるよう、制御周期ごとの補正後目標位置（補正後軌跡）を調整する。ＰＬＣ１０は、例えば、制御周期の実行回数を調整し、規範軌跡の場合の制御周期の実行回数に比べて、補正後軌跡の制御周期の実行回数を増減させることで、制御対象の速度を一定に保つことができるよう、制御周期ごとの補正後目標位置（補正後軌跡）を調整する。
【００５２】
なお、「制御周期」とは、ＰＬＣ１０が制御動作を繰り返し実行する周期のことであり、具体的には、ＰＬＣ１０は、制御周期ごとに指令（補正後指令）をサーボドライバ２０に出力し、言い換えれば、制御周期ごとの補正後指令をサーボドライバ２０に出力する。
【００５３】
以下の説明において、「ｉ」、「ｎ」、「ｘ」、「ｙ」は、各々、特に断らない限り「１以上の整数」を意味し、「規範軌跡（軌跡指令）Ｃｉ−１」は、ｉ番目の制御周期の軌跡指令を表わしている。同様に、「補正後軌跡（補正後指令）Ｃ’ｉ−１」は、ｉ番目の制御周期の補正後軌跡を表わしている。なお、単に「規範軌跡Ｃｉ」と記載し、「何番目の制御周期の規範軌跡であるか」を特定しない場合、「規範軌跡Ｃｉ」は「制御周期ごとの規範軌跡」であることを意味することがある。同様に、「補正後軌跡Ｃ’ｉ」と記載し、「何番目の制御周期の補正後軌跡であるか」を特定しない場合、「補正後軌跡Ｃ’ｉ」は「制御周期ごとの補正後軌跡」であることを意味することがある。また、制御周期ごとの規範軌跡Ｃｉの目標位置（終点、到達点）を「Ｐｉ」と記載し、同様に、制御周期ごとの補正後軌跡Ｃ’ｉの目標位置（終点）を「Ｐ’ｉ」と記載する。さらに、全ての制御周期の規範軌跡Ｃｉをつなげた軌跡を「規範指令Ｃ」と記載し、同様に、全ての制御周期の補正後軌跡Ｃ’ｉをつなげた軌跡を「補正後軌跡Ｃ’」と記載する。
【００５４】
ＰＬＣ１０は、サーボドライバ２０に、制御周期ごとの補正後軌跡Ｃ’ｉを順次出力し、サーボドライバ２０は、ＰＬＣ１０から受け付けた制御周期ごとの補正後軌跡Ｃ’ｉに従って、連続的に制御を実行する。具体的には、ＰＬＣ１０は、１番目の制御周期の補正後軌跡Ｃ’０から順に、２番目の制御周期の補正後軌跡Ｃ’１、３番目の制御周期の補正後軌跡Ｃ’２、４番目の制御周期の補正後軌跡Ｃ’３、・・・、ｎ番目の制御周期の補正後軌跡Ｃ’ｎ−１を出力する。サーボドライバ２０は、ＰＬＣ１０から受け付けた補正後軌跡Ｃ’０、Ｃ’１、Ｃ’２、Ｃ’３、・・・、Ｃ’ｎ−１に従って、サーボモータ３０に対して連続的に制御を実行する。サーボドライバ２０が制御周期ごとの補正後軌跡Ｃ’ｉに従ってサーボモータ３０の駆動を制御することにより、ディスペンサの制御周期ごとの位置変化の軌跡は、補正後軌跡Ｃ’ｉに略一致することとなる。
【００５５】
サーボドライバ２０は、ＰＬＣ１０と接続されるとともに、ＰＬＣ１０からの制御周期ごとの補正後軌跡Ｃ’ｉに従ってサーボモータ３０を駆動する。より具体的には、サーボドライバ２０は、ＰＬＣ１０から一定周期（制御周期）で、補正後軌跡Ｃ’ｉ（補正後指令、入力軌跡）を受ける。また、サーボドライバ２０は、サーボモータ３０の軸に接続されている位置センサ（ロータリーエンコーダ）、トルクセンサ等の検出器から、位置、速度（典型的には、今回位置と前回位置との差から算出される）、トルクといったサーボモータ３０の動作に係る実測値を取得する。そして、サーボドライバ２０は、ＰＬＣ１０からの補正後軌跡Ｃ’ｉを目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボドライバ２０は、実測値が目標値に近づくようにサーボモータ３０を駆動するための電流を調整する。なお、サーボドライバ２０は、サーボモータアンプと称されることもある。
【００５６】
サーボモータ３０は、サーボドライバ２０による制御に従ってディスペンサ４０を移動させ、ディスペンサ４０は、例えば、シーラーの塗布用ヘッドである。
【００５７】
画像処理装置５０は、ＰＬＣ１０からの範囲指定（カメラ６０の撮像範囲を指定する情報）を受け付け、受け付けた範囲指定に対応する「実際のワーク（実対象）の一部分」をカメラ６０に撮像させる。画像処理装置５０は、カメラ６０が撮像した「ワークの一部分」に係る撮像画像を、カメラ６０から取得し、取得した撮像画像を解析して特徴点情報を生成する。特徴点情報について、詳細は図３等を用いて後述する。画像処理装置５０は、生成した特徴点情報をＰＬＣ１０に出力する。
【００５８】
§２．構成例
図３は、ＰＬＣ１０による補正後軌跡Ｃ’ｉの生成方法の概要を示す図である。図３において、一点鎖線で示している軌跡は、規範指令として与えられる指令軌跡（規範軌跡Ｃ）であり、「制御周期ごとの目標位置Ｐｉ（点列データ）」が示されている。規範軌跡Ｃは、ワークの設計データなどに基づいて予め与えられる軌跡であり、「既定の規範軌跡」である。
【００５９】
これに対し、実線で示している軌跡は、実対象（実際のワーク）によって要求される軌跡（要求軌跡）を示している。実際のワークの形状は、ワークの設計データが示す形状と完全には一致しないことがある。
【００６０】
そこで、ＰＬＣ１０は、実対象の撮像画像を用いて、規範軌跡Ｃと要求軌跡との差を低減させるように規範軌跡Ｃを補正した、補正後軌跡Ｃ’を生成する。図３において、二点鎖線で示している軌跡は、ＰＬＣ１０が実対象の形状に基づいて規範軌跡Ｃを補正した軌跡であり、つまり、ＰＬＣ１０が生成した軌跡補正後軌跡Ｃ’である。例えば、ＰＬＣ１０は、以下に示すように「ｍ周期分の規範軌跡Ｃｉ」を補正して、「ｍ周期分の補正後軌跡Ｃ’ｉ」を生成する。すなわち、ＰＬＣ１０は、「動作中の現在位置からｍ周期先の規範軌跡Ｃｉの目標位置Ｐｉに対応する、ワークの撮像画像上で検出される補正目標位置（実対象の要求位置、例えば特徴点）」に基づいて、規範軌跡Ｃｉを補正して、補正後軌跡Ｃ’ｉを生成する。
【００６１】
なお、詳細は図４を用いて後述するが、「ｍ」は、ＰＬＣ１０の制御周期Ｔｃ[ｍｓ]のｍ倍が、「画像の撮像」から「所望の位置（例えば、目標位置）の計測結果の取得」までに要する時間（画像処理周期Ｔｐ[ｍｓ]）の２倍より大きくなる整数を示している。すなわち、「ｍ」は、「Ｔｃ×ｍ＞２Ｔｐ」を満たす整数である。言い換えれば、「ｍ」は、画像処理に要する時間Ｔｐ[ｍｓ]より大きくなるｋ周期、つまり、「Ｔｃ×ｋ＞Ｔｐ」を満たす整数「ｋ」を用いて、「ｍ＝２ｋ」と定義されてもよい。
【００６２】
図４は、ＰＬＣ１０による補正後軌跡Ｃ’ｉの生成方法の一例について詳細を示す図である。一般に、画像処理に要する期間（処理時間）である画像処理周期Ｔｐ[ｍｓ]は、軌跡制御の処理周期（つまり、制御周期Ｔｃ[ｍｓ]）と比較して大きい。そのため、ＰＬＣ１０は、画像処理装置の画像処理時間Ｔｐ（例えば、「画像の撮像」から「所望の位置の計測結果の取得」までに要する時間）の２倍より大きくなるｍ周期先の目標位置Ｐiを補正する。これにより、ＰＬＣ１０は、ｍ／２周期ごとに、つまり、ｋ周期ごとに、撮像画像による目標位置補正を行いながら、その間は既定の規範軌跡（具体的には、生成済の補正後軌跡Ｃ’ｉ）に基づいて補間し、止まることのない連続的な動作を実現する。
【００６３】
なお、図４において、点Ａは、ワークの「動作開始位置（動作開始前の時点）から、ｍ／２周期先の、つまり、ｋ周期先の、補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉ（到達位置）に対応する部分」を示している。言い換えれば、点Ａは、ワークの「動作開始位置からｋ周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉの周辺領域」を示している。
【００６４】
なお、詳細は後述するが、ｉ＋１番目の制御周期の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉは、ｉ番目、ｉ＋１番目、およびｉ＋２番目のいずれか１つの制御周期の規範軌跡Ｃｘの目標位置Ｐｘを補正したものである。したがって、点Ａは、「動作開始位置から、ｋ周期先の、または、ｋ＋１周期先、または、ｋ＋２周期先の、規範軌跡Ｃｘの目標位置Ｐｘ（到達位置）に対応する部分」として定義してもよい。
【００６５】
また、図４において、点Ｂは、ワークの「動作開始位置（動作開始前の時点）から、ｍ周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分」を示している。言い換えれば、点Ｂは、ワークの「点Ａ（より正確には、ディスペンサ４０が点Ａに到達した制御周期）から、ｍ／２周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分」を示している。同様に、点Ｃは、ワークの「点Ａ（より正確には、ディスペンサ４０が点Ａに到達した制御周期）から、ｍ周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分」を示している。言い換えれば、点Ｃは、ワークの「点Ｂ（より正確には、ディスペンサ４０が点Ｂに到達した制御周期）から、ｍ／２周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分」を、示している。さらに、点Ｄは、ワークの「点Ｂ（より正確には、ディスペンサ４０が点Ｂに到達した制御周期）から、ｍ周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分」を示している。言い換えれば、点Ｄは、ワークの「点Ｃ（より正確には、ディスペンサ４０が点Ｃに到達した制御周期）から、ｍ／２周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分」を示している。
【００６６】
図４に示す例では、（１）動作開始時に、ＰＬＣ１０は、予めｍ周期分の補正後軌跡Ｃ’ｉを生成しておく。つまり、ＰＬＣ１０は、サーボドライバ２０によるディスペンサ４０の位置制御の実行開始時点であって、ディスペンサ４０が動作開始位置（低速制御動作の開始位置）にある時点において、予めｍ周期分の補正後軌跡Ｃ’ｉを生成しておく。
【００６７】
具体的には、ＰＬＣ１０は、カメラ６０が予め撮像しておいた「ワークの、点Ｂを含む領域」の撮像結果を用いて、動作開始時に、予めｍ周期分の補正後軌跡Ｃ’ｉを生成しておく。図４において、点線で示している曲線は、ＰＬＣ１０が動作開始前に予め生成しておいたｍ周期分の補正後軌跡Ｃ’ｉを示している。
【００６８】
（２）ディスペンサ４０がＡ点に到達した時点（Ａ点到達時）で、ＰＬＣ１０は、画像処理装置５０を介してカメラ６０に、「ワークの、点Ｃ（点Ａから、ｍ周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する部分）を含む部分・領域」を撮像させる。前述の定義通り、「制御周期Ｔｃのｍ／２倍は、画像処理周期Ｔｐよりも大きい」。したがって、ＰＬＣ１０は、Ａ点到達時にカメラ６０に撮像させた「点Ｃを含む領域」の撮像結果を、ディスペンサ４０がＢ点（Ａ点からｍ／２周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する位置）に到達する時点（Ｂ点到達時）よりも前の時点で、取得する。言い換えれば、ＰＬＣ１０は、「点Ｃを含む領域」の撮像結果を、Ｂ点到達時よりも早い時点で、取得する。
【００６９】
ここで、ＰＬＣ１０による「画像処理結果を用いて規範軌跡を補正した補正後軌跡の生成」に係る処理時間は十分に小さく、無視できる大きさである。したがって、ＰＬＣ１０は、Ｂ点到達時において、「点Ｃを含む領域」の撮像結果を用いて、Ａ点到達時よりもｍ周期先の補正後軌跡Ｃ’ｉを生成する。
【００７０】
すなわち、ＰＬＣ１０は、Ａ点到達時にカメラ６０に「ワークの、点Ｃを含む領域」を撮像させ、Ｂ点到達時に、その撮像結果を用いて、Ａ点到達時よりもｍ周期先の補正後軌跡Ｃ’ｉを生成し、つまり、Ａ点からｍ周期先の目標位置補正を行なう軌跡を生成する。
【００７１】
（３）ディスペンサ４０がＢ点に到達した時点（Ｂ点到達時）で、ＰＬＣ１０は、画像処理装置５０を介してカメラ６０に、「ワークの、点Ｄ（点Ｂから、ｍ周期先の補正後軌跡の目標位置に対応する部分）を含む部分・領域」を撮像させる。ＰＬＣ１０は、Ｂ点到達時にカメラ６０に撮像させた「点Ｄを含む領域」の撮像結果を、ディスペンサ４０がＣ点（Ｂ点から、ｍ／２周期先の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉに対応する位置）に到達する時点（Ｃ点到達時）よりも前の時点で、取得する。したがって、ＰＬＣ１０は、Ｃ点到達時において、「点Ｄを含む領域」の撮像結果を用いて、Ｂ点到達時よりもｍ周期先の補正後軌跡Ｃ’ｉを生成する。
【００７２】
すなわち、ＰＬＣ１０は、Ｂ点到達時にカメラ６０に「ワークの、点Ｄを含む領域」を撮像させ、Ｃ点到達時に、その撮像結果を用いて、Ｂ点到達時よりもｍ周期先の補正後軌跡Ｃ’ｉを生成し、つまり、Ｂ点からｍ周期先の目標位置補正を行なう軌跡を生成する。
【００７３】
（ＰＬＣ１０の実行する処理の概要）
図５は、ＰＬＣ１０が実行する処理の概要を示すフロー図である。前述の通り、ＰＬＣ１０は、ディスペンサ４０への制御を開始する前に予め、画像処理に要する時間（つまり、画像処理周期Ｔｐ）よりも大きくなるｋ周期を算出しておく。ＰＬＣ１０が画像処理装置５０からカメラ６０の撮像結果（特に、特徴点情報）を取得して補正する目標位置は、例えば、ｍ＝２ｋを満たすｍ周期先の規範指令（規範軌跡Ｃ）の目標位置Ｐである。
【００７４】
ＰＬＣ１０は、先ず、ユーザ等が生成した規範軌跡Ｃ（ＮＣデータ等）から、制御周期ごとの規範となる軌跡指令データ、つまり、規範軌跡Ｃｉ（ｉ＝０、・・・、ｍ−１）を生成する（Ｓ１０１）。
【００７５】
ＰＬＣ１０は、生成した制御周期ごとの規範軌跡Ｃｉ（ｉ＝０、・・・、ｍ−１）を用いて、動作開始前の、制御周期ごとの補正後指令データ、つまり、補正後軌跡Ｃ’ｉ（ｉ＝０、・・・、ｍ−１）を生成する（Ｓ１０２）。なお、Ｓ１０２の「動作開始前の補正後軌跡データの生成」処理の詳細については、図６を用いて後述する。
【００７６】
ＰＬＣ１０は、ｐ＝０とし（Ｓ１０３）、ｑ＝０として（Ｓ１０４）、補正後軌跡データＣ’ｐ＋ｑの動作を実行する（Ｓ１０５）。つまり、ＰＬＣ１０は、補正後軌跡データＣ’０を、サーボドライバ２０に出力して、サーボドライバ２０に、補正後軌跡データＣ’０に基づくディスペンサ４０（サーボモータ３０）の制御を実行させる。
【００７７】
ＰＬＣ１０は、全軌跡（つまり、ユーザ等が生成した規範軌跡Ｃ）の制御を、つまり、全軌跡の出力を、終了しているか判定する（Ｓ１０６）。ＰＬＣ１０は、全軌跡の出力を終了していると判定すると（Ｓ１０６でＹｅｓ）、処理を終了する。
【００７８】
ＰＬＣ１０は、全軌跡の出力を終了していないと判定すると（Ｓ１０６でＮｏ）、ｑを１だけカウントアップし、つまり、「ｑ＝ｑ＋１」とする（Ｓ１０７）。その後、ＰＬＣ１０は、ｑがｋ以上であるか、つまり、ｑについて「ｑ≧ｋ」を満たすかを判定する（Ｓ１０８）。
【００７９】
ＰＬＣ１０は、ｑがｋ未満であると判定すると（Ｓ１０８でＮｏ）、Ｓ１０５からＳ１０８までの処理を繰り返す。ＰＬＣ１０は、ｑがｋ以上であると判定すると（Ｓ１０８でＹｅｓ）、次の補正後軌跡データ（Ｃ’ｉ＋ｍ、Ｃ’ｉ＋ｍ＋１、・・・、Ｃ’ｉ＋ｍ＋ｋ−１）を生成する（Ｓ１０９）。なお、Ｓ１０９の「次の補正後軌跡データの生成」処理の詳細については、図６を用いて後述する。
【００８０】
Ｓ１０９の処理の実行後、ＰＬＣ１０は、ｐをｋだけカウントアップし、つまり、「ｐ＝ｐ＋ｋ」とし（Ｓ１１０）、Ｓ１０４からＳ１０９までの処理を、全軌跡の出力を終了していると判定する（Ｓ１０６でＹｅｓ）まで、繰り返す。
【００８１】
図６は、図５におけるＳ１０２およびＳ１０９の「補正後軌跡データの生成」処理の詳細を示すフロー図である。図６の（Ａ）は、図５におけるＳ１０２の「動作開始前の補正後軌跡データ（Ｃ’０、Ｃ’１、・・・、Ｃ’ｍ−１）の生成」処理の詳細を示すフロー図である。図６の（Ｂ）は、図５におけるＳ１０９の「次の補正指令データ（Ｃ’ｉ＋ｍ、Ｃ’ｉ＋ｍ＋１、・・・、Ｃ’ｉ＋ｍ＋ｋ−１）の生成」処理の詳細を示すフロー図である。
【００８２】
図６の（Ａ）に示すように、図５におけるＳ１０２の「動作開始前の補正後軌跡データの生成」処理において、ＰＬＣ１０は、先ず、画像処理装置５０に対して、ｍ周期先の目標位置情報（言い換えれば、ｍ周期先の特徴点情報）の取得を指示する（Ｓ２０１）。この「ｍ周期先の目標位置情報の取得」処理の詳細については、図７を用いて後述する。
【００８３】
ＰＬＣ１０は、画像計測手段（つまり、画像処理装置５０）による計測（つまり、カメラ６０の撮像画像に対する、画像処理装置５０による解析処理）が完了しているかを判定する（Ｓ２０２）。ＰＬＣ１０は、画像計測手段による計測が完了していないと判定すると（Ｓ２０２でＮｏ）、画像計測手段による計測が完了すると判定するまで、この判定を繰り返す。
【００８４】
「画像計測手段による計測」とは、例えば、「画像処理装置５０が、カメラ６０の撮像画像を解析して、例えば、実対象の所望の一部分の形状・輪郭を示す情報（具体的には、所望の一部分の縁・辺を構成する曲線等を示す情報など）を算出する」処理である。画像処理装置５０がＰＬＣ１０に出力する特徴点情報（目標位置情報）は、「画像計測手段による計測」処理の結果（計測結果）を、つまり、「所望の一部分の縁・辺を構成する曲線等を示す情報」を含んでもよい。
【００８５】
ＰＬＣ１０は、画像計測手段による計測が完了していると判定すると（Ｓ２０２でＹｅｓ）、画像計測手段から計測結果（つまり、ｍ周期先の目標位置に対応する特徴点情報）を取得し、取得した計測結果に基づき、軌跡の変位および回転を算出する（Ｓ２０３）。
【００８６】
そして、ＰＬＣ１０は、算出した変位および回転を用いて、規範軌跡を変換し、補正後軌跡を生成する（Ｓ２０４）。
【００８７】
図６の（Ｂ）に示すように、図５におけるＳ１０９の「次の補正指令データの生成」処理において、ＰＬＣ１０は、先ず、画像処理装置５０に対して、ｍ周期先の目標位置情報（特徴点情報）の取得を指示する（Ｓ３０１）。この「ｍ周期先の目標位置情報の取得」処理の詳細については、図７を用いて後述する。
【００８８】
ＰＬＣ１０は、「取得済みの計測結果（つまり、ｋ周期前のＳ３０１で画像計測手段に取得を指示した目標位置情報（特徴点情報））」に基づき、軌跡の変位および回転を算出する（Ｓ３０２）。ここで、「取得済みの計測結果」とは、「ｋ周期前に実行を指示された、実対象の目標位置・部分（範囲指定で指定された範囲）の撮像結果に対する、計測結果」であり、つまり、ｋ周期前に実行を指示した撮像・解析処理の結果である特徴点情報である。
【００８９】
図４等を用いて説明した通り、ＰＬＣ１０は、カメラ６０（画像処理装置５０）に撮像を指示した、ワークの「ｍ周期（２ｋ）先の目標位置Ｐｉに対応する部分」の計測結果（つまり、特徴点情報）を、指示からｋ周期後に取得する。ＰＬＣ１０がＳ３０２の処理を実行するまでに、ＰＬＣ１０がｋ周期前のＳ３０１で画像処理装置５０に指示した「画像計測手段での計測（ｍ周期先の目標位置情報の取得）」が完了している。そして、画像処理装置５０は計測結果（目標位置情報、つまり特徴点情報）をＰＬＣ１０に出力し、ＰＬＣ１０は、この計測結果を、Ｓ３０１での指示からｋ周期後のＳ３０２の実行前に取得する。つまり、ＰＬＣ１０がＳ３０１で画像処理装置５０に対して指示した「ｍ周期先の目標位置情報の取得」処理の結果を、ＰＬＣ１０は指示からｋ周期後のＳ３０２の前に取得し、指示からｋ周期後のＳ３０２において、取得した計測結果を用いてＳ３０２を実行する。
【００９０】
ＰＬＣ１０は、Ｓ３０２で算出した変位および回転を用いて、規範軌跡Ｃｉを変換し（つまり、補正し）、補正後軌跡Ｃ’ｉを生成する（Ｓ３０３）。
【００９１】
図７は、図６の（Ａ）および（Ｂ）における「ｍ周期先の目標位置情報の取得」処理（Ｓ２０１およびＳ３０１）の詳細を示すフロー図である。図７に示すように、ＰＬＣ１０は先ず、前回生成した補正後軌道Ｃ’ｉの目標位置Ｐ’ｉについて、補正後軌道Ｃ’ｉの基準とした規範軌跡Ｃｉの目標位置Ｐｉに対する変位方向および変位量を算出する（Ｓ４０１）。なお、ＰＬＣ１０は、Ｓ４０１の処理を、図６の（Ａ）のＳ２０１の「ｍ周期先の目標位置情報の取得」処理においては実行せず、言い換えれば、動作開始前の補正後軌跡データ生成時には、ＰＬＣ１０は、Ｓ４０１の処理を実行しない。
【００９２】
ＰＬＣ１０は、算出した変位方向および変位量を用いて、ｍ周期先の補正後軌道Ｃ’ｉの目標位置Ｐ’ｉを求めるための基準となる規範軌跡Ｃｉを決定する（Ｓ４０２）。なお、この「規範軌跡の決定」処理の詳細については、図１１から図１３を参照して後述する。
【００９３】
ＰＬＣ１０は、決定した規範軌跡を用いて、特徴点検出範囲を決定し（Ｓ４０３）、決定した特徴点検出範囲を「範囲指定」として、画像処理装置５０に出力する。そして、ＰＬＣ１０は、画像処理装置５０を介してカメラ６０に、決定した特徴点検出範囲を撮像させ、画像処理装置５０に、カメラ６０の撮像結果から特徴点（ワークの、特徴点検出範囲の形状を示す縁・辺など）を検出させる。さらに、ＰＬＣ１０は、画像処理装置５０に、特徴点の座標等を計測させてもよい。つまり、ＰＬＣ１０は、画像処理装置５０およびカメラ６０に、「撮像・特徴点検出・計測」処理を実行させる（Ｓ４０４）。「撮像・特徴点検出・計測」処理は、画像計測手段（画像処理装置５０およびカメラ６０）の定義済み処理である。つまり、「撮像・特徴点検出・計測」処理は、従来までの「撮像対象中の特定の部分を撮像させ、撮像画像から、その特定の部分の形状を示す縁・辺などの特徴点を検出させ、検出した特徴点の座標等を計測させる」処理を用いて実現することができる。
【００９４】
§３．動作例
ＰＬＣ１０の理解を容易にするため、ＰＬＣ１０が二次元の円弧軌跡を生成する場合について、図８から図１４を用いて説明する。また以下では、説明を単純にするために、「画像の撮像」から「特徴点の抽出、および、計測結果の取得」までに、１制御周期未満で完了する例を用いる。すなわち、図５から図７を用いて説明したフローについて、「ｋ＝１」、「ｍ＝２」として以下を説明する。
【００９５】
１．準備
１．１．規範となる軌跡データの生成
図８から図１４を用いて説明するＰＬＣ１０の制御例について、制御周期ごとの移動量データ（軌跡データ）は、規範軌跡Ｃｉ（ｉ＝０、１、２、・・・、ｍ−１）であるｍ個のデータとする。ここで、「ｍ」が有限な値である必要はなく、ＰＬＣ１０が実行する制御に必要な軌跡データが、ＰＬＣ１０のデータバッファ（記憶部１７０）等に確保される限りは、規範軌跡が都度生成され、更新されるような方式でもよい。
【００９６】
また、各々の規範軌跡Ｃｉ（ｉ＝０、１、２、・・・、ｍ−１）は、ｎ次元の座標系上の軌跡に対して、「Ｃｉ＝｛ｄｘ１（ｉ），ｄｘ２（ｉ），ｄｘ３（ｉ），・・・，ｄｘｎ（ｉ）｝」というｎ個の移動量の要素を持つ。例えば、２次元座標における円弧の場合、規範軌跡Ｃｉは２次元の要素（ｄｘ（ｉ），ｄｙ（ｉ））を持つこととなる。
【００９７】
図８は、ＰＬＣ１０が実現しようとする規範軌跡Ｃの一例（図８の（Ａ））、この規範軌跡Ｃを実現するための制御周期ごとの規範軌跡Ｃｉ（図８の（Ｂ））、および、制御周期ごとの規範軌跡Ｃｉについて、制御周期ごとの速度（図８の（Ｃ））を示している。図８に示すように、ＰＬＣ１０は、ｍ個の定速の規範軌跡Ｃｉ（制御周期ごとの速度が一定の規範軌跡Ｃｉ）により、例えば２次元の円弧を実現する。
【００９８】
１．２．（動作開始前）初回、次回の補正後指令の生成
ＰＬＣ１０は、動作開始前に予め、ｍ周期分の補正後軌跡Ｃ’ｉを生成しておき、つまり、制御周期ごとの規範軌跡Ｃｉ（ｉ＝０、・・・、ｍ−１）を用いて、制御周期ごとの補正後軌跡Ｃ’ｉ（ｉ＝０、・・・、ｍ−１）を生成する。ここで、前述の通り、「ｍ＝２」であるから、ＰＬＣ１０は、規範軌跡Ｃ０、Ｃ１の各々に対する補正後軌跡Ｃ’０、Ｃ’１の各々を、動作開始前に予め生成する。ＰＬＣ１０は、規範軌跡Ｃ０、Ｃ１の各々から、補正後軌跡Ｃ’０、Ｃ’１の各々を、例えば図９に示す方法により、生成する。
【００９９】
図９は、ＰＬＣ１０が、規範軌跡Ｃ０、Ｃ１の各々から、補正後軌跡Ｃ’０、Ｃ’１の各々を生成する方法の一例を示している。図９に示すように、（１）ＰＬＣ１０の動作開始前（停止状態時）にカメラ６０が撮像した画像に対して、画像処理装置５０は、規範軌跡Ｃ１の法線上で特徴点を検出する。画像処理装置５０は、検出した特徴点の座標などの情報（特徴点情報）を、ＰＬＣ１０に通知する。
【０１００】
（２）ＰＬＣ１０は、「規範軌跡Ｃ０の始点と規範軌跡Ｃ１の終点（目標位置）とを結ぶ線」と、「開始位置（初期位置）と検出された特徴点とを結ぶ線」とに対して、「回転量（傾き量）」と「並進量（変位量）」とを求める。すなわち、ＰＬＣ１０は、「規範軌跡Ｃ０の始点と規範軌跡Ｃ１の終点とを結ぶ線」を、「開始位置（初期位置）と検出された特徴点とを結ぶ線」と平行にするのに必要な「回転量（傾き量）」を算出する。また、ＰＬＣ１０は、規範軌跡Ｃ０の始点を、開始位置（初期位置）へと移動させる量である「並進量（変位量）」を算出する（図９の（Ａ））。
【０１０１】
ここで、「規範軌跡Ｃ１の目標位置（終点）」に対応する「実対象（実際のワーク）の特徴点」の検出は、規範軌跡Ｃ１の法線上での検出に限られるものではない。例えば、実対象の輪郭に対して垂線を引いた場合に最も距離が短くなる線上で、「規範軌跡Ｃ１の目標位置（終点）」に対応する「実対象（実際のワーク）の特徴点」を決定してもよい。また、例えば、規範軌跡Ｃ１の目標位置の周囲を囲む特定の領域内で、「規範軌跡Ｃ１の目標位置」に対応する「実対象（実際のワーク）の特徴点」を探索してもよい。具体的には、目標位置を中心とする円領域内で検出した特定パターン等から、「実対象（実際のワーク）の特徴点」を決定してもよい。
【０１０２】
（３）ＰＬＣ１０は、（２）で求めた回転量と並進量とにより、規範軌跡Ｃ０およびＣ１の各々を変換した（つまり、補正した）補正後軌跡Ｃ’０およびＣ’１の各々を生成する。
【０１０３】
なお、図９に示した例では、ＰＬＣ１０が、規範となる指令（規範軌跡Ｃｉ）、および補正後の指令（補正後軌跡Ｃ’ｉ）の各々の「始点と終点とを結ぶ線」に対する回転量（傾き量）と並進量（変位量）とにより、補正後軌跡Ｃ’ｉを生成している。すなわち、「規範軌跡Ｃ０の始点と規範軌跡Ｃ１の終点とを結ぶ線」は、「規範となる指令（規範軌跡Ｃｉ）の始点と終点とを結ぶ線」である。また、「開始位置（初期位置）と検出された特徴点とを結ぶ線」は「補正後の指令（補正後軌跡Ｃ’）の始点と終点とを結ぶ線」である。図９の例では、ＰＬＣ１０は、「規範となる指令の始点と終点とを結ぶ線」から、「補正後の指令の始点と終点とを結ぶ線」への、回転と並進とにより、補正後軌跡Ｃ’ｉを生成している。しかしながら、ＰＬＣ１０が補正後軌跡Ｃ’０およびＣ’１の各々を生成する方法は、図９に示す方法に限られるものではない。
【０１０４】
図１０は、ＰＬＣ１０が、規範軌跡Ｃ０、Ｃ１の各々から、補正後軌跡Ｃ’０、Ｃ’１の各々を生成する方法について、図９に例示した方法以外の方法を例示している。例えば、図１０の（Ａ）に示すように、ＰＬＣ１０は、「補正後の指令の始点（開始位置）と、検出された特徴点とを通る線」に対して、偏差が最小となるような傾きを最小二乗法で求めてもよい。また、図１０の（Ｂ）に示すように、ＰＬＣ１０は、対象物の輪郭に対する所定のルール（クリアランスなど）を満たす「補正後軌跡」群で、補正後軌跡と実対象の輪郭とで囲まれた面積が最小となる補正後軌跡を選択してもよい。
【０１０５】
２．補正後指令Ｃ’０から動作を開始
ＰＬＣ１０は、予め生成しておいた補正後軌跡Ｃ’０をサーボドライバ２０に出力し、補正後軌跡Ｃ’０に基づくサーボモータ３０（つまり、ディスペンサ４０）の制御を、サーボドライバ２０に実行させる。
【０１０６】
３．補正後指令Ｃ’０の動作終了時に補正後指令Ｃ’２を生成
ＰＬＣ１０は、補正後軌跡Ｃ’０の動作終了時点において、以下の「３．１．」から「３．３．」までの処理を実行して、補正後軌跡Ｃ’２を生成する。なお、「補正後軌跡Ｃ’０の動作終了時点」とは、「補正後軌跡Ｃ’１の動作開始時点」であり、言い換えれば、「ディスペンサ４０が、補正後軌跡Ｃ’０の終点であるＰ’０に位置した時点」である。
【０１０７】
３．１．基準（参照元）となる規範指令Ｃｉの決定（選択判定）
ＰＬＣ１０は、「どの規範軌跡Ｃｘを基準として、次の（具体的には、ｍ周期先の）制御周期の補正後軌跡Ｃ’ｉを、つまり、ディスペンサ４０が現在位置に到達した制御周期からｍ周期先の制御周期の補正後軌跡Ｃ’ｉを、生成するか」を以下に示すように決定する。すなわち、「前回生成した補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉ（到達位置）」と、「前回生成した補正後軌跡Ｃ’ｉの基準となった規範軌跡Ｃｉの目標位置Ｐｉ」と、を用いて決定する。なお、前回生成した補正後軌跡Ｃ’ｉの制御周期は、補正後軌跡Ｃ’ｉの基準となった規範軌跡Ｃｉの制御周期と、同じであるとは限られない。
【０１０８】
例えば、ＰＬＣ１０は、「ディスペンサ４０の現在位置＝Ｐ’０」の時点で、「補正後軌跡Ｃ’１の目標位置Ｐ’１」と、「補正後軌跡Ｃ’１の基準となった規範軌跡Ｃ１の目標位置Ｐ１」との関係から、補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘを決定する。
【０１０９】
ＰＬＣ１０は、「補正後軌跡Ｃ’１の目標位置Ｐ’１」と、「規範軌跡Ｃ１の目標位置Ｐ１」との関係から、補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘを、例えば図１１から図１３に示す方法により、生成する。
【０１１０】
なお、図１１から図１３には、ＰＬＣ１０が、「規範軌跡Ｃ１の目標位置Ｐ１」と「補正後軌跡Ｃ’１の目標位置Ｐ’１」との位置関係および両者の間の距離によって、補正後軌跡Ｃ’２の基礎となる規範軌跡を判定する（選択する）方法が例示されている。しかしながら、ＰＬＣ１０が、「補正後軌跡Ｃ’１の目標位置Ｐ’１」と、「規範軌跡Ｃ１の目標位置Ｐ１」との関係から、補正後軌跡Ｃ’２の基礎となる規範軌跡を選択する方法は、図１１から図１３に例示される方法に限られるものではない。ＰＬＣ１０は、例えば、「目標位置Ｐ’１から最も距離が短い規範軌跡指令」を、「補正後軌跡Ｃ’２の基礎となる規範軌跡」として、選択してもよい。
【０１１１】
図１１は、ＰＬＣ１０が、「補正後軌跡Ｃ’１の目標位置Ｐ’１」と、「規範軌跡Ｃ１の目標位置Ｐ１」との関係から、補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘを選択する方法の一例を説明する図である。図１１の（Ａ）に示すように、ＰＬＣ１０は先ず、（１）目標位置Ｐ’１から目標位置Ｐ１へのベクトルＬを求める。ＰＬＣ１０は次に、（２）Ｌの向きから、補正後軌跡Ｃ’１の目標位置Ｐ’１が、本来の指令位置（規範軌跡Ｃ１の目標位置）Ｐ１に対して、「達していない」か、あるいは「超えている」か、を「Ｌの向き」から判定する。
【０１１２】
図１２は、ＰＬＣ１０が、「補正後軌跡Ｃ’１の目標位置Ｐ’１」と、「規範軌跡Ｃ１の目標位置Ｐ１」との関係から、補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘを選択する方法の一例について、図１１の続きを説明する図である。
【０１１３】
図１３は、ＰＬＣ１０が、「補正後軌跡Ｃ’１の目標位置Ｐ’１」と、「規範軌跡Ｃ１の目標位置Ｐ１」との関係から、補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘを選択する方法の一例について、図１２の続きを説明する図である。
【０１１４】
ＰＬＣ１０は、（２）「Ｌの向き」から、目標位置Ｐ’１が、目標位置Ｐ１に、「達していない（遅れている）」か、あるいは「超えている（進んでいる）」か、を判定すると、さらに、次の処理を実行する。すなわち、ＰＬＣ１０は、（３）補正後軌跡Ｃ’ｉが「遅れている」または「進んでいる」判定の判定結果に加えて、「Ｌの長さ」を用いて、次に参照する規範軌跡Ｃｘ（補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘ）を決定する。なお、補正後軌跡Ｃ’１が「遅れている」とは、「目標位置Ｐ’１が、目標位置Ｐ１に対応する位置に未達である」状態を意味しており、「進んでいる」とは、「目標位置Ｐ’１が、目標位置Ｐ１に対応する位置を超過した位置にある」状態を意味している。
【０１１５】
第１に、「ベクトルＬの長さが、規範軌跡Ｃ１の長さの半分以下」である場合、ＰＬＣ１０は、補正後軌跡Ｃ’２の元指令（基礎となる規範軌跡Ｃｘ）として、以下の規範軌跡を使用する。すなわち、ＰＬＣ１０は、補正後軌跡Ｃ’２の元指令として、規範軌跡Ｃ１の１つ次に続く規範軌跡Ｃ２を使用する（図１２の（Ａ））。
【０１１６】
第２に、「ベクトルＬの長さが、規範軌跡Ｃ１の長さの半分よりも長い」かつ「目標位置Ｐ’１が、目標位置Ｐ１に達していない（遅れている）」場合、ＰＬＣ１０は、補正後軌跡Ｃ’２の元指令として、前回と同じ規範軌跡Ｃ１を使用する（図１２の（Ｂ））。
【０１１７】
第３に、「ベクトルＬの長さが、規範軌跡Ｃ１の長さの半分よりも長い」かつ「目標位置Ｐ’１が、目標位置Ｐ１を超えている（進んでいる）」場合、ＰＬＣ１０は、補正後軌跡Ｃ’２の元指令として、規範軌跡Ｃ１の２つ次の規範軌跡Ｃ３を使用する（図１３）。
【０１１８】
ＰＬＣ１０が実行するこれらの処理は、実際のワークの輪郭が規範となる軌跡指令（規範軌跡）にほぼ一致しており、その輪郭のベクトルの向きが近接した規範軌跡のベクトルに近しいことを利用するものである。
【０１１９】
３．２．撮像トリガ（特徴点情報について）
ＰＬＣ１０は、画像計測手段（画像処理装置５０）に対して、範囲指定と共に、補正後軌跡Ｃ’２を生成するための特徴点の撮像および検出のトリガを与える。範囲指定と共に、このトリガを受け付けた画像処理装置５０は、カメラ６０に、実対象（実際のワーク）の所望の一部分（範囲指定で指定された範囲）を撮像させる（撮像を実行させる）。そして、画像処理装置５０は、カメラ６０の撮像画像を解析して特徴点を検出し、検出した特徴点の情報（特徴点情報）をＰＬＣ１０に出力する。
【０１２０】
ここで、特徴点情報は、例えば、実対象の所望の一部分（ＰＬＣ１０から受け付けた範囲指定で指定されている範囲）の撮像画像を解析して取得した、その一部分の形状を示す情報（例えば、その一部分の縁・辺を構成する曲線等を示す情報など）である。ただし、特徴点情報が、実対象の所望の一部分の撮像画像を解析して取得した、実対象の所望の一部分の形状を示す情報であることは必須ではない。画像処理装置５０は、ＰＬＣ１０に代わって、法線上の特徴点の計測（例えば、特徴点の座標を測定する処理）を実行し、計測結果を特徴点情報として、ＰＬＣ１０に出力してもよい。
【０１２１】
この場合、例えば、ＰＬＣ１０は、「３．１．」において決定した基準となる規範軌跡に関する法線情報を、画像処理装置５０に与える。その後、ＰＬＣ１０は、画像処理装置５０に、範囲指定と共に、撮像、検出、および計測のトリガを与える。
【０１２２】
このトリガを受け付けた画像処理装置５０は、カメラ６０に実対象の所望の一部分を撮像させ、カメラ６０の撮像画像を解析して、その一部分の形状（例えば、その部分の縁・辺を構成する曲線等）を検出する。そして、画像処理装置５０は、例えば、検出した曲線等と、ＰＬＣ１０から取得した法線情報で示される線分（法線）との交点として、特徴点を算出し、算出した特徴点の座標等を計測する。つまり、画像処理装置５０は、カメラ６０の撮像画像の解析・検出結果（実対象の所望の一部分の形状を示す曲線）と、ＰＬＣ１０から取得した法線情報と、を用いて、法線上の特徴点に対する計測を実行する。そして、画像処理装置５０は、計測結果である法線上の特徴点の座標等を、特徴点情報として、ＰＬＣ１０に出力してもよい。
【０１２３】
３．３．補正後指令Ｃ’２の生成
ＰＬＣ１０は、「１．２．」と同様の手法により、元となる規範軌跡Ｃｉ（ｉ＝１、または２、または３）から、補正後軌跡Ｃ’２を生成する。すなわち、ＰＬＣ１０は、「３．１．」の処理により、補正後軌跡Ｃ’２の基準（参照元）となる規範軌跡Ｃｂを決定する。
【０１２４】
図１４は、ＰＬＣ１０が、補正後軌跡Ｃ’２の基準となる規範軌跡Ｃｂを決定した後に、規範軌跡Ｃｂを補正して補正後軌跡Ｃ’２を生成する方法を説明する図である。ＰＬＣ１０は、（１）補正後軌跡Ｃ’２の基準となる規範軌跡Ｃｂを目標位置Ｐ’１に接続し（つまり、規範軌跡Ｃｂの始点が目標位置Ｐ’１になるように、規範軌跡Ｃｂを並進する）、その並進後の規範軌跡Ｃｂの法線上で特徴点を検出する（図１４の（Ａ））。
【０１２５】
ＰＬＣ１０は、（２）「規範軌跡Ｃｂ」と「目標位置Ｐ’１と検出された特徴点とを結ぶ線」とから、改めて、回転（傾き量）と並進（変位量）とを求める（図１４の（Ｂ））。なお、「ｋ＞１」である場合、ＰＬＣ１０は、「Ｃｂ−ｋ＋１の始点と、Ｃｂの目標位置（終点）と、を結ぶベクトル」と、「目標位置Ｐ’１と検出された特徴点とを結ぶ線」とから、回転（傾き量）と並進（変位量）とを求める。
【０１２６】
ＰＬＣ１０は、（３）求めた回転と並進とにより、規範軌跡Ｃｂを変換（つまり、補正）した補正後軌跡Ｃ’２を生成する（図１４の（Ｃ））。なお、「ｋ＞１」である場合、ＰＬＣ１０は、規範軌跡Ｃｂ−ｋ＋１から規範軌跡Ｃｂまでの各々の規範軌跡を変換して、ｋ組の補正後軌跡セット（ｋ個の補正後軌跡）を生成する。
【０１２７】
４．補正後指令Ｃ’１の動作終了時に、補正後指令Ｃ’３を生成
ＰＬＣ１０は、補正後軌跡Ｃ’１の動作終了時点に、上述の「３．」の処理を実行して、補正後軌跡Ｃ’３を生成する。なお、「補正後軌跡Ｃ’１の動作終了時点」とは、「補正後軌跡Ｃ’２の動作開始時点」であり、言い換えれば、「ディスペンサ４０が、補正後軌跡Ｃ’１の終点であるＰ’１に位置した時点」である。以降、ＰＬＣ１０は、「３．」の処理を繰り返し実行する。
【０１２８】
（制御装置の機能構成の概要について）
これまで、図２から図１４を用いて、ＰＬＣ１０の概要を説明してきた。次に、図１を参照して、ＰＬＣ１０の構成および処理の内容等を詳細に説明していく。図１を参照して詳細を説明する前に、ＰＬＣ１０についての理解を容易にするため、これまでに説明してきた概要を、以下のように整理しておく。
【０１２９】
ＰＬＣ１０（制御装置）は、ワークの表面に沿って移動させるディスペンサ４０（制御対象）についての規範指令Ｃ（目標軌跡）を、前記ワークの撮像結果（具体的には、特徴点情報）を用いて補正した補正後軌跡Ｃ’を生成する制御装置であって、制御周期ごとの規範軌跡Ｃｉ（制御周期ごとの目標軌跡）を取得する取得部１１０と、制御周期ごとの補正後軌跡Ｃ’ｉの長さを、制御周期ごとの規範軌跡Ｃｉの長さに略一致させて、制御周期ごとの規範軌跡Ｃｉから、制御周期ごとの補正後軌跡Ｃ’ｉを生成する補正部１２０（生成部）と、を備えている。
【０１３０】
前記の構成によれば、ＰＬＣ１０は、規範指令Ｃを、前記ワークの撮像結果を用いて補正した補正後軌跡Ｃ’を生成し、制御周期ごとの補正後軌跡Ｃ’ｉの長さは、制御周期ごとの規範軌跡Ｃｉの長さに略一致する。
【０１３１】
したがって、ＰＬＣ１０は、ワークの表面に沿って移動させるディスペンサ４０についての規範指令Ｃを、前記ワークの撮像結果を用いて補正するとともに、前記ディスペンサ４０の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
【０１３２】
ＰＬＣ１０は、ｉ、ｊの各々を１以上の整数として、ｉ番目の制御周期の補正後軌跡Ｃ’ｉ−１がｊ番目の制御周期の規範軌跡Ｃｊ−１から生成されている場合、ｉ＋１番目の制御周期の補正後軌跡Ｃ’ｉに対応する制御周期ごとの規範軌跡Ｃｘとして、ｊ＋１番目の制御周期の規範軌跡Ｃｊ、および、その前後の制御周期の規範指令（例えば、Ｃｊ−１、Ｃｊ＋１）の中から、１つ選択する基準判定部１４０（選択部）をさらに備え、補正部１２０は、基準判定部１４０により選択された制御周期の規範軌跡Ｃｘから、ｉ＋１番目の制御周期の補正後軌跡Ｃ’ｉを生成する。
【０１３３】
前記の構成によれば、ＰＬＣ１０は、ｊ＋１番目の制御周期の規範軌跡Ｃｊ、および、その前後の制御周期の規範指令（例えば、Ｃｊ−１、Ｃｊ＋１）の中から選択した１つの規範軌跡Ｃｘから、ｉ＋１番目の制御周期の補正後軌跡Ｃ’ｉを生成する。
【０１３４】
ここで、ワークの設計データ等に基づき設定された規範指令Ｃの総距離（長さ）は、実際のワークの形状に基づいて生成された補正後軌跡Ｃ’の総距離（長さ）とは一致しないことがある。規範指令Ｃと補正後軌跡Ｃ’とで長さが一致しないにもかかわらず、両者の軌跡を実現する制御周期の長さ（時間間隔）と実行回数とを維持した場合、ディスペンサ４０の制御周期ごとの移動量は、規範指令Ｃと補正後軌跡Ｃ’とで異なってしまう。
【０１３５】
そこで、ＰＬＣ１０は、制御周期の実行回数を調整することにより、ディスペンサ４０の制御周期ごとの移動量および制御周期の長さを維持しつつ、規範指令Ｃと補正後軌跡Ｃ’との長さの違いを補償する。
【０１３６】
具体的には、ＰＬＣ１０は、ｊ＋１番目の制御周期の規範軌跡Ｃｊ、および、その前後の制御周期の規範指令（例えば、Ｃｊ−１、Ｃｊ＋１）の中から選択された１つの規範軌跡Ｃｘから、ｉ＋１番目の制御周期の補正後軌跡Ｃ’ｉを生成することにより、制御周期の実行回数を調整する。例えば、ＰＬＣ１０は、ｊ番目、ｊ＋１番目、およびｊ＋２番目のいずれか１つの制御周期の規範軌跡Ｃｘから、ｉ＋１番目の制御周期の補正後軌跡Ｃ’ｉを生成することにより、制御周期の実行回数を調整する。
【０１３７】
したがって、ＰＬＣ１０は、規範指令Ｃをワークの撮像結果を用いて補正するとともに、制御周期の実行回数を調整して、ディスペンサ４０の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
【０１３８】
ＰＬＣ１０は、ｉを１以上の整数として、制御周期のｋ倍が撮像結果の生成から取得に要する時間よりも大きくなる整数ｋについて、遅くとも、ディスペンサ４０がｉ番目の制御周期の補正後軌跡Ｃ’ｉ−１の目標位置Ｐ’ｉ−１に達した時点で、ｉ＋２ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋２ｋ−１の目標位置Ｐ’ｉ＋２ｋ−１に対応する撮像結果の取得を、制御周期のｋ倍の周期で繰り返し開始する撮像結果取得部１６０（結果取得部）をさらに備え、補正部１２０は、撮像結果取得部１６０が取得した撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ＋ｋ〜Ｃ’ｉ＋２ｋ−１を生成する。
【０１３９】
なお、「撮像結果の生成から取得に要する時間」とは、具体的には、「画像処理装置５０への撮像等の指示」から、「特徴点情報の取得」までに要する時間を意味し、「カメラ６０による、ワークの『範囲指定で指定された範囲』の撮像」に要する時間を含む。前述の通り、ＰＬＣ１０は、画像処理装置５０に対し、範囲指定と共に、撮像・特徴点検出・計測を指示する。この指示を受け付けた画像処理装置５０は、カメラ６０に、ワークの「範囲指定で指定された範囲」を撮像させ、カメラ６０による「範囲指定で指定された範囲」の撮像画像に対し解析等を実行して特徴点情報を生成し、生成した特徴点情報をＰＬＣ１０に出力する。「撮像結果の生成から取得に要する時間」とは、ＰＬＣ１０の「画像処理装置５０への撮像等の指示」から「画像処理装置５０からの特徴点情報の取得」までに要する時間であり、「カメラ６０による、『範囲指定で指定された範囲』の撮像」に要する時間を含む。
【０１４０】
前記の構成によれば、ＰＬＣ１０は、遅くとも、ディスペンサ４０がｉ番目の制御周期の目標位置Ｐ’ｉ−１に達した時点で、ｉ＋２ｋ番目の制御周期の目標位置Ｐ’ｉ＋２ｋ−１に対応する撮像結果の取得を、制御周期のｋ倍の周期で繰り返し開始する。
【０１４１】
ここで、制御周期のｋ倍は、撮像結果の生成から取得に要する時間よりも大きい。そして、ＰＬＣ１０が「ｉ＋２ｋ番目の制御周期の目標位置Ｐ’ｉ＋２ｋ−１に対応する撮像結果（つまり、２ｋ制御周期先の制御周期に対応する撮像結果）」の取得を開始するのは、遅くとも、ディスペンサ４０がｉ番目の制御周期の目標位置Ｐ’ｉ−１に達した時点である。したがって、ＰＬＣ１０は、遅くともｉ＋ｋ番目の制御周期において、「２ｋ制御周期先の制御周期に対応する撮像結果」を、制御周期のｋ倍の周期で繰り返し取得することができる。
【０１４２】
また、ＰＬＣ１０は、撮像結果取得部１６０が取得した撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ＋ｋ〜Ｃ’ｉ＋２ｋ−１を生成する。つまり、ＰＬＣ１０は、遅くともｉ＋ｋ番目の制御周期において前期撮像結果を取得し、取得した前期撮像結果を用いて、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ＋ｋ〜Ｃ’ｉ＋２ｋ−１を生成する。
【０１４３】
したがって、ＰＬＣ１０は、前記ワークの全体についての撮像結果ではなく、前記ワークの所望の一部分の撮像結果を、制御周期のｋ倍の周期で繰り返し取得することによって、補正後軌跡Ｃ’を生成することができるとの効果を奏する。
【０１４４】
また、ＰＬＣ１０は、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ＋ｋ〜Ｃ’ｉ＋２ｋ−１を、遅くともｉ＋ｋ番目の制御周期において取得した前期撮像結果を用いて生成することができる。つまり、ＰＬＣ１０は、制御周期のｋ倍の周期で繰り返し、２ｋ制御周期先の制御周期に対応する撮像結果を取得して、ｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ＋ｋ〜Ｃ’ｉ＋２ｋ−１を、遅くともｉ＋ｋ番目の制御周期において生成する。
【０１４５】
したがって、ＰＬＣ１０は、制御周期ごとの補正後軌跡Ｃ’ｉの生成を中断することなく、制御周期のｋ倍の周期で繰り返し、前記ワークの所望の一部分の撮像結果を取得して、制御周期ごとの補正後軌跡Ｃ’ｉを生成することができるとの効果を奏する。
【０１４６】
ＰＬＣ１０において、補正部１２０は、予め、１番目から２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ（ｉ＝０、１、２、・・・、２ｋ−１）を生成しておき、撮像結果取得部１６０は、遅くとも、ディスペンサ４０がｋ番目の制御周期の補正後軌跡Ｃ’ｋ−１の目標位置Ｐ’ｋ−１に達した時点で、３ｋ番目の制御周期の補正後軌跡Ｃ’３ｋ−１の目標位置Ｐ’３ｋ−１に対応する撮像結果の取得を開始する。
【０１４７】
前記の構成によれば、ＰＬＣ１０は、予め、１番目から２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ（ｉ＝０、１、２、・・・、２ｋ−１）を生成しておく。また、ＰＬＣ１０は、遅くとも、ディスペンサ４０がｋ番目の制御周期の補正後軌跡Ｃ’ｋ−１の目標位置Ｐ’ｋ−１に達した時点で、３ｋ番目の制御周期の補正後軌跡Ｃ’３ｋ−１の目標位置Ｐ’３ｋ−１に対応する撮像結果の取得を開始する。
【０１４８】
つまり、ＰＬＣ１０は、１番目から２ｋ番目までの各々の制御周期においては、予め生成しておいた１番目から２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ（ｉ＝０、１、２、・・・、２ｋ−１）を用いた制御を実行する。
【０１４９】
また、ＰＬＣ１０は、遅くとも、ディスペンサ４０がｋ番目の制御周期の補正後軌跡Ｃ’ｋ−１の目標位置Ｐ’ｋ−１に達した時点で、３ｋ番目の制御周期の補正後軌跡Ｃ’３ｋ−１の目標位置Ｐ’３ｋ−１に対応する撮像結果の取得を開始する。そのため、ＰＬＣ１０が、「３ｋ番目の制御周期の補正後軌跡Ｃ’３ｋ−１の目標位置Ｐ’３ｋ−１に対応する撮像結果」を取得するのは、遅くとも２ｋ番目の制御周期である。そして、ＰＬＣ１０は、遅くとも２ｋ番目の制御周期において取得する前記撮像結果を用いて、２ｋ＋１番目から３ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ（ｉ＝２ｋ、２ｋ＋１、２ｋ＋２、・・・、３ｋ−１）を生成する。
【０１５０】
つまり、ＰＬＣ１０は、予め生成しておいた１番目から２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ（ｉ＝０、１、２、・・・、２ｋ−１）を用いた制御の実行中に、２ｋ＋１番目から３ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ（ｉ＝２ｋ、２ｋ＋１、２ｋ＋２、・・・、３ｋ−１）を生成する。
【０１５１】
したがって、ＰＬＣ１０は、制御周期ごとの補正後軌跡Ｃ’ｉの生成を中断することなく、制御周期のｋ倍の周期で繰り返し、前記ワークの所望の一部分の撮像結果を取得して、０番目以降の制御周期ごとの補正後軌跡Ｃ’ｉを生成することができるとの効果を奏する。
【０１５２】
ＰＬＣ１０において、基準判定部１４０は、（１）補正部１２０が制御周期のｋ倍の周期で繰り返し生成したｉ＋ｋ＋１番目からｉ＋２ｋ番目までの各々の制御周期の補正後軌跡Ｃ’ｉ＋ｋ〜Ｃ’ｉ＋２ｋ−１のうち、ｉ＋２ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋２ｋ−１を用いて、（２）ｉ＋３ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋３ｋ−１に対応する、制御周期ごとの規範軌跡Ｃｘを、ｊ＋３ｋ番目の制御周期の規範軌跡Ｃｊ＋３ｋ−１、および、その前後の制御周期の規範指令（例えば、Ｃｊ＋３ｋ−２、およびＣｊ＋３ｋ）の中から、１つ選択してもよい。
【０１５３】
前記の構成によれば、ＰＬＣ１０は、ｉ＋２ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋２ｋ−１を用いて、ｉ＋３ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋３ｋ−１に対応する、制御周期ごとの規範軌跡Ｃｘを、ｊ＋３ｋ番目の制御周期の規範軌跡Ｃｊ＋３ｋ−１、および、その前後の制御周期の規範指令（例えば、Ｃｊ＋３ｋ−２、およびＣｊ＋３ｋ）の中から、１つ選択する。
【０１５４】
前述の通り、規範指令Ｃの総距離（長さ）は、補正後軌跡Ｃ’の総距離（長さ）とは一致しないことがある。また、ＰＬＣ１０は、制御周期ごとの補正後軌跡Ｃ’ｉの長さが、制御周期ごとの規範軌跡Ｃｉの長さに略一致するように、制御周期ごとの規範軌跡Ｃｘから、制御周期ごとの補正後軌跡Ｃ’ｙを生成する。そのため、或る制御周期の補正後軌跡Ｃ’ｉの目標位置（終点）は、その或る制御周期の規範軌跡Ｃｉの目標位置には、必ずしも近似しない。
【０１５５】
例えば、ＰＬＣ１０が生成した或る制御周期の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉは、その或る制御周期の規範軌跡Ｃｉの目標位置Ｐｉよりも、その或る制御周期よりも１つ前の制御周期の規範軌跡Ｃｉ−１の目標位置Ｐｉ−１の近傍に位置することがある。この場合、制御周期ごとの補正後軌跡Ｃ’ｉと制御周期ごとの規範軌跡Ｃｉとで長さを略一致させつつ、両者の乖離を抑制するためには、ＰＬＣ１０は、その或る制御周期よりも１つ後の制御周期の補正後軌跡Ｃ’ｉ＋１を、以下のように生成するのが望ましい。すなわち、ＰＬＣ１０は、その或る制御周期の規範軌跡Ｃｉを用いて、その或る制御周期よりも１つ後の制御周期の補正後軌跡Ｃ’ｉ＋１を生成するのが望ましい。
【０１５６】
また例えば、ＰＬＣ１０が生成した或る制御周期の補正後軌跡Ｃ’ｉの目標位置Ｐ’ｉは、その或る制御周期の規範軌跡Ｃｉの目標位置Ｐｉよりも、その或る制御周期よりも１つ後の制御周期の規範軌跡Ｃｉ＋１の目標位置Ｐｉ＋１の近傍に位置することがある。この場合、制御周期ごとの補正後軌跡Ｃ’ｉと制御周期ごとの規範軌跡Ｃｉとで長さを略一致させつつ、両者の乖離を抑制するためには、ＰＬＣ１０は、その或る制御周期よりも１つ後の制御周期の補正後軌跡Ｃ’ｉ＋１を、以下のように生成するのが望ましい。すなわち、ＰＬＣ１０は、その或る制御周期よりも２つ後の制御周期の規範軌跡Ｃｉ＋２を用いて、その或る制御周期よりも１つ後の制御周期の補正後軌跡Ｃ’ｉ＋１を生成するのが望ましい。
【０１５７】
そのため、ＰＬＣ１０は、生成済の補正後軌跡Ｃ’ｉを用いて、ｋ周期先の制御周期の補正後軌跡Ｃ’ｉ＋ｋを生成するのに最適な制御周期の規範軌跡Ｃｘを決定する。具体的には、ＰＬＣ１０は、ｉ＋２ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋２ｋ−１を用いて、ｉ＋３ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋３ｋ−１に対応する規範軌跡Ｃｘを、ｊ＋３ｋ番目の制御周期の規範軌跡Ｃｊ＋３ｋ−１、および、その前後の制御周期の規範指令（例えば、Ｃｊ＋３ｋ−２、およびＣｊ＋３ｋ）の中から、１つ選択する。なお、補正後軌跡Ｃ’ｉ＋２ｋ−１は、ｊ＋２ｋ番目の制御周期の規範軌跡Ｃｊ＋２ｋ−１を用いて生成されたものとする。例えば、ＰＬＣ１０は、ｊ＋３ｋ−１番目、ｊ＋３ｋ番目、およびｊ＋３ｋ＋１番目の制御周期の規範軌跡Ｃｊ＋３ｋ−２、Ｃｊ＋３ｋ−１、およびＣｊ＋３ｋの中から、ｉ＋３ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋３ｋ−１に対応する規範軌跡Ｃｘを、ｉ＋２ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋２ｋ−１を用いて決定する。
【０１５８】
したがって、ＰＬＣ１０は、制御周期ごとの補正後軌跡Ｃ’ｉの、制御周期ごとの規範軌跡Ｃｉからの乖離を抑制しつつ、制御周期ごとの補正後軌跡Ｃ’ｉの長さを、制御周期ごとの規範軌跡Ｃｉの長さに略一致させることができるとの効果を奏する。
【０１５９】
ＰＬＣ１０において、補正部１２０は、撮像結果取得部１６０により取得された撮像結果を用いて、連続するｋ個の制御周期の各々に対応する規範軌跡Ｃｉを示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、連続するｋ個の制御周期の各々に対応する補正後軌跡Ｃ’ｉを示すベクトルを、制御周期のｋ倍の周期で繰り返し生成する。
【０１６０】
前記の構成によれば、ＰＬＣ１０は、撮像結果を用いて、制御周期ごとの規範軌跡Ｃｉを示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、制御周期ごとの補正後軌跡Ｃ’ｉを示すベクトルを生成する。
【０１６１】
したがって、ＰＬＣ１０は、撮像結果を用いて、制御周期ごとの補正後軌跡Ｃ’ｉの長さを、制御周期ごとの規範軌跡Ｃｉの長さに略一致させて、制御周期ごとの補正後軌跡Ｃ’ｉを生成することができるとの効果を奏する。
【０１６２】
（制御装置の機能構成の詳細）
図１は、本発明の実施形態１に係るＰＬＣ１０の要部構成を示すブロック図である。図１に示すように、ＰＬＣ１０は、機能ブロックとして、取得部１１０、補正部１２０、補正量算出部１３０、基準判定部１４０、範囲指定部１５０、撮像結果取得部１６０、および、出力部１８０を備えている。ＰＬＣ１０は、ディスペンサ４０を制御する制御処理の実行主体である。
【０１６３】
なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、ＰＬＣ１０は、当該省略された構成を備えてもよい。図１に例示した取得部１１０、補正部１２０、補正量算出部１３０、基準判定部１４０、範囲指定部１５０、撮像結果取得部１６０、および、出力部１８０は、例えば、プロセッサ（ＣＰＵ、central processing unit）等が、ＲＯＭ（read only memory）、ＮＶＲＡＭ（non-Volatile random access memory）等で実現された不揮発性（記憶部１７０）に記憶されているプログラムを、ＲＡＭ等により実現されるメインメモリに読み出して実行することで実現できる。以下、ＰＬＣ１０における各機能ブロックについて説明する。
【０１６４】
（記憶部以外の機能ブロック）
取得部１１０は、規範軌跡テーブル１７１を参照して、制御周期ごとの規範軌跡（規範指令）Ｃｉを取得し、取得した規範軌跡Ｃｉを補正部１２０に出力する。取得部１１０は、ＰＬＣ１０の制御動作開始前に、規範軌跡テーブル１７１を参照して、１番目から２ｋ番目までの各々の制御周期の規範軌跡Ｃｉ（ｉ＝０、１、２、・・・、２ｋ−１）を取得し、取得した規範軌跡Ｃｉを、補正部１２０に出力する。取得部１１０は、ＰＬＣ１０の制御動作の実施中に、基準判定部１４０から指示された制御周期の規範軌跡Ｃｉを、規範軌跡テーブル１７１を参照して取得し、取得した規範軌跡Ｃｉを、補正部１２０に出力する。取得部１１０は、ＰＬＣ１０の制御動作の実施中に、基準判定部１４０からｘ番目の規範軌跡Ｃｘ−１を指示されると、ｘ−ｋ＋１番目からｘ番目までの各々の制御周期の規範軌跡Ｃｉ（ｉ＝ｘ−ｋ、ｘ−ｋ＋１、・・・、ｘ−１）を、補正部１２０に出力してもよい。
【０１６５】
補正部１２０は、取得部１１０から取得した規範軌跡Ｃｉを、補正量算出部１３０から通知された補正量を用いて補正し、補正した規範軌跡Ｃｉを、補正後軌跡Ｃ’ｉとして補正後軌跡テーブル１７２に格納する。補正部１２０は、例えば、取得部１１０から取得したｋ個の規範軌跡Ｃｘ〜Ｃｘ＋ｋ−１の各々を、補正量算出部１３０から通知された補正量を用いて補正したｋ個の補正後軌跡Ｃ’ｙ〜Ｃ’ｙ＋ｋ−１を生成する（ｘ、ｙは各々、０以上の整数）。具体的には、補正部１２０は、規範軌跡Ｃｘ〜Ｃｘ＋ｋ−１の各々について、補正量算出部１３０から通知された変位量だけ平行移動させ、補正量算出部１３０から通知された回転量だけ回転させて、ｋ個の補正後軌跡Ｃ’ｙ〜Ｃ’ｙ＋ｋ−１を生成する。
【０１６６】
補正量算出部１３０は、撮像結果取得部１６０が取得した特徴点情報を用いて、補正量（具体的には、回転量および変位量）を算出し、算出した補正量を補正部１２０に通知する。補正量算出部１３０は、例えば図９、図１０、および図１４を用いて説明した方法により、補正量を算出する。
【０１６７】
補正量算出部１３０は、例えば、基準判定部１４０が「ｉ＋ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋ｋ−１」の基礎として決定した規範軌跡Ｃｘを用いて、規範軌跡ＣｘからＣ’ｉ＋ｋ−１を生成するための回転量および変位量を算出する。すなわち、補正量算出部１３０は、「Ｃｘ−ｋ＋１の始点と、Ｃｘの終点と、を結ぶ線」と、「Ｃ’ｉ−１の目標位置Ｐ’ｉ−１と、Ｃ’ｉ＋ｋ−１に対応する特徴点とを結ぶ線」とに対して、回転（傾き量）と並進（変位量）とを求める。
【０１６８】
補正量算出部１３０は、例えば、「補正後の指令の始点（開始位置）と、検出された特徴点とを通る線」に対して、偏差が最小となるような回転量を最小二乗法で求めてもよい。また、補正量算出部１３０は、対象物の輪郭に対する所定のルール（クリアランスなど）を満たす「補正後軌跡」群で、補正後軌跡と実対象の輪郭とで囲まれた面積が最小となる補正後軌跡を選択するための回転量および変位量を算出してもよい。
【０１６９】
基準判定部１４０は、補正後軌跡テーブル１７２を参照して、ｉ番目の制御周期の補正後軌跡Ｃ’ｉ−１を用いて、ｉ＋ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋ｋ−１の基礎となる規範軌跡Ｃｘを決定する。基準判定部１４０は、決定した規範軌跡Ｃｘを、取得部１１０および範囲指定部１５０（さらに、撮像結果取得部１６０）に指示する。
【０１７０】
基準判定部１４０は、例えば、図１１から図１３を用いて説明したように、生成済の補正後軌跡Ｃ’ｉ−１を用いて、補正後軌跡Ｃ’ｉ＋ｋ−１の基礎となる規範軌跡Ｃｘを決定する。すなわち、基準判定部１４０は、「補正後軌跡Ｃ’ｉ−１の目標位置Ｐ’ｉ−１」と「補正後軌跡Ｃ’ｉ−１の基礎となった規範軌跡Ｃｙの目標位置Ｐｙ」との位置関係および両者の間の距離によりＣｘを決定する。
【０１７１】
基準判定部１４０は、例えば、「補正後軌跡Ｃ’ｉ−１の目標位置Ｐ’１−１から最も距離が短い規範軌跡」を、規範軌跡Ｃｘとして、選択してもよい。
【０１７２】
また、基準判定部１４０は、決定した規範軌跡Ｃｘについて、図９の（Ａ）および図１４の（Ａ）を用いて説明した方法により、法線情報を生成する。すなわち、基準判定部１４０は、ｉ＋ｋ番目の制御周期の補正後軌跡Ｃ’ｉ＋ｋ−１の基礎となる規範軌跡Ｃｘに対して、規範軌跡Ｃｘ−ｋ＋１の始点が、ｉ番目の制御周期の補正後軌跡Ｃ’ｉ−１の目標位置Ｐ’ｉ−１になるように、規範軌跡Ｃｘ−ｋ＋１〜Ｃｘを並進し、その並進後の規範軌跡Ｃｘの法線を求める。例えば、図１４の（Ｂ）に示した例において、ｋ＝１として、基準判定部１４０は、３番目の制御周期の補正後軌跡Ｃ’２の基準となる規範軌跡Ｃｂの始点が、２番目の制御周期の補正後軌跡Ｃ’１の目標位置Ｐ’１になるように、規範軌跡Ｃｂを並進する。そして、基準判定部１４０は、その並進後の規範軌跡Ｃｂの法線を求める。そして、基準判定部１４０は、求めた法線を特定する法線情報を、取得部１１０および範囲指定部１５０（さらに、撮像結果取得部１６０）に指示する。
【０１７３】
範囲指定部１５０は、「基準判定部１４０の決定した規範軌跡Ｃｘの目標位置Ｐｘ」に対応する実対象の一部分を、カメラ６０の撮像範囲として指定し、指定した範囲を範囲指定として画像処理装置５０に出力する。画像処理装置５０は、範囲指定部１５０から受け付けた範囲指定に従って、範囲指定で指定されている範囲（実対象の一部分）を、カメラ６０に撮像させる。
【０１７４】
なお、前述の通り、範囲指定部１５０はさらに、「基準判定部１４０の決定した規範軌跡Ｃｘ」の法線情報を、画像処理装置５０に出力してもよい。より具体的には、範囲指定部１５０は、「Ｃｘ−ｋ＋１の始点が、補正後軌跡Ｃ’ｉ−１の目標位置Ｐ’ｉ−１になるように並進した規範軌跡Ｃｘ」の法線を示す情報を、画像処理装置５０に出力してもよい。そして、範囲指定部１５０は、画像処理装置５０に、「実対象の、範囲指定で指定されている範囲」から、規範軌跡Ｃｘの法線上で特徴点を計測させてもよい。
【０１７５】
また、範囲指定部１５０は、「基準判定部１４０の決定した規範軌跡Ｃｘ」の法線情報として、「実対象の輪郭に対して垂線を引いた場合に最も距離が短くなる線」を示す情報であってもよい。また、範囲指定部１５０は、画像処理装置５０に、規範軌跡Ｃｘの目標位置Ｐｘを中心とする円領域内で検出した特定パターン等から、実対象の特徴点を測定させてもよい。
【０１７６】
撮像結果取得部１６０は、画像処理装置５０から、カメラ６０の撮像画像の解析結果（検出結果）である特徴点情報（「実対象の、範囲指定で指定されている範囲」の形状を示す情報）を取得する。撮像結果取得部１６０は、画像処理装置５０から、特徴点情報として、カメラ６０が動作開始前（停止状態）に予め撮像しておいた撮像画像を取得してもよい。
【０１７７】
撮像結果取得部１６０は、取得した「実対象の、範囲指定で指定されている範囲」の形状を示す情報、または、「実対象の、範囲指定で指定されている範囲」の撮像画像を用いて、基準判定部１４０によって決定された規範軌跡Ｃｘの法線上で特徴点を計測する。そして、撮像結果取得部１６０は、計測した特徴点の位置座標等の情報（特徴点情報）を、補正量算出部１３０に出力する。
【０１７８】
なお、前述の通り、範囲指定部１５０が「基準判定部１４０の決定した規範軌跡Ｃｘの法線情報」を画像処理装置５０に出力し、画像処理装置５０に、「実対象の、範囲指定で指定されている範囲」から、規範軌跡Ｃｘの法線上で特徴点を計測させてもよい。その場合、撮像結果取得部１６０は、画像処理装置５０から、計測結果としての特徴点情報（画像処理装置５０が計測した特徴点の位置座標等の情報）を取得し、この特徴点情報を、補正量算出部１３０に出力する。
【０１７９】
出力部１８０は、補正後軌跡テーブル１７２を参照して、制御周期ごとの補正後軌跡Ｃ’ｉ（ｉは０以上の整数）を順次サーボドライバ２０に出力する。
【０１８０】
（記憶部の詳細）
記憶部１７０は、ＰＬＣ１０が使用する各種データを格納する記憶装置である。記憶部１７０は、ＰＬＣ１０が実行する（１）制御プログラム、（２）ＯＳプログラム、（３）ＰＬＣ１０が有する各種機能を実行するためのアプリケーションプログラム、および、（４）該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。記憶部１７０はさらに、規範軌跡テーブル１７１および補正後軌跡テーブル１７２を格納している。
【０１８１】
規範軌跡テーブル１７１には、規範軌跡Ｃ（規範指令）から生成された、制御周期ごとの規範軌跡Ｃｉが格納される。また、補正後軌跡テーブル１７２には、補正部１２０が生成した制御周期ごとの補正後軌跡Ｃ’ｉが格納される。
【０１８２】
（制御装置が実行する処理の概要）
図１５は、図１６から図２３を用いて説明するＰＬＣ１０の制御処理（つまり、補正後軌跡Ｃ’ｉの生成処理）の前提を説明するための図である。図１５の（Ａ）に示すように、以下の説明では、規範となる軌跡（規範軌跡Ｃ）として、制御周期６周期で一周するＸＹ平面上の円形輪郭を考える。制御周期単位の微小線分による軌跡として、指令（規範軌跡Ｃ）としては正六角形の軌跡となる。また、図１５の（Ｂ）に示すように、以下の説明では、サーボモータ３０（ＸＹ直行ロボット）に、制御対象であるディスペンサ４０等とともに、カメラ６０が取り付けられているものとする。カメラ６０は、塗布軌跡の方向に対して平行に向ける、いわゆる「法線制御」を行うためのθ軸上に取り付けられる。
【０１８３】
なお、「ディスペンサ４０が固定されていて、ワークがＸＹテーブルで動く（サーボモータ３０がディスペンサ４０の代わりにワークの位置制御を行なう）」構成に対しても、ＰＬＣ１０を適用することができる。また、「ディスペンサ４０がＹ軸一軸ロボット、ワークがＸ軸テーブルで動く」構成に対しても、ＰＬＣ１０を適用することができる。
【０１８４】
カメラ６０は、必ずしもディスペンサ４０に取り付けられる必要はなく、例えばディスペンサ４０等の機器の上方からディスペンサ４０を俯瞰できるように設置されていてもよく、また、法線制御されていなくてもよい。ただし、軌跡制御の補正をする上で、少なくとも補正を行うために必要なワーク形状の画像が取得できるように、カメラ６０の撮像について機器等による死角が発生しないことを担保できているものとする。死角の発生を防ぐため、複数のカメラ６０を使用してもよい。また、初期状態として、（Ｘ，Ｙ，θ）＝（０，０，０）、すなわちディスペンサ４０とカメラ６０とは、Ｘ軸、Ｙ軸の０位置にあり、カメラ６０はＸ軸に沿った方向を向いている場合を想定する。
【０１８５】
図１６は、図１７から図２３を用いて説明するＰＬＣ１０の制御処理について、規範となる軌跡（規範軌跡Ｃ）、実対象（実際のワーク）の形状、および、制御周期ごとの規範軌跡Ｃｉおよび目標位置Ｐｉ等を説明する図である。図１６の（Ａ）および（Ｂ）において、二点鎖線で示す楕円は、実対象の形状を示している。実際の塗布等においては、実際のワークの形状に対して「のりしろとなるクリアランスを取る」等の処理が想定されるが、ＰＬＣ１０についての理解を容易にするため、以下の説明では、実際のワークの輪郭が補正後の軌跡（補正後軌跡Ｃ’ｉ）となることを考える。また、図１６の（Ａ）および（Ｂ）において、一点鎖線で示している円は、規範となる軌跡（規範軌跡Ｃ）を示しており、補正後軌跡Ｃ’は、Ｘ軸方向に寸法誤差を持った楕円形状である場合を想定している。
【０１８６】
１．準備
１．１．規範となる軌跡データの生成
ＰＬＣ１０についての理解を容易にするため、以下の説明においては、ＰＬＣ１０の実行する制御について加減速はなしとし、規範軌跡Ｃは、６制御周期で円形輪郭上の６点を経由する図１６の（Ｂ）の六角形の軌跡とする。つまり、規範軌跡Ｃは、経由する６点（Ｐ０〜Ｐ５）をそれぞれ目標位置とする６つの指令系列（Ｃ０〜Ｃ５）を含む。
【０１８７】
１．２．（動作開始前）初回、次回の補正後指令の生成
ＰＬＣ１０の補正部１２０は、規範軌跡Ｃ０、Ｃ１の各々に対する補正後軌跡Ｃ’０、Ｃ’１を、予め（つまり、ＰＬＣ１０の動作開始前に、言い換えれば、ＰＬＣ１０による制御処理の実行開始前に）生成する。
【０１８８】
図１７は、ＰＬＣ１０が、規範軌跡Ｃ０、Ｃ１の各々から補正後軌跡Ｃ’０、Ｃ’１の各々を生成するのに必要な特徴点を検出し、回転（傾き量）と並進（変位量）とを算出する方法の一例を示している。
【０１８９】
図１７の（Ａ）に示すように、（１）画像処理装置５０は、カメラ６０が動作開始前（停止状態）に予め撮像しておいた撮像画像から、実対象の所望の一部分の形状（例えば、その所望の一部分の縁・辺）を検出し、規範軌跡Ｃ１の法線上で特徴点を計測する。そして、画像処理装置５０は、検出した特徴点の位置座標等の情報（特徴点情報）を、ＰＬＣ１０に出力する。ＰＬＣ１０の撮像結果取得部１６０は、画像処理装置５０から、この特徴点情報を取得し、取得した特徴点情報を補正量算出部１３０に出力する。
【０１９０】
なお、規範軌跡Ｃ１の法線上での特徴点の計測は、撮像結果取得部１６０が行ってもよい。すなわち、撮像結果取得部１６０は、画像処理装置５０から、カメラ６０が動作開始前（停止状態）に予め撮像しておいた撮像画像を取得してもよい。そして、撮像結果取得部１６０が、この撮像画像に対して、規範軌跡Ｃ１の法線上で特徴点を検出し、検出した特徴点の位置座標等の情報（特徴点情報）を、補正量算出部１３０に出力してもよい。
【０１９１】
（２）補正量算出部１３０は、撮像結果取得部１６０から取得した特徴点情報を用いて、「規範軌跡Ｃ０の始点と規範軌跡Ｃ１の終点とを結ぶ線」と、「開始位置（初期位置）と検出された特徴点とを結ぶ線」とに対して、回転（傾き量）と並進（変位量）とを求める。すなわち、補正量算出部１３０は、規範軌跡Ｃ０の始点を、開始位置（初期位置）へと移動させる量である「並進量（変位量）」を算出する。また、補正量算出部１３０は、「規範軌跡Ｃ０の始点と規範軌跡Ｃ１の終点とを結ぶ線」を、「開始位置（初期位置）と検出された特徴点とを結ぶ線」に対して平行にさせるのに必要な「回転量（傾き量）」を算出する（図１７の（Ｂ））。なお、ＰＬＣ１０の理解を容易にするため、図１７の（Ｂ）に示す例においては、開始位置（初期位置）について、規範軌跡Ｃ０の始点からの並進は無いものとしている。
【０１９２】
そして、補正量算出部１３０は、算出した回転（傾き量）と並進（変位量）とを、補正部１２０に通知する。
【０１９３】
図１８は、ＰＬＣ１０が、算出された回転（傾き量）と並進（変位量）とを用いて、規範軌跡Ｃ０、Ｃ１の各々から、補正後軌跡Ｃ’０、Ｃ’１の各々を生成する方法の一例を示している。図１８に示すように、（３）補正部１２０は、補正量算出部１３０が求めた回転と並進とにより、規範軌跡Ｃ０、Ｃ１の各々を変換した補正後軌跡Ｃ’０、Ｃ’１の各々を生成し、生成した補正後軌跡Ｃ’０、Ｃ’１の各々を、補正後軌跡テーブル１７２に格納する。
【０１９４】
２．補正後指令Ｃ’０から動作を開始
すなわち、出力部１８０は、補正後軌跡テーブル１７２に格納されている補正後軌跡Ｃ’０、Ｃ’１の各々を、サーボドライバ２０に出力して、サーボドライバ２０に、補正後軌跡Ｃ’０、Ｃ’１を実現する制御処理を実行させる。
【０１９５】
３．補正後指令Ｃ’０の動作終了時に、補正後指令Ｃ’２を生成
ＰＬＣ１０の補正部１２０は、補正後軌跡Ｃ’０の動作終了時点において、以下の「３．１．」から「３．３．」までの処理を実行して、補正後軌跡Ｃ’２の生成を行う。補正部１２０は、ｉ番目の制御周期の目標位置Ｐｉ−１にディスペンサ４０が到達した時点で、ｉ番目の制御周期からｍ周期先の制御周期の補正後軌跡Ｃ’ｉ＋ｍ−１を生成する。以下の説明では、ｉ＝１、ｍ＝２（ｋ＝１）とする場合である。なお、「補正後軌跡Ｃ’０の動作終了時点」とは、「補正後軌跡Ｃ’１の動作開始時点」であり、言い換えれば、「ディスペンサ４０が、補正後軌跡Ｃ’０の終点であるＰ’０に位置した時点」である。
【０１９６】
図１９は、ＰＬＣ１０が、補正後軌跡Ｃ’２の基礎となる規範軌跡Ｃｘを選択する方法、および、補正後軌跡Ｃ’２を生成するための特徴点の検出方法の一例を説明する図である。図２０は、ＰＬＣ１０が、補正後軌跡Ｃ’２を生成するための回転（傾き量）と並進（変位量）とを算出する方法、および、算出した回転と並進とにより補正後軌跡Ｃ’２を生成する方法の一例を説明する図である。
【０１９７】
３．１．基準（参照元）となる規範軌跡Ｃｘの選択判定
ＰＬＣ１０の基準判定部１４０は、補正後軌跡テーブル１７２に格納されている補正後軌跡Ｃ’１の到達位置Ｐ’１と、その元となった規範軌跡Ｃ１の到達位置（目標位置）Ｐ１との関係から、どの規範軌跡Ｃｘを元に、ｍ周期先の補正後軌跡Ｃ’２を生成するかを決定する。
【０１９８】
基準判定部１４０は、制御対象が現在位置に到達した制御周期からｍ周期先の制御周期の補正後軌跡Ｃ’ｉ＋ｍ−１の基礎となる規範軌跡Ｃｘを、以下のように決定する。すなわち、基準判定部１４０は、規範軌跡Ｃｘを、「前回生成した補正後軌跡Ｃ’ｉ−ｋ＋１の目標位置Ｐ’ｉ−ｋ＋１」と、「前回生成した補正後軌跡Ｃ’ｉ−ｋ＋１の基準となった規範軌跡Ｃｙの目標位置Ｐｙ」と、を用いて決定する。例えば、基準判定部１４０は、遅くとも「ｉ番目の制御周期の目標位置Ｐｉ−１にディスペンサ４０が到達した時点」で、ｉ番目の制御周期からｍ周期先の制御周期の補正後軌跡Ｃ’ｉ＋ｍ−１の基礎となる規範軌跡Ｃｘを、以下のように決定する。すなわち、基準判定部１４０は、補正後軌跡Ｃ’ｉ＋ｍ−１の基礎となる規範軌跡Ｃｘを、ｉ番目の制御周期からｋ周期先の制御周期の補正後軌跡Ｃ’ｉ＋ｋ−１を用いて、決定する。
【０１９９】
基準判定部１４０は、（１）「補正後軌跡Ｃ’１の目標位置Ｐ’１」から、「補正後軌跡Ｃ’１の基準となった規範軌跡Ｃ１の目標位置Ｐ１」へのベクトルＬを求める（図１９の（Ａ））。
【０２００】
基準判定部１４０は、（２）「Ｌの向き」から、補正後軌跡による目標位置Ｐ’１が、本来の指令位置（目標位置）Ｐ１に対して、「達していない（遅れ）」か、あるいは「超えている（進み）」か、を判定する。基準判定部１４０は、（３）「Ｌの向き」による補正後軌跡の遅れ／進み判定に加えて、「Ｌの長さ」から次に参照する規範軌跡を決定する。
【０２０１】
基準判定部１４０は、「ベクトルＬの長さが、規範軌跡Ｃ１の長さの半分以下」である場合、補正後軌跡Ｃ’２の元指令（基礎となる指令）として、規範軌跡Ｃ２を選択する。基準判定部１４０は、「ベクトルＬの長さが、規範軌跡Ｃ１の長さの半分よりも長い」かつ「目標位置Ｐ’１が、目標位置Ｐ１に達していない（遅れている）」場合、補正後軌跡Ｃ’２の元指令として、規範軌跡Ｃ１を選択する。基準判定部１４０は、「ベクトルＬの長さが、規範軌跡Ｃ１の長さの半分よりも長い」かつ「目標位置Ｐ’１が、目標位置Ｐ１を超えている（進んでいる）」場合、補正後軌跡Ｃ’２の元指令として、規範軌跡Ｃ１の二つ次の規範軌跡Ｃ３を選択する。
【０２０２】
図１９の（Ａ）に示す例では、Ｌは本来のＰ１に対して遅れており、Ｌの長さが「規範軌跡Ｃ１の長さの半分以下」となるため、基準判定部１４０は、補正後軌跡Ｃ’２の元指令として、規範軌跡Ｃ２を選択する。
【０２０３】
３．２．撮像トリガ
前述の通り、範囲指定部１５０は、画像計測手段（画像処理装置５０）に対して、範囲指定と共に、補正後軌跡Ｃ’２を生成するための特徴点の撮像処理および検出処理のトリガを与える。そして、ＰＬＣ１０の撮像結果取得部１６０は、特徴点情報として、例えば、実対象の「範囲指定で指定されている範囲」の形状を示す情報（例えば、その範囲の縁・辺を構成する曲線等を示す情報など）を取得する。
【０２０４】
また、範囲指定部１５０は、「３．１．」において決定した基準となる規範軌跡に関する法線情報を、画像処理装置５０に与えてもよい。その後、範囲指定部１５０は、画像処理装置５０に、範囲指定と共に、撮像、検出、および計測のトリガを与える。
そして、ＰＬＣ１０の撮像結果取得部１６０は、特徴点情報として、例えば、実対象の「範囲指定で指定されている範囲」の形状を示す情報と法線情報とを用いて計測された、法線上の特徴点の計測結果を取得してもよい。例えば、撮像結果取得部１６０は、実対象の「範囲指定で指定されている範囲」の縁・辺を構成する曲線と法線情報に示された法線との交点の座標等を、特徴点情報として取得してもよい。
【０２０５】
３．３．補正後指令Ｃ’２の生成
補正部１２０は、「１．２．」と同様の手法により、元となる規範軌跡Ｃ２から補正後軌跡Ｃ’２を生成する。すなわち、（１）補正量算出部１３０は、補正後軌跡Ｃ’２の生成元となる規範軌跡Ｃ２を目標位置Ｐ’１に接続し（つまり、規範軌跡Ｃ２の始点を目標位置Ｐ’１になるように並進する）、その並進後の規範軌跡Ｃ２の法線上で特徴点を検出する（図１９の（Ｂ））。
【０２０６】
（２）補正量算出部１３０は、「規範軌跡Ｃ２」と「目標位置Ｐ’１と検出された特徴点とを結ぶ線」とに対して、改めて回転（傾き量）と並進（変位量）とを求める（図２０の（Ａ））。補正量算出部１３０は、求めた回転（傾き量）と並進（変位量）とを、補正部１２０に通知する。そして、（３）補正部１２０は、補正量算出部１３０が求めた回転と並進により、規範軌跡Ｃ２を変換した補正後軌跡Ｃ’２を生成する（図２０の（Ｂ））。
【０２０７】
４．補正後指令Ｃ’１の動作終了時に、補正後指令Ｃ’３を生成
補正部１２０は、補正後指令Ｃ’１の動作終了時点（つまり、補正後指令Ｃ’２の動作開始時点であって、ディスペンサ４０がＰ’１に位置した時点）に、補正後指令Ｃ’３の生成を行う。
【０２０８】
図２１は、ＰＬＣ１０が、補正後軌跡Ｃ’３およびＣ’４を生成する方法の一例を説明する図である。また、図２２は、ＰＬＣ１０が、補正後軌跡Ｃ’５およびＣ’６を生成する方法の一例を説明する図である。図２１および図２２に示すように、ＰＬＣ１０は、以降、「３．」の処理を繰り返し、規範軌跡Ｃ３、Ｃ４、Ｃ５の各々を元に、補正後軌跡Ｃ’３、Ｃ’４、Ｃ’５を生成する。
【０２０９】
ここで、補正後軌跡Ｃ’５の生成時点で、Ｐ５と目標位置Ｐ’５との間の距離が「規範軌跡Ｃ５の長さの半分」を超える長さとなるため、基準判定部１４０は、次の補正後軌跡Ｃ’６の基礎となる規範軌跡として、規範軌跡Ｃ５を選択する。補正部１２０は、基準判定部１４０が選択した規範軌跡Ｃ５を元に、補正後軌跡Ｃ’６を生成する。
【０２１０】
すなわち、補正量算出部１３０は、「３．３．（１）」において示した手順で、規範軌跡Ｃ５を目標位置Ｐ’５に接続したベクトルの法線上で特徴点を検出する。また、補正量算出部１３０は、「３．３．（１）」において示した手順で、回転（傾き量）と並進（変位量）とを求める（図２２の（Ｂ））。そして、補正部１２０は、補正量算出部１３０が求めた回転と並進により、規範軌跡Ｃ５を変換した補正後軌跡Ｃ’６を生成する。
【０２１１】
図２３は、規範軌跡Ｃ０〜Ｃ５と、ＰＬＣ１０が生成した補正後軌跡Ｃ’０〜Ｃ’６と、を対比して示す図である。図２３に示すように、最終的に、ＰＬＣ１０は、目標位置Ｐ０〜Ｐ５の５点を通る規範軌跡Ｃ０〜Ｃ５の軌跡指令に対して、実際のワークとの差を検出することで、目標位置Ｐ’０〜Ｐ’６の６点を通る補正後軌跡Ｃ’０〜Ｃ’６が生成する。
【０２１２】
以上までに説明したように、ＰＬＣ１０が実行する制御方法は、ワークの表面に沿って移動させるディスペンサ４０（制御対象）についての規範指令Ｃ（目標軌跡）を、前記ワークの撮像結果（具体的には、特徴点情報）を用いて補正した補正後軌跡Ｃ’を生成する制御装置の制御方法であって、制御周期ごとの規範軌跡Ｃｉ（制御周期ごとの目標軌跡）を取得する取得ステップ（Ｓ４０２等）と、制御周期ごとの補正後軌跡Ｃ’ｉの長さを、制御周期ごとの規範軌跡Ｃｉの長さに略一致させて、制御周期ごとの規範軌跡Ｃｉから、制御周期ごとの補正後軌跡Ｃ’ｉを生成する補正ステップ（Ｓ１０９等）と、を含んでいる。
【０２１３】
前記の方法によれば、前記制御方法は、規範指令Ｃを、前記ワークの撮像結果を用いて補正した補正後軌跡Ｃ’を生成し、制御周期ごとの補正後軌跡Ｃ’ｉの長さは、制御周期ごとの規範軌跡Ｃｉの長さに略一致する。
【０２１４】
したがって、前記制御方法は、ワークの表面に沿って移動させるディスペンサ４０についての規範指令Ｃを、前記ワークの撮像結果を用いて補正するとともに、ディスペンサ４０の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
【０２１５】
§４．変形例
（制御装置について）
これまでに説明してきた実施形態においては、本発明に係る制御装置（コントローラ）として、ＰＬＣ１０等のシーケンス制御装置であるＩＥＣ（International Electrotechnical Commission）コントローラについて説明を行なってきた。しかしながら、本発明に係る制御装置は、ＩＥＣコントローラに限られることなく、各種の制御装置へ適用可能である。例えば、本発明に係る制御装置は、数値制御装置であるＮＣ（Numerical Control）コントローラであってもよい。
【０２１６】
（規範指令について）
ＰＬＣ１０は、全ての制御周期ごとの規範指令Ｃｉ（つまり、規範軌跡Ｃ）を、規範軌跡テーブル１７１に予め格納しておく必要はない。例えば、ＰＬＣ１０は、規範軌跡テーブル１７１を一定サイズのバッファとして、外部の記憶装置などから、制御周期ごとの規範指令Ｃｉを都度読出しながら、読み出した制御周期ごとの規範指令Ｃｉを補正して、制御周期ごとの補正後指令Ｃ’ｉを生成してもよい。
【０２１７】
〔ソフトウェアによる実現例〕
ＰＬＣ１０の制御ブロック（特に、取得部１１０、補正部１２０、補正量算出部１３０、基準判定部１４０、範囲指定部１５０、撮像結果取得部１６０、および、出力部１８０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【０２１８】
後者の場合、ＰＬＣ１０は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０２１９】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【０２２０】
１０  ＰＬＣ（制御装置）
４０  ディスペンサ（制御対象）
１１０  取得部
１２０  補正部（生成部）
１４０  基準判定部（選択部）
１６０  撮像結果取得部（結果取得部）
Ｃ  規範軌跡（目標軌跡）
Ｃｉ  制御周期ごとの規範軌跡（制御周期ごとの目標軌跡）
Ｃ’  補正後軌跡
Ｃ’ｉ  制御周期ごとの補正後軌跡
【図１】
2019067098.tif 000003
【図２】
2019067098.tif 000004
【図３】
2019067098.tif 000005
【図４】
2019067098.tif 000006
【図５】
2019067098.tif 000007
【図６】
2019067098.tif 000008
【図７】
2019067098.tif 000009
【図８】
2019067098.tif 000010
【図９】
2019067098.tif 000011
【図１０】
2019067098.tif 000012
【図１１】
2019067098.tif 000013
【図１２】
2019067098.tif 000014
【図１３】
2019067098.tif 000015
【図１４】
2019067098.tif 000016
【図１５】
2019067098.tif 000017
【図１６】
2019067098.tif 000018
【図１７】
2019067098.tif 000019
【図１８】
2019067098.tif 000020
【図１９】
2019067098.tif 000021
【図２０】
2019067098.tif 000022
【図２１】
2019067098.tif 000023
【図２２】
2019067098.tif 000024
【図２３】
2019067098.tif 000025