(57)【特許請求の範囲】
【請求項１】
固定電極と、前記固定電極と対向して配置されモータ駆動によって前記固定電極方向に伸縮可能な可動電極を有するスポット溶接ガンを備えた多関節ロボットが前記スポット溶接ガンを被溶接部材の所定の溶接点に移動させ、前記固定電極と前記可動電極とによって前記被溶接部材をその厚さ方向に挟んでスポット溶接を行うロボットシステムであって、
前記ロボットに溶接点位置を教示するに際し、
前記可動電極と前記固定電極とによって前記溶接点を挟む位置に前記スポット溶接ガンを移動させる第１の処理と、
前記モータ駆動により前記可動電極を前記被溶接部材に向けて伸ばし、前記モータへのトルク指令に基づいて前記可動電極と前記被溶接部材との接触を検出し、接触検出後に前記可動電極の動作を停止させる第２の処理と、
前記モータ駆動により前記可動電極が前記被溶接部材と接触した状態を保ちながら、前記ロボットを前記可動電極側へ動作させて前記固定電極を前記被溶接部材に接近させ、前記ロボットの関節に作用する外乱トルクによって前記固定電極と前記被溶接部材との接触を検出し、接触検出後に前記ロボットの動作を停止させる第３の処理と
を含む処理を行い、
前記第２の処理において、前記モータへのトルク指令に対しハイパスフィルタ処理を行った後、ノッチフィルタ処理を行い、フィルタリングしたトルク指令を予め定められた第１のしきい値と比較することで前記可動電極と前記被溶接部材との接触を検出し、さらに、前記可動電極の伸長量とフィルタリング処理後の前記モータへのトルク指令とを対応づけて所定周期ごとに記録しておき、前記第２の処理完了後に、前記記録に基づいて算定した量だけ前記可動電極を引き戻すことを特徴とするロボットシステム。
【請求項２】
固定電極と、前記固定電極と対向して配置されモータ駆動によって前記固定電極方向に伸縮可能な可動電極を有するスポット溶接ガンを備えた多関節ロボットが前記スポット溶接ガンを被溶接部材の所定の溶接点に移動させ、前記固定電極と前記可動電極とによって前記被溶接部材をその厚さ方向に挟んでスポット溶接を行うロボットシステムであって、
前記ロボットに溶接点位置を教示するに際し、
前記可動電極と前記固定電極とによって前記溶接点を挟む位置に前記スポット溶接ガンを移動させる第１の処理と、
前記モータ駆動により前記可動電極を前記被溶接部材に向けて伸ばし、前記モータへのトルク指令に基づいて前記可動電極と前記被溶接部材との接触を検出し、接触検出後に前記可動電極の動作を停止させる第２の処理と、
前記モータ駆動により前記可動電極が前記被溶接部材と接触した状態を保ちながら、前記ロボットを前記可動電極側へ動作させて前記固定電極を前記被溶接部材に接近させ、前記ロボットの関節に作用する外乱トルクによって前記固定電極と前記被溶接部材との接触を検出し、接触検出後に前記ロボットの動作を停止させる第３の処理と
を含む処理を行い、
前記第２の処理完了後に前記可動電極の伸長量を確認して前記被溶接物の異常を検出するとともに、
前記第３の処理完了後に前記可動電極の伸長量を確認して前記被溶接物の異常を検出することを特徴とするロボットシステム。
【請求項３】
前記第３の処理完了後の前記可動電極を所定の補正量だけ引き戻した位置と、前記固定電極を前記補正量だけ前記可動電極側へ動作させたロボットの各関節位置とを前記溶接点に対する教示位置とすることを特徴とする請求項１または２記載のロボットシステム。
【請求項４】
前記ロボットシステムは可搬型教示装置を備え、
前記第３の処理完了後に前記可動電極の位置を教示する際に、前記所定の補正量を含めた前記可動電極の以前の教示位置からの修正量を前記可搬型教示装置の表示画面に表示することを特徴とする請求項３記載のロボットシステム。
【請求項５】
前記第２の処理において、前記モータへのトルク指令に対しハイパスフィルタ処理を行った後、ノッチフィルタ処理を行い、フィルタリングしたトルク指令を予め定められた第１のしきい値と比較することで前記可動電極と前記被溶接部材との接触を検出することを特徴とする請求項２記載のロボットシステム。
【請求項６】
前記第２の処理において、前記可動電極の伸長量とフィルタリング処理後の前記モータへのトルク指令とを対応づけて所定周期ごとに記録しておき、
前記第２の処理完了後に、前記記録に基づいて算定した量だけ前記可動電極を引き戻すことを特徴とする請求項５記載のロボットシステム。
【請求項７】
前記ノッチフィルタのノッチ周波数を前記モータのポール数およびスロット数に基づき決定することを特徴とする請求項１、５または６記載のロボットシステム。
【請求項８】
前記第３の処理において、前記ロボットの各軸モータへのトルク指令と各軸の速度検出値から外乱オブザーバにより推定外乱トルクを求め、推定外乱トルクに対しハイパスフィルタ処理を行った後、座標変換を行って前記固定電極に作用する外力を推定し、
前記推定された外力値を予め定められた第２のしきい値と比較することで前記固定電極と被溶接部材との接触を検出することを特徴とする請求項１または２記載のロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いて所定の作業を行うロボットシステムに関し、特にスポット溶接を行うロボットシステムに関する。
【背景技術】
【０００２】
重ねられた複数のワークを対になった電極によってその重ね方向の両側から挟み、圧力を加えながら電極間に電流を流すことで接合させるスポット溶接に関し、従来の技術としてロボットの先端にスポット溶接ガンを取り付けたスポット溶接ロボットが知られている。ロボットを動作させることでスポット溶接ガンをワーク上の複数の溶接点に次々に移動させつつ、スポット溶接作業を行うことができる。
スポット溶接ガンには前述の対になった電極が対向するように設けられており、一方の電極が他方の電極方向に伸縮できるよう構成されたものが広く用いられている。以降、伸縮可能な電極を可動電極、他方の電極を固定電極と呼称する。
こうしたスポット溶接ガンを備えたロボットによってスポット溶接を行う際には、予め一連の動作を教示（ティーチング）しておき、実行時に教示した動作を再生（プレイバック）させる。スポット溶接作業に限らず、ロボットでは作業プログラムを教示（ティーチング）するモードと、作業プログラムを実行する再生（プレイバック）するモードを備えているのが一般的である。
教示の際には、教示者がロボットを操作して実際にワーク上の溶接位置に固定電極や可動電極を接触させ、その際のロボットや可動電極の位置を記憶する。
【０００３】
しかし、ワークの形状が複雑になると教示作業の際に教示者から溶接点が確認しづらくなり、ロボットの教示作業に多くの時間と労力が必要になる。またロボットの操作ミスによって電極とワークを衝突させてしまい、ワークやロボットを破損してしまうという問題があった。
【０００４】
上記問題を解決するため、特許文献１に開示されている方法では、可動側電極チップを移動させながら、可動側電極チップを駆動するサーボモータの電流値を監視し、電流値が所定の値を超えたときを可動側電極チップの先端がワークに接触したとみなして可動側電極チップの移動を停止し、可動側電極チップと対向側電極チップとの間の対向チップ間隔を計測し、対向チップ間隔からワークの設定板厚を減算して対向側電極チップの移動量として、対向側電極チップを可動側電極チップに接近する方向で待機位置からスポット溶接打点位置まで移動させて、対向側電極チップを本位置決めするという手順をとっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４２３３５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法ではワークの厚さ（板厚）を予め設定する必要があり、すべての溶接点のワークの厚みを前もって正確に計測する必要がある。
また特許文献１では可動電極の駆動モータの外乱トルクを検出することで可動電極とワークとの接触を検出し、教示位置を登録している。可動電極でワークを押し込んでワークとの接触を検出しているため、ワークには撓みが発生する。この撓んだ状態で溶接位置を教示されるため溶接品質が悪くなるという問題がある。
そこで本発明は、板厚が未知の場合であってもワークの撓みを抑えた状態でスポット溶接ロボットの溶接点教示位置を自動で修正し、溶接品質を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は、次のように構成したのである。
【０００８】
請求項１に記載の発明は、固定電極と、前記固定電極と対向して配置されモータ駆動によって前記固定電極方向に伸縮可能な可動電極を有するスポット溶接ガンを備えた多関節ロボットが前記スポット溶接ガンを被溶接部材の所定の溶接点に移動させ、前記固定電極と前記可動電極とによって前記被溶接部材をその厚さ方向に挟んでスポット溶接を行うロボットシステムであって、前記ロボットに溶接点位置を教示するに際し、前記可動電極と前記固定電極とによって前記溶接点を挟む位置に前記スポット溶接ガンを移動させる第１の処理と、前記モータ駆動により前記可動電極を前記被溶接部材に向けて伸ばし、前記モータへのトルク指令に基づいて前記可動電極と前記被溶接部材との接触を検出し、接触検出後に前記可動電極の動作を停止させる第２の処理と、前記モータ駆動により前記可動電極が前記被溶接部材と接触した状態を保ちながら、前記ロボットを前記可動電極側へ動作させて前記固定電極を前記被溶接部材に接近させ、前記ロボットの関節に作用する外乱トルクによって前記固定電極と前記被溶接部材との接触を検出し、接触検出後に前記ロボットの動作を停止させる第３の処理とを含む処理を行い、前記第２の処理において、前記モータへのトルク指令に対しハイパスフィルタ処理を行った後、ノッチフィルタ処理を行い、フィルタリングしたトルク指令を予め定められた第１のしきい値と比較することで前記可動電極と前記被溶接部材との接触を検出し、さらに、前記可動電極の伸長量とフィルタリング処理後の前記モータへのトルク指令とを対応づけて所定周期ごとに記録しておき、前記第２の処理完了後に、前記記録に基づいて算定した量だけ前記可動電極を引き戻すことを特徴とする。
また、請求項２に記載の発明は、固定電極と、前記固定電極と対向して配置されモータ駆動によって前記固定電極方向に伸縮可能な可動電極を有するスポット溶接ガンを備えた多関節ロボットが前記スポット溶接ガンを被溶接部材の所定の溶接点に移動させ、前記固定電極と前記可動電極とによって前記被溶接部材をその厚さ方向に挟んでスポット溶接を行うロボットシステムであって、前記ロボットに溶接点位置を教示するに際し、前記可動電極と前記固定電極とによって前記溶接点を挟む位置に前記スポット溶接ガンを移動させる第１の処理と、前記モータ駆動により前記可動電極を前記被溶接部材に向けて伸ばし、前記モータへのトルク指令に基づいて前記可動電極と前記被溶接部材との接触を検出し、接触検出後に前記可動電極の動作を停止させる第２の処理と、前記モータ駆動により前記可動電極が前記被溶接部材と接触した状態を保ちながら、前記ロボットを前記可動電極側へ動作させて前記固定電極を前記被溶接部材に接近させ、前記ロボットの関節に作用する外乱トルクによって前記固定電極と前記被溶接部材との接触を検出し、接触検出後に前記ロボットの動作を停止させる第３の処理とを含む処理を行い、前記第２の処理完了後に前記可動電極の伸長量を確認して前記被溶接物の異常を検出するとともに、前記第３の処理完了後に前記可動電極の伸長量を確認して前記被溶接物の異常を検出することを特徴とする。
【０００９】
請求項３に記載の発明は、前記第３の処理完了後の前記可動電極を所定の補正量だけ引き戻した位置と、前記固定電極を前記補正量だけ前記可動電極側へ動作させたロボットの各関節位置とを前記溶接点に対する教示位置とすることを特徴とする。
【００１０】
請求項４に記載の発明は、前記ロボットシステムは可搬型教示装置を備え、前記第３の処理完了後に前記可動電極の位置を教示する際に、前記所定の補正量を含めた前記可動電極の以前の教示位置からの修正量を前記可搬型教示装置の表示画面に表示することを特徴とする。
【００１１】
請求項５に記載の発明は、前記第２の処理において、前記モータへのトルク指令に対しハイパスフィルタ処理を行った後、ノッチフィルタ処理を行い、フィルタリングしたトルク指令を予め定められた第１のしきい値と比較することで前記可動電極と前記被溶接部材との接触を検出することを特徴とする。
【００１２】
請求項６に記載の発明は、前記第２の処理において、前記可動電極の伸長量とフィルタリング処理後の前記モータへのトルク指令とを対応づけて所定周期ごとに記録しておき、前記第２の処理完了後に、前記記録に基づいて算定した量だけ前記可動電極を引き戻すことを特徴とする。
【００１３】
請求項７に記載の発明は、前記ノッチフィルタのノッチ周波数を前記モータのポール数およびスロット数に基づき決定することを特徴とする。
【００１４】
請求項８に記載の発明は、前記第３の処理において、前記ロボットの各軸モータへのトルク指令と各軸の速度検出値から外乱オブザーバにより推定外乱トルクを求め、推定外乱トルクに対しハイパスフィルタ処理を行った後、座標変換を行って前記固定電極に作用する外力を推定し、前記推定された外力値を予め定められた第２のしきい値と比較することで前記固定電極と被溶接部材との接触を検出することを特徴とする。
【発明の効果】
【００１６】
本願発明によると、スポット溶接ガンの可動電極およびロボットの各軸が自動的に動作して可動電極と固定電極により実際にワークを加圧した状態の位置を記録するため、板厚を前もって設定することなく教示が行え、生産ラインの変更などにより板厚が変更となった場合にも教示点の修正を容易に行うことができる。
また従来に比べ、可動電極、固定電極との接触によるワークの撓みを抑えた状態を教示できるため、適切にスポット溶接を行えるようになり、溶接品質向上に寄与する。
さらに教示に際して可動電極の伸長量の確認を行うことによりワークの異常を確実に検知することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明のロボットシステムの概略図
【図２】ロボットの動作軸を示す概略図
【図３】ロボットの座標系を示す概略図
【図４】ロボットコントローラ内の構成を示す概略図
【図５】スポット溶接ガンの加圧動作の手順を示す図
【図６】本発明のロボットシステムにおけるスポット溶接点位置の教示のフローチャート
【図７】第１加圧動作時の接触検出の手順を示す図
【図８】第１加圧動作時の接触検出後のガン軸引き戻しの手順を示す図
【図９】第２加圧動作時の接触検出の手順を示す図
【図１０】ロボットの基本軸の外乱トルクに基づく外力推定の様子を示す図
【図１１】ロボットの手首軸の外乱トルクに基づく外力推定の様子を示す図
【図１２】Tzの定義を説明する図で、（ａ）は上面図、（ｂ）は側面図
【図１３】教示位置修正時の教示ペンダントの表示画面の例
【図１４】動作プログラム再生時のフローチャート
【図１５】ワーク上に異物がある状態
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について図を参照して説明する。
【００１９】
図１は、本実施例のロボットシステムの構成を模式的に示した図である。
図１において、１は複数の関節軸を備えた垂直多関節型ロボットであり、先端部にはスポット溶接ガン２が取り付けられている。
スポット溶接ガン２は互いに対向して配置された可動電極２１と固定電極２２とを備えており、図の例では２つの電極が上下に配置され上側が可動電極２１、下側が固定電極２２となっている。スポット溶接を行う際には可動電極と固定電極との間に被溶接部材（ワーク）Ｗを配置させた状態で可動電極を固定電極の方向へと延ばし、可動電極と固定電極とでワークＷを挟み、溶接電源３から供給される電力によって電極間に所定時間電流を流す。
溶接が完了すると、可動電極２１を固定電極２２から離れる方向へ動かしてワークＷを解放し、ロボットを動作させてスポット溶接ガンを次の溶接点へと移動させる。
こうした一連の動作は予め動作プログラムとして教示しておき、ロボットコントローラ４内に記憶されている。実作業時には作業者がロボットコントローラ４から所定の動作プログラムを呼び出し、繰り返し実行させる。
【００２０】
ロボット１とケーブルを介して接続されたロボットコントローラ４は、ロボットの各関節軸を駆動するアクチュエータ、可動電極を駆動するアクチュエータの位置や速度を制御するほか、溶接電源３へ指令を出したり溶接電源３がスポット溶接ガン２に供給する電力をモニタしたりする。本実施例では、アクチュエータとしてサーボモータを用いている。
５はロボットコントローラ４に接続された教示ペンダントであり、各種操作ボタン５１と表示画面５２を備えている。ロボット１に動作プログラムを教示する際には操作ボタン５１を操作することによってロボットの各関節軸を動作させ、スポット溶接ガンに所望の位置、姿勢を取らせてロボットコントローラ４に記憶させる。さらに教示した動作プログラムの呼び出しや実行開始の指示も教示ペンダントを操作して行うことができる。
【００２１】
図２はロボット１の関節軸の構成およびスポット溶接ガン２の可動軸の構成を説明するための図である。本実施例ではロボット１は６つの関節軸を備えており、便宜上その基台側からＳ軸、Ｌ軸、Ｕ軸、Ｒ軸、Ｂ軸、Ｔ軸と呼称する。各軸は図２に示す矢印方向に回転駆動する。Ｓ軸、Ｌ軸、Ｕ軸をまとめて基本軸、Ｒ軸、Ｂ軸、Ｔ軸をまとめて手首軸と呼ぶこともある。
またスポット溶接ガン２の可動電極２１の駆動軸をガン軸と呼称する。前述のようにガン軸は可動電極２１を固定電極２２の方向へ伸縮させる。ロボット１の各関節軸を動作させることにより、先端のスポット溶接ガン２の位置や姿勢を様々に変化させることができる。すなわちワーク上の様々な位置に対し、様々な姿勢でスポット溶接ガン２を配置することが可能である。
本実施例では６つの関節軸を備えたロボットを例に説明するが、これは一例に過ぎない。ロボット１は７つ以上の関節軸を備えていても良いし、スポット溶接ガンの姿勢の自由度が要求されない用途であれば、関節軸は５つ以下であっても良い。
【００２２】
図３にロボット１やスポット溶接ガン２について設定された座標系を示す。ロボット座標系とはロボットの基台部を原点として、ロボット前方をＸ軸、左方をＹ軸、上方をＺ軸とする直交座標系である。また関節座標系とはロボット１の各関節について設定された座標系である。図３ではＳ軸についてのみ関節座標系を描いている。
フランジ座標系は、ロボット先端部のスポット溶接ガン２の取り付け面に設けられた直交座標系である。取り付け面の法線方向をＺ軸とする。ロボットの各関節軸を駆動させることで、ロボット座標系に基づくフランジ座標系の位置や姿勢は様々に変化することになる。
ツール座標系は、ロボット先端部に取り付けられたツールに設けられた直交座標系である。ツール座標系の原点や向きはツールの種類によって様々に定義することができるが、本実施例のスポット溶接ガンでは固定電極２２の先端部を原点として、ガンの前方をＸ軸、可動電極方向をＺ軸としている。ツール座標系についても、ロボットの各関節軸を駆動させることで、ロボット座標系に基づく位置や姿勢が様々に変化する。なお図３では説明のためロボット先端部とスポット溶接ガンとを離して描いている。
また、robot_flangeはロボット座標系に対する手先フランジ座標系の姿勢を表す回転行列で、flange_toolはフランジ座標系に対するツール座標系の姿勢を表す回転行列である。
【００２３】
図４は、ロボットコントローラ４内の構成のうち、本実施例に係る部分を模式的に示した図である。各部がシステムバス４１によって接続されており、システムバスを介して必要な情報のやりとりを行う。
ロボット軸制御部４２、ガン軸制御部４３はそれぞれサーボアンプ４２０、４３０を介してロボット１の各関節軸のサーボモータ、スポット溶接ガン２のガン軸のサーボモータの位置や速度の制御を行う。ロボット１の各関節軸のサーボモータやスポット溶接ガン２のガン軸のサーボモータには位置（回転角度）を検出するためのエンコーダ（図示せず）が設けられており、エンコーダの検出値はサーボアンプを介して各制御部へとフィードバックされる。ロボット軸制御部４２、ガン軸制御部４３は各エンコーダの出力から各軸の位置、速度を得ることができる。
Ｉ／Ｆ部４４、４５はそれぞれ溶接電源３、教示ペンダント５とのインターフェイス部であり、溶接電源３や教示ペンダント５の状態を取得したり、指令を出力したりする。
作業プログラム・パラメータ記憶部４６は不揮発性メモリからなり、教示した作業プログラムや、ロボット１やスポット溶接ガン２の制御に必要な各種パラメータを格納する。パラメータの例としては、ロボット１の順運動学・逆運動学の演算に必要なリンクパラメータや、各関節軸のエンコーダの分解能、動作限界位置などがある。演算処理部４７はロボットやスポット溶接ガンの各軸を位置速度制御によって動作させる際、順運動学・逆運動学の演算を行って所定周期ごとにロボット軸制御部やガン軸制御部に出力する指令を算出する等の演算処理を行なう。中央処理部４８は、各部を統括する機能を有する。
【００２４】
続いて本実施例のロボットシステムにおいて、溶接点の教示位置を自動的に決定する際の手順の概略について説明する。
予め溶接点位置についての大まかなガン軸位置（可動電極の伸長量）、ロボット各軸位置（固定電極位置）の教示は行っており、これから説明する手順にて溶接点の教示位置をより精度よく修正する場合を想定して説明する。大まかな教示とは、ワークＷに対するスポット溶接ガンの位置決めのうち、ツール座標系のＸ軸、Ｙ軸方向については完了しており、Ｚ軸方向については伸長前の可動電極先端とワークＷとの距離が可動電極の最大伸長量以内となっている状態を指す。その状態からさらに可動電極と固定電極とをワークＷに適当に接触させた状態まで教示しておいてもよい。
【００２５】
本実施例のロボットシステムでは、作業プログラム中の溶接点の教示を行う場合、教示者がロボットを動かし図５（ａ）のようにスポット溶接ガン２の電極間にワークＷが存在するよう配置した後に指示を出せば、自動的にロボット１の各関節軸及びガン軸が動作してスポット溶接ガン２の位置及び可動電極２１の位置を調整し、ワークＷの板厚が未知であっても適切な溶接点位置の教示を行うことができる。
この際のスポット溶接ガン２の動作を図５（ａ）から図５（ｅ）に示し、処理の流れを図６のフローチャートで示す。図５（ａ）から図５（ｅ）については、ロボット１を省略してスポット溶接ガンのみを描いている。
まず図５（ａ）は、教示者が教示ペンダント５を操作してロボット１を動作させ、可動電極２１と固定電極２２とによってワークＷ上の溶接点を挟む位置にスポット溶接ガン２を誘導した状態を示している。
【００２６】
図５（ａ）の状態から教示者が教示ペンダント５を操作してスポット溶接ガン位置及び可動電極位置を自動的に調整するよう指示を出す。
するとガン軸が速度制御によって動作して可動電極２１が所定速度で固定電極２２側に伸びる（図６のＳ１）。ロボットコントローラ４はガン軸サーボモータへのトルク指令を基に可動電極２１とワークＷとの接触を検出するようになっており（図６のＳ２）、図５（ｂ）のようにワークＷの上面に可動電極２１が当接した状態となりトルク指令値が予め定められたしきい値Ｔｈ１を超えると、両者が接触したと判断し（図６のＳ３の「Ｙｅｓ」の場合）、可動電極２１の動作を停止させる（図６のＳ４）。その直後、図５（ｃ）のように可動電極２１をわずかに戻す（図６のＳ５）。この一連の動作を第１加圧動作とする。
【００２７】
第１加圧動作後にガン軸の位置について確認を行い（図６のＳ６）、ワークＷ上に異物が存在したり、ワークＷが可動電極２１の伸縮方向に大きく位置ずれしたりしていないかチェックを行う。ガン軸位置確認の処理については後述する。ここではガン軸位置について問題がなかったとして次の処理に進んだものとする。
【００２８】
続いて、ロボット１の各軸を動作させて固定電極２２を可動電極２１の方向へと移動させて（図６のＳ７−１）、ワークＷの下面との接触検出を行なう（図６のＳ７−２）。スポット溶接ガン全体が移動することになるので、そのままだとワークＷの上面に当接した可動電極２１がワークＷから離れてしまう。そこでガン軸を位置制御することにより図５（ｄ）のように可動電極を固定電極側にさらに伸ばす動作を同時に行う（図６のＳ７−４）。この場合の位置制御では、ロボット座標系に基づく可動電極２１の位置を第１加圧動作完了時と同様に保つようにする。
図５（ｅ）のように、可動電極２１及び固定電極２２がワークＷと接触したことを検出すると（図６のＳ７−３、Ｓ７−６の「Ｙｅｓ」の場合）スポット溶接ガン２の上昇動作及び可動電極２１の下降動作を停止する（図６のＳ８）。この一連の動作を第２加圧動作とする。
【００２９】
図６のＳ７−６での接触検出は第１加圧動作の場合（図６のＳ３）と同様にして行なう。図６のＳ３、Ｓ７−３での接触検出の手法については後ほど詳しく述べる。
また第２加圧動作後にもガン軸の位置について確認を行ない（図６のＳ９）、ワークＷ上に異物が存在したり、ワークＷが可動電極２１の伸縮方向に位置ずれしたりしていないかチェックを行う。ガン軸位置確認の際の処理についても後述する。ここではガン軸位置について問題がなかったとして次の処理に進んだものとする。
【００３０】
その後、停止した位置でのロボットの各軸の位置と、ガン軸の位置とを溶接点の教示位置として、作業プログラム・パラメータ記憶部４６に記録する（図６のＳ１０）。
【００３１】
以上が溶接点の教示位置を自動的に決定する大まかな手順である。前述のように、本実施例では第１加圧動作にて、まず可動電極２１をワークＷに接触させ、続く第２加圧動作にて固定電極２２をワークＷに接触させる。
第２加圧動作の際、可動電極は位置制御によりワークＷとの接触位置を保つので、電極との接触によるワークＷの撓み量は、第１加圧動作で可動電極２１がワークＷに接触した力の大きさ（前出のしきい値Ｔｈ１）で決まる。
ワークＷが大きく撓むと、スポット溶接ガンによる加圧力がワークＷに適切に作用しなかったりワークＷの変形によって所定の溶接点からずれた位置で溶接を行ったりして溶接品質低下の原因となるため、ワークＷの撓み量を小さく抑える必要がある。ワークＷの撓み量を小さくするには、図６のＳ３での可動電極の接触検出の処理を簡単にし、できるだけ早い段階、すなわちワークＷに作用する力がより小さい時点で接触を検出してガン軸の動作を止める必要がある。
また第２加圧動作での接触検出（図６のＳ７−３）についても、固定電極によるワークＷへの加圧力が不適切だと溶接品質が低下するため、第２加圧動作時にワークＷからスポット溶接ガンに適切な外力が作用した時点で接触と判断する必要がある。そこで以後では、第１加圧動作、第２加圧動作それぞれでの接触検出の手法について詳しく説明する。
【００３２】
本実施例における第１加圧動作での接触検出（図６のＳ３）の手法について説明する。図７は第１加圧動作時の接触検出の手順を示す概略図である。図７のうち、点線で囲んだ部分はガン軸の位置速度制御ループを示す。
第１加圧動作では、ガン軸サーボモータへのトルク指令を基に可動電極２１とワークＷとの接触を検出していることは既に述べた。
しかしトルク指令はガン軸に作用する重力トルクや摩擦トルクを含んだものとなっており、トルク指令そのままの値を所定のしきい値と比較して接触を検出しようとすると、検出しきい値を大きな値に設定しなければならず、実際に接触が発生してから接触を検出するまでに遅れが生じ、ガン軸を停止させるまでに時間がかかりワークＷの撓みが大きくなってしまう。
検出しきい値を小さくして接触からガン軸停止までの時間を短くするには、重力トルクと摩擦トルクを実時間で補償しなければならない。本実施例では、まず第１加圧動作時のガン軸へのトルク指令波形をハイパスフィルタ７１によって処理し低周波成分を除去する。この処理により、トルク指令に含まれる重力・摩擦成分を取り除く。
【００３３】
ハイパスフィルタ７１から出力されたトルク指令に対し、さらにノッチフィルタ７２による処理を行う。ノッチフィルタ７２によって、トルク指令からガン軸サーボモータのトルクリップル成分を除去する。ノッチ周波数はガン軸サーボモータのポール数とスロット数およびモータの動作速度（単位時間あたりの回転数）によって決定する。例えばガン軸に１４ポール・１２スロットのサーボモータを用い、１０００[ｒｐｍ]で動作させた場合、ポール数に基づく機械的なリップル周波数は（１４／２）×（１０００／６０）＝１１６．６７[Ｈｚ]となる。
またスロット数に基づく電流によるリップル周波数は１２×（１０００／６０）＝２００[Ｈｚ]となる。これらを合成したリップル周波数は、（１４／２）×１２×（１０００／６０）＝１４００[Ｈｚ]となる。
【００３４】
さらに、トルク指令にはこれらの周波数を２倍、３倍、・・・と整数倍した高周波成分も含まれている。こうしたトルクリップル成分をノッチフィルタ７２で取り除いたのち、しきい値Ｔｈ１と比較する（図７の７３）。フィルタリングされたトルク指令がしきい値Ｔｈ１を超えたら可動電極２１がワークＷと接触したと判断して（図７の７４、図６のＳ３）、ガン軸の動作を停止させる（図６のＳ４）。なおノッチ周波数を決定するためのガン軸サーボモータのポール数やスロット数はロボットコントローラ４内の作業プログラム・パラメータ記憶部４６に予めパラメータとして記録した値を用いることができる。
ハイパスフィルタ７１でトルク指令に含まれる重力・摩擦成分を取り除き、さらにノッチフィルタ７２でトルクリップルを取り除いているため、接触検出のためのしきい値Ｔｈ１として小さい値を設定でき、接触検出の遅れを小さくすることができる。
【００３５】
ただしこのような処理を行なっても、制御遅れなどの影響によって可動電極２１とワークＷの接触を検知する前の時点で可動電極２１はワークＷと接触しており、ガン軸を停止させた時点でワークＷは可動電極２１に押されて撓んでいる。
そこでガン軸の動作停止後、ガン軸を逆転させ可動電極２１をわずかに引き戻す。ガン軸引き戻し量の決定方法について図７、図８を用いて説明する。第１加圧動作の際にフィルタリング後のトルク指令とガン軸位置とをロギングしておく（図７の７５）。トルク指令がしきい値Ｔｈ１を超えガン軸の動作を停止させた後、ロギングにより蓄積したデータから、トルク指令がしきい値Ｔｈ１の所定の割合に達した時点を求める。図８の例では、しきい値Ｔｈ１の２５％としている）
トルク指令がしきい値Ｔｈ１の２５％時点でのガン軸位置を取得し、その位置まで可動電極２１を引き戻す。このように接触検出して停止した位置から可動電極２１を若干戻すことによってワークＷの撓みを小さくして適切なガン軸位置を教示することができる。
なお、しきい値Ｔｈ１や、可動電極２１を若干戻す際に使用するしきい値Ｔｈ１の所定の割合といった値も予めパラメータとして作業プログラム・パラメータ記憶部４６に設定しておくことができる。
以上が第１加圧動作での接触検出の手法である。
【００３６】
続いて第２加圧動作での接触検出の手法について説明する。第２加圧動作では、固定電極２２とワークＷの接触を検出する。固定電極２２には可動電極２１のような駆動部分はなく、ガン軸のサーボモータのトルク指令から接触を検出することはできない。そのため固定電極（スポット溶接ガン本体）を支持するロボット１の状態量を利用してワークＷとの接触を検出する。その際にロボット１に作用する外乱トルクを推定する外乱オブザーバを利用する。
図９は第２加圧動作時の接触検出の手順を示す概略図である。図９のうち、点線で囲んだ部分はロボット各軸の位置速度制御ループを示す。
まずロボット１の各関節軸へのトルク指令および位置フィードバック値を基に、外乱オブザーバ９１にて負荷側（スポット溶接ガン）に作用する外乱トルクを推定する。推定された外乱トルクは重力や摩擦に起因するトルクも含んでいるため、外乱オブザーバ９１内でダイナミクス演算により重力に起因するトルクを補償しておく。
続いて、外乱オブザーバ９１の出力をハイパスフィルタ９２で処理し低周波成分を除去する。これにより摩擦に起因するトルクを除去する。
こうして重力、摩擦について補償された外乱トルクはロボット１の各軸の関節座標系に基づくものであるので、これを座標変換（図９の９３）によってガン開閉方向（ツール座標系のＺ軸）の外力推定値に変換する。
【００３７】
ここで、ツール座標系のＺ軸方向に作用する外力推定方法の一例として、ロボットの基本軸（Ｓ軸、Ｌ軸、Ｕ軸）の外乱トルクに基づく外力推定値と、手首軸（Ｒ軸、Ｂ軸、Ｔ軸）の３軸それぞれの外乱トルクに基づく外力推定値とを求め、それらの平均値を利用する方法を説明する。
【００３８】
まずロボット基本軸（Ｓ軸、Ｌ軸、Ｕ軸）の外乱トルクに基づく外力推定について図１０を用いて説明する。基本軸の関節座標系の外乱トルクをツール座標系のＺ軸方向の外力推定値へ変換する演算は、大きく次の２段階に分けることができる。
（１）ヤコビ転置逆行列(JＴ)-1を用いて、ロボット１の基本軸（Ｓ軸、Ｌ軸、Ｕ軸）の各関節座標系外乱トルクτs、τl、τuをロボット座標系の外力推定値に変換する。
（２）回転行列robot_flange及びツール回転行列flange_toolにより、ロボット座標系の外力をツール座標系のＺ軸方向の外力に変換する。
【００３９】
まず上記（１）についての手順を述べる。
（１）関節座標系外乱トルク→ロボット座標系外力推定値の変換
前出のヤコビ行列Jとは、ロボットの関節座標系と直交座標系間の微小変位関係を表す行列である。ヤコビ行列Jの転置行列JＴを用いることで、直交座標系の力Ｆを関節座標系のトルクτに変換できる。また、逆行列(JＴ)-1を求めることで、関節座標系のトルクτを直交座標系の力Ｆに変換することができる。本実施例のような６軸ロボットの場合のヤコビ行列Jの演算方法を（式１）に示す。
【００４０】
0005170175.tif 000002
・・・（式１）
【００４１】
ここで、0ｓi：第ｉ関節座標の回転方向ベクトル（ロボットベース座標基準）
0Ｐi：第ｉ関節位置ベクトル（ロボットベース座標基準）
×：ベクトル積
Ｅ：ツール先端（もしくは外力の作用点）の位置ベクトル
【００４２】
求められたヤコビ行列Ｊは３×３の行列となり、行列要素を便宜上（式２）のように示す。
【００４３】
0005170175.tif 000003
【００４４】
またヤコビ行列Ｊの転置行列ＪＴは、（式３）のように表現できる。
【００４５】
0005170175.tif 000004
【００４６】
この転置行列ＪＴの逆行列を求めることで、ヤコビ転置逆行列(JＴ)-1が得られる。ヤコビ行列ＪＴの行列式det(ＪＴ)は、（式４）によって求まる。
【００４７】
0005170175.tif 000005
・・・（式４）
【００４８】
（式４）のヤコビ行列ＪＴの行列式det(ＪＴ)を用いて、ヤコビ転置逆行列(JＴ)-1は（式５）のように求めることができる。
【００４９】
0005170175.tif 000006
【００５０】
従って、ロボット基本軸（Ｓ軸、Ｌ軸、Ｕ軸）の関節座標系の外乱トルクを
τobs＝［τs、τl、τu］Ｔ                        ・・・（式６）
ただし、τobs：関節座標系での外乱トルクベクトル
τs：Ｓ軸の関節座標系の外乱トルク
τl：Ｌ軸の関節座標系の外乱トルク
τu：Ｕ軸の関節座標系の外乱トルク
と置き、ロボット座標系での外力推定値を 
Ｆobs_robot＝［Ｆx、Ｆy、Ｆz、］Ｔ             ・・・（式７）
ただし、Ｆobs_robot：力ベクトル
Ｆ：ロボット座標系での並進力
と置くと、ロボット座標系の外力推定値は（式８）で求めることができる。
Ｆobs_robot＝(JＴ)-1・τobs                      ・・・（式８）
ロボットの姿勢の変化に対して（式５）（式８）を演算することで、ロボットの全動作領域でロボット座標系の外力推定値Ｆobs_robotを求めることができる。
【００５１】
続いて上記（２）の手順について述べる。
（２）ロボット座標系→フランジ座標系→ツール座標系の変換
ロボット座標系に対する手先フランジ座標系の姿勢を表す回転行列robot_flangeは、次の（式９）で表すことができる。
【００５２】
0005170175.tif 000007
【００５３】
ここで、nＲn+1は、ｎ座標系から（ｎ＋１）座標系への３×３の回転行列である。
【００５４】
また、フランジ座標系に対するツール座標系の姿勢を表す回転行列flange_toolは、作業者が設定するツール姿勢（Ｒｘ、Ｒｙ、Ｒｚ）[deg]から（式１０）によって得ることができる。ツール姿勢は、作業者が教示ペンダントを操作してツール情報として設定することができる。ただし、固定電極から見て可動電極の方向が＋Ｚ方向である。
【００５５】
0005170175.tif 000008
・・・（式１０）
【００５６】
この２つの回転行列robot_flangeとflange_toolのそれぞれの転置行列を用いて、ロボット座標系の外力推定値Ｆobs_robotからツール座標系での外力推定値Ｆobs_tool[SLU]を（式１１）のようにして求めることができる。
Ｆobs_tool[SLU]＝(flange_tool)Ｔ・(robot_flange) Ｔ・Ｆobs_robot  ・・・（式１１）
このような手順で、ロボット基本軸（Ｓ軸、Ｌ軸、Ｕ軸）の外乱トルクに基づく外力推定を行う。
【００５７】
続いて手首軸の外力推定について説明する。
手首軸３軸（Ｒ軸、Ｂ軸、Ｔ軸）については、スポット溶接ガン２に作用した力が手首の関節各軸にどのように作用するか幾何学的に求めることができるため、逆に関節各軸（Ｒ軸、Ｂ軸、Ｔ軸）の外乱トルクからスポット溶接ガン２に作用した外力推定値Ｆobs_toolを求めている。
図２や図３に示すように、スポット溶接ガン２をロボット先端部に取り付けるに際してツール座標系のＹ軸方向にオフセットがない場合、スポット溶接ガン２に外力が作用すると、Ｒ軸とＢ軸に外乱としてトルクが作用する。接触検出では、外力のうちガン開閉方向に作用する成分のみを対象としており、ガン開閉方向に対して垂直な成分は無視するため、Ｔ軸にはトルクが作用しない。
図１１を用いてＢ軸の演算を例に説明する。以下の（式１２）に示すように、ガンの開閉方向に作用する外力Ｆobs_tool[B]を、Ｂ軸と直交する平面に射影した力と、Ｂ軸の外乱トルクτobs [B]をスポット溶接ガン２の制御点（固定電極２２の先端）からＢ軸回転中心までの距離Tzで除算した力とは同じ大きさである。
ここでTzの定義を図１２に示す。図１２（ａ）は上面図、図１２（ｂ）は側面図である。スポット溶接ガン２の制御点（固定電極２２の先端）を含み、Ｂ軸の回転軸と平行な平面と、Ｂ軸の回転軸との距離がTzである。Tzの大きさはＢ軸やＴ軸が回転しても変化しない。
Ｆobs_tool[B]・cosθt＝τobs [B]／Tz       ・・・（式１２）
ここで、θtはＴ軸の回転角度である。
【００５８】
このことから、Ｂ軸に作用するトルクからスポット溶接ガン２の開閉方向に作用する外力Ｆobs_tool[B]は（式１３）のように求めることができる。
【００５９】
0005170175.tif 000009
【００６０】
Ｒ軸についても同様にして、ガンの開閉方向に作用する外力Ｆobs_tool[R]を（式１４）のように求めることができる。
【００６１】
0005170175.tif 000010
【００６２】
ここで、τobs [R]はＲ軸の外乱トルク、θbはＢ軸の回転角度、θtはＴ軸の回転角度である。
【００６３】
このようにした求めたＦobs_tool[SLU]、Ｆobs_tool[B]、Ｆobs_tool[R]を平均（図９の９４）して、予め定められた外力のしきい値Ｔｈ２と比較（（図９の９５）し、外力推定値がしきい値Ｔｈ２を超えていれば固定電極がワークＷと接触したと判断して（図６のＳ７−３）、ロボットの動作を停止させる。
【００６４】
本実施例では、基本軸３軸と手首軸３軸とに分け、それぞれ行った外力推定処理の結果の平均をしきい値と比較したが、先に述べたようにこれは一例に過ぎない。別の方法として、ロボットの基本軸（Ｓ軸、Ｌ軸、Ｕ軸）、手首軸（Ｒ軸、Ｂ軸、Ｔ軸）の各外乱トルクに基づく外力推定値の絶対値を積算し、その積算値としきい値とを比較し、固定電極２２とワークＷとの接触を検出してもよい。
【００６５】
以上が第２加圧動作での接触検出の手法である。
ロボット１の動作により固定電極２２が可動電極２１側に移動し接触検出を行っている間、可動電極２１は図６のＳ７−４からＳ７−６のように、位置制御により固定電極２２側に動作しながら、第１加圧動作時と同様にトルク指令をフィルタリングした結果としきい値Ｔｈ１を比較して、接触を検出すると停止させる。ただしこの場合には接触後の可動電極２１の引き戻しは行わない。
こうした手順により、ワークＷの板厚が未知であっても適切な溶接点位置の教示を行うことができ、さらに可動電極、固定電極によるワークＷの撓みを抑制した状態を教示することができる。
【００６６】
以上説明した第１加圧動作、第２加圧動作が完了するとワークＷがスポット溶接ガンの可動電極２１、固定電極２２によって適切に挟持された状態となる。
ロボットが教示モードの場合は、  図６のＳ９までの一連の処理終了後に教示ペンダントの画面５２上に図１３のような画面を表示して教示者に現在位置の教示を促す。
図１３において検出量とは、ラフ教示でのガン軸位置と、第１加圧動作、第２加圧動作によって決定した現在のガン軸位置との差分である。ツール座標のＺ軸方向を正としており、図１３の検出量−１．５ｍｍとは可動電極２１がラフ教示の場合に比べて１．５ｍｍ下方に伸びた状態でワークＷと接触したことを示している。
また補正量とは、可動電極によるワークＷの撓みを小さくするために、可動電極２１を引き戻す量を示している。第１加圧動作時にも可動電極をわずかに引き戻して撓みを抑える（図６のＳ５）ことを説明したが、さらにワークＷの撓みを小さくするために、教示位置としてガン軸位置を記憶する際には、実際の位置から補正量分だけ可動電極をさらに上方へ引き戻した位置を記憶するようにしている。なおロボットの各軸についても固定電極を実際の位置から補正量分だけ可動電極側へ移動させた場合の位置を記憶する。検出量と補正量との和が、ラフな教示位置からの修正量となる。
【００６７】
教示者が「はい」を選択すると、補正量を考慮したロボットの各軸およびガン軸の位置が、作業プログラムに付随する溶接点の教示位置情報としてロボットコントローラ４の作業プログラム・パラメータ記憶部４６に記憶される。
【００６８】
教示者は、教示ペンダント５を操作してロボット１を次の溶接点へと移動させ同様に溶接点の教示位置を修正していけばよい。
教示ペンダントの表示画面に教示位置の修正量を表示するため、教示者は簡単に各溶接点での修正量を把握することができ、ガン軸の教示位置に異常があった場合にも即座に察知して対応することが可能となる。
【００６９】
続いて、第１加圧動作後や第２加圧動作後のガン軸位置確認の処理について図１４を用いて説明する。
前述のように、本実施例ではロボットが図５（ａ）のようにワークＷ上の溶接点を可動電極２１と固定電極２２とで挟む位置に移動した後、自動的に第１加圧動作を行う。図６と同様の処理だが、図１４では１つにまとめてＳ１１として示す。可動電極２１とワークＷとの接触を検出するとガン軸を停止した後若干の引き戻しを行う。
この時点でのガン軸の位置（可動電極２１の伸びた長さ）を取得し（図１４のＳ１２）、  ラフ教示時に記録したガン軸位置と現在のガン軸位置とを比較する（図１４のＳ１３）。両者の差が所定のしきい値Ｔｈ３より大きい場合（図１４のＳ１４で「Ｎｏ」の場合）には、図１５（ａ）のようにワークＷ上に異物が存在しているか、ワークＷの位置が可動電極２１の伸縮方向にずれているとしてアラームを発生させ、ロボットの動作を停止させる（図１４のＳ１５）。図１５（ａ）は、ワークＷ上に異物Ｗ´が存在するために可動電極２１が殆ど伸びていない状態で接触検出した様子を示している。
両者の差がしきい値以下であれば、許容できる誤差の範囲として第２加圧動作を続行する。図６と同様の処理だが、図１４ではＳ１６として示す。
【００７０】
第２加圧動作にて接触検出を行い可動電極２１と固定電極２２を停止した際にも、ガン軸の位置（可動電極２１の伸びた長さ）を取得し（図１４のＳ１７）、ラフ教示時に記録したガン軸位置と現在のガン軸位置とを比較する（図１４のＳ１８）。両者の差が所定のしきい値Ｔｈ４より大きい場合（図１４のＳ１９で「Ｎｏ」の場合）には、図１５（ｂ）のようにワークＷ上に異物が存在しているか、ワークＷの位置が可動電極２１の伸縮方向にずれているとしてアラームを発生させ、ロボットの動作を停止させる（図１４のＳ２０）。図１５（ｂ）は、ワークＷ上に異物Ｗ´が存在しているが、ワークＷ自体の位置もずれていたために第１加圧動作時には可動電極２１の位置が適正と判断されたもので、第２加圧動作後に可動電極２１が十分に伸びていない状態で接触検出した様子を示している。
こうしたしきい値Ｔｈ３やＴｈ４も作業プログラム・パラメータ記憶部４６に予め記録しておくことができる。
両者の差がしきい値以下であれば、許容できる誤差の範囲として現時点でのロボットの各軸の位置とガン軸位置とを補正された教示位置として、記録されていた教示位置の代わりに作業プログラム・パラメータ記憶部４６に記録する（図１４のＳ２１、図６のＳ１０）。
第１加圧動作後、第２加圧動作後にそれぞれガン軸位置確認を行うため、ワークＷに異常があった場合にも即座に察知して対応することができる。
【符号の説明】
【００７１】
１  ロボット
２  スポット溶接ガン
２１  可動電極
２２  固定電極
３  溶接電源
４  ロボットコントローラ
４１  システムバス
４２  ロボット軸制御部
４３  ガン軸制御部
４４、４５  Ｉ／Ｆ部
４６  作業プログラム・パラメータ記憶部
４７  演算処理部
４８  中央処理部
４２０  ロボット軸サーボアンプ
４３０  ガン軸サーボアンプ
５  教示ペンダント
５１  操作キー
５２  表示画面
７１  ハイパスフィルタ
７２  ノッチフィルタ
７３  しきい値Ｔｈ１との比較
７４  接触検出
７５  トルク指令とフィードバック位置のロギング
９１  外乱オブザーバ
９２  ハイパスフィルタ
９３  座標変換
９４  平均処理
９５  しきい値Ｔｈ２との比較
Ｗ  ワーク
Ｗ´  異物
【図１】
0005170175.tif 000011
【図２】
0005170175.tif 000012
【図３】
0005170175.tif 000013
【図４】
0005170175.tif 000014
【図５】
0005170175.tif 000015
【図６】
0005170175.tif 000016
【図７】
0005170175.tif 000017
【図８】
0005170175.tif 000018
【図９】
0005170175.tif 000019
【図１０】
0005170175.tif 000020
【図１１】
0005170175.tif 000021
【図１２】
0005170175.tif 000022
【図１３】
0005170175.tif 000023
【図１４】
0005170175.tif 000024
【図１５】
0005170175.tif 000025