JP2019067098A - 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 - Google Patents

制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 Download PDF

Info

Publication number
JP2019067098A
JP2019067098A JP2017191340A JP2017191340A JP2019067098A JP 2019067098 A JP2019067098 A JP 2019067098A JP 2017191340 A JP2017191340 A JP 2017191340A JP 2017191340 A JP2017191340 A JP 2017191340A JP 2019067098 A JP2019067098 A JP 2019067098A
Authority
JP
Japan
Prior art keywords
trajectory
control
control cycle
correction
corrected
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017191340A
Other languages
English (en)
Other versions
JP7031204B2 (ja
Inventor
功征 川又
Isayuki Kawamata
功征 川又
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2017191340A priority Critical patent/JP7031204B2/ja
Priority to EP18176519.9A priority patent/EP3462258B1/en
Priority to CN201810601818.7A priority patent/CN109581964B/zh
Priority to US16/005,685 priority patent/US10845776B2/en
Publication of JP2019067098A publication Critical patent/JP2019067098A/ja
Application granted granted Critical
Publication of JP7031204B2 publication Critical patent/JP7031204B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • G01N21/88Investigating the presence of flaws or contamination
    • G01N21/8851Scan or image signal processing specially adapted therefor, e.g. for scan signal adjustment, for detecting different kinds of defects, for compensating for structures, markings, edges
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/401Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for measuring, e.g. calibration and initialisation, measuring workpiece for machining purposes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31399Station corrects nc program, sends back modified program to program generator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36414Compare image detected path with stored reference, difference corrects position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45147Machining blade, airfoil

Abstract

【課題】目標軌跡を、ワークの撮像結果を用いて補正するとともに、制御対象の制御周期ごとの移動量を一定に維持する。【解決手段】ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置であって、PLC(10)は、制御周期ごとの補正後軌跡C’iの長さが、制御周期ごとの規範軌跡Ciの長さに略一致するように、制御周期ごとの補正後軌跡C’iを生成する。【選択図】図1

Description

本発明は、ワークの表面に沿って移動させる制御対象の、制御周期ごとの目標位置を示す目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置等に関する。
従来、制御対象をワークの表面に沿って移動させる際の基準となる目標軌跡を、前記ワークの撮像結果を用いて補正する技術が知られている。例えば、下掲の特許文献1には、ウインドウの撮像画像に基づきウインドウの外形パターンを検出し、外形パターンと基準パターンとの比較を用いて、基準パターンに対する移動軌跡である目標軌跡を補正する技術が開示されている。
特開2002−355605号公報(2002年12月10日公開)
しかしながら、上述のような従来技術は、目標軌跡の長さと、撮像結果を用いて目標軌跡を補正した補正後軌跡の長さと、の間の差が考慮されていないという問題がある。
すなわち、ワークの設計データ等から算出されるワークの理想的な形状と、実際のワークの形状との差を補うために目標軌跡をワークの撮像画像を用いて補正する場合、目標軌跡の長さと、補正後軌跡の長さと、は完全には一致しないことがある。
しかしながら、目標軌跡の長さと、補正後軌跡の長さと、が一致しないにもかかわらず、両者の軌跡を実現する制御周期の長さ(時間間隔)と実行回数とを維持した場合、前記制御対象の制御周期ごとの移動量は、目標軌跡と、補正後軌跡と、で異なる。そして、例えばシーラー塗布装置の制御等に用いる軌跡について、ワーク表面の場所ごとのシーラーの塗布量は、制御周期ごとのディスペンサの移動量に比例するため、補正後軌跡の制御周期ごとの長さが変動すると、場所ごとにシーラーの塗布量が変動してしまう。
本発明の一態様は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することのできる制御装置等を実現することを目的とする。
上記の課題を解決するために、本発明の一態様に係る制御装置は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置であって、制御周期ごとの前記目標軌跡を取得する取得部と、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成部と、を備えることを特徴としている。
前記の構成によれば、前記制御装置は、前記目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成し、前記制御周期ごとの前記補正後軌跡の長さは、前記制御周期ごとの前記目標軌跡の長さに略一致する。
したがって、前記制御装置は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
本発明に係る制御装置は、i、jの各々を1以上の整数として、i番目の前期制御周期の前期補正後軌跡がj番目の前期制御周期の前期目標軌跡から生成されている場合、i+1番目の前記制御周期の前記補正後軌跡に対応する前記目標軌跡として、j+1番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、1つ選択する選択部をさらに備え、前記生成部は、前記選択部により選択された前記制御周期の前記目標軌跡から、i+1番目の前記制御周期の前記補正後軌跡を生成してもよい。
前記の構成によれば、前記制御装置は、j+1番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から選択された1つの前記目標軌跡から、i+1番目の前記制御周期の前記補正後軌跡を生成する。
ここで、ワークの設計データ等に基づき設定された前記目標軌跡の総距離(長さ)は、実際のワークの形状に基づいて生成された前記補正後軌跡の総距離(長さ)とは一致しないことがある。前記目標軌跡と前記補正後軌跡とで長さが一致しないにもかかわらず、両者の軌跡を実現する前記制御周期の長さ(時間間隔)と実行回数とを維持した場合、前記制御対象の前記制御周期ごとの移動量は、前記目標軌跡と前記補正後軌跡とで異なってしまう。
そこで、前記制御装置は、前記制御周期の実行回数を調整することにより、前記制御対象の前記制御周期ごとの移動量および前記制御周期の長さを維持しつつ、前記目標軌跡と前記補正後軌跡との長さの違いを補償する。
具体的には、前記制御装置は、j+1番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から選択された1つの前記目標軌跡から、i+1番目の前記制御周期の前記補正後軌跡を生成することにより、前記制御周期の実行回数を調整する。例えば、前記制御装置は、j番目、j+1番目、およびj+2番目のいずれか1つの前記制御周期の前記目標軌跡から、i+1番目の前記制御周期の前記補正後軌跡を生成することにより、前記制御周期の実行回数を調整する。
したがって、前記制御装置は、前記目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御周期の実行回数を調整して、前記制御対象の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
本発明に係る制御装置は、iを1以上の整数として、前記制御周期のk倍が前記撮像結果の生成から取得に要する時間よりも大きくなる整数kについて、遅くとも、前記制御対象がi番目の制御周期の前記補正後軌跡の目標位置に達した時点で、i+2k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を、前記制御周期のk倍の周期で繰り返し開始する結果取得部をさらに備え、前記生成部は、前記結果取得部が取得した前期撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡を生成してもよい。
前記の構成によれば、前記制御装置は、遅くとも、前記制御対象がi番目の制御周期の前記目標位置に達した時点で、i+2k番目の制御周期の前記目標位置に対応する前期撮像結果の取得を、前記制御周期のk倍の周期で繰り返し開始する。
ここで、前記制御周期のk倍は、前記撮像結果の生成から取得に要する時間よりも大きい。そして、前記制御装置が「i+2k番目の制御周期の前記目標位置に対応する前期撮像結果(つまり、2k制御周期先の制御周期に対応する前期撮像結果)」の取得を開始するのは、遅くとも、前記制御対象がi番目の制御周期の前記目標位置に達した時点である。したがって、前記制御装置は、遅くともi+k番目の制御周期において、「2k制御周期先の制御周期に対応する前期撮像結果」を、前記制御周期のk倍の周期で繰り返し取得することができる。
また、前記制御装置は、前記結果取得部が取得した前期撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡を生成する。つまり、前記制御装置は、遅くともi+k番目の制御周期において前期撮像結果を取得し、取得した前期撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡を生成する。
したがって、前記制御装置は、前記ワークの全体についての前記撮像結果ではなく、前記ワークの所望の一部分の前記撮像結果を、前記制御周期のk倍の周期で繰り返し取得することによって、前記補正後軌跡を生成することができるとの効果を奏する。
また、前記制御装置は、i+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡を、遅くともi+k番目の制御周期において取得した前期撮像結果を用いて生成することができる。つまり、前記制御装置は、前記制御周期のk倍の周期で繰り返し、2k制御周期先の制御周期に対応する前期撮像結果を取得して、i+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡を、遅くともi+k番目の制御周期において生成する。
したがって、前記制御装置は、前記補正後軌跡の生成を中断することなく、前記制御周期のk倍の周期で繰り返し、前記ワークの所望の一部分の前記撮像結果を取得して、前記補正後軌跡を生成することができるとの効果を奏する。
本発明に係る制御装置において、前記生成部は、予め、1番目から2k番目までの各々の前記制御周期の前記補正後軌跡を生成しておき、前記結果取得部は、遅くとも、前記制御対象がk番目の制御周期の前記補正後軌跡の目標位置に達した時点で、3k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始してもよい。
前記の構成によれば、前記制御装置は、予め、1番目から2k番目までの各々の前記制御周期の前記補正後軌跡を生成しておく。また、前記制御装置は、遅くとも、前記制御対象がk番目の制御周期の前記補正後軌跡の目標位置に達した時点で、3k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始する。
つまり、前記制御装置は、1番目から2k番目までの各々の前記制御周期においては、予め生成しておいた1番目から2k番目までの各々の前記制御周期の前記補正後軌跡を用いた制御を実行する。
また、前記制御装置は、遅くとも、前記制御対象がk番目の制御周期の前記補正後軌跡の目標位置に達した時点で、3k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始する。そのため、前記制御装置が、「3k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果」を取得するのは、遅くとも2k番目の制御周期である。そして、前記制御装置は、遅くとも2k番目の制御周期において取得する前記撮像結果を用いて、2k+1番目から3k番目までの各々の前記制御周期の前記補正後軌跡を生成する。つまり、前記制御装置は、予め生成しておいた1番目から2k番目までの各々の前記制御周期の前記補正後軌跡を用いた制御の実行中に、2k+1番目から3k番目までの各々の前記制御周期の前記補正後軌跡を生成する。
したがって、前記制御装置は、前記補正後軌跡の生成を中断することなく、前記制御周期のk倍の周期で繰り返し、前記ワークの所望の一部分の前記撮像結果を取得して、1番目以降の制御周期ごとの前記補正後軌跡を生成することができるとの効果を奏する。
本発明に係る制御装置において、前記選択部は、(1)前記生成部が前記制御周期のk倍の周期で繰り返し生成したi+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡のうち、i+2k番目の制御周期の前記補正後軌跡を用いて、(2)i+3k番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、j+3k番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、1つ選択してもよい。
前記の構成によれば、前記制御装置は、i+2k番目の制御周期の前記補正後軌跡を用いて、i+3k番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、j+3k番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、1つ選択する。
前述の通り、前記目標軌跡の総距離(長さ)は、前記補正後軌跡の総距離(長さ)とは一致しないことがある。また、前記制御装置は、前記制御周期ごとの前記補正後軌跡の長さが、前記制御周期ごとの前記目標軌跡の長さに略一致するように、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する。そのため、或る制御周期の前記補正後軌跡の目標位置(終点)は、その或る制御周期の前記目標軌跡の目標位置には、必ずしも近似しない。
例えば、前記制御装置が生成した或る制御周期の前記補正後軌跡の目標位置は、その或る制御周期の前記目標軌跡の目標位置よりも、その或る制御周期よりも1つ前の制御周期の前記目標軌跡の目標位置の近傍に位置することがある。この場合、前記補正後軌跡と前記目標軌跡とで前記制御周期ごとの長さを略一致させつつ、両者の乖離を抑制するためには、前記制御装置は、その或る制御周期よりも1つ後の制御周期の前記補正後軌跡を、以下のように生成するのが望ましい。すなわち、前記制御装置は、その或る制御周期の前記目標軌跡を用いて、その或る制御周期よりも1つ後の制御周期の前記補正後軌跡を生成するのが望ましい。
また例えば、前記制御装置が生成した或る制御周期の前記補正後軌跡の目標位置は、その或る制御周期の前記目標軌跡の目標位置よりも、その或る制御周期よりも1つ後の制御周期の前記目標軌跡の目標位置の近傍に位置することがある。この場合、前記補正後軌跡と前記目標軌跡とで前記制御周期ごとの長さを略一致させつつ、両者の乖離を抑制するためには、前記制御装置は、その或る制御周期よりも1つ後の制御周期の前記補正後軌跡を、以下のように生成するのが望ましい。すなわち、前記制御装置は、その或る制御周期よりも2つ後の制御周期の前記目標軌跡を用いて、その或る制御周期よりも1つ後の制御周期の前記補正後軌跡を生成するのが望ましい。
そのため、前記制御装置は、生成済の前記補正後軌跡を用いて、k周期先の制御周期の前記補正後軌跡を生成するのに最適な制御周期の前記目標軌跡を決定する。具体的には、前記制御装置は、i+2k番目の制御周期の前記補正後軌跡を用いて、i+3k番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、j+3k番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、1つ選択する。例えば、前記制御装置は、j+3k−1番目、j+3k番目、およびj+3k+1番目の前記制御周期の前記目標軌跡の中から、i+3k番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、i+2k番目の制御周期の前記補正後軌跡を用いて決定する。
したがって、前記制御装置は、前記補正後軌跡の、前記目標軌跡からの乖離を抑制しつつ、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させることができるとの効果を奏する。
本発明に係る制御装置において、前記生成部は、前記結果取得部により取得された前記撮像結果を用いて、連続するk個の前記制御周期の各々に対応する前記目標軌跡を示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、連続するk個の前記制御周期の各々に対応する前記補正後軌跡を示すベクトルを、前記制御周期のk倍の周期で繰り返し生成してもよい。
前記の構成によれば、前記制御装置は、前記撮像結果を用いて、前記制御周期ごとの前記目標軌跡を示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、前記制御周期ごとの前記補正後軌跡を示すベクトルを生成する。
したがって、前記制御装置は、前記撮像結果を用いて、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記補正後軌跡を生成することができるとの効果を奏する。
上記の課題を解決するために、本発明の一態様に係る制御方法は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置の制御方法であって、制御周期ごとの前記目標軌跡を取得する取得ステップと、前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成ステップと、を含むことを特徴としている。
前記の方法によれば、前記制御方法は、前記目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成し、前記制御周期ごとの前記補正後軌跡の長さは、前記制御周期ごとの前記目標軌跡の長さに略一致する。
したがって、前記制御方法は、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
本発明の一態様によれば、ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正するとともに、前記制御対象の制御周期ごとの移動量を一定に維持することができるとの効果を奏する。
本発明の実施形態1に係るPLCの要部構成を示すブロック図である。 図1のPLCを含む制御システムの全体概要を示す図である。 図1のPLCによる補正後軌跡の生成方法の概要を示す図である。 図1のPLCによる補正後軌跡の生成方法の一例について詳細を示す図である。 図1のPLCが実行する処理の概要を示すフロー図である。 図5におけるS102およびS109の「補正後指令データの生成」処理の詳細を示すフロー図である。 図6の(A)および(B)における「m周期先の目標位置情報の取得」処理(S201およびS301)の詳細を示すフロー図である。 図1のPLCが実現しようとする目標軌跡の一例等を示す図である。 図1のPLCが補正後指令を生成する方法の一例を示す図である。 図1のPLCが補正後指令を生成する方法について、図9に例示した方法以外の方法を示す図である。 図1のPLCが、補正後指令の基礎となる規範指令を選択する方法の一例を説明する図である。 図1のPLCが、補正後指令の基礎となる規範指令を選択する方法の一例について、図11の続きを説明する図である。 図1のPLCが、補正後指令の基礎となる規範指令を選択する方法の一例について、図12の続きを説明する図である。 図1のPLCが、基準となる規範指令を決定した後に、決定した規範指令を補正して補正後指令を生成する方法の一例を示す図である。 図16から図23を用いて説明する制御処理の前提を説明する図である。 図17から図23を用いて説明する制御処理について、規範軌跡等を説明する図である。 図1のPLCが、補正後指令を生成するのに必要な特徴点等を検出、算出する方法の一例を示す図である。 図1のPLCが、算出された回転と並進とを用いて補正後指令を生成する方法の一例を示す図である。 図1のPLCが、基礎となる規範指令を選択する方法、および、補正後指令を生成するための特徴点を検出する方法の一例を示す図である。 図1のPLCが、回転と並進とを算出する方法、および、算出した回転と並進とにより補正後指令C’2を生成する方法の一例を示す図である。 図1のPLCが、補正後指令C’3およびC’4を生成する方法の一例を説明する図である。 図1のPLCが、補正後指令C’5およびC’6を生成する方法の一例を説明する図である。 規範指令C0〜C5と、図1のPLCが生成した補正後指令C’0〜C’6と、を対比して示す図である。
〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図1から図23に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、機械および設備等の制御対象を制御するPLC(プログラマブル・ロジック・コントローラ、Programmable Logic Controller)を制御装置(コントローラ)の典型例として説明を行う。
§1.適用例
本発明の一態様に係るPLC10(制御装置)についての理解を容易にするため、先ず、本発明が適用される場面の一例について、具体的には、PLC10を含む制御システム1の概要について、図2を用いて説明する。
図2は、制御システム1の全体概要を示す図である。制御システム1は、PLC10と、サーボドライバ20と、サーボモータ30と、ディスペンサ40と、画像処理装置50と、カメラ60と、を含んでいる。
PLC10は、例えば、ユーザ等の外部から、塗布作業、研削作業、研磨作業などのための規範指令データ(目標軌跡、指令軌跡)を受け付ける。制御システム1において、PLC10は、ワークの表面に沿って移動させるディスペンサ40についての規範指令データを受け付ける。そして、PLC10は、受け付けた規範指令データから制御周期ごとに規範指令(指令位置)を生成し、言い換えれば、制御周期ごとの規範指令(制御周期ごとの目標軌跡)を生成する。
ここで、規範指令データは、ワークの設計データ等、ワークの理想的な形状に基づいて生成・設定されているため、PLC10は、実際のワーク(実対象)の形状に合わせて規範指令データを補正した補正後指令データ(補正後軌跡)を生成する。具体的には、PLC10は、制御周期ごとの規範指令を、カメラ60による前記ワークの撮像結果(または撮像画像の解析結果)を用いて補正した、制御周期ごとの補正後指令を生成する。
なお、制御周期ごとの規範指令および制御周期ごとの補正後指令は、共に、ディスペンサ40の制御周期ごとの目標位置を示す情報であるため、以下では各々を、「規範軌跡」および「補正後軌跡」とも称する。
PLC10は、生成した補正後指令を、制御周期ごとにサーボドライバ20に入力し、サーボドライバ20は、受け取った補正後指令に基づいてサーボモータ30を駆動して制御対象であるディスペンサ40を移動させる。
ここで、PLC10が生成する補正後軌跡は、実際のワークの形状に合わせて規範軌跡を補正したものであるため、補正後軌跡の距離は、規範軌跡の距離と異なり得る。そこで、PLC10は、制御対象の速度を一定に保つことができるよう、制御周期ごとの補正後目標位置(補正後軌跡)を調整する。PLC10は、例えば、制御周期の実行回数を調整し、規範軌跡の場合の制御周期の実行回数に比べて、補正後軌跡の制御周期の実行回数を増減させることで、制御対象の速度を一定に保つことができるよう、制御周期ごとの補正後目標位置(補正後軌跡)を調整する。
なお、「制御周期」とは、PLC10が制御動作を繰り返し実行する周期のことであり、具体的には、PLC10は、制御周期ごとに指令(補正後指令)をサーボドライバ20に出力し、言い換えれば、制御周期ごとの補正後指令をサーボドライバ20に出力する。
以下の説明において、「i」、「n」、「x」、「y」は、各々、特に断らない限り「1以上の整数」を意味し、「規範軌跡(軌跡指令)Ci−1」は、i番目の制御周期の軌跡指令を表わしている。同様に、「補正後軌跡(補正後指令)C’i−1」は、i番目の制御周期の補正後軌跡を表わしている。なお、単に「規範軌跡Ci」と記載し、「何番目の制御周期の規範軌跡であるか」を特定しない場合、「規範軌跡Ci」は「制御周期ごとの規範軌跡」であることを意味することがある。同様に、「補正後軌跡C’i」と記載し、「何番目の制御周期の補正後軌跡であるか」を特定しない場合、「補正後軌跡C’i」は「制御周期ごとの補正後軌跡」であることを意味することがある。また、制御周期ごとの規範軌跡Ciの目標位置(終点、到達点)を「Pi」と記載し、同様に、制御周期ごとの補正後軌跡C’iの目標位置(終点)を「P’i」と記載する。さらに、全ての制御周期の規範軌跡Ciをつなげた軌跡を「規範指令C」と記載し、同様に、全ての制御周期の補正後軌跡C’iをつなげた軌跡を「補正後軌跡C’」と記載する。
PLC10は、サーボドライバ20に、制御周期ごとの補正後軌跡C’iを順次出力し、サーボドライバ20は、PLC10から受け付けた制御周期ごとの補正後軌跡C’iに従って、連続的に制御を実行する。具体的には、PLC10は、1番目の制御周期の補正後軌跡C’0から順に、2番目の制御周期の補正後軌跡C’1、3番目の制御周期の補正後軌跡C’2、4番目の制御周期の補正後軌跡C’3、・・・、n番目の制御周期の補正後軌跡C’n−1を出力する。サーボドライバ20は、PLC10から受け付けた補正後軌跡C’0、C’1、C’2、C’3、・・・、C’n−1に従って、サーボモータ30に対して連続的に制御を実行する。サーボドライバ20が制御周期ごとの補正後軌跡C’iに従ってサーボモータ30の駆動を制御することにより、ディスペンサの制御周期ごとの位置変化の軌跡は、補正後軌跡C’iに略一致することとなる。
サーボドライバ20は、PLC10と接続されるとともに、PLC10からの制御周期ごとの補正後軌跡C’iに従ってサーボモータ30を駆動する。より具体的には、サーボドライバ20は、PLC10から一定周期(制御周期)で、補正後軌跡C’i(補正後指令、入力軌跡)を受ける。また、サーボドライバ20は、サーボモータ30の軸に接続されている位置センサ(ロータリーエンコーダ)、トルクセンサ等の検出器から、位置、速度(典型的には、今回位置と前回位置との差から算出される)、トルクといったサーボモータ30の動作に係る実測値を取得する。そして、サーボドライバ20は、PLC10からの補正後軌跡C’iを目標値に設定し、実測値をフィードバック値として、フィードバック制御を行う。すなわち、サーボドライバ20は、実測値が目標値に近づくようにサーボモータ30を駆動するための電流を調整する。なお、サーボドライバ20は、サーボモータアンプと称されることもある。
サーボモータ30は、サーボドライバ20による制御に従ってディスペンサ40を移動させ、ディスペンサ40は、例えば、シーラーの塗布用ヘッドである。
画像処理装置50は、PLC10からの範囲指定(カメラ60の撮像範囲を指定する情報)を受け付け、受け付けた範囲指定に対応する「実際のワーク(実対象)の一部分」をカメラ60に撮像させる。画像処理装置50は、カメラ60が撮像した「ワークの一部分」に係る撮像画像を、カメラ60から取得し、取得した撮像画像を解析して特徴点情報を生成する。特徴点情報について、詳細は図3等を用いて後述する。画像処理装置50は、生成した特徴点情報をPLC10に出力する。
§2.構成例
図3は、PLC10による補正後軌跡C’iの生成方法の概要を示す図である。図3において、一点鎖線で示している軌跡は、規範指令として与えられる指令軌跡(規範軌跡C)であり、「制御周期ごとの目標位置Pi(点列データ)」が示されている。規範軌跡Cは、ワークの設計データなどに基づいて予め与えられる軌跡であり、「既定の規範軌跡」である。
これに対し、実線で示している軌跡は、実対象(実際のワーク)によって要求される軌跡(要求軌跡)を示している。実際のワークの形状は、ワークの設計データが示す形状と完全には一致しないことがある。
そこで、PLC10は、実対象の撮像画像を用いて、規範軌跡Cと要求軌跡との差を低減させるように規範軌跡Cを補正した、補正後軌跡C’を生成する。図3において、二点鎖線で示している軌跡は、PLC10が実対象の形状に基づいて規範軌跡Cを補正した軌跡であり、つまり、PLC10が生成した軌跡補正後軌跡C’である。例えば、PLC10は、以下に示すように「m周期分の規範軌跡Ci」を補正して、「m周期分の補正後軌跡C’i」を生成する。すなわち、PLC10は、「動作中の現在位置からm周期先の規範軌跡Ciの目標位置Piに対応する、ワークの撮像画像上で検出される補正目標位置(実対象の要求位置、例えば特徴点)」に基づいて、規範軌跡Ciを補正して、補正後軌跡C’iを生成する。
なお、詳細は図4を用いて後述するが、「m」は、PLC10の制御周期Tc[ms]のm倍が、「画像の撮像」から「所望の位置(例えば、目標位置)の計測結果の取得」までに要する時間(画像処理周期Tp[ms])の2倍より大きくなる整数を示している。すなわち、「m」は、「Tc×m>2Tp」を満たす整数である。言い換えれば、「m」は、画像処理に要する時間Tp[ms]より大きくなるk周期、つまり、「Tc×k>Tp」を満たす整数「k」を用いて、「m=2k」と定義されてもよい。
図4は、PLC10による補正後軌跡C’iの生成方法の一例について詳細を示す図である。一般に、画像処理に要する期間(処理時間)である画像処理周期Tp[ms]は、軌跡制御の処理周期(つまり、制御周期Tc[ms])と比較して大きい。そのため、PLC10は、画像処理装置の画像処理時間Tp(例えば、「画像の撮像」から「所望の位置の計測結果の取得」までに要する時間)の2倍より大きくなるm周期先の目標位置Piを補正する。これにより、PLC10は、m/2周期ごとに、つまり、k周期ごとに、撮像画像による目標位置補正を行いながら、その間は既定の規範軌跡(具体的には、生成済の補正後軌跡C’i)に基づいて補間し、止まることのない連続的な動作を実現する。
なお、図4において、点Aは、ワークの「動作開始位置(動作開始前の時点)から、m/2周期先の、つまり、k周期先の、補正後軌跡C’iの目標位置P’i(到達位置)に対応する部分」を示している。言い換えれば、点Aは、ワークの「動作開始位置からk周期先の補正後軌跡C’iの目標位置P’iの周辺領域」を示している。
なお、詳細は後述するが、i+1番目の制御周期の補正後軌跡C’iの目標位置P’iは、i番目、i+1番目、およびi+2番目のいずれか1つの制御周期の規範軌跡Cxの目標位置Pxを補正したものである。したがって、点Aは、「動作開始位置から、k周期先の、または、k+1周期先、または、k+2周期先の、規範軌跡Cxの目標位置Px(到達位置)に対応する部分」として定義してもよい。
また、図4において、点Bは、ワークの「動作開始位置(動作開始前の時点)から、m周期先の補正後軌跡C’iの目標位置P’iに対応する部分」を示している。言い換えれば、点Bは、ワークの「点A(より正確には、ディスペンサ40が点Aに到達した制御周期)から、m/2周期先の補正後軌跡C’iの目標位置P’iに対応する部分」を示している。同様に、点Cは、ワークの「点A(より正確には、ディスペンサ40が点Aに到達した制御周期)から、m周期先の補正後軌跡C’iの目標位置P’iに対応する部分」を示している。言い換えれば、点Cは、ワークの「点B(より正確には、ディスペンサ40が点Bに到達した制御周期)から、m/2周期先の補正後軌跡C’iの目標位置P’iに対応する部分」を、示している。さらに、点Dは、ワークの「点B(より正確には、ディスペンサ40が点Bに到達した制御周期)から、m周期先の補正後軌跡C’iの目標位置P’iに対応する部分」を示している。言い換えれば、点Dは、ワークの「点C(より正確には、ディスペンサ40が点Cに到達した制御周期)から、m/2周期先の補正後軌跡C’iの目標位置P’iに対応する部分」を示している。
図4に示す例では、(1)動作開始時に、PLC10は、予めm周期分の補正後軌跡C’iを生成しておく。つまり、PLC10は、サーボドライバ20によるディスペンサ40の位置制御の実行開始時点であって、ディスペンサ40が動作開始位置(低速制御動作の開始位置)にある時点において、予めm周期分の補正後軌跡C’iを生成しておく。
具体的には、PLC10は、カメラ60が予め撮像しておいた「ワークの、点Bを含む領域」の撮像結果を用いて、動作開始時に、予めm周期分の補正後軌跡C’iを生成しておく。図4において、点線で示している曲線は、PLC10が動作開始前に予め生成しておいたm周期分の補正後軌跡C’iを示している。
(2)ディスペンサ40がA点に到達した時点(A点到達時)で、PLC10は、画像処理装置50を介してカメラ60に、「ワークの、点C(点Aから、m周期先の補正後軌跡C’iの目標位置P’iに対応する部分)を含む部分・領域」を撮像させる。前述の定義通り、「制御周期Tcのm/2倍は、画像処理周期Tpよりも大きい」。したがって、PLC10は、A点到達時にカメラ60に撮像させた「点Cを含む領域」の撮像結果を、ディスペンサ40がB点(A点からm/2周期先の補正後軌跡C’iの目標位置P’iに対応する位置)に到達する時点(B点到達時)よりも前の時点で、取得する。言い換えれば、PLC10は、「点Cを含む領域」の撮像結果を、B点到達時よりも早い時点で、取得する。
ここで、PLC10による「画像処理結果を用いて規範軌跡を補正した補正後軌跡の生成」に係る処理時間は十分に小さく、無視できる大きさである。したがって、PLC10は、B点到達時において、「点Cを含む領域」の撮像結果を用いて、A点到達時よりもm周期先の補正後軌跡C’iを生成する。
すなわち、PLC10は、A点到達時にカメラ60に「ワークの、点Cを含む領域」を撮像させ、B点到達時に、その撮像結果を用いて、A点到達時よりもm周期先の補正後軌跡C’iを生成し、つまり、A点からm周期先の目標位置補正を行なう軌跡を生成する。
(3)ディスペンサ40がB点に到達した時点(B点到達時)で、PLC10は、画像処理装置50を介してカメラ60に、「ワークの、点D(点Bから、m周期先の補正後軌跡の目標位置に対応する部分)を含む部分・領域」を撮像させる。PLC10は、B点到達時にカメラ60に撮像させた「点Dを含む領域」の撮像結果を、ディスペンサ40がC点(B点から、m/2周期先の補正後軌跡C’iの目標位置P’iに対応する位置)に到達する時点(C点到達時)よりも前の時点で、取得する。したがって、PLC10は、C点到達時において、「点Dを含む領域」の撮像結果を用いて、B点到達時よりもm周期先の補正後軌跡C’iを生成する。
すなわち、PLC10は、B点到達時にカメラ60に「ワークの、点Dを含む領域」を撮像させ、C点到達時に、その撮像結果を用いて、B点到達時よりもm周期先の補正後軌跡C’iを生成し、つまり、B点からm周期先の目標位置補正を行なう軌跡を生成する。
(PLC10の実行する処理の概要)
図5は、PLC10が実行する処理の概要を示すフロー図である。前述の通り、PLC10は、ディスペンサ40への制御を開始する前に予め、画像処理に要する時間(つまり、画像処理周期Tp)よりも大きくなるk周期を算出しておく。PLC10が画像処理装置50からカメラ60の撮像結果(特に、特徴点情報)を取得して補正する目標位置は、例えば、m=2kを満たすm周期先の規範指令(規範軌跡C)の目標位置Pである。
PLC10は、先ず、ユーザ等が生成した規範軌跡C(NCデータ等)から、制御周期ごとの規範となる軌跡指令データ、つまり、規範軌跡Ci(i=0、・・・、m−1)を生成する(S101)。
PLC10は、生成した制御周期ごとの規範軌跡Ci(i=0、・・・、m−1)を用いて、動作開始前の、制御周期ごとの補正後指令データ、つまり、補正後軌跡C’i(i=0、・・・、m−1)を生成する(S102)。なお、S102の「動作開始前の補正後軌跡データの生成」処理の詳細については、図6を用いて後述する。
PLC10は、p=0とし(S103)、q=0として(S104)、補正後軌跡データC’p+qの動作を実行する(S105)。つまり、PLC10は、補正後軌跡データC’0を、サーボドライバ20に出力して、サーボドライバ20に、補正後軌跡データC’0に基づくディスペンサ40(サーボモータ30)の制御を実行させる。
PLC10は、全軌跡(つまり、ユーザ等が生成した規範軌跡C)の制御を、つまり、全軌跡の出力を、終了しているか判定する(S106)。PLC10は、全軌跡の出力を終了していると判定すると(S106でYes)、処理を終了する。
PLC10は、全軌跡の出力を終了していないと判定すると(S106でNo)、qを1だけカウントアップし、つまり、「q=q+1」とする(S107)。その後、PLC10は、qがk以上であるか、つまり、qについて「q≧k」を満たすかを判定する(S108)。
PLC10は、qがk未満であると判定すると(S108でNo)、S105からS108までの処理を繰り返す。PLC10は、qがk以上であると判定すると(S108でYes)、次の補正後軌跡データ(C’i+m、C’i+m+1、・・・、C’i+m+k−1)を生成する(S109)。なお、S109の「次の補正後軌跡データの生成」処理の詳細については、図6を用いて後述する。
S109の処理の実行後、PLC10は、pをkだけカウントアップし、つまり、「p=p+k」とし(S110)、S104からS109までの処理を、全軌跡の出力を終了していると判定する(S106でYes)まで、繰り返す。
図6は、図5におけるS102およびS109の「補正後軌跡データの生成」処理の詳細を示すフロー図である。図6の(A)は、図5におけるS102の「動作開始前の補正後軌跡データ(C’0、C’1、・・・、C’m−1)の生成」処理の詳細を示すフロー図である。図6の(B)は、図5におけるS109の「次の補正指令データ(C’i+m、C’i+m+1、・・・、C’i+m+k−1)の生成」処理の詳細を示すフロー図である。
図6の(A)に示すように、図5におけるS102の「動作開始前の補正後軌跡データの生成」処理において、PLC10は、先ず、画像処理装置50に対して、m周期先の目標位置情報(言い換えれば、m周期先の特徴点情報)の取得を指示する(S201)。この「m周期先の目標位置情報の取得」処理の詳細については、図7を用いて後述する。
PLC10は、画像計測手段(つまり、画像処理装置50)による計測(つまり、カメラ60の撮像画像に対する、画像処理装置50による解析処理)が完了しているかを判定する(S202)。PLC10は、画像計測手段による計測が完了していないと判定すると(S202でNo)、画像計測手段による計測が完了すると判定するまで、この判定を繰り返す。
「画像計測手段による計測」とは、例えば、「画像処理装置50が、カメラ60の撮像画像を解析して、例えば、実対象の所望の一部分の形状・輪郭を示す情報(具体的には、所望の一部分の縁・辺を構成する曲線等を示す情報など)を算出する」処理である。画像処理装置50がPLC10に出力する特徴点情報(目標位置情報)は、「画像計測手段による計測」処理の結果(計測結果)を、つまり、「所望の一部分の縁・辺を構成する曲線等を示す情報」を含んでもよい。
PLC10は、画像計測手段による計測が完了していると判定すると(S202でYes)、画像計測手段から計測結果(つまり、m周期先の目標位置に対応する特徴点情報)を取得し、取得した計測結果に基づき、軌跡の変位および回転を算出する(S203)。
そして、PLC10は、算出した変位および回転を用いて、規範軌跡を変換し、補正後軌跡を生成する(S204)。
図6の(B)に示すように、図5におけるS109の「次の補正指令データの生成」処理において、PLC10は、先ず、画像処理装置50に対して、m周期先の目標位置情報(特徴点情報)の取得を指示する(S301)。この「m周期先の目標位置情報の取得」処理の詳細については、図7を用いて後述する。
PLC10は、「取得済みの計測結果(つまり、k周期前のS301で画像計測手段に取得を指示した目標位置情報(特徴点情報))」に基づき、軌跡の変位および回転を算出する(S302)。ここで、「取得済みの計測結果」とは、「k周期前に実行を指示された、実対象の目標位置・部分(範囲指定で指定された範囲)の撮像結果に対する、計測結果」であり、つまり、k周期前に実行を指示した撮像・解析処理の結果である特徴点情報である。
図4等を用いて説明した通り、PLC10は、カメラ60(画像処理装置50)に撮像を指示した、ワークの「m周期(2k)先の目標位置Piに対応する部分」の計測結果(つまり、特徴点情報)を、指示からk周期後に取得する。PLC10がS302の処理を実行するまでに、PLC10がk周期前のS301で画像処理装置50に指示した「画像計測手段での計測(m周期先の目標位置情報の取得)」が完了している。そして、画像処理装置50は計測結果(目標位置情報、つまり特徴点情報)をPLC10に出力し、PLC10は、この計測結果を、S301での指示からk周期後のS302の実行前に取得する。つまり、PLC10がS301で画像処理装置50に対して指示した「m周期先の目標位置情報の取得」処理の結果を、PLC10は指示からk周期後のS302の前に取得し、指示からk周期後のS302において、取得した計測結果を用いてS302を実行する。
PLC10は、S302で算出した変位および回転を用いて、規範軌跡Ciを変換し(つまり、補正し)、補正後軌跡C’iを生成する(S303)。
図7は、図6の(A)および(B)における「m周期先の目標位置情報の取得」処理(S201およびS301)の詳細を示すフロー図である。図7に示すように、PLC10は先ず、前回生成した補正後軌道C’iの目標位置P’iについて、補正後軌道C’iの基準とした規範軌跡Ciの目標位置Piに対する変位方向および変位量を算出する(S401)。なお、PLC10は、S401の処理を、図6の(A)のS201の「m周期先の目標位置情報の取得」処理においては実行せず、言い換えれば、動作開始前の補正後軌跡データ生成時には、PLC10は、S401の処理を実行しない。
PLC10は、算出した変位方向および変位量を用いて、m周期先の補正後軌道C’iの目標位置P’iを求めるための基準となる規範軌跡Ciを決定する(S402)。なお、この「規範軌跡の決定」処理の詳細については、図11から図13を参照して後述する。
PLC10は、決定した規範軌跡を用いて、特徴点検出範囲を決定し(S403)、決定した特徴点検出範囲を「範囲指定」として、画像処理装置50に出力する。そして、PLC10は、画像処理装置50を介してカメラ60に、決定した特徴点検出範囲を撮像させ、画像処理装置50に、カメラ60の撮像結果から特徴点(ワークの、特徴点検出範囲の形状を示す縁・辺など)を検出させる。さらに、PLC10は、画像処理装置50に、特徴点の座標等を計測させてもよい。つまり、PLC10は、画像処理装置50およびカメラ60に、「撮像・特徴点検出・計測」処理を実行させる(S404)。「撮像・特徴点検出・計測」処理は、画像計測手段(画像処理装置50およびカメラ60)の定義済み処理である。つまり、「撮像・特徴点検出・計測」処理は、従来までの「撮像対象中の特定の部分を撮像させ、撮像画像から、その特定の部分の形状を示す縁・辺などの特徴点を検出させ、検出した特徴点の座標等を計測させる」処理を用いて実現することができる。
§3.動作例
PLC10の理解を容易にするため、PLC10が二次元の円弧軌跡を生成する場合について、図8から図14を用いて説明する。また以下では、説明を単純にするために、「画像の撮像」から「特徴点の抽出、および、計測結果の取得」までに、1制御周期未満で完了する例を用いる。すなわち、図5から図7を用いて説明したフローについて、「k=1」、「m=2」として以下を説明する。
1.準備
1.1.規範となる軌跡データの生成
図8から図14を用いて説明するPLC10の制御例について、制御周期ごとの移動量データ(軌跡データ)は、規範軌跡Ci(i=0、1、2、・・・、m−1)であるm個のデータとする。ここで、「m」が有限な値である必要はなく、PLC10が実行する制御に必要な軌跡データが、PLC10のデータバッファ(記憶部170)等に確保される限りは、規範軌跡が都度生成され、更新されるような方式でもよい。
また、各々の規範軌跡Ci(i=0、1、2、・・・、m−1)は、n次元の座標系上の軌跡に対して、「Ci={dx1(i),dx2(i),dx3(i),・・・,dxn(i)}」というn個の移動量の要素を持つ。例えば、2次元座標における円弧の場合、規範軌跡Ciは2次元の要素(dx(i),dy(i))を持つこととなる。
図8は、PLC10が実現しようとする規範軌跡Cの一例(図8の(A))、この規範軌跡Cを実現するための制御周期ごとの規範軌跡Ci(図8の(B))、および、制御周期ごとの規範軌跡Ciについて、制御周期ごとの速度(図8の(C))を示している。図8に示すように、PLC10は、m個の定速の規範軌跡Ci(制御周期ごとの速度が一定の規範軌跡Ci)により、例えば2次元の円弧を実現する。
1.2.(動作開始前)初回、次回の補正後指令の生成
PLC10は、動作開始前に予め、m周期分の補正後軌跡C’iを生成しておき、つまり、制御周期ごとの規範軌跡Ci(i=0、・・・、m−1)を用いて、制御周期ごとの補正後軌跡C’i(i=0、・・・、m−1)を生成する。ここで、前述の通り、「m=2」であるから、PLC10は、規範軌跡C0、C1の各々に対する補正後軌跡C’0、C’1の各々を、動作開始前に予め生成する。PLC10は、規範軌跡C0、C1の各々から、補正後軌跡C’0、C’1の各々を、例えば図9に示す方法により、生成する。
図9は、PLC10が、規範軌跡C0、C1の各々から、補正後軌跡C’0、C’1の各々を生成する方法の一例を示している。図9に示すように、(1)PLC10の動作開始前(停止状態時)にカメラ60が撮像した画像に対して、画像処理装置50は、規範軌跡C1の法線上で特徴点を検出する。画像処理装置50は、検出した特徴点の座標などの情報(特徴点情報)を、PLC10に通知する。
(2)PLC10は、「規範軌跡C0の始点と規範軌跡C1の終点(目標位置)とを結ぶ線」と、「開始位置(初期位置)と検出された特徴点とを結ぶ線」とに対して、「回転量(傾き量)」と「並進量(変位量)」とを求める。すなわち、PLC10は、「規範軌跡C0の始点と規範軌跡C1の終点とを結ぶ線」を、「開始位置(初期位置)と検出された特徴点とを結ぶ線」と平行にするのに必要な「回転量(傾き量)」を算出する。また、PLC10は、規範軌跡C0の始点を、開始位置(初期位置)へと移動させる量である「並進量(変位量)」を算出する(図9の(A))。
ここで、「規範軌跡C1の目標位置(終点)」に対応する「実対象(実際のワーク)の特徴点」の検出は、規範軌跡C1の法線上での検出に限られるものではない。例えば、実対象の輪郭に対して垂線を引いた場合に最も距離が短くなる線上で、「規範軌跡C1の目標位置(終点)」に対応する「実対象(実際のワーク)の特徴点」を決定してもよい。また、例えば、規範軌跡C1の目標位置の周囲を囲む特定の領域内で、「規範軌跡C1の目標位置」に対応する「実対象(実際のワーク)の特徴点」を探索してもよい。具体的には、目標位置を中心とする円領域内で検出した特定パターン等から、「実対象(実際のワーク)の特徴点」を決定してもよい。
(3)PLC10は、(2)で求めた回転量と並進量とにより、規範軌跡C0およびC1の各々を変換した(つまり、補正した)補正後軌跡C’0およびC’1の各々を生成する。
なお、図9に示した例では、PLC10が、規範となる指令(規範軌跡Ci)、および補正後の指令(補正後軌跡C’i)の各々の「始点と終点とを結ぶ線」に対する回転量(傾き量)と並進量(変位量)とにより、補正後軌跡C’iを生成している。すなわち、「規範軌跡C0の始点と規範軌跡C1の終点とを結ぶ線」は、「規範となる指令(規範軌跡Ci)の始点と終点とを結ぶ線」である。また、「開始位置(初期位置)と検出された特徴点とを結ぶ線」は「補正後の指令(補正後軌跡C’)の始点と終点とを結ぶ線」である。図9の例では、PLC10は、「規範となる指令の始点と終点とを結ぶ線」から、「補正後の指令の始点と終点とを結ぶ線」への、回転と並進とにより、補正後軌跡C’iを生成している。しかしながら、PLC10が補正後軌跡C’0およびC’1の各々を生成する方法は、図9に示す方法に限られるものではない。
図10は、PLC10が、規範軌跡C0、C1の各々から、補正後軌跡C’0、C’1の各々を生成する方法について、図9に例示した方法以外の方法を例示している。例えば、図10の(A)に示すように、PLC10は、「補正後の指令の始点(開始位置)と、検出された特徴点とを通る線」に対して、偏差が最小となるような傾きを最小二乗法で求めてもよい。また、図10の(B)に示すように、PLC10は、対象物の輪郭に対する所定のルール(クリアランスなど)を満たす「補正後軌跡」群で、補正後軌跡と実対象の輪郭とで囲まれた面積が最小となる補正後軌跡を選択してもよい。
2.補正後指令C’0から動作を開始
PLC10は、予め生成しておいた補正後軌跡C’0をサーボドライバ20に出力し、補正後軌跡C’0に基づくサーボモータ30(つまり、ディスペンサ40)の制御を、サーボドライバ20に実行させる。
3.補正後指令C’0の動作終了時に補正後指令C’2を生成
PLC10は、補正後軌跡C’0の動作終了時点において、以下の「3.1.」から「3.3.」までの処理を実行して、補正後軌跡C’2を生成する。なお、「補正後軌跡C’0の動作終了時点」とは、「補正後軌跡C’1の動作開始時点」であり、言い換えれば、「ディスペンサ40が、補正後軌跡C’0の終点であるP’0に位置した時点」である。
3.1.基準(参照元)となる規範指令Ciの決定(選択判定)
PLC10は、「どの規範軌跡Cxを基準として、次の(具体的には、m周期先の)制御周期の補正後軌跡C’iを、つまり、ディスペンサ40が現在位置に到達した制御周期からm周期先の制御周期の補正後軌跡C’iを、生成するか」を以下に示すように決定する。すなわち、「前回生成した補正後軌跡C’iの目標位置P’i(到達位置)」と、「前回生成した補正後軌跡C’iの基準となった規範軌跡Ciの目標位置Pi」と、を用いて決定する。なお、前回生成した補正後軌跡C’iの制御周期は、補正後軌跡C’iの基準となった規範軌跡Ciの制御周期と、同じであるとは限られない。
例えば、PLC10は、「ディスペンサ40の現在位置=P’0」の時点で、「補正後軌跡C’1の目標位置P’1」と、「補正後軌跡C’1の基準となった規範軌跡C1の目標位置P1」との関係から、補正後軌跡C’2の基礎となる規範軌跡Cxを決定する。
PLC10は、「補正後軌跡C’1の目標位置P’1」と、「規範軌跡C1の目標位置P1」との関係から、補正後軌跡C’2の基礎となる規範軌跡Cxを、例えば図11から図13に示す方法により、生成する。
なお、図11から図13には、PLC10が、「規範軌跡C1の目標位置P1」と「補正後軌跡C’1の目標位置P’1」との位置関係および両者の間の距離によって、補正後軌跡C’2の基礎となる規範軌跡を判定する(選択する)方法が例示されている。しかしながら、PLC10が、「補正後軌跡C’1の目標位置P’1」と、「規範軌跡C1の目標位置P1」との関係から、補正後軌跡C’2の基礎となる規範軌跡を選択する方法は、図11から図13に例示される方法に限られるものではない。PLC10は、例えば、「目標位置P’1から最も距離が短い規範軌跡指令」を、「補正後軌跡C’2の基礎となる規範軌跡」として、選択してもよい。
図11は、PLC10が、「補正後軌跡C’1の目標位置P’1」と、「規範軌跡C1の目標位置P1」との関係から、補正後軌跡C’2の基礎となる規範軌跡Cxを選択する方法の一例を説明する図である。図11の(A)に示すように、PLC10は先ず、(1)目標位置P’1から目標位置P1へのベクトルLを求める。PLC10は次に、(2)Lの向きから、補正後軌跡C’1の目標位置P’1が、本来の指令位置(規範軌跡C1の目標位置)P1に対して、「達していない」か、あるいは「超えている」か、を「Lの向き」から判定する。
図12は、PLC10が、「補正後軌跡C’1の目標位置P’1」と、「規範軌跡C1の目標位置P1」との関係から、補正後軌跡C’2の基礎となる規範軌跡Cxを選択する方法の一例について、図11の続きを説明する図である。
図13は、PLC10が、「補正後軌跡C’1の目標位置P’1」と、「規範軌跡C1の目標位置P1」との関係から、補正後軌跡C’2の基礎となる規範軌跡Cxを選択する方法の一例について、図12の続きを説明する図である。
PLC10は、(2)「Lの向き」から、目標位置P’1が、目標位置P1に、「達していない(遅れている)」か、あるいは「超えている(進んでいる)」か、を判定すると、さらに、次の処理を実行する。すなわち、PLC10は、(3)補正後軌跡C’iが「遅れている」または「進んでいる」判定の判定結果に加えて、「Lの長さ」を用いて、次に参照する規範軌跡Cx(補正後軌跡C’2の基礎となる規範軌跡Cx)を決定する。なお、補正後軌跡C’1が「遅れている」とは、「目標位置P’1が、目標位置P1に対応する位置に未達である」状態を意味しており、「進んでいる」とは、「目標位置P’1が、目標位置P1に対応する位置を超過した位置にある」状態を意味している。
第1に、「ベクトルLの長さが、規範軌跡C1の長さの半分以下」である場合、PLC10は、補正後軌跡C’2の元指令(基礎となる規範軌跡Cx)として、以下の規範軌跡を使用する。すなわち、PLC10は、補正後軌跡C’2の元指令として、規範軌跡C1の1つ次に続く規範軌跡C2を使用する(図12の(A))。
第2に、「ベクトルLの長さが、規範軌跡C1の長さの半分よりも長い」かつ「目標位置P’1が、目標位置P1に達していない(遅れている)」場合、PLC10は、補正後軌跡C’2の元指令として、前回と同じ規範軌跡C1を使用する(図12の(B))。
第3に、「ベクトルLの長さが、規範軌跡C1の長さの半分よりも長い」かつ「目標位置P’1が、目標位置P1を超えている(進んでいる)」場合、PLC10は、補正後軌跡C’2の元指令として、規範軌跡C1の2つ次の規範軌跡C3を使用する(図13)。
PLC10が実行するこれらの処理は、実際のワークの輪郭が規範となる軌跡指令(規範軌跡)にほぼ一致しており、その輪郭のベクトルの向きが近接した規範軌跡のベクトルに近しいことを利用するものである。
3.2.撮像トリガ(特徴点情報について)
PLC10は、画像計測手段(画像処理装置50)に対して、範囲指定と共に、補正後軌跡C’2を生成するための特徴点の撮像および検出のトリガを与える。範囲指定と共に、このトリガを受け付けた画像処理装置50は、カメラ60に、実対象(実際のワーク)の所望の一部分(範囲指定で指定された範囲)を撮像させる(撮像を実行させる)。そして、画像処理装置50は、カメラ60の撮像画像を解析して特徴点を検出し、検出した特徴点の情報(特徴点情報)をPLC10に出力する。
ここで、特徴点情報は、例えば、実対象の所望の一部分(PLC10から受け付けた範囲指定で指定されている範囲)の撮像画像を解析して取得した、その一部分の形状を示す情報(例えば、その一部分の縁・辺を構成する曲線等を示す情報など)である。ただし、特徴点情報が、実対象の所望の一部分の撮像画像を解析して取得した、実対象の所望の一部分の形状を示す情報であることは必須ではない。画像処理装置50は、PLC10に代わって、法線上の特徴点の計測(例えば、特徴点の座標を測定する処理)を実行し、計測結果を特徴点情報として、PLC10に出力してもよい。
この場合、例えば、PLC10は、「3.1.」において決定した基準となる規範軌跡に関する法線情報を、画像処理装置50に与える。その後、PLC10は、画像処理装置50に、範囲指定と共に、撮像、検出、および計測のトリガを与える。
このトリガを受け付けた画像処理装置50は、カメラ60に実対象の所望の一部分を撮像させ、カメラ60の撮像画像を解析して、その一部分の形状(例えば、その部分の縁・辺を構成する曲線等)を検出する。そして、画像処理装置50は、例えば、検出した曲線等と、PLC10から取得した法線情報で示される線分(法線)との交点として、特徴点を算出し、算出した特徴点の座標等を計測する。つまり、画像処理装置50は、カメラ60の撮像画像の解析・検出結果(実対象の所望の一部分の形状を示す曲線)と、PLC10から取得した法線情報と、を用いて、法線上の特徴点に対する計測を実行する。そして、画像処理装置50は、計測結果である法線上の特徴点の座標等を、特徴点情報として、PLC10に出力してもよい。
3.3.補正後指令C’2の生成
PLC10は、「1.2.」と同様の手法により、元となる規範軌跡Ci(i=1、または2、または3)から、補正後軌跡C’2を生成する。すなわち、PLC10は、「3.1.」の処理により、補正後軌跡C’2の基準(参照元)となる規範軌跡Cbを決定する。
図14は、PLC10が、補正後軌跡C’2の基準となる規範軌跡Cbを決定した後に、規範軌跡Cbを補正して補正後軌跡C’2を生成する方法を説明する図である。PLC10は、(1)補正後軌跡C’2の基準となる規範軌跡Cbを目標位置P’1に接続し(つまり、規範軌跡Cbの始点が目標位置P’1になるように、規範軌跡Cbを並進する)、その並進後の規範軌跡Cbの法線上で特徴点を検出する(図14の(A))。
PLC10は、(2)「規範軌跡Cb」と「目標位置P’1と検出された特徴点とを結ぶ線」とから、改めて、回転(傾き量)と並進(変位量)とを求める(図14の(B))。なお、「k>1」である場合、PLC10は、「Cb−k+1の始点と、Cbの目標位置(終点)と、を結ぶベクトル」と、「目標位置P’1と検出された特徴点とを結ぶ線」とから、回転(傾き量)と並進(変位量)とを求める。
PLC10は、(3)求めた回転と並進とにより、規範軌跡Cbを変換(つまり、補正)した補正後軌跡C’2を生成する(図14の(C))。なお、「k>1」である場合、PLC10は、規範軌跡Cb−k+1から規範軌跡Cbまでの各々の規範軌跡を変換して、k組の補正後軌跡セット(k個の補正後軌跡)を生成する。
4.補正後指令C’1の動作終了時に、補正後指令C’3を生成
PLC10は、補正後軌跡C’1の動作終了時点に、上述の「3.」の処理を実行して、補正後軌跡C’3を生成する。なお、「補正後軌跡C’1の動作終了時点」とは、「補正後軌跡C’2の動作開始時点」であり、言い換えれば、「ディスペンサ40が、補正後軌跡C’1の終点であるP’1に位置した時点」である。以降、PLC10は、「3.」の処理を繰り返し実行する。
(制御装置の機能構成の概要について)
これまで、図2から図14を用いて、PLC10の概要を説明してきた。次に、図1を参照して、PLC10の構成および処理の内容等を詳細に説明していく。図1を参照して詳細を説明する前に、PLC10についての理解を容易にするため、これまでに説明してきた概要を、以下のように整理しておく。
PLC10(制御装置)は、ワークの表面に沿って移動させるディスペンサ40(制御対象)についての規範指令C(目標軌跡)を、前記ワークの撮像結果(具体的には、特徴点情報)を用いて補正した補正後軌跡C’を生成する制御装置であって、制御周期ごとの規範軌跡Ci(制御周期ごとの目標軌跡)を取得する取得部110と、制御周期ごとの補正後軌跡C’iの長さを、制御周期ごとの規範軌跡Ciの長さに略一致させて、制御周期ごとの規範軌跡Ciから、制御周期ごとの補正後軌跡C’iを生成する補正部120(生成部)と、を備えている。
前記の構成によれば、PLC10は、規範指令Cを、前記ワークの撮像結果を用いて補正した補正後軌跡C’を生成し、制御周期ごとの補正後軌跡C’iの長さは、制御周期ごとの規範軌跡Ciの長さに略一致する。
したがって、PLC10は、ワークの表面に沿って移動させるディスペンサ40についての規範指令Cを、前記ワークの撮像結果を用いて補正するとともに、前記ディスペンサ40の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
PLC10は、i、jの各々を1以上の整数として、i番目の制御周期の補正後軌跡C’i−1がj番目の制御周期の規範軌跡Cj−1から生成されている場合、i+1番目の制御周期の補正後軌跡C’iに対応する制御周期ごとの規範軌跡Cxとして、j+1番目の制御周期の規範軌跡Cj、および、その前後の制御周期の規範指令(例えば、Cj−1、Cj+1)の中から、1つ選択する基準判定部140(選択部)をさらに備え、補正部120は、基準判定部140により選択された制御周期の規範軌跡Cxから、i+1番目の制御周期の補正後軌跡C’iを生成する。
前記の構成によれば、PLC10は、j+1番目の制御周期の規範軌跡Cj、および、その前後の制御周期の規範指令(例えば、Cj−1、Cj+1)の中から選択した1つの規範軌跡Cxから、i+1番目の制御周期の補正後軌跡C’iを生成する。
ここで、ワークの設計データ等に基づき設定された規範指令Cの総距離(長さ)は、実際のワークの形状に基づいて生成された補正後軌跡C’の総距離(長さ)とは一致しないことがある。規範指令Cと補正後軌跡C’とで長さが一致しないにもかかわらず、両者の軌跡を実現する制御周期の長さ(時間間隔)と実行回数とを維持した場合、ディスペンサ40の制御周期ごとの移動量は、規範指令Cと補正後軌跡C’とで異なってしまう。
そこで、PLC10は、制御周期の実行回数を調整することにより、ディスペンサ40の制御周期ごとの移動量および制御周期の長さを維持しつつ、規範指令Cと補正後軌跡C’との長さの違いを補償する。
具体的には、PLC10は、j+1番目の制御周期の規範軌跡Cj、および、その前後の制御周期の規範指令(例えば、Cj−1、Cj+1)の中から選択された1つの規範軌跡Cxから、i+1番目の制御周期の補正後軌跡C’iを生成することにより、制御周期の実行回数を調整する。例えば、PLC10は、j番目、j+1番目、およびj+2番目のいずれか1つの制御周期の規範軌跡Cxから、i+1番目の制御周期の補正後軌跡C’iを生成することにより、制御周期の実行回数を調整する。
したがって、PLC10は、規範指令Cをワークの撮像結果を用いて補正するとともに、制御周期の実行回数を調整して、ディスペンサ40の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
PLC10は、iを1以上の整数として、制御周期のk倍が撮像結果の生成から取得に要する時間よりも大きくなる整数kについて、遅くとも、ディスペンサ40がi番目の制御周期の補正後軌跡C’i−1の目標位置P’i−1に達した時点で、i+2k番目の制御周期の補正後軌跡C’i+2k−1の目標位置P’i+2k−1に対応する撮像結果の取得を、制御周期のk倍の周期で繰り返し開始する撮像結果取得部160(結果取得部)をさらに備え、補正部120は、撮像結果取得部160が取得した撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の補正後軌跡C’i+k〜C’i+2k−1を生成する。
なお、「撮像結果の生成から取得に要する時間」とは、具体的には、「画像処理装置50への撮像等の指示」から、「特徴点情報の取得」までに要する時間を意味し、「カメラ60による、ワークの『範囲指定で指定された範囲』の撮像」に要する時間を含む。前述の通り、PLC10は、画像処理装置50に対し、範囲指定と共に、撮像・特徴点検出・計測を指示する。この指示を受け付けた画像処理装置50は、カメラ60に、ワークの「範囲指定で指定された範囲」を撮像させ、カメラ60による「範囲指定で指定された範囲」の撮像画像に対し解析等を実行して特徴点情報を生成し、生成した特徴点情報をPLC10に出力する。「撮像結果の生成から取得に要する時間」とは、PLC10の「画像処理装置50への撮像等の指示」から「画像処理装置50からの特徴点情報の取得」までに要する時間であり、「カメラ60による、『範囲指定で指定された範囲』の撮像」に要する時間を含む。
前記の構成によれば、PLC10は、遅くとも、ディスペンサ40がi番目の制御周期の目標位置P’i−1に達した時点で、i+2k番目の制御周期の目標位置P’i+2k−1に対応する撮像結果の取得を、制御周期のk倍の周期で繰り返し開始する。
ここで、制御周期のk倍は、撮像結果の生成から取得に要する時間よりも大きい。そして、PLC10が「i+2k番目の制御周期の目標位置P’i+2k−1に対応する撮像結果(つまり、2k制御周期先の制御周期に対応する撮像結果)」の取得を開始するのは、遅くとも、ディスペンサ40がi番目の制御周期の目標位置P’i−1に達した時点である。したがって、PLC10は、遅くともi+k番目の制御周期において、「2k制御周期先の制御周期に対応する撮像結果」を、制御周期のk倍の周期で繰り返し取得することができる。
また、PLC10は、撮像結果取得部160が取得した撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の補正後軌跡C’i+k〜C’i+2k−1を生成する。つまり、PLC10は、遅くともi+k番目の制御周期において前期撮像結果を取得し、取得した前期撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の補正後軌跡C’i+k〜C’i+2k−1を生成する。
したがって、PLC10は、前記ワークの全体についての撮像結果ではなく、前記ワークの所望の一部分の撮像結果を、制御周期のk倍の周期で繰り返し取得することによって、補正後軌跡C’を生成することができるとの効果を奏する。
また、PLC10は、i+k+1番目からi+2k番目までの各々の制御周期の補正後軌跡C’i+k〜C’i+2k−1を、遅くともi+k番目の制御周期において取得した前期撮像結果を用いて生成することができる。つまり、PLC10は、制御周期のk倍の周期で繰り返し、2k制御周期先の制御周期に対応する撮像結果を取得して、i+k+1番目からi+2k番目までの各々の制御周期の補正後軌跡C’i+k〜C’i+2k−1を、遅くともi+k番目の制御周期において生成する。
したがって、PLC10は、制御周期ごとの補正後軌跡C’iの生成を中断することなく、制御周期のk倍の周期で繰り返し、前記ワークの所望の一部分の撮像結果を取得して、制御周期ごとの補正後軌跡C’iを生成することができるとの効果を奏する。
PLC10において、補正部120は、予め、1番目から2k番目までの各々の制御周期の補正後軌跡C’i(i=0、1、2、・・・、2k−1)を生成しておき、撮像結果取得部160は、遅くとも、ディスペンサ40がk番目の制御周期の補正後軌跡C’k−1の目標位置P’k−1に達した時点で、3k番目の制御周期の補正後軌跡C’3k−1の目標位置P’3k−1に対応する撮像結果の取得を開始する。
前記の構成によれば、PLC10は、予め、1番目から2k番目までの各々の制御周期の補正後軌跡C’i(i=0、1、2、・・・、2k−1)を生成しておく。また、PLC10は、遅くとも、ディスペンサ40がk番目の制御周期の補正後軌跡C’k−1の目標位置P’k−1に達した時点で、3k番目の制御周期の補正後軌跡C’3k−1の目標位置P’3k−1に対応する撮像結果の取得を開始する。
つまり、PLC10は、1番目から2k番目までの各々の制御周期においては、予め生成しておいた1番目から2k番目までの各々の制御周期の補正後軌跡C’i(i=0、1、2、・・・、2k−1)を用いた制御を実行する。
また、PLC10は、遅くとも、ディスペンサ40がk番目の制御周期の補正後軌跡C’k−1の目標位置P’k−1に達した時点で、3k番目の制御周期の補正後軌跡C’3k−1の目標位置P’3k−1に対応する撮像結果の取得を開始する。そのため、PLC10が、「3k番目の制御周期の補正後軌跡C’3k−1の目標位置P’3k−1に対応する撮像結果」を取得するのは、遅くとも2k番目の制御周期である。そして、PLC10は、遅くとも2k番目の制御周期において取得する前記撮像結果を用いて、2k+1番目から3k番目までの各々の制御周期の補正後軌跡C’i(i=2k、2k+1、2k+2、・・・、3k−1)を生成する。
つまり、PLC10は、予め生成しておいた1番目から2k番目までの各々の制御周期の補正後軌跡C’i(i=0、1、2、・・・、2k−1)を用いた制御の実行中に、2k+1番目から3k番目までの各々の制御周期の補正後軌跡C’i(i=2k、2k+1、2k+2、・・・、3k−1)を生成する。
したがって、PLC10は、制御周期ごとの補正後軌跡C’iの生成を中断することなく、制御周期のk倍の周期で繰り返し、前記ワークの所望の一部分の撮像結果を取得して、0番目以降の制御周期ごとの補正後軌跡C’iを生成することができるとの効果を奏する。
PLC10において、基準判定部140は、(1)補正部120が制御周期のk倍の周期で繰り返し生成したi+k+1番目からi+2k番目までの各々の制御周期の補正後軌跡C’i+k〜C’i+2k−1のうち、i+2k番目の制御周期の補正後軌跡C’i+2k−1を用いて、(2)i+3k番目の制御周期の補正後軌跡C’i+3k−1に対応する、制御周期ごとの規範軌跡Cxを、j+3k番目の制御周期の規範軌跡Cj+3k−1、および、その前後の制御周期の規範指令(例えば、Cj+3k−2、およびCj+3k)の中から、1つ選択してもよい。
前記の構成によれば、PLC10は、i+2k番目の制御周期の補正後軌跡C’i+2k−1を用いて、i+3k番目の制御周期の補正後軌跡C’i+3k−1に対応する、制御周期ごとの規範軌跡Cxを、j+3k番目の制御周期の規範軌跡Cj+3k−1、および、その前後の制御周期の規範指令(例えば、Cj+3k−2、およびCj+3k)の中から、1つ選択する。
前述の通り、規範指令Cの総距離(長さ)は、補正後軌跡C’の総距離(長さ)とは一致しないことがある。また、PLC10は、制御周期ごとの補正後軌跡C’iの長さが、制御周期ごとの規範軌跡Ciの長さに略一致するように、制御周期ごとの規範軌跡Cxから、制御周期ごとの補正後軌跡C’yを生成する。そのため、或る制御周期の補正後軌跡C’iの目標位置(終点)は、その或る制御周期の規範軌跡Ciの目標位置には、必ずしも近似しない。
例えば、PLC10が生成した或る制御周期の補正後軌跡C’iの目標位置P’iは、その或る制御周期の規範軌跡Ciの目標位置Piよりも、その或る制御周期よりも1つ前の制御周期の規範軌跡Ci−1の目標位置Pi−1の近傍に位置することがある。この場合、制御周期ごとの補正後軌跡C’iと制御周期ごとの規範軌跡Ciとで長さを略一致させつつ、両者の乖離を抑制するためには、PLC10は、その或る制御周期よりも1つ後の制御周期の補正後軌跡C’i+1を、以下のように生成するのが望ましい。すなわち、PLC10は、その或る制御周期の規範軌跡Ciを用いて、その或る制御周期よりも1つ後の制御周期の補正後軌跡C’i+1を生成するのが望ましい。
また例えば、PLC10が生成した或る制御周期の補正後軌跡C’iの目標位置P’iは、その或る制御周期の規範軌跡Ciの目標位置Piよりも、その或る制御周期よりも1つ後の制御周期の規範軌跡Ci+1の目標位置Pi+1の近傍に位置することがある。この場合、制御周期ごとの補正後軌跡C’iと制御周期ごとの規範軌跡Ciとで長さを略一致させつつ、両者の乖離を抑制するためには、PLC10は、その或る制御周期よりも1つ後の制御周期の補正後軌跡C’i+1を、以下のように生成するのが望ましい。すなわち、PLC10は、その或る制御周期よりも2つ後の制御周期の規範軌跡Ci+2を用いて、その或る制御周期よりも1つ後の制御周期の補正後軌跡C’i+1を生成するのが望ましい。
そのため、PLC10は、生成済の補正後軌跡C’iを用いて、k周期先の制御周期の補正後軌跡C’i+kを生成するのに最適な制御周期の規範軌跡Cxを決定する。具体的には、PLC10は、i+2k番目の制御周期の補正後軌跡C’i+2k−1を用いて、i+3k番目の制御周期の補正後軌跡C’i+3k−1に対応する規範軌跡Cxを、j+3k番目の制御周期の規範軌跡Cj+3k−1、および、その前後の制御周期の規範指令(例えば、Cj+3k−2、およびCj+3k)の中から、1つ選択する。なお、補正後軌跡C’i+2k−1は、j+2k番目の制御周期の規範軌跡Cj+2k−1を用いて生成されたものとする。例えば、PLC10は、j+3k−1番目、j+3k番目、およびj+3k+1番目の制御周期の規範軌跡Cj+3k−2、Cj+3k−1、およびCj+3kの中から、i+3k番目の制御周期の補正後軌跡C’i+3k−1に対応する規範軌跡Cxを、i+2k番目の制御周期の補正後軌跡C’i+2k−1を用いて決定する。
したがって、PLC10は、制御周期ごとの補正後軌跡C’iの、制御周期ごとの規範軌跡Ciからの乖離を抑制しつつ、制御周期ごとの補正後軌跡C’iの長さを、制御周期ごとの規範軌跡Ciの長さに略一致させることができるとの効果を奏する。
PLC10において、補正部120は、撮像結果取得部160により取得された撮像結果を用いて、連続するk個の制御周期の各々に対応する規範軌跡Ciを示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、連続するk個の制御周期の各々に対応する補正後軌跡C’iを示すベクトルを、制御周期のk倍の周期で繰り返し生成する。
前記の構成によれば、PLC10は、撮像結果を用いて、制御周期ごとの規範軌跡Ciを示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、制御周期ごとの補正後軌跡C’iを示すベクトルを生成する。
したがって、PLC10は、撮像結果を用いて、制御周期ごとの補正後軌跡C’iの長さを、制御周期ごとの規範軌跡Ciの長さに略一致させて、制御周期ごとの補正後軌跡C’iを生成することができるとの効果を奏する。
(制御装置の機能構成の詳細)
図1は、本発明の実施形態1に係るPLC10の要部構成を示すブロック図である。図1に示すように、PLC10は、機能ブロックとして、取得部110、補正部120、補正量算出部130、基準判定部140、範囲指定部150、撮像結果取得部160、および、出力部180を備えている。PLC10は、ディスペンサ40を制御する制御処理の実行主体である。
なお、記載の簡潔性を担保するため、本実施の形態に直接関係のない構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、PLC10は、当該省略された構成を備えてもよい。図1に例示した取得部110、補正部120、補正量算出部130、基準判定部140、範囲指定部150、撮像結果取得部160、および、出力部180は、例えば、プロセッサ(CPU、central processing unit)等が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された不揮発性(記憶部170)に記憶されているプログラムを、RAM等により実現されるメインメモリに読み出して実行することで実現できる。以下、PLC10における各機能ブロックについて説明する。
(記憶部以外の機能ブロック)
取得部110は、規範軌跡テーブル171を参照して、制御周期ごとの規範軌跡(規範指令)Ciを取得し、取得した規範軌跡Ciを補正部120に出力する。取得部110は、PLC10の制御動作開始前に、規範軌跡テーブル171を参照して、1番目から2k番目までの各々の制御周期の規範軌跡Ci(i=0、1、2、・・・、2k−1)を取得し、取得した規範軌跡Ciを、補正部120に出力する。取得部110は、PLC10の制御動作の実施中に、基準判定部140から指示された制御周期の規範軌跡Ciを、規範軌跡テーブル171を参照して取得し、取得した規範軌跡Ciを、補正部120に出力する。取得部110は、PLC10の制御動作の実施中に、基準判定部140からx番目の規範軌跡Cx−1を指示されると、x−k+1番目からx番目までの各々の制御周期の規範軌跡Ci(i=x−k、x−k+1、・・・、x−1)を、補正部120に出力してもよい。
補正部120は、取得部110から取得した規範軌跡Ciを、補正量算出部130から通知された補正量を用いて補正し、補正した規範軌跡Ciを、補正後軌跡C’iとして補正後軌跡テーブル172に格納する。補正部120は、例えば、取得部110から取得したk個の規範軌跡Cx〜Cx+k−1の各々を、補正量算出部130から通知された補正量を用いて補正したk個の補正後軌跡C’y〜C’y+k−1を生成する(x、yは各々、0以上の整数)。具体的には、補正部120は、規範軌跡Cx〜Cx+k−1の各々について、補正量算出部130から通知された変位量だけ平行移動させ、補正量算出部130から通知された回転量だけ回転させて、k個の補正後軌跡C’y〜C’y+k−1を生成する。
補正量算出部130は、撮像結果取得部160が取得した特徴点情報を用いて、補正量(具体的には、回転量および変位量)を算出し、算出した補正量を補正部120に通知する。補正量算出部130は、例えば図9、図10、および図14を用いて説明した方法により、補正量を算出する。
補正量算出部130は、例えば、基準判定部140が「i+k番目の制御周期の補正後軌跡C’i+k−1」の基礎として決定した規範軌跡Cxを用いて、規範軌跡CxからC’i+k−1を生成するための回転量および変位量を算出する。すなわち、補正量算出部130は、「Cx−k+1の始点と、Cxの終点と、を結ぶ線」と、「C’i−1の目標位置P’i−1と、C’i+k−1に対応する特徴点とを結ぶ線」とに対して、回転(傾き量)と並進(変位量)とを求める。
補正量算出部130は、例えば、「補正後の指令の始点(開始位置)と、検出された特徴点とを通る線」に対して、偏差が最小となるような回転量を最小二乗法で求めてもよい。また、補正量算出部130は、対象物の輪郭に対する所定のルール(クリアランスなど)を満たす「補正後軌跡」群で、補正後軌跡と実対象の輪郭とで囲まれた面積が最小となる補正後軌跡を選択するための回転量および変位量を算出してもよい。
基準判定部140は、補正後軌跡テーブル172を参照して、i番目の制御周期の補正後軌跡C’i−1を用いて、i+k番目の制御周期の補正後軌跡C’i+k−1の基礎となる規範軌跡Cxを決定する。基準判定部140は、決定した規範軌跡Cxを、取得部110および範囲指定部150(さらに、撮像結果取得部160)に指示する。
基準判定部140は、例えば、図11から図13を用いて説明したように、生成済の補正後軌跡C’i−1を用いて、補正後軌跡C’i+k−1の基礎となる規範軌跡Cxを決定する。すなわち、基準判定部140は、「補正後軌跡C’i−1の目標位置P’i−1」と「補正後軌跡C’i−1の基礎となった規範軌跡Cyの目標位置Py」との位置関係および両者の間の距離によりCxを決定する。
基準判定部140は、例えば、「補正後軌跡C’i−1の目標位置P’1−1から最も距離が短い規範軌跡」を、規範軌跡Cxとして、選択してもよい。
また、基準判定部140は、決定した規範軌跡Cxについて、図9の(A)および図14の(A)を用いて説明した方法により、法線情報を生成する。すなわち、基準判定部140は、i+k番目の制御周期の補正後軌跡C’i+k−1の基礎となる規範軌跡Cxに対して、規範軌跡Cx−k+1の始点が、i番目の制御周期の補正後軌跡C’i−1の目標位置P’i−1になるように、規範軌跡Cx−k+1〜Cxを並進し、その並進後の規範軌跡Cxの法線を求める。例えば、図14の(B)に示した例において、k=1として、基準判定部140は、3番目の制御周期の補正後軌跡C’2の基準となる規範軌跡Cbの始点が、2番目の制御周期の補正後軌跡C’1の目標位置P’1になるように、規範軌跡Cbを並進する。そして、基準判定部140は、その並進後の規範軌跡Cbの法線を求める。そして、基準判定部140は、求めた法線を特定する法線情報を、取得部110および範囲指定部150(さらに、撮像結果取得部160)に指示する。
範囲指定部150は、「基準判定部140の決定した規範軌跡Cxの目標位置Px」に対応する実対象の一部分を、カメラ60の撮像範囲として指定し、指定した範囲を範囲指定として画像処理装置50に出力する。画像処理装置50は、範囲指定部150から受け付けた範囲指定に従って、範囲指定で指定されている範囲(実対象の一部分)を、カメラ60に撮像させる。
なお、前述の通り、範囲指定部150はさらに、「基準判定部140の決定した規範軌跡Cx」の法線情報を、画像処理装置50に出力してもよい。より具体的には、範囲指定部150は、「Cx−k+1の始点が、補正後軌跡C’i−1の目標位置P’i−1になるように並進した規範軌跡Cx」の法線を示す情報を、画像処理装置50に出力してもよい。そして、範囲指定部150は、画像処理装置50に、「実対象の、範囲指定で指定されている範囲」から、規範軌跡Cxの法線上で特徴点を計測させてもよい。
また、範囲指定部150は、「基準判定部140の決定した規範軌跡Cx」の法線情報として、「実対象の輪郭に対して垂線を引いた場合に最も距離が短くなる線」を示す情報であってもよい。また、範囲指定部150は、画像処理装置50に、規範軌跡Cxの目標位置Pxを中心とする円領域内で検出した特定パターン等から、実対象の特徴点を測定させてもよい。
撮像結果取得部160は、画像処理装置50から、カメラ60の撮像画像の解析結果(検出結果)である特徴点情報(「実対象の、範囲指定で指定されている範囲」の形状を示す情報)を取得する。撮像結果取得部160は、画像処理装置50から、特徴点情報として、カメラ60が動作開始前(停止状態)に予め撮像しておいた撮像画像を取得してもよい。
撮像結果取得部160は、取得した「実対象の、範囲指定で指定されている範囲」の形状を示す情報、または、「実対象の、範囲指定で指定されている範囲」の撮像画像を用いて、基準判定部140によって決定された規範軌跡Cxの法線上で特徴点を計測する。そして、撮像結果取得部160は、計測した特徴点の位置座標等の情報(特徴点情報)を、補正量算出部130に出力する。
なお、前述の通り、範囲指定部150が「基準判定部140の決定した規範軌跡Cxの法線情報」を画像処理装置50に出力し、画像処理装置50に、「実対象の、範囲指定で指定されている範囲」から、規範軌跡Cxの法線上で特徴点を計測させてもよい。その場合、撮像結果取得部160は、画像処理装置50から、計測結果としての特徴点情報(画像処理装置50が計測した特徴点の位置座標等の情報)を取得し、この特徴点情報を、補正量算出部130に出力する。
出力部180は、補正後軌跡テーブル172を参照して、制御周期ごとの補正後軌跡C’i(iは0以上の整数)を順次サーボドライバ20に出力する。
(記憶部の詳細)
記憶部170は、PLC10が使用する各種データを格納する記憶装置である。記憶部170は、PLC10が実行する(1)制御プログラム、(2)OSプログラム、(3)PLC10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。記憶部170はさらに、規範軌跡テーブル171および補正後軌跡テーブル172を格納している。
規範軌跡テーブル171には、規範軌跡C(規範指令)から生成された、制御周期ごとの規範軌跡Ciが格納される。また、補正後軌跡テーブル172には、補正部120が生成した制御周期ごとの補正後軌跡C’iが格納される。
(制御装置が実行する処理の概要)
図15は、図16から図23を用いて説明するPLC10の制御処理(つまり、補正後軌跡C’iの生成処理)の前提を説明するための図である。図15の(A)に示すように、以下の説明では、規範となる軌跡(規範軌跡C)として、制御周期6周期で一周するXY平面上の円形輪郭を考える。制御周期単位の微小線分による軌跡として、指令(規範軌跡C)としては正六角形の軌跡となる。また、図15の(B)に示すように、以下の説明では、サーボモータ30(XY直行ロボット)に、制御対象であるディスペンサ40等とともに、カメラ60が取り付けられているものとする。カメラ60は、塗布軌跡の方向に対して平行に向ける、いわゆる「法線制御」を行うためのθ軸上に取り付けられる。
なお、「ディスペンサ40が固定されていて、ワークがXYテーブルで動く(サーボモータ30がディスペンサ40の代わりにワークの位置制御を行なう)」構成に対しても、PLC10を適用することができる。また、「ディスペンサ40がY軸一軸ロボット、ワークがX軸テーブルで動く」構成に対しても、PLC10を適用することができる。
カメラ60は、必ずしもディスペンサ40に取り付けられる必要はなく、例えばディスペンサ40等の機器の上方からディスペンサ40を俯瞰できるように設置されていてもよく、また、法線制御されていなくてもよい。ただし、軌跡制御の補正をする上で、少なくとも補正を行うために必要なワーク形状の画像が取得できるように、カメラ60の撮像について機器等による死角が発生しないことを担保できているものとする。死角の発生を防ぐため、複数のカメラ60を使用してもよい。また、初期状態として、(X,Y,θ)=(0,0,0)、すなわちディスペンサ40とカメラ60とは、X軸、Y軸の0位置にあり、カメラ60はX軸に沿った方向を向いている場合を想定する。
図16は、図17から図23を用いて説明するPLC10の制御処理について、規範となる軌跡(規範軌跡C)、実対象(実際のワーク)の形状、および、制御周期ごとの規範軌跡Ciおよび目標位置Pi等を説明する図である。図16の(A)および(B)において、二点鎖線で示す楕円は、実対象の形状を示している。実際の塗布等においては、実際のワークの形状に対して「のりしろとなるクリアランスを取る」等の処理が想定されるが、PLC10についての理解を容易にするため、以下の説明では、実際のワークの輪郭が補正後の軌跡(補正後軌跡C’i)となることを考える。また、図16の(A)および(B)において、一点鎖線で示している円は、規範となる軌跡(規範軌跡C)を示しており、補正後軌跡C’は、X軸方向に寸法誤差を持った楕円形状である場合を想定している。
1.準備
1.1.規範となる軌跡データの生成
PLC10についての理解を容易にするため、以下の説明においては、PLC10の実行する制御について加減速はなしとし、規範軌跡Cは、6制御周期で円形輪郭上の6点を経由する図16の(B)の六角形の軌跡とする。つまり、規範軌跡Cは、経由する6点(P0〜P5)をそれぞれ目標位置とする6つの指令系列(C0〜C5)を含む。
1.2.(動作開始前)初回、次回の補正後指令の生成
PLC10の補正部120は、規範軌跡C0、C1の各々に対する補正後軌跡C’0、C’1を、予め(つまり、PLC10の動作開始前に、言い換えれば、PLC10による制御処理の実行開始前に)生成する。
図17は、PLC10が、規範軌跡C0、C1の各々から補正後軌跡C’0、C’1の各々を生成するのに必要な特徴点を検出し、回転(傾き量)と並進(変位量)とを算出する方法の一例を示している。
図17の(A)に示すように、(1)画像処理装置50は、カメラ60が動作開始前(停止状態)に予め撮像しておいた撮像画像から、実対象の所望の一部分の形状(例えば、その所望の一部分の縁・辺)を検出し、規範軌跡C1の法線上で特徴点を計測する。そして、画像処理装置50は、検出した特徴点の位置座標等の情報(特徴点情報)を、PLC10に出力する。PLC10の撮像結果取得部160は、画像処理装置50から、この特徴点情報を取得し、取得した特徴点情報を補正量算出部130に出力する。
なお、規範軌跡C1の法線上での特徴点の計測は、撮像結果取得部160が行ってもよい。すなわち、撮像結果取得部160は、画像処理装置50から、カメラ60が動作開始前(停止状態)に予め撮像しておいた撮像画像を取得してもよい。そして、撮像結果取得部160が、この撮像画像に対して、規範軌跡C1の法線上で特徴点を検出し、検出した特徴点の位置座標等の情報(特徴点情報)を、補正量算出部130に出力してもよい。
(2)補正量算出部130は、撮像結果取得部160から取得した特徴点情報を用いて、「規範軌跡C0の始点と規範軌跡C1の終点とを結ぶ線」と、「開始位置(初期位置)と検出された特徴点とを結ぶ線」とに対して、回転(傾き量)と並進(変位量)とを求める。すなわち、補正量算出部130は、規範軌跡C0の始点を、開始位置(初期位置)へと移動させる量である「並進量(変位量)」を算出する。また、補正量算出部130は、「規範軌跡C0の始点と規範軌跡C1の終点とを結ぶ線」を、「開始位置(初期位置)と検出された特徴点とを結ぶ線」に対して平行にさせるのに必要な「回転量(傾き量)」を算出する(図17の(B))。なお、PLC10の理解を容易にするため、図17の(B)に示す例においては、開始位置(初期位置)について、規範軌跡C0の始点からの並進は無いものとしている。
そして、補正量算出部130は、算出した回転(傾き量)と並進(変位量)とを、補正部120に通知する。
図18は、PLC10が、算出された回転(傾き量)と並進(変位量)とを用いて、規範軌跡C0、C1の各々から、補正後軌跡C’0、C’1の各々を生成する方法の一例を示している。図18に示すように、(3)補正部120は、補正量算出部130が求めた回転と並進とにより、規範軌跡C0、C1の各々を変換した補正後軌跡C’0、C’1の各々を生成し、生成した補正後軌跡C’0、C’1の各々を、補正後軌跡テーブル172に格納する。
2.補正後指令C’0から動作を開始
すなわち、出力部180は、補正後軌跡テーブル172に格納されている補正後軌跡C’0、C’1の各々を、サーボドライバ20に出力して、サーボドライバ20に、補正後軌跡C’0、C’1を実現する制御処理を実行させる。
3.補正後指令C’0の動作終了時に、補正後指令C’2を生成
PLC10の補正部120は、補正後軌跡C’0の動作終了時点において、以下の「3.1.」から「3.3.」までの処理を実行して、補正後軌跡C’2の生成を行う。補正部120は、i番目の制御周期の目標位置Pi−1にディスペンサ40が到達した時点で、i番目の制御周期からm周期先の制御周期の補正後軌跡C’i+m−1を生成する。以下の説明では、i=1、m=2(k=1)とする場合である。なお、「補正後軌跡C’0の動作終了時点」とは、「補正後軌跡C’1の動作開始時点」であり、言い換えれば、「ディスペンサ40が、補正後軌跡C’0の終点であるP’0に位置した時点」である。
図19は、PLC10が、補正後軌跡C’2の基礎となる規範軌跡Cxを選択する方法、および、補正後軌跡C’2を生成するための特徴点の検出方法の一例を説明する図である。図20は、PLC10が、補正後軌跡C’2を生成するための回転(傾き量)と並進(変位量)とを算出する方法、および、算出した回転と並進とにより補正後軌跡C’2を生成する方法の一例を説明する図である。
3.1.基準(参照元)となる規範軌跡Cxの選択判定
PLC10の基準判定部140は、補正後軌跡テーブル172に格納されている補正後軌跡C’1の到達位置P’1と、その元となった規範軌跡C1の到達位置(目標位置)P1との関係から、どの規範軌跡Cxを元に、m周期先の補正後軌跡C’2を生成するかを決定する。
基準判定部140は、制御対象が現在位置に到達した制御周期からm周期先の制御周期の補正後軌跡C’i+m−1の基礎となる規範軌跡Cxを、以下のように決定する。すなわち、基準判定部140は、規範軌跡Cxを、「前回生成した補正後軌跡C’i−k+1の目標位置P’i−k+1」と、「前回生成した補正後軌跡C’i−k+1の基準となった規範軌跡Cyの目標位置Py」と、を用いて決定する。例えば、基準判定部140は、遅くとも「i番目の制御周期の目標位置Pi−1にディスペンサ40が到達した時点」で、i番目の制御周期からm周期先の制御周期の補正後軌跡C’i+m−1の基礎となる規範軌跡Cxを、以下のように決定する。すなわち、基準判定部140は、補正後軌跡C’i+m−1の基礎となる規範軌跡Cxを、i番目の制御周期からk周期先の制御周期の補正後軌跡C’i+k−1を用いて、決定する。
基準判定部140は、(1)「補正後軌跡C’1の目標位置P’1」から、「補正後軌跡C’1の基準となった規範軌跡C1の目標位置P1」へのベクトルLを求める(図19の(A))。
基準判定部140は、(2)「Lの向き」から、補正後軌跡による目標位置P’1が、本来の指令位置(目標位置)P1に対して、「達していない(遅れ)」か、あるいは「超えている(進み)」か、を判定する。基準判定部140は、(3)「Lの向き」による補正後軌跡の遅れ/進み判定に加えて、「Lの長さ」から次に参照する規範軌跡を決定する。
基準判定部140は、「ベクトルLの長さが、規範軌跡C1の長さの半分以下」である場合、補正後軌跡C’2の元指令(基礎となる指令)として、規範軌跡C2を選択する。基準判定部140は、「ベクトルLの長さが、規範軌跡C1の長さの半分よりも長い」かつ「目標位置P’1が、目標位置P1に達していない(遅れている)」場合、補正後軌跡C’2の元指令として、規範軌跡C1を選択する。基準判定部140は、「ベクトルLの長さが、規範軌跡C1の長さの半分よりも長い」かつ「目標位置P’1が、目標位置P1を超えている(進んでいる)」場合、補正後軌跡C’2の元指令として、規範軌跡C1の二つ次の規範軌跡C3を選択する。
図19の(A)に示す例では、Lは本来のP1に対して遅れており、Lの長さが「規範軌跡C1の長さの半分以下」となるため、基準判定部140は、補正後軌跡C’2の元指令として、規範軌跡C2を選択する。
3.2.撮像トリガ
前述の通り、範囲指定部150は、画像計測手段(画像処理装置50)に対して、範囲指定と共に、補正後軌跡C’2を生成するための特徴点の撮像処理および検出処理のトリガを与える。そして、PLC10の撮像結果取得部160は、特徴点情報として、例えば、実対象の「範囲指定で指定されている範囲」の形状を示す情報(例えば、その範囲の縁・辺を構成する曲線等を示す情報など)を取得する。
また、範囲指定部150は、「3.1.」において決定した基準となる規範軌跡に関する法線情報を、画像処理装置50に与えてもよい。その後、範囲指定部150は、画像処理装置50に、範囲指定と共に、撮像、検出、および計測のトリガを与える。
そして、PLC10の撮像結果取得部160は、特徴点情報として、例えば、実対象の「範囲指定で指定されている範囲」の形状を示す情報と法線情報とを用いて計測された、法線上の特徴点の計測結果を取得してもよい。例えば、撮像結果取得部160は、実対象の「範囲指定で指定されている範囲」の縁・辺を構成する曲線と法線情報に示された法線との交点の座標等を、特徴点情報として取得してもよい。
3.3.補正後指令C’2の生成
補正部120は、「1.2.」と同様の手法により、元となる規範軌跡C2から補正後軌跡C’2を生成する。すなわち、(1)補正量算出部130は、補正後軌跡C’2の生成元となる規範軌跡C2を目標位置P’1に接続し(つまり、規範軌跡C2の始点を目標位置P’1になるように並進する)、その並進後の規範軌跡C2の法線上で特徴点を検出する(図19の(B))。
(2)補正量算出部130は、「規範軌跡C2」と「目標位置P’1と検出された特徴点とを結ぶ線」とに対して、改めて回転(傾き量)と並進(変位量)とを求める(図20の(A))。補正量算出部130は、求めた回転(傾き量)と並進(変位量)とを、補正部120に通知する。そして、(3)補正部120は、補正量算出部130が求めた回転と並進により、規範軌跡C2を変換した補正後軌跡C’2を生成する(図20の(B))。
4.補正後指令C’1の動作終了時に、補正後指令C’3を生成
補正部120は、補正後指令C’1の動作終了時点(つまり、補正後指令C’2の動作開始時点であって、ディスペンサ40がP’1に位置した時点)に、補正後指令C’3の生成を行う。
図21は、PLC10が、補正後軌跡C’3およびC’4を生成する方法の一例を説明する図である。また、図22は、PLC10が、補正後軌跡C’5およびC’6を生成する方法の一例を説明する図である。図21および図22に示すように、PLC10は、以降、「3.」の処理を繰り返し、規範軌跡C3、C4、C5の各々を元に、補正後軌跡C’3、C’4、C’5を生成する。
ここで、補正後軌跡C’5の生成時点で、P5と目標位置P’5との間の距離が「規範軌跡C5の長さの半分」を超える長さとなるため、基準判定部140は、次の補正後軌跡C’6の基礎となる規範軌跡として、規範軌跡C5を選択する。補正部120は、基準判定部140が選択した規範軌跡C5を元に、補正後軌跡C’6を生成する。
すなわち、補正量算出部130は、「3.3.(1)」において示した手順で、規範軌跡C5を目標位置P’5に接続したベクトルの法線上で特徴点を検出する。また、補正量算出部130は、「3.3.(1)」において示した手順で、回転(傾き量)と並進(変位量)とを求める(図22の(B))。そして、補正部120は、補正量算出部130が求めた回転と並進により、規範軌跡C5を変換した補正後軌跡C’6を生成する。
図23は、規範軌跡C0〜C5と、PLC10が生成した補正後軌跡C’0〜C’6と、を対比して示す図である。図23に示すように、最終的に、PLC10は、目標位置P0〜P5の5点を通る規範軌跡C0〜C5の軌跡指令に対して、実際のワークとの差を検出することで、目標位置P’0〜P’6の6点を通る補正後軌跡C’0〜C’6が生成する。
以上までに説明したように、PLC10が実行する制御方法は、ワークの表面に沿って移動させるディスペンサ40(制御対象)についての規範指令C(目標軌跡)を、前記ワークの撮像結果(具体的には、特徴点情報)を用いて補正した補正後軌跡C’を生成する制御装置の制御方法であって、制御周期ごとの規範軌跡Ci(制御周期ごとの目標軌跡)を取得する取得ステップ(S402等)と、制御周期ごとの補正後軌跡C’iの長さを、制御周期ごとの規範軌跡Ciの長さに略一致させて、制御周期ごとの規範軌跡Ciから、制御周期ごとの補正後軌跡C’iを生成する補正ステップ(S109等)と、を含んでいる。
前記の方法によれば、前記制御方法は、規範指令Cを、前記ワークの撮像結果を用いて補正した補正後軌跡C’を生成し、制御周期ごとの補正後軌跡C’iの長さは、制御周期ごとの規範軌跡Ciの長さに略一致する。
したがって、前記制御方法は、ワークの表面に沿って移動させるディスペンサ40についての規範指令Cを、前記ワークの撮像結果を用いて補正するとともに、ディスペンサ40の制御周期ごとの移動量を一定に維持することのできるとの効果を奏する。
§4.変形例
(制御装置について)
これまでに説明してきた実施形態においては、本発明に係る制御装置(コントローラ)として、PLC10等のシーケンス制御装置であるIEC(International Electrotechnical Commission)コントローラについて説明を行なってきた。しかしながら、本発明に係る制御装置は、IECコントローラに限られることなく、各種の制御装置へ適用可能である。例えば、本発明に係る制御装置は、数値制御装置であるNC(Numerical Control)コントローラであってもよい。
(規範指令について)
PLC10は、全ての制御周期ごとの規範指令Ci(つまり、規範軌跡C)を、規範軌跡テーブル171に予め格納しておく必要はない。例えば、PLC10は、規範軌跡テーブル171を一定サイズのバッファとして、外部の記憶装置などから、制御周期ごとの規範指令Ciを都度読出しながら、読み出した制御周期ごとの規範指令Ciを補正して、制御周期ごとの補正後指令C’iを生成してもよい。
〔ソフトウェアによる実現例〕
PLC10の制御ブロック(特に、取得部110、補正部120、補正量算出部130、基準判定部140、範囲指定部150、撮像結果取得部160、および、出力部180)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、PLC10は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
10 PLC(制御装置)
40 ディスペンサ(制御対象)
110 取得部
120 補正部(生成部)
140 基準判定部(選択部)
160 撮像結果取得部(結果取得部)
C 規範軌跡(目標軌跡)
Ci 制御周期ごとの規範軌跡(制御周期ごとの目標軌跡)
C’ 補正後軌跡
C’i 制御周期ごとの補正後軌跡

Claims (9)

  1. ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置であって、
    制御周期ごとの前記目標軌跡を取得する取得部と、
    前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成部と、
    を備えることを特徴とする制御装置。
  2. i、jの各々を1以上の整数として、
    i番目の前期制御周期の前期補正後軌跡がj番目の前期制御周期の前期目標軌跡から生成されている場合、i+1番目の前記制御周期の前記補正後軌跡に対応する前記目標軌跡として、j+1番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、1つ選択する選択部をさらに備え、
    前記生成部は、前記選択部により選択された前記制御周期の前記目標軌跡から、i+1番目の前記制御周期の前記補正後軌跡を生成する
    ことを特徴とする請求項1に記載の制御装置。
  3. iを1以上の整数として、
    前記制御周期のk倍が前記撮像結果の生成から取得に要する時間よりも大きくなる整数kについて、
    遅くとも、前記制御対象がi番目の制御周期の前記補正後軌跡の目標位置に達した時点で、i+2k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を、前記制御周期のk倍の周期で繰り返し開始する結果取得部をさらに備え、
    前記生成部は、前記結果取得部が取得した前期撮像結果を用いて、i+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡を生成する
    ことを特徴とする請求項1または2に記載の制御装置。
  4. 前記生成部は、予め、1番目から2k番目までの各々の前記制御周期の前記補正後軌跡を生成しておき、
    前記結果取得部は、遅くとも、前記制御対象がk番目の制御周期の前記補正後軌跡の目標位置に達した時点で、3k番目の制御周期の前記補正後軌跡の目標位置に対応する前期撮像結果の取得を開始する
    ことを特徴とする請求項3に記載の制御装置。
  5. 前記選択部は、
    前記生成部が前記制御周期のk倍の周期で繰り返し生成したi+k+1番目からi+2k番目までの各々の制御周期の前記補正後軌跡のうち、i+2k番目の制御周期の前記補正後軌跡を用いて、
    i+3k番目の制御周期の前記補正後軌跡に対応する前記目標軌跡を、j+3k番目の前記制御周期、および、その前後の前記制御周期の前記目標軌跡の中から、1つ選択する
    ことを特徴とする請求項2に記載の制御装置。
  6. 前記生成部は、前記結果取得部により取得された前記撮像結果を用いて、連続するk個の前記制御周期の各々に対応する前記目標軌跡を示すベクトルについて、回転および平行移動の少なくとも一方を実行することにより、連続するk個の前記制御周期の各々に対応する前記補正後軌跡を示すベクトルを、前記制御周期のk倍の周期で繰り返し生成する
    ことを特徴とする請求項3または4に記載の制御装置。
  7. ワークの表面に沿って移動させる制御対象についての目標軌跡を、前記ワークの撮像結果を用いて補正した補正後軌跡を生成する制御装置の制御方法であって、
    制御周期ごとの前記目標軌跡を取得する取得ステップと、
    前記制御周期ごとの前記補正後軌跡の長さを、前記制御周期ごとの前記目標軌跡の長さに略一致させて、前記制御周期ごとの前記目標軌跡から、前記制御周期ごとの前記補正後軌跡を生成する生成ステップと、
    を含むことを特徴とする制御方法。
  8. 請求項1から6のいずれか1項に記載の制御装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  9. 請求項8に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2017191340A 2017-09-29 2017-09-29 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体 Active JP7031204B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017191340A JP7031204B2 (ja) 2017-09-29 2017-09-29 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
EP18176519.9A EP3462258B1 (en) 2017-09-29 2018-06-07 Control device with corresponding method and recording medium to generate a corrected path
CN201810601818.7A CN109581964B (zh) 2017-09-29 2018-06-08 控制装置、控制装置的控制方法以及记录媒体
US16/005,685 US10845776B2 (en) 2017-09-29 2018-06-12 Control device, control method of control device, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017191340A JP7031204B2 (ja) 2017-09-29 2017-09-29 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2019067098A true JP2019067098A (ja) 2019-04-25
JP7031204B2 JP7031204B2 (ja) 2022-03-08

Family

ID=62748687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017191340A Active JP7031204B2 (ja) 2017-09-29 2017-09-29 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体

Country Status (4)

Country Link
US (1) US10845776B2 (ja)
EP (1) EP3462258B1 (ja)
JP (1) JP7031204B2 (ja)
CN (1) CN109581964B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253261A (zh) * 2021-12-08 2022-03-29 广州极飞科技股份有限公司 路径生成方法、作业控制方法及相关装置
US11662709B2 (en) 2020-06-16 2023-05-30 Fulian Yuzhan Precision Technology Co., Ltd Device, method and non-transitory storage medium for controlling cutting tool

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7120512B2 (ja) * 2019-11-22 2022-08-17 Smc株式会社 軌跡制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6037273A (ja) * 1983-04-19 1985-02-26 ユニメイシヨン インコーポレーテツド マニピユレータ型溶接装置
JPH0194403A (ja) * 1987-10-06 1989-04-13 Shinko Electric Co Ltd ロボットのサーボ制御方法
JPH06324733A (ja) * 1993-05-12 1994-11-25 Fanuc Ltd センサ付きロボットの制御方法及び装置
JP2002355605A (ja) * 2001-05-29 2002-12-10 Kanto Auto Works Ltd 自動車用ウインドウのウレタン塗布方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380696A (en) * 1980-11-12 1983-04-19 Unimation, Inc. Method and apparatus for manipulator welding apparatus with vision correction for workpiece sensing
JP5562430B2 (ja) * 2010-10-26 2014-07-30 株式会社牧野フライス製作所 工具経路の生成方法および生成装置
JP5849403B2 (ja) * 2011-02-15 2016-01-27 セイコーエプソン株式会社 ロボットコントローラー、ロボット、及び、ロボットシステム
DE102011006447A1 (de) * 2011-03-30 2012-10-04 Trumpf Laser- Und Systemtechnik Gmbh Verfahren zum Bearbeiten von Werkstücken mittels einer numerisch gesteuerten Werkstückbearbeitungsvorrichtung sowie Werkstückbearbeitungsvorrichtung
WO2014192137A1 (ja) * 2013-05-31 2014-12-04 トヨタ自動車株式会社 移動軌跡予測装置及び移動軌跡予測方法
US10277417B2 (en) * 2014-03-04 2019-04-30 Omron Corporation Control system, control apparatus and control method with input-only communication frame
CN105277121A (zh) * 2014-06-23 2016-01-27 日产螺丝股份有限公司 螺纹尺寸自动测定系统
JP6443312B2 (ja) * 2015-09-28 2018-12-26 オムロン株式会社 管理システム
JP6606442B2 (ja) * 2016-02-24 2019-11-13 本田技研工業株式会社 移動体の経路計画生成装置
JP6504081B2 (ja) * 2016-02-26 2019-04-24 オムロン株式会社 制御装置、制御プログラムおよび記録媒体
US10556347B2 (en) * 2016-11-01 2020-02-11 Brachium, Inc. Vision guided robot path programming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6037273A (ja) * 1983-04-19 1985-02-26 ユニメイシヨン インコーポレーテツド マニピユレータ型溶接装置
JPH0194403A (ja) * 1987-10-06 1989-04-13 Shinko Electric Co Ltd ロボットのサーボ制御方法
JPH06324733A (ja) * 1993-05-12 1994-11-25 Fanuc Ltd センサ付きロボットの制御方法及び装置
JP2002355605A (ja) * 2001-05-29 2002-12-10 Kanto Auto Works Ltd 自動車用ウインドウのウレタン塗布方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11662709B2 (en) 2020-06-16 2023-05-30 Fulian Yuzhan Precision Technology Co., Ltd Device, method and non-transitory storage medium for controlling cutting tool
CN114253261A (zh) * 2021-12-08 2022-03-29 广州极飞科技股份有限公司 路径生成方法、作业控制方法及相关装置
CN114253261B (zh) * 2021-12-08 2023-04-07 广州极飞科技股份有限公司 路径生成方法、作业控制方法及相关装置

Also Published As

Publication number Publication date
EP3462258A1 (en) 2019-04-03
CN109581964B (zh) 2021-08-03
US10845776B2 (en) 2020-11-24
US20190101883A1 (en) 2019-04-04
JP7031204B2 (ja) 2022-03-08
EP3462258B1 (en) 2021-09-22
CN109581964A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
US11254006B2 (en) Robot device
TWI604287B (zh) 用於控制加工機之操作的方法及控制系統,以及加工機
EP0323277A2 (en) Parametric path modeling for an optical automatic seam tracker and real time robotic control system
JPH02243284A (ja) 自動シーム追跡方法及び装置
JP2019067098A (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
JP3988588B2 (ja) 三次元測定装置
CN109421047A (zh) 机器人系统
CN110545949B (zh) 三维激光加工机及三维激光加工机的控制方法
EP3345729B1 (en) Robot system with camera
JP5573275B2 (ja) 特徴点抽出装置及びこれを用いた動作教示装置、動作処理装置
US8473092B2 (en) Complete round working method and complete round working device in NC machine tool
US20190137975A1 (en) Numerical control apparatus
JPH07129217A (ja) レーザセンサを用いたロボット制御方法
KR101722916B1 (ko) 레이저 스캐너 기반 5축 표면 연속 가공 장치 및 그 제어 방법
JP7078895B2 (ja) 制御システム、制御装置、画像処理装置およびプログラム
JP6105548B2 (ja) 干渉回避位置決め機能を備えた数値制御装置
JP6892462B2 (ja) 機械制御装置
US11400588B2 (en) Robot control apparatus and robot control system
JP6254965B2 (ja) スカイビング加工における工具補正機能を有する数値制御装置
JP7059968B2 (ja) 制御装置および位置合わせ装置
JP7172151B2 (ja) 制御システム、制御装置およびプログラム
JP6892461B2 (ja) 機械制御装置
US20230321835A1 (en) Method and apparatus for tuning robot system
JP7258259B1 (ja) アライメントシステム、アライメント方法及びプログラム
JP7360824B2 (ja) ロボット制御装置、及びロボット制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210824

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220207

R150 Certificate of patent or registration of utility model

Ref document number: 7031204

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150