(57)【特許請求の範囲】
【請求項１】
ベース部、該ベース部に固定される固定アーム、該固定アームに支持される固定電極チップ、前記固定アームに対して移動可能に前記ベース部に設けられた可動アーム、該可動アームに支持されて前記固定電極チップとの間で被溶接ワークを挟持する可動電極チップ、および前記可動アームを駆動する駆動部を有するスポット溶接ガンと、
前記可動アームの位置を検出する位置検出部と、
前記駆動部によって前記可動アームを予め定められた駆動力で駆動して前記可動電極チップで前記固定電極チップを加圧したときの前記位置と該駆動力とに基づいて、前記可動アームと前記固定アームの合成バネ定数を算出する第１のバネ定数算出部と、
前記駆動部によって前記可動アームを予め定められた駆動力で駆動して前記可動電極チップで前記スポット溶接ガンとは別に設けられた基準固定物を加圧したときの前記位置と、該駆動力とに基づいて、前記可動アームのバネ定数を算出する第２のバネ定数算出部と、
前記合成バネ定数と、前記可動アームのバネ定数とに基づいて、前記固定アームのバネ定数を算出する第３のバネ定数算出部と、
前記固定アームのバネ定数と、前記可動電極チップと前記固定電極チップとの間で前記被溶接ワークを挟持したときの前記駆動部から前記可動アームに与えられている駆動力と、に基づいて、該可動電極チップと該固定電極チップとの間で該被溶接ワークを挟持したときの前記固定アームの弾性変位量を算出する弾性変位算出部と、を備える、スポット溶接システム。
【請求項２】
前記駆動部は、サーボモータであり、
前記位置検出部は、前記サーボモータの回転位置を計測することによって前記可動アームの位置を検出する、請求項１に記載のスポット溶接システム。
【請求項３】
前記第１のバネ定数算出部は、第１の前記駆動力で前記可動アームを駆動したときの第１の前記位置と、第２の前記駆動力で前記可動アームを駆動したときの第２の前記位置と、に基づいて、前記合成バネ定数を算出する、請求項１または２に記載のスポット溶接システム。
【請求項４】
前記第１の駆動力はほぼゼロであり、前記可動アームが前記第１の位置に配置されているとき、前記可動電極チップは、前記固定電極チップに圧力を与えることなく接触している、請求項３に記載のスポット溶接システム。
【請求項５】
前記第２のバネ定数算出部は、第３の前記駆動力で前記可動アームを駆動したときの第３の前記位置と、第４の前記駆動力で前記可動アームを駆動したときの第４の前記位置と、に基づいて、前記可動アームのバネ定数を算出する、請求項１〜４のいずれか１項に記載のスポット溶接システム。
【請求項６】
前記第３の駆動力はほぼゼロであり、前記可動アームが前記第３の位置に配置されているとき、前記可動電極チップは、前記基準固定物に圧力を与えることなく接触している、請求項５に記載のスポット溶接システム。
【請求項７】
前記スポット溶接ガンが取り付けられるマニピュレータをさらに備え、
前記第２のバネ定数算出部は、前記マニピュレータのバネ定数を加味して、前記可動アームのバネ定数を算出する、請求項１〜６のいずれか１項に記載のスポット溶接システム。
【請求項８】
スポット溶接方法であって、
スポット溶接ガンの可動アームを予め定められた駆動力で駆動して、該可動アームに支持された可動電極チップで、前記スポット溶接ガンの固定アームに支持された固定電極チップを加圧する第１加圧工程と、
前記第１加圧工程において、前記可動アームの位置を検出する第１位置検出工程と、
前記第１位置検出工程で検出された前記位置と、前記第１加圧工程で前記可動アームに与えられた前記駆動力と、に基づいて、前記可動アームと前記固定アームの合成バネ定数を算出する第１バネ定数算出工程と、
前記可動アームを予め定められた駆動力で駆動して、前記可動電極チップで、前記スポット溶接ガンとは別に設けられた基準固定物を加圧する第２加圧工程と、
前記第２加圧工程において、前記可動アームの位置を検出する第２位置検出工程と、
前記２位置検出工程で検出された前記位置と、前記第２加圧工程で前記可動アームに与えられた前記駆動力と、に基づいて、前記可動アームのバネ定数を算出する第２バネ定数算出工程と、
前記合成バネ定数と、前記可動アームのバネ定数とに基づいて、前記固定アームのバネ定数を算出する第３バネ定数算出工程と、
前記可動アームを予め定められた駆動力で駆動して、前記可動電極チップと前記固定電極チップとの間で被溶接ワークを挟持するワーク挟持工程と、
前記固定アームのバネ定数と、前記ワーク挟持工程で前記可動アームに与えられた前記駆動力と、に基づいて、前記ワーク挟持工程において発生する前記固定アームの弾性変位量を算出する変位算出工程と、
前記スポット溶接ガンが取り付けられたマニピュレータを動作させ、前記弾性変位量に基づいて、前記スポット溶接ガンの位置を補正する位置補正工程と、を備える、スポット溶接方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スポット溶接システム、およびスポット溶接方法に関する。
【背景技術】
【０００２】
可動電極チップと固定電極チップとの間で被溶接ワークを挟持して溶接を行うスポット溶接ガンにおいて、可動電極チップと固定電極チップとで被溶接ワークを加圧したときに、可動電極チップと固定電極チップを支持するガンアームが弾性変位する。このようなガンアームの弾性変位によって、溶接精度の低下等が引き起こされる場合がある。
【０００３】
従来、被溶接ワークに加えられる加圧力と、ガンアームの弾性変位量との関係をレファレンスデータとして予め記録し、該レファレンスデータに基づいて、被溶接ワークの加圧時におけるガンアームの弾性変位を推定する技術が知られている（例えば特許文献１および２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１５５０３６号公報
【特許文献２】特開平８−２０６８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ガンアームの弾性変位の度合いは、ガンアーム毎に異なる。従来のシステムにおいて、レファレンスデータを一律に適用してガンアームの弾性変位量を推定した場合、個々のガンアームに則した正確な弾性変位量を算出することができない。また、従来のシステムにおいて、算出される弾性変位量の精度を向上させるべく、個々のガンアームに関して溶接作業前にレファレンスデータを取得しようとすると、大変な作業を要することになる。
【課題を解決するための手段】
【０００６】
本発明の一態様において、スポット溶接システムは、スポット溶接ガンを備え、該スポット溶接ガンは、ベース部、該ベース部に固定される固定アーム、該固定アームに支持される固定電極チップ、固定アームに対して移動可能にベース部に設けられた可動アーム、該可動アームに支持されて固定電極チップとの間で被溶接ワークを挟持する可動電極チップ、および可動アームを駆動する駆動部を有する。
【０００７】
また、スポット溶接システムは、可動アームの位置を検出する位置検出部と、駆動部によって可動アームを予め定められた駆動力で駆動して可動電極チップで固定電極チップを加圧したときの位置と該駆動力とに基づいて、可動アームと固定アームの合成バネ定数を算出する第１のバネ定数算出部と、駆動部によって可動アームを予め定められた駆動力で駆動して可動電極チップでスポット溶接ガンとは別に設けられた基準固定物を加圧したときの位置と、該駆動力とに基づいて、可動アームのバネ定数を算出する第２のバネ定数算出部とを備える。
【０００８】
また、スポット溶接システムは、合成バネ定数と、可動アームのバネ定数とに基づいて、固定アームのバネ定数を算出する第３のバネ定数算出部と、固定アームのバネ定数と、可動電極チップと固定電極チップとの間で被溶接ワークを挟持したときの駆動部から可動アームに与えられている駆動力とに基づいて、該可動電極チップと該固定電極チップとの間で該被溶接ワークを挟持したときの固定アームの弾性変位量を算出する弾性変位算出部とを備える。
【０００９】
駆動部は、サーボモータであってもよい。位置検出部は、サーボモータの回転位置を計測することによって可動アームの位置を検出してもよい。第１のバネ定数算出部は、第１の駆動力で可動アームを駆動したときの第１の位置と、第２の駆動力で可動アームを駆動したときの第２の位置とに基づいて、合成バネ定数を算出してもよい。
【００１０】
第１の駆動力は略ゼロであってもよく、可動アームが第１の位置に配置されているとき、可動電極チップは、固定電極チップに圧力を与えることなく接触してもよい。第２のバネ定数算出部は、第３の駆動力で可動アームを駆動したときの第３の位置と、第４の駆動力で可動アームを駆動したときの第４の位置とに基づいて、可動アームのバネ定数を算出してもよい。
【００１１】
第３の駆動力は略ゼロであってもよく、可動アームが第３の位置に配置されているとき、可動電極チップは、基準固定物に圧力を与えることなく接触してもよい。スポット溶接システムは、スポット溶接ガンが取り付けられるマニピュレータをさらに備えてもよい。第２のバネ定数算出部は、マニピュレータのバネ定数を加味して、可動アームのバネ定数を算出してもよい。
【００１２】
本発明の他の態様において、スポット溶接方法は、スポット溶接ガンの可動アームを予め定められた駆動力で駆動して、該可動アームに支持された可動電極チップで、スポット溶接ガンの固定アームに支持された固定電極チップを加圧する第１加圧工程と、第１加圧工程において、可動アームの位置を検出する第１位置検出工程と、第１位置検出工程で検出された位置と、第１加圧工程で可動アームに与えられた駆動力とに基づいて、可動アームと固定アームの合成バネ定数を算出する第１バネ定数算出工程とを備える。
【００１３】
また、スポット溶接方法は、可動アームを予め定められた駆動力で駆動して、可動電極チップで、スポット溶接ガンとは別に設けられた基準固定物を加圧する第２加圧工程と、第２加圧工程において、可動アームの位置を検出する第２位置検出工程と、２位置検出工程で検出された位置と、第２加圧工程で可動アームに与えられた駆動力とに基づいて、可動アームのバネ定数を算出する第２バネ定数算出工程とを備える。
【００１４】
また、スポット溶接方法は、合成バネ定数と、可動アームのバネ定数とに基づいて、固定アームのバネ定数を算出する第３バネ定数算出工程と、可動アームを予め定められた駆動力で駆動して、可動電極チップと固定電極チップとの間で被溶接ワークを挟持するワーク挟持工程とを備える。
【００１５】
また、スポット溶接方法は、固定アームのバネ定数と、ワーク挟持工程で可動アームに与えられた駆動力とに基づいて、ワーク挟持工程において発生する固定アームの弾性変位量を算出する変位算出工程と、スポット溶接ガンが取り付けられたマニピュレータを動作させ、弾性変位量に基づいて、スポット溶接ガンの位置を補正する位置補正工程とを備える。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るスポット溶接システムの概略図である。
【図２】図１に示すスポット溶接ガンの拡大図である。
【図３】図１に示すスポット溶接システムのブロック図である。
【図４】可動アームと固定アームの合成バネ定数を算出するときの、可動アームと固定アームの接触状態と、可動アームと固定アームの等価機械モデルを示す概略図である。
【図５】可動アームのバネ定数を算出するときの、可動アームと基準固定物の接触状態と、可動アームの等価機械モデルを示す概略図である。
【図６】図５に対応する図であって、ロボットアームのバネ定数を加味して可動アームのバネ定数を算出するときの、可動アームと基準固定物の接触状態と、ロボットアームと可動アームの等価機械モデルを示す概略図である。
【図７】本発明の一実施形態に係るスポット溶接方法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。図１〜図３を参照して、本発明の一実施形態に係るスポット溶接システム１０について説明する。図１に示すように、スポット溶接システム１０は、ロボット１２、ロボット制御部１４、教示操作盤１６、メモリ１８、およびスポット溶接ガン３０を備える。
【００１８】
ロボット１２は、例えば垂直多関節型ロボットであり、床に固定されたベース１７と、ベース１７に回動可能に連結されたロボットアーム２０（マニピュレータ）とを有する。スポット溶接ガン３０は、ロボットアーム２０の先端に設けられており、ロボットアーム２０によって移動される。ロボット制御部１４は、ロボット１２およびスポット溶接ガン３０の各要素を制御する。
【００１９】
メモリ１８は、ロボット制御部１４と通信可能に接続されている。メモリ１８は、例えば、電気的に消去・記録可能な不揮発性メモリであって、ＥＥＰＲＯＭ（登録商標）等により構成される。メモリ１８は、ロボット１２を動作させるのに用いられるロボットプログラム等、スポット溶接システム１０の動作時に必要な定数、変数、設定値、プログラム等を記録している。
【００２０】
図２に示すように、スポット溶接ガン３０は、ベース部３２、固定アーム３４、可動アーム３６、およびサーボモータ３８を備える。固定アーム３４は、その基端４０がベース部３２に固定されており、その先端４２にて固定電極チップ４４を支持している。本実施形態においては、固定アーム３４は、基端４０から先端４２まで略Ｌ字状に湾曲して延在する。
【００２１】
可動アーム３６は、ベース部３２にガン軸Ｏに沿って移動可能に設けられている。本実施形態においては、可動アーム３６は、直線状に延びる棒であって、その上端（図示せず）が、運動変換機構（図示せず）を介して、サーボモータ３８の出力シャフト（図示せず）に機械的に接続され、その下端４６にて可動電極チップ４８を支持している。
【００２２】
動力変換機構は、例えばタイミングベルトおよびプーリーを含み、サーボモータ３８の出力シャフトの回転運動を、ガン軸Ｏに沿った往復運動へ変換する。可動アーム３６は、動力変換機構を介して、サーボモータ３８によってガン軸Ｏに沿って往復動される。固定電極チップ４４および可動電極チップ４８は、ガン軸Ｏ上に位置決めされている。
【００２３】
固定電極チップ４４および可動電極チップ４８は、ロボット制御部１４の指令に応じて通電する。これにより、固定電極チップ４４および可動電極チップ４８は、該固定電極チップ４４および可動電極チップ４８の間に挟持した被溶接ワークを、スポット溶接する。
【００２４】
可動電極チップ４８は、サーボモータ３８によって可動アーム３６が駆動されるにつれて、固定電極チップ４４に向かう方向、および固定電極チップ４４から離間する方向へ、ガン軸Ｏに沿って往復動する。サーボモータ３８は、ロボット制御部１４からの指令に応じて、動力変換機構を介して、可動アーム３６を駆動する。
【００２５】
サーボモータ３８には、エンコーダ５０が取付けられている。このエンコーダ５０は、サーボモータ３８の回転位置を検出してロボット制御部１４に送信する。エンコーダ５０は、サーボモータ３８の回転位置を検出することによって可動アーム３６の位置を検出する位置検出部として機能する。なお、エンコーダ５０の代替として、ホール素子によって位置検出部を構成してもよい。
【００２６】
ロボット制御部１４は、ロボットアーム２０に内蔵されたサーボモータ５２を制御し、サーボモータ５２を介して、ロボットアーム２０を動作させる。このサーボモータ５２は、マニピュレータとしてのロボットアーム２０を駆動するマニピュレータ駆動部（図３）として機能する。ロボット制御部１４は、ロボットアーム２０を動作させることによって、スポット溶接ガン３０を予め定められた位置まで移動させる。
【００２７】
教示操作盤１６は、ロボット制御部１４に通信可能に接続されている。教示操作盤１６の表示部１６ａには、ロボット制御部１４からの各種情報が表示され、使用者は、表示部１６ａを通して、これら情報を閲覧できる。また、使用者は、教示操作盤１６の入力部１６ｂ（キーボード）を介して、ロボット制御部１４の各種の操作および設定を行うことができる。
【００２８】
次に、図１〜図５を参照して、スポット溶接システム１０の動作について説明する。スポット溶接システム１０は、スポット溶接ガン３０の固定電極チップ４４と可動電極チップ４８との間で被溶接ワーク（図示せず）を挟持し、該被溶接ワークにスポット溶接を行うためのシステムである。
【００２９】
本実施形態においては、スポット溶接システム１０は、被溶接ワークにスポット溶接を行う前に、可動アーム３６と固定アーム３４の合成バネ定数を算出する。具体的には、固定電極チップ４４と可動電極チップ４８との間に被溶接ワークを配置させていない状態で、ロボット制御部１４は、サーボモータ３８を予め定められた第１のトルクτ１で駆動すべく、第１のトルク指令値をサーボモータ３８に送信する。
【００３０】
サーボモータ３８は、第１のトルク指令値に応じて、可動アーム３６を固定電極チップ４４に向かうように移動させる。そうすると、図４に示すように、可動電極チップ４８と固定電極チップ４４とが当接し、第１のトルクτ１を上回る負荷トルクがサーボモータ３８に掛かったときに、可動アーム３６は停止する。この状態で、エンコーダ５０は、サーボモータ３８の回転位置Ｒ１を計測し、ロボット制御部１４へ送信する。ロボット制御部１４は、この回転位置Ｒ１をメモリ１８に記憶する。
【００３１】
一具体例として、第１のトルクτ１は、ほぼゼロ（すなわち、τ１≒０）に設定される。ここで、「ほぼゼロ」のトルクとは、スポット溶接時に固定電極チップ４４と可動電極チップ４８との間で被溶接ワークを挟持するときに可動アーム３６に与えられる作業トルクに比べて、無視できる程に小さいトルク（例えば作業トルクの１％以下の大きさ）を示す。
【００３２】
この場合、可動電極チップ４８は、固定電極チップ４４に対して、実質圧力を与えることなく接触することになる。この状態で検出された回転位置Ｒ１は、可動電極チップ４８と固定電極チップ４４とが圧力を伴わずに互いに接触する基準接触位置を示すデータとなる。このように、第１のトルクτ１をほぼゼロに設定することによって、可動電極チップ４８と固定電極チップ４４との基準接触位置を検出することができる。
【００３３】
また、他の具体例として、例えば第１のトルクτ１は、ゼロよりも大きいトルク（すなわち、τ１＞０）に設定されてもよい。この場合、可動電極チップ４８は、固定電極チップ４４に対して、第１のトルクτ１に対応する加圧力で押し当てられつつ、当接することになる。この状態で検出された回転位置Ｒ１は、可動電極チップ４８と固定電極チップ４４とが、第１のトルクτ１に対応する加圧力を伴って互いに接触しているときの、可動アーム３６の位置を示すデータとなる。
【００３４】
次に、ロボット制御部１４は、サーボモータ３８を予め定められた第２のトルクτ２で駆動すべく、第２のトルク指令値をサーボモータ３８に送信する。本実施形態においては、第２のトルクτ２は、第１のトルクτ１よりも大きい値として設定される。サーボモータ３８は、第２のトルク指令値に応じて、可動アーム３６を固定電極チップ４４に向かう方向へさらに移動させる。
【００３５】
そうすると、第２のトルクτ２を上回る負荷トルクがサーボモータ３８に掛かるまで、可動アーム３６は、固定電極チップ４４に向かってさらに変位し、可動電極チップ４８は、第２のトルクτ２に対応する加圧力で、固定電極チップ４４を加圧する。この状態で、エンコーダ５０は、サーボモータ３８の回転位置Ｒ２を計測し、ロボット制御部１４へ送信する。ロボット制御部１４は、この回転位置Ｒ２をメモリ１８に記憶する。
【００３６】
次に、ロボット制御部１４は、回転位置Ｒ１とＲ２との差ΔＲ１２と、第１のトルクτ１と第２のトルクτ２との差Δτ１２とを算出する。そして、ロボット制御部１４は、以下に示す、フックの法則に基づく式１に従って、値Ｋ１２を算出する。
Ｋ１２＝Δτ１２／ΔＲ１２  ・・・・・（式１）
【００３７】
ここで、この値Ｋ１２は、可動アーム３６と固定アーム３４の合成バネ定数と見做すことができる。これについて、以下に簡単に説明する。図４に示すように、値Ｋ１２を算出するときに用いられる差ΔＲ１２およびΔτ１２は、可動電極チップ４８と固定電極チップ４４とを直接当接させて加圧することによって、取得されている。このとき、可動アーム３６と固定アーム３４は、可動アーム３６に与えられる駆動力（すなわち、トルクτ１、τ２）に応じて弾性変位する。
【００３８】
この状態における、可動アーム３６と固定アーム３４の弾性変位を示す等価機械モデルは、図４の左部分に示すように、可動アーム３６に対応するバネ５４と、固定アーム３４に対応するバネ５６の直列接続として近似される。ここで、バネ５４は、可動アーム３６のバネ定数Ｋ１を有する弾性要素であり、バネ５６は、固定アーム３４のバネ定数Ｋ２を有する弾性要素である。この場合、合成バネ定数Ｋ１２は、以下の式２で表される。
Ｋ１２＝（Ｋ１×Ｋ２）／（Ｋ１＋Ｋ２）  ・・・・・（式２）
【００３９】
このように、可動アーム３６と固定アーム３４を図４に示すような等価機械モデルとして近似し、取得したΔＲ１２とΔτ１２を上記の式１に代入することによって、ロボット制御部１４は、可動アーム３６と固定アーム３４の合成バネ定数Ｋ１２を算出することができる。したがって、ロボット制御部１４は、合成バネ定数Ｋ１２を算出する第１のバネ定数算出部６０（図３）としての機能を有する。
【００４０】
次に、ロボット制御部１４は、可動アーム３６のバネ定数Ｋ１を以下の手法で算出する。具体的には、ロボット制御部１４を介して可動アーム３６を移動させ、可動電極チップ４８と固定電極チップ４４とを互いに離間させた後、使用者は、基準固定物５８（図５）を、可動電極チップ４８と固定電極チップ４４との間に配置する。この基準固定物５８は、スポット溶接ガン３０とは別に設けられた部材であって、変位不能に固定されている。本実施形態においては、基準固定物５８は、ガン軸Ｏに直交する上面５８ａを有する。
【００４１】
基準固定物５８を配置した後、ロボット制御部１４は、サーボモータ３８を第３のトルクτ３で駆動すべく、第３のトルク指令値をサーボモータ３８に送信する。この第３のトルクτ３は、上記の第１のトルクτ１と同じであってもよいし、または異なってもよい。
【００４２】
サーボモータ３８は、第３のトルク指令値に応じて、可動アーム３６を基準固定物５８に向かうように移動させる。そうすると、図５に示すように、可動電極チップ４８と、基準固定物５８の上面５８ａとが当接し、第３のトルクτ３を上回る負荷トルクがサーボモータ３８に掛かったときに、可動アーム３６は停止する。この状態で、エンコーダ５０は、サーボモータの回転位置Ｒ３を計測し、ロボット制御部１４へ送信する。ロボット制御部１４は、この回転位置Ｒ３をメモリ１８に記憶する。
【００４３】
一具体例として、第３のトルクτ３は、ほぼゼロ（すなわち、τ３≒０）に設定される。この場合、可動電極チップ４８は、基準固定物５８の上面５８ａに実質圧力を与えることなく接触することになる。この状態で検出された回転位置Ｒ３は、可動電極チップ４８と基準固定物５８の上面５８ａとが圧力を伴わずに互いに接触する基準接触位置を示すデータとなる。
【００４４】
このように、第３のトルクτ３をほぼゼロに設定することによって、可動電極チップ４８と基準固定物５８の上面５８ａとの基準接触位置を検出することができる。また、他の具体例として、例えば第３のトルクτ３は、ゼロよりも大きいトルク（すなわち、τ３＞０）に設定されてもよい。
【００４５】
次に、ロボット制御部１４は、サーボモータ３８を第４のトルクτ４で駆動すべく、第４のトルク指令値をサーボモータ３８に送信する。本実施形態においては、第４のトルクτ４は、第３のトルクτ３よりも大きい値として設定される。サーボモータ３８は、第４のトルク指令値に応じて、可動アーム３６を固定電極チップ４４に向かう方向へさらに移動させる。
【００４６】
そうすると、第４のトルクτ４を上回る負荷トルクがサーボモータ３８に掛かるまで、可動アーム３６は、可動電極チップ４８に向かってさらに変位し、可動電極チップ４８は、第４のトルクτ４に対応する加圧力で、固定電極チップ４４を加圧する。この状態で、エンコーダ５０は、サーボモータの回転位置Ｒ４を計測し、ロボット制御部１４へ送信する。ロボット制御部１４は、この回転位置Ｒ４をメモリ１８に記憶する。
【００４７】
次に、ロボット制御部１４は、回転位置Ｒ３とＲ４との差ΔＲ３４、および、第３のトルクτ３と第４のトルクτ４との差Δτ３４を算出する。そして、ロボット制御部１４は、以下に示す式３に従って、値Ｋ１を算出する。
Ｋ１＝Δτ３４／ΔＲ３４  ・・・・・（式３）
【００４８】
このようにして算出された値Ｋ１は、可動アーム３６のバネ定数と見做すことができる。これについて、以下に簡単に説明する。図５に示すように、値Ｋ１を算出するときに用いられる差ΔＲ３４およびΔτ３４は、可動電極チップ４８を基準固定物５８に対して押圧することによって、取得されている。
【００４９】
上述したように、基準固定物５８は、変位不能に固定されているので、可動電極チップ４８を基準固定物５８に対して押圧したとき、可動アーム３６のみが、可動アーム３６に与えられる駆動力（すなわち、トルクτ３、τ４）に応じて、弾性変位すると見做すことができる。この場合における、可動アーム３６の弾性変位を示す等価機械モデルは、図５の右部分に示すように、可動アーム３６に対応するバネ５４として近似できる。したがって、上記の式３から得られた値Ｋ１は、可動アーム３６のバネ定数Ｋ１と見做すことができる。
【００５０】
このように、本実施形態においては、ロボット制御部１４は、上記式３を用いて、可動アーム３６のバネ定数Ｋ１を算出する。したがって、ロボット制御部１４は、可動アーム３６のバネ定数Ｋ１を算出する第２のバネ定数算出部６２（図３）としての機能を有する。
【００５１】
次に、ロボット制御部１４は、上述のように算出した合成バネ定数Ｋ１２と可動アーム３６のバネ定数Ｋ１とに基づいて、固定アーム３４のバネ定数Ｋ２を算出する。具体的には、ロボット制御部１４は、合成バネ定数Ｋ１２およびバネ定数Ｋ１を、上述の式２に代入して、固定アーム３４のバネ定数Ｋ２を算出する。このように、本実施形態においては、ロボット制御部１４は、固定アーム３４のバネ定数Ｋ２を算出する第３のバネ定数算出部６４（図３）としての機能を有する。
【００５２】
固定アーム３４のバネ定数Ｋ２を算出した後、スポット溶接システム１０は、被溶接ワークに対するスポット溶接作業を開始する。まず、ロボット制御部１４は、ロボットプログラムに従って、サーボモータ５２に指令を送り、ロボットアーム２０を動作させ、スポット溶接ガン３０を予め定められた作業位置に移動させる。このロボットプログラムは、メモリ１８に予め記憶されており、スポット溶接ガン３０を予め定められた作業位置へ移動させるためのサーボモータ５２に対する動作指令を含む。
【００５３】
スポット溶接ガン３０を作業位置に配置した後、使用者は、可動電極チップ４８と固定電極チップ４４との間に、被溶接ワークを配置させる。次いで、ロボット制御部１４は、サーボモータ３８に、作業トルクとして第５のトルクτ５で可動アーム３６を移動させるべく、第５のトルク指令値を送る。サーボモータ３８は、第５のトルク指令値に応じて、可動アーム３６を固定電極チップ４４に向かって移動させる。その結果、被溶接ワークは、可動電極チップ４８と固定電極チップ４４との間で、第５のトルクτ５に対応する加圧力で挟み込まれる。
【００５４】
次に、ロボット制御部１４は、上述のように算出した固定アーム３４のバネ定数Ｋ２と、第５のトルクτ５とに基づいて、可動電極チップ４８と固定電極チップ４４との間で被溶接ワークを挟持したときに固定アーム３４に生じる弾性変位量δｅを算出する。具体的には、ロボット制御部１４は、固定アーム３４のバネ定数Ｋ２と第５のトルクτ５を以下の式４に代入して、弾性変位量δｅを算出する。
δｅ＝τ５／Ｋ２  ・・・・・（式４）
【００５５】
このように、本実施形態においては、ロボット制御部１４は、可動電極チップ４８と固定電極チップ４４との間で被溶接ワークを挟持したときの固定アーム３４の弾性変位量δｅを算出する弾性変位算出部６６としての機能を有する。
【００５６】
次に、ロボット制御部１４は、ロボットアーム２０を動作させ、弾性変位量δｅに基づいて、スポット溶接ガン３０の位置を補正する。これにより、被溶接ワークを挟持したときに固定アーム３４に生じる弾性変位を相殺することができるので、被溶接ワークを挟持したときにおける、スポット溶接ガン３０に対する可動電極チップ４８および固定電極チップ４４の接触位置を一定に維持することができる。この状態で、ロボット制御部１４は、可動電極チップ４８と固定電極チップ４４とを通電させ、被溶接ワークをスポット溶接する。
【００５７】
本実施形態においては、スポット溶接を行う前に、可動電極チップ４８を固定電極チップ４４に押圧させる作業と、可動電極チップ４８を基準固定物５８に押圧させる作業とを行うだけで、被溶接ワークを挟持したときの弾性変位量δｅを算出することができる。この構成によれば、被溶接ワークを挟持したときにおける可動電極チップ４８と固定電極チップ４４の位置の変位を自動で計算することができる。これにより、該位置の変位を手作業で測定する作業を省略することができるので、作業工数を削減できる。
【００５８】
また、本実施形態によれば、スポット溶接前に、個々のスポット溶接ガン３０に関して弾性変位量δｅを算出することができるので、それぞれのスポット溶接ガン３０に則した正確な弾性変位量δｅを算出することができる。このため、スポット溶接の精度を高めることができる。
【００５９】
また、本実施形態によれば、従来技術において困難とされていた、固定アーム３４のバネ定数Ｋ２の測定を頻繁に行うことが可能となるので、経年劣化に伴う固定アーム３４のたわみ量の変化にも対応することができる。
【００６０】
また、本実施形態においては、大きさが異なる複数のトルク（すなわち、第１のトルクτ１と第２のトルクτ２）を用いて、合成バネ定数Ｋ１２を算出している。同様に、大きさが異なる複数のトルク（すなわち、第３のトルクτ３と第４のトルクτ４）を用いて、可動アーム３６のバネ定数Ｋ１を算出している。この構成によれば、合成バネ定数Ｋ１２およびバネ定数Ｋ１を、より高精度で算出することができる。
【００６１】
なお、１種類のみのトルクを用いて、合成バネ定数Ｋ１２および／または可動アーム３６のバネ定数Ｋ１を算出してもよい。この実施形態について以下に説明する。この実施形態においては、可動電極チップ４８と固定電極チップ４４とが圧力を伴わずに互いに接触する基準接触位置を予め測定し、基準接触位置に対応する、サーボモータ３８の回転位置Ｒ０を、メモリ１８に予め記憶させる。
【００６２】
合成バネ定数Ｋ１２を算出する場合、ロボット制御部１４は、サーボモータ３８を第６のトルクτ６で駆動すべく、第６のトルク指令値をサーボモータ３８に送信する。この第６のトルクτ６は、ゼロよりも大きなトルクとして設定される。サーボモータ３８は、第６のトルク指令値に応じて可動アーム３６を移動させ、可動電極チップ４８が固定電極チップ４４を第６のトルクτ６に対応する力で加圧する。
【００６３】
この状態で、エンコーダ５０は、サーボモータ３８の回転位置Ｒ６を計測し、メモリ１８に記憶する。そして、ロボット制御部１４は、予め記憶された回転位置Ｒ０と、計測された回転位置Ｒ６との差ΔＲ０６、および第６のトルクτ６を以下の式５に代入して、合成バネ定数Ｋ１２を算出する。
Ｋ１２＝τ６／ΔＲ０６  ・・・・・（式５）
【００６４】
同様の手法によって、ロボット制御部１４は、１種類のみのトルクを用いて可動アーム３６のバネ定数Ｋ１を算出できる。具体的には、可動電極チップ４８と基準固定物５８とが圧力を伴わずに互いに接触する基準接触位置を予め測定し、基準接触位置に対応する、サーボモータ３８の回転位置Ｒ０’を、メモリ１８に予め記憶させる。
【００６５】
可動アーム３６のバネ定数Ｋ１を算出する場合、ロボット制御部１４は、第７のトルクτ７で可動アーム３６を駆動させて、可動電極チップ４８で基準固定物５８を加圧し、このときのサーボモータ３８の回転位置Ｒ７を検出する。そして、ロボット制御部１４は、予め記憶された回転位置Ｒ０’と、検出された回転位置Ｒ７との差ΔＲ０７、および第７のトルクτ７を、以下の式６に代入し、可動アーム３６のバネ定数Ｋ１を算出することができる。
Ｋ１＝τ７／ΔＲ０７  ・・・・・（式６）
【００６６】
なお、上述の実施形態においては、可動アーム３６を駆動するための駆動部としてサーボモータ３８を適用し、且つ、可動アーム３６の位置を検出する位置検出部としてエンコーダ５０（またはホール素子）を適用した場合について述べた。しかしながら、これに限らず、駆動部は、例えばリニアモータやシリンダのような、可動アーム３６をガン軸Ｏに沿って直線的に駆動可能な装置を有してもよい。この場合、位置検出部は、可動アーム３６のガン軸Ｏに沿う変位（例えば単位ｍｍ）を検知してもよい。
【００６７】
さらに他の実施形態として、ロボット制御部１４は、ロボットアーム２０のバネ定数Ｋｒを加味して、可動アーム３６のバネ定数Ｋ１を算出してもよい。この実施形態に関して、図６を参照して説明する。この実施形態においては、メモリ１８は、ロボットアーム２０のバネ定数Ｋｒを予め記憶する。ロボットアーム２０のバネ定数Ｋｒは、以下の手法により算出できる。
【００６８】
一具体例としては、ロボットアーム２０に対して十分に剛性のある物体をロボットアーム２０に取り付けた状態で、ロボット制御部１４は、ロボットアーム２０を動作させて該物体を基準固定物へ押し付ける。ロボット制御部１４は、このときのサーボモータ５２の駆動トルクと該サーボモータ５２の回転位置とから、ロボットアーム２０のバネ定数Ｋｒを算出する。
【００６９】
「ロボットアーム２０に対して十分に剛性のある物体」として、例えば、上述のスポット溶接ガン３０を用いてもよい。具体的には、ロボット制御部１４は、可動アーム３６のバネ定数Ｋ１を算出する工程の前に、ロボットアーム２０にスポット溶接ガン３０を取り付けた状態で、サーボモータ５２を（例えば大きさの異なる２種類の）予め定められたトルクで駆動して、スポット溶接ガン３０を基準固定物５８に押し当てる。そして、ロボット制御部１４は、サーボモータ５２に設けられたエンコーダ等を介して、サーボモータ５２の回転位置を検出し、上述の式３と同様の式に従って、ロボットアーム２０のバネ定数Ｋｒを計算し、メモリ１８に記憶する。
【００７０】
図６に、ロボットアーム２０のバネ定数Ｋｒを加味した場合の、可動アーム３６およびロボットアーム２０の等価機械モデルを示す。ロボットアーム２０を用いて可動電極チップ４８を基準固定物５８に対して押圧したときの等価機械モデルは、可動アーム３６に対応するバネ５４と、ロボットアーム２０に対応するバネ６８の直列接続として近似される。この場合、上述の式３は、以下の式７に変換される。
（Ｋ１×Ｋｒ）／（Ｋ１＋Ｋｒ）＝Δτ３４／ΔＲ３４  ・・・・・（式７）
【００７１】
ロボット制御部１４は、上述のように算出されたΔＲ３４およびΔτ３４と、メモリ１８に記憶された、ロボットアーム２０のバネ定数Ｋｒを式７に代入し、可動アーム３６のバネ定数Ｋ１を算出する。このように、ロボットアーム２０のバネ定数Ｋｒを加味して、可動アーム３６のバネ定数Ｋ１を算出することによって、バネ定数Ｋ１をより高精度に算出することができる。
【００７２】
次に、図７を参照して、本発明の一実施形態に係るスポット溶接方法について説明する。ステップＳ１において、ロボット制御部１４は、可動アーム３６を予め定められた駆動力で駆動して、可動電極チップ４８で固定電極チップ４４を加圧する。一具体例において、ロボット制御部１４は、このステップＳ１において、サーボモータ３８を介して、可動アーム３６を、ほぼゼロに設定された第１のトルクτ１で駆動する。他の具体例において、ロボット制御部１４は、このステップＳ１において、サーボモータ３８を介して、可動アーム３６を第６のトルクτ６（＞０）で駆動する。
【００７３】
ステップＳ２において、ロボット制御部１４は、可動アーム３６の位置を検出する。一具体例において、ロボット制御部１４は、エンコーダ５０を介して、可動アーム３６を第１のトルクτ１で駆動したときのサーボモータ３８の回転位置Ｒ１を計測する。次いで、ロボット制御部１４は、このステップＳ２の後に、再度ステップＳ１に戻り、サーボモータ３８を介して、可動アーム３６を第２のトルクτ２（＞τ１）で駆動する。
【００７４】
次いで、ロボット制御部１４は、ステップＳ２において、可動アーム３６を第２のトルクτ２で駆動したときの、サーボモータ３８の回転位置Ｒ２を計測する。他の具体例において、ロボット制御部１４は、このステップＳ２において、エンコーダ５０を介して、可動アーム３６を第６のトルクτ６で駆動したときのサーボモータ３８の回転位置Ｒ６を計測する。
【００７５】
ステップＳ３において、ロボット制御部１４は、ステップＳ２で検出された可動アーム３６の位置と、ステップＳ１で可動アーム３６に与えられた駆動力とに基づいて、可動アーム３６と固定アーム３４の合成バネ定数Ｋ１２を算出する。一具体例において、ロボット制御部１４は、ステップＳ２にて得られた回転位置Ｒ１およびＲ２の差ΔＲ１２と、ステップＳ１で用いた第１のトルクτ１および第２のトルクτ２の差Δτ１２を算出する。そして、ロボット制御部１４は、上述の式１に従って、合成バネ定数Ｋ１２を算出する。
【００７６】
他の具体例において、ロボット制御部１４は、このステップＳ３において、メモリ１８に予め記憶された、基準接触位置に対応するサーボモータ３８の回転位置Ｒ０を、メモリ１８から読み出す。そして、ロボット制御部１４は、該回転位置Ｒ０と、ステップＳ２で得られた回転位置Ｒ６との差ΔＲ０６を算出し、該ΔＲ０６と第６のトルクτ６を上述の式５に代入して、合成バネ定数Ｋ１２を算出する。
【００７７】
ステップＳ４において、ロボット制御部１４は、可動アーム３６を予め定められた駆動力で駆動して、可動電極チップ４８で基準固定物５８を加圧する。一具体例において、ロボット制御部１４は、このステップＳ４において、サーボモータ３８を介して、可動アーム３６を、ほぼゼロに設定された第３のトルクτ３で駆動する。他の具体例において、ロボット制御部１４は、このステップＳ４において、サーボモータ３８を介して、可動アーム３６を第７のトルクτ７（＞０）で駆動する。
【００７８】
ステップＳ５において、ロボット制御部１４は、可動アーム３６の位置を検出する。一具体例において、ロボット制御部１４は、エンコーダ５０を介して、可動アーム３６を第３のトルクτ３で駆動したときのサーボモータ３８の回転位置Ｒ３を計測する。次いで、ロボット制御部１４は、再度ステップＳ４に戻り、サーボモータ３８を介して、可動アーム３６を第４のトルクτ４（＞τ３）で駆動する。
【００７９】
次いで、ロボット制御部１４は、ステップＳ５で、可動アーム３６を第４のトルクτ４で駆動したときのサーボモータ３８の回転位置Ｒ４を計測する。他の具体例において、ロボット制御部１４は、このステップＳ５において、エンコーダ５０を介して、可動アーム３６を第７のトルクτ７で駆動したときのサーボモータ３８の回転位置Ｒ７を検出する。
【００８０】
ステップＳ６において、ロボット制御部１４は、ステップＳ５で検出された可動アーム３６の位置と、ステップＳ４で可動アーム３６に与えられた駆動力とに基づいて、可動アーム３６のバネ定数Ｋ１を算出する。一具体例において、ロボット制御部１４は、ステップＳ５にて得られた回転位置Ｒ３およびＲ４の差ΔＲ３４と、ステップＳ４で用いた第３のトルクτ３および第４のトルクτ４の差Δτ３４を算出する。そして、ロボット制御部１４は、上述の式３に従って、可動アーム３６のバネ定数Ｋ１を算出する。
【００８１】
他の具体例において、ロボット制御部１４は、このステップＳ６において、メモリ１８に予め記憶された、基準接触位置に対応するサーボモータ３８の回転位置Ｒ０を、メモリ１８から読み出す。そして、ロボット制御部１４は、該回転位置Ｒ０と、ステップＳ５で得られた回転位置Ｒ７との差ΔＲ０７を算出し、該ΔＲ０７と第７のトルクτ７を上述の式１に代入して、合成バネ定数Ｋ１２を算出する。
【００８２】
さらに他の具体例において、ロボット制御部１４は、このステップＳ６において、ステップＳ５にて得られた回転位置Ｒ３およびＲ４の差ΔＲ３４と、ステップＳ４で用いた第３のトルクτ３および第４のトルクτ４の差Δτ３４と、メモリ１８に予め記憶されたロボットアーム２０のバネ定数Ｋｒとを、上述の式７に代入し、可動アーム３６のバネ定数Ｋ１を算出する。これにより、ロボット制御部１４は、ロボットアーム２０のバネ定数Ｋｒを加味して、可動アーム３６のバネ定数Ｋ１を算出する。
【００８３】
ステップＳ７において、ロボット制御部１４は、合成バネ定数Ｋ１２と可動アーム３６のバネ定数Ｋ１とに基づいて、固定アーム３４のバネ定数Ｋ２を算出する。具体的には、ロボット制御部１４は、ステップＳ３で算出した合成バネ定数Ｋ１２と、ステップＳ６で算出したバネ定数Ｋ１を、上述の式２に代入して、固定アーム３４のバネ定数Ｋ２を算出する。
【００８４】
ステップＳ８において、ロボット制御部１４は、可動アーム３６を予め定められた駆動力で駆動して、可動電極チップ４８と固定電極チップ４４との間で被溶接ワークを挟持する。具体的には、ロボット制御部１４は、サーボモータ３８を介して、可動アーム３６を、作業トルクとして第５のトルクτ５で駆動し、可動電極チップ４８と固定電極チップ４４との間で、被溶接ワークを第５のトルクτ５に対応する加圧力で挟み込む。
【００８５】
ステップＳ９において、ロボット制御部１４は、固定アーム３４のバネ定数Ｋ２と、ステップＳ８で可動アーム３６に与えられた駆動力とに基づいて、可動電極チップ４８と固定電極チップ４４とで被溶接ワークを挟持したときに発生する固定アーム３４の弾性変位量δｅを算出する。具体的には、ロボット制御部１４は、ステップＳ７で算出したバネ定数Ｋ２と、ステップＳ８で用いた第５のトルクτ５とを、上述の式４に代入して、弾性変位量δｅを算出する。
【００８６】
ステップＳ１０において、ロボット制御部１４は、ロボットアーム２０を動作させ、弾性変位量δｅに基づいて、スポット溶接ガン３０の位置を補正する。ステップＳ１１において、ロボット制御部１４は、可動電極チップ４８と固定電極チップ４４とを通電させ、被溶接ワークをスポット溶接する。
【００８７】
ステップＳ１２において、ロボット制御部１４は、被溶接ワークに対するスポット溶接が適正に完了したか否かを判断する。ロボット制御部１４は、被溶接ワークに対するスポット溶接が適正に完了したと判断すると、図７に示すフローを終了する。一方、ロボット制御部１４は、被溶接ワークに対するスポット溶接が適正に完了していないと判断すると、ステップＳ１１へ戻る。
【００８８】
なお、上述の実施形態においては、第２のトルクτ２が第１のトルクτ１よりも大きい場合について述べた。しかしながら、これに限らず、第２のトルクτ２が第１のトルクτ１よりも小さく設定されてもよい。
【００８９】
また、上述の実施形態においては、可動アーム３６が、ガン軸Ｏに沿って移動可能となるように、ベース部３２に設けられている場合について述べた。しかしながら、これに限らず、可動アームは、ベース部３２に回転可能に設けられてもよい。例えば、可動アームは、サーボモータ３８によって、ベース部３２に設けられた回転軸（例えば図２の紙面に直交するように配置された軸）の周りに回転移動される。
【００９０】
この可動アームに設けられた可動電極チップ４８は、可動アームが回転移動されるにつれて、固定電極チップ４４に向かう方向、および固定電極チップ４４から離間する方向へ、回転軸を中心とした円周に沿って往復動する。この場合においても、ロボット制御部１４は、上述の実施形態と同様の方法によって、サーボモータ３８の回転位置の差ΔＲと、サーボモータ３８の駆動トルクの差Δτに基づいて、合成バネ定数Ｋ１２、および可動アームのバネ定数Ｋ１を算出することができる。
【００９１】
以上、発明の実施形態を通じて本発明を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。また、本発明の実施形態の中で説明されている特徴を組み合わせた形態も本発明の技術的範囲に含まれ得る。しかしながら、これら特徴の組み合わせの全てが、発明の解決手段に必須であるとは限らない。さらに、上述の実施形態に、多様な変更または改良を加えることが可能であることも当業者に明らかである。
【００９２】
また、特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、工程、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００９３】
１０    スポット溶接システム
１４    ロボット制御部
３０    スポット溶接ガン
３２    ベース部
３４    固定アーム
３６    可動アーム
３８    サーボモータ
４４    固定電極チップ
４８    可動電極チップ
５０    エンコーダ
【図１】
0005856225.tif 000002
【図２】
0005856225.tif 000003
【図３】
0005856225.tif 000004
【図４】
0005856225.tif 000005
【図５】
0005856225.tif 000006
【図６】
0005856225.tif 000007
【図７】
0005856225.tif 000008