(57)【要約】【課題】スポット溶接システムにおいて、可動電極による溶接ワークの表面位置の検出精度を向上させる。【解決手段】サーボモータ３４によって駆動される可動電極３０とこれと対向して配置される対向電極３２とを有するスポット溶接ガン１４と、溶接ワークＷとスポット溶接ガンの一方を保持する多関節ロボット１２とを備えるスポット溶接システムにおいて、可動電極３０と溶接ワークＷとを接近させるように相対移動させて、相対移動中に可動電極３０の移動速度及び加速度の少なくとも一方を監視し、可動電極３０の移動速度又は加速度が変化したときに、可動電極が溶接ワークＷに接触したと判断して、このときの可動電極３０の位置と多関節ロボット１２の位置とから溶接ワークＷの可動電極側表面の位置を検出する。【選択図】図１
2011092981.tif 000002
【特許請求の範囲】
【請求項１】
サーボモータによって駆動される可動電極と該可動電極と対向して配置される対向電極とを有するスポット溶接ガンと、前記スポット溶接ガンと溶接ワークのうちの一方を保持し他方に対して相対移動させる多関節ロボットとを備え、前記サーボモータによって前記可動電極と前記対向電極とを接近、離反させ、前記スポット溶接ガンの前記可動電極と前記対向電極との間に前記溶接ワークを挟んで前記溶接ワークのスポット溶接を行うスポット溶接システムにおいて、前記可動電極が接触する前記溶接ワークの表面位置を検出する溶接ワーク位置検出方法であって、
前記可動電極と前記溶接ワークとを互いに離れた状態から接近させるように相対移動させて、前記可動電極と前記溶接ワークとの相対移動中に前記対向電極に対する前記可動電極の移動速度及び加速度の少なくとも一方を監視し、前記対向電極に対する前記可動電極の移動速度又は加速度が変化したときに、前記可動電極が前記溶接ワークに接触したと判断して、前記移動速度又は加速度が変化したときの前記可動電極の位置と前記多関節ロボットの位置とから前記溶接ワークの表面位置を求めることを特徴とする溶接ワーク位置検出方法。
【請求項２】
前記可動電極を駆動する前記サーボモータにトルクリミットを設定した状態で、前記可動電極と前記溶接ワークとを互いに離れた状態から接近させるように相対移動させる、請求項１に記載の溶接ワーク位置検出方法。
【請求項３】
前記サーボモータのトルクリミットは、少なくとも前記対向電極に対する前記可動電極の移動速度を一定に維持するのに必要なトルク値に定められる、請求項２に記載の溶接ワーク位置検出方法。
【請求項４】
前記サーボモータのトルクリミットは、前記可動電極と前記溶接ワークとの相対移動の開始後で且つ前記可動電極と前記溶接ワークとの接触前の予備動作区間を前記可動電極が移動しているときの前記サーボモータのトルクの値に基づいて定められる、請求項３に記載の溶接ワーク位置検出方法。
【請求項５】
前記可動電極と前記溶接ワークとの相対移動は、前記対向電極に対して前記可動電極を接近させるように前記サーボモータによって前記可動電極を駆動することによって行われる、請求項１から請求項４の何れか一項に記載の溶接ワーク位置検出方法。
【請求項６】
前記可動電極と前記溶接ワークとの相対移動は、前記多関節ロボットを用いて前記対向電極と前記可動電極とを接近させるように前記溶接ワークと前記スポット溶接ガンとを相対移動させることによって行われる、請求項１から請求項４の何れか一項に記載の溶接ワーク位置検出方法。
【請求項７】
前記多関節ロボットを用いて前記溶接ワークと前記可動電極とを接近させるように前記溶接ワークと前記スポット溶接ガンとを相対移動させるとき、同時に前記サーボモータによって駆動して前記対向電極に対して前記可動電極を速度Ｖｇで移動させる、請求項６に記載の溶接ワーク位置検出方法。
【請求項８】
前記速度Ｖｇは、前記可動電極を駆動するための機構の静摩擦が除去できる程度の速度である、請求項７に記載の溶接ワーク位置検出方法。
【請求項９】
前記可動電極が前記対向電極へ接近する方向を正として、前記対向電極に対する前記可動電極の移動速度が一定から減少に転じたとき又は前記対向電極に対する前記可動電極の加速度が０から負の値に転じたときに、前記対向電極に対する前記可動電極の移動速度又は加速度が変化したと判断する、請求項１から請求項８の何れか一項に記載の溶接ワーク位置検出方法。
【請求項１０】
前記可動電極が前記対向電極へ接近する方向を正として、前記対向電極に対する前記可動電極の移動速度及び加速度の少なくとも一方の値又は単位時間当たりの変化量が負の閾値以下になった時点から、前記対向電極に対する前記可動電極の移動速度又は加速度の時系列波形に沿って時刻を遡り、前記対向電極に対する前記可動電極の移動速度又は加速度の単位時間当たりの変化量が負の値から０又は正の値に変化する時点に、前記対向電極に対する前記可動電極の移動速度が一定から減少に転じた又は前記対向電極に対する前記可動電極の加速度が０から負に転じたと判断する、請求項９に記載の溶接ワーク位置検出方法。
【請求項１１】
溶接を行うプログラム命令を実行することによって、前記溶接ワーク位置検出方法が実施される、請求項１から請求項１０の何れか一項に記載の溶接ワーク位置検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多関節ロボットを用いて溶接ワークとスポット溶接ガンとを相対移動させ、スポット溶接ガンの対向する可動電極と対向電極との間に溶接ワークを挟んで溶接ワークのスポット溶接を行うスポット溶接システムにおいて可動電極が接触する溶接ワークの表面位置を検出する溶接ワーク位置検出方法に関する。
【背景技術】
【０００２】
スポット溶接システムは、サーボモータによって駆動される可動電極とこれと対向して配置される対向電極とを有したスポット溶接ガンと、スポット溶接ガンを先端に保持する多関節ロボットとを備えており、多関節ロボットを用いて溶接ワークとスポット溶接ガンとを相対移動させた後、溶接ワーク上の予め定められた打点位置へ向かってスポット溶接ガンの可動電極と対向電極とを閉じてスポット溶接ガンの可動電極と対向電極との間に溶接ワークを挟み、この状態で両電極間に電圧を印加することによって打点位置でスポット溶接を行う。このようなスポット溶接システムによるスポット溶接作業では、溶接ワーク上の打点位置に可動電極及び対向電極を位置決めできるように、打点位置における溶接ワークの可動電極側表面位置と対向電極側表面位置を多関節ロボットに予め教示する必要がある。
【０００３】
教示作業では、作業者が溶接ワークの位置を目視にて確認し、多関節ロボットを操作して、スポット溶接ガンの可動電極と対向電極を閉じたときに溶接ワークの打点位置に可動電極及び対向電極が接触するような位置までスポット溶接ガンを移動させ、スポット溶接ガンを所望の位置に移動させた後に、多関節ロボットの位置及び可動電極の位置を記憶させている。すなわち多関節ロボットの位置及び可動電極の位置については、溶接ワークの位置に基づいた位置を教示することになる。
【０００４】
上記のような教示作業では、可動電極及び対向電極が溶接ワークの表面に適切に接触できるように教示していく必要がある。このような可動電極及び対向電極と溶接ワークとの接触の判断を作業者の目視によって行うと、作業者の錬度や、目視のしにくい作業環境によっては接触を正確に検出できず、打点位置における溶接ワークの可動電極側表面位置及び対向電極側表面位置の検出も不正確になる。
【０００５】
この問題を解決するために、例えば特許文献１は、可動電極がサーボモータの駆動によって対向電極に向かって移動され溶接ワークの表面に接触したときに、撓みや凹みのような溶接ワークの弾性変形による反力が溶接ワークから可動電極へ作用することによってサーボモータの電流値（すなわちトルク値）が増加することを利用して、サーボモータの電流値が予め定められた閾値に達したときに可動電極と溶接ワークとが接触したと判断すると共に、対向電極が多関節ロボットによって溶接ワークとスポット溶接ガンとを相対移動させることによって溶接ワークへ向かって移動され溶接ワークの表面に接触したときに、溶接ワークの弾性変形によって溶接ワークから多関節ロボットへの反力が発生することを利用して、多関節ロボットへの反力が予め定められた値に達したときに対向電極と溶接ワークとが接触したと判断する方法を提案している。
【０００６】
また、特許文献２は、特許文献１と同じ方法で可動電極と溶接ワークとの接触を検出したと判断した後、このときの可動電極と対向電極との間隔と溶接ワークの設定厚さとの差分値だけ対向電極を溶接ワークに向かって移動させた位置に対向電極を位置決めする方法を提案している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３３３７４４８号公報
【特許文献２】特許第４２３３５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１及び特許文献２に開示される方法では、溶接ワークの可動電極側表面位置を検出する際に、サーボモータによって可動電極を駆動して対向電極に向かって接近させるように移動させるときに可動電極を駆動するサーボモータの電流値又はトルク値を監視するようにしている。しかしながら、可動電極がサーボモータによって駆動されて移動しているときには、スポット溶接ガンに存在する機械的な抵抗（例えば、駆動部分の内部摩擦や、可動電極と溶接トランスとを接続する導電部の弾性変形など）によって、可動電極を駆動するサーボモータの電流又はトルクに揺らぎや変動が発生して、不安定な状態になりやすい。このため、可動電極が溶接ワークに接触したときに生じるサーボモータの電流又はトルクの増加がスポット溶接ガンの機械的な抵抗によるゆらぎや変動に隠れてしまって、可動電極と溶接ワークとの接触時点を正確に特定するのが困難となったり、可動電極と溶接ワークとの接触の誤検出を起こすことがあった。
【０００９】
よって、本願発明の目的は、従来技術に存する上記問題を解消して、スポット溶接システムにおいて、可動電極による溶接ワークの表面位置の検出精度を向上させることにある。
【課題を解決するための手段】
【００１０】
上記目的に鑑み、本発明によれば、サーボモータによって駆動される可動電極と該可動電極と対向して配置される対向電極とを有するスポット溶接ガンと、前記スポット溶接ガンと溶接ワークのうちの一方を保持し他方に対して相対移動させる多関節ロボットとを備え、前記サーボモータによって前記可動電極と前記対向電極とを接近、離反させ、前記スポット溶接ガンの前記可動電極と前記対向電極との間に前記溶接ワークを挟んで前記溶接ワークのスポット溶接を行うスポット溶接システムにおいて、前記可動電極が接触する前記溶接ワークの表面位置を検出する溶接ワーク位置検出方法であって、前記可動電極と前記溶接ワークとを互いに離れた状態から接近させるように相対移動させて、前記可動電極と前記溶接ワークとの相対移動中に前記対向電極に対する前記可動電極の移動速度及び加速度の少なくとも一方を監視し、前記対向電極に対する前記可動電極の移動速度又は加速度が変化したときに、前記可動電極が前記溶接ワークに接触したと判断して、前記移動速度又は加速度が変化したときの前記可動電極の位置と前記多関節ロボットの位置とから前記溶接ワークの表面位置を求める溶接ワーク位置検出方法が提供される。
【００１１】
上記溶接ワーク位置検出方法では、前記可動電極を駆動する前記サーボモータにトルクリミットを設定した状態で、前記可動電極と前記溶接ワークとを互いに離れた状態から接近させるように相対移動させることが好ましい。
【００１２】
なお、対向電極に対する可動電極の移動速度、加速度の監視は、可動電極を駆動するためのサーボモータの回転速度、回転加速度の監視とそれぞれ等価であり、対向電極に対する可動電極の移動速度、加速度の監視には、可動電極を駆動するためのサーボモータの回転速度、回転加速度の監視がそれぞれ含まれるものとする。
【００１３】
上記可動電極による溶接ワーク位置検出方法では、可動電極を駆動するサーボモータの電流又はトルクを監視するのではなく、対向電極に対する可動電極の移動速度及び加速度の少なくとも一方を監視するようにしている。可動電極が溶接ワークに接触したときの可動電極を駆動するサーボモータの電流又はトルクの変動は、可動電極が溶接ワークから受ける反力によるものであり、サーボモータの特性やスポット溶接ガンの機械的な特性及びこれによる変動や揺らぎの影響を受ける。これに対して、対向電極に対する可動電極の移動速度又は加速度は、サーボモータに対する速度制御により一定になるように制御を受けるので、サーボモータの特性やスポット溶接ガンの機械的な特性に依存せず、スポット溶接ガンの機械的な特性による変動や揺らぎの影響も受けにくい。さらに、サーボモータにトルクリミットを設定しておけば、可動電極が溶接ワークに接触すると、速度制御下でも、対向電極に対する可動電極の移動速度は顕著に低下する。したがって、可動電極が溶接ワークに接触したときの対向電極に対する可動電極の移動速度又は加速度の変化は、サーボモータの電流又はトルクの変化よりも顕著となり、スポット溶接ガンの機械的な特性による変動や揺らぎの影響も受けにくくなるので、可動電極と溶接ワークとの接触時点を正確に検出することが可能となる。
【００１４】
上記溶接ワーク位置検出方法において、前記可動電極と前記溶接ワークとの相対移動は、前記対向電極に対して前記可動電極を接近させるように前記サーボモータによって前記可動電極を駆動することによって行われてもよく、前記多関節ロボットを用いて前記溶接ワークと前記可動電極とを接近させるように前記溶接ワークと前記スポット溶接ガンとを相対移動させることによって行われてもよい。特に後者によれば、可動電極の動作を最小限に抑えて、スポット溶接ガンの機械的な特性による変動や揺らぎの影響をより小さくするので、可動電極と溶接ワークとの接触時点をより正確に検出することが可能となる。
【００１５】
可動電極と溶接ワークとの相対移動が多関節ロボットを用いて溶接ワークとスポット溶接ガンとを相対移動させることによって行われる場合、前記多関節ロボットを用いて前記溶接ワークと前記可動電極とを接近させるように前記溶接ワークと前記スポット溶接ガンとを相対移動させるとき、同時に前記サーボモータによって駆動して前記対向電極に対して前記可動電極を速度Ｖｇで移動させることが好ましい。このように可動電極を駆動して移動させることで、スポット溶接ガンの可動電極駆動機構内に存在する静摩擦の影響を除去することが可能となる。また、前記速度Ｖｇは、前記可動電極を駆動するための機構の静摩擦が除去できる程度の速度とすることがさらに好ましい。このように可動電極の動作を最小限に抑えることによって、スポット溶接ガンの駆動部分に存在する静摩擦の影響を除去しつつスポット溶接ガンの機械的な特性による変動や揺らぎの発生も抑制し、より高い精度で接触を検出することが可能となる。
【００１６】
また、上記溶接ワーク位置検出方法では、前記サーボモータのトルクリミットは、少なくとも前記対向電極に対する前記可動電極の相対移動速度を一定に維持するのに必要なトルク値に定められることが好ましく、前記可動電極と前記溶接ワークとの相対移動の開始後で且つ前記可動電極と前記溶接ワークとの接触前の予備動作区間を前記可動電極が移動しているときの前記サーボモータのトルクの値に基づいて定められることがさらに好ましい。このようにトルクリミットを設定することによって、可動電極が溶接ワークに接触したときの可動電極の移動速度の低下をより顕著にして、接触の検出感度を向上させることができる。また、予備動作区間におけるサーボモータのトルクの値に基づいてトルクリミットを設定すれば、スポット溶接ガンごとにサーボモータのトルクリミットの設定値を実験的に予め求めておく必要がなくなる上に、スポット溶接ガンの機械的な特性の経時的な変化にも対応することが可能となる。
【００１７】
上記溶接ワーク位置検出方法では、例えば、前記可動電極が前記対向電極へ接近する方向を正として、前記対向電極に対する前記可動電極の移動速度が一定から減少に転じたとき又は前記対向電極に対する前記可動電極の加速度が０から負の値に転じたときに、前記対向電極に対する前記可動電極の移動速度又は加速度が変化したと判断することができる。この場合、一つの例として、前記対向電極に対する前記可動電極の移動速度及び加速度の少なくとも一方の値又は単位時間当たりの変化量が負の閾値以下になった時点から、前記対向電極に対する前記可動電極の移動速度又は加速度の時系列波形に沿って時刻を遡り、前記対向電極に対する前記可動電極の移動速度又は加速度の単位時間当たりの変化量が負の値から０又は正の値に変化する時点に、前記対向電極に対する前記可動電極の移動速度が一定から減少に転じた又は前記対向電極に対する前記可動電極の加速度が０から負に転じたと判断することができる。
【００１８】
さらに、上記溶接ワーク位置検出方法では、溶接を行うプログラム命令を実行することによって、前記可動電極による溶接ワーク位置検出を実施することもできる。このように予めロボット制御装置に記録しているスポット溶接プログラムを実行することで、可動電極による溶接ワーク位置検出の工程を実施できるようにすることで、作業者の作業手順を簡略化することができる。
【発明の効果】
【００１９】
本発明によれば、対向電極に対する可動電極の移動速度及び加速度の少なくとも一方を監視することにより、溶接ワークと可動電極との接触を検出し、接触時の可動電極の位置に基づいて溶接ワークの可動電極側表面位置を求めることができる。また、可動電極を駆動するサーボモータは速度制御を受けるので、対向電極に対する可動電極の移動速度及び加速度は、スポット溶接ガンの機械的な特性による変動や揺らぎの影響を受けにくい一方、さらにサーボモータにトルクリミットを設定しておけば、可動電極が溶接ワークに接触したとき、対向電極に対する可動電極の移動速度は顕著に低下する。したがって、可動電極が溶接ワークに接触したときのサーボモータの移動速度又は加速度の変化は、サーボモータの電流又はトルクの変化よりも顕著となり、スポット溶接ガンの機械的な特性による変動や揺らぎの影響も受けにくくなるので、可動電極と溶接ワークとの接触時点を正確に検出することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】多関節ロボットによってスポット溶接ガンを保持して、固定された溶接ワークに対して相対移動させるスポット溶接システムの全体構成図である。
【図２】多関節ロボットによって溶接ワークを保持して、固定されたスポット溶接ガンに対して相対移動させるスポット溶接システムの全体構成図である。
【図３】摺動速度とそれによって発生する摩擦力との相関関係を示すグラフである。
【図４】スポット溶接ガンの可動電極をサーボモータで駆動して溶接ワークから離れた状態から溶接ワークへ接近させることによって、溶接ワークの表面位置を検出する方法のフローチャートである。
【図５】本発明の溶接ワーク位置検出方法の第１の実施形態に従ってサーボモータによってスポット溶接ガンの可動電極を溶接ワークへ接近させることを示す説明図である。
【図６】サーボモータによってスポット溶接ガンの可動電極を溶接ワークへ接近させるるときにサーボモータのトルクリミットを設定するタイミングを示す説明図である。
【図７】サーボモータによってスポット溶接ガンの可動電極を溶接ワークへ接近させるときにサーボモータがオーバーシュートを起こす場合にサーボモータのトルクリミットを設定するタイミングを示す説明図である。
【図８】可動電極を移動させるためにサーボモータを回転させたときに、スポット溶接ガンの機械的な抵抗によってサーボモータのトルクが様々な経時変化パターンをとることを示す説明図である。
【図９】本発明の溶接ワーク位置検出方法の第１の実施形態に従ってサーボモータによってスポット溶接ガンの可動電極を溶接ワークへ接近させたときのサーボモータのトルク、並びに、サーボモータの回転速度及び回転加速度（又は可動電極の移動速度及び加速度）の経時変化を示すグラフである。
【図１０】本発明の溶接ワーク位置検出方法の第１の実施形態を実施したときにサーボモータの回転速度又は可動電極の移動速度の時系列波形から解析的に変化点を求める方法の説明図である。
【図１１】本発明の溶接ワーク位置検出方法の第１の実施形態を実施したときにサーボモータの回転加速度又は可動電極の加速度の時系列波形から解析的に変化点を求める方法の説明図である。
【図１２】多関節ロボットによって溶接ワークとスポット溶接ガンとを相対移動させて可動電極を溶接ワークから離れた状態から溶接ワークへ接近させることによって、溶接ワークの表面位置を検出する方法のフローチャートである。
【図１３】本発明の溶接ワーク位置検出方法の第２の実施形態に従ってスポット溶接ガンの可動電極を駆動せず多関節ロボットによって可動電極を溶接ワークへ接近させることを示す説明図である。
【図１４】本発明の溶接ワーク位置検出方法の第２の実施形態に従ってスポット溶接ガンの可動電極を駆動せず多関節ロボットによって可動電極を溶接ワークへ接近させるときのサーボモータのトルク、並びに、サーボモータの回転速度及び回転加速度（又は可動電極の移動速度及び加速度）の経時変化を示すグラフである。
【図１５】本発明の溶接ワーク位置検出方法の第２の実施形態を実施したときにサーボモータの回転速度又は可動電極の移動速度の時系列波形から解析的に変化点を求める方法の説明図である。
【図１６】本発明の溶接ワーク位置検出方法の第２の実施形態を実施したときにサーボモータの回転加速度又は可動電極の加速度の時系列波形から解析的に変化点を求める方法の説明図である。
【図１７】本発明の溶接ワーク位置検出方法の第３の実施形態に従ってサーボモータによってスポット溶接ガンの可動電極を駆動して溶接ワークへ接近させる方向に移動させながら多関節ロボットによって溶接ワークとスポット溶接ガンとを相対移動させて可動電極を溶接ワークへ接近させることを示す説明図である。
【図１８】本発明の溶接ワーク位置検出方法の第３の実施形態に従ってサーボモータによってスポット溶接ガンの可動電極を駆動して溶接ワークから離れる方向に移動させながら多関節ロボットによって溶接ワークとスポット溶接ガンとを相対移動させて可動電極を溶接ワークへ接近させることを示す説明図である。
【図１９】本発明の溶接ワーク位置検出方法の第３の実施形態に従ってサーボモータによってスポット溶接ガンの可動電極を駆動して溶接ワークから離れる方向に移動させながら多関節ロボットによって溶接ワークとスポット溶接ガンとを相対移動させて可動電極を溶接ワークへ接近させるときのサーボモータのトルク、並びに、サーボモータの回転速度及び回転加速度（又は可動電極の移動速度及び加速度）の経時変化を示すグラフである。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の幾つかの実施形態を説明する。図面においては、同一の部分に同じ参照符号を付している。
最初に、図１及び図２を参照して、本発明を適用可能なスポット溶接システム１０の全体構成について説明する。
本発明の溶接ワーク位置検出方法を適用可能なスポット溶接システム１０は、多関節ロボット１２と、スポット溶接ガン１４と、多関節ロボット１２の動作を制御するロボット制御装置１６と、スポット溶接ガン１４の動作を制御するスポット溶接ガン制御装置１８とを備え、多関節ロボット１２によって溶接ワークＷとスポット溶接ガン１４とを相対移動させることができるようになっている。
【００２２】
多関節ロボット１２は、例えば４軸垂直多関節型であり、床上に設置される基台２０と、基台２０上に垂直軸線Ｊ１周りに回転可能に支持された旋回台２２と、水平軸線Ｊ２周りに回転可能に一端部を旋回台２２に支持された下部アーム２４と、水平軸線Ｊ３周りに回転可能に下部アーム２４の他端部に支持された上部アーム２６と、水平軸線Ｊ３に垂直な軸線Ｊ４周りに上部アーム２６に対して回転可能に支持された手首要素２８とを含む。しかしながら、多関節ロボット１２は、上記のような４軸垂直多関節型である必要はなく、スポット溶接ガン１４と溶接ワークＷとを相対移動させることができれば、６軸垂直多関節型ロボットなど他のタイプの多関節ロボットとすることができる。
【００２３】
スポット溶接ガン１４は、可動電極３０とこれと対向して配置される対向電極３２とからなる一対の電極を含み、可動電極３０はサーボモータ３４によって駆動されて対向電極３２に対して接近、離反されるようになっており、可動電極３０と対向電極３２とを閉じてその間に溶接ワークＷを挟み、この状態で可動電極３０と対向電極３２との間に電圧を印加することによりスポット溶接を行う。対向電極３２は、ガンアーム上に配置された固定電極であることが一般的であるが、可動電極３０と同様にサーボモータによって駆動されるようになっていてもよい。
【００２４】
図１及び図２では、ロボット制御装置１６とスポット溶接ガン制御装置１８が別個に設けられているが、ロボット制御装置１６とスポット溶接ガン制御装置１８が一体的に設けられていてもよい。また、スポット溶接ガン１４と溶接ワークＷとが相対移動できるようになっていれば、図１に示されているように、ワーク固定台（図示せず）上に溶接ワークＷを固定すると共にスポット溶接ガン１４を多関節ロボット１２の先端に水平軸線Ｊ５周りに回転可能に支持してもよく、図２に示されているように、床面上に設置されたガンスタンド３６にスポット溶接ガン１４を固定すると共に溶接ワークＷを多関節ロボット１２の先端に保持してもよい。後者のように溶接ワークＷを多関節ロボット１２の先端に保持する場合には、図２に示されているように、手首要素２８の先端に溶接ワークＷを把持するためのロボットハンド３８が水平軸線Ｊ５周りに回転可能に装着される。
【００２５】
本発明による溶接ワーク位置検出方法は、スポット溶接システム１０の教示作業で溶接ワークＷ上の所定の位置（以下、打点位置と記載する。）に可動電極３０を位置決めするときや打点位置の板厚を測定するときなどに、可動電極３０を用いて溶接ワークＷの可動電極側表面の位置を検出するために使用される。また、検出した溶接ワークＷの可動電極側表面の位置に基づいて、スポット溶接プログラムの打点教示位置データの修正や、新たな打点教示位置データを作成することもできる。
【００２６】
本発明による溶接ワーク位置検出方法では、可動電極３０を駆動するサーボモータ３４にトルクリミットを設定した状態で、サーボモータ３４によって可動電極３０を速度Ｖｇで駆動することにより又は多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させることにより、溶接ワークＷとスポット溶接ガン１４の可動電極３０とを互いに離れた状態から接近させるように相対移動させ、その相対移動中に対向電極に対する可動電極３０の移動速度及び加速度の少なくとも一方を監視し、対向電極３２に対する可動電極３０の移動速度又は加速度が変化したときに、可動電極３０が溶接ワークＷに接触したと判断して、このときの多関節ロボット１２の手首要素２８の先端の位置データとスポット溶接ガン１４の対向電極３２に対する可動電極３０の相対位置データとに基づいて、溶接ワークＷの表面の位置を求める。
【００２７】
ここで、可動電極３０を駆動するサーボモータ３４にトルクリミットを設定した状態で、サーボモータ３４によって可動電極３０を速度Ｖｇで駆動する又は多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させるほうが、溶接ワークＷの表面の位置を求めるためには望ましい。
【００２８】
なお、本願における「トルクリミット」は、可動電極３０を対向電極３２又は溶接ワークＷに接近する方向を正方向として、正方向へのサーボモータ３４のトルクの上昇を制限する機能を意味する。すなわち、トルクリミットによって、正方向回転側では、サーボモータ３４のトルクの絶対値の上昇を制限する一方、負方向回転側では、サーボモータ３４のトルクの絶対値の減少を制限する。また、対向電極３２に対する可動電極３０の移動速度及び加速度は、直接的に測定してもよく、可動電極３０を駆動するサーボモータ３４から求めてもよい。さらに、対向電極３２に対する可動電極３０の移動速度及び加速度の監視は、可動電極３０を駆動するためのサーボモータ３４の回転速度及び回転加速度の監視とそれぞれ等価であり、対向電極３２に対する可動電極３０の移動速度及び加速度の監視には、可動電極３０を駆動するためのサーボモータ３４の回転速度及び回転加速度の監視がそれぞれ含まれるものとする。
【００２９】
溶接ワークＷの可動電極側表面の位置は、可動電極３０が溶接ワークＷに接触したときの可動電極３０の先端の位置として求められ、可動電極３０の先端の位置データは、多関節ロボット１２の手首要素２８の先端の位置データとスポット溶接ガン１４における対向電極３２に対する可動電極３０の相対位置データとに基づいて、例えば以下のようにして求められる。
【００３０】
床面から基台２０上に支持される旋回台２２の水平軸線Ｊ２までの距離、垂直軸線Ｊ１と水平軸線Ｊ２との軸間距離、水平軸線Ｊ２と水平軸線Ｊ３との軸間距離、水平軸線Ｊ３と軸線Ｊ４との軸間距離が一定であるので、多関節ロボット１２の手首要素２８の先端の位置は、多関節ロボット１２の各軸の回転角度から求めることができる。また、スポット溶接ガン１４の対向電極３２の先端に対する可動電極３０の先端の相対位置は可動電極３０を駆動するサーボモータ３４の回転角度から求めることができ、多関節ロボット１２の手首要素２８の先端からスポット溶接ガン１４の対向電極３２の先端までの位置は固定である。したがって、多関節ロボット１２の手首要素２８の先端の位置データと多関節ロボット１２の手首要素２８の先端とスポット溶接ガン１４の対向電極３２の先端との位置関係から、スポット溶接ガン１４の対向電極３２の先端の位置データが求められ、求められたスポット溶接ガン１４の対向電極３２の先端の位置データとスポット溶接ガン１４の対向電極３２の先端に対する可動電極３０の先端の相対位置データとから、可動電極３０の先端の位置データが求められる。
【００３１】
上述したように、本発明による溶接ワーク位置検出方法は、可動電極３０と溶接ワークＷとを互いに離れた状態から接近させるように相対移動させ、相対移動中に、従来技術のように多関節ロボット１２を駆動するサーボモータの電流又はトルクや可動電極３０を駆動するサーボモータ３４の電流又はトルクを監視するのではなく、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方を監視することを特徴としている。
【００３２】
サーボモータ３４によって速度Ｖｇで可動電極３０を駆動することにより可動電極３０を溶接ワークＷに接近させる場合でも、サーボモータ３４によって可動電極３０を駆動せず、多関節ロボット１２によって速度Ｖｒで溶接ワークＷに対してスポット溶接ガン１４を相対移動させることにより可動電極３０を溶接ワークＷに接近させる場合でも、可動電極３０が溶接ワークＷから離れた状態から溶接ワークＷに接触したときに、可動電極３０が溶接ワークＷから反力を受ける。この結果、可動電極３０がサーボモータ３４によって駆動されている場合には、可動電極３０が溶接ワークＷに接触すると、サーボモータ３４のトルクが溶接ワークＷからの反力に抗するために使用されてサーボモータ３４の出力限界に達し、可動電極３０の移動速度がＶｇから減少すると共に、可動電極３０の加速度が０から負の値に転じる。また、スポット溶接ガン１４が多関節ロボット１２によって溶接ワークＷに対して相対移動され可動電極３０がサーボモータ３４によって駆動されていない場合には、可動電極３０が溶接ワークＷに接触すると、可動電極３０が溶接ワークＷからの反力に抗して静止状態を維持するためにトルクを正の方向（可動電極３０を対向電極３２に接近させる方向）に増加させようとするが、サーボモータ３４のトルクがサーボモータ３４の出力限界に達して、可動電極３０の静止状態を維持できなくなり、可動電極３０が多関節ロボット１２の移動速度Ｖｒで溶接ワークＷから押し返されて、可動電極３０が対向電極３２から離れる方向（負の方向）に移動するようになる。すなわち、可動電極３０の移動速度が０から減少して負の値に転じると共に、可動電極３０の加速度が０から負の値に転じる。したがって、対向電極３２に対する可動電極３０の移動速度又は加速度を監視し、対向電極３２に対する可動電極３０の移動速度が一定の値から減少に転じたこと又は対向電極３２に対する可動電極３０の加速度が０から負の値に転じたことを検出すれば、可動電極３０が溶接ワークＷに接触したことを検出することができる。
【００３３】
また、サーボモータ３４にトルクリミットを設定しておけば、上述したような場合は、可動電極３０が溶接ワークＷに接触したときにサーボモータ３４のトルクがサーボモータ３４の出力限界に達するよりも先にトルクリミットに達するので、対向電極３２に対する可動電極３０の移動速度及び加速度の変化が顕著になる。したがって、接触の検出が容易になる。さらに、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方を監視することにより溶接ワークＷと可動電極３０との接触を検出し、対向電極３２に対する可動電極３０の移動速度及び加速度は速度制御のためスポット溶接ガン１４の機械的な抵抗によるサーボモータ３４の電流又はトルクの変動や揺らぎの影響を受けにくいので、スポット溶接ガン１４の機械的な抵抗が接触の検出精度に与える影響を抑え、精度の高い接触検出を行うことが可能となる。このようにサーボモータ３４にトルクリミットを設定することが望ましいので、以下では、サーボモータ３４にトルクリミットを設定した場合を例に説明する。
【００３４】
サーボモータ３４のトルクリミットの設定値は、サーボモータ３４によって可動電極３０を駆動することにより又は多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを相対移動させることにより、溶接ワークＷと可動電極３０とが互いに離れた状態から可動電極３０を溶接ワークＷへ接近させる動作中（すなわち、可動電極３０が溶接ワークＷから離れた状態で溶接ワークＷへ接近しているとき）のサーボモータ３４のトルクに基づいて、決定することが望ましい。
【００３５】
サーボモータ３４のトルクリミットの設定値を決定するタイミングは、可動電極３０が溶接ワークＷから離れた状態で溶接ワークＷへ接近する動作を行っている間、すなわち溶接ワークＷと可動電極３０との相対移動の開始後で且つ溶接ワークＷと可動電極３０との接触前の区間（以下、予備動作区間と呼称する。）内であればいつでもよい。典型的には、可動電極３０を溶接ワークＷに接近させる動作を開始した直後は、まだ、可動電極３０が溶接ワークＷに接していないので、このときのサーボモータ３４のトルク出力に基づいてトルクリミットの値を決定すればよい。また、トルクリミットの値を設定する前に可動電極３０が溶接ワークＷに接触しないようにするために、可動電極３０と溶接ワークＷとを引き離して予備動作区間として十分な距離を確保してから検出動作を開始することが好ましい。
【００３６】
さらに、予備動作区間において可動電極３０を溶接ワークＷに接近させる動作を行っている際に予め定められた時間が経過しても可動電極３０が溶接ワークＷに接触していないと判断されたときには、その予め定められた時間内のサーボモータ３４のトルク出力に基づいてサーボモータ３４のトルクリミットの値を設定しなおすようにしてもよい。この予め定められた時間を短くすれば、トルクリミットの設定値を定期的に更新するようにすることができる。
【００３７】
また、スポット溶接ガン１４の可動電極駆動機構（図示せず）の内部には、互いに接触する様々な部品が存在し、接触している二つの物体の間には摩擦が発生する。このような接触している二つの物体の間に発生する摩擦には、互いに静止している物体を移動させ始めるときに物体の間に生じる静摩擦と、互いに運動している物体の間に生じる動摩擦とがあり、図３に示されているように、二つの物体の相対摺動速度が０付近では、静摩擦が支配的となり、相対摺動速度の絶対値が大きくなると、静摩擦支配領域を抜けて、摩擦力が相対摺動速度に比例する動摩擦支配領域に至る。また、一般に、互いに静止している物体を移動させ始めるときの静摩擦は、物体が動き始めたときの動摩擦よりも大きくなる。
【００３８】
これらの摩擦の特徴は、可動電極３０の挙動、トルクリミットの設定及び接触の検出精度に影響を与える。すなわち、動摩擦は、サーボモータ３４によって可動電極３０を移動させるときの機械的な抵抗となって、サーボモータ３４のトルクに揺らぎを生じさせ、サーボモータ３４のトルクを不安定にさせる原因となる。このようなトルクの揺らぎのため、可動電極３０の移動速度を一定に維持するときのトルクは完全に一定とはならず、多少変動する。したがって、可動電極３０を一定の速度で移動させることを可能とさせるためには、トルクの変動を考慮して、予備動作区間において測定されたサーボモータ３４のトルクの値に多少のマージンを加味した値をサーボモータ３４のトルクリミットの値としてを設定しなければならない。しかしながら、このようなマージンは、溶接ワークＷと可動電極３０との接触時にトルクがトルクリミットの設定値に達するのを遅らせるので、溶接ワークＷと可動電極３０との接触が可動電極３０の移動速度及び加速度の変化となって現われるのを遅らせ、接触検出の感度を悪化させる原因となる。また、静摩擦は、可動電極３０が溶接ワークＷに接触して移動を開始するときの機械的な抵抗になり、可動電極３０が溶接ワークＷに接触したときに溶接ワークＷから受ける反力が損失してサーボモータ３４に伝達されなくなる原因となる。このことは、可動電極３０が溶接ワークＷに接触したにもかかわらずサーボモータ３４のトルクがほとんど変動しない不感帯を生じさせ、可動電極３０が溶接ワークＷに接触したときにサーボモータ３４のトルクがトルクリミットの設定値に到達して可動電極３０が移動を開始するのを遅らせる。
【００３９】
一方で、可動電極３０をサーボモータ３４によって駆動していれば、動摩擦の影響を受けるが静摩擦の影響を除去することができ、可動電極３０をサーボモータ３４によって駆動せず静止させていれば、静摩擦の影響を受けるが動摩擦の影響を除去することができる。したがって、動摩擦の影響を除去したいか、静摩擦の除去をしたいかによって、溶接ワークＷとスポット溶接ガン１４の可動電極３０とを互いに離れた状態から接近させるように相対移動させるときに、サーボモータ３４によって可動電極３０を対向電極３２に対して速度Ｖｇで駆動するか、多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させるかを適宜選択すればよい。
【００４０】
さらに、本発明の溶接ワーク位置検出方法では、作業者が手動操作によって一工程ずつ進めてもよいが、スポット溶接システム１０が一連の工程を自動的に実行してもよい。例えば、既に全溶接打点位置及びスポット溶接を行うプログラム命令が教示されているスポット溶接プログラムにおいて、上記工程を自動で実行するモードを有効にしてスポット溶接プログラムを再生したときに、各溶接打点位置近傍に自動的に多関節ロボット１２を移動させて、スポット溶接を行うプログラム命令を実行することで、上記工程を自動的に実行して溶接ワークＷの可動電極側表面の位置の検出を行い、その検出位置に基づいてその溶接ワークＷについて打点教示位置データの修正を行い、さらにその修正量（ずれ量）もロボット制御装置１６に記録することもできる。記録した修正量をロボット制御装置１６に備えられた教示操作盤に表示するようにしてもよい。また、記録した修正量が過大である場合に、溶接ワークＷの位置の異常として、ロボット制御装置１６に備えられた教示操作盤にアラーム通知したり、ロボット制御装置１６と通信できるライン制御盤やコンピュータなどの外部制御装置にアラーム通知したりしてもよい。
【００４１】
なお、本発明の溶接ワーク位置検出方法では、溶接ワークＷとを可動電極３０とを相対移動させることができればよく、溶接ワークＷと可動電極３０との相対移動はサーボモータ３４によって行っても多関節ロボット１２によって行ってもよいが、以下においては、説明の簡単化のために、図１に示されているように、スポット溶接ガン１４を多関節ロボット１２によって保持して、溶接ワークＷに対して相対移動させる場合を例として説明する。しかしながら、図２に示されているように、溶接ワークＷを多関節ロボット１２によって保持してスポット溶接ガン１４に対して相対移動させてもよく、この場合、以下の説明において、多関節ロボット１２によってスポット溶接ガン１４を移動させる代わりに溶接ワークＷを移動させればよい。
【実施例１】
【００４２】
図４及び図５を参照して、本発明の溶接ワーク位置検出方法の第１の実施形態を説明する。第１の実施形態では、図１に示されているスポット溶接システム１０において、図５に示されているように、多関節ロボット１２によって溶接ワークＷに対してスポット溶接ガン１４を相対移動させる速度Ｖｒを０として、サーボモータ３４によって可動電極３０を対向電極３２に接近させる方向に予め定められた速度Ｖｇで移動させることにより、ワーク固定台（図示せず）に固定された溶接ワークＷと多関節ロボット１２によって保持されるスポット溶接ガン１４の可動電極３０とを互いに離れた状態から接近させるように速度Ｖｇで相対移動させる。
【００４３】
本実施形態では、最初に、スポット溶接ガン１４の可動電極３０と対向電極３２との間に溶接ワークＷを移動させ、可動電極３０と対向電極３２とが閉じたときに溶接ワークＷ上の溶接箇所（打点位置）に接触するような位置にスポット溶接ガン１４を位置決めする。なお、このときに可動電極３０と溶接ワークＷが接近しすぎないように、溶接ワークＷの表面からある程度の間隔をあけた位置に可動電極３０を位置決めし、予備動作区間を確保することが好ましい。また、可動電極３０を溶接ワークＷ上の溶接箇所に位置決めした後に、可動電極３０を溶接ワークＷから任意の距離だけ離隔させるように動作させても良い。
【００４４】
次に、図５に示されているように、Ｖｒ＝０に設定して多関節ロボット１２を静止させた状態で、サーボモータ３４によって可動電極３０を駆動して対向電極３２へ接近させる方向に予め定められた速度Ｖｇで移動させることにより、ワーク固定台（図示せず）に固定された溶接ワークＷとスポット溶接ガン１４の可動電極３０とを互いに離れた状態から接近させるように速度Ｖｇで相対移動させる（ステップＳ１００）。
【００４５】
次に、可動電極３０を駆動するサーボモータ３４のトルクリミットを設定する（ステップＳ１０２）。サーボモータ３４のトルクリミットの設定値は、以降で可動電極３０が溶接ワークＷに接触していない状態で対向電極３２に対して可動電極３０を速度Ｖｇで移動させるために必要なトルクがサーボモータ３４によって十分出力され得るように設定される。
【００４６】
例えば、ステップＳ１００以降では、可動電極３０を溶接ワークＷへ予め定められた速度Ｖｇで接近させる動作が行われており、サーボモータ３４は、速度Ｖｇで可動電極３０を溶接ワークＷへ接近させる動作に必要なトルクを出力している。したがって、予備動作区間において溶接ワークＷと可動電極３０との相対移動の開始後で且つ溶接ワークＷと可動電極３０との接触前に出力されるサーボモータ３４のトルクを測定し、測定されたトルクの値をサーボモータ３４のトルクリミットの値として設定すれば、可動電極３０が溶接ワークＷに接触したときにサーボモータ３４は溶接ワークＷからの反力に抗することができなくなり、可動電極３０は即座に接近動作中の速度Ｖｇ（停止状態すなわち速度０を含む）を維持できなくなる。これにより、可動電極３０が溶接ワークＷに接触したときの可動電極３０の速度又は加速度の変化が顕著に現われるようになるので、より高感度に接触を検出することが可能となる。しかしながら、実際にはスポット溶接ガン１４の機械的な抵抗（駆動機構の動摩擦や可動部と溶接トランスを接続する導電部の弾性変形など）のためにサーボモータ３４のトルクが多少変動することを考慮して、可動電極３０を一定の速度Ｖｇで移動させることを可能とさせるために、予備動作区間において測定されたサーボモータ３４のトルクの値に多少のマージンを加味した値をサーボモータ３４のトルクリミットの値としてを設定する必要がある。なお、過度のマージンを加味すると、溶接ワークＷと可動電極３０との接触時にトルクがトルクリミットの設定値に達するのが遅れるため、結果として接触検出の感度が悪化する。したがって、適度なマージンを加味したトルクリミットの値を設定することが望ましい。また、トルクリミットの設定値として、実験等により予め定められた値を設定してもよい。
【００４７】
予備動作区間において出力されるサーボモータ３４のトルクに基づいて、サーボモータ３４のトルクリミットの値を設定する場合、サーボモータ３４のトルクリミットの値を決定するタイミングは、予備動作区間において可動電極３０が溶接ワークＷから離れた状態で対向電極３２に対して速度Ｖｇで移動している間であればいつでもよい。典型的には、図６に示されているように、対向電極３２に対する可動電極３０の移動速度が予め定められた速度Ｖｇに達した時刻Ｔａ以降におけるサーボモータ３４のトルク出力に基づいてトルクリミットの値を設定すればよい。しかしながら、移動開始直後は、サーボモータ３４が加速動作を開始したばかりであり、図７（ａ）及び（ｂ）に示されるように、可動電極３０の移動速度がＶｇに到達しても、サーボモータ３４のトルク出力は不安定で、オーバーシュートが発生することがある。したがって、図７（ａ）及び（ｂ）に示されるように、移動を開始してから予め定められた時間が経過しサーボモータ３４のトルク出力が安定した時刻Ｔｂにおけるトルクに基づいて、サーボモータ３４のトルクリミットの値を決定することが好ましい。なお、トルクリミットの値を設定する前に可動電極３０が溶接ワークに接しないようにするために、可動電極３０と溶接ワークＷとの間を引き離して十分な予備動作区間の距離を確保してから検出動作を開始することが好ましい。
【００４８】
さらに、対向電極３２に対して可動電極３０が速度Ｖｇで移動している際に予め定められた時間が経過しても対向電極３２と溶接ワークＷとが接触していないと判断されたときには、その予め定められた時間内のサーボモータ３４のトルク出力に基づいてトルクリミットの値を決定するようにしてもよい。この予め定めれた時間を短くすれば、トルクリミットの設定値を一定時間毎に定期的に更新するようにすることができる。図８（ａ）に示されるように対向電極３２に対して可動電極３０が一定速度で相対移動しているときでも、スポット溶接ガン１４に存在する機械的な抵抗のために、サーボモータ３４のトルク出力は、一定値に安定せず、緩やかに上昇したり（図８（ｂ））、緩やかに減少したり（図８（ｃ））、揺らいだり（図８（ｄ））する場合がある。このようにサーボモータ３４のトルク出力が一定値に安定しない場合において、トルクリミットの設定値を定期的に更新することは有効な手段となる。例えば、図８（ａ）〜（ｄ）に示されるように、一定間隔ΔＴごとの時刻Ｔｃ、Ｔｄ、Ｔｅにおけるサーボモータ３４のトルクに基づいてトルクリミットの設定値の更新を定期的に繰り返せば、容易に、適切なトルクリミットを設定することができる。
【００４９】
次に、このようにサーボモータ３４にトルクリミットを設定した状態で、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方を監視する（ステップＳ１０４）。可動電極３０の移動速度及び加速度は、直接的に測定してもよく、可動電極３０を駆動するサーボモータ３４の回転速度及び回転加速度から求めてもよい。また、対向電極３２に対する可動電極３０の移動速度及び加速度は、可動電極３０を駆動するためのサーボモータ３４の回転速度及び回転加速度にそれぞれ比例するので、可動電極３０の移動速度又は加速度に代えて、可動電極３０を駆動するサーボモータ３４の回転速度又は回転加速度を監視してもよい。監視の際には、サンプリング時間毎に、可動電極３０の移動速度又は加速度あるいはサーボモータ３４の回転速度又は回転加速度の情報と共に、多関節ロボット１２の手首要素２８の先端の位置データ及び対向電極３２に対する可動電極３０の相対位置データを逐次記録していく。
【００５０】
可動電極３０は、検出動作開始後、予め設定された一定の速度Ｖｇで対向電極３２に対して相対移動しているので、このとき、対向電極３２に対する可動電極３０の速度はＶｇ、対向電極３２に対する可動電極３０の加速度は０となる。したがって、サーボモータ３４の回転速度は一定となり、サーボモータ３４の回転加速度は、０となる。そして、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが可動電極３０に押圧されて撓みや凹みなどの弾性変形を生じ、その反力が溶接ワークＷから可動電極３０に作用する。すると、サーボモータ３４は速度Ｖｇを一定に維持しようと制御され、溶接ワークＷからの反力に抗するためにより大きなトルクを出力しようとするが、サーボモータ３４の出力トルクがトルクリミットに達し、可動電極３０を駆動するサーボモータ３４の回転速度が減少する。この結果、設定された速度Ｖｇを維持できなくなり、対向電極３０に対する可動電極３０の移動速度が予め定められた値Ｖｇから減少する。これに伴って、対向電極３２に対する可動電極３０の加速度及びサーボモータ３４の回転加速度は、０から負の値に転じる。
【００５１】
このことを利用して、対向電極３２に対する可動電極３０の移動速度又はサーボモータ３４の回転速度、もしくは対向電極３２に対する可動電極３０の加速度又はサーボモータ３４の回転加速度を逐次チェックし（ステップＳ１０６）、対向電極３２に対する可動電極３０の移動速度又はサーボモータ３４の回転速度が減少したとき、もしくは対向電極３２に対する可動電極３０の加速度又はサーボモータ３４の回転加速度が０から負の値に転じたときに、可動電極３０が溶接ワークＷに接触したと判断し、そうでなければ、可動電極３０が溶接ワークＷに接触していないと判断する。
【００５２】
可動電極３０が溶接ワークＷに接触していないと判断された場合には、ステップＳ１０２に戻り、必要であればサーボモータ３４のトルクリミットの値を設定しなおし（ステップＳ１０２）、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方の監視を続ける（ステップＳ１０４）。トルクリミットの値を設定しなおす場合は、例えば、直前の予め定められた長さの期間においてサーボモータ３４が出力したトルクに基づいてトルクリミットの設定値を決定し、再設定すればよい。
【００５３】
可動電極３０が溶接ワークＷに接触したと判断すると、対向電極３２に対する可動電極３０の移動を停止させて、可動電極３０が溶接ワークＷに接触したと判断したときの多関節ロボット１２の手首要素２８の先端の位置データと手首要素２８の先端に対するスポット溶接ガン１４の対向電極３２の先端の相対位置データとに基づいて、溶接ワークＷの可動電極側表面の位置を求め、溶接ワークＷの表面位置の検出工程を終了する（ステップＳ１０８）。
【００５４】
図９は本実施形態に従って可動電極３０により溶接ワークＷの表面を検出するときのサーボモータ３４のトルク、回転速度及び回転加速度の変化を時系列で表したグラフを示しており、（ａ）がトルクのグラフ、（ｂ）が回転速度のグラフ、（ｃ）が回転加速度のグラフである。なお、対向電極３２に対する可動電極３０の移動速度及び加速度の変化を時系列で表したグラフも、それぞれ、図９（ｂ）及び（ｃ）と同様になる。図９において、区間Ａは、検出動作を行っていない状態、区間Ｂは、検出動作中で可動電極３０が溶接ワークＷに接触していない状態、区間Ｃは、検出動作中で可動電極３０が溶接ワークＷに接触している状態を示す。
【００５５】
検出動作開始前において、可動電極３０は対向電極３２に対して静止しており、サーボモータ３４によって駆動されていない。したがって、区間Ａでは、サーボモータ３４のトルクは静止状態を維持するための値で一定となり、回転速度（すなわち、可動電極３０の移動速度）及び回転加速度（すなわち、可動電極３０の加速度）は０となる。一方、検出動作が始まると、可動電極３０は対向電極３２に対して速度Ｖｇで移動させられるので、区間Ｂでは、対向電極３２に対する可動電極３０の移動速度がＶｇに到達するまでサーボモータ３４のトルク及び回転速度が増加し、Ｖｇに到達すると両者とも一定となる。これに伴って、対向電極３２に対する可動電極３０の加速度及びサーボモータ３４の回転加速度は、対向電極３２に対する可動電極３０の移動速度がＶｇに到達するまでは正の値になり、Ｖｇに到達すると両者とも０となる。さらに、区間Ｃになって、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが弾性変形してその反力が溶接ワークＷから可動電極３０に作用するので、可動電極３０の移動が妨げられる。すると、サーボモータ３４は移動速度Ｖｇを一定に維持するように制御され、サーボモータ３４のトルクが増加するが、やがてトルクリミットに達して一定となる。この結果、サーボモータ３４の回転速度が減少すると共に対向電極３２に対する可動電極３０の移動速度もＶｇから減少し、これに伴って、サーボモータ３４の回転加速度及び対向電極３２に対する可動電極３０の加速度は０から負の値に転じる。なお、図９（ａ）は、サーボモータ３４のトルクリミットの値が区間Ｂにおけるサーボモータ３４のトルク（すなわち、負荷がほとんどない状態で対向電極３２に対して可動電極３０を速度Ｖｇで移動させるために必要となるサーボモータ３４のトルク）と等しい値に設定されている場合を示しており、区間Ｂと区間Ｃにおいてサーボモータ３４のトルクはほぼ一定の値を示している。
【００５６】
区間Ｂにおけるサーボモータ３４のトルクを記録しておくことにより、区間Ｂにおけるサーボモータ３４のトルクに基づいて、サーボモータ３４のトルクリミットの設定値を決定することができる。また、検出動作開始前に予め可動電極３０と溶接ワークＷとの間隔をあけておけば、区間Ｂを長くして十分な予備動作区間を確保できるので、可動電極３０と溶接ワークＷが接触していないときのサーボモータ３４のトルクを確実に記録することができるようになる。
【００５７】
このように、サーボモータ３４によって可動電極３０を駆動することにより溶接ワークＷと可動電極３０とを接近させると、可動電極３０が溶接ワークＷに接触したときに図９（ｂ）に示されるように可動電極３０の移動速度及び可動電極３０を駆動するためのサーボモータ３４の回転速度が一定の状態から変化して徐々に減少する。したがって、可動電極３０の移動速度又はサーボモータ３４の回転速度を監視すれば、可動電極３０の移動速度又はサーボモータ３４の回転速度がほぼ一定の状態から減少に転じたときに可動電極３０が溶接ワークＷに接触したと判断することができる。また、可動電極３０が溶接ワークＷに接触したとき、可動電極３０の加速度又は可動電極３０を駆動するためのサーボモータ３４の回転加速度は、図９（ｃ）に示されるように、０から変化して負の値に転じる。したがって、可動電極３０の加速度又はサーボモータ３４の回転加速度を監視すれば、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じたときに可動電極３０が溶接ワークＷに接触したと判断することができる。
【００５８】
さらに、可動電極３０が溶接ワークＷに接触したと判断されたときの多関節ロボット１２の手首要素２８の先端の位置データとスポット溶接ガン１４における対向電極３２に対する可動電極３０の相対位置データとから、可動電極３０が溶接ワークＷに接触したと判断されたときの可動電極３０の先端の位置データを求めることができ、求められた可動電極３０の先端の位置データを溶接ワークＷの表面の位置データとみなせば、溶接ワークＷの表面の可動電極側表面の位置を検出することができる。
【００５９】
可動電極３０の移動速度又はサーボモータ３４の回転速度がほぼ一定の状態から減少に転じた時点は、サーボモータ３４の移動速度又はサーボモータ３４の回転速度の時系列曲線すなわち波形を解析して、可動電極３０の移動速度又はサーボモータ３４の回転加速度がほぼ一定の状態から減少に転じた点（以下、変化点と記載する。）を求めることにより特定される。変化点を求めるための可動電極３０の移動速度の時系列波形又はサーボモータ３４の回転速度の時系列波形の解析方法の例として、例えば、以下の二つが挙げられる。
【００６０】
（ｉ）可動電極３０の移動速度が基準状態の値よりも予め定められた閾値α（＞０）以上減少した点を変化点とみなす。もしくは、サーボモータ３４の回転速度が基準状態の値よりも予め定められた閾値α（＞０）以上減少した点を変化点とみなす。基準状態の可動電極３０の移動速度は設定された速度の値Ｖｇとすればよく、基準状態のサーボモータ３４の回転速度は区間Ｂにおいて可動電極３０が速度Ｖｇで移動しているときに出力されていたサーボモータ３４のトルク又は実験により予め定められた値とすればよい。また、閾値αが小さいほど、可動電極３０が溶接ワークＷに接触したことを早く検出することができる。閾値αは、設定された可動電極３０の速度Ｖｇや区間Ｂにおけるサーボモータ３４の回転速度に対する割合（例えば１０％など）を用いて決定してもよい。
【００６１】
（ｉｉ）可動電極３０の移動速度の単位時間当たりの変化量すなわち可動電極３０の移動速度の時系列波形の傾きが予め定めらた閾値β（＜０）以下になった点を変化点とみなす。もしくは、サーボモータ３４の回転速度の単位時間当たりの変化量すなわちサーボモータ３４の回転速度の時系列波形の傾きが予め定めらた閾値β（＜０）以下になった点を変化点とみなす。可動電極３０が溶接ワークＷに接触すると、接触前の可動電極３０の移動速度一定及びサーボモータ３４の回転速度一定の状態から可動電極の移動速度及びサーボモータ３４の回転速度が単調に減少するので、閾値βは負の値となる。減少開始直後を検出したい場合には、閾値βを０に近い負の値にすればよい。
【００６２】
（ｉｉｉ）可動電極３０が溶接ワークＷに接触すると可動電極３０の移動速度及びサーボモータ３４の回転速度は単調減少を示すので、可動電極３０の移動速度及びサーボモータ３４の回転速度の時系列波形の傾きは負の値になる。そこで、図１０に示されているように、まず、（ｉ）又は（ｉｉ）の方法によって、可動電極３０の移動速度又はサーボモータ３４の回転速度の変化点を求め、これを仮の変化点とし、仮の変化点から可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形に沿って時刻を遡って可動電極３０の移動速度又はサーボモータ３４の回転速度の単位時間当たりの変化量（すなわち可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形の傾き）を求めていき、可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形の傾きがほぼ０になる点を真の変化点とし、真の変化点において、可動電極３０の移動速度又はサーボモータ３４の回転速度がほぼ一定の状態から減少に転じたとみなす。なお、可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形は離散的なサンプリング点の集合であるので、必ずしも時系列波形上に傾きが０になる点が存在するとは限らない。したがって、実際には、仮の変化点（時刻Ｔｄ１）から可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形に沿って時刻を遡って可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形の傾きが負の値から０又は正の値になる点（時刻Ｔｄ３）を特定し、その直前のサンプリング点（時刻Ｔｄ２）を真の変化点とすればよい。このような方法によれば、図１０に示されるように、可動電極３０の移動速度又はサーボモータ３４の回転速度が曲線的に減少していく場合でも、可動電極３０の移動速度又はサーボモータ３４の回転速度が一定の状態から減少に転じた直後の時刻を正確に特定することができ、溶接ワークＷの可動電極側表面の位置を正確に求めることが可能となる。
【００６３】
可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じた時点を特定するのも同様の考え方を適用できる。すなわち、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じた時点は、可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列曲線すなわち波形を解析して、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０の状態から負に転じた点（以下、変化点と記載する。）を求めることにより特定される。変化点を求めるための可動電極３０の加速度の時系列波形又はサーボモータ３４の回転加速度の時系列波形の解析方法の例として、例えば、以下の二つが挙げられる。
【００６４】
（ｉ）可動電極３０の加速度が負の値になった点を変化点とみなす。もしくは、サーボモータ３４の回転加速度が負の値になった点を変化点とみなす。ただし、実際の可動電極３０の移動速度及びサーボモータ３４の回転速度は微小な変化をするので、誤検出を防ぐために、可動電極３０の加速度又はサーボモータ３４の回転加速度がちょうど負の値になった点を変化点とするのではなく、予め定められた閾値γ（＜０）を下回った点を変化点とすることが好ましい。閾値γは任意の負の値とすればよく、閾値γを０に近い負の値にすれば、可動電極３０が溶接ワークＷに接触したことを早く検出することができる。
【００６５】
（ｉｉ）可動電極３０の加速度の単位時間当たりの変化量すなわち可動電極３０の加速度の時系列波形の傾きが予め定められた閾値σ（＜０）以下になった点を変化点とみなす。もしくは、サーボモータ３４の回転加速度の単位時間当たりの変化量すなわちサーボモータ３４の回転加速度の時系列波形の傾きが予め定められた閾値σ（＜０）以下になった点を変化点とみなす。可動電極３０が溶接ワークＷに接触すると、接触前の可動電極３０の移動速度一定及びサーボモータ３４の回転速度一定の状態から可動電極の移動速度及びサーボモータ３４の回転速度が単調に減少し、可動電極３０の加速度及びサーボモータ３４の回転加速度は負の値になるので、閾値σは負の値となる。減少開始直後を検出したい場合には、閾値σを０に近い負の値にすればよい。
【００６６】
（ｉｉｉ）可動電極３０が溶接ワークＷに接触すると可動電極３０の加速度が０から減少し、それに伴ってサーボモータ３４の回転加速度も０から減少するので、可動電極３０の加速度及びサーボモータ３４の回転加速度の時系列波形の傾きは負の値になる。そこで、図１１に示されているように、まず、（ｉ）又は（ｉｉ）の方法によって、可動電極３０の加速度又はサーボモータ３４の回転加速度の変化点を求め、これを仮の変化点とし、仮の変化点から可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形に沿って時刻を遡って可動電極３０の加速度又はサーボモータ３４の回転加速度の単位時間当たりの変化量（すなわち可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形の傾き）を求めていき、可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形の傾きがほぼ０になる点を真の変化点とし、真の変化点において、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ一定の状態から減少に転じたとみなす。なお、可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形は離散的なサンプリング点の集合であるので、必ずしも時系列波形上に傾きが０になる点が存在するとは限らない。したがって、実際には、仮の変化点（時刻Ｔｄ１）から可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形に沿って時刻を遡って可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形の傾きが負の値から０又は正の値になる点（時刻Ｔｄ３）を特定し、その直前のサンプリング点（時刻Ｔｄ２）を真の変化点とすればよい。このような方法によれば、図１１に示されるように、可動電極３０の移動速度又はサーボモータ３４の回転速度が曲線的に減少していく場合でも、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０の状態から減少して負の値に転じた直後の時刻を正確に特定することができ、溶接ワークＷの可動電極側表面の位置を正確に求めることが可能となる。
【００６７】
なお、本実施形態では、可動電極３０と溶接ワークＷとが接触したと判断した後も、可動電極３０が惰走してしまい、サーボモータ３４の動作を停止させたときの可動電極３０の先端の位置と、可動電極３０と溶接ワークＷとが接触したと判断したときの可動電極３０の先端の位置とが異なってしまうことがある。しかしながら、可動電極３０を駆動するサーボモータ３４は時系列上の動作指令に基づいて動作しているので、過去の時刻の可動電極３０の位置は既に実行された動作指令から求めることができる。したがって、スポット溶接ガン１４の可動電極３０を位置決めすることが最終目的である場合には、可動電極３０の惰走を是正するために、可動電極３０と溶接ワークＷとが接触したと判断したときの位置に多関節ロボット１２を移動さればよい。
【実施例２】
【００６８】
図１２及び図１３を参照して、本発明の溶接ワーク位置検出方法の第２の実施形態を説明する。第２の実施形態は、図１に示されているスポット溶接システム１０において、可動電極３０を駆動するためのサーボモータ３４にトルクリミットを設定した状態で、サーボモータ３４によって可動電極３０を速度Ｖｇで駆動することに代えて、多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させることにより、ワーク固定台（図示せず）に固定された溶接ワークＷとスポット溶接溶接ガン１４の可動電極３０とを互いに離れた状態から接近させるように速度Ｖｒで相対移動させる。
【００６９】
本実施形態でも、第１の実施形態と同様に、最初に、スポット溶接ガン１４の可動電極３０と対向電極３２との間に溶接ワークＷを移動させ、可動電極３０と対向電極３２とが閉じたときに溶接ワークＷ上の溶接箇所（打点位置）に接触するような位置にスポット溶接ガン１４を位置決めする。このときに可動電極３０と溶接ワークＷが接近しすぎないように、溶接ワークＷの表面からある程度の間隔をあけた位置に可動電極３０を位置決めし、可動電極３０が溶接ワークＷに接触しない予備動作区間を確保することが好ましいことや、可動電極３０を溶接ワークＷ上の溶接箇所に位置決めした後に、可動電極３０を溶接ワークＷから任意の距離だけ離隔させるように動作させても良いことも同様である。
【００７０】
次に、図１３に示されているように、サーボモータ３４によって駆動される可動電極３０の移動速度Ｖｇを０に設定して対向電極３２に対して可動電極３０を静止させた状態で、多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させることにより、ワーク固定台（図示せず）に固定された溶接ワークＷとスポット溶接ガン１４の可動電極３０とを互いに離れた状態から接近させるように速度Ｖｒで相対移動させる（ステップＳ２００）。
【００７１】
次に、サーボモータ３４によって駆動される可動電極３０の移動速度Ｖｇを０に設定して、対向電極３２に対して可動電極３０を静止させた状態にすることを選択し（ステップＳ２０２）、さらに、可動電極３０を駆動するサーボモータ３４のトルクリミットを設定する（ステップＳ２０４）。サーボモータ３４のトルクリミットの設定値は、以降で可動電極３０が溶接ワークＷに接触していない状態で対向電極３２に対して可動電極３０を静止状態に維持するために必要なトルクがサーボモータ３４によって十分に出力され得るように設定される。例えば、ステップＳ２００以降で、前述したように、予備動作区間において溶接ワークＷと可動電極３０との相対移動の開始後で且つ溶接ワークＷと可動電極３０との接触前に出力されるサーボモータ３４のトルクを測定し、測定されたトルクの値に測定されたトルクの値に変動分のマージンを加味した値をトルクリミットの値として設定されることが好ましい。また、トルクリミットの設定値として、実験等により予め定められた値を設定してもよい。
【００７２】
予備動作区間において出力されるサーボモータ３４のトルクに基づいて、サーボモータ３４のトルクリミットの値を設定する場合、サーボモータ３４のトルクリミットの値を決定するタイミングは、第１の実施形態と同様に、予備動作区間において可動電極３０が溶接ワークＷから離れた状態で対向電極３２に対して静止している間であればいつでもよい。なお、トルクリミットの値を設定する前に可動電極３０が溶接ワークに接しないようにするために、可動電極３０と溶接ワークＷとの間を引き離して十分な予備動作区間の距離を確保してから検出動作を開始することが好ましい。
【００７３】
その他のトルクリミットの設定に関しては、第１の実施形態と同じであるので、ここでは説明を省略する。
【００７４】
次に、このようにサーボモータ３４にトルクリミットを設定した状態で、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方を監視する（ステップＳ２０６）。可動電極３０の移動速度及び加速度は、直接的に測定してもよく、可動電極３０を駆動するサーボモータ３４の回転速度及び回転加速度から求めてもよい。また、対向電極３２に対する可動電極３０の移動速度及び加速度は、可動電極３０を駆動するためのサーボモータ３４の回転速度及び回転加速度にそれぞれ比例するので、可動電極３０の移動速度又は加速度に代えて、可動電極３０を駆動するサーボモータ３４の回転速度又は回転加速度を監視してもよい。監視の際には、サンプリング時間毎に、可動電極３０の移動速度又は加速度あるいはサーボモータ３４の回転速度又は回転加速度の情報と共に、多関節ロボット１２の手首要素２８の先端の位置データ及び対向電極３２に対する可動電極３０の相対位置データを逐次記録していく。
【００７５】
可動電極３０はサーボモータ３４によって駆動されないので、最初、対向電極３２に対する可動電極３０の移動速度及び加速度はともに０となる。そして、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが可動電極３０に押圧されて撓みや凹みなどの弾性変形を生じ、その反力が溶接ワークＷから可動電極３０に作用する。すると、サーボモータ３４は可動電極３０が対向電極３２に対して静止した状態（すなわち、対向電極３２に対する可動電極３０の速度Ｖｇが０の状態）に維持しようと制御され、溶接ワークＷからの反力に抗するためにトルクを正の方向（可動電極３０を対向電極３２に接近させる方向）に増加させようとするが、サーボモータ３４の出力トルクがトルクリミットに達する。この結果、可動電極３０を対向電極３２に対して静止させた状態を維持できなくなり、可動電極３０は多関節ロボット１２の移動速度Ｖｒで溶接ワークＷから押し返されて、可動電極３０が対向電極３２から離れる方向（負の方向）に移動するようになる。すなわち、可動電極３０の移動速度及びサーボモータ３４の回転速度が０から減少して負の値に転じると共に、可動電極の加速度及びサーボモータ３４の回転加速度が０から減少して負の値に転じる。
【００７６】
このことを利用して、対向電極３２に対する可動電極３０の移動速度又はサーボモータ３４の回転速度、もしくは対向電極３２に対する可動電極３０の加速度又はサーボモータ３４の回転加速度を逐次チェックし（ステップＳ２０８）、対向電極３２に対する可動電極３０の移動速度が０から減少して負の値になったとき又はサーボモータ３４の回転速度が０から負の値に転じたとき、もしくは対向電極３２に対する可動電極３０の加速度又はサーボモータ３４の回転加速度が０から負の値に転じたときに、可動電極３０が溶接ワークＷに接触したと判断し、そうでなければ、可動電極３０が溶接ワークＷに接触していないと判断する。
【００７７】
可動電極３０が溶接ワークＷに接触していないと判断された場合には、ステップＳ２０２に戻り、サーボモータ３４によって駆動される可動電極３０の移動速度Ｖｇを０に設定し続ける（ステップＳ２０２）と共に、必要であればサーボモータ３４のトルクリミットの設定値を設定しなおし（ステップＳ２０４）、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方の監視を続ける（ステップＳ２０６）。トルクリミットの設定値を設定しなおす場合は、例えば、直前の予め定められた長さの期間においてサーボモータ３４が出力したトルクに基づいてトルクリミットの設定値を決定し、再設定すればよい。
【００７８】
可動電極３０が溶接ワークＷに接触したと判断すると、多関節ロボット１２の移動を停止させて、可動電極３０が溶接ワークＷに接触したと判断したときの多関節ロボット１２の手首要素２８の先端の位置データと手首要素２８の先端に対するスポット溶接ガン１４の対向電極３２の先端の相対位置データとに基づいて、溶接ワークＷの可動電極側表面の位置を求め、溶接ワークＷの表面位置の検出工程を終了する（ステップＳ２１０）。
【００７９】
図１４は本実施形態に従って可動電極３０により溶接ワークＷの表面を検出するときのサーボモータ３４のトルク、回転速度及び回転加速度の変化を時系列で表したグラフを示しており、（ａ）がトルクのグラフ、（ｂ）が回転速度のグラフ、（ｃ）が回転加速度のグラフである。なお、対向電極３２に対する可動電極３０の移動速度及び加速度の変化を時系列で表したグラフも、それぞれ、図１４（ｂ）及び（ｃ）と同様になる。図１４において、区間Ａは、検出動作を行っていない状態、区間Ｂは、検出動作中で可動電極３０が溶接ワークＷに接触していない状態、区間Ｃは、検出動作中で可動電極３０が溶接ワークＷに接触している状態を示す。
【００８０】
本実施形態では、検出動作開始前のみならず、検査動作開始後も、可動電極３０はサーボモータ３４によって駆動されず、対向電極３２に対して静止した状態を維持される。したがって、区間Ａ及び区間Ｂでは、サーボモータ３４のトルクは静止状態を維持する値で一定となり、回転速度（すなわち、可動電極の移動速度）及び回転加速度（すなわち、可動電極３０の加速度）は０となる。一方、区間Ｃになって、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが弾性変形してその反力が溶接ワークＷから可動電極３０に作用して、可動電極３０は対向電極３２から引き離される方向に押し返される。すると、サーボモータ３４は可動電極３０が対向電極３２に対して静止した状態（すなわち、対向電極３２に対する可動電極３０の速度Ｖｇが０の状態）を維持しようと制御され、サーボモータ３４のトルクが増加するが、やがてトルクリミットに達して一定となる。この結果、サーボモータ３４の回転速度及び対向電極３２に対する可動電極３０の移動速度が０から減少して負の値になり、これに伴って、サーボモータ３４の回転加速度及び対向電極３２に対する可動電極３０の加速度は０から負の値に転じる。なお、図１４（ａ）はサーボモータ３４のトルクリミットの値が区間Ｂにおけるサーボモータ３４のトルク（すなわち、負荷がほとんどない状態で対向電極３２に対して可動電極３０を静止状態に維持するために必要となるサーボモータ３４のトルク）と等しい値に設定されている場合を示しており、区間Ｂと区間Ｃにおいてサーボモータ３４のトルクはほぼ一定の値を示している。
【００８１】
区間Ｂにおけるサーボモータ３４のトルクを記録しておくことにより、区間Ｂにおけるサーボモータ３４のトルクに基づいて、サーボモータ３４のトルクリミットの設定値を決定することができる。また、検出動作開始前に予め可動電極３０と溶接ワークＷとの間隔をあけておけば、区間Ｂを長くして十分な予備動作区間を確保できるので、可動電極３０と溶接ワークＷが接触していないときのサーボモータ３４のトルクを確実に記録することができるようになる。
【００８２】
このように、多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを相対移動させることにより、溶接ワークＷと可動電極３０とを接近させた場合も、可動電極３０が溶接ワークＷに接触したときに図１４（ｂ）に示されるように可動電極３０の移動速度及び可動電極３０を駆動するためのサーボモータ３４の回転速度が０から負の値に徐々に減少する。したがって、可動電極３０の移動速度又はサーボモータ３４の加速度を監視すれば、可動電極３０の移動速度又はサーボモータ３４の回転速度が０で一定の状態から負の値に減少したときに可動電極３０が溶接ワークＷに接触したと判断することができる。また、可動電極３０が溶接ワークＷに接触したとき、可動電極３０の加速度又は可動電極３０を駆動するためのサーボモータ３４の回転加速度は、図１４（ｃ）に示されるように、０から変化して負の値に転じる。したがって、可動電極３０の加速度又はサーボモータ３４の回転加速度を監視すれば、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じたときに可動電極３０が溶接ワークＷに接触したと判断することができる。
【００８３】
さらに、可動電極３０が溶接ワークＷに接触したと判断されたときの多関節ロボット１２の手首要素２８の先端の位置データとスポット溶接ガン１４における対向電極３２に対する可動電極３０の相対位置データとから、可動電極３０が溶接ワークＷに接触したと判断されたときの可動電極３０の先端の位置データを求めることができ、求められた可動電極３０の先端の位置データを溶接ワークＷの表面の位置データとみなせば、溶接ワークＷの表面の可動電極側表面の位置を検出することができる。
【００８４】
可動電極３０の移動速度又はサーボモータ３４の回転速度がほぼ０から負の値に減少した時点は、サーボモータ３４の移動速度又はサーボモータ３４の回転速度の時系列曲線すなわち波形を解析して、可動電極３０の移動速度又はサーボモータ３４の回転加速度がほぼ０から負の値に減少した点（以下、変化点と記載する。）を求めることにより特定される。変化点を求めるための可動電極の移動速度の時系列波形又はサーボモータ３４の回転速度の時系列波形の解析方法の例として、例えば、以下の二つが挙げられる。
【００８５】
（ｉ）可動電極３０の移動速度が基準状態の値よりも予め定められた閾値α（＞０）以上減少した点を変化点とみなす。もしくは、又はサーボモータ３４の回転速度が基準状態の値よりも予め定められた閾値α（＞０）以上減少した点を変化点とみなす。可動電極３０は対向電極３２に対して静止しているので、基準状態の可動電極３０の移動速度は０とすればよく、基準状態のサーボモータ３４の回転速度は区間Ｂにおいて可動電極３０が静止している状態を維持しているときのサーボモータ３４の出力トルク又は実験により予め定められた値とすればよい。また、閾値αが小さいほど、可動電極３０が溶接ワークＷに接触したことを早く検出することができる。
【００８６】
（ｉｉ）可動電極３０の移動速度の単位時間当たりの変化量すなわち可動電極３０の移動速度の時系列波形の傾きが予め定めらた閾値β（＜０）以下になった点を変化点とみなす。もしくは、サーボモータ３４の回転速度の単位時間当たりの変化量すなわちサーボモータ３４の回転速度の時系列波形の傾きが予め定めらた閾値β（＜０）以下になった点を変化点とみなす。可動電極３０が溶接ワークＷに接触すると、可動電極３０の移動速度が０で一定の状態から対向電極３２から可動電極３０が離れる方向への移動を表す負の値に単調に減少するので、閾値βは負の値となる。減少開始直後を検出したい場合には、閾値βを０に近い負の値にすればよい。
【００８７】
（ｉｉｉ）可動電極３０が溶接ワークＷに接触すると、可動電極３０の移動速度が、０で一定の状態から、可動電極３０が対向電極３２から離れる方向への移動を表す負の値に単調に減少するので、可動電極３０の移動速度及びサーボモータ３４の回転速度の時系列波形の傾きは負の値になる。そこで、図１５に示されているように、まず、（ｉ）又は（ｉｉ）の方法によって、可動電極３０の移動速度又はサーボモータ３４の回転速度の変化点を求め、これを仮の変化点とし、仮の変化点から可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形に沿って時刻を遡って可動電極３０の移動速度又はサーボモータ３４の回転速度の単位時間当たりの変化量（すなわち可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形の傾き）を求めていき、可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形の傾きがほぼ０になる点を真の変化点とし、真の変化点において、可動電極３０の移動速度又はサーボモータ３４の回転速度が０でほぼ一定の状態から減少に転じたとみなす。なお、可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形は離散的なサンプリング点の集合であるので、必ずしも時系列波形上に傾きが０になる点が存在するとは限らない。したがって、実際には、仮の変化点（時刻Ｔｄ１）から可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形に沿って時刻を遡って可動電極３０の移動速度又はサーボモータ３４の回転速度の時系列波形の傾きが負の値から０又は正の値になる点（時刻Ｔｄ３）を特定し、その直前のサンプリング点（時刻Ｔｄ２）を真の変化点とすればよい。このような方法によれば、図１５に示されるように、可動電極３０の移動速度又はサーボモータ３４の回転速度が曲線的に減少していく場合でも、可動電極３０の移動速度又はサーボモータ３４の回転速度が０で一定の状態から減少に転じた直後の時刻を正確に特定することができ、溶接ワークＷの可動電極側表面の位置を正確に求めることが可能となる。
【００８８】
可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じた時点を特定するのも同様の考え方を適用できる。すなわち、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じた時点は、可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列曲線すなわち波形を解析して、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０の状態から負に転じた点（以下、変化点と記載する。）を求めることにより特定される。変化点を求めるための可動電極３０の加速度の時系列波形又はサーボモータ３４の回転加速度の時系列波形の解析方法の例として、例えば、以下の二つが挙げられる。
【００８９】
（ｉ）可動電極３０の加速度が負の値になった点を変化点とみなす。もしくは、サーボモータ３４の回転加速度が負の値になった点を変化点とみなす。ただし、実際の可動電極３０の移動速度及びサーボモータ３４の回転速度は微小な変化をするので、誤検出を防ぐために、可動電極３０の加速度又はサーボモータ３４の回転加速度が負の値になった点を変化点とするのではなく、予め定められた閾値γ（＜０）を下回った点を変化点とすることが好ましい。閾値γは任意の負の値とすればよく、閾値γを０に近い負の値にすれば、可動電極３０が溶接ワークＷに接触したことを早く検出することができる。
【００９０】
（ｉｉ）可動電極３０の加速度の単位時間当たりの変化量すなわち可動電極３０の加速度の時系列波形の傾きが予め定められた閾値σ（＜０）以下になった点を変化点とみなす。もしくは、サーボモータ３４の回転加速度の単位時間当たりの変化量すなわちサーボモータ３４の回転加速度の時系列波形の傾きが予め定められた閾値σ（＜０）以下になった点を変化点とみなす。可動電極３０が溶接ワークＷに接触すると、可動電極３０の移動速度が一定の０の状態から対向電極３２から可動電極３０が離れる方向への移動を表す負の値に単調に減少するので、閾値σは負の値となる。減少開始直後を検出したい場合には、閾値σを０に近い負の値にすればよい。
【００９１】
（ｉｉｉ）可動電極３０が溶接ワークＷに接触すると可動電極３０の加速度が０から減少し、それに伴ってサーボモータ３４の回転加速度も０から減少するので、可動電極３０の加速度及びサーボモータ３４の回転加速度の時系列波形の傾きは負の値になる。そこで、図１６に示されているように、まず、（ｉ）又は（ｉｉ）の方法によって、可動電極３０の加速度又はサーボモータ３４の回転加速度の変化点を求め、これを仮の変化点とし、仮の変化点から可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形に沿って時刻を遡って可動電極３０の加速度又はサーボモータ３４の回転加速度の単位時間当たりの変化量（すなわち可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形の傾き）を求めていき、可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形の傾きがほぼ０になる点を真の変化点とし、真の変化点において、可動電極３０の加速度又はサーボモータ３４の回転加速度が０でほぼ一定の状態から減少に転じたとみなす。なお、可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形は離散的なサンプリング点の集合であるので、必ずしも時系列波形上に傾きが０になる点が存在するとは限らない。したがって、実際には、仮の変化点（時刻Ｔｄ１）から可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形に沿って時刻を遡って可動電極３０の加速度又はサーボモータ３４の回転加速度の時系列波形の傾きが負の値から０又は正の値になる点（時刻Ｔｄ３）を特定し、その直前のサンプリング点（時刻Ｔｄ２）を真の変化点とすればよい。このような方法によれば、図１６に示されるように、可動電極３０の移動速度又はサーボモータ３４の回転速度が曲線的に減少していく場合でも、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０の状態から減少して負の値に転じた直後の時刻を正確に特定することができ、溶接ワークＷの可動電極側表面の位置を正確に求めることが可能となる。
【００９２】
なお、本実施形態では、可動電極３０と溶接ワークＷとが接触したと判断した後も、多関節ロボット１２が惰走してしまい、多関節ロボット１２の動作を停止させたときの多関節ロボット１２の手首要素２８の先端の位置と、可動電極３０と溶接ワークＷとが接触したと判断したときの多関節ロボット１２の手首要素２８の先端の位置とが異なってしまうことがある。しかしながら、多関節ロボット１２は時系列上の動作指令に基づいて動作しているので、過去の時刻の多関節ロボット１２の位置は既に実行された動作指令から求めることができる。したがって、スポット溶接ガン１４の可動電極３０を位置決めすることが最終目的である場合には、多関節ロボット１２の惰走を是正するために、可動電極３０と溶接ワークＷとが接触したと判断したときの位置に多関節ロボット１２を移動さればよい。
【００９３】
本実施形態のように、可動電極３０を対向電極３２に対して静止させている場合、可動電極３０がサーボモータ３４によって駆動されず、スポット溶接ガン１４の可動電極駆動機構に動摩擦が発生しないので、稼動電極駆動機構の機械的な抵抗が小さくなり、サーボモータ３４のトルクの揺らぎや変動がほとんど発生せず、サーボモータ３４のトルクリミットの値の設定の際に可動電極３０の静止状態を維持するのに必要なトルクに加味するマージンを小さくできる。この結果、可動電極３０が溶接ワークＷに接触したときに、サーボモータ３４のトルクがトルクリミットに達しやすくなり、可動電極３０が対向電極３２に対する移動を開始しやすくなる。また、可動電極３０がサーボモータ３４によって駆動されず、静止しているので、可動電極３０が溶接ワークＷに接触する前には可動電極３０の移動速度及びサーボモータ３４の回転速度はほとんど変動しないので、上記の閾値α、β、γ及びσの絶対値を小さい値に設定することができる。したがって、接触の検出精度の向上を図ることが可能になる。
【００９４】
第２の実施形態では、第１の実施形態においてサーボモータ３４によって可動電極３０を駆動することによって溶接ワークＷと可動電極３０とを接近させることに代えて、多関節ロボット１２を用いてスポット溶接ガン１４と溶接ワークＷとを相対移動させることによって可動電極３０と溶接ワークＷとを接近させるようにしている。これにより可動電極３０を駆動させる必要がなくなり、可動電極駆動機構の動摩擦によるサーボモータ３４のトルクの変動の影響を除去することができる一方で、可動電極３０が静止した状態となるので、可動電極駆動機構の静摩擦による不感帯の影響が生じる。したがって、第２の実施形態は、動摩擦の影響よりも静摩擦の影響が少ないスポット溶接ガン１４において有効となる。
【実施例３】
【００９５】
図１２、図１７及び図１８を参照して、本発明の溶接ワーク位置検出方法の第３の実施形態を説明する。第３の実施形態は、図１に示されているスポット溶接システム１０において、サーボモータ３４によって可動電極３０を駆動する速度Ｖｇが０ではなく、サーボモータ３４によって対向電極３２に対して可動電極３０を速度Ｖｇで移動させながら、多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させる点において、第２の実施形態と異なっており、その他の点は第２の実施形態と同様である。したがって、ここでは、異なる部分を中心に説明し、同様の部分については説明を省略する。
【００９６】
第２の実施形態では、サーボモータ３４によって可動電極３０を駆動する速度Ｖｇを０として、対向電極３２に対して可動電極３０を静止させているので、スポット溶接ガン１４の可動電極駆動機構の動摩擦によるサーボモータ３４のトルクの変動がほとんど生じず、サーボモータ３４のトルクリミットの値の設定の際に可動電極３０の静止状態を維持するのに必要なトルクに、トルク変動を考慮して加味するマージンを小さくできる。したがって、可動電極３０が溶接ワークＷに接触したときに、サーボモータ３４のトルクがトルクリミットに達しやすくなり、可動電極３０が移動を開始しやすくなるので、接触の検出精度の向上を図ることが可能になる。その一方で、可動電極３０が対向電極３０に対して静止しているため、可動電極駆動機構内の静摩擦に起因して、可動電極３０が溶接ワークＷに接触したときに溶接ワークＷから受ける反力が損失してサーボモータ３４に伝達されず、可動電極３０が溶接ワークＷに接触したにもかかわらずサーボモータ３４のトルクがほとんど変動しない不感帯が生じてしまう。この結果、可動電極３０が溶接ワークＷに接触したときにサーボモータ３４のトルクがトルクリミットの設定値に到達して可動電極３０が移動を開始するのを遅らせてしまう。したがって、可動電極駆動機構の静摩擦が小さい場合には、可動電極駆動機構の動摩擦により生じるサーボモータ３４のトルクの変動をなくすことによる効果が、可動電極駆動機構の静摩擦により生じる不感帯の存在による悪影響に勝り、第２の実施形態が有効になるが、可動電極駆動機構の静摩擦が大きい場合には、可動電極駆動機構の静摩擦により生じる不感帯の存在による悪影響が、可動電極駆動機構の動摩擦により生じるサーボモータ３４のトルクの変動をなくすことによる効果を上回ってしまう。
【００９７】
そこで、第３の実施形態では、サーボモータ３４によって対向電極３２に対して可動電極３０を低い速度Ｖｇ（≠０）で移動させることにより、このような不感帯の悪影響を解消させ、第１の実施形態による利点と第２の実施形態による利点の両方を享受できるようにしている。なお、図３から分かるように、可動電極駆動機構の動摩擦による影響を抑えるためには、可動電極３０の移動速度をできる限り低くした方がよいが、可動電極３０の移動速度Ｖｇが０に近い場合には、可動電極駆動機構の静摩擦が十分に除去されなくなる。したがって、サーボモータ３４によって対向電極３２に対して可動電極３０を移動させる速度Ｖｇは、静摩擦を除去しつつ動摩擦によるサーボモータ３４のトルクの変動を最小限に抑えるような極めて低い速度とすることが望ましい。
【００９８】
図１２を参照して、第３の実施形態による溶接ワーク位置検出方法の手順を説明する。第３の実施形態でも、第２の実施形態と同様に、最初に、スポット溶接ガン１４の可動電極３０と対向電極３２との間に溶接ワークＷを移動させ、可動電極３０と対向電極３２とが閉じたときに溶接ワークＷ上の溶接箇所（打点位置）に接触するような位置にスポット溶接ガン１４を位置決めする。このときに可動電極３０と溶接ワークＷが接近しすぎないように、溶接ワークＷの表面からある程度の間隔をあけた位置に可動電極３０を位置決めし、可動電極３０が溶接ワークＷに接触しない予備動作区間を確保することが好ましいことや、可動電極３０を溶接ワークＷ上の溶接箇所に位置決めした後に、可動電極３０を溶接ワークＷから任意の距離だけ離隔させるように動作させても良いことも同様である。
【００９９】
次に、多関節ロボット１２を用いて溶接ワークＷとスポット溶接ガン１４とを速度Ｖｒで相対移動させることにより、ワーク固定台（図示せず）に固定された溶接ワークＷとスポット溶接ガン１４の可動電極３０とを接近させるように速度Ｖｒで相対移動させ（ステップＳ２００）、さらに、サーボモータ３４によって可動電極３０を駆動して対向電極３２に対して微小な速度Ｖｇで移動させる（ステップＳ２０２）。サーボモータ３４によって対向電極３２に対して可動電極３０を移動させる速度Ｖｇは、上述したように、静摩擦を除去しつつ動摩擦によるサーボモータ３４のトルクの変動を最小限に抑えるような極めて低い速度とする。また、対向電極３２に対して可動電極３０を移動させるのは、可動電極駆動機構の静摩擦の影響を除去することが目的であるので、対向電極３２に対する可動電極３０の移動は、図１７に示されているように可動電極３０が対向電極３２へ接近する方向（閉方向）に行ってもよく、図１８に示されているように可動電極３０が対向電極３２から離れる方向（開方向）に行ってもよい。例えば、可動電極３０を対向電極３２へ接近させる方向に移動させた場合とその逆方向に移動させた場合で動摩擦によるサーボモータ３４のトルクの揺らぎの幅が異なることがあるので、可動電極３０を移動させる方向の選択は、このようなときにより揺らぎ幅が小さくなる方向に可動電極３０を移動させるように行えばよい。なお、可動電極３０を対向電極３２から離れる方向に移動させる場合、全体として可動電極３０を溶接ワークＷへ接近させることができるように、多関節ロボット１２は、対向電極３２に対する可動電極３０の移動速度Ｖｇ以上の速度Ｖｒで、溶接ワークＷへ接近する方向にスポット溶接ガン１４を移動させる必要がある。
【０１００】
次に、可動電極３０を駆動するサーボモータ３４のトルクリミットを設定する（ステップＳ２０４）。サーボモータ３４のトルクリミットの設定値は、以降で可動電極３０が溶接ワークＷに接触していない状態で対向電極３２に対して可動電極３０を速度Ｖｇで移動させるために必要なトルクがサーボモータ３４によって十分に出力され得るように設定される。例えば、ステップＳ２００以降では、溶接ワークＷと可動電極３０とが互いに離れた状態から予め定められた速度Ｖｇで可動電極３０を溶接ワークＷへ接近させる動作が行われており、サーボモータ３４は、速度Ｖｇで可動電極３０を溶接ワークＷに接近させる動作に必要なトルクを出力している。したがって、予備動作区間において溶接ワークＷと可動電極３０との相対移動の開始後で且つ溶接ワークＷと可動電極３０との接触前に出力されるサーボモータ３４のトルクを測定し、測定されたトルクの値に測定されたトルクの値に変動分のマージンを加味した値をトルクリミットの値として設定されることが好ましい。また、トルクリミットの設定値として、実験等により予め定められた値を設定してもよい。第３の実施形態は、対向電極３２に対して可動電極３０を移動させる点において第１の実施形態と同じであり、トルクリミットの設定の詳細は、その他の点について、第１の実施形態と共通するので、ここでは詳しい説明を省略する。
【０１０１】
次に、このようにサーボモータ３４にトルクリミットを設定した状態で、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方を監視する（ステップＳ２０６）。可動電極３０の移動速度及び加速度は、直接的に測定してもよく、可動電極３０を駆動するサーボモータ３４の回転速度及び回転加速度から求めてもよい。また、対向電極３２に対する可動電極３０の移動速度及び加速度は、可動電極３０を駆動するためのサーボモータ３４の回転速度及び回転加速度にそれぞれ比例するので、可動電極３０の移動速度又は加速度に代えて、可動電極３０を駆動するサーボモータ３４の回転速度又は回転加速度を監視してもよい。監視の際には、サンプリング時間毎に、可動電極３０の移動速度又は加速度あるいはサーボモータ３４の回転速度又は回転加速度の情報と共に、多関節ロボット１２の手首要素２８の先端の位置データ及び対向電極３２に対する可動電極３０の相対位置データを逐次記録していく。
【０１０２】
可動電極３０は、最初、予め設定された一定の速度Ｖｇで対向電極３２に対して相対移動しているので、このとき、対向電極３２に対する可動電極３０の移動速度はＶｇ、対向電極３２に対する可動電極３０の加速度は０となる。これは、対向電極３２に対して可動電極が接近する方向に移動させられている場合も離れる方向に移動させられている場合も同じである。
【０１０３】
可動電極３０が対向電極３２へ接近する方向に速度Ｖｇで移動させられている場合、可動電極３０は、最初、予め設定された一定の速度Ｖｇ（＞０）で対向電極３２に対して相対移動しているので、このとき、対向電極３２に対する可動電極３０の移動速度はＶｇ、対向電極３２に対する可動電極３０の加速度は０となる。そして、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが可動電極３０に押圧されて撓みや凹みなどの弾性変形を生じ、その反力が溶接ワークＷから可動電極３０に作用する。すると、サーボモータ３４は速度Ｖｇを一定に維持しようと制御され、溶接ワークＷからの反力に抗するためにより大きなトルクを出力しようとするが、サーボモータ３４の出力トルクがトルクリミットに達し、可動電極３０を駆動するサーボモータ３４の回転速度及び回転加速度が減少する。この結果、設定された速度Ｖｇを維持できなくなり、対向電極３０に対する可動電極３０の移動速度が予め定められた値Ｖｇから減少し、サーボモータ３４の回転速度も減少する。また、対向電極３２に対する可動電極３０の加速度及びサーボモータ３４の回転加速度は、０から負の値に転じる。
【０１０４】
一方、可動電極３０が対向電極３２から離れる方向に速度Ｖｇで移動させられている場合、可動電極３０は、最初、予め設定された一定の速度Ｖｇ（＜０）で対向電極３２に対して相対移動しているので、このとき、対向電極３２に可動電極３０の移動速度はＶｇ、対向電極３２に対する可動電極３０の加速度は０となる。そして、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが可動電極３０に押圧されて撓みや凹みなどの弾性変形を生じ、その反力が溶接ワークＷから可動電極３０に作用する。すると、可動電極３０は対向電極３０から引き離される方向に溶接ワークＷによって押されるので、サーボモータ３４は速度Ｖｇを一定に維持しようと制御され、溶接ワークＷからの反力に抗するために可動電極３０を対向電極３２へ接近させる方向にトルクを増加させようとするが、サーボモータ３４の出力トルクがトルクリミットに達する。この結果、可動電極３０は対向電極３２からさらに離れる方向に加速されるようになる。すなわち、可動電極３０の移動速度及びサーボモータ３４の回転速度が負の値からさらに減少する。また、対向電極３２に対する可動電極３０の加速度及びサーボモータ３４の回転加速度は、０から負の値に転じる。
【０１０５】
このことを利用して、対向電極３２に対する可動電極３０の移動速度又はサーボモータ３４の回転速度、もしくは対向電極３２に対する可動電極３０の加速度又はサーボモータ３４の回転加速度を逐次チェックし（ステップＳ２０８）、対向電極３２に対する可動電極３０の移動速度又はサーボモータ３４の回転速度が減少に転じたとき、もしくは対向電極３２に対する可動電極３０の加速度又はサーボモータ３４の回転加速度が０から負の値に転じたときに、可動電極３０が溶接ワークＷに接触したと判断し、そうでなければ、可動電極３０が溶接ワークＷに接触していないと判断する。
【０１０６】
可動電極３０が溶接ワークＷに接触していないと判断された場合には、ステップＳ２０２に戻り、サーボモータ３４によって駆動される可動電極３０の移動速度をＶｇに設定し続ける（ステップＳ２０２）と共に、必要であればサーボモータ３４のトルクリミットの設定値を設定しなおし（ステップＳ２０４）、対向電極３２に対する可動電極３０の移動速度及び加速度の少なくとも一方の監視を続ける（ステップＳ２０６）。トルクリミットの設定値を設定しなおす場合は、例えば、直前の予め定められた長さの期間においてサーボモータ３４が出力したトルクに基づいてトルクリミットの設定値を決定し、再設定すればよい。
【０１０７】
可動電極３０が溶接ワークＷに接触したと判断すると、対向電極３２に対する可動電極３０の移動及び多関節ロボット１２の移動を停止させて、可動電極３０が溶接ワークＷに接触したと判断したときの多関節ロボット１２の手首要素２８の先端の位置データと手首要素２８の先端に対するスポット溶接ガン１４の対向電極３２の先端の相対位置データとに基づいて、溶接ワークＷの可動電極側表面の位置を検出し、溶接ワークＷの表面位置の検出工程を終了する（ステップＳ２１０）。
【０１０８】
図１９は、本実施形態において、対向電極３２から離れる方向に可動電極３０を移動させたながら可動電極３０により溶接ワークＷの表面位置を検出するときのサーボモータ３４のトルク、回転速度及び回転加速度の変化を時系列で表したグラフを示しており、（ａ）がトルクのグラフ、（ｂ）が回転速度のグラフ、（ｃ）が回転加速度のグラフである。なお、対向電極３２に対する可動電極３０の移動速度及び加速度の変化を時系列で表したグラフも、それぞれ、図１９（ｂ）及び（ｃ）と同様になる。図１９において、区間Ａは、検出動作を行っていない状態、区間Ｂは、検出動作中で可動電極３０が溶接ワークＷに接触していない状態、区間Ｃは、検出動作中で可動電極３０が溶接ワークＷに接触している状態を示す。
【０１０９】
なお、本実施形態において、対向電極３２へ接近させる方向に可動電極３０を移動させながら可動電極３０により溶接ワークＷの表面位置を検出する場合は、可動電極３０が対向電極３２へ接近する方向に移動する点で可動電極３０及びサーボモータ３４の挙動が第１の実施形態と同様であり、このときのサーボモータ３４のトルク、回転速度及び回転加速度の変化を時系列で表したグラフは、それぞれ、図９（ａ）〜（ｃ）に示されるグラフと同様になり、また、対向電極３２に対する可動電極３０の移動速度及び加速度の変化を時系列で表したグラフも、それぞれ、図９（ｂ）及び（ｃ）と同様になるので、ここでは詳しい説明を省略する。
【０１１０】
対向電極３２から離れる方向に可動電極３０を移動させながら可動電極３０により溶接ワークＷの表面位置を検出する場合、検出動作開始前において、可動電極３０はサーボモータ３４によって駆動されておらず、対向電極３２に対して静止している。したがって、区間Ａでは、サーボモータ３４のトルクは対向電極３２に対して可動電極３０を静止した状態に維持する値で一定となり、回転速度（すなわち、可動電極３０の移動速度）及び回転加速度（すなわち、可動電極３０の加速度）は０となる。一方、検出動作が始まると、可動電極３０は対向電極３２から離れる方向（すなわち負の方向）に対向電極３２に対して速度Ｖｇ（＜０）で移動させられるので、区間Ｂでは、対向電極３２に対する可動電極３０の移動速度がＶｇに到達するまでサーボモータ３４のトルク及び回転速度が減少し、Ｖｇに到達すると両者とも一定となる。これに伴って、対向電極３２に対する可動電極３０の加速度及びサーボモータ３４の回転加速度は、対向電極３２に対する可動電極３０の移動速度がＶｇに到達するまでは負の値になり、Ｖｇに到達すると両者とも０となる。さらに、区間Ｃになって、可動電極３０が溶接ワークＷに接触すると、溶接ワークＷが弾性変形してその反力が溶接ワークＷから可動電極３０に作用するので、可動電極３０は対向電極３０から引き離される方向に溶接ワークＷによって押される。すると、サーボモータ３４は速度Ｖｇを一定に維持しようと制御され、可動電極３０を対向電極３２に接近させる方向にトルクを増加させようとするが、サーボモータ３４の出力トルクがトルクリミットに達して一定となる。この結果、サーボモータ３４の回転速度が減少する（負の方向に増加する）と共に対向電極３２に対する可動電極３０の移動速度もＶｇから減少し（負の方向に増加し）、これに伴って、サーボモータ３４の回転加速度及び対向電極３２に対する可動電極３０の加速度は０から負の値に転じる。なお、図１９（ａ）は、サーボモータ３４のトルクリミットの値が区間Ｂにおけるサーボモータ３４のトルク（すなわち、対向電極３２に対して可動電極３０を速度Ｖｇで移動させるために必要となるサーボモータ３４のトルク）と等しい値に設定されている場合を示しており、区間Ｂと区間Ｃにおいてサーボモータ３４のトルクはほぼ一定の値を示している。
【０１１１】
区間Ｂにおけるサーボモータ３４のトルクを記録しておくことにより、区間Ｂにおけるサーボモータ３４のトルクに基づいて、サーボモータ３４のトルクリミットの設定値を決定することができる。また、検出動作開始前に予め可動電極３０と溶接ワークＷとの間隔をあけておけば、区間Ｂを長くして十分な予備動作区間を確保できるので、可動電極３０と溶接ワークＷが接触していないときのサーボモータ３４のトルクを確実に記録することができるようになる。
【０１１２】
このように、可動電極３０を対向電極３２に対して低い速度Ｖｇで移動させながら多関節ロボット１２を用いてスポット溶接ガン１４の可動電極３０を溶接ワークＷに接近させる方向に相対移動させた場合も、可動電極３０が対向電極３２へ接近する方向を正、対向電極３２から離れる方向を負とすれば、第１の実施形態と同様に、可動電極３０が溶接ワークＷに接触したときに図９（ｂ）又は図１９（ｂ）に示されるように可動電極３０の移動速度及び可動電極３０を駆動するためのサーボモータ３４の回転速度が一定の状態から変化して徐々に減少する（対向電極３２に対して可動電極３０を離れる方向に移動させる場合には、可動電極３０の移動速度及びサーボモータ３４の回転速度が負の方向に増加することになる）。したがって、可動電極３０の移動速度又はサーボモータ３４の回転速度を監視すれば、可動電極３０の移動速度又はサーボモータ３４の回転速度がほぼ一定の状態から減少に転じたときに可動可動電極３０が溶接ワークＷに接触したと判断することができる。また、可動電極３０が溶接ワークＷに接触したとき、可動電極３０の加速度又は可動電極３０を駆動するためのサーボモータ３４の回転加速度は、図９（ｃ）及び図１９（ｃ）に示されるように、０から変化して負の値に転じる。したがって、可動電極３０の加速度又はサーボモータ３４の回転加速度を監視すれば、可動電極３０の加速度又はサーボモータ３４の回転加速度がほぼ０から負の値に転じたときに可動電極３０が溶接ワークＷに接触したと判断することができる。
【０１１３】
さらに、可動電極３０が溶接ワークＷに接触したと判断されたときの多関節ロボット１２の手首要素２８の先端の位置データとスポット溶接ガン１４における対向電極３２に対する可動電極３０の相対位置データとから、可動電極３０が溶接ワークＷに接触したと判断されたときの可動電極３０の先端の位置データを求めることができ、求められた可動電極３０の先端の位置データを溶接ワークＷの表面の位置データとみなせば、溶接ワークＷの表面の可動電極側表面の位置を検出することができる。
【０１１４】
可動電極３０の移動速度又はサーボモータ３４の回転速度がほぼ一定の状態から減少に転じた時点は、サーボモータ３４の移動速度又はサーボモータ３４の回転速度の時系列曲線すなわち波形を解析して、可動電極３０の移動速度又はサーボモータ３４の回転加速度がほぼ一定の状態から減少に転じた点（以下、変化点と記載する。）を求めることにより特定される。可動電極３０が対向電極３２へ接近するように移動する方向及びそのときのサーボモータ３４の回転方向を正とし、可動電極３０が対向電極３２から離れるように移動する方向及びそのときのサーボモータ３４の回転方向を負とすれば、変化点を求めるための可動電極３０の移動速度の時系列波形又はサーボモータ３４の回転速度の時系列波形の解析方法は、第１の実施形態の場合と同じであるので、ここでは詳しい説明は省略する。
【０１１５】
本実施形態のように、可動電極３０を対向電極３２に対して速度Ｖｇで移動させながら多関節ロボット１２を用いて可動電極３０を溶接ワークＷへ接近させるようにスポット溶接ガン１４と溶接ワークＷとを相対移動させると、第２の実施形態と比べて可動電極駆動機構の動摩擦の分だけサーボモータ３４のトルクの揺らぎが僅かに大きくなり、サーボモータ３４のトルクリミットの値の設定の際に可動電極３０の速度Ｖｇを維持するのに必要なトルクにトルク変動を考慮して加味するマージンを大きくしなければならないので、可動電極３０と溶接ワークＷとの接触の検出が僅かに困難となるものの、第２の実施形態の場合とほとんど同じ効果が得られる。さらに、上述したように、可動電極駆動機構内の静摩擦に起因した不感帯を解消することができ、可動電極３０が溶接ワークＷに接触したときに即座にサーボモータ３４のトルクが一定の状態から変動を開始するようになる。したがって、可動電極駆動機構の静摩擦が大きく、不感帯の存在による悪影響が可動電極駆動機構の動摩擦により生じるサーボモータ３４のトルクの揺らぎを抑制することによる効果を上回ってしまう場合に、本実施形態の方法が有効となる。その他の点は、第２の実施形態と同じであるので、ここでは、説明を省略する。
【０１１６】
以上、図示される実施形態に基づいて、本発明を説明したが、本発明は上述した実施形態に限定されるものではない。例えば、上記実施形態では、可動電極３０の移動速度及び加速度の少なくとも一方の監視を行うと同時に、多関節ロボット１２の手首要素２８の先端の位置データと対向電極３２に対する可動電極３０の相対位置データを記録するようにしている。しかしながら、多関節ロボット１２及び可動電極３０は、ロボット制御装置１６及びスポット溶接ガン制御装置１８からの時系列上の動作指令に基づいて動作しているので、実行された多関節ロボット１２及び可動電極３０の動作指令から過去の時刻の多関節ロボット１２の手首要素２８の先端の位置データと対向電極３２に対する可動電極３０の相対位置データを求めてもよい。
【符号の説明】
【０１１７】
１０    スポット溶接システム
１２    多関節ロボット
１４    スポット溶接ガン
３０    可動電極
３２    対向電極
３４    サーボモータ
【図１】
2011092981.tif 000003
【図２】
2011092981.tif 000004
【図３】
2011092981.tif 000005
【図４】
2011092981.tif 000006
【図５】
2011092981.tif 000007
【図６】
2011092981.tif 000008
【図７】
2011092981.tif 000009
【図８】
2011092981.tif 000010
【図９】
2011092981.tif 000011
【図１０】
2011092981.tif 000012
【図１１】
2011092981.tif 000013
【図１２】
2011092981.tif 000014
【図１３】
2011092981.tif 000015
【図１４】
2011092981.tif 000016
【図１５】
2011092981.tif 000017
【図１６】
2011092981.tif 000018
【図１７】
2011092981.tif 000019
【図１８】
2011092981.tif 000020
【図１９】
2011092981.tif 000021