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