(57)【要約】【課題】補正値の演算処理や慣性抵抗に起因する補正制御の遅れを軽減してエンドエフェクタの位置調整を高速で行なうことのできるトラッキング制御装置を提供する。【解決手段】教示経路と実経路との偏差をそのまま補正値として利用して溶接ガン１０の位置を実経路に合わせることで溶接ガン１０の位置調整のための複雑な演算処理を排除し、演算処理の遅延に伴う補正制御の遅れを軽減する（ステップｂ１１，ステップｂ１６）。産業用ロボット３全体に対して補正操作を行うことなく、駆動部２８で溶接ガン１０のみを駆動して補正動作を行なわせることで、最小限度の慣性抵抗で素早く溶接ガン１０の位置を調整し、慣性抵抗に起因する補正制御の遅れを軽減する。【選択図】        図１０
2004160578.tif 000002
【特許請求の範囲】
【請求項１】
産業用ロボットを駆動制御し教示経路に沿ってロボットアーム先端のエンドエフェクタを移動させるロボット制御装置に配備されるトラッキング制御装置であって、
前記産業用ロボットの再生動作に際して前記教示経路と実経路との偏差を検出する相対偏差検出手段と、
前記相対偏差検出手段によって検出された偏差を補正値として前記エンドエフェクタの位置を前記実経路に合わせて調整するエンドエフェクタ位置調整手段と、
前記相対偏差検出手段によって検出される偏差を所定周期毎にサンプリングするサンプリング手段と、
該サンプリング手段によってサンプリングされた偏差と予め設定された許容偏差との大小関係を比較するサンプリング偏差判定手段と、
前記サンプリング偏差判定手段によって前記偏差が許容偏差の範囲内にあると判定された場合には、このサンプリング周期でサンプリングされた偏差を補正値とする一方、前記サンプリング偏差判定手段によって前記偏差が許容偏差の範囲を越えたと判定された場合には、前記サンプリング手段によってサンプリングされた偏差が前記許容偏差の範囲を越える直前のサンプリング周期でサンプリングされた偏差を補正値として保持する補正値更新手段とを備えたことを特徴とするトラッキング制御装置。
【請求項２】
前記サンプリング偏差判定手段は、前記教示経路の補間形式に応じ、補間形式が直線補間である場合には予め設定された許容偏差のうち値の小さな許容偏差を選択する一方、補間形式が円弧補間である場合には値の大きな許容偏差を選択して、前記サンプリングされた偏差と許容偏差との大小関係を比較するように構成されていることを特徴とする請求項１記載のトラッキング制御装置。
【請求項３】
前記サンプリング偏差判定手段は、前記教示経路の各区間に応じ、予め前記各区間毎に設定された許容偏差を選択して、前記サンプリングされた偏差と許容偏差との大小関係を比較するように構成されていることを特徴とする請求項１記載のトラッキング制御装置。
【請求項４】
前記許容偏差が、前記教示経路を基準として、該教示経路に直交する２つの方向に個別に設定されるように構成されていることを特徴とする請求項３記載のトラッキング制御装置。
【請求項５】
前記サンプリング手段によってサンプリングされる偏差が前記許容偏差の範囲を越えている間のサンプリング回数を数える計数手段と、この計数手段による計数値が予め設定された異常検出許容回数を越えた段階で異常検出信号を出力する異常検出手段とを備えたことを特徴とする請求項１ないし請求項４の何れか一項に記載のトラッキング制御装置。
【請求項６】
前記異常検出手段は、異常の種別に応じた複数の異常検出許容回数を記憶する許容回数記憶手段を有し、前記計数手段による計数値に応じた異常検出信号を出力するように構成されていることを特徴とする請求項５記載のトラッキング制御装置。
【請求項７】
前記異常検出信号の１つが、前記ロボット制御装置に対する停止指令によって構成されていることを特徴とする請求項６記載のトラッキング制御装置。
【請求項８】
前記エンドエフェクタ位置調整手段は、前記補正値更新手段が保持する補正値にオフセット量を加えて前記エンドエフェクタの位置を調整するオフセット調整機能を備えていることを特徴とする請求項１ないし請求項７の何れか一項に記載のトラッキング制御装置。
【請求項９】
前記エンドエフェクタ位置調整手段における駆動部と前記相対偏差検出手段におけるセンサ部とが、前記ロボットアーム先端と前記エンドエフェクタとを接続するアタッチメントに設けられていることを特徴とする請求項１ないし請求項８の何れか一項に記載のトラッキング制御装置。
【請求項１０】
前記エンドエフェクタ位置調整手段における制御部と前記相対偏差検出手段における制御部と前記サンプリング手段と前記サンプリング偏差判定手段と前記補正値更新手段とが、前記ロボット制御装置と独立してトラッキング制御装置の筐体に配備されていることを特徴とする請求項９記載のトラッキング制御装置。
【請求項１１】
前記ロボット制御装置と前記トラッキング制御装置の筐体とがデータ通信可能に接続され、前記ロボット制御装置からトラッキング制御装置の側には、少なくとも、前記教示経路の補間形式と教示経路の区間に関する情報が転送され、前記トラッキング制御装置からロボット制御装置の側には、少なくとも、停止指令によって構成される異常検出信号が転送されるように構成されていることを特徴とする請求項１０記載のトラッキング制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、教示経路に沿って駆動制御される産業用ロボットのアーム先端に取り付けられたエンドエフェクタの移動経路を実経路の状況に合わせて適正化するトラッキング制御装置の改良に関する。
【０００２】
【従来の技術】
産業用ロボットのアーム先端に溶接ガンやハンドリングツール等のエンドエフェクタを装着して様々な作業を自動化するロボットシステムが公知である。
【０００３】
この種のロボットシステムでは、ロボット制御装置に配備された教示操作盤等を利用して産業用ロボットのアーム先端をマニュアル操作で移動させながらエンドエフェクタを目標位置に位置決めしてロボット制御装置に移動経路上の要所要所の位置を記憶させる教示操作を行なうことによってロボットの駆動制御プログラムを作成し、この駆動制御プログラムをロボット制御装置により再生させることでロボットアーム先端のエンドエフェクタを所望する移動経路に沿って繰り返し移動させるのが一般的である。
【０００４】
しかしながら、形状誤差を始めとするワークの個体差やセッティングの際の微妙な位置ズレあるいは姿勢の違い等により、教示操作を行なった時の環境と実際に再生動作を行なう時の環境との間に差異が生じる場合があるため、適切な教示動作を行なったとしても、必ずしもエンドエフェクタがワークとの相対関係において適切な運動を行なうとは限らない。
【０００５】
このため、産業用ロボットの再生動作に際しては、駆動制御プログラムに従ってロボットアームを移動させながら教示経路と実経路との偏差を検出し、この偏差を解消するような補正制御を行なうのが普通である。
【０００６】
この種の従来技術としては、例えば、特許文献１に開示されるように、実経路である溶接線の位置やギャップを計測して補正値を求め、この補正値に基いて溶接ロボットをフィードバック制御するようにした「溶接ロボットの制御方法」が提案されている。
【０００７】
また、溶接線上の仮付け部をセンサが外乱として検出することによって生じる補正異常を防止するための「溶接ロボットの制御方法」としては、仮付け部の前後を特徴点として教示することで再生動作に反映させるものが特許文献２として開示されている。
【０００８】
【特許文献１】
特開平７−８０６４３号公報
【特許文献２】
特開平７−１６７４８号公報
【０００９】
【発明が解決しようとする課題】
しかし、特許文献１に開示されるような従来の補正制御では、溶接線の位置やギャップの計測および補正値の演算に際して複雑な演算処理を行う必要があり、また、産業用ロボット全体を動かしてロボットアーム先端のエンドエフェクタの位置を補正する必要上、サーボモータ等に作用する慣性抵抗が大きくなり、補正制御に応答の遅れが生じる場合があった。
また、ワーク上の傷や凹凸あるいは汚れ等をセンサが検知した場合には、誤ったデータに基いて演算処理が行なわれ、適切な補正制御が行なわれなくなるといった可能性もある。
【００１０】
一方、特許文献２に開示されるような従来の補正制御を適用した場合には、溶接線上の仮付け部を外乱として検出することで生じる演算処理のミスを解消できる可能性があるが、同じ教示データを繰り返し使用してロボットに適切な再生動作を行なわせるためには、各ワーク毎の仮付け作業を同じ条件で適切に行なって仮付け部の教示点自体を全てのワークに共通化させる必要があり、仮付け作業の段取りが煩雑化する弊害がある。
【００１１】
【発明の目的】
そこで、本発明の目的は、補正値の演算処理や慣性抵抗に起因する補正制御の遅れを軽減し、また、センサに対して外乱として作用する可能性のある仮付け部等が実経路上にあった場合でも、複雑な教示作業を行うことなくエンドエフェクタの移動経路を適正化することのできるトラッキング制御装置を提供することにある。
【００１２】
【課題を解決するための手段】
図１は、本発明が前記目的を達成するために採用した手段の概略について示したブロック図であり、本発明は、
産業用ロボットの再生動作に際して教示経路と実経路との偏差を検出する相対偏差検出手段（Ａ）と、
相対偏差検出手段（Ａ）によって検出された偏差を補正値としてエンドエフェクタの位置を実経路に合わせて調整するエンドエフェクタ位置調整手段（Ｂ）と、
相対偏差検出手段（Ａ）によって検出される偏差を所定周期毎にサンプリングするサンプリング手段（Ｃ）と、
サンプリング手段（Ｃ）によってサンプリングされた偏差と予め設定された許容偏差との大小関係を比較するサンプリング偏差判定手段（Ｄ）と、
サンプリング偏差判定手段（Ｄ）によって偏差が許容偏差の範囲内にあると判定された場合には、このサンプリング周期でサンプリングされた偏差を補正値とする一方、サンプリング偏差判定手段（Ｄ）によって偏差が許容偏差の範囲を越えたと判定された場合には、サンプリング手段（Ｃ）によってサンプリングされた偏差が許容偏差の範囲を越える直前のサンプリング周期でサンプリングされた偏差を補正値として保持する補正値更新手段（Ｅ）とを備えたことを特徴とする構成を有する。
【００１３】
以上の構成により、産業用ロボットの再生動作における実経路と教示経路との間の偏差を相対偏差検出手段（Ａ）が検出し、サンプリング手段（Ｃ）が当該偏差を所定周期毎にサンプリングする。また、サンプリング偏差判定手段（Ｄ）は、サンプリング手段（Ｃ）によってサンプリングされた偏差と予め設定された許容偏差との大小関係を比較する。
そして、この偏差が許容偏差の範囲内にあると判定された場合には、補正値更新手段（Ｅ）が、このサンプリング周期でサンプリングされた偏差を補正値として更新記憶する一方、当該サンプリング周期でサンプリングされた偏差が許容偏差の範囲を越えたと判定された場合には、補正値更新手段（Ｅ）は、許容偏差の範囲を越える直前のサンプリング周期でサンプリングされた偏差を補正値として保持する。
従って、実経路と教示経路との間の偏差が許容偏差の範囲内にある限りは相対偏差検出手段（Ａ）で検出された偏差が其のまま補正値としてエンドエフェクタ位置調整手段（Ｂ）に渡され、また、実経路と教示経路との偏差が許容偏差の範囲を越えた場合には、許容偏差の範囲を越える直前のサンプリング周期でサンプリングされた偏差が補正値として補正値更新手段（Ｅ）からエンドエフェクタ位置調整手段（Ｂ）に渡されることになる。
これを受けたエンドエフェクタ位置調整手段（Ｂ）は、補正値更新手段（Ｅ）から渡された補正値に基いて、エンドエフェクタ（Ｆ）の位置を実経路に合わせて調整する。
この補正値は実経路と教示経路との間に生じている偏差であるから、ロボット制御装置（Ｇ）による再生動作を行なわせてロボット本体（Ｈ）のロボットアーム（Ｉ）を教示経路に沿って移動させつつ、同時に、エンドエフェクタ位置調整手段（Ｂ）によって当該偏差を解消する方向にエンドエフェクタ（Ｆ）の位置を調整すれば、エンドエフェクタ（Ｆ）を実経路に沿って移動させることができる。
このように、相対偏差検出手段（Ａ）で検出された偏差を其のままエンドエフェクタ（Ｆ）の位置調整のための補正値として利用しているので、複雑な演算処理を行う必要がなく、演算処理の遅延に伴う補正制御の遅れが軽減される。
また、相対偏差検出手段（Ａ）が実経路上の仮付け部のエッジやワークの傷または凹凸あるいは汚れ等を検出することにより、本来は存在しない筈の過大な偏差を出力した場合には、許容偏差の範囲を越える直前のサンプリング周期でサンプリングされた偏差、つまり、外乱が作用する前の正常な状態で検出された偏差が補正値として引き続き利用されるので、相対偏差検出手段（Ａ）によって検出される外乱に惑わされることなく、エンドエフェクタ（Ｆ）の移動経路を適正化することができる。
一般に、実経路上の仮付け部やワークの傷または凹凸あるいは汚れ等は、広い範囲に亘って連続的に存在するものではないので、エンドエフェクタ（Ｆ）が仮付け部やワークの傷等を通過するまでの間、実質的な偏差の検出処理を中止し、外乱が作用する以前の正常な状態で検出された最後の偏差を補正値として継続的に利用しても、エンドエフェクタ（Ｆ）の移動経路が実経路から逸脱するような問題は発生しない。
従って、必ずしも、外乱となる可能性のある仮付け部等の位置を教示操作の段階でロボットの駆動制御プログラム中に定義しておく必要はなく、教示操作の簡便化が可能である。また、ワーク毎に仮付け部等の位置に相違があるような場合であっても、この相違を吸収してエンドエフェクタ（Ｆ）の移動経路を適正化することが可能であるので、仮付け作業の精密化のための段取りの煩雑化も不要である。
更に、エンドエフェクタ位置調整手段（Ｂ）はエンドエフェクタ（Ｆ）の位置のみを調整すればよいので、ロボットアーム（Ｉ）やロボット本体（Ｈ）を全体的に動作させることによってエンドエフェクタ（Ｆ）の位置を調整していた従来の技術とは違い、最小限度の慣性抵抗で素早くエンドエフェクタ（Ｆ）を移動させることができ、慣性抵抗に起因する補正制御の遅れも軽減される。
【００１４】
ここで、サンプリング偏差判定手段（Ｄ）は、教示経路の補間形式に応じ、補間形式が直線補間である場合には予め設定された許容偏差のうち値の小さな許容偏差（Ｔｒ１）を選択する一方、補間形式が円弧補間である場合には値の大きな許容偏差（Ｔｒ２）を選択してサンプリング手段（Ｃ）でサンプリングされた偏差と許容偏差との大小関係を比較することが望ましい。
【００１５】
ロボットアーム（Ｉ）の先端に対するエンドエフェクタ（Ｆ）の取り付け構造やロボットアーム（Ｉ）の先端に対する相対偏差検出手段（Ａ）のセンサ部（ａ１）の取り付け構造によっては、例えば、図２に示されるように、センサ部（ａ１）とエンドエフェクタ（Ｆ）が移動方向に対して前後にオフセットされた状態で装着される場合がある。
通常、このような構成を採用する場合には、センサ部（ａ１）が教示経路上で常に進行方向前方に位置し、また、エンドエフェクタ（Ｆ）が常に進行方向後方に位置するようにロボットアーム（Ｉ）のリストの回転が適応制御されるが、例えば、図３に例示されるように直線と円弧との組み合わせによる教示経路に沿ってロボットアーム（Ｉ）の先端が移動するような場合においては、直線部での移動に際してはセンサ部（ａ１）とエンドエフェクタ（Ｆ）の移動経路が完全に一致するが、円弧部では、エンドエフェクタ（Ｆ）の移動経路自体が適切であっても、センサ部（ａ１）が移動経路から僅かに外側に逸脱する現象が生じる。この逸脱現象の発生原因は本質的には自動車における内輪差や外輪差の影響と同様である。
このような場合、補間形式が直線補間である場合と円弧補間である場合とで同じ許容偏差を適用して仮付け部のエッジやワークの傷等の外乱の有無をサンプリング偏差判定手段（Ｄ）で判定すると、適切な判定結果が得られなくなる恐れがある。つまり、直線補間部に適した許容偏差を適用して円弧補間部での異常判定を行なうと、エンドエフェクタ（Ｆ）が経路に沿って適切に移動しているにも関わらず外乱が作用していると判定される場合があり、また、これとは逆に、円弧補間部に適した許容偏差を適用して直線補間部での異常判定を行なうと、センサ部（ａ１）が外乱の影響を受けているにも関わらず外乱の存在が検出されないといった問題が生じる。
そこで、本発明では、教示経路の補間形式に応じ、補間形式が直線補間である場合には予め設定された許容偏差のうち値の小さな許容偏差（Ｔｒ１）を選択する一方、補間形式が円弧補間である場合には値の大きな許容偏差（Ｔｒ２）を選択してサンプリング偏差判定手段（Ｄ）による判定処理を行なうことで、このような問題の発生を未然に防止した。
【００１６】
また、サンプリング偏差判定手段（Ｄ）は、教示経路の補間形式とは関わりなく、教示経路の各区間に応じ、予め前記各区間毎に設定された許容偏差を選択して、サンプリング手段（Ｃ）でサンプリングされた偏差と許容偏差との大小関係を比較するようにしてもよい。
【００１７】
このような構成を適用した場合、溶接等の作業に必要とされる実質的なトラッキング精度に応じて教示経路の各区間毎に適正な許容偏差を適用できるので、高い精度が必要とされる部分の異常判定が雑になったり、あるいは、精度を要求されない部分の異常判定が必要以上にシビアになったりするといった問題が解消される。
無論、全ての区間に対して共通の許容偏差を設定することも可能であり、全体としてラフなトラッキング精度あるいはシビアなトラッキング精度に対処することも可能である。
【００１８】
教示経路の各区間あるいは全体に対して個別または共通の許容偏差を設定する構成においては、更に、教示経路を基準として、教示経路に直交する２つの方向、つまり、ロボットアームの移動方向を基準とする左右の方向に対して、許容偏差を左右個別に設定するように構成することも可能である。
【００１９】
前述したセンサ部（ａ１）とエンドエフェクタ（Ｆ）との間のオフセットの問題によるセンサ部（ａ１）の逸脱現象の他にも、例えば、ロボットアームの送り速度の違い、更には、移動経路上の円弧部分の緩急や産業用ロボット自体の構造上の特性の違いによって、センサ部（ａ１）が教示経路の外側や内側に偏って振られるといった現象が発生する場合がある。
本発明においては、教示経路に直交する２つの方向、つまり、ロボットアームの移動方向を基準とする左右の方向に対して、許容偏差を左右個別に設定することにより、ロボットアームの送り速度の違い、更には、移動経路上の円弧部分の緩急や産業用ロボット自体の構造上の特性を考慮し、常に最適の許容偏差に基く異常判定を実現した。
【００２０】
前記各構成に加え、更に、サンプリングされた偏差が許容偏差の範囲を越えている間のサンプリング回数を数える計数手段（Ｊ）と、計数手段（Ｊ）による計数値が予め設定された異常検出許容回数を越えた段階で異常検出信号を出力する異常検出手段（Ｋ）とを併設することができる。
【００２１】
前述したように、実経路上の仮付け部やワークの傷等は必ずしも広い範囲に亘って連続的に存在するものではないが、ワーク形状や仮付けの状態に極端な異常がある場合、または、ワークのクランプミス等によってワークの位置や姿勢に大幅なズレが生じているような場合もある。このような状況下において補正値更新手段（Ｅ）に保持された補正値を其のまま適用して溶接等の作業を継続すると、エンドエフェクタ（Ｆ）が実経路から完全に逸脱し、エンドエフェクタ（Ｆ）とワークとの相対位置関係が無視された状態で、単に、エンドエフェクタ（Ｆ）が教示経路に沿って移動するといった障害が発生する恐れがある。
そこで、本発明においては、サンプリング手段（Ｃ）によってサンプリングされた偏差が許容偏差の範囲を越えている間のサンプリング回数を数え、この計数値が予め設定された異常検出許容回数を越えた段階で、ワーク形状や仮付けの異常あるいはワークの位置や姿勢に大きな異常があるものと判定して、異常検出手段（Ｋ）から異常検出信号（Ｍ）を出力するようにした。
【００２２】
更に、この異常検出手段（Ｋ）に、異常の種別に応じた複数の異常検出許容回数を記憶する許容回数記憶手段（Ｌ）を設け、計数手段（Ｊ）による計数値に応じた異常検出信号（Ｍ）を出力するように構成することも可能である。
【００２３】
例えば、計数手段（Ｊ）による計数値が所定の異常検出許容回数以下である場合には、実経路上の仮付け部のエッジやワークの傷または凹凸あるいは汚れ等の検出を始めとする警戒状態の発生を意味する異常検出信号（ｍ１）を出力し、トラッキング制御装置あるいはロボット制御装置（Ｇ）に併設されたモニタ等に其の旨を表示してオペレータの注意を喚起するといったことが可能である。
【００２４】
また、計数値に応じた異常検出信号（Ｍ）のうちの一つは、ロボット制御装置（Ｇ）に対する停止指令（ｍ２）によって構成することが望ましい。
【００２５】
この停止指令（ｍ２）は値の大きな異常検出許容回数に対応して設定された異常検出信号であり、例えば、ワーク形状や仮付けの状態に極端な異常がある場合、または、ワークのクランプミス等によってワークの位置や姿勢に大幅なズレが生じているような場合に出力される異常検出信号である。
この異常検出信号（ｍ２）の出力に基いてロボット制御装置（Ｇ）によるロボットの駆動制御を強制停止させることにより、溶接ガン等をエンドエフェクタ（Ｆ）として使用するような場合の加工異常の発生やワークの損傷を防止することができる。
【００２６】
また、エンドエフェクタ位置調整手段（Ｂ）の制御部（ｂ２）には、補正値更新手段（Ｅ）が保持する補正値にオフセット量を加えてエンドエフェクタ（Ｆ）の位置を調整するオフセット調整機能（Ｎ）を配備することができる。
【００２７】
溶接ガンをエンドエフェクタ（Ｆ）として使用する溶接作業の場合、溶接方式の相違等に応じて実経路である溶接線に対するエンドエフェクタ（Ｆ）の相対位置を調整する必要が生じる場合がある。例えば、図４に例示されるように、ワークを突き合せて行なわれる突き合せ溶接の場合にはワークの突き合せ部分の溶接線（実経路）に沿ってエンドエフェクタ（Ｆ）を移動させる必要があるが、図５に例示される重ね隅肉溶接においては、エンドエフェクタ（Ｆ）を溶接線（実経路）から所定量オフセットして移動させる必要がある。
補正値更新手段（Ｅ）が保持する補正値にオフセット量を加えてエンドエフェクタ（Ｆ）の位置を調整することにより、ロボット制御装置（Ｇ）側の駆動制御プログラム（教示データ）に格別な変更を加えることなく、オフセットを必要とする重ね隅肉溶接等の様々な溶接作業に対処することができるようになる。
【００２８】
前記各構成において、エンドエフェクタ位置調整手段（Ｂ）における駆動部（ｂ１）と相対偏差検出手段（Ａ）におけるセンサ部（ａ１）は、ロボットアーム（Ｉ）の先端とエンドエフェクタ（Ｆ）とを接続するアタッチメント（Ｑ）の部分に設けることができる。
【００２９】
エンドエフェクタ（Ｆ）を移動させるための駆動部（ｂ１）と偏差を検出するためのセンサ部（ａ１）とをアタッチメント（Ｑ）に設け、このアタッチメント（Ｑ）を産業用ロボットに取り付けるようにすれば、従来型の産業用ロボットにハードウェア上の改変を何ら施すことなく本発明を適用することが可能である。無論、これらの構成要素を産業用ロボットの本体に組み込んでもよい。
【００３０】
更に、エンドエフェクタ位置調整手段（Ｂ）における制御部（ｂ２）と相対偏差検出手段（Ａ）における制御部（ａ２）とサンプリング手段（Ｃ）とサンプリング偏差判定手段（Ｄ）と補正値更新手段（Ｅ）は、ロボット制御装置（Ｇ）と独立してトラッキング制御装置の筐体（Ｒ）に配備することができる。
【００３１】
エンドエフェクタ（Ｆ）の位置を調整するために必要とされる制御上の構成要素の全てをトラッキング制御装置の筐体（Ｒ）に配備することで、ロボット制御装置（Ｇ）にハードウェアやソフトウェア上の改変を施すことなく本発明を適用することができる。これらの構成要素をロボット制御装置側に組み込むことも可能である。
【００３２】
エンドエフェクタ（Ｆ）の位置を調整するために必要とされる制御上の構成要素の全てをトラッキング制御装置の筐体（Ｒ）に配備した場合には、更に、ロボット制御装置（Ｇ）とトラッキング制御装置の筐体（Ｒ）とをデータ通信可能に接続し、ロボット制御装置（Ｇ）からトラッキング制御装置の側には少なくとも教示経路の補間形式と教示経路の区間に関する情報が転送されるようにし、また、トラッキング制御装置からロボット制御装置（Ｇ）の側には、少なくとも、停止指令（ｍ２）によって構成される異常検出信号が転送されるように構成することが望ましい。
【００３３】
このような構成を適用すれば、トラッキング制御装置がロボット制御装置（Ｇ）と独立して配備されている場合であっても、ロボット制御装置（Ｇ）によって実行されている補間形式をサンプリング偏差判定手段（Ｄ）がリアルタイムで認識することができるので、補間形式や教示経路の区間に適した異常判定処理が可能となる。また、許容できない異常、例えば、クランプの異常等が検出された場合には、トラッキング制御装置からの停止指令（ｍ２）によってロボット制御装置（Ｇ）によるロボットの駆動制御を強制停止させることができる。
【００３４】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について詳細に説明する。図６は、本発明を適用した一実施形態のトラッキング制御装置１の構成の概略について示した機能ブロック図であり、併せて、ロボット制御装置２の構成の概略と産業用ロボット３の構成の概略についても示している。
【００３５】
この実施形態で採用した産業用ロボット３は公知の多関節型産業ロボットであり、水平面に設置されたベースプレート４に対してロボット本体５をスイベルさせるための旋回軸と、ベースプレート４に対して第一アーム６を揺動させるための第一揺動軸と、第一アーム６に対して第二アーム７を揺動させるための第二揺動軸と、第二アーム７に対して第三アーム８を揺動させるための第三揺動軸と、第三アーム８の先端に設けられたリスト９を回転させるための回転軸とを備える。
【００３６】
この産業用ロボット３の構造は飽くまでも一例であり、アーム先端に位置するリスト９に対して直交３軸方向の移動の自由度が与えられ、かつ、リスト９の回転が保証される限りにおいて、其の構成は問わない。当然、リスト９の傾斜制御が可能なものでもよい。
【００３７】
エンドエフェクタとしての溶接ガン１０は、アタッチメント１１を介してアーム先端のリスト９に取り付けられるようになっている。
【００３８】
ロボット制御装置２は、演算処理用のＣＰＵ１２と、ＣＰＵ１２の制御プログラムを格納したＲＯＭ１３、および、演算データの一時記憶等に利用されるＲＡＭ１４と、ユーザが作成したロボットの駆動制御プログラム等を保存するハードディスク等の不揮発性メモリ１５、ならびに、プログラム編集等に使用されるモニタ付手動データ入力装置１６と、教示作業用の教示操作盤１７、更には、軸制御回路１８と入出力インターフェイス１９等を備えた通常のロボット制御装置である。
【００３９】
ここで、産業用ロボット３とロボット制御装置２ならびに溶接ガン１０を用いて自動溶接作業を行なう場合の教示操作と再生動作について簡単に説明する。
【００４０】
教示操作に際しては、まず、産業用ロボット３の近傍に設置したワーク置台に溶接対象となるワークを図４のように突き合わせて、あるいは、図５のように重ね合わせて設置する。必要とあれば、この段階でワーク同士をクランプしたり、あるいは、部分的な溶接によって仮付けを行なう場合もある。
【００４１】
次いで、オペレータが教示操作盤１７を操作して産業用ロボット３をマニュアル操作で駆動することにより、ロボットアーム先端の溶接ガン１０をアタッチメント１１上の基準位置（ホームポジション）に固定した状態で溶接線に沿って移動させ、その要所要所で教示操作盤１７の教示ボタンを操作し、例えば、図３に示されるようにして、ロボットアーム先端の溶接ガン１０が経由すべき通過点（以下、教示点という）を不揮発性メモリ１５に記憶させる。
【００４２】
なお、ここでいう溶接線とは、図４のような突き合せ溶接の場合にはワークの突き合せ部分に形成される線、また、図５のような重ね隅肉溶接の場合には、上側に位置するワークの輪郭線である。
【００４３】
次いで、オペレータは、教示点のデータを自動プログラミング装置にかけるか、あるいは、ロボット制御装置２の自動プログラミング機能を利用してプログラミング言語に変換し、例えば、ＡＰＴ文等からなる駆動制御プログラムを生成して、この駆動制御プログラムを不揮発性メモリ１５にユーザプログラムとして保存する。変換作業の過程で、教示点から教示点までの各区間の送り速度を指定したり、直線補間や円弧補間の形式を指定することが可能である。
【００４４】
図３の教示経路に対応した駆動制御プログラムの一例を図式化して図７に概念的に示す。図３および図７の例では、教示点Ｐ０が溶接作業時におけるロボットアーム先端の退避位置、つまり、アプローチポイントであって、溶接線上の実質的な教示点は、Ｐ１（加工開始点）〜Ｐｎ１（加工終了点）までのｎ１個である。
【００４５】
図７の例では、アプローチポイントであるロボット座標系上の位置（Ｘｐ０，Ｙｐ０，Ｚｐ０）の教示点Ｐ０からロボット座標系上の位置（Ｘｐ１，Ｙｐ１，Ｚｐ１）の加工開始点Ｐ１までの移動には、送り速度Ｆ０の直線補間が用いられている。また、ステイタスの欄は本実施形態に固有のもので、その区間中におけるクランプの有無と仮付けの有無、あるいは、この区間の許容偏差として教示区間に固有の許容偏差（以下、ブロック間指定の許容偏差という）を優先的に利用するか否かを示す値が記憶されるようになっている。但し、この欄は必須の要件ではない。
【００４６】
産業用ロボット３の再生動作は、ロボット制御装置２が前述の駆動制御プログラムを実行して教示経路に沿ってアーム先端を移動させることにより実現される。
【００４７】
具体的には、ロボット制御装置２のＣＰＵ１２が不揮発性メモリ１５の駆動制御プログラムの先頭から順に１ブロックずつ移動指令を読み込み、この１ブロックで指定されている目標位置に向けて、指定された移動速度と補間形式でアーム先端が移動するように、軸制御回路１８を介して産業用ロボット３の各軸のサーボモータにパルス分配処理を実行し、アーム先端が目標位置のインポジション幅内に入った段階で次の１ブロック分の移動指令に関する処理を開始することで、円滑なアームの移動が実現される。
【００４８】
ここでいう１ブロック分の移動指令とは、図７に示されるような横並びのコマンドの集合のことである。例えば、図７の例では、最初に読み込まれる移動指令は加工開始点Ｐ１に関するもので、補間形式は直線補間、また、送り速度はＦ０であり、目標位置はロボット座標系上の位置（Ｘｐ１，Ｙｐ１，Ｚｐ１）ということになる。加工開始時の初期位置はロボット座標系上の位置（Ｘｐ０，Ｙｐ０，Ｚｐ０）のアプローチポイントＰ０であるから、最初の１ブロックの移動指令により、ロボットアームの先端はＰ０（Ｘｐ０，Ｙｐ０，Ｚｐ０）の位置からＰ１（Ｘｐ１，Ｙｐ１，Ｚｐ１）の位置まで図３の例のように送り速度Ｆ０で直線補間の形式で移動することになる。
【００４９】
その後、前記と同様にして次々と１ブロック分の移動指令が読み込まれてパルス分配処理が実行され、アプローチポイントＰ０に戻る最終ブロックのパルス分配処理が完了した時点で、１サイクルの再生処理が完了する。
【００５０】
次に、本実施形態に固有の構成要素であるトラッキング制御装置１の構成について詳細に説明する。
【００５１】
このトラッキング制御装置１は、ロボットアーム先端と溶接ガン１０とを接続するアタッチメント１１上に配備されてエンドエフェクタ位置調整手段の一部を構成する駆動部２８と、アタッチメント１１上に配備されて相対偏差検出手段の一部を構成するセンサ部２９、および、ロボット制御装置２と独立して配備された筐体２７によって構成され、筐体２７の内部には、エンドエフェクタとしての溶接ガン１０の位置を調整するために必要とされる制御上の構成要素が実装されている。
【００５２】
このうち、センサ部２９は、産業用ロボットの再生動作の際に、レーザスリット光による三角測量等の公知の手法を用いて、教示操作で与えられた溶接ガン１０の先端位置と実際の溶接線との間で移動経路に直行する方向に生じている偏差（以下、単に偏差という）を検出するためのものである。
【００５３】
但し、ワークのクランプや仮付けおよびワーク置台に対するワークのセッティング状態の相違等により、教示操作の時と再生動作の時で実際の溶接線の位置や姿勢、更に、ワークの形状異常等によっては溶接線の形状自体にも変化が生じる場合があり、ここでいう溶接線とは、再生動作の時点における溶接線、つまり、実経路のことである。
【００５４】
エンドエフェクタ位置調整手段の一部である駆動部２８は、サーボモータやラック＆ピニオン等を用いて構成され、アタッチメント１１の下方に装着された溶接ガン１０をアタッチメント１１上のホームポジション（教示動作の際の固定位置）を基準として、ワークの溶接部に対して略平行な平面内で一軸方向に移動させるようになっている。
既に述べた通り、アタッチメント１１を取り付けるリスト９は、センサ部２９が経路上で常に進行方向前方に位置し、また、エンドエフェクタとして機能する溶接ガン１０が常に進行方向後方に位置するようにロボット制御装置２によって回転位置が適応制御されるようになっているので、駆動部２８によって送りを掛けられる溶接ガン１０の移動方向はアームの移動経路に対して一義的に決定される。駆動部２８によって送りを掛けられる溶接ガン１０の移動方向は、図３に例示する通り、アームの移動経路に対して直交する２つの方向、つまり、アームの移動方向を基準とする左と右の方向である。
【００５５】
なお、前述した偏差は、飽くまでも、教示操作で与えられた溶接ガン１０の先端位置、つまり、アタッチメント１１上のホームポジションに溶接ガン１０を位置させたときの溶接ガン１０の先端位置と実際の溶接線との間で移動経路に直行する方向に生じる偏差（アブソリュート量）であって、駆動部２８によって送りを掛けられて位置を補正された状態にある溶接ガン１０の先端位置と溶接線との間の偏差（インクリメンタル量）を意味するものではない。
【００５６】
トラッキング制御装置１の主要部を構成する筐体２７の内部には、演算処理用のＣＰＵ２０と、ＣＰＵ２０の制御プログラムを格納したＲＯＭ２１、および、演算データの一時記憶等に利用されるＲＡＭ２２と、異常判定に関わる許容偏差Ｔｒ１，Ｔｒ２や重ね隅肉溶接の際のオフセット量および異常の種別に応じた複数の異常検出許容回数Ｘ１，Ｘ２，Ｘ３等を記憶する不揮発性メモリ２３、ならびに、これらの設定データの入力等に使用されるモニタ付手動データ入力装置２４と、入出力回路２５ならびに入出力インターフェイス２６等が実装されている。
【００５７】
不揮発性メモリ２３は、異常の種別に応じた複数の異常検出許容回数Ｘ１，Ｘ２，Ｘ３を記憶するものであるから事実上の許容回数記憶手段である。
【００５８】
また、不揮発性メモリ２３には、各教示区間に固有の許容偏差、即ち、ブロック間指定の許容偏差を記憶するためのブロック間偏差記憶テーブルが設けられており、このブロック間偏差記憶テーブルに、教示経路の各区間に応じた許容偏差が、教示経路に直交する２つの方向、つまり、ロボットアームの移動方向を基準とする左と右の方向に対し個別に設定されるようになっている。但し、各教示区間に固有の許容偏差とはいっても各教示区間の許容偏差として同一の値を用いることを妨げるものではない。
【００５９】
ブロック間偏差記憶テーブルの一例を図８に示す。ブロック間偏差記憶テーブルは、図８に示される通り、教示点のデータに基いて生成された駆動制御プログラムの１ブロック毎、つまり、教示経路の各区間毎に、ロボットアームの移動方向の左と右に対して個別に設定されるようになっている。図８の例では、第ｉ−２番目のブロックに対するブロック間指定の許容偏差はプラス（右）方向にＴｘｉ−２＋、また、マイナス（左）方向にＴｘｉ−２−である。但し、この例では、教示経路の内側、つまり、図５に例示されるような重ね隅肉溶接においてワークが重合している方向への許容偏差をプラスの方向、また、これとは逆に、ワークが重合していない方向への許容偏差をマイナスの方向と規定している。
【００６０】
各ブロック間指定の許容偏差の値は、図８の例に示されるようにブロック間偏差記憶テーブルに直接的に数値を指定して設定してもよいし、また、大，中，小等の各種許容偏差の値を予めＲＯＭ２１に固定的に記憶させておき、ブロック間偏差記憶テーブルに大，中，小等の種別を指定することでＲＯＭ２１内の各種許容偏差の数値を引用して各ブロック毎の許容偏差を指定するようにしてもよい。
【００６１】
アタッチメント１１上でエンドエフェクタ位置調整手段の一部を構成する駆動部２８は、エンドエフェクタ位置調整手段の制御部として機能するＣＰＵ２０からの指令により入出力回路２５を介して駆動制御され、また、アタッチメント１１上で相対偏差検出手段の一部を構成するセンサ部２９によって検出された偏差の値は、入出力回路２５を介して、相対偏差検出手段の制御部として機能するＣＰＵ２０に読み込まれる。
【００６２】
また、筐体２７とロボット制御装置２は、筐体２７側の入出力インターフェイス２６と通信線３０およびロボット制御装置２側の入出力インターフェイス１９を介してデータ通信可能に接続され、ロボット制御装置２から筐体２７の側には教示経路の補間形式や教示経路の区間に関する情報等が転送される一方、筐体２７からロボット制御装置２の側には、警戒状態の発生を意味する異常検出信号や停止指令によって構成される異常検出信号等が転送されるようになっている。
【００６３】
相対偏差検出手段の制御部，エンドエフェクタ位置調整手段の制御部，エンドエフェクタ位置調整手段におけるオフセット調整機能，サンプリング手段，サンプリング偏差判定手段，計数手段，補正値更新手段および異常検出手段となる実質的な機能実現手段は、筐体２７のＣＰＵ２０と其の制御プログラムを格納したＲＯＭ２１によって構成される。
【００６４】
次に、ロボット制御装置２のＣＰＵ１２による再生処理の概略を示した図９のフローチャートと、トラッキング制御装置の筐体２７に配備されたＣＰＵ２０によって実行されるトラッキング制御について示した図１０〜図１２のフローチャートを参照して、前記各手段としてのＣＰＵ２０が実施するトラッキング制御について詳細に説明する。
【００６５】
まず、図９を参照して、ロボットに教示した動作の再生に必要とされるロボット制御装置２側のＣＰＵ１２の処理について簡単に説明する。
【００６６】
教示データに基く再生処理を開始したロボット制御装置２のＣＰＵ１２は、まず、プログラムカウンタｉの値を０に初期化し（ステップａ１）、カウンタｉの値を１インクリメントした後（ステップａ２）、該指標ｉの値に基いて不揮発性メモリ１５内の駆動制御プログラム（図７参照）から１ブロック分の移動指令を読み込み（ステップａ３）、この移動指令のステイタスの欄に、ブロック間指定の許容偏差を優先的に利用する旨の設定がされているか否かを判定する（ステップａ４）。
【００６７】
ここで、ブロック間指定の許容偏差を利用する旨の設定がされていれば、ＣＰＵ１２は、ブロック間指定記憶レジスタｆ０に１をセットし、ステップａ５〜ステップａ１３までの処理をスキップする（ステップａ１４）。
【００６８】
また、ブロック間指定の許容偏差を利用する旨の設定がされていない場合には、ブロック間指定記憶レジスタｆ０に０をセットした後（ステップａ５）、更に、この移動指令が直線補間であるのか円弧補間であるのかを判定する（ステップａ６）。
【００６９】
そして、直線補間である場合には、ＣＰＵ１２は、補間形式記憶レジスタｆ１に０をセットする一方（ステップａ７）、円弧補間である場合には、補間形式記憶レジスタｆ１に１をセットする（ステップａ８）。
【００７０】
次いで、ＣＰＵ１２は、この移動指令のステイタスの欄にクランプあるいは仮付けが設定されているか否かを判定し（ステップａ９，ステップａ１０）、クランプが設定されている場合にはステイタス記憶レジスタｆ２に１をセットする一方（ステップａ１１）、仮付けが設定されている場合には、ステイタス記憶レジスタｆ２に２をセットする（ステップａ１２）。また、いずれの設定も検出されなければ、ステイタス記憶レジスタｆ２に０をセットする（ステップａ１３）。
【００７１】
次いで、ＣＰＵ１２は当該１ブロックの移動指令に基く所定周期毎のパルス分配処理を開始し、指令された送り速度と補間形式を適用してロボットアームに対して教示経路に沿った送りを掛け（ステップａ１５）、パルス分配処理の１処理周期毎にトラッキング制御装置の筐体２７からの停止指令の入力の有無を確認し（ステップａ１６）、この判定処理で停止指令が検出されなければ、ＣＰＵ１２は、更に、産業用ロボット３に標準装備された各軸の現在位置記憶レジスタの値を読み込み、ロボットアーム先端が当該移動指令の目標位置のインポジション幅内に到達しているか否かを判定する（ステップａ１７）。そして、ロボットアーム先端が当該移動指令の目標位置のインポジション幅内に到達していなければ、ＣＰＵ１２は、前記と同様にしてステップａ１５〜ステップａ１７の処理を繰り返し実行し、当該１ブロックの移動指令に基くパルス分配処理を所定周期毎に繰り返し実行する。
【００７２】
例えば、図７に示されるプログラム例では、まず、プログラムカウンタｉの現在値１に基いて加工開始点Ｐ１までの移動指令が読み込まれ、送り速度Ｆ０の直線補間によってアプローチポイント（Ｘｐ０，Ｙｐ０，Ｚｐ０）の初期位置から加工開始点（Ｘｐ１，Ｙｐ１，Ｚｐ１）を目標位置としたパルス分配処理が行なわれることになる。当然、ブロック間指定記憶レジスタｆ０の値は０で、補間形式記憶レジスタｆ１の値は０（直線補間）、また、ステイタス記憶レジスタｆ２の値は０（クランプおよび仮付けなし）に設定されることになる。
【００７３】
これらのブロック間指定記憶レジスタｆ０と補間形式記憶レジスタｆ１およびステイタス記憶レジスタｆ２は、ロボット制御装置２のＣＰＵ１２とトラッキング制御装置１のＣＰＵ２０に対して共有ＲＡＭとして機能するロボット制御装置２側のＲＡＭ１４に内蔵されたレジスタであり、ＣＰＵ１２およびＣＰＵ２０の何れの側からでも各レジスタｆ０，ｆ１，ｆ２にアクセスして内容を確認することが可能である。教示経路の区間に関する情報に相当するプログラムカウンタｉの現在値も、ＲＡＭ１４に更新して記憶されるようになっている。
【００７４】
そして、ステップａ１５〜ステップａ１７の処理を繰り返し実行する間に、１ブロック分のパルス分配処理が完了してロボットアーム先端が目標位置のインポジション幅内に到達すると、ロボット制御装置２のＣＰＵ１２は、プログラムカウンタｉの現在値が１であるか否か、つまり、今回実行した１ブロック分の移動指令がアプローチポイントＰ０から加工開始点Ｐ１に向かうものであったか否かを判定する（ステップａ１８）。
【００７５】
ここでプログラムカウンタｉの現在値が１である場合には、アプローチポイントＰ０から加工開始点Ｐ１に向かう１ブロック分の移動指令が完了したことを意味するので、ＣＰＵ１２は、エンドエフェクタとしての溶接ガン１０に溶接開始指令を出力して溶接ガン１０の作動を開始させる（ステップａ２０）。
【００７６】
次いで、ロボット制御装置２のＣＰＵ１２は、プログラムカウンタｉの現在値が駆動制御プログラムの最終ブロックを示す値ｎ１に達しているかを判定するが（ステップａ１９）、プログラムカウンタｉの現在値がｎ１に達していなければ、溶接作業を行うべき教示経路（溶接線）が未だ残っていることを意味するので、ＣＰＵ１２は、プログラムカウンタｉの値を１インクリメントし（ステップａ２）、次の１ブロック分の移動指令を読み込んで（ステップａ３）、当該１ブロックに対するブロック間指定の許容偏差の適用の有無やクランプまたは仮付けの有無、更には、直線補間や円弧補間の種別に従って各レジスタｆ０，ｆ１，ｆ２の値をセットした後（ステップａ４〜ステップａ１４）、当該１ブロック分の移動指令に対して前記と同様のパルス分配処理を繰り返し実行する。
【００７７】
このようにしてプログラムカウンタｉの値が次々とインクリメントされ、各ブロックの移動指令に基くパルス分配処理が繰り返し実行される結果、例えば、図３に示される加工開始点Ｐ１〜加工終了点Ｐｎ１の区間で教示経路に沿ってロボットアームの先端が移動され、当該区間内での溶接作業が行なわれることになる。
【００７８】
この間、新たに次の１ブロックが読み込まれる度に、ブロック間指定記憶レジスタｆ０、あるいは、補間形式記憶レジスタｆ１の値とステイタス記憶レジスタｆ２の値が逐次更新される。
【００７９】
そして、最終的に、プログラムカウンタｉの現在値がｎ１に達し、教示点Ｐｎ１−１から加工終了点Ｐｎ１に向かう移動が完了したことがステップａ１９の判定処理で確認されると、ロボット制御装置２のＣＰＵ１２は、溶接ガン１０に溶接終了指令を出力して溶接ガン１０の作動を停止させる（ステップａ２１）。
【００８０】
また、所定周期毎のパルス分配処理の実行中にステップａ１６の処理においてトラッキング制御装置１からの停止指令の入力が確認された場合には、ロボットアームの送りに必要とされるパルス分配処理は其の時点で停止され、前記と同様、溶接ガン１０に溶接終了指令が出力されることになる。
【００８１】
次いで、ＣＰＵ１２は、プログラムカウンタｉの値を０に初期化し（ステップａ２２）、改めてアプローチポイントＰ０に関わる１ブロック分の移動指令を読み込み（ステップａ２３）、前記と同様にして所定周期毎のパルス分配処理を繰り返し実行してロボットアームを移動させ、ロボットアーム先端を加工終了点Ｐｎ１からアプローチポイントＰ０に退避させ（ステップａ２４，ステップａ２５）、ロボットの再生動作に関わる一連の駆動制御プログラムを完了し、新たなプログラム実行指令の入力を待つ待機状態に入る。
【００８２】
ここで、溶接の完了したワークをワーク置台から取り外し、溶接対象となる次のワークをセッティングして改めてロボット制御装置２にプログラム実行指令を入力すれば、前記と同様の処理動作が繰り返し実行されることになる。
【００８３】
以上に述べた通り、再生動作に必要とされるロボット制御装置２側の処理に関しては、ブロック間指定の許容偏差を優先的に利用する旨の設定がされているか否かに応じてブロック間指定記憶レジスタｆ０に０または１をセットする点、ブロック間指定の許容偏差を利用する旨の設定がない場合に限り、１ブロックの移動指令の補間形式とクランプおよび仮付けの有無をレジスタｆ１，ｆ２に更新して記憶する点、および、トラッキング制御装置１の筐体２７からの停止指令の入力が確認された場合にパルス分配処理を即時停止してロボットアームを初期位置に退避させる点を除き、従来のロボット制御装置と全く同様である。
【００８４】
次に、ロボット制御装置２と協調して独立的に動作するトラッキング制御装置側のＣＰＵ２０が所定周期毎に繰り返し実行するトラッキング制御について図１０〜図１２を参照して説明すると共に、ＣＰＵ２０が如何にして相対偏差検出手段の制御部，エンドエフェクタ位置調整手段の制御部，エンドエフェクタ位置調整手段におけるオフセット調整機能，サンプリング手段，サンプリング偏差判定手段，計数手段，補正値更新手段および異常検出手段として機能するかを詳細に示す。
【００８５】
トラッキング制御を開始したＣＰＵ２０は、まず、共有ＲＡＭとして機能するロボット制御装置２のＲＡＭ１４に入出力インターフェイス２６と通信線３０および入出力インターフェイス１９を介してアクセスし、プログラムカウンタｉの現在値を読み込み（ステップｂ１）、この値が１を上回っているか否かを判定する（ステップｂ２）。
【００８６】
ここで、プログラムカウンタｉの現在値が１を上回っていない場合、つまり、プログラムカウンタｉの現在値が１であってロボットアームがアプローチポイントＰ０から加工開始点Ｐ１へ向かって移動している場合と、プログラムカウンタｉの現在値が０であってロボットアームが加工終了点Ｐｎ１からアプローチポイントＰ０へ向かって移動している場合、あるいは、ロボットアームがアプローチポイントＰ０に待機している場合には、ステップｂ３以降の実質的なトラッキング制御は非実行とされ、当該処理周期におけるトラッキング制御はこのまま終了する。つまり、トラッキング制御は不要であり、実行されない。
【００８７】
一方、プログラムカウンタｉの現在値が１を上回っていて、溶接ガン１０が作動した状態でロボットアームが加工開始点Ｐ１から加工終了点Ｐｎ１の何れかの区間で移動している場合には、ステップｂ３以降のトラッキング制御が継続して実行されることになる。
【００８８】
この場合、ＣＰＵ２０は、前記と同様にしてロボット制御装置２のＲＡＭ１４にアクセスしてブロック間指定記憶レジスタｆ０の現在値を読み込み（ステップｂ３）、まず、レジスタｆ０の現在値が０であるのか１であるのか、つまり、現時点で補間処理を実行しているブロック、つまり、第ｉ番目のブロックに対してブロック間指定の許容偏差を適用する必要があるか否かを判定する（ステップｂ４）。
【００８９】
ここで、ステップｂ４の判定結果が真となって、このブロックに対してブロック間指定の許容偏差を適用する必要がないと判定された場合には、ＣＰＵ２０は、更に、ロボット制御装置２のＲＡＭ１４にアクセスして補間形式記憶レジスタｆ１の現在値を読み込み（ステップｂ５）、レジスタｆ１の現在値が０であるのか１であるのか、つまり、ロボット制御装置２の側で直線補間が実行されているのか円弧補間が実行されているのかを判定する（ステップｂ６）。
【００９０】
そして、レジスタｆ１の現在値が０であって直線補間が行なわれている場合には、サンプリング偏差判定手段の一部として機能するＣＰＵ２０が、不揮発性メモリ２３に予め記憶されているユーザ設定の許容偏差のうち直線補間に対応して設定された値の小さな許容偏差Ｔｒ１を選択して読み込み、この値を許容偏差記憶レジスタＴｒにセットする一方（ステップｂ７）、レジスタｆ１の現在値が１であって円弧補間が行なわれている場合には、不揮発性メモリ２３に予め記憶されているユーザ設定の許容偏差のうち円弧補間に対応して設定された値の大きな許容偏差Ｔｒ２を選択して読み込み、この値を許容偏差記憶レジスタＴｒにセットする（ステップｂ８）。
【００９１】
次いで、相対偏差検出手段の制御部およびサンプリング手段として機能するＣＰＵ２０は、産業用ロボット３側のアタッチメント１１に配備されて相対偏差検出手段の一部を構成するセンサ部２９からの出力を入出力回路２５を介して読み込み、教示操作で与えられた溶接ガン１０の先端位置と実際の溶接線との間で移動経路に直行する方向に生じている偏差を求め（ステップｂ９）、サンプリング偏差判定手段としてのＣＰＵ２０が、この偏差と許容偏差Ｔｒとの大小関係を比較する（ステップｂ１０）。
【００９２】
ここで、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲内にあると判定された場合には、教示経路と実経路とが概ね一致しており、仮に、アーム先端位置（教示経路）と溶接線（実経路）との間に多少のズレがあったとしても、エンドエフェクタ位置調整手段の一部を構成する駆動部２８によって溶接ガン１０の位置を教示経路と直行する方向に調整することで溶接ガン１０の先端を溶接線上に容易に位置決めできることを意味する。
【００９３】
この場合、補正値更新手段として機能するＣＰＵ２０は、当該処理周期のステップｂ９の処理で求められた偏差を補正値として更新記憶することで補正値の値を最適化する（ステップｂ１１）。次いで、ＣＰＵ２０は、トラッキング動作における異常の有無を記憶する動作状態記憶フラグｆ３に異常なしを示す値０をセットし（ステップｂ１２）、この時点で既に何等かの異常検出信号の出力が行なわれている場合には（ステップｂ１３）、其の信号の出力を停止して、異常が回復されたことを記憶する（ステップｂ１４）。
【００９４】
次いで、エンドエフェクタ位置調整手段の制御部におけるオフセット調整機能実現手段として機能するＣＰＵ２０が、不揮発性メモリ２３からユーザ設定のオフセット量を読み込む（ステップｂ１５）。通常、図４に例示されるような突き合せ溶接の場合ではオフセット量の設定値は０、また、図５に例示されるような重ね隅肉溶接の場合では、プラス方向つまりワークが重合している右の方向に数ミリ程度の値がオフセット量として設定されている。
【００９５】
次いで、エンドエフェクタ位置調整手段の制御部およびオフセット調整機能実現手段として機能するＣＰＵ２０は、ステップｂ１１の処理で更新された補正値の値にオフセット量を加算し、この加算値に応じて入出力回路２５を介してエンドエフェクタ位置調整手段の一部を構成する駆動部２８に駆動指令を出力し、ロボットアームの位置および姿勢を保持したまま溶接ガン１０のみを教示経路に直行する方向に移動させて、溶接ガン１０の先端位置を実経路、つまり、突き合せ溶接の場合には溶接線上に、また、重ね隅肉溶接の場合には溶接線から数ミリ内側の溶接対象位置に合わせる（ステップｂ１６）。
【００９６】
但し、駆動部２８に与えられる移動指令は、アタッチメント１１上の基準位置（ホームポジション）からのアブソリュートな移動距離である。
【００９７】
ここで、仮に、突き合せ溶接の場合においてアーム先端位置（教示経路）と実経路（溶接線）とが完全に一致している状況下では、補正値の値は０となるから、溶接ガン１０はアタッチメント１１上のホームポジションに位置決めされ、この溶接ガン１０の先端が実経路（溶接線）上に位置決めされることになる。また、仮に、突き合せ溶接の場合においてアーム先端位置（教示経路）を基準として実経路（溶接線）が１ミリだけプラス方向（右方向）にズレているとすれば、補正値の値は＋１ミリ（右に１ミリ）となるので、溶接ガン１０はホームポジションから＋１ミリ（右に１ミリ）だけ移動されて、この溶接ガン１０の先端が実経路（溶接線）上に位置決めされることになる。重ね隅肉溶接の場合には補正値にオフセット量が加算されることになるが、位置補正の作用原理に関しては突き合せ溶接の場合と同様である。
【００９８】
一方、当該処理周期のステップｂ１０の判定結果が偽となった場合、つまり、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えていると判定された場合には、溶接ガン１０が位置調整された状態で実経路に沿って適切に移動しているにも関わらずセンサ部２９がワーク上の傷や凹凸あるいは汚れ等の外乱を拾って偏差の値が増大している可能性や、溶接ガン１０が位置調整された状態で実経路に沿って適切に移動しているにも関わらずセンサ部２９がワークの仮付け部やクランプ部の輪郭を拾って偏差の値が増大している可能性、あるいは、ワークの形状異常やワーク置台に対するワークのセッティングミス等によって教示経路が実経路に対して全く適合しなくなってしまっている可能性等が考えられる。
【００９９】
このような場合、計数手段の一部として機能するＣＰＵ２０は、まず、動作状態記憶フラグｆ３に０がセットされているのか１がセットされているのか、つまり、当該処理周期以前のトラッキング制御処理で教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた履歴があるか否かを判定する（ステップｂ１７）。
【０１００】
ステップｂ１７の判定結果が真となった場合には当該処理周期以前のトラッキング制御処理で教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた履歴がないことを意味するので、ＣＰＵ２０は、動作状態記憶フラグｆ３に１をセットして最初の異常の発生を記憶し（ステップｂ１８）、計数手段として機能するカウンタＣの値を一旦０に初期化すると共に（ステップｂ１９）、該カウンタＣの値を改めて１インクリメントすることによって、第１回目の異常の発生を計数する（ステップｂ２０）。
【０１０１】
一方、ステップｂ１７の判定結果が偽となった場合には、当該処理周期以前のトラッキング制御処理で教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた履歴が既に存在することを意味するので、ＣＰＵ２０は、ステップｂ１８およびステップｂ１９の処理をスキップし、計数手段として機能するカウンタＣの値を１インクリメントすることで、連続的に発生する異常の発生回数を積算的に計数する（ステップｂ２０）。
【０１０２】
そして、ＣＰＵ２０は、ロボット制御装置２のＲＡＭ１４にアクセスしてブロック間指定記憶レジスタｆ０の現在値を読み込み（ステップｂ２１）、レジスタｆ０の現在値が０であるのか１であるのか、つまり、現時点で補間処理を実行しているブロックに対してブロック間指定の許容偏差を適用する必要があるか否かを判定する（ステップｂ２２）。
【０１０３】
ここで、ステップｂ２２の判定結果が真となった場合、つまり、このブロックに対してブロック間指定の許容偏差を適用する必要がないと判定された場合には、ＣＰＵ２０は、更に、共有ＲＡＭとして機能するロボット制御装置２のＲＡＭ１４からステイタス記憶レジスタｆ２の値を読み込み（ステップｂ２３）、ステイタス記憶レジスタｆ２にクランプおよび仮付けなしの状態を意味する値０がセットされているのか（ステップｂ２４）、クランプを意味する値１がセットされているのか、あるいは、仮付けを意味する値２がセットされているのかを判定する（ステップｂ２９）。
【０１０４】
ステップｂ２４の判定結果が真となった場合、つまり、現時点でロボットアームを移動させている教示経路のブロックにクランプによるワークの固定が行なわれておらず、かつ、部分溶接によるワークの仮付けも行なわれていないと判定された場合には、ＣＰＵ２０は、許容回数記憶手段としての不揮発性メモリ２３から異常検出許容回数Ｘ１の設定値を読み込み、カウンタＣで計数されている異常の連続発生回数の値と異常検出許容回数Ｘ１との大小関係を比較する（ステップｂ２５）。
【０１０５】
ここで、ステップｂ２５の判定結果が真となった場合には、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた連続サンプリング回数が比較的少ないことを意味するので、異常検出手段として機能するＣＰＵ２０は、センサ部２９がワーク上の傷や凹凸あるいは汚れ等の外乱を拾って一時的に偏差の値が増大するセンサ異常が発生しているものと判定し、傷や凹凸あるいは汚れ等によるセンサ異常を示す異常検出信号を出力して、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタに傷や凹凸あるいは汚れ等によるセンサ異常の発生を示すメッセージを表示して、オペレータの注意を喚起する（ステップｂ２６）。
【０１０６】
この場合、溶接ガン１０自体は、エンドエフェクタ位置調整手段により位置調整された状態で実経路に沿って適切に移動しているものと考えられるので、補正値更新手段としてのＣＰＵ２０は、ステップｂ１１〜ステップｂ１４の処理をスキップすることにより、ステップｂ１０の判定結果が偽となった時点でクランプされた補正値の値、つまり、サンプリングされた偏差が許容偏差Ｔｒの範囲を越える直前のサンプリング周期でサンプリングされた偏差の値を補正値として其のまま保持し、前記と同様にしてステップｂ１５およびステップｂ１６の処理を実行することで溶接ガン１０の先端位置を実経路に合わせる。
【０１０７】
例えば、図１３の例に示されるように、サンプリング周期Ｓ２の時点で教示経路と実経路との間の偏差が初めて許容偏差Ｔｒの範囲を越えたとすれば、この時点でステップｂ１０の判定結果が偽となってステップｂ１７およびステップｂ１８の処理で動作状態記憶フラグｆ３に異常検出中を示す値１がセットされ、同時に、ステップｂ１９およびステップｂ２０の処理で連続異常回数を数えるカウンタＣに１がセットされる。サンプリング周期Ｓ２の時点ではカウンタＣの値は１、つまり、異常検出許容回数Ｘ１よりも小さな値であるから、サンプリング周期Ｓ２におけるステップｂ２５の判定結果は真となり、このサンプリング周期Ｓ２におけるステップｂ１１〜ステップｂ１４の処理が非実行とされたことによって１処理周期前のサンプリング周期Ｓ１で検出された偏差Ｑ１の値でクランプされている補正値Ｑ１の値に基いて、当該処理周期であるサンプリング周期Ｓ２における溶接ガン１０の位置調整処理がステップｂ１５〜ステップｂ１６の処理で実行される。
そして、次の処理周期であるサンプリング周期Ｓ３の時点でも教示経路と実経路との間の偏差は許容偏差Ｔｒの範囲を越えたままであるので、前記と同様、ステップｂ１０の判定結果が偽となって動作状態記憶フラグｆ３の値は１に保持され、同時に、ステップｂ２０の処理でカウンタＣが１インクリメントされて２となる。サンプリング周期Ｓ３の時点ではカウンタＣの値は２、つまり、異常検出許容回数Ｘ１よりも小さな値であるから、サンプリング周期Ｓ３におけるステップｂ２５の判定結果は真となり、このサンプリング周期Ｓ３におけるステップｂ１１〜ステップｂ１４の処理が非実行とされたことによって２処理周期前のサンプリング周期Ｓ１で検出された偏差Ｑ１の値でクランプされている補正値Ｑ１の値に基いて、当該処理周期であるサンプリング周期Ｓ３における溶接ガン１０の位置調整処理がステップｂ１５〜ステップｂ１６の処理で実行される。
この結果、溶接ガン１０の先端はワーク上の傷や凹凸あるいは汚れ等の外乱検出による影響を受けることなく、図１３中で一点鎖線で示すように、概ね、実経路に沿って移動することが可能となる。
次いで、次の処理周期であるサンプリング周期Ｓ４の時点では、教示経路と実経路との間の偏差Ｑ２が許容偏差Ｔｒの範囲に収まるので、サンプリング周期Ｓ４におけるステップｂ１０の判定結果は真となって補正値のクランプが解除される。つまり、当該サンプリング周期Ｓ４におけるステップｂ１１〜ステップｂ１４の処理が実行されることで補正値の値は偏差Ｑ２に相当する値に更新され、動作状態記憶フラグｆ３に異常の回復を示す値０がセットされると共に、当該処理周期であるサンプリング周期Ｓ４で検出された偏差Ｑ２に相当する補正値Ｑ２の値に基いて、当該処理周期であるサンプリング周期Ｓ４における溶接ガン１０の位置調整処理がステップｂ１５〜ステップｂ１６の処理で実行されることになる。
この段階ではカウンタＣ（現在値２）の値は０にリセットされないが、教示経路と実経路との間の偏差が改めて許容偏差Ｔｒの範囲を越えた際にステップｂ１７の判定処理が実行され、前述したステップｂ１９およびステップｂ２０の処理で第１回目の異常発生を数える値１がセットされるので問題はない。
【０１０８】
一方、ステップｂ２５の判定結果が偽となった場合には、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた連続サンプリング回数が多く、ワークの形状異常やワーク置台に対するワークのセッティングミス等が発生している可能性が高いので、異常検出手段として機能するＣＰＵ２０は、溶接作業を継続することは適切でないと判定し、形状異常やセッティング異常をを示す異常検出信号を出力してトラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタに形状異常やセッティング異常の発生を示すメッセージを表示すると共に（ステップｂ２７）、入出力回路２６と通信線３０および入出力インターフェイス１９を介してロボット制御装置２に停止指令となる異常検出信号を出力する（ステップｂ２８）。
【０１０９】
そして、この停止指令をステップａ１６の判定処理で検出したロボット制御装置２側のＣＰＵ１２が産業用ロボット２の再生動作と溶接ガン１０の作動を停止させ、ワークやロボットおよびエンドエフェクタの損傷を防止する。
【０１１０】
この結果、ロボット制御装置２側のＣＰＵ１２の処理でロボットアームの退避処理が開始され、プログラムカウンタｉの値が０に初期化されるので（ステップａ２２参照）、次周期以降のトラッキング制御処理ではステップｂ２の判定結果が定常的に偽となり、実質的なトラッキング制御（ステップｂ３以降の処理）は非実行とされることになる。
【０１１１】
これに対し、当該処理周期で読み込まれたステイタス記憶レジスタｆ２の値が２でステップｂ２４の判定結果およびステップｂ２９の判定結果が共に偽となった場合、つまり、現時点でロボットアームを移動させている教示経路のブロックに部分溶接によるワークの仮付けが行なわれていると判定された場合には、溶接ガン１０がエンドエフェクタ位置調整手段により位置調整された状態で実経路に沿って適切に移動しているにも関わらずセンサ部２９が仮付け部の輪郭を拾って偏差の値が増大しているといった可能性がある。
【０１１２】
この場合、ＣＰＵ２０は、許容回数記憶手段としての不揮発性メモリ２３から異常検出許容回数Ｘ２の設定値を読み込み、カウンタＣで計数されている異常の連続発生回数の値と異常検出許容回数Ｘ２との大小関係を比較する（ステップｂ３０）。
【０１１３】
ここで、ステップｂ３０の判定結果が真となった場合には、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた連続サンプリング回数が比較的少ないことを意味するので、異常検出手段として機能するＣＰＵ２０は、センサ部２９が仮付け部の輪郭を拾って一時的に偏差の値が増大するセンサ異常が発生しているものと判定し、仮付け部の影響によるセンサ異常を示す異常検出信号を出力して、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタに仮付け部の影響によるセンサ異常の発生を示すメッセージを表示して、オペレータの注意を喚起する（ステップｂ３１）。
【０１１４】
この場合、溶接ガン１０自体は、エンドエフェクタ位置調整手段により位置調整された状態で実経路に沿って適切に移動しているものと考えられるので、補正値更新手段としてのＣＰＵ２０は、ステップｂ１１〜ステップｂ１４の処理をスキップすることにより、ステップｂ１０の判定結果が偽となった時点でクランプされた補正値の値、つまり、サンプリングされた偏差が許容偏差Ｔｒの範囲を越える直前のサンプリング周期でサンプリングされた偏差の値を補正値として其のまま保持し、前記と同様にしてステップｂ１５およびステップｂ１６の処理を実行することで溶接ガン１０の先端位置を実経路に合わせる。
【０１１５】
一方、ステップｂ３０の判定結果が偽となった場合には、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた連続サンプリング回数が多く、仮付け部が適切に接合されていない可能性が高いので、異常検出手段として機能するＣＰＵ２０は、溶接作業を継続することは適切でないと判定し、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタに仮付け部の影響によるセンサ異常の発生を示すメッセージを表示したまま、入出力回路２６と通信線３０および入出力インターフェイス１９を介してロボット制御装置２に停止指令となる異常検出信号を出力する（ステップｂ３２）。
【０１１６】
そして、この停止指令をステップａ１６の判定処理で検出したロボット制御装置２側のＣＰＵ１２が産業用ロボット２の再生動作と溶接ガン１０の作動を停止させ、ワークやロボットおよびエンドエフェクタの損傷を防止する。
【０１１７】
この結果、ロボット制御装置２側のＣＰＵ１２の処理でロボットアームの退避処理が開始され、プログラムカウンタｉの値が０に初期化されるので（ステップａ２２参照）、次周期以降のトラッキング制御処理ではステップｂ２の判定結果が定常的に偽となり、実質的なトラッキング制御（ステップｂ３以降の処理）は非実行とされることになる。
【０１１８】
また、当該処理周期で読み込まれたステイタス記憶レジスタｆ２の値が１でステップｂ２４の判定結果が偽かつステップｂ２９の判定結果が真となった場合、つまり、現時点でロボットアームを移動させている教示経路のブロックにクランプによるワークの固定が行なわれていると判定された場合には、溶接ガン１０がエンドエフェクタ位置調整手段により位置調整された状態で実経路に沿って適切に移動しているにも関わらずセンサ部２９がクランプの輪郭を拾って偏差の値が増大しているといった可能性がある。
【０１１９】
この場合、ＣＰＵ２０は、許容回数記憶手段としての不揮発性メモリ２３から異常検出許容回数Ｘ３の設定値を読み込み、カウンタＣで計数されている異常の連続発生回数の値と異常検出許容回数Ｘ３との大小関係を比較する（ステップｂ３３）。
【０１２０】
ここで、ステップｂ３３の判定結果が真となった場合には、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた連続サンプリング回数が比較的少ないことを意味するので、異常検出手段として機能するＣＰＵ２０は、センサ部２９がクランプの輪郭を拾って一時的に偏差の値が増大するセンサ異常が発生しているものと判定し、クランプの影響によるセンサ異常を示す異常検出信号を出力して、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタにクランプの影響によるセンサ異常の発生を示すメッセージを表示して、オペレータの注意を喚起する（ステップｂ３４）。
【０１２１】
この場合、溶接ガン１０自体は、エンドエフェクタ位置調整手段により位置調整された状態で実経路に沿って適切に移動しているものと考えられるので、補正値更新手段としてのＣＰＵ２０は、ステップｂ１１〜ステップｂ１４の処理をスキップすることにより、ステップｂ１０の判定結果が偽となった時点でクランプされた補正値の値、つまり、サンプリングされた偏差が許容偏差Ｔｒの範囲を越える直前のサンプリング周期でサンプリングされた偏差の値を補正値として其のまま保持し、前記と同様にしてステップｂ１５およびステップｂ１６の処理を実行することで溶接ガン１０の先端位置を実経路に合わせる。
【０１２２】
一方、ステップｂ３３の判定結果が偽となった場合には、教示経路と実経路との間の偏差が許容偏差Ｔｒの範囲を越えた連続サンプリング回数が多く、クランプによる固定が適切に行なわれていない可能性が高いので、異常検出手段として機能するＣＰＵ２０は、溶接作業を継続することは適切でないと判定し、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタにクランプの影響によるセンサ異常の発生を示すメッセージを表示したまま、入出力回路２６と通信線３０および入出力インターフェイス１９を介してロボット制御装置２に停止指令となる異常検出信号を出力する（ステップｂ３５）。
【０１２３】
そして、この停止指令をステップａ１６の判定処理で検出したロボット制御装置２側のＣＰＵ１２が産業用ロボット２の再生動作と溶接ガン１０の作動を停止させ、ワークやロボットおよびエンドエフェクタの損傷を防止する。
【０１２４】
この結果、ロボット制御装置２側のＣＰＵ１２の処理でロボットアームの退避処理が開始され、プログラムカウンタｉの値が０に初期化されるので（ステップａ２２参照）、次周期以降のトラッキング制御処理ではステップｂ２の判定結果が定常的に偽となり、実質的なトラッキング制御（ステップｂ３以降の処理）は非実行とされることになる。
【０１２５】
ここで、異常検出許容回数Ｘ１，Ｘ２，Ｘ３の大小関係は、一般的に、Ｘ１＜Ｘ２＜Ｘ３として設定される。その理由は、仮付けやクランプが存在しない経路では専らワーク上の傷や凹凸あるいは汚れ等の外乱によってセンサ異常が発生するのが普通で、比較的値の小さな異常検出許容回数Ｘ１を判定基準として、外乱によるセンサ異常とワークの形状異常等を始めとする実質的な異常とを明確に識別できるからである。
一方、仮付けがある場合には、仮付け部の溶接自体が外乱として作用してセンサ異常が発生する場合があるが、仮付け部の大きさが一般的な傷や凹凸あるいは汚れ等に比べて大きいため、仮付け部の検出によって溶接動作が不用意に停止することがないように、異常検出許容回数Ｘ２の値を異常検出許容回数Ｘ１の値よりも大きく設定する。
更に、クランプの大きさは一般的に仮付け部の溶接跡に比べて大きいので、前記と同様、クランプの検出によって溶接動作が不用意に停止することがないように、異常検出許容回数Ｘ３の値を異常検出許容回数Ｘ２の値よりも大きく設定するようにしている。
【０１２６】
これに対し、ステップｂ４の判定結果が偽となっている場合、つまり、現時点で補間処理を実行しているブロックに対してブロック間指定の許容偏差を適用する旨の設定が行なわれている場合には、サンプリング偏差判定手段としてのＣＰＵ２０は、ステップｂ５〜ステップｂ１０までの処理をスキップし、これらの処理に代えて、プログラムカウンタｉの現在値に基いて図８のブロック間偏差記憶テーブルから該ｉ番目のブロック、つまり、現時点で補間処理を実行している区間のブロックに対して設定されたブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の値を読み込み（ステップｂ３６）、更に、相対偏差検出手段の一部を構成するセンサ部２９からの出力を入出力回路２５を介して読み込んで、教示操作で与えられた溶接ガン１０の先端位置と実際の溶接線との間で移動経路に直行する方向に生じている偏差を求め（ステップｂ３７）、この偏差がマイナス方向の許容偏差Ｔｘｉ−とプラス方向の許容偏差Ｔｘｉ＋との間に収まっているか否かを判定する処理を実行する（ステップｂ３８）。
【０１２７】
つまり、ブロック間指定の許容偏差を適用する旨の設定が行なわれている場合においては、現時点で実行対象となっているブロックの補間処理が直線補間であるのか円弧補間であるのかとは関わりなく、予めブロック間偏差記憶テーブルに設定されたブロック間指定の許容偏差に基いて判定処理が行なわれることになる。図８に示される通り、各区間毎の許容偏差はブロック毎に、しかも、ロボットアームの移動方向を基準とする左（マイナス）と右（プラス）の方向に対して個別に任意の値を設定することが可能である。
【０１２８】
ここで、ステップｂ３８の判定結果が真となった場合には、教示経路と実経路とが概ね一致しており、仮に、アーム先端位置（教示経路）と溶接線（実経路）との間に多少のズレがあったとしても、エンドエフェクタ位置調整手段の一部を構成する駆動部２８によって溶接ガン１０の位置を教示経路と直行する方向に調整することで溶接ガン１０の先端を溶接線上に容易に位置決めできることを意味するので、補正値更新手段として機能するＣＰＵ２０は、当該処理周期のステップｂ３７の処理で求められた偏差を補正値として更新記憶することで補正値の値を最適化する（ステップｂ１１）。次いで、ＣＰＵ２０は、トラッキング動作における異常の有無を記憶する動作状態記憶フラグｆ３に異常なしを示す値０をセットし（ステップｂ１２）、この時点で既に何等かの異常検出信号の出力が行なわれている場合には（ステップｂ１３）、其の信号の出力を停止して、異常が回復されたことを記憶する（ステップｂ１４）。
【０１２９】
次いで、エンドエフェクタ位置調整手段の制御部におけるオフセット調整機能実現手段として機能するＣＰＵ２０が、不揮発性メモリ２３からユーザ設定のオフセット量を読み込み（ステップｂ１５）、エンドエフェクタ位置調整手段の制御部およびオフセット調整機能実現手段として機能するＣＰＵ２０が、ステップｂ１１の処理で更新された補正値の値にオフセット量を加算し、この加算値に応じて入出力回路２５を介してエンドエフェクタ位置調整手段の一部を構成する駆動部２８に駆動指令を出力し、ロボットアームの位置および姿勢を保持したまま溶接ガン１０のみを教示経路に直行する方向に移動させて、溶接ガン１０の先端位置を実経路、つまり、突き合せ溶接の場合には溶接線上に、また、重ね隅肉溶接の場合には溶接線から数ミリ内側の溶接対象位置に合わせる（ステップｂ１６）。
【０１３０】
一方、当該処理周期のステップｂ３８の判定結果が偽となった場合、つまり、教示経路と実経路との間の偏差が当該ブロックに対して設定されたブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れていると判定された場合には、溶接ガン１０が位置調整された状態で実経路に沿って適切に移動しているにも関わらずセンサ部２９がワーク上の傷や凹凸あるいは汚れ等の外乱を拾って偏差の値が増大している可能性や、溶接ガン１０が位置調整された状態で実経路に沿って適切に移動しているにも関わらずセンサ部２９がワークの仮付け部やクランプ部の輪郭を拾って偏差の値が増大している可能性、あるいは、ワークの形状異常やワーク置台に対するワークのセッティングミス等によって教示経路が実経路に対して全く適合しなくなってしまっている可能性等が考えられる。
【０１３１】
このような場合、計数手段の一部として機能するＣＰＵ２０は、まず、動作状態記憶フラグｆ３に０がセットされているのか１がセットされているのか、つまり、当該処理周期以前のトラッキング制御処理で教示経路と実経路との間の偏差がブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れた履歴があるか否かを判定する（ステップｂ１７）。
【０１３２】
ステップｂ１７の判定結果が真となった場合には当該処理周期以前のトラッキング制御処理で教示経路と実経路との間の偏差がブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れた履歴がないことを意味するので、ＣＰＵ２０は、動作状態記憶フラグｆ３に１をセットして最初の異常の発生を記憶し（ステップｂ１８）、計数手段として機能するカウンタＣの値を一旦０に初期化すると共に（ステップｂ１９）、該カウンタＣの値を改めて１インクリメントすることによって、第１回目の異常の発生を計数する（ステップｂ２０）。
【０１３３】
一方、ステップｂ１７の判定結果が偽となった場合には、当該処理周期以前のトラッキング制御処理で教示経路と実経路との間の偏差がブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れた履歴が既に存在することを意味するので、ＣＰＵ２０は、ステップｂ１８およびステップｂ１９の処理をスキップし、計数手段として機能するカウンタＣの値を１インクリメントすることで、連続的に発生する異常の発生回数を積算的に計数する（ステップｂ２０）。
【０１３４】
次いで、ＣＰＵ２０は、ロボット制御装置２のＲＡＭ１４にアクセスしてブロック間指定記憶レジスタｆ０の現在値を読み込み（ステップｂ２１）、レジスタｆ０の現在値が０であるのか１であるのか、つまり、現時点で補間処理を実行しているブロックに対してブロック間指定の許容偏差を適用する必要があるか否かを判定する（ステップｂ２２）。
【０１３５】
この場合、ブロック間指定記憶レジスタｆ０にはブロック間指定の許容偏差を適用する旨の設定値１がセットされているので、ステップｂ２２の判定結果は偽となる。
【０１３６】
従って、ＣＰＵ２０は、許容回数記憶手段としての不揮発性メモリ２３からブロック間指定の許容偏差を適用する場合の異常検出許容回数Ｘ４の設定値を読み込み、カウンタＣで計数されている異常の連続発生回数の値と異常検出許容回数Ｘ４との大小関係を比較する（ステップｂ３９）。
【０１３７】
ここで、ステップｂ３９の判定結果が真となった場合には、教示経路と実経路との間の偏差がブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れた連続サンプリング回数が比較的少ないことを意味するので、異常検出手段として機能するＣＰＵ２０は、ワーク上の傷や凹凸あるいは汚れ等の外乱もしくは仮付け部やクランプ部の輪郭を拾ったことによる一時的なセンサ異常が発生しているものと判定し、一時的なセンサ異常を示す異常検出信号を出力して、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタにセンサ異常の発生を示すメッセージを表示して、オペレータの注意を喚起する（ステップｂ４１）。
【０１３８】
この場合、溶接ガン１０自体は、エンドエフェクタ位置調整手段により位置調整された状態で実経路に沿って適切に移動しているものと考えられるので、補正値更新手段としてのＣＰＵ２０は、ステップｂ１１〜ステップｂ１４の処理をスキップすることにより、ステップｂ３８の判定結果が偽となった時点でクランプされた補正値の値、つまり、サンプリングされた偏差がブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れる直前のサンプリング周期でサンプリングされた偏差の値を補正値として其のまま保持し、前記と同様にしてステップｂ１５およびステップｂ１６の処理を実行することで溶接ガン１０の先端位置を実経路に合わせる。
【０１３９】
一方、ステップｂ３９の判定結果が偽となった場合には、教示経路と実経路との間の偏差がブロック間指定の許容偏差Ｔｘｉ−とＴｘｉ＋の範囲を外れた連続サンプリング回数が多く、ワークの形状異常やワーク置台に対するワークのセッティングミス等が発生している可能性が高いので、異常検出手段として機能するＣＰＵ２０は、溶接作業を継続することは適切でないと判定し、トラッキング制御装置１の筐体２７あるいはロボット制御装置２に併設されたモニタにセンサ異常の発生を示すメッセージを表示したまま、入出力回路２６と通信線３０および入出力インターフェイス１９を介してロボット制御装置２に停止指令となる異常検出信号を出力する（ステップｂ４０）。
【０１４０】
そして、この停止指令をステップａ１６の判定処理で検出したロボット制御装置２側のＣＰＵ１２が産業用ロボット２の再生動作と溶接ガン１０の作動を停止させ、ワークやロボットおよびエンドエフェクタの損傷を防止する。
【０１４１】
この結果、ロボット制御装置２側のＣＰＵ１２の処理でロボットアームの退避処理が開始され、プログラムカウンタｉの値が０に初期化されるので（ステップａ２２参照）、次周期以降のトラッキング制御処理ではステップｂ２の判定結果が定常的に偽となり、実質的なトラッキング制御（ステップｂ３以降の処理）は非実行とされることになる。
【０１４２】
この実施形態では、ブロック間指定の許容偏差を適用する場合の異常検出許容回数Ｘ４の設定値としてブロックの区間に関わりなく常に一定の値を利用するようにしたが、各ブロックｉ毎に個別の異常検出許容回数Ｘ４ｉを設定するようにしてもよい。
その場合、各ブロック毎の異常検出許容回数Ｘ４ｉの値は図８のようなブロック間偏差記憶テーブルにＴｘｉ＋やＴｘｉ−と共に保存することが可能であり、前述したステップｂ３９の判定処理に際して、教示経路の区間に関する情報であるプログラムカウンタｉの現在値に基いてＸ４ｉの値を読み出すようにすればよい。
【０１４３】
また、既に図７を参照して説明した通り、教示経路中のブロックに対応させてブロック間指定の許容偏差の有無を示す値（ｆ０）やクランプの有無および仮付けの有無を示す値（ｆ２）を定義することは、必ずしも必須の要件ではない。
ロボット再生用のプログラムによっては各種のＧコード（送り指令）やＴコード（外部装置に対する指令）およびＦコード（速度指令）と其れに付随する位置指令等のオペランドの書き込みのみが可能であって、ユーザ定義によるステイタスを書き込めない場合もある。
其のような場合には、本実施形態で示した処理からステップｂ３，ステップｂ４の処理とステップｂ３６〜ステップｂ３８の処理およびステップｂ２１，ステップｂ２２の処理とステップｂ３９〜ステップｂ４１の処理、ならびに、ステップｂ２３，ステップｂ２４の処理とステップｂ２９〜ステップｂ３５の処理を取り除き、異常検出許容回数Ｘ１の値を調整するようにすれば適切なトラッキング制御の実施が可能である。
例えば、仮付けやクランプがない溶接作業の場合にはＸ１の値を比較的小さな値とし、仮付けがある場合にはＸ１の値を中程度の大きさとし、また、クランプ箇所もあるような溶接作業ではＸ１の値を相対的に大きく設定するようにする。
【０１４４】
また、ロボット制御装置２からトラッキング制御装置に補間形式（ｆ１）を転送することができない構造の場合には、本実施形態で示した処理からステップｂ６，ステップｂ７，ステップｂ８の処理を取り除き、円弧補間を許容する大き目の値Ｔｒ２を許容偏差Ｔｒとして利用するようにすれば、概ね同等の作用効果を達成することができる。
【０１４５】
通常、どのような産業用ロボットであっても、安全対策上、強制停止のためのインターロック機構と停止信号の入力機構を備えているので、トラッキング制御装置１の筐体２７をロボット制御装置２と完全に独立させて構成した場合であっても、溶接ガン１０の位置調整と、明らかな異常が発生した場合のロボットの緊急停止および溶接ガン１０の停止操作は産業用ロボットの構成と関わりなく実施することが可能である。
【０１４６】
以上、一実施形態として、トラッキング制御装置１の筐体２７をロボット制御装置２と完全に独立させて構成した例について述べたが、筐体２７の有する相対偏差検出手段，エンドエフェクタ位置調整手段，オフセット調整機能，サンプリング手段，サンプリング偏差判定手段，計数手段，補正値更新手段および異常検出手段の全ての機能をロボット制御装置２の側に配備することも可能である。
一般に、ロボット制御装置２側の処理は、再生動作のためのプログラムの読み込みや駆動制御のための実行データの作成およびパルス分配処理等を所定周期毎のマルチタスクとして実行するように構成されており、また、図１０〜図１２の説明でも明らかなように、本実施形態のトラッキング制御は所定周期毎に繰り返し実行される処理として構成されたものであるから、このトラッキング制御をロボット制御装置２側のマルチタスクの１つとして組み込んでＣＰＵ１２に実行させることは容易である。しかも、ロボット制御装置２側の軸制御回路１８は、周辺装置等の付加軸の追加を想定してロボット本体に必要とされる軸数よりも多めのチャンネルに対処できるように構成されているので、この付加軸用のチャンネルを利用してエンドエフェクタ位置調整手段の駆動部２８を制御することも可能である。
【０１４７】
ここでは一例としてロボットアームの先端に装着された溶接ガンを実経路にトラッキングさせる場合について述べているが、その他のエンドエフェクタ、例えば、吸着パッドを備えたハンドリングツール等に対しても本実施形態と同等の構成を適用することができる。
【０１４８】
更に、本実施形態のトラッキング制御装置１は、溶接時における経路補正のための装置として以外にも、ワークの異常、あるいは、ワークのセッティングの適否、更には、教示操作の適不適を検出するための異常検出装置として流用することが可能である。
このような利用目的に本装置を使用する場合には、溶接ガン１０の作動を禁止した状態でロボットを教示経路に沿ってドライサイクルで運転させるようにする。
ワークの形状に異常があったり仮付け部あるいはクランプ部に異常が生じている場合、もしくは、教示操作自体に誤りがあったような場合には、前述したステップｂ２７，ステップｂ３１，ステップｂ３４，ステップｂ４１の処理によって異常の可能性を示すメッセージがモニタ上に表示されるので、オペレータは、これらの異常表示を参照して実際の異常の有無を確認することが可能である。
【０１４９】
【発明の効果】
本発明のトラッキング制御装置は、教示経路と実経路との偏差をそのまま補正値として利用することによってエンドエフェクタの位置を実経路に合わせて調整するようにしているので、エンドエフェクタの位置の調整のために複雑な演算処理を行う必要がなく、演算処理の遅延に伴う補正制御の遅れが軽減される。
また、実経路上の仮付け部のエッジやワークの傷または凹凸あるいは汚れ等の影響により本来は存在しない筈の過大な偏差が検出された場合には、許容偏差の範囲を越える直前のサンプリング周期でサンプリングされた偏差、つまり、外乱が作用する以前の正常な状態で検出された偏差を引き続き補正値として利用するようにしているので、外乱による影響に惑わされることなくエンドエフェクタの移動経路を適正化することができる。
従って、外乱となる可能性のある仮付け部等の位置を教示操作の段階でロボットの駆動制御プログラム中に定義しておく必要はなく、教示操作の簡便化が可能である。また、ワーク毎に仮付け部等の位置に相違があるような場合であっても、この相違を吸収してエンドエフェクタの移動経路を適正化することが可能である。
更に、ロボット全体に対して補正動作を行わせることなくエンドエフェクタの位置のみを調整するようにしているので、最小限度の慣性抵抗で素早くエンドエフェクタの位置を調整することができ、慣性抵抗に起因する補正制御の遅れも軽減される。
【０１５０】
また、教示経路の補間形式に応じて異常検出のための許容偏差を選択するようにしているので、補間形式の相違によって移動経路に対するセンサ位置のトレランスが変動するような場合であっても、実経路に対する位置ズレ等の異常の有無を的確に判定することができる。
【０１５１】
更に、教示経路の補間形式とは無関係に、教示経路の各区間毎に許容偏差を選択できるようにもしているので、溶接等の作業に必要とされる各区間毎の実質的なトラッキング精度に応じ、教示経路の各区間毎に適正な許容偏差を適用することができ、例えば、高い精度が必要とされる部分の異常判定が雑になったり、あるいは、精度を要求されない部分の異常判定が必要以上にシビアになったりするといった問題を容易に解消することができる。
無論、全ての教示区間に対して共通の許容偏差を設定することも可能であり、この場合は、全体としてラフなトラッキング制御や全体としてシビアなトラッキング制御に対応することができる。
【０１５２】
また、教示経路の各区間に許容偏差を設定する場合においては、教示経路を基準として教示経路に直交する２つの方向、つまり、ロボットアームの移動方向を基準とする左右の方向に対して許容偏差を左右個別に設定するようにしているので、例えば、ロボットアームの送り速度の違い、更には、移動経路上の円弧部分の緩急や産業用ロボット自体の構造上の特性の違い等を考慮して、常に最適の許容偏差に基く異常判定を実施することができ、例えば、重ね隅肉溶接のように、許容できるズレが左右方向で異なるような場合のトラッキング制御にも容易に対処することができる。
【０１５３】
更に、サンプリングされた偏差が許容偏差の範囲を越えている間のサンプリング回数を計数し、計数値が予め設定された異常検出許容回数を越えた段階で異常検出信号を出力するようにしているので、ワーク形状や仮付けの状態に極端な異常がある場合、または、ワークのクランプミス等によってワークの位置や姿勢に大幅なズレが生じているような場合であっても、不適当な補正制御の継続によってエンドエフェクタが実経路から逸脱するような弊害を生じることなく、本質的な異常の発生を的確に検知することができる。
【０１５４】
しかも、異常な偏差の連続発生回数を計数し、発生回数に応じた異常検出信号を出力するようにしているので、異常の種別を具体的に把握することが可能である。
【０１５５】
また、異常検出信号のうちの一つをロボット制御装置に対する停止指令によって構成し、ワーク形状や仮付けの状態に極端な異常がある場合、または、ワークのクランプミス等によってワークの位置や姿勢に大幅なズレが生じているような場合には、ロボット制御装置側の動作を強制的に停止させるようにしているので、加工異常の発生やワークの損傷を防止することができる。
【０１５６】
更に、オフセット量を加味してエンドエフェクタ位置を調整するようにしているので、ロボット制御装置側の駆動制御プログラム（教示データ）に格別な変更を加えることなく、突き合せ溶接や重ね隅肉溶接等を始めとする様々な作業に対応してエンドエフェクタ位置を適正化することができる。
【０１５７】
また、エンドエフェクタ位置の調整に必要とされる駆動部と偏差の検出に必要とされるセンサ部をロボットアームの先端とエンドエフェクタとを接続するアタッチメントに配備するようにしているので、従来型の産業用ロボットにハードウェア上の改変を何ら施すことなく、演算処理の遅延に伴う補正制御の遅れや慣性抵抗に起因する補正制御の遅れを軽減することができる。
【０１５８】
更に、エンドエフェクタの位置調整に必要とされる制御部の全てをロボット制御装置と独立してトラッキング制御装置の筐体に配備しているので、ロボット制御装置にハードウェアおよびソフトウェア上の改変を施すことなく演算処理の遅延に伴う補正制御の遅れや慣性抵抗に起因する補正制御の遅れを軽減することが可能である。
【０１５９】
しかも、ロボット制御装置とトラッキング制御装置の筐体とをデータ通信可能に接続することでロボット制御装置からトラッキング制御装置の側に教示経路の補間形式や教示経路の区間に関する情報を転送すると共に、トラッキング制御装置からロボット制御装置の側には停止指令によって構成される異常検出信号を転送できるようにしているので、トラッキング制御装置がロボット制御装置と独立して配備されている場合であっても、ロボット制御装置によって実行されている補間処理の形式に基いて、異常の有無を判定するための適切な許容偏差を選択することが可能であり、また、許容できない異常、例えば、クランプの異常等が検出された場合には、トラッキング制御装置からの停止指令によってロボット制御装置によるロボットの駆動制御を強制停止させてワークやロボットおよびエンドエフェクタの損傷を防止することができる。
【図面の簡単な説明】
【図１】本発明が目的を達成するために採用した手段の概略について示したブロック図である。
【図２】ロボットアーム先端に対するセンサ部とエンドエフェクタの取り付け位置の一例をセンサ部とエンドエフェクタとの相対位置の関係で示した概念図である。
【図３】補間形式の相違によって生じるエンドエフェクタとセンサ部の移動経路の相違を示した概念図である。
【図４】突き合せ溶接で適切とされるエンドエフェクタ（溶接ガン）の経路を示した概念図である。
【図５】重ね隅肉溶接で適切とされるエンドエフェクタ（溶接ガン）の経路の一例を示した概念図である。
【図６】本発明を適用した一実施形態のトラッキング制御装置の構成の概略について示した機能ブロック図である。
【図７】産業用ロボットの駆動制御プログラムの一例を図式化して示した概念図である。
【図８】ブロック間偏差記憶テーブルの一例を示した概念図である。
【図９】ロボット制御装置のＣＰＵによる再生処理の概略を示したフローチャートである。
【図１０】トラッキング制御装置の筐体に配備されたＣＰＵによって実行されるトラッキング制御について示したフローチャートである。
【図１１】トラッキング制御について示したフローチャートの続きである。
【図１２】トラッキング制御について示したフローチャートの続きである。
【図１３】偏差の変動と適用すべき補正値との関係を一例で示した概念図である。
【符号の説明】
１  トラッキング制御装置
２  ロボット制御装置
３  産業用ロボット
４  ベースプレート
５  ロボット本体
６  第一アーム
７  第二アーム
８  第三アーム
９  リスト
１０  溶接ガン（エンドエフェクタ）
１１  アタッチメント
１２  ＣＰＵ
１３  ＲＯＭ
１４  ＲＡＭ
１５  不揮発性メモリ
１６  モニタ付手動データ入力装置
１７  教示操作盤
１８  軸制御回路
１９  入出力インターフェイス
２０  ＣＰＵ（相対偏差検出手段の制御部，エンドエフェクタ位置調整手段の制御部，エンドエフェクタ位置調整手段におけるオフセット調整機能，サンプリング手段，サンプリング偏差判定手段，計数手段，補正値更新手段，異常検出手段）
２１  ＲＯＭ
２２  ＲＡＭ
２３  不揮発性メモリ（許容回数記憶手段）
２４  モニタ付手動データ入力装置
２５  入出力回路
２６  入出力インターフェイス
２７  筐体
２８  駆動部（エンドエフェクタ位置調整手段の一部）
２９  センサ部（相対偏差検出手段の一部）
３０  通信線
（Ａ）  相対偏差検出手段
（ａ１）  相対偏差検出手段のセンサ部
（ａ２）  相対偏差検出手段の制御部
（Ｂ）  エンドエフェクタ位置調整手段
（ｂ１）  エンドエフェクタ位置調整手段の駆動部
（ｂ２）  エンドエフェクタ位置調整手段の制御部
（Ｃ）  サンプリング手段
（Ｄ）  サンプリング偏差判定手段
（Ｅ）  補正値更新手段
（Ｆ）  エンドエフェクタ
（Ｇ）  ロボット制御装置
（Ｈ）  ロボット本体
（Ｉ）  ロボットアーム
（Ｊ）  計数手段
（Ｋ）  異常検出手段
（Ｌ）  許容回数記憶手段
（Ｍ）  異常検出信号
（ｍ１）  異常検出信号の一つ
（ｍ２）  停止指令（異常検出信号の一つ）
（Ｎ）  オフセット調整機能
（Ｑ）  アタッチメント
（Ｒ）  トラッキング制御装置の筐体
【図１】
2004160578.tif 000003
【図２】
2004160578.tif 000004
【図３】
2004160578.tif 000005
【図４】
2004160578.tif 000006
【図５】
2004160578.tif 000007
【図６】
2004160578.tif 000008
【図７】
2004160578.tif 000009
【図８】
2004160578.tif 000010
【図９】
2004160578.tif 000011
【図１０】
2004160578.tif 000012
【図１１】
2004160578.tif 000013
【図１２】
2004160578.tif 000014
【図１３】
2004160578.tif 000015