【手続補正書】
【提出日】平成21年2月4日(2009.2.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】溶接ロボット制御装置
【技術分野】
【０００１】
本願発明は、ワークに対して溶接を行う溶接ロボットの制御装置に関するものである。
【背景技術】
【０００２】
従来、ワークに対して溶接を行う多関節溶接ロボットにおいては、ウィービング動作と呼称される動作を行うものがある。ウィービング動作とは、図１０に示すように、予め記憶された作業プログラムによって溶接ロボット１００の各アーム１０１の駆動モータ１０２をサーボ制御によって回転駆動させることにより、溶接トーチ１０３の先端を溶接進行方向に対して直交する方向に揺動させる動作をいう。
【０００３】
このウィービング動作では、ティーチングプレイバック方式に基づいて溶接部の形状に沿って溶接トーチ１０３が直線補間動作又は円弧補間動作を行いつつ、溶接トーチ１０３のツールセンタポイント（ＴＣＰ）１０３ａを、予め教示された振幅、周期及び波形に基づいて移動させる。このウィービング動作が行われることによって、良好でかつ確実な溶接を実現することができる。
【０００４】
ウィービング中の溶接トーチのＴＣＰ位置は、教示点間を補間して得た主軌道上の各補間点に対して進行方向座標系を定義し、その座標系で算出されるウィービング変位を溶接ロボットの設置位置に定義される基本座標系における各補間点の座標に加算することで決定される。例えば、図１１に示すように、教示点Ｑ１，Ｑ２間をｒ個の補間点Ｐ１，Ｐ２，…Ｐｒで直線補間する場合、例えば、補間点Ｐ１における溶接トーチ１０３のＴＣＰ位置は、補間点Ｐ１に進行方向座標系（ｎ，ｏ，ａ）を定義し、例えばｏ方向が溶接面に沿う方向であるとすると、当該ｏ方向にウィービング変位Ｈだけ移動した点Ｐｗ１がウィービング中の溶接トーチ１０３のＴＣＰ位置になる。なお、図１１において、ｔが溶接トーチ１０３の軸方向の単位ベクトルとすると、ａはＱ１Ｑ２方向の単位ベクトル、ｏはｔとａに対して垂直方向の単位ベクトル、ｎはｏとａに対して垂直方向の単位ベクトルである。
【０００５】
ところで、図１１に示すように教示点Ｑ２がウィービング終了点の場合、教示点Ｑ２におけるウィービング変位Ｈが０になることは稀なので、溶接トーチ１０３のウィービング後のＴＣＰ位置Ｑｗ２は主軌道から離れた点となることが多い。従来は、次の作業の開始点（すなわち、教示点Ｑ２）に溶接トーチのＴＣＰ位置を合わせるために、ウィービング溶接作業の終わりに、溶接をさせながら教示点Ｑ２におけるウィービング後のＴＣＰ位置Ｑｗ２から主軌道上の教示点Ｑ２に直線で移動させる処理が行われていた。このため、教示点の間隔やウィービング条件（振幅、周期）により、ウィービング終了点Ｑ２付近での溶接ビードの形状がまちまちとなり、溶接品質悪化の原因となっていた。
【０００６】
従来、教示点Ｑ１Ｑ２間の主軌道Ｌのウィービング終了点Ｑ２におけるウィービング変位を０にすることにより、点Ｑ２において、溶接トーチ１０３のＴＣＰ位置を一致させる方法が提案されている。
【０００７】
例えば、特開平５−５７６４２号公報にはウィービング周波数を変更することで、主軌道のウィービング終了点でのウィービング変位を０にするよう調整する方法が提案されている。また、特開平６−８７０７６号公報にはウィービング周期が主軌道のウィービング終了点で終了するように溶接速度を変化して、当該主軌道の終了点でのウィービング変位を０にするよう調整する方法が提案されている。
【０００８】
【特許文献１】特開平５−５７６４２号公報
【特許文献２】特開平６−８７０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来の方法では教示点間距離の違いによりウィービング周波数や溶接速度が変化することになり、教示されたウィービング周波数（周期）や溶接速度を実現することができない。また、溶接区間により溶接条件が変化することになるから、溶接ビード形状の不均一の要因となり、溶接品質上問題となる。
【００１０】
従って、ウィービング周期及び溶接速度を教示されたものからできるだけ変化させることなく、しかも、ウィービング終了点における溶接トーチのＴＣＰ位置を教示された終了点に一致させる方法が望まれるが、従来、このような方法は提案されていない。
【００１１】
本願発明は、上記した事情のもとで考え出されたものであって、ウィービング終了点近傍を除くウィービング区間では教示されたウィービング周期及び溶接速度を維持し、ウィービング終了点ではウィービング変位を０とする溶接作業を行うように制御できる溶接ロボット制御装置を提供することをその課題としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本願発明では、次の技術的手段を講じている。
【００１３】
多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成された主軌道上に、多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の変位を第１のウィービング周期に基づいて設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながらウィービング終了点まで移動させる溶接ロボット制御装置であって、前記ウィービング終了点までの残り時間を算出する残時間算出手段と、前記ウィービング終了点における前記変位が０になる第２のウィービング周期を算出するウィービング周期算出手段と、前記残時間算出手段により算出される残り時間が所定の残り時間になったときに、前記第１のウィービング周期を前記ウィービング周期算出手段により算出される前記第２のウィービング周期に変更するウィービング周期変更手段とを備えたことを特徴とする（請求項１）。
【００１４】
このような構成によれば、ウィービング終了点までの残り時間が所定の時間になれば、以降はウィービング終了点におけるウィービング変位が０になるようなウィービング周期を用いるので、ウィービング終了時に溶接トーチのＴＣＰ位置をウィービング終了点に一致させることができる。
【００１５】
また、請求項１に記載の溶接ロボット制御装置において、前記ウィービング周期変更手段は、更に前記変位が所定の値になったときのみ、前記第１のウィービング周期を前記ウィービング周期算出手段により算出される前記第２のウィービング周期に変更することを特徴とする（請求項２）。
【００１６】
このような構成によれば、ウィービング周期を変更する時期をウィービング終了点までの残り時間だけでなく、ウィービング変位によっても決めることができる。すなわち、ウィービング周期を変更する時期を溶接トーチのＴＣＰ位置がウィービング端点にあるときや主軌道上にあるときに限定することができる。
【００１７】
また、請求項２に記載の溶接ロボット制御装置において、前記ウィービング周期変更手段は、前記変位が最大値または最小値のときであり前記残り時間が前記所定の残り時間以下になったときに前記第１のウィービング周期を前記ウィービング周期算出手段により算出される前記第２のウィービング周期に変更することを特徴とする（請求項３）。
【００１８】
このような構成によれば、溶接トーチのＴＣＰ位置がウィービング端点にあるときでウィービング終了点までの残り時間が所定の時間以内であるときにウィービング周期を変更することができる。
【００１９】
また、請求項３に記載の溶接ロボット制御装置において、前記ウィービング周期変更手段は、前記変位が最大値または最小値のときであり前記残り時間が前記第１のウィービング周期の３／４より短いときに前記第１のウィービング周期を前記ウィービング周期算出手段により算出される前記第２のウィービング周期に変更することを特徴とする（請求項４）。
【００２０】
このような構成によれば、ウィービング周期を変更するのがウィービング終了点の近傍だけなので、ウィービング終了点の近傍までは教示されたウィービング周期を用いることができる。
【００２１】
また、請求項１〜４のいずれかに記載の溶接ロボット制御装置において、前記ウィービング周期算出手段は、前記残り時間により２以上の場合に分けて前記第２のウィービング周期を算出することを特徴とする（請求項５）。
【００２２】
このような構成によれば、ウィービング終了点までの残り時間により場合分けをして、それぞれの場合に応じたウィービング周期を算出することができる。
【００２３】
また、請求項５に記載の溶接ロボット制御装置において、前記ウィービング周期変更手段は、前記変位が最大値または最小値のときであり前記残り時間が前記第１のウィービング周期の５／８より長く３／４より短いときには、前記変位が０になったときから前記第１のウィービング周期を前記ウィービング周期算出手段により算出される前記第２のウィービング周期に変更することを特徴とする（請求項６）。
【００２４】
また、請求項６に記載の溶接ロボット制御装置において、前記ウィービング周期算出手段は、前記変位が最大値または最小値のときであり前記残り時間が前記第１のウィービング周期の１／４より長く３／８以下のときには第２のウィービング周期を残り時間の４倍とし、前記第１のウィービング周期の３／８より長く５／８以下のときには第２のウィービング周期を残り時間の４／３倍とし、前記第１のウィービング周期の５／８より長く３／４より短いときには前記変位が０になったときから第２のウィービング周期を残り時間の２倍とすることを特徴とする（請求項７）。
【００２５】
このような構成によれば、溶接トーチのＴＣＰ位置がウィービング端点にあるときでウィービング終了点までの残り時間が教示されたウィービング周期の１／４より多く３／４より短いときに、３通りに場合わけして、それぞれウィービング終了点におけるウィービング変位が０になるウィービング周期であり、サーボエラーを引き起こしかねない溶接トーチの急激な移動を伴わず、溶接ビード形状が比較的均一になるウィービング周期を算出することができる。
【００２６】
本願発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【発明を実施するための最良の形態】
【００２７】
以下、本願発明の好ましい実施の形態を、図面を参照して具体的に説明する。
【００２８】
まず、本願発明に係る溶接ロボット制御装置のウィービング動作におけるウィービング周期の調整について、図１，図３，図４を用いて説明する。
【００２９】
本願発明においては、ウィービング終了点でのウィービング変位を０にするためにウィービング溶接作業の途中でウィービング周期を変更するが、溶接ビード形状に与える影響をできるだけ減らすために周期が変更される区間（以下、「調整区間」という。）を可能な限り短くする。但し、調整区間が短すぎると溶接トーチを急激に移動させる必要があり、駆動モータのサーボ制御上の問題が生じる。よって、以下に説明するように場合分けして、調整区間をウィービング終了直前の１／４周期から５／８周期に該当する区間とする。なお、ウィービング区間でウィービング波形が１周期以下ということは実用上ほとんどないので、考えないこととする。
【００３０】
図１は、調整区間設定のための場合分けの説明をするための説明図である。図１において、ウィービング開始点Ｑ１から、点Ｂと点Ｃとの間にあるウィービング終了点Ｑ２まで主軌道Ｌ上の補間点において、ウィービング変位を加算して得た溶接トーチのＴＣＰ位置で溶接が行われる。ウィービング終了点Ｑ２は点Ｂから点Ｃまでの間のどこかに必ず位置し（図１では点Ａ’の手前に位置した場合を例示している。）、その位置する点により、点Ａからウィービング終了点Ｑ２に達するまでの時間Ｔｒで６通り（ウィービング終了点Ｑ２が位置する区間Ｅ，Ｆ，Ｇ，Ｅ’，Ｆ’，Ｇ’を参照）に場合分けされる。点Ａは、ウィービング終了点Ｑ２が位置するウィービング周期の最後の１周期に対して直前の、ウィービング変位が最小値となる補間点である。教示されたウィービング周期をＴ0とすると、Ｔｒ＝1/4Ｔ0，3/4Ｔ0，5/4Ｔ0の点Ｂ，Ｂ’，Ｃでは、ウィービング終了点Ｑ２におけるウィービング変位が０になるので、ウィービング周期の調整は必要とされない。
【００３１】
なお、補間点の間隔やウィービング波形、振幅によっては、補間点におけるウィービング変位が最小値と一致しないこともある。例えば、図２は補間点Ｐr-1と補間点Ｐrの間でウィービング変位が最小値となる例である。この場合は最小値を限定値とせず、幅を持った範囲とする。すなわち、範囲Ｄに溶接トーチのＴＣＰ位置が位置するウィービング変位の範囲を最小値とする。図２の例では、溶接トーチのＴＣＰ位置Ｐｗrが範囲Ｄに位置するので補間点Ｐrがウィービング変位が最小値となる補間点、すなわち点Ａになる。なお、当該補間点の前後の補間点におけるウィービング変位が最小値とならないように、範囲Ｄは直近の補間点の中でただ一つの補間点のみが該当するような範囲にしなければならない。最大値や０についても同様に幅を持った範囲とする。以下では、説明を簡単にするために、補間点の間隔は十分狭く、そのウィービング変位が最小値や最大値や０と一致する補間点があるものとして説明する。
【００３２】
〔1/4Ｔ0＜Ｔｒ≦3/8Ｔ0のとき〕
1/4Ｔ0＜Ｔｒ≦3/8Ｔ0のときウィービング終了点Ｑ２は区間Ｅに位置する。このときのウィービング周期の調整について、図３（ａ）を用いて説明する。ウィービング終了点Ｑ２が区間Ｅに位置するとき、溶接トーチのＴＣＰ位置Ｑｗ２は点Ａにおける溶接トーチのＴＣＰ位置Ａｗから主軌道Ｌを少し越えた位置（図３（ａ）で主軌道Ｌの上側）になるため、点Ａ以降が調整区間とされ、ウィービング終了点Ｑ２におけるウィービング変位が０になるようにウィービング周期が長くされる。すなわち、ウィービング軌道を点線ＡｗＱｗ２から実線ＡｗＱ２に変更するようにウィービング周期が変更される。このとき調整区間でのウィービング周期Ｔ1は、Ｔｒを１／４周期とする周期になるので、Ｔ1＝４Ｔｒとされる。
【００３３】
〔3/8Ｔ0＜Ｔｒ≦5/8Ｔ0のとき〕
3/8Ｔ0＜Ｔｒ≦5/8Ｔ0のときウィービング終了点Ｑ２は区間Ｆに位置する。このときのウィービング周期の調整について、図３（ｂ）を用いて説明する。ウィービング終了点Ｑ２が区間Ｆに位置するとき、溶接トーチのＴＣＰ位置Ｑｗ２は、1/4Ｔ0＜Ｔｒ≦3/8Ｔ0のときと同様に、点Ａにおける溶接トーチのＴＣＰ位置Ａｗに対して主軌道Ｌを挟んで反対側（図３（ｂ）で主軌道Ｌの上側）の位置になり、点Ａ以降が調整区間とされるが、溶接トーチのＴＣＰ位置Ｑｗ２は主軌道Ｌから離れた位置になるので、ウィービング周期を短くしてウィービング終了点Ｑ２におけるウィービング変位が０にされる。すなわち、ウィービング軌道を点線ＡｗＱｗ２から実線ＡｗＱ２に変更するようにウィービング周期が変更される。このとき調整区間でのウィービング周期Ｔ1は、Ｔｒを３／４周期とする周期になるので、Ｔ1＝（４／３）Ｔｒとされる。溶接ビード形状が比較的均一となる点や、サーボエラーを引き起こしかねない溶接トーチの急激な移動を伴わない点で、点Ａ以降を調整区間としウィービング周期を短くしてＴｒを３／４周期とする上記の方法を採用しているが、点Ａ以降の調整区間でウィービング周期を長くしてＴｒを１／４周期としたり、点Ｂ以降を調整区間としウィービング周期を短くしてＴｒ'（＝Ｔｒ−1/4Ｔ0）を１／２周期とする方法を採用してもよい。
【００３４】
〔5/8Ｔ0＜Ｔｒ＜3/4Ｔ0のとき〕
5/8Ｔ0＜Ｔｒ＜3/4Ｔ0のときウィービング終了点Ｑ２は区間Ｇに位置する。このときのウィービング周期の調整について、図３（ｃ）を用いて説明する。ウィービング終了点Ｑ２が区間Ｇに位置するときは、溶接トーチのＴＣＰ位置Ｑｗ２が主軌道Ｌに近くなる点を除いてウィービング終了点Ｑ２が区間Ｆに位置するとき（図３（ｂ））と基本的に変わらない。従って、ウィービング終了点Ｑ２が区間Ｆに位置する場合と同様の方法でウィービング周期を短くしてもよいが、本願発明では、調整区間を可及的に短くするとの考えから、点Ｂ以降を調整区間として、ウィービング終了点Ｑ２におけるウィービング変位が０になるようにウィービング周期が短くされる。すなわち、ウィービング軌道を点線ＢＱｗ２から実線ＢＱ２に変更するようにウィービング周期が変更される。このとき調整区間でのウィービング周期Ｔ1は、点Ｂにおけるウィービング終了点Ｑ２に達するまでの時間Ｔｒ'を１／２周期とする周期になるので、Ｔ1＝２Ｔｒ'とされる。サーボエラーを引き起こしかねない溶接トーチの急激な移動を伴わない点や、溶接ビード形状が比較的均一となる点で、点Ｂ以降を調整区間としウィービング周期を短くしてＴｒ'を１／２周期とする上記の方法を採用しているが、点Ａ以降を調整区間としウィービング周期を短くしてＴｒを３／４周期としたり、点Ａ'以降の調整区間でウィービング周期を短くして点Ａ’におけるウィービング終了点Ｑ２に達するまでの時間Ｔｒ''（＝Ｔｒ−1/2Ｔ0）を１／４周期とする方法を採用してもよい。
【００３５】
〔3/4Ｔ0＜Ｔｒ≦7/8Ｔ0のとき〕
3/4Ｔ0＜Ｔｒ≦7/8Ｔ0のときウィービング終了点Ｑ２は区間Ｅ’に位置する。このときのウィービング周期の調整について、図４（ａ）を用いて説明する。ウィービング終了点Ｑ２が区間Ｅ’に位置するとき、溶接トーチのＴＣＰ位置Ｑｗ２は点Ａ’における溶接トーチのＴＣＰ位置Ａｗ’から主軌道Ｌを少し越えた位置（図４（ａ）で主軌道Ｌの下側）になるため、点Ａ’以降が調整区間とされ、ウィービング終了点Ｑ２におけるウィービング変位が０になるようにウィービング周期が長くされる。すなわち、ウィービング軌道を点線Ａｗ'Ｑｗ２から実線Ａｗ'Ｑ２に変更するようにウィービング周期が変更される。このとき調整区間でのウィービング周期Ｔ1は、Ｔｒ''を１／４周期とする周期になるので、Ｔ1＝４Ｔｒ''とされる。
【００３６】
〔7/8Ｔ0＜Ｔｒ≦9/8Ｔ0のとき〕
7/8Ｔ0＜Ｔｒ≦9/8Ｔ0のときウィービング終了点Ｑ２は区間Ｆ’に位置する。このときのウィービング周期の調整について、図４（ｂ）を用いて説明する。ウィービング終了点Ｑ２が区間Ｆ’に位置するとき、溶接トーチのＴＣＰ位置Ｑｗ２は、3/4Ｔ0＜Ｔｒ≦7/8Ｔ0のときと同様に、点Ａ’における溶接トーチのＴＣＰ位置Ａｗ’に対して主起動Ｌを挟んで反対側（図４（ｂ）で主軌道Ｌの下側）の位置になり、点Ａ’以降が調整区間とされるが、溶接トーチのＴＣＰ位置Ｑｗ２は主起動Ｌから離れた位置になるので、ウィービング周期を短くしてウィービング終了点Ｑ２におけるウィービング変位が０にされる。すなわち、ウィービング軌道を点線Ａｗ'Ｑｗ２から実線Ａｗ'Ｑ２に変更するようにウィービング周期が変更される。このとき調整区間でのウィービング周期Ｔ1は、Ｔｒ''を３／４周期とする周期になるので、Ｔ1＝（４／３）Ｔｒ''とされる。溶接ビード形状が比較的均一となる点や、サーボエラーを引き起こしかねない溶接トーチの急激な移動を伴わない点で、点Ａ’以降を調整区間としウィービング周期を短くしてＴｒ''を３／４周期とする上記の方法を採用しているが、点Ａ’以降の調整区間でウィービング周期を長くしてＴｒ''を１／４周期としたり、点Ｂ’以降を調整区間としウィービング周期を短くしてＴｒ'''（＝Ｔｒ−3/4Ｔ0）を１／２周期とする方法を採用してもよい。
【００３７】
〔9/8Ｔ0＜Ｔｒ＜5/4Ｔ0のとき〕
9/8Ｔ0＜Ｔｒ＜5/4Ｔ0のときウィービング終了点Ｑ２は区間Ｇ'に位置する。このときのウィービング周期の調整について、図４（ｃ）を用いて説明する。ウィービング終了点Ｑ２が区間Ｇ'に位置するときは、溶接トーチのＴＣＰ位置Ｑｗ２が主軌道Ｌに近くなる点を除いてウィービング終了点Ｑ２が区間Ｆ'に位置するとき（図４（ｂ））と基本的に変わらない。従って、ウィービング終了点Ｑ２が区間Ｆ'に位置する場合と同様の方法でウィービング周期を短くしてもよいが、本願発明では、調整区間を可及的に短くするとの考えから、点Ｂ'以降を調整区間として、ウィービング終了点Ｑ２におけるウィービング変位が０になるようにウィービング周期が短くされる。すなわち、ウィービング軌道を点線Ｂ'Ｑｗ２から実線Ｂ'Ｑ２に変更するようにウィービング周期が変更される。このとき調整区間でのウィービング周期Ｔ1は、点Ｂ’におけるウィービング終了点Ｑ２に達するまでの時間Ｔｒ'''を１／２周期とする周期になるので、Ｔ1＝２Ｔｒ'''とされる。溶接ビード形状が比較的均一となる点や、サーボエラーを引き起こしかねない溶接トーチの急激な移動を伴わない点で、点Ｂ’以降を調整区間としウィービング周期を短くしてＴｒ'''を１／２周期とする上記の方法を採用しているが、点Ａ’以降を調整区間としてウィービング周期を短くしてＴｒ''を３／４周期としたり、点Ａ''以降を調整区間としウィービング周期を短くしてＴｒ''''（＝Ｔｒ−Ｔ0）を１／４周期とする方法を採用してもよい。
【００３８】
上記において、ウィービング終了点Ｑ２が区間Ｅに位置する場合と区間Ｅ'に位置する場合とでは、調整区間と調整区間でのウィービング周期Ｔ1が共通したものとされる。同様に、ウィービング終了点Ｑ２が区間Ｆに位置する場合と区間Ｆ'に位置する場合、区間Ｇに位置する場合と区間Ｇ'に位置する場合もそれぞれ調整区間と調整区間でのウィービング周期Ｔ1が共通したものとされる。
【００３９】
ゆえに、Ｔｒをウィービング変位が最小値または最大値となる補間点からウィービング終了点Ｑ２に達するまでの時間とすると、場合分けは、1/4Ｔ0＜Ｔｒ≦3/8Ｔ0、3/8Ｔ0＜Ｔｒ≦5/8Ｔ0、5/8Ｔ0＜Ｔｒ＜3/4Ｔ0の３通りにまとめることができる。
【００４０】
なお、図１、図３、図４では、説明を分りやすくするためにウィービング軌道を直線の単純な軌道にして説明しているがこの限りではなく、一定の周期で増減を繰り返す正弦波等の波形を利用したウィービング動作について利用できる。
【００４１】
図５は、本願発明に係る溶接ロボット制御装置が適用される溶接ロボット制御システムを示す構成図である。この溶接ロボット制御システムでは、溶接ロボットに設けられた溶接トーチによってワーク（被溶接物）に対して溶接が行われる。
【００４２】
溶接ロボット制御システムは、溶接ロボット１０と、溶接ロボット制御装置２０と、溶接電源装置３０とによって大略構成されている。
【００４３】
溶接ロボット１０は、ワークＷに対して例えばアーク溶接を自動で行うものである。溶接ロボット１０は、フロア等の適当な箇所に固定されるベース部材１１と、それに複数の軸を介して連結された複数のアーム１２と、複数のアーム１２の両端又は片端に設けられた複数の駆動モータ（サーボモータ）１３（一部図示略）とによって構成されている。
【００４４】
溶接ロボット１０には、最も先端側に設けられたアーム１２の先端部に、溶接トーチ１４が設けられている。溶接トーチ１４は、溶加材としての例えば直径１ｍｍ程度の溶接ワイヤ１５をワークＷの所定の溶接位置に導くものである。
【００４５】
溶接ロボット１０の上部には、ワイヤ送給装置１６が設けられている。ワイヤ送給装置１６は、溶接トーチ１４に対して溶接ワイヤ１５を送り出すためのものである。ワイヤ送給装置１６は、溶接ワイヤ１５が巻回された図示しないリールと、リールを回転させる送給モータ１７とによって構成され、送給モータ１７は、溶接電源装置３０によって回転駆動される。
【００４６】
ワイヤ送給装置１６には、溶接ワイヤ１５を案内するためのコイルライナ１９が接続され、コイルライナ１９の先端は、溶接トーチ１４に接続されている。これにより、ワイヤ送給装置１６によって送り出された溶接ワイヤ１５は、コイルライナ１９を介して溶接トーチ１４に導かれる。溶接ワイヤ１５は、溶接トーチ１４から外部に突出して消耗電極として機能する。すなわち、溶接電源装置３０によって溶接ワイヤ１５の先端とワークＷとの間に高電圧を印加してアークを発生させ、そのアークの熱で溶接ワイヤ１５を溶融させることにより、ワークＷに対して溶接が施される。
【００４７】
各アームに設けられた駆動モータ１３は、溶接ロボット制御装置２０からの駆動信号によって回転駆動され、この各駆動モータ１３が回転駆動されることにより、各アーム１２が変位し、結果的に溶接トーチ１４が上下前後左右に移動可能とされる。
【００４８】
さらに、本実施形態では、各駆動モータ１３が回転駆動されることにより、溶接トーチ１４のウィービング動作が行われる。ウィービング動作とは、上述したように、溶接トーチ１４を溶接進行方向に対して直交する方向に揺動させる動作をいう。本実施形態に係る溶接ロボット１０は、図５に示すように、複数の関節を有する多関節の溶接ロボットであり、これら複数の関節を複合動作させることにより、溶接トーチ１４が溶接進行方向に対して直交方向に揺動されるように制御される（図１０の正弦波状の軌跡を参照）。
【００４９】
なお、各駆動モータ１３には、図示しないエンコーダが設けられている。エンコーダの出力は、溶接ロボット制御装置２０に入力され、溶接ロボット制御装置２０では、エンコーダの出力によって溶接トーチ１４の現在位置を認識するようになっている。
【００５０】
溶接ロボット制御装置２０は、溶接ロボット１０の動作を制御するためのものである。溶接ロボット制御装置２０は、予め記憶されている制御ソフトウェア及び図示しないエンコーダからの現在位置情報等に基づいて、溶接ロボット１０の各駆動モータ１３の駆動を制御して、溶接トーチ１４をワークＷの所定の溶接点に移動させる。また、溶接ロボット制御装置２０は、各駆動モータ１３の駆動を制御して、溶接トーチ１４を揺動させることにより、上記ウィービング動作を実行する。
【００５１】
溶接電源装置３０は、図示しない溶接電源を備えており、溶接電源は溶接トーチ１４とワークＷとの間に高電圧の溶接電圧を供給するものである。また、溶接電源装置３０は、所定のタイミングでワイヤ送給装置１６の送給モータ１７を駆動させる機能をも有している。
【００５２】
図６は、溶接ロボット制御装置２０の内部構成及びその周辺装置を示すブロック図である。溶接ロボット制御装置２０は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、タイマ（ＴＩＭＥＲ）２４、ハードディスク２５、ティーチングペンダントＩ／Ｆ２６、操作ボックスＩ／Ｆ２７、及びサーボドライバＩ／Ｆ２８を備えており、各部はバス（ＢＵＳ）３１によって相互に接続されている。
【００５３】
ティーチングペンダントＩ／Ｆ２６には、ティーチングペンダント３３が接続され、操作ボックスＩ／Ｆ２７には、操作ボックス３４が接続されている。また、サーボドライバＩ／Ｆ２８には、溶接ロボット制御装置２０の内部に設けられた６つのサーボドライバ３５が接続され、サーボドライバ３５には、溶接ロボット１０に設けられた６つの駆動モータ１３がそれぞれ接続されている。
【００５４】
ＣＰＵ２１は、本溶接ロボット制御装置２０の制御中枢となるものであり、教示された作業プログラム、ティーチングペンダント３３や操作ボックス３４からの操作信号、あるいは図示しないエンコーダからの現在位置情報等に基づいて、所定のデータ処理を行い、バス３１及びサーボドライバＩ／Ｆ２８を介してサーボドライバ３５に動作指令を与える。これにより、駆動モータ１３が回転駆動され、溶接トーチ１４が移動される。
【００５５】
ＲＡＭ２２は、ＣＰＵ２１に対して作業領域を提供するものであり、計算データ等を一時的に記憶する。ＲＡＭ２２は、例えば後述する動作命令バッファ４１、軌道バッファ４２、補間点バッファ４３、又は関節角度バッファ４４として機能する。
【００５６】
ＲＯＭ２３は、溶接ロボット１０の動作を制御するための制御ソフトウェアを格納するものである。
【００５７】
ハードディスク２５は、溶接ロボット１０の溶接作業が教示された作業プログラム、この作業プログラムの実行条件を示すデータ、制御定数を示すデータ等を格納するものである。
【００５８】
タイマ２４は、予め定められた定期時刻ごとに同期信号をＣＰＵ２１に対して発生するものである。同期信号は、ＣＰＵ２１がサーボドライバ３５に対して動作指令信号を出力する際の更新タイミングとして用いられる。
【００５９】
ティーチングペンダントＩ／Ｆ２６は、ティーチングペンダント３３とのインターフェースを司るものである。ティーチングペンダント３３は、例えば表示装置３３ａとキーボード３３ｂとを有し、溶接ロボット１０の動作を手動で行う際にユーザによって操作されるものである。ＣＰＵ２１は、このティーチングペンダント３３からの操作信号を受け取ることにより所定のデータ処理を行うとともに、ティーチングペンダント３３に対して表示データを送ることにより、操作情報を表示させる。
【００６０】
操作ボックスＩ／Ｆ２７は、操作ボックス３４とのインターフェースを司るものである。操作ボックス３４は、自動運転モード又は手動モードの選択、起動、開始、停止等の各種操作をユーザによって可能にするものである。ＣＰＵ２１は、この操作ボックス３４からの操作信号を受け取ることにより所定のデータ処理を行う。
【００６１】
サーボドライバＩ／Ｆ２８は、サーボドライバ３５とのインターフェースを司るものである。サーボドライバ３５は、ＣＰＵ２１からの動作指令信号に基づいて、６つの駆動モータ１３をそれぞれ駆動制御するものである。
【００６２】
図７は、ＣＰＵ２１及びＲＡＭ２２の実際的な機能をブロックにして表した場合の構成図である。
【００６３】
ＣＰＵ２１の機能としては、動作命令読出部３６、軌道生成部３７、補間点生成部３８、関節角度生成部３９、及びサーボ出力部４０によって表され、ＲＡＭ２２の機能としては、動作命令バッファ４１、軌道バッファ４２、補間点バッファ４３、及び関節角度バッファ４４によって表される。なお、各バッファ４１〜４４は、ＦＩＦＯ（first-in first-out）バッファとして構成されており、先入れ及び先出しでデータが処理される。
【００６４】
動作命令読出部３６は、ハードディスク２５に記憶された作業プログラムから、溶接ロボット１０の動作命令に関する情報（例えば座標、速度情報等のデータからなる軌道命令）を読み出し、動作命令バッファ４１に格納する。
【００６５】
軌道生成部３７は、動作命令バッファ４１から動作命令に関する情報（動作命令コマンド）を読み出し、読み出した情報に基づいて溶接ロボット１０の溶接トーチ１４の作業軌道を三次元空間の直交座標上で計画する。軌道生成部３７は、計画された軌道データを軌道バッファ４２に格納する。
【００６６】
補間点生成部３８は、軌道バッファ４２から軌道データを読み出し、読み出した軌道データを、「補間周期」と呼称される所定時間毎に分割する。そして、補間周期毎に直交座標によって表される、溶接トーチ１４が到達すべき位置、姿勢を示す補間点データを算出する。すなわち、軌道データは、溶接開始点から溶接終了点に至る溶接トーチ１４の移動軌跡を複数の教示点によって表すとともに、教示点間の溶接トーチ１４の移動方法を直線移動や円弧移動によって定義したものである。補間点生成部３８は、隣接する教示点間において溶接トーチ１４が通過すべき点とその点における溶接トーチ１４の姿勢等のデータを補間周期毎に補間している。補間点生成部３８は、算出した補間点データを補間点バッファ４３に格納する。
【００６７】
関節角度生成部３９は、補間点バッファ４３から溶接トーチ１４の到達位置、姿勢を示す補間点データを読み出し、溶接ロボット１０の各関節における関節角度を示すデータに逆変換する演算を行い、算出した関節角度データを関節角度バッファ４４に格納する。なお、本実施形態の特徴であるウィービング動作におけるウィービング周期の調整については、主にこの関節角度生成部３９において実現されるようになっている。これについては後述する。
【００６８】
関節角度バッファ４４に格納された、溶接ロボット１０の関節角度データは、タイマ２４によって発生される同期信号ＳＹＮＣに同期してサーボ出力部４０に通知される。そして、上記関節角度データは、サーボ出力部４０から所定のタイミングでサーボドライバＩ／Ｆ２８を介してサーボドライバ３５へ各関節の位置指令（駆動モータ１３に対する動作指令）として出力される。
【００６９】
図８は、関節角度生成部３９の機能を更に細かくブロックにして表した場合の構成図である。
【００７０】
関節角度生成部３９は更に、ウィービングデータ読出部３９１、ウィービング変位算出部３９２、ＴＣＰ位置姿勢算出部３９３、残時間算出部３９４、ウィービング周期調整部３９５、逆変換部３９６によって構成される。
【００７１】
ウィービングデータ読出部３９１は、教示作業プログラムからウィービング変位を算出するために必要なウィービング周期、ウィービング振幅、ウィービング波形などからなるウィービングデータを読み出す。なお、後述するウィービング周期調整部３９５からウィービング周期が入力された場合は、教示作業プログラムから読み出されたウィービング周期に変えてウィービング周期調整部３９５から入力されたウィービング周期が使用される。
【００７２】
ウィービング変位算出部３９２は、ウィービングデータ読出部３９１により読み出されたウィービングデータからウィービング変位を算出する。
【００７３】
ＴＣＰ位置姿勢算出部３９３は、補間点バッファ４３に格納されている補間点データにウィービング変位算出部３９２で算出されたウィービング変位を加算してＴＣＰ位置及び溶接トーチ１４の姿勢を算出する（図１１参照）。
【００７４】
残時間算出部３９４は、動作命令バッファ４１から補間周期を読み出し、読み出された補間周期と処理中の補間点以降の残りの補間点数とから処理中の補間点におけるウィービング終了点までの残り時間（以下、「残時間」という。）を算出する。
【００７５】
ウィービング周期調整部３９５は、ウィービング変位算出部３９２で算出されたウィービング変位と残時間算出部３９４で算出された残時間からウィービング周期調整が必要か否かを判別し、ウィービング周期調整が必要であると判別した場合には必要なウィービング周期を算出する。まず、ウィービング後のＴＣＰ位置がウィービング端点になるか否かを判別するために、ウィービング変位算出部３９２で算出されたウィービング変位が最大値または最小値となるか否かを判別する。ウィービング変位が最大値または最小値となる補間点におけるウィービング後のＴＣＰ位置がウィービング端点になる。次に、ウィービング周期調整部３９５は、ウィービング変位が最大値または最小値となると判別したとき、すなわち、ウィービング後のＴＣＰ位置がウィービング端点になると判別したときは、残時間算出部３９４で算出された残時間がウィービング周期の調整が必要な時間か否かを判別する。ウィービング周期調整部３９５は、残時間がウィービング周期の調整が必要な時間であると判別したときは、ウィービング終了点でウィービング変位が０となるウィービング周期を残時間から算出し出力する。
【００７６】
逆変換部３９６は、ＴＣＰ位置姿勢算出部３９３で算出されたＴＣＰ位置と溶接トーチ１４の姿勢を溶接ロボット１０の各関節における関節角度を示すデータに逆変換する演算を行い、算出した関節角度データを関節角度バッファ４４に格納する。
【００７７】
次に、本実施形態に係るウィービング動作におけるウィービング周期の調整について、図９に示すフローチャートと図１、図３、図４を参照して説明する。
【００７８】
図９は関節角度生成部３９で実行される、本実施形態に係る特徴的なウィービング動作におけるウィービング周期の調整についての制御を表すフローチャートである。
【００７９】
この制御はウィービング開始点Ｑ１からウィービング終了点Ｑ２に達するまで実行され、各補間点Ｐ１，Ｐ２，…における溶接ロボット１０の各関節角度を示す関節角度データが算出される。
【００８０】
まず、補間カウンタｍが０に初期化され、ウィービング周期Ｔが教示されたウィービング周期Ｔ0に、フラグＦＬＡＧがＯＦＦに初期化される（Ｓ１）。ここで、ＦＬＡＧはウィービング周期の調整を区別するためのフラグであり、条件に該当したとき(図１において、補間点Ｐmが点Ａのときウィービング終了点Ｑ２が区間Ｇに位置するとき又は補間点Ｐmが点Ａ’のときウィービング終了点Ｑ２が区間Ｇ’に位置するとき)にＯＮにされる。次に、補間カウンタｍが１増加され（Ｓ２）、ウィービング終了点Ｑ２に達したか否かが判別される（Ｓ３）。ウィービング終了点Ｑ２に達しない場合（Ｓ３：ＮＯ）は、ステップ４に進み、ウィービング終了点Ｑ２に達した場合（Ｓ３：ＹＥＳ）は処理を終了する。
【００８１】
ステップＳ４において、補間点バッファ４３から補間点データが読み出される。ここで、補間点データとは、補間点Ｐmの位置Ｐ(m)、及び補間点Ｐmにおける溶接トーチ１４の姿勢Ｒ(m)よりなるデータである。また、ウィービング変位算出部３９２により、ウィービング変位Ｈ(m)が算出される。ウィービング変位Ｈ(m)は補間点Ｐmにおけるウィービング変位である。
【００８２】
次に、ウィービング変位Ｈ(m)が最大値Ｈmaxまたは最小値Ｈminであるか否か判別される（Ｓ５）。例えば、図１の補間点Ａにおいてウィービング変位Ｈ(m)は最小値Ｈminとなり溶接トーチ１４のＴＣＰ位置Ａｗはウイ−ビング端点となる。また、補間点Ａ’においてウィービング変位Ｈ(m)は最大値Ｈmaxとなり溶接トーチ１４のＴＣＰ位置Ａｗ’はウイ−ビング端点となる。ステップＳ５において、Ｈ(m)≠ＨmaxかつＨ(m)≠Ｈminの場合（Ｓ５：ＮＯ）、ＦＬＡＧがＯＮであり、かつ、Ｈ(m)が０であるか否か判別される（Ｓ６）。例えば、図１の補間点Ｂにおいてウィービング変位Ｈ(m)は０となり溶接トーチ１４のＴＣＰ位置は主軌道Ｌ上となる。ステップＳ６において、ＦＬＡＧ＝ＯＦＦまたはＨ(m)≠０の場合(Ｓ６：ＮＯ)、ステップＳ７に進む。
【００８３】
ステップＳ７では、補間点Ｐmの位置Ｐ(m)に変位Ｈ(m)が加算され、溶接トーチ１４のウィービング後のＴＣＰ位置Ｐｗ(m)が算出され、ステップＳ８に進む。なお、溶接トーチ１４のウィービング後のＴＣＰ位置Ｐｗ(m)が算出されるときに、溶接トーチ１４のウィービング後の姿勢Ｒｗ(m)も算出されるが、ウィービング周期の調整には関係ないので、ここでは説明を省略する。
【００８４】
ステップＳ８では、ＴＣＰ位置Ｐｗ(m)、溶接トーチ１４の姿勢Ｒｗ(m)の逆変換により、溶接ロボット１０の各関節角度を示す関節角度データが算出され、関節角度バッファ４４に格納され、ステップＳ２に戻る。
【００８５】
ステップＳ５において、Ｈ(m)＝ＨmaxまたはＨminの場合（Ｓ５：ＹＥＳ）、補間点ＰmはＴＣＰ位置Ｐｗ(m)がウィービング端点となる補間点であり、残時間算出部３９４により算出された補間点Ｐmにおける残時間Ｔｒにより場合分けされる。
【００８６】
まず、1/4Ｔ＜Ｔｒ≦3/8Ｔであるか否か判別される（Ｓ１０）。1/4Ｔ＜Ｔｒ≦3/8Ｔの場合（Ｓ１０：ＹＥＳ）、図１において補間点Ｐmが点Ａでありウィービング終了点Ｑ２が区間Ｅに位置する場合か、補間点Ｐmが点Ａ’でありウィービング終了点Ｑ２が区間Ｅ'に位置する場合であり、このとき図３（ａ），図４（ａ）のように、ウィービング終了点Ｑ２におけるウィービング変位が０になるようなウィービング周期Ｔ＝４Ｔｒが算出され（Ｓ１３）、ステップＳ７に進む。以降のウィービング変位の算出にはウィービング周期Ｔ＝４Ｔｒが用いられる。
【００８７】
ステップＳ１０がＮＯの場合、3/8Ｔ＜Ｔｒ≦5/8Ｔであるか否か判別される（Ｓ１１）。3/8Ｔ＜Ｔｒ≦5/8Ｔの場合（Ｓ１１：ＹＥＳ）、図１において補間点Ｐmが点Ａでありウィービング終了点Ｑ２が区間Ｆに位置する場合か、補間点Ｐmが点Ａ’でありウィービング終了点Ｑ２が区間Ｆ'に位置する場合であり、このとき図３(ｂ)，図４（ｂ）のように、ウィービング終了点Ｑ２におけるウィービング変位が０になるようなウィービング周期Ｔ＝（４／３）Ｔｒが算出され（Ｓ１４）、ステップＳ７に進む。以降のウィービング変位の算出にはウィービング周期Ｔ＝（４／３）Ｔｒが用いられる。
【００８８】
ステップＳ１１がＮＯの場合、5/8Ｔ＜Ｔｒ＜3/4Ｔであるか否か判別される（Ｓ１２）。5/8Ｔ＜Ｔｒ＜3/4Ｔの場合（Ｓ１２：ＹＥＳ）、図１において補間点Ｐmが点Ａでありウィービング終了点Ｑ２が区間Ｇに位置する場合か、補間点Ｐmが点Ａ’でありウィービング終了点Ｑ２が区間Ｇ'に位置する場合であり、このとき図３(ｃ)，図４（ｃ）のように、点Ｂまたは点Ｂ’まではウィービング周期は変更されず、補間点Ｐmが点Ｂまたは点Ｂ’になったとき以降からウィービング周期が変更される。この識別のためにフラグＦＬＡＧがＯＮにされ（Ｓ１５）、ステップＳ７に進む。
【００８９】
ステップＳ１２がＮＯの場合、すなわち、3/4Ｔ≦ＴｒまたはＴｒ≦1/4Ｔの場合、そのままステップＳ７に進む。Ｔｒ＝3/4Ｔ、1/4Ｔのときは、ウィービング終了点Ｑ２におけるウィービング変位が０になるので周期の変更を必要としない。3/4Ｔ＜Ｔｒのときは、まだウィービング周期の変更を検討する補間点に達していない。また、Ｔｒ＜1/4Ｔとなることはありえない。なぜなら、ウィービング周期が変更される前であれば１つ前のウィービング端点のときにＴｒ＜3/4Ｔに該当していたことになるし、ウィービング周期が変更された後（１つ前のウィービング端点のときに1/2Ｔ＜Ｔｒ＜3/4Ｔに該当した場合）であれば当該ウィービング端点においてＴr＝1/4Ｔとなっているからである(例えば、補間点が図１の点Ａのときにウィービング終了点Ｑ２が区間ＦのＡ'よりＣ側に位置し、図３（ｂ）に示されるウィービング周期の変更によりウィービング軌道が変更となった場合における次のウィービング端点)。
【００９０】
ステップＳ６において、ＦＬＡＧ＝ＯＮかつＨ(m)＝０の場合(Ｓ６：ＹＥＳ)、補間点Ｐmが図３(ｃ)，図４（ｃ）における点Ｂまたは点Ｂ’であるので、ウィービング終了点Ｑ２におけるウィービング変位が０になるようなウィービング周期Ｔ＝２Ｔｒが算出され、ＦＬＡＧ＝ＯＦＦにされて（Ｓ９）、ステップＳ７に進む。以降のウィービング変位の算出にはウィービング周期Ｔ＝２Ｔｒが用いられる。
【００９１】
上記のように、本実施形態では、ウィービング終了点Ｑ２近傍の調整区間でだけウィービング周期を変更して、ウィービング終了点Ｑ２でのウィービング変位が０になるように調整することで、教示された溶接速度を維持し、調整区間以外ではウィービング周期も変化させることなく、ウィービング終了時に溶接トーチ１４のＴＣＰ位置をウィービング終了点Ｑ２に一致させるように溶接作業を行わせることができる。
【００９２】
なお、調整区間の長さや場合分けは、本実施形態に限られず、調整区間をもっと長くしてもよいし、場合分けを３通りでなく２通りに簡略化してもよいし、もっと細かく分けても構わない。場合分けの境界線も本実施形態に限られない。
【００９３】
また、本実施形態ではウィービング変位が最大値または最小値になったときに残時間で場合分けをしたが、ウィービング変位が０になったときに残時間で場合分けをしても構わないし、それ以外の所定値のときに残時間で場合分けをしても構わない。残時間で場合分けせずに、残りの主軌道の距離や、何周期残っているかで場合分けしてもかまわない。
【００９４】
また、場合分けせずに、所定の残時間以下になりウィービング変位量が所定の値になったときに、ウィービング終了点でのウィービング変位が０になるようなウィービング周期に変更するようにしても構わないし、ウィービング変位に関係なく所定の残時間になったときに、ウィービング終了点でのウィービング変位が０になるようなウィービング周期に変更するようにしても構わない。
【図面の簡単な説明】
【００９５】
【図１】ウィービング周期を調整する方法を説明するための図で、調整区間設定のための場合分けの説明をするための図である。
【図２】ウィービング周期を調整する方法を説明するための図で、最小値の説明をするための図である。
【図３】ウィービング周期を調整する方法を説明するための図で、ウィービング終了点Ｑ２が区間Ｅ、Ｆ、Ｇに位置するときの調整区間と調整後のウィービング周期を説明するための図である。
【図４】ウィービング周期を調整する方法を説明するための図で、ウィービング終了点Ｑ２が区間Ｅ’、Ｆ’、Ｇ’に位置するときの調整区間と調整後のウィービング周期を説明するための図である。
【図５】本願発明に係る溶接ロボット制御装置が適用される溶接ロボット制御システムを示す構成図である。
【図６】溶接ロボット制御装置の内部構成及びその周辺装置を示すブロック図である。
【図７】ＣＰＵ及びＲＡＭの実際的な機能をブロックにして表した場合の構成図である。
【図８】関節角度生成部の機能を更に細かくブロックにして表した場合の構成図である。
【図９】関節角度生成部で実行される、ウィービング動作におけるウィービング周期の調整についての制御を表すフローチャートである。
【図１０】ウィービング動作を説明するための図である。
【図１１】ウィービング中の溶接トーチのＴＣＰ位置を説明する図である。
【符号の説明】
【００９６】
１０  溶接ロボット
１３  駆動モータ
１４  溶接トーチ
２０  溶接ロボット制御装置
２１  ＣＰＵ
２２  ＲＡＭ
２５  ハードディスク
２８  サーボドライバＩ／Ｆ
３０  溶接電源装置
３５  サーボドライバ
３９  関節角度生成部
４２  軌道バッファ
４３  補間点バッファ
４４  関節角度バッファ
Ｗ  ワーク（被溶接物）