以下、図面を参照して本発明の幾つかの実施形態を説明する。図面においては、同一の部分に同じ参照符号を付している。
最初に、図1及び図2を参照して、本発明の溶接ワーク位置検出方法を適用可能なスポット溶接システム10の全体構成について説明する。
本発明の溶接ワーク位置検出方法を適用可能なスポット溶接システム10は、多関節ロボット12と、スポット溶接ガン14と、多関節ロボット12の動作を制御するロボット制御装置16と、スポット溶接ガン14の動作を制御するスポット溶接ガン制御装置18とを備え、多関節ロボット12によって溶接ワークWとスポット溶接ガン14とを相対移動させることができるようになっている。
多関節ロボット12は、例えば4軸垂直多関節型であり、床上に設置される基台20と、基台20上に垂直軸線J1周りに回転可能に支持された旋回台22と、水平軸線J2周りに回転可能に一端部を旋回台22に支持された下部アーム24と、水平軸線J3周りに回転可能に下部アーム24の他端部に支持された上部アーム26と、水平軸線J3に垂直な軸線J4周りに上部アーム26に対して回転可能に支持された手首要素28とを含む。しかしながら、多関節ロボット12は、上記のような4軸垂直多関節型である必要はなく、スポット溶接ガン14と溶接ワークWとを相対移動させることができれば、6軸垂直多関節型ロボットなど他のタイプの多関節ロボットとすることができる。
スポット溶接ガン14は、可動電極30とこれと対向して配置される対向電極32とからなる一対の電極を含み、可動電極30はサーボモータ34によって駆動されて対向電極32に対して接近、離反されるようになっており、可動電極30と対向電極32とを閉じてその間に溶接ワークWを挟み、この状態で可動電極30と対向電極32との間に電圧を印加することによりスポット溶接を行う。対向電極32は、ガンアーム上に配置された固定電極であることが一般的であるが、可動電極30と同様にサーボモータによって駆動されるようになっていてもよい。
図1及び図2では、ロボット制御装置16とスポット溶接ガン制御装置18が別個に設けられているが、ロボット制御装置16とスポット溶接ガン制御装置18が一体的に設けられていてもよい。また、スポット溶接ガン14と溶接ワークWとが相対移動できるようになっていれば、図1に示されているように、ワーク固定台(図示せず)上に溶接ワークWを固定すると共にスポット溶接ガン14を多関節ロボット12の先端に水平軸線J5周りに回転可能に支持してもよく、図2に示されているように、床面上に設置されたガンスタンド36にスポット溶接ガン14を固定すると共に溶接ワークWを多関節ロボット12の先端に保持してもよい。後者のように溶接ワークWを多関節ロボット12の先端に保持する場合には、図2に示されているように、手首要素28の先端に溶接ワークWを把持するためのロボットハンド38が水平軸線J5周りに回転可能に装着される。
本発明による溶接ワーク位置検出方法は、スポット溶接システム10の教示作業で溶接ワークW上の所定の位置(以下、打点位置と記載する。)に対向電極32を位置決めするときや打点位置の板厚を測定するときなどに、対向電極32を用いて溶接ワークWの対向電極側表面の位置を検出するために使用される。また、検出した溶接ワークWの対向電極側表面の位置に基づいて、スポット溶接プログラムの打点教示位置データの修正や、新たな打点教示位置データの作成を行うために使用することもできる。
本発明による溶接ワーク位置検出方法では、最初に、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めすることを要する。そこで、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めする方法について説明する。
最も基本的な方法としては、作業者がスポット溶接ガン14と多関節ロボット12を操作して、溶接ワークWの可動電極側表面と可動電極30の位置を目視にて確認しながら、溶接ワークWの可動電極側表面に可動電極30を接するように位置決めする方法もあるが、他にも様々な方法を用いて、溶接ワークWの可動電極側表面に可動電極30を接するように位置決めすることができる。例えば、従来技術のように、多関節ロボット12を操作して、スポット溶接ガン14の可動電極30と対向電極32とを閉じたときに可動電極30及び対向電極32が溶接ワークW上の打点位置に接触する位置までスポット溶接ガン14を移動させた後、サーボモータ34の駆動によって可動電極30を対向電極32へ向かって移動させ、サーボモータ34の電流又はトルクが予め定められた閾値に達したときに可動電極30と溶接ワークWとが接触したと判断して、サーボモータ34の駆動を停止させることにより、溶接ワークWの可動電極側表面に可動電極30を接するように位置決めすることができる。
また、サーボモータ34による対向電極32に対する可動電極30の移動に代えて、多関節ロボット12を用いてスポット溶接ガン14と溶接ワークWとを相対移動させることによって可動電極30と溶接ワークWとを接近、離反させて、可動電極30が溶接ワークWから離れた状態から可動電極30と溶接ワークWとを互いに接触させる動作又は可動電極30と溶接ワークWとが互いに接触した状態から完全に離れさせる動作の少なくとも一部を行わせながら、サーボモータ34の電流又はトルクを監視し、サーボモータ34の電流又はトルクの変化傾向が変化したときに、可動電極30が溶接ワークWに接触した又は可動電極30が溶接ワークWから完全に離れたと判断して、接触した又は離れたと判断したときの位置に可動電極30を位置決めしてもよい。
後者の方法の一例として、例えば、多関節ロボット12を操作して、スポット溶接ガン14の可動電極30と対向電極32とを閉じたときに溶接ワークW上の打点位置に可動電極30及び対向電極32が接触する位置までスポット溶接ガン14を移動させた後、サーボモータ34によって可動電極30を速度Vgで駆動しながら、多関節ロボット12を用いて、可動電極30と溶接ワークWとを互いに離れた状態から接近させる方向にスポット溶接ガン14と溶接ワークWとを相対移動させ、同時にサーボモータ34の電流又はトルクを監視する。可動電極30が溶接ワークWに接触すると、溶接ワークWが可動電極30に押圧されて弾性変形を生じ、その反力が溶接ワークWから可動電極30に作用するので、可動電極30を対向電極32に対して速度Vgで移動する状態を維持しようとして、サーボモータ34のトルク及び電流が増加する。このことを利用して、サーボモータ34の電流又はトルクを監視し、サーボモータ34の電流又はトルクが予め定めておいた基準状態と比較して増加する傾向に転じたときに、可動電極30が溶接ワークWに接触したと判断して、このときの位置を可動電極30が溶接ワークWに接する位置とみなして、この位置に可動電極30を位置決めする。サーボモータの電流又はトルクが予め定められた基準状態と比較して増加する傾向に転じたことは、例えばサーボモータ34の電流又はトルクが基準状態のサーボモータ34の電流又はトルクの値よりも予め定められた閾値以上に増加したことやサーボモータ34の電流又はトルクの単位時間当たりの変化量が基準状態のサーボモータ34の電流又はトルクの単位時間当たりの変化量よりも予め定められた閾値以上増加したことを検出することによって検出することができる。
なお、「基準状態と比較して増加する傾向に転じたとき」とは、サーボモータ34の電流又はトルクの実際の値又は単位時間当たりの変化量が、基準状態にあると仮定した場合のサーボモータ34の電流又はトルクの値又は単位時間当たりの変化量よりも増加したときを意味する。また、基準状態は、スポット溶接ガン14と溶接ワークWとの相対移動開始後で且つ可動電極30と溶接ワークWとの接触前の予備動作区間におけるサーボモータ34の電流又はトルクの値又は単位時間当たりの変化量から定められる。
また、他の方法として、多関節ロボット12を操作して、スポット溶接ガン14の可動電極30と対向電極32とを閉じたときに溶接ワークW上の打点位置に可動電極30及び対向電極32が接触する位置までスポット溶接ガン14を移動させた後、サーボモータ34によって可動電極30を速度Vgで駆動しながら、多関節ロボット12を用いて、可動電極30と溶接ワークWとを互いに押し付けた状態から離反させる方向にスポット溶接ガン14と溶接ワークWとを相対移動させ、同時にサーボモータ34の電流又はトルクを監視する。可動電極30と溶接ワークWとを互いに押し付けた状態から多関節ロボット12を用いて可動電極30が溶接ワークWから離反する方向に移動すると、可動電極30による溶接ワークWの弾性変形量が減少して、溶接ワークWから可動電極30に作用する反力も減少し、サーボモータ34の電流及びトルクが減少する。さらに、可動電極30が溶接ワークWから完全に離れると、可動電極30の押圧による溶接ワークWの弾性変形がなくなって、溶接ワークWから可動電極30に作用する反力が解消され、サーボモータ34のトルク及び電流の減少も止まって、ほぼ一定となる。このことを利用して、サーボモータ34の電流又はトルクを監視し、サーボモータ34の電流又はトルクが予め定めておいた基準状態と比較して増加する傾向に転じたとき(サーボモータ34の電流又はトルクの減少傾向が終了したとき)に、可動電極30が溶接ワークWから完全に離れたと判断して、このときの位置を可動電極30が溶接ワークWに接する位置とみなして、この位置に可動電極30を位置決めする。サーボモータ34の電流又はトルクが予め定めておいた基準状態と比較して増加する傾向に転じたこと(サーボモータ34の電流又はトルクの減少傾向が終了したこと)は、例えばサーボモータ34の電流又はトルクの時系列データを解析することによって、サーボモータ34の電流又はトルクの実際の値又は単位時間当たりの変化量が、基準状態にあると仮定したときのサーボモータ34の電流又はトルクの値よりも予め定められた閾値以上増加したことやサーボモータ34の電流又はトルクの単位時間当たりの変化量が、基準状態の単調減少を表す負の値から0又は正の値になることを検出すること、サーボモータ34の電流又はトルクの時系列波形の変化傾向の変化点を解析的に求めることなどによって検出することができる。
なお、「基準状態と比較して増加する傾向に転じたとき(減少傾向が終了したとき)」とは、サーボモータ34の電流又はトルクの実際の値又は単位時間当たりの変化量が、基準状態にあると仮定した場合のサーボモータ34の値又は単位時間当たりの変化量よりも増加したときを意味する。また、基準状態は、スポット溶接ガン14と溶接ワークWとの相対移動開始後で且つ可動電極30と溶接ワークWとの離隔前の予備動作区間におけるサーボモータ34の電流又はトルクの値又は単位時間当たりの変化量から定められる。
このように、サーボモータ34による対向電極32に対する可動電極30の移動に代えて、多関節ロボット12を用いてスポット溶接ガン14と溶接ワークWとを相対移動させることによって可動電極30と溶接ワークWとを接近、離反させて、可動電極30が溶接ワークWから離れた状態から可動電極30と溶接ワークWとを互いに接触させる動作又は可動電極30と溶接ワークWとが互いに接触した状態から完全に離れさせる動作の少なくとも一部を行わせれば、サーボモータ34による可動電極30の移動速度を抑えて、可動電極駆動機構内の動摩擦によるサーボモータ34の電流又はトルクの揺らぎを低減させることができる。この結果、可動電極30と溶接ワークWとの接触によるサーボモータ34の電流又はトルクの変化傾向の変化をより正確に検出することを可能とさせ、溶接ワークWの表面位置をより正確に検出できるようになる。
特に、サーボモータ34によって可動電極30を駆動する速度Vgを0として、可動電極30と溶接ワークWとを接触させる動作又は接触した状態から完全に離れさせる動作の全てを多関節ロボット12の移動によって行わせれば、可動電極30によって溶接ワークWの表面の位置を検出するときに、可動電極30はサーボモータ34によって駆動されないので、可動電極駆動機構内の動摩擦によるサーボモータ34の電流又はトルクの揺らぎがほとんど無くなる。したがって、可動電極30と溶接ワークWとが接触したとき又は可動電極30が溶接ワークWから完全に離れたときのサーボモータ34の電流又はトルクの変化傾向の変化を正確に検出することが可能となり、溶接ワークWの表面位置を正確に検出できるようになる。
また、サーボモータ34によって可動電極30を駆動する速度Vgを静摩擦が除去できる程度の極めて低い速度にしてもよい。サーボモータ34によって可動電極30を駆動する速度Vgを0として、対向電極32に対して可動電極30を完全に静止させていると、可動電極駆動機構内の静摩擦に起因して、可動電極30が溶接ワークWに接触しているときに溶接ワークWから受ける反力が損失してサーボモータ34に伝達されず、反力を受けているにもかかわらずサーボモータ34の電流又はトルクがほとんど変動しない不感帯が生じてしまう。このような不感帯は、静摩擦が大きい場合、可動電極30による溶接ワークWの表面の検出精度に悪影響を及ぼす可能性がある。これに対して、静摩擦が除去できる程度の極めて低い速度でサーボモータ34によって可動電極30を駆動すれば、このような不感帯を解消させることができる。また、静摩擦が除去できる程度の極めて低い速度Vgで対向電極32に対して可動電極30を移動させても、可動電極駆動機構内の動摩擦は小さくなるので、動摩擦によるサーボモータ34の電流又はトルクの揺らぎは最小限に抑えることができる。
次に、対向電極32が接触する溶接ワークの表面位置を検出する溶接ワーク位置検出方法を説明する。最初に、多関節ロボット12を操作して、スポット溶接ガン14の可動電極30と対向電極32とを閉じたときに溶接ワークW上の打点位置に可動電極30及び対向電極32が接触する位置までスポット溶接ガン14を移動させ、任意の方法により、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めする。なお、可動電極30を駆動するサーボモータ34にトルクリミットを設定する場合に限っては、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めした後、さらに、この位置から予め定められた距離だけオフセットした位置に可動電極30を位置決めしてもよい。理由については、後述する。次に、図3に示されているように、溶接ワークWの可動電極側表面に接する状態から対向電極32に接近させる方向にサーボモータ34によって可動電極30を予め定められた速度Vgで移動させると同時に、多関節ロボット12を用いて対向電極32と溶接ワークWとを互いに離れた状態から接近させる方向にスポット溶接ガン14と溶接ワークWとを速度Vgと等しい速度Vrで相対移動させ、対向電極32に対する可動電極30の移動速度及び加速度の少なくとも一方を監視する。そして、対向電極32に対する可動電極30の移動速度及び加速度の少なくとも一方の監視により対向電極32と溶接ワークWとの接触を検出すると、検出したときの対向電極32の先端の位置から溶接ワークWの対向電極側表面位置を求める。対向電極32に対する可動電極30の移動速度及び加速度は、直接的に測定してもよく、可動電極30を駆動するサーボモータ34から求めてもよい。
なお、対向電極に対する可動電極の移動速度及び加速度の監視は、可動電極を駆動するためのサーボモータの回転速度及び回転加速度の監視とそれぞれ等価であり、対向電極に対する可動電極の移動速度及び加速度の監視には、可動電極を駆動するためのサーボモータの回転速度及び回転加速度の監視がそれぞれ含まれるものとする。
ここで、対向電極32が溶接ワークWに接触したときの対向電極32の先端の位置の位置データは、多関節ロボット12の手首要素28の先端の位置データに基づいて、例えば以下のようにして求められる。
床面から基台20上に支持される旋回台22の水平軸線J2までの距離、垂直軸線J1と水平軸線J2との軸間距離、水平軸線J2と水平軸線J3との軸間距離、水平軸線J3と軸線J4との軸間距離が一定であるので、多関節ロボット12の手首要素28の先端の位置は、多関節ロボット12の各軸の回転角度から求めることができる。また、多関節ロボット12の手首要素28の先端からスポット溶接ガン14の対向電極32の先端までの位置は、予め定められており常に一定である。したがって、多関節ロボット12の手首要素28の先端の位置データと多関節ロボット12の手首要素28の先端とスポット溶接ガン14の対向電極32の先端との位置関係から、スポット溶接ガン14の対向電極32の先端の位置データが求められる。
上記の溶接ワーク位置検出方法は、多関節ロボット12を駆動するサーボモータの電流又はトルクや可動電極30を駆動するサーボモータ34の電流又はトルクではなく、対向電極32に対する可動電極30の移動速度及び加速度の少なくとも一方を監視することを特徴としている。対向電極32が溶接ワークWに接触するまでは、対向電極32に対する可動電極30の移動速度は、Vgで一定である。一方、可動電極30が溶接ワークWに接した状態を保ったまま、対向電極32が溶接ワークWに接触すると、可動電極30と対向電極32との間に溶接ワークWを挟み込む状態になるので、対向電極32に対する可動電極30の移動が妨げられ、対向電極32に対する可動電極30の移動速度が予め定められた値Vgから減少し、やがて0になる。このとき、対向電極32に対する可動電極の加速度は、0から負の値に転じ、やがて再び0になる。したがって、対向電極32に対する可動電極30の移動速度又は加速度を監視すれば、溶接ワークW、多関節ロボット12及びスポット溶接ガン14の剛性の影響をほとんど受けずに、対向電極32が溶接ワークWに接触したことを検出することができる。また、対向電極32が溶接ワークWに接触したときの対向電極32の位置から溶接ワークWの対向電極側表面位置を検出するので、溶接ワークWの表面の打点位置に対向電極32を位置決めするに先立って、打点位置における溶接ワークWの厚さを計測する必要がない。
本発明の溶接ワーク表面検出方法では、対向電極32に対して可動電極30を駆動するサーボモータ34にトルクリミットを設定することが好ましい。このようにサーボモータ34にトルクリミットを設定すれば、対向電極32が溶接ワークWに接触したときにサーボモータ34のトルクが即座にトルクリミットに達する。この結果、サーボモータ34による可動電極30の動作が制限され、対向電極32が溶接ワークWに接触したときにサーボモータ34の回転速度及び回転加速度すなわち可動電極30の移動速度及び加速度をより顕著に低下させることができ、接触の検出が容易となる。
サーボモータ34のトルクリミットの値は、スポット溶接ガン14と溶接ワークWとの相対移動により溶接ワークWから離れた状態から対抗電極32を溶接ワークWに接触させる動作中、すなわち対向電極32が溶接ワークWから離れた状態で対向電極32に対して可動電極30を速度Vgで移動させているときのサーボモータ34のトルクに基づいて、決定することが望ましい。可動電極30が移動速度Vgで動作しているときは、サーボモータ34は可動電極30を速度Vgで移動させるのに必要なトルクを出力している。この速度Vgで移動するのに必要なトルクを上記動作中に測定し、サーボモータ34のトルクリミットの値として設定すれば、対向電極32と可動電極30の間に溶接ワークWを挟み込んだときに、サーボモータ34は可動電極30によって対向電極32及び溶接ワークWを押し返させることができず、可動電極30は移動速度Vgを維持させることができなくなる。すなわち、可動電極30の移動速度及び可動電極30の加速度をさらに顕著に低下させることができるようになるので、より高感度に接触を検出することが可能となる。なお、サーボモータ34のトルクリミットの値として、可動電極30を速度Vgで移動させるのに必要なトルクを実際に設定する際には、多少のマージンを加味して、誤検出を防ぐことが望ましい。この加味するマージンによって検出感度を調整できるのはいうまでもない。
サーボモータ34のトルクリミットの値を決定するタイミングは、対向電極32が溶接ワークWから離れた状態で対向電極32に対して可動電極30が速度Vgで移動しているときであればいつでもよい。典型的には、可動電極30が対向電極32に対する相対移動を開始した直後は、まだ、対向電極32が溶接ワークに接していないので、このときのサーボモータ34のトルク出力に基づいてトルクリミットの値を決定すればよい。例えば、図5に示されるように、対向電極32に対する可動電極30の移動速度がVgになった時刻Ta以降におけるサーボモータ34のトルク出力に基づいてトルクリミットの値を設定すればよい。しかしながら、移動開始直後は、サーボモータ34が加速動作を開始したばかりであり、図6(a)及び(b)に示されるように、可動電極30の移動速度がVgに到達しても、サーボモータ34のトルク出力は不安定で、オーバーシュートが発生することがある。したがって、図6(a)及び(b)に示されるように、移動を開始してから予め定められた時間が経過しサーボモータ34のトルク出力が安定した時刻Tbにおけるトルクに基づいて、サーボモータ34のトルクリミットの値を決定することが好ましい。なお、トルクリミットの値を設定する前に対向電極32が溶接ワークに接しないようにするために、対向電極32と溶接ワークWとの間を引き離して十分な距離を確保してから検出動作を開始することが好ましい。
さらに、対向電極32に対して可動電極30が速度Vgで移動している際に予め定められた時間が経過しても対向電極32と溶接ワークWとが接触していないと判断されたときには、その予め定められた時間内のサーボモータ34のトルク出力に基づいてトルクリミットの値を決定するようにしてもよい。この予め定めれた時間を短くすれば、トルクリミットの設定値を一定時間毎に定期的に更新するようにすることができる。図7(a)に示されるように対向電極32に対して可動電極30が一定速度で相対移動しているときでも、スポット溶接ガン14に存在する機械的な抵抗(例えば、駆動部分の内部摩擦や、可動電極と溶接トランス(図示しない)とを接続する導電部の弾性変形など)によって、サーボモータ34のトルク出力は、一定値に安定せず、緩やかに上昇したり(図7(b))、緩やかに減少したり(図7(c))、揺らいだり(図7(d))する場合がある。このようにサーボモータ34のトルク出力が一定値に安定しない場合において、トルクリミットの設定値を定期的に更新することは有効な手段となる。例えば、図7(a)〜(d)に示されるように、一定間隔ΔTごとの時刻Tc、Td、Teにおけるサーボモータ34のトルクに基づいてトルクリミットの設定値の更新を定期的に繰り返せば、適切なトルクリミットを設定することができる。
可動電極30を駆動するサーボモータ34にトルクリミットを設定する場合に限っては、可動電極30を溶接ワークWの可動電極側表面に接する位置から既知の距離だけわずかにオフセットした位置に位置決めしめもよいと先述したが、ここで、その理由について述べる。
実際に可動電極30を溶接ワークWの可動電極側表面に接した状態で対向電極32と溶接ワークWとの接触を検出するための動作を行うと、多関節ロボット12が動作する際に発生する微小な振動によって、可動電極30が溶接ワークWに対してわずかに押し付けられたり溶接ワークWから離されたりするため、溶接ワークWからの反力を受けたり受けなかったりする不安定な状態になりやすい。サーボモータ34のトルクは可動電極30の移動速度を一定に保つように制御されるので、溶接ワークWから反力を受けると、溶接ワークWを押し返す分のトルクが余計に必要となる。したがって、サーボモータ34の回転速度又は可動電極30の移動速度が図8(a)に示されるように一定であったとしても、可動電極30が溶接ワークWに対してわずかに押し付けたり離れたりする状態下では、図8(b)に示されるように、サーボモータ34のトルクは溶接ワークWから反力を受けた状態での値T‘と受けていない状態での値Tとの間で揺らいで不安定になる。一方、接触の検出感度を向上させるためには、サーボモータ34のトルクリミットは、可動電極30が速度Vgでの移動を維持できる最低限のトルクと等しい値に設定することが好ましい。したがって、可動電極30に伝わる不安定な反力の影響は可能な限り除去することが望ましい。
可動電極30を被溶接ワークWからわずかに離した状態で対向電極32と溶接ワークWとの接触を検出するための動作を行うことで、溶接ワークWからの反力を除去することができ、図8(c)に示されるように、サーボモータ34のトルクはサーボモータ34が溶接ワークWから反力を受けていない状態の値Tを維持することが可能となる。また、逆に、可動電極30を被溶接ワークWにわずかに押し付けた状態で対向電極32と溶接ワークWとの接触を検出するための動作を行えば、溶接ワークWからの反力が抜けることがなく、サーボモータ34はほぼ一定の反力を安定して受けることができるので、図8(d)に示されるように、サーボモータ34のトルクはサーボモータ34が溶接ワークWから反力を受けている状態の値T’を維持することが可能となる。すなわち、サーボモータ34のトルク出力に一定のバイアスを与えることに等しくなる。これにより、サーボモータ34のトルクが安定するため、速度Vgでの可動電極30の移動を維持するためのトルクを的確に且つ容易に決定することができるようになる。なお、オフセットした場合は対向電極32による溶接ワークWの検出位置はオフセット距離分だけずれることになるが、オフセット距離は予め定められた既知の値であるので、検出された溶接ワークWの表面位置にオフセット距離を加味すれば正確な溶接ワークWの表面位置を得ることができる。
また、多関節ロボット12の各軸J1〜J5を駆動するサーボモータ(図示せず)にトルクリミットを設定するようにしてもよい。これにより、可動電極30及び対向電極32による溶接ワークの弾性変形を抑制することができる。可動電極30を駆動するサーボモータ34と多関節ロボット12の各軸J1〜J5を駆動するサーボモータの両方又は一方のみにトルクリミットを設定してもよいことはもちろんである。
多関節ロボット12の各軸J1〜J5を駆動するサーボモータ(図示せず)にトルクリミットを設定する場合においても、スポット溶接ガン14と溶接ワークWとの相対移動により溶接ワークWから離れた状態から対抗電極32を溶接ワークWに接触させる動作中、すなわち対向電極32が溶接ワークWから離れた状態で溶接ワークWに対して対向電極32を可動電極30の速度Vgに等しい速度Vrで相対移動させるように多関節ロボット12が動作させているときの多関節ロボットのサーボモータののトルクに基づいて、トルクリミットの値を決定することが望ましい。その理由及びトルクリミットの設定値の決定方法は、可動電極30を駆動するサーボモータ34にトルクリミットを設定する場合と同様であるので、ここでは説明を省略する。
また、本発明の溶接ワーク位置検出方法では、作業者が手動操作によって一工程ずつ進めてもよいが、スポット溶接システム10が一連の工程を自動的に実行してもよい。例えば、既に全溶接打点位置及びスポット溶接を行うプログラム命令が教示されているスポット溶接プログラムにおいて、上記工程を自動で実行するモードを有効にしてスポット溶接プログラムを再生したときに、溶接ワーク位置検出プログラムを自動的に再生することで、各溶接打点位置近傍に自動的に多関節ロボット12を移動させ、スポット溶接を行うプログラム命令を実行することで、上記工程を自動的に実行して溶接ワークWの表面位置の検出を行い、その検出位置に基づいてその溶接ワークWについて打点教示位置データの修正を行い、さらにその修正量(ずれ量)もロボット制御装置16に記録することもできる。記録した修正量をロボット制御装置16に備えられた教示操作盤に表示するようにしてもよい。また、記録した修正量が過大である場合に、溶接ワークWの位置の異常として、ロボット制御装置16に備えられた教示操作盤にアラーム通知したり、ロボット制御装置16と通信できるライン制御盤やコンピュータなどの外部制御装置にアラーム通知したりしてもよい。
さらに、本発明による溶接ワーク位置検出方法を用いて検出した溶接ワークWの対向電極側表面位置と、溶接ワークWの可動電極側表面位置とを用いて、図4に示されているように、打点位置における溶接ワークWの厚さtを計測することもできる。溶接ワークWの可動電極側表面位置は、例えば、スポット溶接ガン14の対向電極32の先端の位置データと、スポット溶接ガン14の対向電極32の先端に対する可動電極30の先端の相対位置データとから求めることができ、スポット溶接ガン14の対向電極32の先端の位置データは、上述した対向電極32の位置データの求め方と同様にして、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めしたときの多関節ロボット12の先端の位置データからスポット溶接ガン14の対向電極32の先端の位置データを求めることができる。
なお、溶接ワークWの可動電極側表面位置の検出は、前述したように、例えば、可動電極30と溶接ワークWとが、互いに離れた状態から接近するか又は互いに接触した状態から離反するように、多関節ロボット12を用いて溶接ワークWとスポット溶接ガン14とを相対移動させながら、サーボモータ34の電流又はトルクを監視し、電流又はトルクの変化傾向が変化したときに、可動電極30が溶接ワークWに接触した又は可動電極30が溶接ワークWから離れたと判断して、電流又はトルクの変化傾向が変化したときの可動電極30の位置と多関節ロボット12の位置とから可動電極30が接触する溶接ワークWの表面位置を検出することによって行うことができる。また、このように検出された溶接ワークWの表面位置に基づいて、検出された可動電極側表面位置に可動電極30を正確に位置決めすることが可能となる。したがって、対向電極32が接触する溶接ワークWの表面位置を検出するステップを開始する前に、上述したように予め検出しておいた溶接ワークWの可動電極側表面位置へ可動電極30を位置決めしておけば、より正確に対向電極32が接触する溶接ワークWの表面位置を検出することができる。
求められた各溶接打点における溶接ワークWの厚さtは、スポット溶接プログラムを教示するときに溶接打点における溶接ワークWの厚さを事前に設定する必要がある場合に使用することができる。実際の工場では、数百もの溶接打点における溶接ワークWの正確な厚さをそれぞれ設定しなければならない場合があり、このような場合に、上述したように求められた各溶接打点における溶接ワークWの厚さを使用することが助けとなる。さらに、既に教示したスポット溶接プログラムを修正する場合に、予め設定されている溶接ワークWの厚さ情報を、上記のようにして打点ごとに実際に計測した厚さに修正することもできる。これにより、作業者が溶接ワークWの厚さ情報を予め設定するときには設定を正確に行う必要がなくなる。
加えて、予め設定された溶接ワークWの厚さと計測した溶接ワークWの厚さとを比較し、両者の差が過大である場合には、ワーク厚さの以上であり、溶接ワークWの異常又は計測位置の異常があると判断することもできる。例えば、設定されている溶接ワークWの厚さに比べて、計測した溶接ワークWの厚さが厚すぎる場合は、可動電極30と対向電極32との間に埋め込みボルトなどの異物が存在することが考えられ、溶接打点としての検出位置が不適正であると判断できる。さらに、溶接ワークWが適正に設置されていない場合にも、設定されている溶接ワークWの厚さと計測した溶接ワークWの厚さの差は過大になるので、溶接ワークWの異常と判断できる。また、設定されている溶接ワークWの厚さと計測した溶接ワークWの厚さの差は過大でありながら溶接ワークの異常や溶接打点位置の異常も見られない場合には、可動電極30又は対向電極32の摩耗が大きくなっている可能性があると考えることもできる。これらの異常を検出した場合には、ロボット制御装置16に設けられた教示操作盤やロボット制御装置16と通信できる外部制御装置(ライン制御盤やコンピュータなど)にアラーム通知用信号を出力することもできる。
以下では、本発明に従って溶接ワークWの対向電極側表面位置を検出する方法の幾つかの具体的な実施形態を説明する。本発明の溶接ワーク位置検出方法では、多関節ロボット12によってスポット溶接ガン14と溶接ワークWとを相対移動させることができれば同じ効果を得ることができるが、以下においては、説明の簡単化のために、図1に示されているように、スポット溶接ガン14を多関節ロボット12によって保持して、溶接ワークWに対して相対移動させる場合を例として説明する。しかしながら、図2に示されているように、溶接ワークWを多関節ロボット12によって保持してスポット溶接ガン14に対して相対移動させてもよく、この場合、以下の説明において、多関節ロボット12によってスポット溶接ガン14を移動させる代わりに溶接ワークWを移動させればよい。
図9を参照して、本発明の溶接ワーク位置検出方法の第1の実施形態を説明する。第1の実施形態では、図1に示されているスポット溶接システム10において、サーボモータ34によって可動電極30を対向電極32に接近させる方向に予め定められた速度Vgで移動させながら多関節ロボット12によってスポット溶接ガン14を保持してワーク固定台(図示せず)に固定された溶接ワークWに対して速度Vgと同じ速度Vrで互いに接近させる方向に相対移動させる。
本実施形態では、最初に、多関節ロボット12を操作して、可動電極30と対向電極32とが閉じたときに溶接ワークW上の溶接箇所(打点位置)に接触するような位置までスポット溶接ガン14を移動させ、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めする(ステップS100)。このとき、対向電極32は、溶接ワークWから完全に離れた状態になっている。溶接ワークWの可動電極側表面に対する可動電極30の位置決めは、上述したように、任意の方法によって行えばよい。
次に、図3に示されているように、サーボモータ34によって可動電極30を溶接ワークWの可動電極側表面に接する状態から対向電極32に接近させる方向に予め定められた速度Vgで移動させると共に、多関節ロボット12を用いて対向電極32と溶接ワークWとを互いに離れた状態から接近させる方向にスポット溶接ガン14と溶接ワークWとを速度Vgと等しい速度Vrで相対移動させる(ステップS102)。すなわち、可動電極30と溶接ワークWとの相対位置を変えずに可動電極30が溶接ワークWに接した状態を保ったまま、対向電極32を溶接ワークWに接近させる。同時に、可動電極30の移動速度及び加速度の少なくとも一方を監視する(ステップS104)。可動電極30の移動速度及び加速度は、直接的に測定してもよく、可動電極30を駆動するサーボモータ34の回転速度及び回転加速度から求めてもよい。また、対向電極32に対する可動電極30の移動速度及び加速度は、可動電極30を駆動するためのサーボモータ34の回転速度及び回転加速度にそれぞれ比例するので、可動電極30の移動速度又は加速度に代えて、可動電極30を駆動するサーボモータ34の回転速度又は回転加速度を監視してもよい。監視の際には、サンプリング時間毎に、可動電極30の移動速度又は加速度あるいはサーボモータ34の回転速度又は回転加速度の情報と共に、多関節ロボット12の手首要素28の先端の位置データ及び対向電極32に対する可動電極30の相対位置データを逐次記録していく。
次に、スポット溶接ガン14の可動電極30を駆動するサーボモータ34と多関節ロボット12の各軸J1〜J5を駆動するサーボモータ(図示せず)にトルクリミットを設定するか否かを決定する(ステップS106)。トルクリミットを設定する場合には、ステップS108に進み、スポット溶接ガン14の可動電極30を駆動するサーボモータ34へのトルクリミットの設定と多関節ロボット12の各軸J1〜J5を駆動するサーボモータへのトルクリミットの設定の少なくとも一方を行った後、ステップS110に進む。各サーボモータのトルクリミットは、以降で対向電極32と溶接ワークWとの接触を検出するための動作を行うために必要なトルクが十分出力できるような値に設定される。ステップS102以降では、可動電極が速度Vgで移動し、多関節ロボット12の手首要素28の先端すなわち対向電極32は速度Vrで移動しているので、このときにそれぞれのサーボモータが実際に出力しているトルクに基づいて、各サーボモータのトルクリミットの値を設定することが好ましい。また、トルクリミットの設定値は、予め定められた値としてもよい。一方、トルクリミットを設定しない場合には、ステップS106から直接ステップS110に進む。
可動電極30が溶接ワークWに接した状態を保ったまま対向電極32が溶接ワークWに接触すると、可動電極30と対向電極32との間に溶接ワークWを挟み込む形となって、対向電極32に対する可動電極30の移動が妨げられる。すると、サーボモータ34は移動速度Vgを一定に維持するように制御されるため、より大きなトルクを出力しようとするが、サーボモータ34の出力限界に達して、可動電極30を駆動するサーボモータ34の回転速度が減少する。この結果、設定された速度Vgを維持できなくなり、対向電極32に対する可動電極30の移動速度が予め定められた値Vgから減少する。また、対向電極32に対する可動電極30の加速度は、0から負の値に転じる。このことを利用して、対向電極32に対する可動電極30の移動速度又はサーボモータ34の回転速度、もしくは対向電極32に対する可動電極30の加速度又はサーボモータ34の回転加速度を逐次チェックし(ステップS110)、対向電極32に対する可動電極30の移動速度又はサーボモータ34の回転速度が減少したとき、もしくは対向電極32に対する可動電極30の加速度又はサーボモータ34の回転加速度が0から負の値に転じたときに、対向電極32が溶接ワークWに接触したと判断する。また、対向電極32が溶接ワークWに接触していないと判断された場合には、ステップS104に戻り、可動電極の移動速度及び加速度の少なくとも一方の監視を続け、さらに、ステップS106で、再度トルクリミットを設定しなおすか否かを決定する。トルクリミットを設定しなおす場合は、例えば、ステップS108で可動電極30を駆動するサーボモータ34と多関節ロボット12の各軸を駆動するサーボモータがそれぞれ出力しているトルクに基づいてトルクリミットの値を決定しなおし、再設定すればよい。トルクリミットの設定値の更新は、予め定められた時間間隔で行ってもよい。
可動電極30を駆動するサーボモータ34にトルクリミットが設定されている場合には、対向電極32が溶接ワークWに接触した後、サーボモータ34のトルクが出力限界より早くトルクリミットに達するので、サーボモータ34の回転速度及び可動電極30の移動速度がより速く減少し、これと同時に、サーボモータ34の回転加速度及び可動電極30の加速度も変化する。特に、対向電極32が溶接ワークWに接触する前のサーボモータ34のトルクとほぼ等しい又は僅かに大きい値にサーボモータ34のトルクリミットが設定されている場合、対向電極32が溶接ワークWに接触したことを即座に検出することができる。
対向電極32が溶接ワークWに接触したと判断すると、対向電極32に対する可動電極30の移動及び多関節ロボット12の動作を停止させて、対向電極32が溶接ワークWに接触したと判断したときの多関節ロボット12の手首要素28の先端の位置データと手首要素28の先端に対するスポット溶接ガン14の対向電極32の先端の相対位置データとに基づいて、溶接ワークWの対向電極側表面の位置を検出し、溶接ワークWの表面位置の検出工程を終了する(ステップS112)。
図10は、本実施形態に従って対向電極32が接触する溶接ワークWの対向電極側表面を検出するときのサーボモータ34のトルク、回転速度及び回転加速度の変化を時系列で表したグラフを示しており、(a)がトルクのグラフ、(b)が回転速度のグラフ、(c)が回転加速度のグラフである。なお、対向電極32に対する可動電極30の移動速度の変化を時系列で表したグラフも図10(b)と同様になり、対向電極32に対する可動電極30の加速度の変化を時系列で表したグラフも図10(c)と同様になる。また、図10において、区間Aは、検出動作を行っていない状態、区間Bは、検出動作中で対向電極32がまだ溶接ワークWに接触していない状態、区間Cは、検出動作中で対向電極32が溶接ワークWに接触している状態を示す。
検出動作開始前において、可動電極30は対向電極32に対して静止しており、サーボモータ34によって駆動されていない。したがって、区間Aでは、サーボモータ34のトルクはある値で一定となり、回転速度及び回転加速度は0となる。一方、検出動作が始まると、可動電極30は対向電極32に対して速度Vgで移動させられるので、区間Bでは、対向電極32に対する可動電極30の移動速度が速度Vgに到達するまでサーボモータ34のトルク及び回転速度が増加し、Vgに到達すると両者とも一定となる。したがって、対向電極32に対する可動電極30の加速度及びサーボモータ34の回転加速度は、対向電極32に対する可動電極30の移動速度がVgに到達するまでは正の値になり、Vgに到達すると両者とも0となる。さらに、区間Cになって、可動電極30が溶接ワークWに接触した状態を保ったまま対向電極30が溶接ワークWに接触すると、可動電極30と対向電極32との間に溶接ワークWを挟み込んだ形となって、対向電極32に対する可動電極30の移動が妨げられる。この結果、サーボモータ34は移動速度Vgを一定に維持するように制御され、サーボモータ34のトルクが増加するが、やがてモータの出力限界又はトルクリミットに達して、一定となる。図10(a)は、サーボモータ34のトルクリミットが区間Bにおけるサーボモータ34のトルク(すなわち、負荷がほとんどない状態で対向電極32に対して可動電極30を速度Vgで移動させるために必要となるサーボモータ34のトルク)と等しい値に設定されている場合を示しており、区間Bと区間Cにおいてサーボモータ34のトルクはほぼ一定の値を示している。一方、対向電極32に対する可動電極30の移動速度は、予め定められた値Vgから減少して、やがて0となり、可動電極30は対向電極32に対して停止するので、可動電極30を駆動するサーボモータ34の回転速度も、図10(b)に示されるように、予め定められた値から減少して、やがて0となる。また、対向電極32に対する可動電極30の加速度は、対向電極32に対する可動電極30の移動速度に伴って変化するので、図10(c)に示されるように、区間Bでは0になり、区間Cでは負の値に転じて、可動電極30が対向電極32に対して停止すると再度0になる。
上述したように、サーボモータ34にトルクリミットを設定することにより、可動電極30が溶接ワークWを押圧することによって溶接ワークWを過度に変形させることを防止することができる。さらに、対向電極32が溶接ワークWに接触したときに可動電極30がより早く減速されるようになり、対向電極32が溶接ワークWに接触した時点の検出の遅れを低減させることができる。また、多関節ロボット12の各軸J1〜J5を駆動するサーボモータにもトルクリミットを設定すれば、多関節ロボット12によって移動させられるスポット溶接ガン14の対向電極32が溶接ワークWを押圧して過度に変形させることを防止することができる。
また、可動電極30が溶接ワークWに接した状態を保ったまま多関節ロボット12を用いて対向電極32を溶接ワークWに接近させることにより溶接ワークWに接触させると、対向電極32が溶接ワークWに接触したときに可動電極30の移動速度又は可動電極30を駆動するためのサーボモータ34の回転速度が一定の状態から変化して徐々に減少する。したがって、可動電極30の移動速度又はサーボモータ34の回転速度を監視すれば、可動電極30の移動速度又はサーボモータ34の回転速度がほぼ一定の状態から減少に転じたときを対向電極32が溶接ワークWに接触した時点と判断することができる。同様に、可動電極30が溶接ワークWに接した状態を保ったまま多関節ロボット12を用いて対向電極32を溶接ワークWに接近させることにより溶接ワークWに接触させると、対向電極32が溶接ワークWに接触したときに可動電極30の加速度又は可動電極30を駆動するためのサーボモータ34の回転加速度が0から変化して負の値に転じる。したがって、可動電極30の加速度又はサーボモータ34の回転加速度を監視すれば、可動電極30の加速度又はサーボモータ34の回転加速度がほぼ0から負の値に転じたときを対向電極32が溶接ワークWに接触した時点と判断することができる。
さらに、対向電極32が溶接ワークWに接触したと判断されたときの多関節ロボット12の手首要素28の先端の位置データと手首要素28の先端に対するスポット溶接ガン14の対向電極32の先端の相対位置データとから、対向電極32が溶接ワークWに接触したと判断されたときの対向電極32の先端の位置データを求めることができ、求められた対向電極32の先端の位置データを溶接ワークWの表面の位置データとみなせば、溶接ワークWの対向電極側表面の位置を検出することができる。
ここで、可動電極30の移動速度又はサーボモータ34の回転速度がほぼ一定の状態から減少に転じた時点は、可動電極30の移動速度又はサーボモータ34の回転速度の時系列曲線すなわち波形を解析して、可動電極30の移動速度又はサーボモータ34の回転速度がほぼ一定の状態から減少に転じた点(以下、変化点と記載する。)を求めることにより特定される。変化点を求めるためのサーボモータ34の回転速度の時系列波形の解析方法の例として、以下の三つが挙げられる。なお、可動電極30の移動速度の変化点を求めるための可動電極30の移動速度の時系列波形の解析方法も同様であることは言うまでもない。
(i)図11に示されているように、サーボモータ34の回転速度の基準値に対する減少量が予め定められた閾値α(>0)を超えた点を変化点とみなす。サーボモータ34の回転速度は、溶接ワークWの剛性にかかわらず最終的に0になるので、閾値αは区間Bにおけるサーボモータ34の回転速度から0までの範囲の任意の値とすればよい。閾値αが小さいほど、対向電極32が溶接ワークWに接触したことを早く検出することができる。閾値αは、区間Bにおけるサーボモータ34の回転速度に対する割合(例えば10%など)を用いて決定してもよい。
(ii)図12に示されているように、サーボモータ34の回転速度の単位時間Δt当たりの変化量Δv、すなわちサーボモータ34の回転速度の時系列波形の傾きが、予め定められた閾値β(≦0)以下になった点を変化点とみなす。対向電極32が溶接ワークWに接触すると図12に示されているようにサーボモータ34の移動速度は単調に減少するので、閾値βは負の値となる。減少開始直後を検出したい場合には、閾値βを0に近い負の値とすればよい。
(iii)対向電極32が溶接ワークWに接触するとサーボモータ34の回転速度は単調減少を示すので、サーボモータ34の回転速度の時系列波形の傾きは負の値になる。そこで、図13に示されているように、まず、(i)又は(ii)の方法によって、サーボモータ34の回転速度の変化点を求め、これを仮の変化点とし、仮の変化点から回転速度の時系列波形に沿って時刻を遡ってサーボモータ34の回転速度の単位時間当たりの変化量(すなわち回転速度の時系列波形の傾き)を求めていき、回転速度の時系列波形の傾きがほぼ0になる点を真の変化点とし、真の変化点において、回転速度がほぼ一定の状態から減少に転じたとみなす。なお、サーボモータ34の回転速度の時系列波形は離散的なサンプリング点の集合であるので、必ずしも時系列波形上に傾きが0になる点が存在するとは限らない。したがって、実際には、仮の変化点(時刻Td1)から回転速度の時系列波形に沿って時刻を遡って回転速度の時系列波形の傾きが負の値から0又は正の値になる点(時刻Td3)を特定し、その直前のサンプリング点(時刻Td2)を真の変化点とすればよい。このような方法によれば、図13に示されるように、サーボモータ34の回転速度が曲線的に減少していく場合でも、サーボモータ34の回転速度が一定の状態から減少に転じた直後の時刻を正確に特定することができ、溶接ワークWの対向電極側表面の位置を正確に求めることが可能となる。
対向電極32に対する可動電極30の移動速度Vgは、任意に予め定められるものであるので、溶接ワークW、スポット溶接ガン14及び多関節ロボットの剛性の影響を受けることがなく、速度Vgから一定の状態から減少に転じた点を特定するための上述した閾値の設定が容易となる。
可動電極30の加速度又はサーボモータ34の回転加速度による検出の判断も基本的に同じ考えを適用できる。可動電極30の加速度又はサーボモータ34の回転加速度がほぼ0の状態から負に転じた時点は、可動電極30の加速度又はサーボモータ34の回転加速度の時系列曲線すなわち波形を解析して、可動電極30の加速度又はサーボモータ34の回転加速度がほぼ0の状態から負に転じた点(以下、変化点と記載する。)を求めることにより特定される。変化点を求めるためのサーボモータ34の回転加速度の時系列波形の解析方法の例として、以下の三つが挙げられる。なお、可動電極30の加速度の変化点を求めるための可動電極30の加速度の時系列波形の解析方法も同様であることは言うまでもない。
(i)図14に示されるように、サーボモータ34の回転加速度が負の値になった点を変化点とみなす。ただし、実際のサーボモータ34の回転速度は微小な変化をするので、誤検出を防ぐために、サーボモータ34の回転加速度が負の値になった点を変化点とするのではなく、予め定められた閾値γ(<0)を下回った点を変化点とみなすことが好ましい。閾値γは任意の負の値とすればよく、閾値γを0に近い負の値にすれば、対向電極32が溶接ワークWに接触したことを早く検出することができる。
(ii)サーボモータ34の回転加速度は、図14に示されるように、0から階段状に負の値(負の加速度)にとぶ場合だけではなく、図15に示されるように特定の負の加速度へ徐々に変化する場合もある。このような場合には、図15に示されているように、対向電極32が溶接ワークWに接触するとサーボモータ34の回転速度は単調に減少し、それに伴いサーボモータ34の回転加速度は、最初の微小時間内で0から特定の負の値に徐々に低下し、特定の負の値で一定の状態を続けた後に再度徐々に上昇してやがて0になる。そこで、サーボモータ34の回転加速度の単位時間Δt当たりの変化量Δa、すなわちサーボモータ34の回転加速度の時系列波形の傾きが、予め定められた閾値δ(≦0)以下になった点を変化点とみなす。減少開始直後を検出したい場合には、閾値δを0に近い負の値とすればよい。
(iii)対向電極32が溶接ワークWに接触するとサーボモータ34の回転加速度は0から減少するので、サーボモータ34の回転加速度の時系列波形の傾きは負の値になる。そこで、図16に示されているように、まず、(i)又は(ii)の方法によって、サーボモータ34の回転加速度の変化点を求め、これを仮の変化点とし、仮の変化点から回転加速度の時系列波形に沿って時刻を遡ってサーボモータ34の回転加速度の単位時間当たりの変化量(すなわち回転加速度の時系列波形の傾き)を求めていき、回転加速度の時系列波形の傾きがほぼ0になる点を真の変化点とし、真の変化点において、回転加速度がほぼ0の状態から減少に転じたとみなす。なお、サーボモータ34の回転加速度の時系列波形は離散的なサンプリング点の集合であるので、必ずしも時系列波形上に傾きが0になる点が存在するとは限らない。したがって、実際には、仮の変化点(時刻Td1)から回転加速度の時系列波形に沿って時刻を遡って回転加速度の時系列波形の傾きが負の値から0又は正の値になる点(時刻Td3)を特定し、その直前のサンプリング点(時刻Td2)を真の変化点とすればよい。このような方法によれば、図16に示されるように、サーボモータ34の回転速度が曲線的に減少していく場合でも、サーボモータ34の回転加速度がほぼ0の状態から負に転じた直後の時刻を正確に特定することができ、溶接ワークWの対向電極側表面の位置を正確に求めることが可能となる。
なお、本実施形態では、可動電極30及び対向電極32による溶接ワークWの変形を最小限に抑えるために、対向電極32が溶接ワークWに接触したと判断されると、ロボット制御装置16及びスポット溶接ガン制御装置18は、多関節ロボット12及びサーボモータ34の動作を停止させ、対向電極32が溶接ワークWに接触したと判断したときの多関節ロボット12の手首要素28の先端の位置データと手首要素28の先端に対するスポット溶接ガン14の対向電極32の相対位置データとから溶接ワークWの対向電極側表面の位置を検出する。しかしながら、解析方法(iii)を採用する場合には、仮の変化点を特定した時点で解析に必要なサーボモータ34の回転速度及び/又は回転加速度の時系列データが揃い、それ以降に検出動作を継続する必要がないので、対向電極32が溶接ワークWに接触したと判断された後ではなく、仮の変化点を特定した時点で多関節ロボット12及びサーボモータ34の動作を停止させてもよい。
また、対向電極32と溶接ワークWとが接触したと判断した後も、多関節ロボット12及びサーボモータ34が惰走してしまい、多関節ロボット12及びサーボモータ34が停止したときの多関節ロボット12の手首要素28の先端の位置及び対向電極32の先端に対する可動電極30の先端の相対位置と、可動電極30と溶接ワークWとが接触したと判断したときの多関節ロボット12の手首要素28の先端の位置及び対向電極32の先端に対する可動電極30の先端の相対位置とが異なってしまうことがある。したがって、スポット溶接ガン14の可動電極30及び対向電極32を位置決めすることが最終目的である場合には、多関節ロボット12の惰走を是正するために、対向電極32と溶接ワークWとが接触したと判断したときの位置に多関節ロボット12を移動され且つサーボモータ34を回転させればよい。
図17を参照して、本発明の溶接ワーク位置検出方法の第2の実施形態を説明する。第2の実施形態でも、第1の実施形態と同様に、図1に示されているスポット溶接システム10において、サーボモータ34によって可動電極30を対向電極32に接近させる方向に予め定められた速度Vgで移動させながら多関節ロボット12によってスポット溶接ガン14を保持してワーク固定台(図示せず)に固定された溶接ワークWに対して速度Vgと同じ速度Vrで互いに接近させる方向に相対移動させる。しかしながら、第2の実施形態は、多関節ロボット12によるスポット溶接ガン14の移動速度又は加速度を可動電極30の移動速度及び加速度に常に一致させるように制御することにより、多関節ロボット12を自動的に停止させ、多関節ロボット12が停止したことを検出することによって、可動電極30の移動速度が減少したこともしくは可動電極30の加速度が0から負の値に転じたことを検出する点において異なっている。
第2の実施形態のステップS200〜S208は、それぞれ、第1の実施形態のS100〜S108と全く同じであるので、ここでは説明を省略し、異なるステップについてのみ説明する。第2の実施形態においても、図3に示されているように、可動電極30を溶接ワークWの可動電極側表面に接するように位置決めした状態から、サーボモータ34によって可動電極30を対向電極32に接近させる方向に予め定められた速度Vgで移動させると共に、多関節ロボット12を用いて対向電極32と溶接ワークWとを互いに離れた状態から接近させる方向にスポット溶接ガン14と溶接ワークWとを速度Vgと等しい速度Vrで相対移動させながら、可動電極の移動速度及び加速度の少なくとも一方を監視し、この際に必要であれば、可動電極30を駆動するサーボモータ34と多関節ロボット12の各軸を駆動するサーボモータにトルクリミットを設定する(ステップS200〜S208)。すなわち、可動電極30が溶接ワークWに接した状態を保ったまま、対向電極32を溶接ワークWに接近させ、同時に可動電極30の移動速度及び加速度の少なくとも一方を監視する。可動電極30の移動速度及び加速度は、直接的に測定してもよく、可動電極30を駆動するサーボモータ34の回転速度及び回転加速度から求めてもよい。監視の際には、サンプリング時間毎に、可動電極30の移動速度又は加速度あるいはサーボモータ34の回転速度又は回転加速度の情報と共に、多関節ロボット12の手首要素28の先端の位置データ及び対向電極32に対する可動電極30の相対位置データを逐次記録していく。
一方、第2の実施形態では、第1の実施形態と異なり、ロボット制御装置16は、サーボモータ34による対向電極32に対する可動電極30の移動速度又は加速度に一致させるように多関節ロボット12によるスポット溶接ガン14の移動速度又は加速度すなわち対向電極32の移動速度又は加速度を制御する(ステップS210)。
可動電極30が溶接ワークWに接した状態を保ったまま対向電極32が溶接ワークWに接触すると、可動電極30と対向電極32との間に溶接ワークWを挟み込む形となって、対向電極32に対する可動電極30の移動が妨げられる。すると、サーボモータ34は移動速度Vgを一定に維持するように制御されるため、より大きなトルクを出力しようとするが、サーボモータ34の出力限界に達して、可動電極30を駆動するサーボモータ34の回転速度が減少する。この結果、設定された速度Vgを維持できなくなり、対向電極32に対する可動電極30の移動速度が予め定められた値Vgから減少し、0になる。また、このとき、対向電極32に対する可動電極30の加速度は0から負の値に転じる。
さらに、本実施形態では、対向電極32に対する可動電極30の移動速度に一致させるように多関節ロボット12によるスポット溶接ガン14及びその対向電極32の移動速度が制御されるので、多関節ロボット12によるスポット溶接ガン14及びその対向電極32の移動速度すなわち多関節ロボット12の手首要素28の先端の移動速度が、対向電極32に対する可動電極30の移動速度の減少に伴って、速度Vr(=Vg)から減少し、0になる。また、対向電極32に対する可動電極30の加速度に一致させるように多関節ロボット12によるスポット溶接ガン14及びその対向電極32の加速度を制御する場合も同様に、対向電極32に対する可動電極30の加速度の減少に伴って、多関節ロボット12によるスポット溶接ガン14及びその対向電極32の加速度すなわち多関節ロボット12の手首要素28の先端の加速度が減少される。すなわち、最終的に、可動電極30及び対向電極32は溶接ワークWを挟み込む形で停止する。したがって、多関節ロボット12の手首要素28の先端の移動速度が0になったか否かを判断し(ステップS212)、0になって、可動電極30及び対向電極32が停止したときの多関節ロボット12の手首要素28の先端の位置データと手首要素28に対するスポット溶接ガン14の対向電極32の先端の相対位置データとに基づいて、溶接ワークWの対向電極側表面の位置を検出し、溶接ワークWの表面位置の検出工程を終了する(ステップS214)。
図18は本実施形態に従って対向電極32が接触する溶接ワークWの対向電極側表面を検出するときのサーボモータ34のトルク及び回転速度、多関節ロボットの手首要素28の先端の移動速度の変化を時系列で表したグラフを示しており、(a)がサーボモータ34のトルクのグラフ、(b)がサーボモータ34の回転速度のグラフ、(c)が多関節ロボット12の手首要素28の先端の移動速度のグラフである。さらに、図19は本実施形態に従って対向電極32が接触する溶接ワークWの対向電極側表面を検出するときのサーボモータ34のトルク及び回転加速度、多関節ロボットの手首要素28の先端の加速度の変化を時系列で表したグラフを示しており、(a)がサーボモータ34のトルクのグラフ、(b)がサーボモータ34の回転加速度のグラフ、(c)が多関節ロボット12の手首要素28の先端の加速度のグラフである。なお、対向電極32に対する可動電極32の移動速度の変化を時系列で表したグラフも図18(b)と同様になり、対向電極32に対する可動電極32の加速度の変化を時系列で表したグラフも図19(b)と同様になる。また、図18及び図19において、区間Aは、検出動作を行っていない状態、区間Bは、検出動作中で対向電極32がまだ溶接ワークWに接触していない状態、区間Cは、検出動作中で対向電極32が溶接ワークWに接触している状態を示す。
検出動作開始前において、可動電極30は対向電極32に対して静止しており、サーボモータ34によって駆動されておらず、多関節ロボット12も駆動されていない。したがって、区間Aでは、サーボモータ34のトルクは一定となり、回転速度及び回転加速度は0となると共に、多関節ロボット12の手首要素28の先端の移動速度及び加速度も0になる。一方、検出動作が始まると、可動電極30が対向電極32に対して速度Vgで移動させられると共に、多関節ロボット12によってスポット溶接ガン14及びその対向電極32が対向電極32に対する可動電極30の移動速度Vgと同じ速度で移動させられる。したがって、区間Bでは、対向電極32に対する可動電極30の移動速度が速度Vgに到達するまでサーボモータ43のトルク及び回転速度が増加し、Vgに到達すると両者とも一定となり、また、多関節ロボット12の手首要素28の先端の移動速度が速度Vgまで増加して一定となる。したがって、サーボモータ34の回転加速度は、対向電極32に対する可動電極30の移動速度がVgに到達するまで増加し、Vgに到達すると0になり、また、多関節ロボット12の手首要素28の先端の加速度も同様の挙動を示す。さらに、区間Cになって、可動電極30が溶接ワークWに接触した状態を保ったまま対向電極30が溶接ワークWに接触すると、可動電極30と対向電極32との間に溶接ワークWを挟み込んだ形となって、対向電極32に対する可動電極30の移動が妨げられる。この結果、サーボモータ34は、サーボモータ34は移動速度Vgを一定に維持するように制御され、サーボモータ34のトルクが増加するが、やがてモータの出力限界又はトルクリミットに達して、一定となる。
図18(a)は、サーボモータ34のトルクリミットが区間Bにおけるサーボモータ34のトルク(すなわち、負荷がほとんどない状態で対向電極32に対して可動電極30を速度Vgで移動させるために必要となるサーボモータ34のトルク)と等しい値に設定されている場合を示しており、区間Bと区間Cにおいてサーボモータ34のトルクはほぼ一定の値を示している。一方、対向電極32に対する可動電極30の移動速度は、予め定められた値Vgから減少して、やがて0となり、可動電極30は対向電極32に対して停止するので、可動電極30を駆動するサーボモータ34の回転速度も、図18(b)に示されるように、予め定められた値から減少して、やがて0となり、サーボモータ34は停止する。また、多関節ロボット12の手首要素28の先端の移動速度は、対向電極32に対する可動電極30の移動速度と一致するので、予め定められた値Vgから減少して、やがて0となり、多関節ロボット12も停止する。同様に、対向電極32に対する可動電極30の加速度は、0から負の値に転じ、やがて再度0となり、可動電極30は対向電極32に対して停止するので、可動電極30を駆動するサーボモータ34の回転速度も、図19(b)に示されるように、0から負の値に転じ、再度0となり、サーボモータ34は停止する。また、多関節ロボット12の手首要素28の先端の移動速度は、対向電極32に対する可動電極30の加速度と一致するので、0から負の値に転じ、再度0となり、多関節ロボット12も停止する。
上述したように、サーボモータ34にトルクリミットを設定することにより、可動電極30が溶接ワークWを押圧することによって溶接ワークWを過度に変形させることを防止することができる。また、対向電極32が溶接ワークWに接触したときに可動電極30がより早く減速されるようになり、対向電極32が溶接ワークWに接触した時点の検出の遅れを低減させることができる。さらに、多関節ロボット12の各軸J1〜J5を駆動するサーボモータにもトルクリミットを設定すれば、多関節ロボット12によって移動させられるスポット溶接ガン14の対向電極32が溶接ワークWを押圧して過度に変形させることを防止することができる。
また、対向電極32に対する可動電極30の移動速度に一致させるように多関節ロボット12によるスポット溶接ガン14及びその対向電極32の移動速度を制御しているので、対向電極32が溶接ワークWに接触して可動電極30と対向電極32との間に溶接ワークWが挟み込まれる形となり、対向電極32に対して可動電極30が停止すると、多関節ロボット12の動作も停止する。したがって、対向電極32に対する可動電極30の移動又は多関節ロボット12の移動が停止したときに、対向電極32が溶接ワークWに接触したと判断することで、第1の実施形態のように、対向電極32に対する可動電極30の移動速度又はサーボモータ34の回転速度がほぼ一定の状態から減少に転じた時点を検出する必要がなくなる。この結果、第1の実施形態において可動電極30の移動速度又はサーボモータ34の回転速度がほぼ一定の状態から減少に転じた時点を特定するために必要とされる各閾値を予め実験的に定める必要もなくなり、また、溶接ワークW、多関節ロボット12及びスポット溶接ガン14の剛性に依存せずに、対向電極32が接触する溶接ワークWの対向電極側表面の位置を検出することが可能となる。さらに、最終的に、可動電極30及び対向電極32が溶接ワークWに接触した状態で停止するので、このときの可動電極30及び対向電極32の先端の位置から溶接ワークWの厚さtを計測することも容易となる。対向電極32に対する可動電極30の加速度に一致させるように多関節ロボット12によるスポット溶接ガン14及びその対向電極32の加速度を制御した場合も同様である。
以上、図示される実施形態に基づいて、本発明を説明したが、本発明は上述した実施形態に限定されるものではない。例えば、上記実施形態では、可動電極30の移動速度又は加速度の監視を行うと同時に、多関節ロボット12の手首要素28の先端の位置データと対向電極32に対する可動電極30の相対位置データを記録するようにしている。しかしながら、多関節ロボット12及び可動電極30は、ロボット制御装置16及びスポット溶接ガン制御装置18からの時系列上の動作指令に基づいて動作しているので、実行された多関節ロボット12及び可動電極30の動作指令から過去の時刻の多関節ロボット12の手首要素28の先端の位置データと対向電極32に対する可動電極30の相対位置データを求めてもよい。