(57)【要約】【課題】  予め教示された振幅で確実にかつ正確にウィービング動作させることのできる溶接ロボット制御装置を提供する。【解決手段】  本発明の溶接ロボット制御装置２０は、溶接ロボット１０の各関節に設けられた複数の駆動モータ１３をフィードバック制御で駆動することにより、補間点ごとに溶接トーチ１４をウィービング動作させつつアークを発生させて溶接ロボット１０に溶接を行わせるものであって、補間点ごとに、ウィービング動作しない場合の各関節の関節角度と、ウィービング動作する場合の各関節の関節角度との差を関節ごとにウィービング変位として算出し、駆動モータ１３のサーボ制御定数と予め定めるウィービング周波数とに基づいて、駆動モータ１３のフィードバック制御系におけるゲインを算出し、算出されたゲインの逆数を、ウィービング変位に乗じ、その値をウィービング動作しない場合の各関節の関節角度に加算することにより、補間点ごとに駆動モータ１３に対する動作指令としての各関節の関節角度を算出するＣＰＵ２１を備える。【選択図】  図６
2006059037.tif 000002
【特許請求の範囲】
【請求項１】
溶接ロボットの各関節に設けられた複数のサーボモータをフィードバック制御で駆動することにより、溶接軌道上を所定時間ごとに分割した補間点ごとに、溶接トーチをウィービング動作させつつアークを発生させて前記溶接ロボットに溶接を行わせる溶接ロボット制御装置であって、
前記補間点ごとに、ウィービング動作しない場合の前記各関節の関節角度と、ウィービング動作する場合の前記各関節の関節角度との差を前記関節ごとにウィービング変位として算出するウィービング変位算出手段と、
前記サーボモータのサーボ制御定数と予め定めるウィービング周波数とに基づいて、前記サーボモータのフィードバック制御系におけるゲインを算出するゲイン算出手段と、
前記ゲイン算出手段によって算出されたゲインの逆数を、前記ウィービング変位算出手段によって算出された前記ウィービング変位に乗じ、その値をウィービング動作しない場合の前記各関節の関節角度に加算することにより、前記補間点ごとに前記サーボモータに対する動作指令としての前記各関節の関節角度を算出する動作指令算出手段と、
を備えることを特徴とする、溶接ロボット制御装置。
【請求項２】
前記サーボ制御定数は、前記サーボモータの位置制御の遅れ系を表す時定数である、請求項１に記載の、溶接ロボット制御装置。
【請求項３】
溶接ロボットの各関節に設けられた複数のサーボモータをフィードバック制御で駆動することにより、溶接軌道上を所定時間ごとに分割した補間点ごとに、溶接トーチをウィービング動作させつつアークを発生させて前記溶接ロボットに溶接を行わせる溶接ロボット制御装置であって、
前記補間点ごとに、ウィービング動作しない場合の前記各関節の関節角度と、ウィービング動作する場合の前記各関節の関節角度との差を前記関節ごとにウィービング変位として算出するウィービング変位算出手段と、
前記関節の軸まわりに発生するトルクを関節毎に算出する第１トルク算出手段と、
前記補間点ごとに前記ウィービング動作をしない場合に発生するトルクを算出する第２トルク算出手段と、
前記第１トルク算出手段によって算出された、前記関節の軸まわりに発生するトルクの値と、前記第２トルク算出手段によって算出された、前記ウィービング動作をしない場合に発生するトルクの値とを差し引き、その差し引いた値を、予め定められた各関節におけるばね定数で除算し、その除算した値を、前記ウィービング動作する場合の各関節の関節角度に加算することにより、前記補間点ごとに前記サーボモータに対する動作指令としての前記各関節の関節角度を算出する動作指令算出手段と、
を備えることを特徴とする、溶接ロボット制御装置。
【請求項４】
前記第２トルク算出手段は、
前記補間点ごとに、前記ウィービング動作の一周期毎に前記ウィービング動作の右端において発生するトルクと、前記ウィービング動作の左端において発生するトルクとの平均値を算出することにより、前記ウィービング動作をしない場合に発生するトルクを算出する、請求項３に記載の溶接ロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ワークに対して溶接を行う溶接ロボットの制御装置に関するものである。
【背景技術】
【０００２】
従来、ワークに対して溶接を行う多関節溶接ロボットにおいては、ウィービング動作と呼称される動作を行うものがある（例えば、特許文献１参照）。ウィービング動作とは、予め記憶された作業プログラムによって溶接ロボットの各軸を駆動モータによって回転駆動させることにより、溶接トーチを溶接進行方向に対して直交する方向に揺動させる動作をいう。
【０００３】
このウィービング動作では、ティーチングプレイバック方式に基づいて溶接部の形状に沿って溶接トーチが直線補間動作又は円弧補間動作を行いつつ、溶接トーチのツールセンタポイント（ＴＣＰ）を、予め教示された振幅、周波数、及び波形に基づいて移動させる。このウィービング動作が行われることによって、良好でかつ確実な溶接を実現することができる。
【特許文献１】特開平７−２４５７４号公報。
【０００４】
ところで、上記多関節溶接ロボットの制御においては、溶接ロボットの動特性を向上させるために、溶接ロボットの各アームを駆動するモータの制御定数をリアルタイムに変化させている。
【０００５】
溶接ロボットの各関節の位置は、モータをフィードバック制御することにより制御されるが、例えば、溶接ロボットの姿勢が縮んでおり（すなわち複数のアームが延びておらず）、モータの負荷である慣性モーメントが小さい場合には、位置を制御するためのモータのフィードバック制御系におけるゲイン（以下、フィードバックゲインという。）を大きくし、各関節における位置の追従性を向上させている。逆に、複数のアームが延び、慣性モーメントが大きい場合には、位置制御用のフィードバックゲインを小さくし、各関節における位置の追従性をあえて悪化させ、残留振動の振幅を小さくするといった制御が行われている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、上記のように、モータのフィードバック制御系における位置制御用のフィードバックゲインをリアルタイムに変化させる制御が行われると、各関節における位置の追従性能が変化することになるため、モータの回転駆動に依存しているウィービング動作に影響を及ぼし、予め教示された、ウィービング動作による振幅が変化してしまうといった問題点があった。
【０００７】
また、多関節溶接ロボットの制御において、上記ウィービング動作は、溶接ロボットの複数の関節が合成動作することにより実現されている。例えばシリアルリンク機構の溶接ロボットにおけるウィービング動作では、溶接ロボットの関節間に干渉トルクが発生し、この干渉トルクによって、モータとアームとを連結する減速機がたわむことがある。そのため、各軸において本来回転すべき量（角度）が正確に得られないことがあり、予め教示された、ウィービング動作による振幅が遵守できないといった問題があった。
【０００８】
本願発明は、上記した事情のもとで考え出されたものであって、予め教示された振幅で確実にかつ正確にウィービング動作させることのできる溶接ロボット制御装置を提供することを、その課題とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本願発明では、次の技術的手段を講じている。
【００１０】
本願発明の第１の側面によって提供される溶接ロボット制御装置は、溶接ロボットの各関節に設けられた複数のサーボモータをフィードバック制御で駆動することにより、溶接軌道上を所定時間ごとに分割した補間点ごとに、溶接トーチをウィービング動作させつつアークを発生させて前記溶接ロボットに溶接を行わせる溶接ロボット制御装置であって、前記補間点ごとに、ウィービング動作しない場合の前記各関節の関節角度と、ウィービング動作する場合の前記各関節の関節角度との差を前記関節ごとにウィービング変位として算出するウィービング変位算出手段と、前記サーボモータのサーボ制御定数と予め定めるウィービング周波数とに基づいて、前記サーボモータのフィードバック制御系におけるゲインを算出するゲイン算出手段と、前記ゲイン算出手段によって算出されたゲインの逆数を、前記ウィービング変位算出手段によって算出された前記ウィービング変位に乗じ、その値をウィービング動作しない場合の前記各関節の関節角度に加算することにより、前記補間点ごとに前記サーボモータに対する動作指令としての前記各関節の関節角度を算出する動作指令算出手段と、を備えることを特徴としている（請求項１）。
【００１１】
この構成によれば、モータのフィードバック制御系におけるゲインの逆数をウィービング変位の値に乗算し、それをウィービング動作を行わない場合の各関節における関節角度に加算し、これを各関節を駆動するモータの動作指令として各モータに与える。これにより、モータのフィードバック制御系におけるゲインが考慮された、ウィービング動作における適切な振幅を取得することができる。そのため、より正確な振幅でウィービング動作を行うことができる。
【００１２】
好ましい実施の形態によれば、前記サーボ制御定数は、前記サーボモータの位置制御の遅れ系を表す時定数であるとよい（請求項２）。
【００１３】
本願発明の第２の側面によって提供される溶接ロボット制御装置は、溶接ロボットの各関節に設けられた複数のサーボモータをフィードバック制御で駆動することにより、溶接軌道上を所定時間ごとに分割した補間点ごとに、溶接トーチをウィービング動作させつつアークを発生させて前記溶接ロボットに溶接を行わせる溶接ロボット制御装置であって、前記補間点ごとに、ウィービング動作しない場合の前記各関節の関節角度と、ウィービング動作する場合の前記各関節の関節角度との差を前記関節ごとにウィービング変位として算出するウィービング変位算出手段と、前記関節の軸まわりに発生するトルクを関節毎に算出する第１トルク算出手段と、前記補間点ごとに前記ウィービング動作をしない場合に発生するトルクを算出する第２トルク算出手段と、前記第１トルク算出手段によって算出された、前記関節の軸まわりに発生するトルクの値と、前記第２トルク算出手段によって算出された、前記ウィービング動作をしない場合に発生するトルクの値とを差し引き、その差し引いた値を、予め定められた各関節におけるばね定数で除算し、その除算した値を、前記ウィービング動作する場合の各関節の関節角度に加算することにより、前記補間点ごとに前記サーボモータに対する動作指令としての前記各関節の関節角度を算出する動作指令算出手段と、を備えることを特徴としている（請求項３）。
【００１４】
この構成によれば、関節の軸まわりに発生するトルクからウィービング動作を行わない場合に発生するトルクを差し引き、それを各関節のばね定数で除算して、除算した値をウィービング動作する場合の各関節の関節角度に加え、これを各関節に駆動するモータの動作指令として各モータに与える。これにより、アーム間に発生する干渉トルクによる減速機のたわみ量を用いて各モータに与える各関節の関節角度を補正することができる。そのため、適切な振幅を有するウィービング動作を行うことができる。
【００１５】
好ましい実施の形態によれば、前記第２トルク算出手段は、前記補間点ごとに、前記ウィービング動作の一周期毎に前記ウィービング動作の右端において発生するトルクと、前記ウィービング動作の左端において発生するトルクとの平均値を算出することにより、前記ウィービング動作をしない場合に発生するトルクを算出するとよい（請求項４）。
【００１６】
本願発明のその他の特徴及び利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【発明を実施するための最良の形態】
【００１７】
以下、本願発明の好ましい実施の形態を、添付図面を参照して具体的に説明する。
【００１８】
図１は、本願発明に係るロボット制御装置が適用されるロボット制御システムを示す構成図である。このロボット制御システムでは、溶接ロボットに設けられた溶接トーチによってワーク（被溶接物）に対して溶接が行われる。
【００１９】
ロボット制御システムは、溶接ロボット１０と、ロボット制御装置２０と、溶接電源装置３０とによって大略構成されている。
【００２０】
溶接ロボット１０は、ワークＷに対して例えばアーク溶接を自動で行うものである。溶接ロボット１０は、フロア等の適当な箇所に固定されるベース部材１１と、それに複数の軸を介して連結された複数のアーム１２と、複数のアーム１２の両端又は片端に設けられた複数の駆動モータ（サーボモータ）１３（一部図示略）とによって構成されている。
【００２１】
溶接ロボット１０には、最も先端側に設けられたアーム１２の先端部に、溶接トーチ１４が設けられている。溶接トーチ１４は、溶加材としての例えば直径１ｍｍ程度の溶接ワイヤ１５をワークＷの所定の溶接位置に導くものである。
【００２２】
溶接ロボット１０の上部には、ワイヤ送給装置１６が設けられている。ワイヤ送給装置１６は、溶接トーチ１４に対して溶接ワイヤ１５を送り出すためのものである。ワイヤ送給装置１６は、溶接ワイヤ１５が巻回された図示しないリールと、リールを回転させる送給モータ１７とによって構成され、送給モータ１７は、溶接電源装置３０によって回転駆動される。
【００２３】
ワイヤ送給装置１６には、溶接ワイヤ１５を案内するためのコイルライナ１９が接続され、コイルライナ１９の先端は、溶接トーチ１４に接続されている。これにより、ワイヤ送給装置１６によって送り出された溶接ワイヤ１５は、コイルライナ１９を介して溶接トーチ１４に導かれる。溶接ワイヤ１５は、溶接トーチ１４から外部に突出して消耗電極として機能する。すなわち、溶接電源装置３０によって溶接ワイヤ１５の先端とワークＷとの間にアークを発生させてその熱で溶接ワイヤ１５を溶融させることにより、ワークＷに対して溶接が施される。
【００２４】
駆動モータ１３は、ロボット制御装置２０からの駆動信号によって回転駆動され、この各駆動モータ１３が回転駆動されることにより、各アーム１２が変位し、結果的に溶接トーチ１４が上下前後左右に移動可能とされる。
【００２５】
さらに、本実施形態では、各駆動モータ１３が回転駆動されることにより、溶接トーチ１４のウィービング動作が行われる。ウィービング動作とは、上述したように、溶接トーチ１４を溶接進行方向に対して直交する方向に揺動させる動作をいう。本実施形態に係る溶接ロボット１０は、図１及び図２に示すように、複数の関節を有する多関節の溶接ロボットであり、これら複数の関節を複合動作させることにより、溶接トーチ１４が溶接進行方向に対して直交方向に揺動されるように制御される（図２の正弦波状の軌跡を参照）。なお、図２では、溶接ロボット１０が３自由度の場合を示している。
【００２６】
なお、駆動モータ１３には、図示しないエンコーダが設けられている。エンコーダの出力は、ロボット制御装置２０に与えられ、ロボット制御装置２０では、エンコーダの出力によって溶接トーチ１４の現在位置を認識するようになっている。
【００２７】
ロボット制御装置２０は、溶接ロボット１０の動作を制御するためのものである。ロボット制御装置２０は、予め記憶されている作業プログラム及び図示しないエンコーダからの現在位置情報等に基づいて、溶接ロボット１０の各駆動モータ１３を駆動制御して、溶接トーチ１４をワークＷの所定の溶接点に移動させる。また、ロボット制御装置２０は、各駆動モータ１３を駆動制御して、溶接トーチ１４を揺動させることにより、上記ウィービング動作を実行する。
【００２８】
溶接電源装置３０は、図示しない溶接電源を備えており、溶接電源は溶接トーチ１４とワークＷとの間に高電圧の溶接電圧を供給するものである。また、溶接電源装置３０は、所定のタイミングでワイヤ送給装置１６の送給モータ１７を駆動させる機能をも有している。
【００２９】
図３は、ロボット制御装置２０の内部構成及びその周辺装置を示すブロック図である。ロボット制御装置２０は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、タイマ（ＴＩＭＥＲ）２４、ハードディスク２５、ティーチングペンダントＩ／Ｆ２６、操作ボックスＩ／Ｆ２７、及びサーボドライバＩ／Ｆ２８を備えており、各部はバス（ＢＵＳ）３１によって相互に接続されている。
【００３０】
ティーチングペンダントＩ／Ｆ２６には、ティーチングペンダント３３が接続され、操作ボックスＩ／Ｆ２７には、操作ボックス３４が接続されている。また、サーボドライバＩ／Ｆ２８には、ロボット制御装置２０の内部に設けられた複数のサーボドライバ３５が接続され、サーボドライバ３５には、溶接ロボット１０に設けられた６つの駆動モータ１３がそれぞれ接続されている。
【００３１】
ＣＰＵ２１は、本ロボット制御装置２０の制御中枢となるものであり、予め定められた作業プログラム、ティーチングペンダント３３や操作ボックス３４からの操作信号、あるいは図示しないエンコーダからの現在位置情報等に基づいて、所定のデータ処理を行い、バス３１及びサーボドライバＩ／Ｆ２８を介してサーボドライバ３５に動作指令を与える。これにより、駆動モータ１３が回転駆動され、溶接トーチ１４が移動される。
【００３２】
ＲＡＭ２２は、ＣＰＵ２１に対して作業領域を提供するものであり、計算データ等を一時的に記憶する。ＲＡＭ２２は、例えば後述する動作命令バッファ４１、軌道バッファ４２、補間点バッファ４３、又は関節補間点バッファ４４として機能する。
【００３３】
ＲＯＭ２３は、溶接ロボット１０の動作（衝突検出、停止処理等を含む）が定められた作業プログラム、この作業プログラムの実行条件を示すデータ、制御定数を示すデータ等を格納するものである。
【００３４】
ハードディスク２５は、溶接ロボット１０の溶接作業が表された教示データを格納するものである。
【００３５】
タイマ２４は、予め定められた定期時刻ごとに同期信号をＣＰＵ２１に対して発生するものである。同期信号は、ＣＰＵ２１がサーボドライバ３５に対して動作指令信号を出力する際の更新タイミングとして用いられる。
【００３６】
ティーチングペンダントＩ／Ｆ２６は、ティーチングペンダント３３とのインターフェースを司るものである。ティーチングペンダント３３は、例えば表示装置３３ａとキーボード３３ｂとを有し、溶接ロボット１０の動作を手動で行う際にユーザによって操作されるものである。ＣＰＵ２１は、このティーチングペンダント３３からの操作信号を受け取ることにより所定のデータ処理を行うとともに、ティーチングペンダント３３に対して表示データを送ることにより、操作情報を表示させる。
【００３７】
操作ボックスＩ／Ｆ２７は、操作ボックス３４とのインターフェースを司るものである。操作ボックス３４は、自動運転モード又は手動モードの選択、起動、開始、停止等の各種操作をユーザによって可能にするものである。ＣＰＵ２１は、この操作ボックス３４からの操作信号を受け取ることにより所定のデータ処理を行う。
【００３８】
サーボドライバＩ／Ｆ２８は、サーボドライバ３５とのインターフェースを司るものである。サーボドライバ３５は、ＣＰＵ２１からの動作指令信号に基づいて、６つの駆動モータ１３をそれぞれ駆動制御するものである。
【００３９】
図４は、ＣＰＵ２１及びＲＡＭ２２の実際的な機能をブロックにして表した場合の構成図である。
【００４０】
ＣＰＵ２１の機能としては、動作命令読み出し部３６、軌道生成部３７、補間点生成部３８、関節補間点生成部３９、及びサーボ出力部４０によって表され、ＲＡＭ２２の機能としては、動作命令バッファ４１、軌道バッファ４２、補間点バッファ４３、及び関節補間点バッファ４４によって表される。なお、各バッファ４１〜４４は、ＦＩＦＯ（first-in first-out）バッファとして構成されており、先入れ及び先出しでデータが処理される。
【００４１】
動作命令読み出し部３６は、ハードディスク２５に記憶される教示データから、溶接ロボット１０の動作命令に関する情報（例えば座標、速度情報等のデータからなる軌道命令）を読み出し、動作命令バッファ４１に格納する。
【００４２】
軌道生成部３７は、動作命令バッファ４１から動作命令に関する情報（動作命令コマンド）を読み出し、それに基づいて溶接ロボット１０の溶接トーチ１４の作業軌道を三次元空間の直交座標上で計画する。軌道生成部３７は、計画された軌道データを軌道バッファ４２に格納する。
【００４３】
補間点生成部３８は、軌道バッファ４２から軌道データを読み出し、その軌道データを、「補間周期」と呼称される所定時間毎に分割する。そして、補間周期毎に直交座標によって表される、溶接トーチ１４が到達すべき位置、姿勢を示す補間点データを算出する。すなわち、軌道データは、溶接開始点から溶接終了点に至る溶接トーチ１４の移動軌跡を複数の教示点によって表すとともに、教示点間の溶接トーチ１４の移動方法を直線移動や円弧移動によって定義したものである。補間点生成部３８は、隣接する教示点間において溶接トーチ１４が通過すべき点とその点における溶接トーチ１４の姿勢等のデータを補間周期毎に補間している。補間点生成部３８は、算出した補間点データを補間点バッファ４３に格納する。
【００４４】
関節補間点生成部３９は、溶接トーチ１４の到達位置、姿勢を示す補間点データを、溶接ロボット１０の各関節における関節角度を示すデータに逆変換する演算を行い、それを関節補間点バッファ４４に一時的に記憶する。なお、本実施形態の特徴であるウィービング動作は、主にこの関節補間点生成部３９において実現されるようになっている。
【００４５】
関節補間点バッファ４４に格納された、溶接ロボット１０の各関節における関節角度を示すデータは、タイマ２４によって発生される同期信号ＳＹＮＣに同期してサーボ出力部４０に通知される。そして、上記関節角度を示すデータは、サーボ出力部４０から所定のタイミングでサーボドライバＩ／Ｆ２８を介してサーボドライバ３５へ各関節の位置指令（駆動モータ１３に対する動作指令）として出力される。
【００４６】
図５は、サーボドライバ３５によるサーボ制御の概念を示すブロック図である。この図によると、溶接ロボット１０の各関節における位置指令は、位置制御ブロック５１に入力され、位置制御ブロック５１の出力は、速度制御ブロック５２に入力される。速度制御ブロック５２の出力は、電流制御ブロック５３に入力され、電流制御ブロック５３の出力は、駆動モータ１３に入力される。駆動モータ１３の出力は、例えば減速器からなる減速機構のばね要素ブロック５４を介して、負荷としてのアーム１２に与えられる。
【００４７】
駆動モータ１３には、電流検出ブロック５５が接続され、電流検出ブロック５５において駆動モータ１３に流れる電流が検出され、その値は電流制御ブロック５３にフィードバックされる。また、駆動モータ１３には、エンコーダ５６が接続され、エンコーダ５６によって現在の回転速度（アームの移動速度に対応）のデータが取得され、その回転速度データは、位置制御ブロック５１と速度制御ブロック５２にフィードバックされる。
【００４８】
位置制御ブロック５１では、フィードバックされた回転速度データが積分ブロック５７によって積分されることにより位置データに変換されて減算器６１に入力され、この減算器６１により位置指令（関節角度）に対する現在の位置（関節角度）の誤差データが演算される。この誤差データは増幅器５８により所定のゲインＫｐｐ（以下、位置フィードバックゲインという。）でレベル補正が行なわれた後、加算器６２に入力される。
【００４９】
また、位置制御ブロック５１では、溶接ロボット１０の各関節における位置指令のデータは、微分ブロック５９によって微分されることにより速度データに変換され、さらに増幅器６０により所定のゲインＫｆｆ（以下、速度フィードフォワードゲインという。）でレベル補正が行なわれた後、加算器６２に入力される。加算器６２では速度フィードフォワードゲインＫｆｆから出力される速度データと、位置フィードバックゲインＫｐｐから出力される誤差データとが加算されて、上述した速度制御ブロック５２に出力される。
【００５０】
このように、溶接ロボット１０の各関節における位置指令に対して駆動モータ１３の動作をフィードバック制御させることにより、予め教示された教示データの再生動作をより正確に行うことができる。
【００５１】
次に、本実施形態に係るウィービング動作に関する作用について、図６に示すフローチャート及び図７に示す基準座標系とツール座標系との関係を示す図を参照して説明する。
【００５２】
本実施形態における特徴的なウィービング動作に関する制御は、主に関節補間点生成部３９（図４参照）において実行される。すなわち、ステップＳ１において、関節補間点生成部３９は、補間点バッファ４３から補間点データＩＰｉを読み出す。ここで、補間点データＩＰｉとは、溶接開始位置から目標位置（溶接終了位置）に達するまでの間に存在する、溶接トーチ１４の先端が移動すべき位置（溶接すべき位置を含む）、及びその位置における溶接トーチ１４の姿勢を表したデータである。
【００５３】
なお、溶接ロボット１０には、各関節を制御するための座標系として図７に示すように、基準座標系とツール座標系とが設定されている。基準座標系は、溶接ロボット１０の設置位置に固定的に設定されている。一方、ツール座標系は、溶接トーチ１４の先端（ツールセンタポイント）に設定されたもので、溶接トーチ１４の移動に伴って移動する。すなわち、ツール座標系の原点位置の基準座標系における位置は、溶接トーチ１４の移動によって変化する。
【００５４】
補間点データＩＰｉは、溶接ロボット１０の基準座標系（図７参照）から見た溶接トーチ１４の位置及び姿勢、すなわち、ツール座標系の位置、姿勢を、基準座標系の座標値に変換して表したものである。補間点データＩＰｉは、以下に示す行列式で表される。
【００５５】
【数１】
2006059037.tif 000003
【００５６】
ここで、ｘｉは基準座標系から見たツール座標系原点のＸ座標位置（ｍｍ）を示し、ｙｉは基準座標系から見たツール座標系原点のＹ座標位置（ｍｍ）を示し、ｚｉは基準座標系から見たツール座標系原点のＺ座標位置（ｍｍ）を示し、ａｉは基準座標系から見たツール座標系のＸ軸の回転姿勢（ｒａｄ）を示し、ｂｉは基準座標系から見たツール座標系のＹ軸の回転姿勢（ｒａｄ）を示し、ｃｉは基準座標系から見たツール座標系のＺ軸の回転姿勢（ｒａｄ）を示す。
【００５７】
次いで、ステップＳ２において、関節補間点生成部３９は、ウィービング動作を行わない場合の溶接ロボット１０の各関節における関節角度ＡＮＧｏｒｇを算出する。具体的には、直交座標によって表され、溶接トーチ１４の到達位置及び姿勢を表す補間点データＩＰｉを、溶接ロボット１０の各関節における関節角度を示すデータに逆変換する。そして、溶接ロボット１０の各関節における関節角度を示すデータをＲＡＭ２２（関節補間点バッファ４４）に記憶する。なお、多関節溶接ロボットの逆演算アルゴリズムは、プレイバックティーチングシステムで一般的に用いられる技術であるため、ここでは詳細な説明は省略する。ウィービング動作を行わない場合の溶接ロボット１０の各関節における関節角度ＡＮＧｏｒｇは、以下に示す行列式で表される。
【００５８】
【数２】
2006059037.tif 000004
【００５９】
ここで、ｎは溶接ロボット１０の関節数を示し、ＡＮＧｏｒｇ１は溶接ロボット１０の第１関節の関節角度（ｒａｄ）を示し、ＡＮＧｏｒｇ２は溶接ロボット１０の第２関節の関節角度（ｒａｄ）を示し、ＡＮＧｏｒｇｎは溶接ロボット１０の第ｎ関節の関節角度（ｒａｄ）を示す。
【００６０】
次に、ステップＳ３において、関節補間点生成部３９は、ウィービング動作を行う場合の溶接ロボット１０の各関節における関節角度ＡＮＧｗｖを算出する。具体的には、直交座標によって表され、溶接トーチ１４の到達位置及び姿勢を表す補間点データＩＰｉにウィービング変位を加味し、それを溶接ロボット１０の各関節における関節角度を示すデータに逆変換する。そして、それをＲＡＭ２２（関節補間点バッファ４４）に記憶する。ウィービング動作を行う場合の溶接ロボット１０の各関節における関節角度ＡＮＧｗｖは、以下に示す行列式で表される。
【００６１】
【数３】
2006059037.tif 000005
【００６２】
ここで、ｎは溶接ロボット１０の関節数を示し、ＡＮＧｗｖ１は溶接ロボット１０の第１関節の関節角度（ｒａｄ）を示し、ＡＮＧｗｖ２は溶接ロボット１０の第２関節の関節角度（ｒａｄ）を示し、ＡＮＧｗｖｎは溶接ロボット１０の第ｎ関節の関節角度（ｒａｄ）を示す。
【００６３】
次いで、ステップＳ４において、ウィービング動作を行わない場合の溶接ロボット１０の各関節における関節角度ＡＮＧｏｒｇと、ウィービング動作を行う場合の溶接ロボット１０の各関節における関節角度ＡＮＧｗｖとの差分を求める。そして、その差分を、関節毎のウィービング変位ＡＮＧａｍｐとして、ＲＡＭ２２（関節補間点バッファ４４）に記憶する。
【００６４】
図８は、ウィービング動作を行わない場合の補間点（白丸参照）と、ウィービング動作を行う場合の補間点（黒丸参照）との違いを示した図である。この図の例では、サイン波形のウィービングパターンが溶接進行に対して重畳されている形となっている。なお、ウィービングパターンの生成方法は、公知技術であるため、ここではその説明を省略する。溶接ロボット１０の関節毎のウィービング変位ＡＮＧａｍｐは、以下に示す行列式で表される。
【００６５】
【数４】
2006059037.tif 000006
【００６６】
ここで、ｎは溶接ロボット１０の関節数を示し、ＡＮＧａｍｐ１は溶接ロボット１０の第１関節の関節角度（ｒａｄ）を示し、ＡＮＧａｍｐ２は溶接ロボット１０の第２関節の関節角度（ｒａｄ）を示し、ＡＮＧａｍｐｎは溶接ロボット１０の第ｎ関節の関節角度（ｒａｄ）を示す。そして、ＡＮＧａｍｐ１、ＡＮＧａｍｐ２、及びＡＮＧａｍｐｎは、それぞれ次式で表される。
【００６７】
【数５】
2006059037.tif 000007
【００６８】
次に、ステップＳ５において、溶接ロボット１０の各関節を駆動する駆動モータ１３のサーボ制御定数と、予め指定されたウィービング周波数とに基づいて、フィードバック制御系における各駆動モータ１３のゲインＧＡＩＮを算出する。ゲインＧＡＩＮは、以下に示す行列式で表される。
【００６９】
【数６】
2006059037.tif 000008
【００７０】
ここで、ｎは溶接ロボット１０の関節数を示し、ＧＡＩＮ１は溶接ロボット１０の第１関節のゲイン（無次元）を示し、ＧＡＩＮ２は溶接ロボット１０の第２関節のゲイン（無次元）を示し、ＧＡＩＮｎは溶接ロボット１０の第ｎ関節のゲイン（無次元）を示す。
【００７１】
以下、例えば溶接ロボット１０の第ｊ関節についてのゲインＧＡＩＮを求める手順を説明する。
【００７２】
駆動モータ１３のゲインの求め方は、サーボ制御方法や、サーボ演算の仕方によって異なるが、ここでは図５に示したような一般的な位置フィードバックと速度フィードフォワードとの２自由度制御系を例にとって説明する。なお、図５に示す例では、速度ループや電流ループのフィードバック制御系をも含めているが、サーボによる遅れ系は位置ループが支配的な役割を示しており、ここでは速度ループや電流ループは不要として考える。
【００７３】
第ｊ関節を駆動する駆動モータ１３の位置フィードバックゲインＫｐｐｊと、速度フィードフォワードゲインＫｆｆｊは、サーボ制御で一般に用いられる値であり既知の値である。これらのゲインＫｐｐｊやゲインＫｆｆｊは、溶接ロボット１０の姿勢や動作モードによりその値が変更されることが多いが、その変更指令は、ロボット制御装置２０のＣＰＵ２１から発せられるものであるため、関節補間点生成部３９においても読み取り可能な値である。
【００７４】
まず、位置フィードバックゲインＫｐｐｊと速度フィードフォワードゲインＫｆｆｊとを用いて、第ｊ関節を駆動する駆動モータ１３の位置制御の遅れ系を表す時定数ＴＳｊ（ｓｅｃ）を、以下の式によって算出する。この場合、時定数ＴＳｊは、駆動モータ１３のサーボ制御定数として位置付けされる。
【００７５】
【数７】
2006059037.tif 000009
【００７６】
次いで、予め定められたウィービング周波数ＦＲＱと時定数ＴＳｊとに基づいて、第ｊ関節のゲインＧＡＩＮｊを以下の式によって算出する。
【００７７】
【数８】
2006059037.tif 000010
【００７８】
ここで、ＧＡＩＮｊは、第ｊ関節を駆動するモータのゲイン [無次元]を示し、ウィービング周波数ＦＲＱは、教示されたウィービング周波数（Ｈｚ）を示す。なお、ティーチングプレイバックシステムを採用する溶接ロボット１０において、ウィービング周波数ＦＲＱは、予め教示されるデータであり、溶接ロボット１０の教示位置と同様に、ハードディスク２５（図３参照）に記憶され、再生動作時に読み出されるものである。
【００７９】
上式を用いて、例えばｊを１からｎ（ｎは溶接ロボット１０の関節数）まで変化させることで、溶接ロボット１０の全関節におけるゲインＧＡＩＮを算出する。
【００８０】
次に、ステップＳ６において、溶接ロボット１０の各関節における位置指令（駆動モータ１３に対する動作指令）として、溶接ロボット１０の各関節における補正後の関節角度ＡＮＧｃｏｍｐを算出する。具体的には、ゲインＧＡＩＮｊの逆数をウィービング変位ＡＮＧａｍｐに関節毎に乗じる。乗じた後の値を、ウィービング動作を行わない場合の溶接ロボット１０の各関節における関節角度ＡＮＧｏｒｇに加算する。溶接ロボット１０の各関節における補正後の関節角度ＡＮＧｃｏｍｐは、以下に示す行列式で表される。
【００８１】
【数９】
2006059037.tif 000011
【００８２】
ここで、ｎは溶接ロボット１０の関節数を示し、ＡＮＧｃｏｍｐ１は溶接ロボット１０の第１関節の補正後の関節角度（ｒａｄ）を示し、ＡＮＧｃｏｍｐ２は溶接ロボット１０の第２関節の補正後の関節角度（ｒａｄ）を示し、ＡＮＧｃｏｍｐｎは溶接ロボット１０の第ｎ関節の補正後の関節角度（ｒａｄ）を示す。そして、ＡＮＧｃｏｍｐ１、ＡＮＧｃｏｍｐ２、及びＡＮＧｃｏｍｐｎは、それぞれ次式で表される。
【００８３】
【数１０】
2006059037.tif 000012
【００８４】
ここで、ＧＡＩＮ１は、第１関節を駆動する駆動モータ１３のゲインを示し、ＧＡＩＮ２は、第１関節を駆動する駆動モータ１３のゲインを示し、ＧＡＩＮｎは、第ｎ関節を駆動する駆動モータ１３のゲインを示す。
【００８５】
このように、駆動モータ１３のフィードバック制御系におけるゲインＧＡＩＮの逆数をウィービング変位ＡＮＧａｍｐの値に乗算し、それをウィービング動作を行わない場合の溶接ロボット１０の各関節における関節角度ＡＮＧｏｒｇに加算し、これを溶接ロボット１０の各関節における位置指令として、各駆動モータ１３に与える。これにより、駆動モータ１３のフィードバック制御系におけるゲインＧＡＩＮが考慮された、ウィービング動作における適切な振幅を取得することができる。したがって、より正確な振幅でウィービング動作を行うことができる。
【００８６】
ところで、上記した多関節溶接ロボットにおけるウィービング動作では、溶接ロボットの関節間に発生する干渉トルクによって、駆動モータ１３とアーム１２とを連結する図示しない減速機がたわむことがあり、各軸において本来回転すべき量（角度）が正確に得られないことがある。そのため、予め教示された、ウィービング動作における振幅が遵守できないといった問題があった。
【００８７】
しかしながら、以下に示すように、ウィービング動作における減速機のたわみ量を求め、それに基づいてウィービング動作を行う場合の溶接ロボット１０の各関節における関節角度を補正するようにすれば、正確な振幅を有するウィービング動作を行うことができる。以下、詳述する。
【００８８】
図９は、この実施形態に係る作用を説明するためのフローチャートである。このフローチャートに係る処理は、上記した実施形態と同様、関節補間点生成部３９によって主に実施されるものである。なお、図９に示すステップＳ１１〜ステップＳ１４の処理は、図６に示したステップＳ１〜ステップＳ４と同様であるため、以下ではそれらの説明を省略し、ステップＳ１５〜Ｓ１７について説明する。
【００８９】
ステップＳ１５において、溶接ロボット１０の関節の軸まわりに発生するトルクＴＲＱｊを関節毎に求める。より具体的には、溶接ロボット１０の機構パラメータ（関節に連結されるアーム１２の重心位置、質量、慣性テンソル、長さ）、溶接ロボット１０の関節位置ＡＮＧｗｖｊ、関節角速度ＶＥＬｗｖｊ、及び関節角加速度ＡＣＣｗｖｊを用いて逆動力学演算を行うことにより、上記トルクＴＲＱｊを求める。なお、トルクＴＲＱｊ、関節位置ＡＮＧｗｖｊ、関節角速度ＶＥＬｗｖｊ、及び関節角加速度ＡＣＣｗｖｊにおける添え字ｊは、溶接ロボット１０の関節番号を表すものである。
【００９０】
一般に、各関節に発生するトルクは、溶接ロボット１０の機構パラメータ（関節に連結されるアーム１２の重心位置、質量、慣性テンソル、長さ）と、各関節の位置、角速度、角加速度とに基づいて、次式による演算によって求められることが知られており、これを「逆動力学モデル」という。
【００９１】
【数１１】
2006059037.tif 000013
【００９２】
ここで、上式の各項は、表１に示す意味を有する。
【００９３】
【表１】
2006059037.tif 000014
【００９４】
上記(1) 式に示した逆動力学モデルは、慣性行列Ｈ、粘性行列Ｃ及び重力行列Ｇから構成され、溶接ロボット１０の関節数がｎの場合、慣性行列Ｈは、ｎ×ｎの対称行列で表され、溶接ロボット１０の各関節の角加速度により関節自身に発生するトルク、及び他の関節の角加速度により発生する干渉トルクを示すものである。粘性行列Ｃは、ｎ×１行列で表され、溶接ロボット１０の各関節の角速度により生じる遠心力、及びコリオリ力から成るトルクを示すものである。重力行列Ｇは、ｎ×３行列で表され、重力加速度の影響により発生するトルクを示すものである。
【００９５】
ここで、溶接ロボット１０の機構パラメータは、表２に示す４つの項目から構成される。なお、表２中の個数は、関節に連結されるアーム１つあたりの値である。
【００９６】
【表２】
2006059037.tif 000015
【００９７】
なお、慣性テンソルＩは、物体（例えば溶接ロボット１０のアーム１２）の回転し難さを示すのに一般的に用いられ、公知の通り、表２中の３×３の対称行列で表される。そして、その対角成分は溶接ロボット１０の各関節の慣性モーメントＩｘ，Ｉｙ，Ｉｚを、その他の成分は慣性乗積Ｉｘｙ，Ｉｙｚ，Ｉｚｘの負の値を表す。
【００９８】
また、慣性モーメントＩｘ，Ｉｙ，Ｉｚは、物体の回り難さ及び止め難さを表すものであり、例えば次式により求められる。
【００９９】
【数１２】
2006059037.tif 000016
【０１００】
さらに、慣性乗積Ｉｘｙ，Ｉｙｚ，Ｉｚｘは、物体が回転運動を行っているとき、その運動を乱すモーメントを表すものであり、次式により求められる。
【０１０１】
【数１３】
2006059037.tif 000017
【０１０２】
ここで、ｄｍは微小体積の質量を示す。なお、式中のｘ，ｙ，ｚは、所定のリンク座標系を基準として表される。基本的なリンク座標系について、図１０及び図１１を参照して説明すると、例えば、第２関節と第３関節との間に伸張する第２リンクＬ２（アームに相当）においては、第２関節の回転中心を原点として、第２関節に割り当てられるリンク座標が定められ、そのｘ方向は第２リンクＬ２の長さの方向であり、ｚ方向は第２関節の回転方向であり、ｙ方向は右手座標系の方向である。
【０１０３】
図１０及び図１１に示した第２リンクＬ２の慣性テンソルＩの基準座標は、第２関節に割り当てられたリンク座標系を第２リンクＬ２の重心位置に移動したときの座標系とされる。他の関節についても同様に定義される。
【０１０４】
溶接ロボット１０の機構パラメータは、溶接ロボット１０の機構やアーム１２の形状及び材質から予め求めておくことが可能な既知の固定値である。そのため、各関節に発生するトルクＴＲＱｊは、各関節の関節位置ＡＮＧｗｖｊ、関節速度ＶＥＬｗｖｊ、及び関節加速度ＡＣＣｗｖｊに基づいて演算により求めることができる。
【０１０５】
すなわち、慣性行列Ｈ、粘性行列Ｃ及び重力行列Ｇの演算方法については、公知であるため、ここでの詳細な説明は省略する。例えば溶接ロボット１０が３つの関節からなる場合、慣性行列Ｈ、粘性行列Ｃ、及び重力行列Ｇは、以下の式で表される。
【０１０６】
【数１４】
2006059037.tif 000018
【０１０７】
上記の各式の各構成要素は、表２に示した機構パラメータ、関節位置θ、関節速度θｄのみから構成され、θ、θｄ以外はすべて既知の値である。関節位置θには、ステップＳ１３（図９参照）において算出されたウィービング動作を行う場合の各関節の関節角度ＡＮＧｗｖを当て嵌めることができる。また、関節速度θｄには、補間周期毎に算出され、ウィービング動作を行う場合の各関節の関節角度ＡＮＧｗｖを一階微分することで算出される関節角速度ＶＥＬｗｖを当て嵌めることができる。したがって、ウィービング動作を行う場合の各関節における関節位置ＡＮＧｗｖ、及び関節角速度ＶＥＬｗｖをそれぞれθ、及びθｄに代入することにより、上記(1) 式中の慣性行列Ｈ、粘性行列Ｃ及び重力行列Ｇが算出される。θ、θｄ、及び関節角速度ＶＥＬｗｖは、次式で表される。
【０１０８】
【数１５】
2006059037.tif 000019
【０１０９】
ここで、ｎは溶接ロボット１０の関節数を示し、ＶＥＬｗｖ１は溶接ロボット１０の第１関節の関節角速度（ｒａｄ／ｓｅｃ）を示し、ＶＥＬｗｖ２は溶接ロボット１０の第２関節の関節角速度（ｒａｄ／ｓｅｃ）を示し、ＶＥＬｗｖｎは溶接ロボット１０の第ｎ関節の関節角速度（ｒａｄ／ｓｅｃ）を示す。
【０１１０】
式(1) 中の重力加速度ベクトルｇは、重力加速度が働く方向を示すベクトルであるから、これも溶接ロボット１０の設置姿勢より予め定めることができる。
【０１１１】
式(1) 中の関節加速度θｄｄは、補間周期毎に算出されるウィービング動作を行う場合の各関節の関節角度ＡＮＧｗｖを二階微分することで算出される関節加速度ＡＣＣｗｖを当て嵌めることができる。したがって、下式のように関節角加速度ＡＣＣｗｖを設定することにより、上記(1) 式で表される逆動力学モデルに基づいて、指定されたウィービング動作を実現するために各関節が発生すべきトルクＴＲＱを算出する。θｄｄ、及び関節角加速度ＡＣＣｗｖは、次式で表される。
【０１１２】
【数１６】
2006059037.tif 000020
【０１１３】
ここで、ｎは溶接ロボット１０の関節数を示し、ＡＣＣｗｖ１は溶接ロボット１０の第１関節の関節角加速度（ｒａｄ／ｓｅｃ2）を示し、ＡＣＣｗｖ２は溶接ロボット１０の第２関節の関節角加速度（ｒａｄ／ｓｅｃ2）を示し、ＡＣＣｗｖｎは溶接ロボット１０の第ｎ関節の関節角加速度（ｒａｄ／ｓｅｃ2）を示す。
【０１１４】
以上より、式(1) は、次式で表される。
【０１１５】
【数１７】
2006059037.tif 000021
【０１１６】
また、トルクＴＲＱは、次式で表される。
【０１１７】
【数１８】
2006059037.tif 000022
【０１１８】
ここで、ｎは溶接ロボット１０の関節数を示し、ＴＲＱ１は溶接ロボット１０の第１関節の発生トルク（Ｎ・ｍ）を示し、ＴＲＱ２は溶接ロボット１０の第２関節の発生トルク（Ｎ・ｍ）を示し、ＴＲＱｎは溶接ロボット１０の第ｎ関節の発生トルク（Ｎ・ｍ）を示す。
【０１１９】
上式により算出される各関節におけるトルクＴＲＱは、関節を加速するために必要なトルクだけでなく、他の関節における関節速度や関節加速度により受ける干渉トルクをも含んでいる。
【０１２０】
図１２は、補間周期毎に算出される、ウィービング動作する場合の関節角度ＡＮＧｗｖ、各関節における関節速度ＶＥＬｗｖ及び関節加速度ＡＣＣｗｖの関係を示す図である。
【０１２１】
次に、ステップＳ１６において、ウィービング動作１周期毎に発生するトルクの平均値を算出する。具体的には、図１３に示すように、ウィービング動作における右端点での発生トルクＴＲＱｒｊと、ウィービング動作における左端点での発生トルクＴＲＱｌｊとを算出し、さらにそれらの平均値を算出し、その平均値をウィービング動作を行わない場合に発生するトルクＴＲＱａｖｅｊとして、ＲＡＭ２２に記憶する。
【０１２２】
【数１９】
2006059037.tif 000023
【０１２３】
ここで、ｎは溶接ロボット１０の関節数を示し、ＴＲＱｒ１は溶接ロボット１０の第１関節の右端点におけるウィービング動作時の発生トルク（Ｎ・ｍ）を示し、ＴＲＱｒ２は溶接ロボット１０の第２関節の右端点におけるウィービング動作時の発生トルク（Ｎ・ｍ）を示し、ＴＲＱｒｎは溶接ロボット１０の第ｎ関節の右端点におけるウィービング動作時の発生トルク（Ｎ・ｍ）を示す。
【０１２４】
【数２０】
2006059037.tif 000024
【０１２５】
ここで、ｎは溶接ロボット１０の関節数を示し、ＴＲＱｌ１は溶接ロボット１０の第１関節の左端点におけるウィービング動作時の発生トルク（Ｎ・ｍ）を示し、ＴＲＱｌ２は溶接ロボット１０の第２関節の左端点におけるウィービング動作時の発生トルク（Ｎ・ｍ）を示し、ＴＲＱｌｎは溶接ロボット１０の第ｎ関節の左端点におけるウィービング動作時の発生トルク（Ｎ・ｍ）を示す。
【０１２６】
【数２１】
2006059037.tif 000025
【０１２７】
ここで、ｎは溶接ロボット１０の関節数を示し、ＴＲＱａｖｅ１は溶接ロボット１０の第１関節の平均トルク（Ｎ・ｍ）を示し、ＴＲＱａｖｅ２は溶接ロボット１０の第２関節の平均トルク（Ｎ・ｍ）を示し、ＴＲＱａｖｅｎは溶接ロボット１０の第ｎ関節の平均トルク（Ｎ・ｍ）を示す。
【０１２８】
そして、ＴＲＱａｖｅ１、ＴＲＱａｖｅ２、及びＴＲＱａｖｅｎは、それぞれ次式で表される。
【０１２９】
【数２２】
2006059037.tif 000026
【０１３０】
なお、上記では、ウィービング動作の１周期における平均トルクＴＲＱａｖｅを、ウィービング動作の左右端点における平均を算出することによって求めたが、この方法に代えて、１周期内の全サンプリング点の平均を算出することにより求めるようにしてもよい。
【０１３１】
次に、ステップＳ１７において、ウィービング動作により発生するトルクによって生じる、駆動モータ１３とアーム１２とを連結する図示しない減速機のたわみ量を、ウィービング動作における振幅が変化する量として算出し、それを用いてウィービング動作を行う場合の溶接ロボット１０の各関節における関節角度を補正する。
【０１３２】
具体的には、減速機のたわみ量は、先に算出した各関節に発生するトルクＴＲＱから、ウィービング動作の１周期における平均トルクＴＲＱａｖｅを差し引くことで、ウィービング動作によって発生したトルクを抽出し、この値を、溶接ロボット１０の各関節におけるばね定数Ｋｊで除算することにより算出する。
【０１３３】
そして、このたわみ量を、ウィービング動作を行う場合の溶接ロボット１０の各関節における関節角度ＡＮＧｗｖに加算することにより、それを溶接ロボット１０の各関節における位置指令（駆動モータ１３に対する動作指令）として、溶接ロボット１０の各関節における補正後の関節角度ＡＮＧｃｏｍｐｊを算出する。補正後の関節角度ＡＮＧｃｏｍｐｊ、及びばね定数Ｋは、次式で表される。
【０１３４】
【数２３】
2006059037.tif 000027
【０１３５】
ここで、ｎは溶接ロボット１０の関節数を示し、Ｋ１は溶接ロボット１０の第１関節のばね定数（ｒａｄ／Ｎ・ｍ）を示し、Ｋ２は溶接ロボット１０の第２関節のばね定数（ｒａｄ／Ｎ・ｍ）を示し、Ｋｎは溶接ロボット１０の第ｎ関節のばね定数（ｒａｄ／Ｎ・ｍ）を示す。上記ばね定数Ｋは、使用する減速機に基づいて既知とすることが可能な定数であり、事前にハードディスク２５内に記憶される。
【０１３６】
このように、関節の軸まわりに発生するトルクＴＲＱからウィービング動作を行わない場合に発生するトルクＴＲＱａｖｅを差し引き、それを各関節のばね定数Ｋで除算して、除算した値をウィービング動作を行う場合の各関節の関節角度ＡＮＧｗｖに加え、これを各関節に駆動する駆動モータ１３の動作指令として各駆動モータ１３に与える。これにより、アーム１２間に発生する干渉トルクによる図示しない減速機のたわみ量を用いて各駆動モータ１３に与える各関節の関節角度ＡＮＧｗｖを補正することができる。そのため、適切な振幅を有するウィービング動作を行うことができる。
【０１３７】
もちろん、この発明の範囲は上述した実施の形態に限定されるものではない。
【図面の簡単な説明】
【０１３８】
【図１】本願発明に係るロボット制御装置が適用されるロボット制御システムを示す構成図である。
【図２】ウィービング動作を説明するための図である。
【図３】ロボット制御装置の内部構成及びその周辺装置を示すブロック図である。
【図４】ＣＰＵ及びＲＡＭの実際的な機能をブロックにして表した場合の構成図である。
【図５】サーボドライバによるサーボ制御の概念を示すブロック図である。
【図６】ウィービング動作における作用を説明するためのフローチャートである。
【図７】溶接ロボットの基準座標系とツール座標系との関係を示す図である。
【図８】ウィービング動作を行わない場合の補間点と、ウィービング動作を行う場合の補間点との違いを示した図である。
【図９】ウィービング動作における他の作用を説明するためのフローチャートである。
【図１０】溶接ロボットにおけるリンク及び関節の関係を示す図である。
【図１１】第２リンクと第２関節のリンク座標系の関係を示す図である。
【図１２】ウィービング動作する場合の関節角度、各関節における関節速度及び関節加速度の関係を示す図である。
【図１３】ウィービングパターンと時間との関係を示す図である。
【符号の説明】
【０１３９】
１０  溶接ロボット
１２  アーム
１３  駆動モータ
１４  溶接トーチ
１５  溶接ワイヤ
２０  ロボット制御装置
２１  ＣＰＵ
２２  ＲＡＭ
３０  溶接電源装置
３５  サーボドライバ
３９  関節補間点生成部
４４  関節補間点バッファ
５１  位置制御ブロック
５８  位置フィードバックゲイン
Ｗ  ワーク（被溶接物）
【図１】
2006059037.tif 000028
【図２】
2006059037.tif 000029
【図３】
2006059037.tif 000030
【図４】
2006059037.tif 000031
【図５】
2006059037.tif 000032
【図６】
2006059037.tif 000033
【図７】
2006059037.tif 000034
【図８】
2006059037.tif 000035
【図９】
2006059037.tif 000036
【図１０】
2006059037.tif 000037
【図１１】
2006059037.tif 000038
【図１２】
2006059037.tif 000039
【図１３】
2006059037.tif 000040