溶接ロボット制御装置
【課題】主軌道の進行方向が大きく変化する場合でも、ユーザの教示どおりのウィービング周波数と溶接速度を維持したまま、溶接トーチの飛びを可及的に抑制して、ウィービング波形を連続させて溶接作業を行うように制御できる溶接ロボット制御装置を提供する。
【解決手段】飛び検出部395は、方向変化検出部394が主軌道の方向変化があったと判断した場合に、方向変化前後の主軌道方向の交差角と、TCP位置姿勢算出部393が算出したTCP位置と前回のTCP位置との距離から、飛び補正が必要か否かを判断する。飛び補正が必要であれば、飛び補正部396は、主軌道方向変化後の一定期間、TCP位置姿勢算出部393が算出したTCP位置を、主軌道の方向変化があった教示点の直前の補間点の変位位置から教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する。
【解決手段】飛び検出部395は、方向変化検出部394が主軌道の方向変化があったと判断した場合に、方向変化前後の主軌道方向の交差角と、TCP位置姿勢算出部393が算出したTCP位置と前回のTCP位置との距離から、飛び補正が必要か否かを判断する。飛び補正が必要であれば、飛び補正部396は、主軌道方向変化後の一定期間、TCP位置姿勢算出部393が算出したTCP位置を、主軌道の方向変化があった教示点の直前の補間点の変位位置から教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、ワークに対して溶接を行う溶接ロボットの制御装置に関するものである。
【背景技術】
【0002】
従来、ワークに対して溶接を行う多関節溶接ロボットにおいては、ウィービング動作と呼称される動作を行うものがある。ウィービング動作とは、図12に示すように、予め記憶された作業プログラムによって溶接ロボット100の各アーム101の駆動モータ102をサーボ制御によって回転駆動させることにより、溶接トーチ103の先端を溶接進行方向に対して直交する方向に揺動させる動作をいう。
【0003】
このウィービング動作では、ティーチングプレイバック方式に基づいて溶接部の形状に沿って溶接トーチ103が直線補間動作又は円弧補間動作を行いつつ、溶接トーチ103のツールセンタポイント(TCP)103aを、予め教示された振幅、周波数、及び波形に基づいて移動させる。このウィービング動作が行われることによって、良好でかつ確実な溶接を実現することができる。
【0004】
ウィービング中の溶接トーチのTCP位置は、教示点間を補間して得た主軌道上の各補間点に対して進行方向座標系を定義し、その座標系で算出されるウィービング変位量を溶接ロボットの設置位置に定義される基本座標系における各補間点の座標に加算することで決定される。例えば、図13に示すように、教示点Q1,Q2間をr個の補間点P1,P2,…Prで直線補間する場合、例えば、補間点P1における溶接トーチ103のTCP位置は、補間点P1に進行方向座標系(n,o,a)を定義し、例えばo方向が溶接面に沿う方向であるとすると、当該o方向にウィービング変位量Hだけ移動した点Pw1がウィービング中の溶接トーチ103のTCP位置になる。なお、図13において、tが溶接トーチ103の軸方向の単位ベクトルとすると、aはQ1Q2方向の単位ベクトル、oはtとaに対して垂直方向の単位ベクトル、nはoとaに対して垂直方向の単位ベクトルである。
【0005】
ところで、図14に示すように、教示点Q2で主軌道Lの進行方向を大きく変化させて教示点Q3の方向に溶接トーチ103を移動させる場合、教示点Q2Q3間も教示点Q1Q2間と同様に補間点P1’,P2’,…Pm’で直線補間して各補間点P1’〜Pm’でウィービング変位量を演算すると、補間点P1’の進行方向座標系のo’方向が補間点Prの進行方向座標系のo方向に対して大きく変化し、溶接トーチ103のTCP位置が大きく変化することになる。
【0006】
すなわち、溶接トーチ103のウィービング動作は、教示点Q1Q2間では、教示点Q2を通る主軌道L1に垂直な直線n1より教示点Q1側の領域で行われ、教示点Q2Q3間では、教示点Q2を通る主軌道L2に垂直な直線n2より教示点Q3側の領域で行われるから、補間点PrにおけるTCP位置Pwrから補間点P1’におけるTCP位置Pw1’に向かうベクトルd’は、直線n1と直線n2とで挟まれる、斜線で示す領域Aを跨ぐことになり、補間点Prまでの補間点間を移動する溶接トーチ103のベクトルdに対して、大きく変化することになる(図14のベクトルdとベクトルd’を参照)。
【0007】
このため、溶接トーチ103を、教示点Q1から教示点Q2を経由して教示点Q3にユーザが予め設定したウィービング条件(周波数や振幅)でウィービング動作をさせながら移動させると、溶接トーチ103は補間点PrのTCP位置Pwrから補間点P1’のTCP位置Pw1’に移動するときに、それまでの移動速度よりも高速で移動しなけばならず、溶接トーチ103の移動速度が急増する現象が生じる。この現象を「溶接トーチの飛び」という。
【0008】
特に姿勢の変化を伴うウィービングの場合、姿勢変化が進行方向座標系に対して定義されているため、主軌道の進行方向が変化することによって溶接トーチの飛びが起きると、補間点PrのTCP位置Pwrでの姿勢Rwrに対して補間点P1' のTCP位置Pw1'での姿勢Rw1'は進行方向の変化分だけ変化させなければならない。このために、各アーム101のサーボ制御に異常が発生し、作業が中断することになる。また、サーボ制御に異常が発生しなくても、主軌道L1,L2が急変する教示点Q2の付近における溶接トーチ103のウィービング動作が不連続になることに起因してビード形状が悪くなり、溶接品質が悪化する。
【0009】
従来、この溶接トーチの飛びを避ける方法として、教示点Q1Q2間の主軌道L1の終端点Q2におけるウィービング変位量を0にするとともに、教示点Q2Q3間の主軌道L2の開始点Q2におけるウィービング変位量を0にすることにより、主軌道の進行方向が変化する点Q2において、溶接トーチ103のTCP位置を一致させる方法が提案されている。
【0010】
例えば、特開平5−57642号公報にはウィービング周波数を変更することで、主軌道の変化点でのウィービング変位量を0にするよう調整する方法が提案されている。また、特開平6−87076号公報にはウィービング周期が主軌道の変化点で終了するように溶接速度を変化して、当該主軌道の変化点でのウィービング変位量を0にするよう調整する方法が提案されている。
【0011】
【特許文献1】特開平5−57642号公報
【特許文献2】特開平6−87076号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、上記従来の方法では、主軌道の変化点でのウィービング変位量を0にするために、例えば、図14の例では、教示点Q1Q2間におけるウィービング周波数若しくは溶接速度が教示点Q2Q3間におけるウィービング周波数若しくは溶接速度と異なることになる。このことは、教示点Q1から教示点Q3まで溶接トーチ103を移動させて一連の溶接処理をする上で、教示点Q1Q2間と教示点Q2Q3間とで溶接条件が変化することになるから、ビードの不均一の要因となり、溶接品質上問題となる。そして、この問題は、溶接トーチ103の主軌道の進行方向の変化数が多い溶接区間(溶接開始点から溶接終了点までの区間、図14の例では、教示点Q1から教示点Q3までの区間)ほど、大きくなる。
【0013】
従って、ウィービング周波数若しくは溶接速度を変化させることなく、しかも、主軌道の進行方向の変化点における溶接トーチの飛びを可及的に抑制しつつ、溶接トーチをウィービング動作させながら溶接区間を移動させる方法が望まれるが、従来、このような方法は提案されていない。
【0014】
本願発明は、上記した事情のもとで考え出されたものであって、主軌道の進行方向が大きく変化する場合でも、ユーザの教示どおりのウィービング周波数と溶接速度を維持したまま、溶接トーチの飛びを可及的に抑制して、ウィービング波形を連続させて溶接作業を行うように制御できる溶接ロボット制御装置を提供することをその課題としている。
【課題を解決するための手段】
【0015】
上記課題を解決するため、本願発明では、次の技術的手段を講じている。
【0016】
本願発明の第1の側面によって提供される溶接ロボット制御装置は、多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成され、前記溶接トーチの進行方向が途中で変化する主軌道上に、多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、隣接する教示点間から前記主軌道の進行方向を演算し、その進行方向が所定の角度以上に変化する教示点を算出する算出手段と、前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段とを備えたことを特徴とする(請求項1)。
【0017】
このような構成によれば、溶接の主軌道の進行方向が大きく変化する場合、進行方向変化後の一定期間、本来の溶接点の位置を位置補正手段で補正することにより、補正された溶接点が滑らかにつながり、ウィービング周波数や溶接速度を維持したまま、溶接トーチの飛びが発生しないようにウィービング波形を連続させて溶接作業を行うことができる。
【0018】
また、請求項1に記載の溶接ロボット制御装置において、前記主軌道の進行方向の変化する角度が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備えるとよい(請求項2)。
【0019】
このような構成によれば、主軌道方向の変化角度が大きいほど溶接トーチの飛びが大きくなるので、溶接点の補正を行う期間をより長く設定することで、補正後の溶接点がより滑らかにつながることになる。
【0020】
本願発明の第2の側面によって提供される溶接ロボット制御装置は、多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成された主軌道上に多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、前記教示点間毎の前記ウィービング動作における振幅のデータを記憶する記憶手段と、前記記憶手段に記憶された振幅のデータより前記ウィービング動作における振幅のデータが所定の閾値以上に変化する教示点を算出する算出手段と、前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段とを備えたことを特徴とする(請求項3)。
【0021】
このような構成によれば、ウィービングの振幅が大きく変化する場合、ウィービング振幅変化後の一定期間、本来の溶接点の位置を位置補正手段で補正することにより、補正された溶接点が滑らかにつながり、ウィービング周波数や溶接速度を維持したまま、飛びが発生しないようにウィービング波形を連続させて溶接作業を行うことができる。
【0022】
また、請求項3に記載の溶接ロボット制御装置において、前記ウィービング動作における振幅の変化割合が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備えるとよい(請求項4)。
【0023】
このような構成によれば、ウィービング振幅の変化割合が大きいほど溶接トーチの飛びが大きくなるので、溶接点の補正を行う期間をより長く設定することで、補正後の溶接点がより滑らかにつながることになる。
【0024】
また、請求項1ないし4に記載の溶接ロボット制御装置において、前記位置補正手段は、下記演算式(1)により前記所定数の補間点の各補間点の前記変位位置を補正するとよい(請求項5)。
【数1】
但し、Pw(m)’:補正後の変位位置
Pw(m) :補正前の変位位置
d:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトル
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【0025】
また、請求項1、2、5に記載の溶接ロボット制御装置において、前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点における前記溶接トーチの姿勢を、下記演算式(5)により補正する姿勢補正手段を更に備えるとよい(請求項6)。
【数4】
但し、Rw(m)’:補正後の溶接トーチの姿勢
Rw(m) :補正前の溶接トーチの姿勢
Kr:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化した後の溶接トーチの姿勢へ変化させるための回転中心軸ベクトル
Δφ:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化
した後の溶接トーチの姿勢へ変化させるための回転角度
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【0026】
このような構成によれば、溶接の主軌道の進行方向が大きく変化する場合、進行方向変化後の一定期間、本来の溶接トーチの姿勢を姿勢補正手段で補正することにより、補正された溶接トーチの姿勢が滑らかに変化し、飛びが発生しないようにウィービング波形を連続させて溶接作業を行うことができる。
【0027】
本願発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【発明を実施するための最良の形態】
【0028】
以下、本願発明の好ましい実施の形態を、図面を参照して具体的に説明する。
【0029】
まず、本願発明に係る溶接ロボット制御装置のウィービング動作における溶接トーチの飛びの抑制方法について、図1,図2、図3を用いて説明する。
【0030】
図1は、教示点Q1Q3間を直線補間した各補間点P(m)(m=1,2,…M)の座標に、各補間点P(m)に定義された進行方向座標系で算出されるウィービング変位量Hを加算して決定される溶接トーチのTCP位置Pw(m)(m=1,2,…M)の一例を示したもので、特に、中間点Q2付近のウィービング周期1.5周期分の溶接トーチのTCP位置を示したものである。
【0031】
また、図2は、図1において、教示点Q2で溶接トーチの主軌道Lを90度上方に屈曲させたときのウィービング周期1.5周期分の溶接トーチのTCP位置の変化を示したものである。なお、溶接トーチのTCP位置の変化を分かり易くするために、図2では、極端に屈曲した場合の例として、主軌道Lが90度屈曲した場合を描いている。
【0032】
図1では、教示点Q1Q3間の溶接トーチの主軌道Lは直線であるから、各補間点P(m)における進行方向座座標系は同一である。従って、溶接トーチはほぼ正弦波状にTCP位置Pw(m)を変位させながら主軌道L上を移動することになる。
【0033】
なお、補間点P(1),P(7),P(13),P(19)のウィービング変位量は0のため、これらの補間点P(1),P(7),1P(13),P(19)の溶接トーチのTCP位置は、主軌道L上に位置している。また、補間点P(7)〜P(19)の区間はウィービング周期1周期分の主軌道Lの距離に相当し、補間点P(7)〜P(10),P(10)〜P(13),P(13)〜P(16),P(16)〜P(19)の各区間はウィービング周期1/4周期分の主軌道Lの距離に相当している。
【0034】
また、図2において、Pw(1),Pw(2),…,Pw(19)も各補間点P(1)〜P(19)のウィービング動作における溶接トーチのTCP位置であるが、教示点Q2で主軌道Lの進行方向が上方に屈曲し、これに伴い補間点P(11),…,P(19)における進行方向座標系が補間点P(1),…,P(10)における進行方向座標系に対して90度変化するので、補間点P(11),P(12),…,P(19)におけるTCP位置は図1とは異なる位置になっている。
【0035】
また、図2において、Pw(11)’,Pw(12)’は、補間点P(11),P(12)に対する溶接トーチのTCP位置を補正した位置を示している。従来技術の欄で説明したように、教示点Q2で主軌道Lの進行方向を大きく屈曲させると、教示点Q2より後の補間点P(11)に対する溶接トーチのTCP位置は大きく変化し、これにより補間点P(10)における溶接トーチのTCP位置Pw(10)から補間点P(11) における溶接トーチのTCP位置Pw(11)に移動する際の溶接トーチの移動ベクトルはd(図1参照)からd’(図2参照)に急変し、溶接トーチの飛びが発生することになる。
【0036】
溶接トーチの移動ベクトルが急変するのは、主軌道Lの進行方向が屈曲する直前の補間点(図2では、補間点P(10))から溶接トーチの主軌道Lの進行方向が屈曲した直後の補間点(図2では、補間点P(11))に移動するときである。本実施形態では、その後の溶接トーチの移動を滑らかにするため、溶接トーチの主軌道の進行方向が屈曲した直後からウィービング周期の1/4周期に相当する距離に存在する補間点のTCP位置を補正するようにしている。
【0037】
なお、教示点Q1〜Q3及び各補間点P(m)の座標は、溶接ロボットの設置位置に定義される基本座標系で決定されるものであり、各補間点P(m)に対するTCP位置Pw(m)の座標は基本座標系に変換することにより決定されることになるが、溶接ロボットの制御は各アームの回転位置を制御することによって行われるので、溶接ロボットの制御データとしては、基本座標系におけるTCP位置Pw(m)の座標のデータではなく、各補間点P(m)に対するTCP位置Pw(m)に溶接トーチの先端を移動させるための各アームの回転位置のデータが算出されることになる。
【0038】
ここでは、溶接トーチの飛びの抑制方法の原理を説明するので、以下では、便宜上、各補間点P(m)に対するTCP位置Pw(m)の座標を用いて説明することにする。
【0039】
本願発明に係るウィービング動作における飛びの抑制方法では、溶接トーチの主軌道Lの進行方向が屈曲した直前の補間点からウィービング周期の1/4周期に相当する距離に存在する補間点(図2の例では、補間点P(11),P(12),P(13))に対するTCP位置を下記演算式(1)によって補正し、溶接トーチの飛びが発生した部分での各補間点間の溶接トーチの移動距離を短くする。
【0040】
【数1】
【0041】
なお、(1)式において、Pw(m)、Pw(m)’は、それぞれ補間点P(m)のウィービング変位量加算後のTCP位置の補正前と補正後の座標である。dは、主軌道の方向が変化する直前の補間点P(r)のTCP位置Pw(r)から主軌道の方向が変化した直後の補間点P(r+1)のTCP位置Pw(r+1)へのベクトル(以下、「飛びベクトル」という)であり、図2の例ではd=Pw(11)−Pw(10)となる。
【0042】
また、Tは、TCP位置の補正が行われる複数の補間点を含む主軌道の区間を溶接トーチが移動する時間であり、図2の例では、ウィービング周期τの1/4の区間を溶接トーチが移動する時間としている。また、t0は、主軌道の補間点間を移動する溶接トーチの移動時間であり、cは、c・t0がTを超えないt0のカウント数である。cは、主軌道の方向が変化する直前の補間点P(r)からカウントが開始されるので、t0,2・t0,3・t0,…は、それぞれ補間点P(r+1),P(r+2),P(r+3),…に対応することになる。
【0043】
図2の例では、ウィービング周期τが12・t0で、T=12・t0/4=3・t0であるから、補間点P(10)からcのカウントが開始されると、補間点P(11)からP(13)までのTCP位置が補正されることになる。
【0044】
(1)式により、補間点P(11),P(12) ,P(13)のTCP位置Pw(11),Pw(12),Pw(13)は、それぞれ、Pw(11)’,Pw(12)’,Pw(13)’に補正される。尤も、補間点P(13)のTCP位置Pw(13)は、c=3でT=3・t0なので、TCP位置Pw(13)’=Pw(13)となり、実質的に補正されないことになる。
【0045】
【数2】
【0046】
なお、(2)式で算出されるTCP位置Pw(11)’は、TCP位置Pw(11)に−(2/3)・d’のベクトルを加算した位置であるから、図2に示すように、TCP位置Pw(10)とTCP位置Pw(11)を結ぶ線分を1:2で内分した位置となる。
【0047】
また、(3)式で算出されるTCP位置Pw(12)’は、TCP位置Pw(12)に−(1/3)・d’のベクトルを加算した位置であるから、図2に示すように、TCP位置Pw(12)を通るTCP位置Pw(10)とTCP位置Pw(11)を結ぶ線分と平行な直線上であって、TCP位置Pw(12)から|d’|/3だけTCP位置Pw(10)側に寄った位置である。
【0048】
なお、図2の例では、c=3であったが、一般に、c・t0<τ/4を満たすcの最大値をCとすると、主軌道の方向が変化した直後の補間点P(r+1)からC個の補間点P(r+C)についてTCP位置が補正されるとすると、各TCP位置Pw(r+1),Pw(r+2),…,Pw(r+C)は、それぞれ、Pw(r+1)’,Pw(r+2) ’,…,Pw(r+C)’に補正される。なお、dは、補間点P(r)のTCP位置Pw(r)から補間点P(r+1)のTCP位置Pw(r+1)に向かうベクトルである。
【0049】
【数3】
【0050】
これにより、TCP位置Pw(r+1)',TCP位置Pw(r+2)',…,Pw(r+C)'は、TCP位置Pw(r)側に寄ることになり、これらのTCP位置Pw(r),Pw(r+1)',Pw(r+2)',…,Pw(r+C)'は滑らかに連続し、各TCP位置の間隔が大きく離れないものに補正される。
【0051】
なお、「背景技術」の欄で説明したように、ウィービングが姿勢の変化を伴う場合、溶接トーチの飛びとともにそれに応じて溶接トーチの姿勢も大きく変わるから、この溶接トーチの姿勢についても、溶接トーチのTCP位置の補正と同様の考え方による下記(5)式で補正することにより、溶接トーチの姿勢の急変を抑制することができる。
【0052】
【数4】
【0053】
なお、(5)式において、Rw(m)、Rw(m)’は、それぞれ溶接トーチの補正前と補正後の姿勢をあらわす回転行列である。Kr、Δφは、それぞれ主軌道の方向が変化する
前の溶接トーチの姿勢から主軌道の方向が変化した後の溶接トーチの姿勢への回転中心軸ベクトルと回転角度(以下、「飛び回転角度」という。)である。すなわち、主軌道の方向が変化する前の溶接トーチの姿勢Rw(m-1)をKrベクトル周りにΔφ回転させると主
軌道の方向が変化した後の溶接トーチの姿勢Rw(m)となる。Kr、Δφは次式より算出
される。
【0054】
【数5】
【0055】
なお、姿勢の変化を伴わないウィービングの場合、ウィービング変位量加算後の姿勢は主軌道の姿勢と同じであるため、主軌道の方向が変化する前の溶接トーチの姿勢Rw(m-1)と主軌道の方向が変化した後の溶接トーチの姿勢Rw(m)はともに両者の間にある教示点姿勢とほぼ同じである。よって、溶接トーチの姿勢は急変しない。
【0056】
図3は、図2の例での補間点P(11) のTCP位置Pw(11)における溶接トーチの姿勢の補正を表す図である。(6)式により、TCP位置Pw(11) における溶接トーチの姿勢Rw(11)はRw(11)’に補正される。補正後の溶接トーチの姿勢Rw(11)’は、補正前の溶接トーチの姿勢Rw(11)をKrベクトル周りにΔφ’=(1/3) Δφだけ逆方向に
回転させて得られる。
【0057】
【数6】
【0058】
また、(5)式によれば、溶接トーチの姿勢については、TCP位置Pw(r+1),Pw(r+2),…,Pw(r+C)がそれぞれPw(r+1)’,Pw(r+2)’,…,Pw(r+C)’に補正されるのに応じて、各TCP位置Pw(r+1)’,Pw(r+2)’,…,Pw(r+C)’における溶接トーチの姿勢を示す回転行列は、それぞれ、下記のように補正されることになる。
【0059】
【数7】
【0060】
これにより、各TCP位置Pw(r+1)',TCP位置Pw(r+2)',…,Pw(r+C)'で溶接トーチの姿勢を少しずつ変更させることができる。
【0061】
図4は、本願発明に係る溶接ロボット制御装置が適用される溶接ロボット制御システムを示す構成図である。この溶接ロボット制御システムでは、溶接ロボットに設けられた溶接トーチによってワーク(被溶接物)に対して溶接が行われる。
【0062】
溶接ロボット制御システムは、溶接ロボット10と、溶接ロボット制御装置20と、溶接電源装置30とによって大略構成されている。
【0063】
溶接ロボット10は、ワークWに対して例えばアーク溶接を自動で行うものである。溶接ロボット10は、フロア等の適当な箇所に固定されるベース部材11と、それに複数の軸を介して連結された複数のアーム12と、複数のアーム12の両端又は片端に設けられた複数の駆動モータ(サーボモータ)13(一部図示略)とによって構成されている。
【0064】
溶接ロボット10には、最も先端側に設けられたアーム12の先端部に、溶接トーチ14が設けられている。溶接トーチ14は、溶加材としての例えば直径1mm程度の溶接ワイヤ15をワークWの所定の溶接位置に導くものである。
【0065】
溶接ロボット10の上部には、ワイヤ送給装置16が設けられている。ワイヤ送給装置16は、溶接トーチ14に対して溶接ワイヤ15を送り出すためのものである。ワイヤ送給装置16は、溶接ワイヤ15が巻回された図示しないリールと、リールを回転させる送給モータ17とによって構成され、送給モータ17は、溶接電源装置30によって回転駆動される。
【0066】
ワイヤ送給装置16には、溶接ワイヤ15を案内するためのコイルライナ19が接続され、コイルライナ19の先端は、溶接トーチ14に接続されている。これにより、ワイヤ送給装置16によって送り出された溶接ワイヤ15は、コイルライナ19を介して溶接トーチ14に導かれる。溶接ワイヤ15は、溶接トーチ14から外部に突出して消耗電極として機能する。すなわち、溶接電源装置30によって溶接ワイヤ15の先端とワークWとの間に高電圧を印加してアークを発生させ、そのアークの熱で溶接ワイヤ15を溶融させることにより、ワークWに対して溶接が施される。
【0067】
各アームに設けられた駆動モータ13は、溶接ロボット制御装置20からの駆動信号によって回転駆動され、この各駆動モータ13が回転駆動されることにより、各アーム12が変位し、結果的に溶接トーチ14が上下前後左右に移動可能とされる。
【0068】
さらに、本実施形態では、各駆動モータ13が回転駆動されることにより、溶接トーチ14のウィービング動作が行われる。ウィービング動作とは、上述したように、溶接トーチ14を溶接進行方向に対して直交する方向に揺動させる動作をいう。本実施形態に係る溶接ロボット10は、図4に示すように、複数の関節を有する多関節の溶接ロボットであり、これら複数の関節を複合動作させることにより、溶接トーチ14が溶接進行方向に対して直交方向に揺動されるように制御される(図12の正弦波状の軌跡を参照)。
【0069】
なお、各駆動モータ13には、図示しないエンコーダが設けられている。エンコーダの出力は、溶接ロボット制御装置20に入力され、溶接ロボット制御装置20では、エンコーダの出力によって溶接トーチ14の現在位置を認識するようになっている。
【0070】
溶接ロボット制御装置20は、溶接ロボット10の動作を制御するためのものである。溶接ロボット制御装置20は、予め記憶されている制御ソフトウェア及び図示しないエンコーダからの現在位置情報等に基づいて、溶接ロボット10の各駆動モータ13の駆動を制御して、溶接トーチ14をワークWの所定の溶接点に移動させる。また、溶接ロボット制御装置20は、各駆動モータ13の駆動を制御して、溶接トーチ14を揺動させることにより、上記ウィービング動作を実行する。
【0071】
溶接電源装置30は、図示しない溶接電源を備えており、溶接電源は溶接トーチ14とワークWとの間に高電圧の溶接電圧を供給するものである。また、溶接電源装置30は、所定のタイミングでワイヤ送給装置16の送給モータ17を駆動させる機能をも有している。
【0072】
図5は、溶接ロボット制御装置20の内部構成及びその周辺装置を示すブロック図である。溶接ロボット制御装置20は、CPU21、RAM22、ROM23、タイマ(TIMER)24、ハードディスク25、ティーチングペンダントI/F26、操作ボックスI/F27、及びサーボドライバI/F28を備えており、各部はバス(BUS)31によって相互に接続されている。
【0073】
ティーチングペンダントI/F26には、ティーチングペンダント33が接続され、操作ボックスI/F27には、操作ボックス34が接続されている。また、サーボドライバI/F28には、溶接ロボット制御装置20の内部に設けられた6つのサーボドライバ35が接続され、サーボドライバ35には、溶接ロボット10に設けられた6つの駆動モータ13がそれぞれ接続されている。
【0074】
CPU21は、本溶接ロボット制御装置20の制御中枢となるものであり、教示された作業プログラム、ティーチングペンダント33や操作ボックス34からの操作信号、あるいは図示しないエンコーダからの現在位置情報等に基づいて、所定のデータ処理を行い、バス31及びサーボドライバI/F28を介してサーボドライバ35に動作指令を与える。これにより、駆動モータ13が回転駆動され、溶接トーチ14が移動される。
【0075】
RAM22は、CPU21に対して作業領域を提供するものであり、計算データ等を一時的に記憶する。RAM22は、例えば後述する動作命令バッファ41、軌道バッファ42、補間点バッファ43、又は関節補間点バッファ44として機能する。
【0076】
ROM23は、溶接ロボット10の動作を制御するための制御ソフトウェアを格納するものである。
【0077】
ハードディスク25は、溶接ロボット10の溶接作業が教示された作業プログラム、この作業プログラムの実行条件を示すデータ、制御定数を示すデータ等を格納するものである。
【0078】
タイマ24は、予め定められた定期時刻ごとに同期信号をCPU21に対して発生するものである。同期信号は、CPU21がサーボドライバ35に対して動作指令信号を出力する際の更新タイミングとして用いられる。
【0079】
ティーチングペンダントI/F26は、ティーチングペンダント33とのインターフェースを司るものである。ティーチングペンダント33は、例えば表示装置33aとキーボード33bとを有し、溶接ロボット10の動作を手動で行う際にユーザによって操作されるものである。CPU21は、このティーチングペンダント33からの操作信号を受け取ることにより所定のデータ処理を行うとともに、ティーチングペンダント33に対して表示データを送ることにより、操作情報を表示させる。
【0080】
操作ボックスI/F27は、操作ボックス34とのインターフェースを司るものである。操作ボックス34は、自動運転モード又は手動モードの選択、起動、開始、停止等の各種操作をユーザによって可能にするものである。CPU21は、この操作ボックス34からの操作信号を受け取ることにより所定のデータ処理を行う。
【0081】
サーボドライバI/F28は、サーボドライバ35とのインターフェースを司るものである。サーボドライバ35は、CPU21からの動作指令信号に基づいて、6つの駆動モータ13をそれぞれ駆動制御するものである。
【0082】
図6は、サーボドライバ35によるサーボ制御の概念を示すブロック図である。この図によると、溶接ロボット10の各関節における位置指令は、位置制御ブロック51に入力され、位置制御ブロック51の出力は、速度制御ブロック52に入力される。速度制御ブロック52の出力は、電流制御ブロック53に入力され、電流制御ブロック53の出力は、駆動モータ13に入力される。駆動モータ13の出力は、例えば減速器からなる減速機構のばね要素ブロック54を介して、負荷としてのアーム12に与えられる。
【0083】
駆動モータ13には、電流検出ブロック55が接続され、電流検出ブロック55において駆動モータ13に流れる電流が検出され、その値は電流制御ブロック53にフィードバックされる。また、駆動モータ13には、エンコーダ56が接続され、エンコーダ56によって現在の回転速度(アームの移動速度に対応)のデータが取得され、その回転速度データは、位置制御ブロック51と速度制御ブロック52にフィードバックされる。
【0084】
位置制御ブロック51では、フィードバックされた回転速度データが積分ブロック57によって積分されることにより位置データに変換されて減算器61に入力され、この減算器61により位置指令(関節角度)に対する現在の位置(関節角度)の誤差データが演算される。この誤差データは増幅器58により所定のゲインKpp(以下、位置フィードバックゲインという。)でレベル補正が行なわれた後、加算器62に入力される。
【0085】
また、位置制御ブロック51では、溶接ロボット10の各関節における位置指令のデータは、微分ブロック59によって微分されることにより速度データに変換され、さらに増幅器60により所定のゲインKff(以下、速度フィードフォワードゲインという。)でレベル補正が行なわれた後、加算器62に入力される。加算器62では速度フィードフォワードゲインKffから出力される速度データと、位置フィードバックゲインKppから出力される誤差データとが加算されて、上述した速度制御ブロック52に出力される。
【0086】
このように、溶接ロボット10の各関節における位置指令に対して駆動モータ13の動作をフィードバック制御させることにより、予め教示された作業プログラムの再生動作をより正確に行うことができる。
【0087】
図7は、CPU21及びRAM22の実際的な機能をブロックにして表した場合の構成図である。
【0088】
CPU21の機能としては、動作命令読出部36、軌道生成部37、補間点生成部38、関節角度生成部39、及びサーボ出力部40によって表され、RAM22の機能としては、動作命令バッファ41、軌道バッファ42、補間点バッファ43、及び関節角度バッファ44によって表される。なお、各バッファ41〜44は、FIFO(first-in first-out)バッファとして構成されており、先入れ及び先出しでデータが処理される。
【0089】
動作命令読出部36は、ハードディスク25に記憶された作業プログラムから、溶接ロボット10の動作命令に関する情報(例えば座標、速度情報等のデータからなる軌道命令)を読み出し、動作命令バッファ41に格納する。
【0090】
軌道生成部37は、動作命令バッファ41から動作命令に関する情報(動作命令コマンド)を読み出し、それに基づいて溶接ロボット10の溶接トーチ14の作業軌道を三次元空間の直交座標上で計画する。軌道生成部37は、計画された軌道データを軌道バッファ42に格納する。
【0091】
補間点生成部38は、軌道バッファ42から軌道データを読み出し、その軌道データを、「補間周期」と呼称される所定時間毎に分割する。そして、補間周期毎に直交座標によって表される、溶接トーチ14が到達すべき位置、姿勢を示す補間点データを算出する。すなわち、軌道データは、溶接開始点から溶接終了点に至る溶接トーチ14の移動軌跡を複数の教示点によって表すとともに、教示点間の溶接トーチ14の移動方法を直線移動や円弧移動によって定義したものである。補間点生成部38は、隣接する教示点間において溶接トーチ14が通過すべき点とその点における溶接トーチ14の姿勢等のデータを補間周期毎に補間している。補間点生成部38は、算出した補間点データを補間点バッファ43に格納する。
【0092】
関節角度生成部39は、補間点バッファ43から溶接トーチ14の到達位置、姿勢を示す補間点データを読み出し、溶接ロボット10の各関節における関節角度を示すデータに逆変換する演算を行い、算出した関節角度データを関節角度バッファ44に格納する。なお、本実施形態の特徴であるウィービング動作時の飛び補正は、主にこの関節角度生成部39において実現されるようになっている。これについては後述する。
【0093】
関節角度バッファ44に格納された、溶接ロボット10の関節角度データは、タイマ24によって発生される同期信号SYNCに同期してサーボ出力部40に通知される。そして、上記関節角度データは、サーボ出力部40から所定のタイミングでサーボドライバI/F28を介してサーボドライバ35へ各関節の位置指令(駆動モータ13に対する動作指令)として出力される。
【0094】
図8は、関節角度生成部39の機能を更に細かくブロックにして表した場合の構成図である。
【0095】
関節角度生成部39は更に、ウィービングデータ読出部391、ウィービング変位量算出部392、TCP位置姿勢算出部393、方向変化検出部394、飛び検出部395、飛び補正部396、逆変換部397によってあらわされる。
【0096】
ウィービングデータ読出部391は、教示作業プログラムからウィービング変位量を算出するために必要な周期、振幅、波形などからなるウィービングデータを読み出す。
【0097】
ウィービング変位量算出部392は、ウィービングデータ読出部391が読み出したウィービングデータからウィービング変位量を算出する。
【0098】
TCP位置姿勢算出部393は、補間点バッファ43に格納されている補間点データにウィービング変位量算出部392が算出したウィービング変位量を加算してTCP位置を算出する(図13参照)。また、補間点バッファ43に格納されている補間点データから溶接トーチの姿勢が算出される。
【0099】
方向変化検出部394は、補間点バッファ43に格納されている補間点データと軌道バッファ42に格納されている教示点データから主軌道の方向変化があったか否かを判断し、主軌道方向変化があった場合は方向変化前後の主軌道方向の交差角を算出する。
【0100】
飛び検出部395は、方向変化検出部394が主軌道の方向変化があったと判断した場合に、方向変化前後の主軌道方向の交差角と、TCP位置姿勢算出部393が算出したTCP位置と前回のTCP位置との距離と溶接トーチの姿勢の変化とから、飛び補正が必要か否かを判断する。
【0101】
飛び補正部396は、飛び検出部395により飛び補正が必要と判断された場合には、TCP位置姿勢算出部393が算出したTCP位置または溶接トーチの姿勢の飛び補正を行い、飛び補正が必要でないと判断された場合には、飛び補正を行わずTCP位置と溶接トーチの姿勢をそのままとする。
【0102】
逆変換部397は、飛び補正部396で算出されたTCP位置と溶接トーチの姿勢から溶接ロボット10の各関節における関節角度を示すデータに逆変換する演算を行い、算出した関節角度データを関節角度バッファ44に格納する。
【0103】
次に、本実施形態に係るウィービング動作における溶接トーチの飛びを抑制する制御について、図9、図10に示すフローチャートと図2を参照して説明する。なお、上述のように、本実施形態では、溶接トーチの飛びを抑制するために、溶接トーチのTCP位置と溶接トーチの姿勢を補正しているので、以下では、両者の補正を「飛び補正」といい、両者を区別する必要がある場合は、前者を「位置飛び補正」といい、後者を「姿勢飛び補正」という。
【0104】
図9は関節角度生成部39で実行される、本実施形態における特徴的なウィービング動作における溶接トーチの飛びを抑制する制御を表すフローチャートである。
【0105】
この制御は開始位置(補間カウンタm=0、図2では教示点Q1)から目標位置(図2では教示点Q3)に達するまで実行され、各補間点P(1),P(2),…における溶接ロボット10の各関節角度を示す関節角度データを算出する。
【0106】
まず、補間カウンタmが0に初期化され、位置飛びフラグおよび姿勢飛びフラグがOFFに設定される(S1)。位置飛びフラグは、位置飛び補正が必要か否かを設定するフラグで、必用な場合はONにする。姿勢飛びフラグは、姿勢飛び補正が必要か否かを設定するフラグで、必用な場合はONにする。
【0107】
次に、補間カウンタmが1増加され(S2)、目標位置(教示点Q3)に達したか否かが判別される(S3)。目標位置(教示点Q3)に達しない場合(S3:NO)は、ステップ4に進み、目標位置(教示点Q3)に達した場合(S3:YES)は処理を終了する。
【0108】
ステップS4において、関節角度生成部39は、補間点バッファ43から補間点データを読み出す。ここで、補間点データとは、開始位置(教示点Q1)から目標位置(教示点Q3)に達するまでの間に存在する、溶接トーチ14の先端が移動すべき位置(溶接すべき位置を含む)P(m)、及びその位置における溶接トーチ14の姿勢R(m)よりなるデータである。
【0109】
次に、補間点P(m)が主軌道方向の変化する教示点を越えた最初の補間点であるか否か判断される(S5)。図2の例では、補間点P(11)であるか否かが判断される。補間点生成部38において、軌道バッファ42の軌道データから補間点データを算出する際に、軌道データに含まれる教示点の情報から、その補間点が教示点を越えた最初の補間点であることが判断でき、その情報も含めて補間点データが補間点バッファ43に格納されている。
【0110】
ところで、溶接ロボット10には、補間点やTCP位置を表すための座標系として、基準座標系と進行方向座標系が設定されている。基準座標系は、溶接ロボット10の設置位置に固定的に設定されている。一方、進行方向座標系は、溶接トーチ14の先端(ツールセンタポイント)に設定されるもので、溶接トーチ14の移動に伴って移動する。すなわち、進行方向座標系の原点位置の基準座標系における位置は、溶接トーチ14の移動によって変化する。
【0111】
補間点P(m)が主軌道方向の変化する教示点を越えた最初の補間点でない場合(S5:NO)、補間点P(m-1),P(m)から主軌道進行方向の進行方向座標系(n、o,a)が算出される。図2の例では、補間点P(9),P(10)から主軌道進行方向の進行方向座標系(n、o,a)が算出される。
【0112】
なお、tが溶接トーチ軸方向の単位ベクトルとすると、aはP(m-1)P(m)方向の単位ベクトル、oはtとaに対して垂直方向の単位ベクトル、nはoとaに対して垂直方向の単位ベクトルとする(図13参照)。この座標上におけるo方向のウィービング変位量Hが基準座標系に変換され、P(m)に加算されることで、TCP位置Pw(m)が算出される(S6)。なお、ウィービング前後で溶接トーチの姿勢は変わらないので、補間点P(m)における溶接トーチの姿勢R(m)と、ウィービング変位量加算後の溶接トーチの姿勢Rw(m)は同じである。
【0113】
次に、飛びフラグがONになっているかが判別される(S7)。位置飛びフラグONまたは姿勢飛びフラグONの場合(S7:YES),飛び補正が行われ(S8)、ステップ9に進む。なお、飛び補正については後述する。位置飛びフラグと姿勢飛びフラグがともにOFFの場合(S7:NO)、そのままステップ9に進む。
【0114】
ステップS9では、TCP位置Pw(m)、溶接トーチの姿勢Rw(m)((飛び補正した場合はPw (m)’Rw(m)’)の逆変換により、溶接ロボット10の各関節角度を示す関節角度データが算出され、関節角度バッファ44に格納され、ステップS2に戻る。
【0115】
ステップS5において、補間点P(m)が主軌道方向の変化する教示点Qを越えた最初の補間点である場合(S5:YES)、飛び補正が必要か否かを判別するための指標としてθ、d、φが算出される(S10)。まず、主軌道の方向変化を見るために、P(m-1)QとQP(m)の交差角θが算出される。次に、Q,P(m)から主軌道進行方向の進行方向座標系(n、o,a)が算出され、この座標上におけるo方向のウィービング変位量Hが基準座標系に変換され、P(m)に加算されることで、TCP位置Pw(m)が算出される。そして、直前のTCP位置Pw(m-1)との位置関係を見るために、飛びベクトルd=Pw(m)−Pw(m-1)が算出される。次に、TCP位置Pw(m)における溶接トーチの姿勢Rw(m)を求め、直前のTCP位置Pw(m-1)における溶接トーチの姿勢Rw(m-1)からの溶接トーチの姿勢変化を見るために、Rot(Kr,φ)=Rw(m-1)-1・Rw(m)により姿勢飛び回転角度φを求める。なお、姿勢の変化を伴うウィービングの場合、補間点P(m)における溶接トーチの姿勢R(m)からTCP位置Pw(m)における溶接トーチの姿勢Rw(m)を求める方法はウィービングのタイプにより異なり、ここでは省略する。姿勢の変化を伴わないウィービングの場合、ウィービング前後で溶接トーチの姿勢は変わらないので、Rw(m)=R(m)となる。
【0116】
次に、飛び補正が必要か否かを判断するために、θ>飛び補正必要角度θ0であるか否か判別される(S11)。θがある一定角度以内であれば、主軌道の方向変化が少ないので、TCP位置および溶接トーチの姿勢が滑らかに繋がる。よって飛び補正は行われない。θ0は溶接ロボットにより変わり、例えばθ0=5°に設定してある。
【0117】
θ≦θ0の場合(S11:NO)、飛び補正は必要ないのでステップS7に進む。θ>θ0の場合(S11:YES)、位置飛び補正が必要か否かを判断するために、|d|>位置飛び補正必要距離d0であるか否か判別される(S12)。主軌道方向が大きく変化したとしても、そのときのウィービング変位量が小さい場合は、直前のTCP位置からの距離は短く、溶接トーチは滑らかに移動するため、位置飛び補正の必要がない。そこで、飛びベクトルdの大きさ(以下、「飛び量」という)をある一定値と比較する。d0も溶接ロボットにより変わり、本実施形態では、例えばd0=1mmに設定してある。|d|≦d0の場合(S12:NO)、位置飛び補正は必要ないので、そのままステップS14に進む。|d|>d0の場合(S12:YES)、位置飛び補正が必要なので、位置飛びフラグがONに設定され(S13)、ステップS14に進む。
【0118】
次に、姿勢飛び補正が必要か否か判断するために、φ>姿勢飛び補正必要回転角度φ0であるか否か判別される(S14)。φ0は溶接ロボットにより変わるが、本実施形態では、例えばφ0=0.1度に設定してある。φ≦φ0の場合(S14:NO)、姿勢飛び補正は必要ないので、そのままステップS16に進む。φ>φ0の場合(S14:YES)、姿勢飛び補正が必要なので、姿勢飛びフラグがONに設定され(S15)、ステップS16に進む。
【0119】
位置飛びフラグがONまたは姿勢飛びフラグがONの場合(S16:YES)、飛び補正が必要な期間をカウントするためのカウンタcが0に初期化され(S17)、ステップS7に進む
【0120】
次に、飛び補正の方法を図10に示すフローチャートを元に説明する。
【0121】
まず、カウンタcが1増加され(S21)、c・t0がTを超えたか否か判別される(S22)。t0は補間周期であり、c・t0は飛び補正が始まる直前のTCP位置決定後からの経過時間である。Tは飛び補正を行う期間であり、予め一定の値を設定(例えばウィービング周期の1/4に設定)しておいてもよいし、飛び補正後の各点間の距離がd0以下で各姿勢間の回転角度がφ0以下となればよいので、主軌道方向の変化角度θや飛び量|d|、姿勢飛び回転角度φにより算出してもよい。
【0122】
c・t0がTを超えれば(S22:YES)、すなわち、飛び補正期間が終了すれば、位置飛びフラグおよび姿勢飛びフラグともにOFFに設定され(S23)終了する。c・t0がT以下であれば(S22:NO)、すなわち、飛び補正期間中であれば、飛び補正が行われるためにステップS24に進む。
【0123】
ステップS24では、位置飛びフラグがONか否か判別される(S24)。位置飛びフラグがONの場合(S24:YES)、TCP位置Pw(m)’が算出されて(S25)、S26に進む。TCP位置Pw(m)’は式(1)により算出される。位置飛びフラグがOFFの場合(S24:NO)、そのままS26に進む。
【0124】
ステップS26では、姿勢飛びフラグがONか否か判別される(S26)。姿勢飛びフラグがONの場合(S26:YES)、溶接トーチの姿勢Rw’(m)が算出されて(S25)、S26に進む。溶接トーチの姿勢Rw(m)’は式(5)により算出される。姿勢飛びフラグがOFFの場合(S26:NO)、終了する。
【0125】
上記のように、本実施形態では、ウィービング周波数と溶接速度は変化させることなく、飛びが発生する場合は飛び補正を行うことにより、ウィービング波形を連続させて溶接作業を行うように制御できる。
【0126】
なお、本実施形態では、主軌道の進行方向が変化する場合について説明したが、主軌道の進行方向が変化しない場合でもウィービング振幅が途中で急変する場合は、同様に溶接トーチの飛びが発生するので、このような場合にも、変化前後のウィービング後のTCP位置から飛びベクトルを求め、飛び量が一定値以上大きい場合は、一定期間、式(1)を使って飛び補正を行うことにより、溶接トーチの飛びを抑制することができる。なお、この場合は、主軌道の進行方向が変化しないので、溶接トーチの姿勢は変化することがなく、従って、位置飛び補正だけをすればよい。また、補正を行う期間は予め一定の値を設定(例えばウィービング周期の1/4に設定)しておいてもよいし、飛び補正後の各点間の距離が一定値以下となればよいので、振幅の変化割合や飛び量により算出してもよい。
【0127】
図11は、ウィービング振幅が途中で急変する場合の溶接トーチのTCP位置の変化を示したもので、教示点Q1Q3間の溶接トーチの主軌道L上の教示点Q2でウィービング振幅を半分にしたものである。主軌道L上の各補間点P(1)〜P(19)のウィービング動作における溶接トーチのTCP位置はPw(1),Pw(2),…,Pw(19)となるが、教示点Q2でウィービング振幅を急変しているので、(1)式により、TCP位置Pw(11),Pw(12),Pw(13)は、それぞれ、Pw(11)’,Pw(12)’,Pw(13)’に補正される。尤も、補間点P(13)のTCP位置Pw(13)は、TCP位置Pw(13)’=Pw(13)となり、実質的に補正されないことになる。
【0128】
【数2】
【0129】
なお、(2)式で算出されるTCP位置Pw(11)’は、TCP位置Pw(11)に−(2/3)・d’のベクトルを加算した位置であるから、図11に示すように、TCP位置Pw(1
0)とTCP位置Pw(11)を結ぶ線分を1:2で内分した位置となる。
【0130】
また、(3)式で算出されるTCP位置Pw(12)’は、TCP位置Pw(12)に−(1/3)・d’のベクトルを加算した位置であるから、図11に示すように、TCP位置Pw(12)を通るTCP位置Pw(10)とTCP位置Pw(11)を結ぶ線分と平行な直線上であって、TCP位置Pw(12)から|d’|/3だけTCP位置Pw(10)側に寄った位置である。
【図面の簡単な説明】
【0131】
【図1】溶接トーチの飛びを抑制する方法を説明するための図で、主軌道の進行方向が変化しないときの溶接トーチのTCT位置を示す図である。
【図2】溶接トーチの飛びを抑制する方法を説明するための図で、主軌道の進行方向が変化したときの溶接トーチのTCT位置を示す図である。
【図3】溶接トーチの姿勢の補正を表す図である。
【図4】本願発明に係る溶接ロボット制御装置が適用される溶接ロボット制御システムを示す構成図である。
【図5】溶接ロボット制御装置の内部構成及びその周辺装置を示すブロック図である。
【図6】サーボドライバによるサーボ制御の概念を示すブロック図である。
【図7】CPU及びRAMの実際的な機能をブロックにして表した場合の構成図である。
【図8】関節角度生成部の機能を更に細かくブロックにして表した場合の構成図である。
【図9】関節角度生成部で実行される、ウィービング動作における溶接トーチの飛びを抑制する制御のメインフローチャートである。
【図10】飛び補正の制御を示すフローチャートである。
【図11】溶接トーチの飛びを抑制する方法を説明するための図で、ウィービング振幅が途中で急変したときの溶接トーチのTCP位置を示す図である。
【図12】ウィービング動作を説明するための図である。
【図13】ウィービング中の溶接トーチのTCP位置を説明する図である。
【図14】進行方向が変化したときのTCP位置の変化について説明する図である。
【符号の説明】
【0132】
10 溶接ロボット
13 駆動モータ
14 溶接トーチ
20 溶接ロボット制御装置
21 CPU
22 RAM
25 ハードディスク
28 サーボドライバI/F
30 溶接電源装置
35 サーボドライバ
39 関節角度生成部
42 軌道バッファ
43 補間点バッファ
44 関節角度バッファ
51 位置制御ブロック
58 位置フィードバックゲイン
W ワーク(被溶接物)
【技術分野】
【0001】
本願発明は、ワークに対して溶接を行う溶接ロボットの制御装置に関するものである。
【背景技術】
【0002】
従来、ワークに対して溶接を行う多関節溶接ロボットにおいては、ウィービング動作と呼称される動作を行うものがある。ウィービング動作とは、図12に示すように、予め記憶された作業プログラムによって溶接ロボット100の各アーム101の駆動モータ102をサーボ制御によって回転駆動させることにより、溶接トーチ103の先端を溶接進行方向に対して直交する方向に揺動させる動作をいう。
【0003】
このウィービング動作では、ティーチングプレイバック方式に基づいて溶接部の形状に沿って溶接トーチ103が直線補間動作又は円弧補間動作を行いつつ、溶接トーチ103のツールセンタポイント(TCP)103aを、予め教示された振幅、周波数、及び波形に基づいて移動させる。このウィービング動作が行われることによって、良好でかつ確実な溶接を実現することができる。
【0004】
ウィービング中の溶接トーチのTCP位置は、教示点間を補間して得た主軌道上の各補間点に対して進行方向座標系を定義し、その座標系で算出されるウィービング変位量を溶接ロボットの設置位置に定義される基本座標系における各補間点の座標に加算することで決定される。例えば、図13に示すように、教示点Q1,Q2間をr個の補間点P1,P2,…Prで直線補間する場合、例えば、補間点P1における溶接トーチ103のTCP位置は、補間点P1に進行方向座標系(n,o,a)を定義し、例えばo方向が溶接面に沿う方向であるとすると、当該o方向にウィービング変位量Hだけ移動した点Pw1がウィービング中の溶接トーチ103のTCP位置になる。なお、図13において、tが溶接トーチ103の軸方向の単位ベクトルとすると、aはQ1Q2方向の単位ベクトル、oはtとaに対して垂直方向の単位ベクトル、nはoとaに対して垂直方向の単位ベクトルである。
【0005】
ところで、図14に示すように、教示点Q2で主軌道Lの進行方向を大きく変化させて教示点Q3の方向に溶接トーチ103を移動させる場合、教示点Q2Q3間も教示点Q1Q2間と同様に補間点P1’,P2’,…Pm’で直線補間して各補間点P1’〜Pm’でウィービング変位量を演算すると、補間点P1’の進行方向座標系のo’方向が補間点Prの進行方向座標系のo方向に対して大きく変化し、溶接トーチ103のTCP位置が大きく変化することになる。
【0006】
すなわち、溶接トーチ103のウィービング動作は、教示点Q1Q2間では、教示点Q2を通る主軌道L1に垂直な直線n1より教示点Q1側の領域で行われ、教示点Q2Q3間では、教示点Q2を通る主軌道L2に垂直な直線n2より教示点Q3側の領域で行われるから、補間点PrにおけるTCP位置Pwrから補間点P1’におけるTCP位置Pw1’に向かうベクトルd’は、直線n1と直線n2とで挟まれる、斜線で示す領域Aを跨ぐことになり、補間点Prまでの補間点間を移動する溶接トーチ103のベクトルdに対して、大きく変化することになる(図14のベクトルdとベクトルd’を参照)。
【0007】
このため、溶接トーチ103を、教示点Q1から教示点Q2を経由して教示点Q3にユーザが予め設定したウィービング条件(周波数や振幅)でウィービング動作をさせながら移動させると、溶接トーチ103は補間点PrのTCP位置Pwrから補間点P1’のTCP位置Pw1’に移動するときに、それまでの移動速度よりも高速で移動しなけばならず、溶接トーチ103の移動速度が急増する現象が生じる。この現象を「溶接トーチの飛び」という。
【0008】
特に姿勢の変化を伴うウィービングの場合、姿勢変化が進行方向座標系に対して定義されているため、主軌道の進行方向が変化することによって溶接トーチの飛びが起きると、補間点PrのTCP位置Pwrでの姿勢Rwrに対して補間点P1' のTCP位置Pw1'での姿勢Rw1'は進行方向の変化分だけ変化させなければならない。このために、各アーム101のサーボ制御に異常が発生し、作業が中断することになる。また、サーボ制御に異常が発生しなくても、主軌道L1,L2が急変する教示点Q2の付近における溶接トーチ103のウィービング動作が不連続になることに起因してビード形状が悪くなり、溶接品質が悪化する。
【0009】
従来、この溶接トーチの飛びを避ける方法として、教示点Q1Q2間の主軌道L1の終端点Q2におけるウィービング変位量を0にするとともに、教示点Q2Q3間の主軌道L2の開始点Q2におけるウィービング変位量を0にすることにより、主軌道の進行方向が変化する点Q2において、溶接トーチ103のTCP位置を一致させる方法が提案されている。
【0010】
例えば、特開平5−57642号公報にはウィービング周波数を変更することで、主軌道の変化点でのウィービング変位量を0にするよう調整する方法が提案されている。また、特開平6−87076号公報にはウィービング周期が主軌道の変化点で終了するように溶接速度を変化して、当該主軌道の変化点でのウィービング変位量を0にするよう調整する方法が提案されている。
【0011】
【特許文献1】特開平5−57642号公報
【特許文献2】特開平6−87076号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、上記従来の方法では、主軌道の変化点でのウィービング変位量を0にするために、例えば、図14の例では、教示点Q1Q2間におけるウィービング周波数若しくは溶接速度が教示点Q2Q3間におけるウィービング周波数若しくは溶接速度と異なることになる。このことは、教示点Q1から教示点Q3まで溶接トーチ103を移動させて一連の溶接処理をする上で、教示点Q1Q2間と教示点Q2Q3間とで溶接条件が変化することになるから、ビードの不均一の要因となり、溶接品質上問題となる。そして、この問題は、溶接トーチ103の主軌道の進行方向の変化数が多い溶接区間(溶接開始点から溶接終了点までの区間、図14の例では、教示点Q1から教示点Q3までの区間)ほど、大きくなる。
【0013】
従って、ウィービング周波数若しくは溶接速度を変化させることなく、しかも、主軌道の進行方向の変化点における溶接トーチの飛びを可及的に抑制しつつ、溶接トーチをウィービング動作させながら溶接区間を移動させる方法が望まれるが、従来、このような方法は提案されていない。
【0014】
本願発明は、上記した事情のもとで考え出されたものであって、主軌道の進行方向が大きく変化する場合でも、ユーザの教示どおりのウィービング周波数と溶接速度を維持したまま、溶接トーチの飛びを可及的に抑制して、ウィービング波形を連続させて溶接作業を行うように制御できる溶接ロボット制御装置を提供することをその課題としている。
【課題を解決するための手段】
【0015】
上記課題を解決するため、本願発明では、次の技術的手段を講じている。
【0016】
本願発明の第1の側面によって提供される溶接ロボット制御装置は、多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成され、前記溶接トーチの進行方向が途中で変化する主軌道上に、多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、隣接する教示点間から前記主軌道の進行方向を演算し、その進行方向が所定の角度以上に変化する教示点を算出する算出手段と、前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段とを備えたことを特徴とする(請求項1)。
【0017】
このような構成によれば、溶接の主軌道の進行方向が大きく変化する場合、進行方向変化後の一定期間、本来の溶接点の位置を位置補正手段で補正することにより、補正された溶接点が滑らかにつながり、ウィービング周波数や溶接速度を維持したまま、溶接トーチの飛びが発生しないようにウィービング波形を連続させて溶接作業を行うことができる。
【0018】
また、請求項1に記載の溶接ロボット制御装置において、前記主軌道の進行方向の変化する角度が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備えるとよい(請求項2)。
【0019】
このような構成によれば、主軌道方向の変化角度が大きいほど溶接トーチの飛びが大きくなるので、溶接点の補正を行う期間をより長く設定することで、補正後の溶接点がより滑らかにつながることになる。
【0020】
本願発明の第2の側面によって提供される溶接ロボット制御装置は、多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成された主軌道上に多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、前記教示点間毎の前記ウィービング動作における振幅のデータを記憶する記憶手段と、前記記憶手段に記憶された振幅のデータより前記ウィービング動作における振幅のデータが所定の閾値以上に変化する教示点を算出する算出手段と、前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段とを備えたことを特徴とする(請求項3)。
【0021】
このような構成によれば、ウィービングの振幅が大きく変化する場合、ウィービング振幅変化後の一定期間、本来の溶接点の位置を位置補正手段で補正することにより、補正された溶接点が滑らかにつながり、ウィービング周波数や溶接速度を維持したまま、飛びが発生しないようにウィービング波形を連続させて溶接作業を行うことができる。
【0022】
また、請求項3に記載の溶接ロボット制御装置において、前記ウィービング動作における振幅の変化割合が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備えるとよい(請求項4)。
【0023】
このような構成によれば、ウィービング振幅の変化割合が大きいほど溶接トーチの飛びが大きくなるので、溶接点の補正を行う期間をより長く設定することで、補正後の溶接点がより滑らかにつながることになる。
【0024】
また、請求項1ないし4に記載の溶接ロボット制御装置において、前記位置補正手段は、下記演算式(1)により前記所定数の補間点の各補間点の前記変位位置を補正するとよい(請求項5)。
【数1】
但し、Pw(m)’:補正後の変位位置
Pw(m) :補正前の変位位置
d:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトル
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【0025】
また、請求項1、2、5に記載の溶接ロボット制御装置において、前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点における前記溶接トーチの姿勢を、下記演算式(5)により補正する姿勢補正手段を更に備えるとよい(請求項6)。
【数4】
但し、Rw(m)’:補正後の溶接トーチの姿勢
Rw(m) :補正前の溶接トーチの姿勢
Kr:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化した後の溶接トーチの姿勢へ変化させるための回転中心軸ベクトル
Δφ:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化
した後の溶接トーチの姿勢へ変化させるための回転角度
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【0026】
このような構成によれば、溶接の主軌道の進行方向が大きく変化する場合、進行方向変化後の一定期間、本来の溶接トーチの姿勢を姿勢補正手段で補正することにより、補正された溶接トーチの姿勢が滑らかに変化し、飛びが発生しないようにウィービング波形を連続させて溶接作業を行うことができる。
【0027】
本願発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【発明を実施するための最良の形態】
【0028】
以下、本願発明の好ましい実施の形態を、図面を参照して具体的に説明する。
【0029】
まず、本願発明に係る溶接ロボット制御装置のウィービング動作における溶接トーチの飛びの抑制方法について、図1,図2、図3を用いて説明する。
【0030】
図1は、教示点Q1Q3間を直線補間した各補間点P(m)(m=1,2,…M)の座標に、各補間点P(m)に定義された進行方向座標系で算出されるウィービング変位量Hを加算して決定される溶接トーチのTCP位置Pw(m)(m=1,2,…M)の一例を示したもので、特に、中間点Q2付近のウィービング周期1.5周期分の溶接トーチのTCP位置を示したものである。
【0031】
また、図2は、図1において、教示点Q2で溶接トーチの主軌道Lを90度上方に屈曲させたときのウィービング周期1.5周期分の溶接トーチのTCP位置の変化を示したものである。なお、溶接トーチのTCP位置の変化を分かり易くするために、図2では、極端に屈曲した場合の例として、主軌道Lが90度屈曲した場合を描いている。
【0032】
図1では、教示点Q1Q3間の溶接トーチの主軌道Lは直線であるから、各補間点P(m)における進行方向座座標系は同一である。従って、溶接トーチはほぼ正弦波状にTCP位置Pw(m)を変位させながら主軌道L上を移動することになる。
【0033】
なお、補間点P(1),P(7),P(13),P(19)のウィービング変位量は0のため、これらの補間点P(1),P(7),1P(13),P(19)の溶接トーチのTCP位置は、主軌道L上に位置している。また、補間点P(7)〜P(19)の区間はウィービング周期1周期分の主軌道Lの距離に相当し、補間点P(7)〜P(10),P(10)〜P(13),P(13)〜P(16),P(16)〜P(19)の各区間はウィービング周期1/4周期分の主軌道Lの距離に相当している。
【0034】
また、図2において、Pw(1),Pw(2),…,Pw(19)も各補間点P(1)〜P(19)のウィービング動作における溶接トーチのTCP位置であるが、教示点Q2で主軌道Lの進行方向が上方に屈曲し、これに伴い補間点P(11),…,P(19)における進行方向座標系が補間点P(1),…,P(10)における進行方向座標系に対して90度変化するので、補間点P(11),P(12),…,P(19)におけるTCP位置は図1とは異なる位置になっている。
【0035】
また、図2において、Pw(11)’,Pw(12)’は、補間点P(11),P(12)に対する溶接トーチのTCP位置を補正した位置を示している。従来技術の欄で説明したように、教示点Q2で主軌道Lの進行方向を大きく屈曲させると、教示点Q2より後の補間点P(11)に対する溶接トーチのTCP位置は大きく変化し、これにより補間点P(10)における溶接トーチのTCP位置Pw(10)から補間点P(11) における溶接トーチのTCP位置Pw(11)に移動する際の溶接トーチの移動ベクトルはd(図1参照)からd’(図2参照)に急変し、溶接トーチの飛びが発生することになる。
【0036】
溶接トーチの移動ベクトルが急変するのは、主軌道Lの進行方向が屈曲する直前の補間点(図2では、補間点P(10))から溶接トーチの主軌道Lの進行方向が屈曲した直後の補間点(図2では、補間点P(11))に移動するときである。本実施形態では、その後の溶接トーチの移動を滑らかにするため、溶接トーチの主軌道の進行方向が屈曲した直後からウィービング周期の1/4周期に相当する距離に存在する補間点のTCP位置を補正するようにしている。
【0037】
なお、教示点Q1〜Q3及び各補間点P(m)の座標は、溶接ロボットの設置位置に定義される基本座標系で決定されるものであり、各補間点P(m)に対するTCP位置Pw(m)の座標は基本座標系に変換することにより決定されることになるが、溶接ロボットの制御は各アームの回転位置を制御することによって行われるので、溶接ロボットの制御データとしては、基本座標系におけるTCP位置Pw(m)の座標のデータではなく、各補間点P(m)に対するTCP位置Pw(m)に溶接トーチの先端を移動させるための各アームの回転位置のデータが算出されることになる。
【0038】
ここでは、溶接トーチの飛びの抑制方法の原理を説明するので、以下では、便宜上、各補間点P(m)に対するTCP位置Pw(m)の座標を用いて説明することにする。
【0039】
本願発明に係るウィービング動作における飛びの抑制方法では、溶接トーチの主軌道Lの進行方向が屈曲した直前の補間点からウィービング周期の1/4周期に相当する距離に存在する補間点(図2の例では、補間点P(11),P(12),P(13))に対するTCP位置を下記演算式(1)によって補正し、溶接トーチの飛びが発生した部分での各補間点間の溶接トーチの移動距離を短くする。
【0040】
【数1】
【0041】
なお、(1)式において、Pw(m)、Pw(m)’は、それぞれ補間点P(m)のウィービング変位量加算後のTCP位置の補正前と補正後の座標である。dは、主軌道の方向が変化する直前の補間点P(r)のTCP位置Pw(r)から主軌道の方向が変化した直後の補間点P(r+1)のTCP位置Pw(r+1)へのベクトル(以下、「飛びベクトル」という)であり、図2の例ではd=Pw(11)−Pw(10)となる。
【0042】
また、Tは、TCP位置の補正が行われる複数の補間点を含む主軌道の区間を溶接トーチが移動する時間であり、図2の例では、ウィービング周期τの1/4の区間を溶接トーチが移動する時間としている。また、t0は、主軌道の補間点間を移動する溶接トーチの移動時間であり、cは、c・t0がTを超えないt0のカウント数である。cは、主軌道の方向が変化する直前の補間点P(r)からカウントが開始されるので、t0,2・t0,3・t0,…は、それぞれ補間点P(r+1),P(r+2),P(r+3),…に対応することになる。
【0043】
図2の例では、ウィービング周期τが12・t0で、T=12・t0/4=3・t0であるから、補間点P(10)からcのカウントが開始されると、補間点P(11)からP(13)までのTCP位置が補正されることになる。
【0044】
(1)式により、補間点P(11),P(12) ,P(13)のTCP位置Pw(11),Pw(12),Pw(13)は、それぞれ、Pw(11)’,Pw(12)’,Pw(13)’に補正される。尤も、補間点P(13)のTCP位置Pw(13)は、c=3でT=3・t0なので、TCP位置Pw(13)’=Pw(13)となり、実質的に補正されないことになる。
【0045】
【数2】
【0046】
なお、(2)式で算出されるTCP位置Pw(11)’は、TCP位置Pw(11)に−(2/3)・d’のベクトルを加算した位置であるから、図2に示すように、TCP位置Pw(10)とTCP位置Pw(11)を結ぶ線分を1:2で内分した位置となる。
【0047】
また、(3)式で算出されるTCP位置Pw(12)’は、TCP位置Pw(12)に−(1/3)・d’のベクトルを加算した位置であるから、図2に示すように、TCP位置Pw(12)を通るTCP位置Pw(10)とTCP位置Pw(11)を結ぶ線分と平行な直線上であって、TCP位置Pw(12)から|d’|/3だけTCP位置Pw(10)側に寄った位置である。
【0048】
なお、図2の例では、c=3であったが、一般に、c・t0<τ/4を満たすcの最大値をCとすると、主軌道の方向が変化した直後の補間点P(r+1)からC個の補間点P(r+C)についてTCP位置が補正されるとすると、各TCP位置Pw(r+1),Pw(r+2),…,Pw(r+C)は、それぞれ、Pw(r+1)’,Pw(r+2) ’,…,Pw(r+C)’に補正される。なお、dは、補間点P(r)のTCP位置Pw(r)から補間点P(r+1)のTCP位置Pw(r+1)に向かうベクトルである。
【0049】
【数3】
【0050】
これにより、TCP位置Pw(r+1)',TCP位置Pw(r+2)',…,Pw(r+C)'は、TCP位置Pw(r)側に寄ることになり、これらのTCP位置Pw(r),Pw(r+1)',Pw(r+2)',…,Pw(r+C)'は滑らかに連続し、各TCP位置の間隔が大きく離れないものに補正される。
【0051】
なお、「背景技術」の欄で説明したように、ウィービングが姿勢の変化を伴う場合、溶接トーチの飛びとともにそれに応じて溶接トーチの姿勢も大きく変わるから、この溶接トーチの姿勢についても、溶接トーチのTCP位置の補正と同様の考え方による下記(5)式で補正することにより、溶接トーチの姿勢の急変を抑制することができる。
【0052】
【数4】
【0053】
なお、(5)式において、Rw(m)、Rw(m)’は、それぞれ溶接トーチの補正前と補正後の姿勢をあらわす回転行列である。Kr、Δφは、それぞれ主軌道の方向が変化する
前の溶接トーチの姿勢から主軌道の方向が変化した後の溶接トーチの姿勢への回転中心軸ベクトルと回転角度(以下、「飛び回転角度」という。)である。すなわち、主軌道の方向が変化する前の溶接トーチの姿勢Rw(m-1)をKrベクトル周りにΔφ回転させると主
軌道の方向が変化した後の溶接トーチの姿勢Rw(m)となる。Kr、Δφは次式より算出
される。
【0054】
【数5】
【0055】
なお、姿勢の変化を伴わないウィービングの場合、ウィービング変位量加算後の姿勢は主軌道の姿勢と同じであるため、主軌道の方向が変化する前の溶接トーチの姿勢Rw(m-1)と主軌道の方向が変化した後の溶接トーチの姿勢Rw(m)はともに両者の間にある教示点姿勢とほぼ同じである。よって、溶接トーチの姿勢は急変しない。
【0056】
図3は、図2の例での補間点P(11) のTCP位置Pw(11)における溶接トーチの姿勢の補正を表す図である。(6)式により、TCP位置Pw(11) における溶接トーチの姿勢Rw(11)はRw(11)’に補正される。補正後の溶接トーチの姿勢Rw(11)’は、補正前の溶接トーチの姿勢Rw(11)をKrベクトル周りにΔφ’=(1/3) Δφだけ逆方向に
回転させて得られる。
【0057】
【数6】
【0058】
また、(5)式によれば、溶接トーチの姿勢については、TCP位置Pw(r+1),Pw(r+2),…,Pw(r+C)がそれぞれPw(r+1)’,Pw(r+2)’,…,Pw(r+C)’に補正されるのに応じて、各TCP位置Pw(r+1)’,Pw(r+2)’,…,Pw(r+C)’における溶接トーチの姿勢を示す回転行列は、それぞれ、下記のように補正されることになる。
【0059】
【数7】
【0060】
これにより、各TCP位置Pw(r+1)',TCP位置Pw(r+2)',…,Pw(r+C)'で溶接トーチの姿勢を少しずつ変更させることができる。
【0061】
図4は、本願発明に係る溶接ロボット制御装置が適用される溶接ロボット制御システムを示す構成図である。この溶接ロボット制御システムでは、溶接ロボットに設けられた溶接トーチによってワーク(被溶接物)に対して溶接が行われる。
【0062】
溶接ロボット制御システムは、溶接ロボット10と、溶接ロボット制御装置20と、溶接電源装置30とによって大略構成されている。
【0063】
溶接ロボット10は、ワークWに対して例えばアーク溶接を自動で行うものである。溶接ロボット10は、フロア等の適当な箇所に固定されるベース部材11と、それに複数の軸を介して連結された複数のアーム12と、複数のアーム12の両端又は片端に設けられた複数の駆動モータ(サーボモータ)13(一部図示略)とによって構成されている。
【0064】
溶接ロボット10には、最も先端側に設けられたアーム12の先端部に、溶接トーチ14が設けられている。溶接トーチ14は、溶加材としての例えば直径1mm程度の溶接ワイヤ15をワークWの所定の溶接位置に導くものである。
【0065】
溶接ロボット10の上部には、ワイヤ送給装置16が設けられている。ワイヤ送給装置16は、溶接トーチ14に対して溶接ワイヤ15を送り出すためのものである。ワイヤ送給装置16は、溶接ワイヤ15が巻回された図示しないリールと、リールを回転させる送給モータ17とによって構成され、送給モータ17は、溶接電源装置30によって回転駆動される。
【0066】
ワイヤ送給装置16には、溶接ワイヤ15を案内するためのコイルライナ19が接続され、コイルライナ19の先端は、溶接トーチ14に接続されている。これにより、ワイヤ送給装置16によって送り出された溶接ワイヤ15は、コイルライナ19を介して溶接トーチ14に導かれる。溶接ワイヤ15は、溶接トーチ14から外部に突出して消耗電極として機能する。すなわち、溶接電源装置30によって溶接ワイヤ15の先端とワークWとの間に高電圧を印加してアークを発生させ、そのアークの熱で溶接ワイヤ15を溶融させることにより、ワークWに対して溶接が施される。
【0067】
各アームに設けられた駆動モータ13は、溶接ロボット制御装置20からの駆動信号によって回転駆動され、この各駆動モータ13が回転駆動されることにより、各アーム12が変位し、結果的に溶接トーチ14が上下前後左右に移動可能とされる。
【0068】
さらに、本実施形態では、各駆動モータ13が回転駆動されることにより、溶接トーチ14のウィービング動作が行われる。ウィービング動作とは、上述したように、溶接トーチ14を溶接進行方向に対して直交する方向に揺動させる動作をいう。本実施形態に係る溶接ロボット10は、図4に示すように、複数の関節を有する多関節の溶接ロボットであり、これら複数の関節を複合動作させることにより、溶接トーチ14が溶接進行方向に対して直交方向に揺動されるように制御される(図12の正弦波状の軌跡を参照)。
【0069】
なお、各駆動モータ13には、図示しないエンコーダが設けられている。エンコーダの出力は、溶接ロボット制御装置20に入力され、溶接ロボット制御装置20では、エンコーダの出力によって溶接トーチ14の現在位置を認識するようになっている。
【0070】
溶接ロボット制御装置20は、溶接ロボット10の動作を制御するためのものである。溶接ロボット制御装置20は、予め記憶されている制御ソフトウェア及び図示しないエンコーダからの現在位置情報等に基づいて、溶接ロボット10の各駆動モータ13の駆動を制御して、溶接トーチ14をワークWの所定の溶接点に移動させる。また、溶接ロボット制御装置20は、各駆動モータ13の駆動を制御して、溶接トーチ14を揺動させることにより、上記ウィービング動作を実行する。
【0071】
溶接電源装置30は、図示しない溶接電源を備えており、溶接電源は溶接トーチ14とワークWとの間に高電圧の溶接電圧を供給するものである。また、溶接電源装置30は、所定のタイミングでワイヤ送給装置16の送給モータ17を駆動させる機能をも有している。
【0072】
図5は、溶接ロボット制御装置20の内部構成及びその周辺装置を示すブロック図である。溶接ロボット制御装置20は、CPU21、RAM22、ROM23、タイマ(TIMER)24、ハードディスク25、ティーチングペンダントI/F26、操作ボックスI/F27、及びサーボドライバI/F28を備えており、各部はバス(BUS)31によって相互に接続されている。
【0073】
ティーチングペンダントI/F26には、ティーチングペンダント33が接続され、操作ボックスI/F27には、操作ボックス34が接続されている。また、サーボドライバI/F28には、溶接ロボット制御装置20の内部に設けられた6つのサーボドライバ35が接続され、サーボドライバ35には、溶接ロボット10に設けられた6つの駆動モータ13がそれぞれ接続されている。
【0074】
CPU21は、本溶接ロボット制御装置20の制御中枢となるものであり、教示された作業プログラム、ティーチングペンダント33や操作ボックス34からの操作信号、あるいは図示しないエンコーダからの現在位置情報等に基づいて、所定のデータ処理を行い、バス31及びサーボドライバI/F28を介してサーボドライバ35に動作指令を与える。これにより、駆動モータ13が回転駆動され、溶接トーチ14が移動される。
【0075】
RAM22は、CPU21に対して作業領域を提供するものであり、計算データ等を一時的に記憶する。RAM22は、例えば後述する動作命令バッファ41、軌道バッファ42、補間点バッファ43、又は関節補間点バッファ44として機能する。
【0076】
ROM23は、溶接ロボット10の動作を制御するための制御ソフトウェアを格納するものである。
【0077】
ハードディスク25は、溶接ロボット10の溶接作業が教示された作業プログラム、この作業プログラムの実行条件を示すデータ、制御定数を示すデータ等を格納するものである。
【0078】
タイマ24は、予め定められた定期時刻ごとに同期信号をCPU21に対して発生するものである。同期信号は、CPU21がサーボドライバ35に対して動作指令信号を出力する際の更新タイミングとして用いられる。
【0079】
ティーチングペンダントI/F26は、ティーチングペンダント33とのインターフェースを司るものである。ティーチングペンダント33は、例えば表示装置33aとキーボード33bとを有し、溶接ロボット10の動作を手動で行う際にユーザによって操作されるものである。CPU21は、このティーチングペンダント33からの操作信号を受け取ることにより所定のデータ処理を行うとともに、ティーチングペンダント33に対して表示データを送ることにより、操作情報を表示させる。
【0080】
操作ボックスI/F27は、操作ボックス34とのインターフェースを司るものである。操作ボックス34は、自動運転モード又は手動モードの選択、起動、開始、停止等の各種操作をユーザによって可能にするものである。CPU21は、この操作ボックス34からの操作信号を受け取ることにより所定のデータ処理を行う。
【0081】
サーボドライバI/F28は、サーボドライバ35とのインターフェースを司るものである。サーボドライバ35は、CPU21からの動作指令信号に基づいて、6つの駆動モータ13をそれぞれ駆動制御するものである。
【0082】
図6は、サーボドライバ35によるサーボ制御の概念を示すブロック図である。この図によると、溶接ロボット10の各関節における位置指令は、位置制御ブロック51に入力され、位置制御ブロック51の出力は、速度制御ブロック52に入力される。速度制御ブロック52の出力は、電流制御ブロック53に入力され、電流制御ブロック53の出力は、駆動モータ13に入力される。駆動モータ13の出力は、例えば減速器からなる減速機構のばね要素ブロック54を介して、負荷としてのアーム12に与えられる。
【0083】
駆動モータ13には、電流検出ブロック55が接続され、電流検出ブロック55において駆動モータ13に流れる電流が検出され、その値は電流制御ブロック53にフィードバックされる。また、駆動モータ13には、エンコーダ56が接続され、エンコーダ56によって現在の回転速度(アームの移動速度に対応)のデータが取得され、その回転速度データは、位置制御ブロック51と速度制御ブロック52にフィードバックされる。
【0084】
位置制御ブロック51では、フィードバックされた回転速度データが積分ブロック57によって積分されることにより位置データに変換されて減算器61に入力され、この減算器61により位置指令(関節角度)に対する現在の位置(関節角度)の誤差データが演算される。この誤差データは増幅器58により所定のゲインKpp(以下、位置フィードバックゲインという。)でレベル補正が行なわれた後、加算器62に入力される。
【0085】
また、位置制御ブロック51では、溶接ロボット10の各関節における位置指令のデータは、微分ブロック59によって微分されることにより速度データに変換され、さらに増幅器60により所定のゲインKff(以下、速度フィードフォワードゲインという。)でレベル補正が行なわれた後、加算器62に入力される。加算器62では速度フィードフォワードゲインKffから出力される速度データと、位置フィードバックゲインKppから出力される誤差データとが加算されて、上述した速度制御ブロック52に出力される。
【0086】
このように、溶接ロボット10の各関節における位置指令に対して駆動モータ13の動作をフィードバック制御させることにより、予め教示された作業プログラムの再生動作をより正確に行うことができる。
【0087】
図7は、CPU21及びRAM22の実際的な機能をブロックにして表した場合の構成図である。
【0088】
CPU21の機能としては、動作命令読出部36、軌道生成部37、補間点生成部38、関節角度生成部39、及びサーボ出力部40によって表され、RAM22の機能としては、動作命令バッファ41、軌道バッファ42、補間点バッファ43、及び関節角度バッファ44によって表される。なお、各バッファ41〜44は、FIFO(first-in first-out)バッファとして構成されており、先入れ及び先出しでデータが処理される。
【0089】
動作命令読出部36は、ハードディスク25に記憶された作業プログラムから、溶接ロボット10の動作命令に関する情報(例えば座標、速度情報等のデータからなる軌道命令)を読み出し、動作命令バッファ41に格納する。
【0090】
軌道生成部37は、動作命令バッファ41から動作命令に関する情報(動作命令コマンド)を読み出し、それに基づいて溶接ロボット10の溶接トーチ14の作業軌道を三次元空間の直交座標上で計画する。軌道生成部37は、計画された軌道データを軌道バッファ42に格納する。
【0091】
補間点生成部38は、軌道バッファ42から軌道データを読み出し、その軌道データを、「補間周期」と呼称される所定時間毎に分割する。そして、補間周期毎に直交座標によって表される、溶接トーチ14が到達すべき位置、姿勢を示す補間点データを算出する。すなわち、軌道データは、溶接開始点から溶接終了点に至る溶接トーチ14の移動軌跡を複数の教示点によって表すとともに、教示点間の溶接トーチ14の移動方法を直線移動や円弧移動によって定義したものである。補間点生成部38は、隣接する教示点間において溶接トーチ14が通過すべき点とその点における溶接トーチ14の姿勢等のデータを補間周期毎に補間している。補間点生成部38は、算出した補間点データを補間点バッファ43に格納する。
【0092】
関節角度生成部39は、補間点バッファ43から溶接トーチ14の到達位置、姿勢を示す補間点データを読み出し、溶接ロボット10の各関節における関節角度を示すデータに逆変換する演算を行い、算出した関節角度データを関節角度バッファ44に格納する。なお、本実施形態の特徴であるウィービング動作時の飛び補正は、主にこの関節角度生成部39において実現されるようになっている。これについては後述する。
【0093】
関節角度バッファ44に格納された、溶接ロボット10の関節角度データは、タイマ24によって発生される同期信号SYNCに同期してサーボ出力部40に通知される。そして、上記関節角度データは、サーボ出力部40から所定のタイミングでサーボドライバI/F28を介してサーボドライバ35へ各関節の位置指令(駆動モータ13に対する動作指令)として出力される。
【0094】
図8は、関節角度生成部39の機能を更に細かくブロックにして表した場合の構成図である。
【0095】
関節角度生成部39は更に、ウィービングデータ読出部391、ウィービング変位量算出部392、TCP位置姿勢算出部393、方向変化検出部394、飛び検出部395、飛び補正部396、逆変換部397によってあらわされる。
【0096】
ウィービングデータ読出部391は、教示作業プログラムからウィービング変位量を算出するために必要な周期、振幅、波形などからなるウィービングデータを読み出す。
【0097】
ウィービング変位量算出部392は、ウィービングデータ読出部391が読み出したウィービングデータからウィービング変位量を算出する。
【0098】
TCP位置姿勢算出部393は、補間点バッファ43に格納されている補間点データにウィービング変位量算出部392が算出したウィービング変位量を加算してTCP位置を算出する(図13参照)。また、補間点バッファ43に格納されている補間点データから溶接トーチの姿勢が算出される。
【0099】
方向変化検出部394は、補間点バッファ43に格納されている補間点データと軌道バッファ42に格納されている教示点データから主軌道の方向変化があったか否かを判断し、主軌道方向変化があった場合は方向変化前後の主軌道方向の交差角を算出する。
【0100】
飛び検出部395は、方向変化検出部394が主軌道の方向変化があったと判断した場合に、方向変化前後の主軌道方向の交差角と、TCP位置姿勢算出部393が算出したTCP位置と前回のTCP位置との距離と溶接トーチの姿勢の変化とから、飛び補正が必要か否かを判断する。
【0101】
飛び補正部396は、飛び検出部395により飛び補正が必要と判断された場合には、TCP位置姿勢算出部393が算出したTCP位置または溶接トーチの姿勢の飛び補正を行い、飛び補正が必要でないと判断された場合には、飛び補正を行わずTCP位置と溶接トーチの姿勢をそのままとする。
【0102】
逆変換部397は、飛び補正部396で算出されたTCP位置と溶接トーチの姿勢から溶接ロボット10の各関節における関節角度を示すデータに逆変換する演算を行い、算出した関節角度データを関節角度バッファ44に格納する。
【0103】
次に、本実施形態に係るウィービング動作における溶接トーチの飛びを抑制する制御について、図9、図10に示すフローチャートと図2を参照して説明する。なお、上述のように、本実施形態では、溶接トーチの飛びを抑制するために、溶接トーチのTCP位置と溶接トーチの姿勢を補正しているので、以下では、両者の補正を「飛び補正」といい、両者を区別する必要がある場合は、前者を「位置飛び補正」といい、後者を「姿勢飛び補正」という。
【0104】
図9は関節角度生成部39で実行される、本実施形態における特徴的なウィービング動作における溶接トーチの飛びを抑制する制御を表すフローチャートである。
【0105】
この制御は開始位置(補間カウンタm=0、図2では教示点Q1)から目標位置(図2では教示点Q3)に達するまで実行され、各補間点P(1),P(2),…における溶接ロボット10の各関節角度を示す関節角度データを算出する。
【0106】
まず、補間カウンタmが0に初期化され、位置飛びフラグおよび姿勢飛びフラグがOFFに設定される(S1)。位置飛びフラグは、位置飛び補正が必要か否かを設定するフラグで、必用な場合はONにする。姿勢飛びフラグは、姿勢飛び補正が必要か否かを設定するフラグで、必用な場合はONにする。
【0107】
次に、補間カウンタmが1増加され(S2)、目標位置(教示点Q3)に達したか否かが判別される(S3)。目標位置(教示点Q3)に達しない場合(S3:NO)は、ステップ4に進み、目標位置(教示点Q3)に達した場合(S3:YES)は処理を終了する。
【0108】
ステップS4において、関節角度生成部39は、補間点バッファ43から補間点データを読み出す。ここで、補間点データとは、開始位置(教示点Q1)から目標位置(教示点Q3)に達するまでの間に存在する、溶接トーチ14の先端が移動すべき位置(溶接すべき位置を含む)P(m)、及びその位置における溶接トーチ14の姿勢R(m)よりなるデータである。
【0109】
次に、補間点P(m)が主軌道方向の変化する教示点を越えた最初の補間点であるか否か判断される(S5)。図2の例では、補間点P(11)であるか否かが判断される。補間点生成部38において、軌道バッファ42の軌道データから補間点データを算出する際に、軌道データに含まれる教示点の情報から、その補間点が教示点を越えた最初の補間点であることが判断でき、その情報も含めて補間点データが補間点バッファ43に格納されている。
【0110】
ところで、溶接ロボット10には、補間点やTCP位置を表すための座標系として、基準座標系と進行方向座標系が設定されている。基準座標系は、溶接ロボット10の設置位置に固定的に設定されている。一方、進行方向座標系は、溶接トーチ14の先端(ツールセンタポイント)に設定されるもので、溶接トーチ14の移動に伴って移動する。すなわち、進行方向座標系の原点位置の基準座標系における位置は、溶接トーチ14の移動によって変化する。
【0111】
補間点P(m)が主軌道方向の変化する教示点を越えた最初の補間点でない場合(S5:NO)、補間点P(m-1),P(m)から主軌道進行方向の進行方向座標系(n、o,a)が算出される。図2の例では、補間点P(9),P(10)から主軌道進行方向の進行方向座標系(n、o,a)が算出される。
【0112】
なお、tが溶接トーチ軸方向の単位ベクトルとすると、aはP(m-1)P(m)方向の単位ベクトル、oはtとaに対して垂直方向の単位ベクトル、nはoとaに対して垂直方向の単位ベクトルとする(図13参照)。この座標上におけるo方向のウィービング変位量Hが基準座標系に変換され、P(m)に加算されることで、TCP位置Pw(m)が算出される(S6)。なお、ウィービング前後で溶接トーチの姿勢は変わらないので、補間点P(m)における溶接トーチの姿勢R(m)と、ウィービング変位量加算後の溶接トーチの姿勢Rw(m)は同じである。
【0113】
次に、飛びフラグがONになっているかが判別される(S7)。位置飛びフラグONまたは姿勢飛びフラグONの場合(S7:YES),飛び補正が行われ(S8)、ステップ9に進む。なお、飛び補正については後述する。位置飛びフラグと姿勢飛びフラグがともにOFFの場合(S7:NO)、そのままステップ9に進む。
【0114】
ステップS9では、TCP位置Pw(m)、溶接トーチの姿勢Rw(m)((飛び補正した場合はPw (m)’Rw(m)’)の逆変換により、溶接ロボット10の各関節角度を示す関節角度データが算出され、関節角度バッファ44に格納され、ステップS2に戻る。
【0115】
ステップS5において、補間点P(m)が主軌道方向の変化する教示点Qを越えた最初の補間点である場合(S5:YES)、飛び補正が必要か否かを判別するための指標としてθ、d、φが算出される(S10)。まず、主軌道の方向変化を見るために、P(m-1)QとQP(m)の交差角θが算出される。次に、Q,P(m)から主軌道進行方向の進行方向座標系(n、o,a)が算出され、この座標上におけるo方向のウィービング変位量Hが基準座標系に変換され、P(m)に加算されることで、TCP位置Pw(m)が算出される。そして、直前のTCP位置Pw(m-1)との位置関係を見るために、飛びベクトルd=Pw(m)−Pw(m-1)が算出される。次に、TCP位置Pw(m)における溶接トーチの姿勢Rw(m)を求め、直前のTCP位置Pw(m-1)における溶接トーチの姿勢Rw(m-1)からの溶接トーチの姿勢変化を見るために、Rot(Kr,φ)=Rw(m-1)-1・Rw(m)により姿勢飛び回転角度φを求める。なお、姿勢の変化を伴うウィービングの場合、補間点P(m)における溶接トーチの姿勢R(m)からTCP位置Pw(m)における溶接トーチの姿勢Rw(m)を求める方法はウィービングのタイプにより異なり、ここでは省略する。姿勢の変化を伴わないウィービングの場合、ウィービング前後で溶接トーチの姿勢は変わらないので、Rw(m)=R(m)となる。
【0116】
次に、飛び補正が必要か否かを判断するために、θ>飛び補正必要角度θ0であるか否か判別される(S11)。θがある一定角度以内であれば、主軌道の方向変化が少ないので、TCP位置および溶接トーチの姿勢が滑らかに繋がる。よって飛び補正は行われない。θ0は溶接ロボットにより変わり、例えばθ0=5°に設定してある。
【0117】
θ≦θ0の場合(S11:NO)、飛び補正は必要ないのでステップS7に進む。θ>θ0の場合(S11:YES)、位置飛び補正が必要か否かを判断するために、|d|>位置飛び補正必要距離d0であるか否か判別される(S12)。主軌道方向が大きく変化したとしても、そのときのウィービング変位量が小さい場合は、直前のTCP位置からの距離は短く、溶接トーチは滑らかに移動するため、位置飛び補正の必要がない。そこで、飛びベクトルdの大きさ(以下、「飛び量」という)をある一定値と比較する。d0も溶接ロボットにより変わり、本実施形態では、例えばd0=1mmに設定してある。|d|≦d0の場合(S12:NO)、位置飛び補正は必要ないので、そのままステップS14に進む。|d|>d0の場合(S12:YES)、位置飛び補正が必要なので、位置飛びフラグがONに設定され(S13)、ステップS14に進む。
【0118】
次に、姿勢飛び補正が必要か否か判断するために、φ>姿勢飛び補正必要回転角度φ0であるか否か判別される(S14)。φ0は溶接ロボットにより変わるが、本実施形態では、例えばφ0=0.1度に設定してある。φ≦φ0の場合(S14:NO)、姿勢飛び補正は必要ないので、そのままステップS16に進む。φ>φ0の場合(S14:YES)、姿勢飛び補正が必要なので、姿勢飛びフラグがONに設定され(S15)、ステップS16に進む。
【0119】
位置飛びフラグがONまたは姿勢飛びフラグがONの場合(S16:YES)、飛び補正が必要な期間をカウントするためのカウンタcが0に初期化され(S17)、ステップS7に進む
【0120】
次に、飛び補正の方法を図10に示すフローチャートを元に説明する。
【0121】
まず、カウンタcが1増加され(S21)、c・t0がTを超えたか否か判別される(S22)。t0は補間周期であり、c・t0は飛び補正が始まる直前のTCP位置決定後からの経過時間である。Tは飛び補正を行う期間であり、予め一定の値を設定(例えばウィービング周期の1/4に設定)しておいてもよいし、飛び補正後の各点間の距離がd0以下で各姿勢間の回転角度がφ0以下となればよいので、主軌道方向の変化角度θや飛び量|d|、姿勢飛び回転角度φにより算出してもよい。
【0122】
c・t0がTを超えれば(S22:YES)、すなわち、飛び補正期間が終了すれば、位置飛びフラグおよび姿勢飛びフラグともにOFFに設定され(S23)終了する。c・t0がT以下であれば(S22:NO)、すなわち、飛び補正期間中であれば、飛び補正が行われるためにステップS24に進む。
【0123】
ステップS24では、位置飛びフラグがONか否か判別される(S24)。位置飛びフラグがONの場合(S24:YES)、TCP位置Pw(m)’が算出されて(S25)、S26に進む。TCP位置Pw(m)’は式(1)により算出される。位置飛びフラグがOFFの場合(S24:NO)、そのままS26に進む。
【0124】
ステップS26では、姿勢飛びフラグがONか否か判別される(S26)。姿勢飛びフラグがONの場合(S26:YES)、溶接トーチの姿勢Rw’(m)が算出されて(S25)、S26に進む。溶接トーチの姿勢Rw(m)’は式(5)により算出される。姿勢飛びフラグがOFFの場合(S26:NO)、終了する。
【0125】
上記のように、本実施形態では、ウィービング周波数と溶接速度は変化させることなく、飛びが発生する場合は飛び補正を行うことにより、ウィービング波形を連続させて溶接作業を行うように制御できる。
【0126】
なお、本実施形態では、主軌道の進行方向が変化する場合について説明したが、主軌道の進行方向が変化しない場合でもウィービング振幅が途中で急変する場合は、同様に溶接トーチの飛びが発生するので、このような場合にも、変化前後のウィービング後のTCP位置から飛びベクトルを求め、飛び量が一定値以上大きい場合は、一定期間、式(1)を使って飛び補正を行うことにより、溶接トーチの飛びを抑制することができる。なお、この場合は、主軌道の進行方向が変化しないので、溶接トーチの姿勢は変化することがなく、従って、位置飛び補正だけをすればよい。また、補正を行う期間は予め一定の値を設定(例えばウィービング周期の1/4に設定)しておいてもよいし、飛び補正後の各点間の距離が一定値以下となればよいので、振幅の変化割合や飛び量により算出してもよい。
【0127】
図11は、ウィービング振幅が途中で急変する場合の溶接トーチのTCP位置の変化を示したもので、教示点Q1Q3間の溶接トーチの主軌道L上の教示点Q2でウィービング振幅を半分にしたものである。主軌道L上の各補間点P(1)〜P(19)のウィービング動作における溶接トーチのTCP位置はPw(1),Pw(2),…,Pw(19)となるが、教示点Q2でウィービング振幅を急変しているので、(1)式により、TCP位置Pw(11),Pw(12),Pw(13)は、それぞれ、Pw(11)’,Pw(12)’,Pw(13)’に補正される。尤も、補間点P(13)のTCP位置Pw(13)は、TCP位置Pw(13)’=Pw(13)となり、実質的に補正されないことになる。
【0128】
【数2】
【0129】
なお、(2)式で算出されるTCP位置Pw(11)’は、TCP位置Pw(11)に−(2/3)・d’のベクトルを加算した位置であるから、図11に示すように、TCP位置Pw(1
0)とTCP位置Pw(11)を結ぶ線分を1:2で内分した位置となる。
【0130】
また、(3)式で算出されるTCP位置Pw(12)’は、TCP位置Pw(12)に−(1/3)・d’のベクトルを加算した位置であるから、図11に示すように、TCP位置Pw(12)を通るTCP位置Pw(10)とTCP位置Pw(11)を結ぶ線分と平行な直線上であって、TCP位置Pw(12)から|d’|/3だけTCP位置Pw(10)側に寄った位置である。
【図面の簡単な説明】
【0131】
【図1】溶接トーチの飛びを抑制する方法を説明するための図で、主軌道の進行方向が変化しないときの溶接トーチのTCT位置を示す図である。
【図2】溶接トーチの飛びを抑制する方法を説明するための図で、主軌道の進行方向が変化したときの溶接トーチのTCT位置を示す図である。
【図3】溶接トーチの姿勢の補正を表す図である。
【図4】本願発明に係る溶接ロボット制御装置が適用される溶接ロボット制御システムを示す構成図である。
【図5】溶接ロボット制御装置の内部構成及びその周辺装置を示すブロック図である。
【図6】サーボドライバによるサーボ制御の概念を示すブロック図である。
【図7】CPU及びRAMの実際的な機能をブロックにして表した場合の構成図である。
【図8】関節角度生成部の機能を更に細かくブロックにして表した場合の構成図である。
【図9】関節角度生成部で実行される、ウィービング動作における溶接トーチの飛びを抑制する制御のメインフローチャートである。
【図10】飛び補正の制御を示すフローチャートである。
【図11】溶接トーチの飛びを抑制する方法を説明するための図で、ウィービング振幅が途中で急変したときの溶接トーチのTCP位置を示す図である。
【図12】ウィービング動作を説明するための図である。
【図13】ウィービング中の溶接トーチのTCP位置を説明する図である。
【図14】進行方向が変化したときのTCP位置の変化について説明する図である。
【符号の説明】
【0132】
10 溶接ロボット
13 駆動モータ
14 溶接トーチ
20 溶接ロボット制御装置
21 CPU
22 RAM
25 ハードディスク
28 サーボドライバI/F
30 溶接電源装置
35 サーボドライバ
39 関節角度生成部
42 軌道バッファ
43 補間点バッファ
44 関節角度バッファ
51 位置制御ブロック
58 位置フィードバックゲイン
W ワーク(被溶接物)
【特許請求の範囲】
【請求項1】
多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成され、前記溶接トーチの進行方向が途中で変化する主軌道上に、多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、
隣接する教示点間から前記主軌道の進行方向を演算し、その進行方向が所定の角度以上に変化する教示点を算出する算出手段と、
前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段と、
を備えたことを特徴とする溶接ロボット制御装置。
【請求項2】
前記主軌道の進行方向の変化する角度が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備える、請求項1に記載の溶接ロボット制御装置。
【請求項3】
多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成された主軌道上に多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、
前記教示点間毎の前記ウィービング動作における振幅のデータを記憶する記憶手段と、
前記記憶手段に記憶された振幅のデータより前記ウィービング動作における振幅のデータが所定の閾値以上に変化する教示点を算出する算出手段と、
前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段と、
を備えたことを特徴とする溶接ロボット制御装置。
【請求項4】
前記ウィービング動作における振幅の変化割合が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備える、請求項3に記載の溶接ロボット制御装置。
【請求項5】
前記位置補正手段は、下記演算式(1)により前記所定数の補間点の各補間点の前記変位位置を補正することを特徴とする、請求項1〜4のいずれかに記載の溶接ロボット制御装置。
【数1】
但し、Pw(m)’:補正後の変位位置
Pw(m) :補正前の変位位置
d:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトル
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【請求項6】
前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点における前記溶接トーチの姿勢を、下記演算式(2)により補正する姿勢補正手段を更に備えたことを特徴とする、請求項1、2、5に記載の溶接ロボット制御装置。
【数4】
但し、Rw(m)’:補正後の溶接トーチの姿勢
Rw(m) :補正前の溶接トーチの姿勢
Kr:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化した後の溶接トーチの姿勢へ変化させるための回転中心軸ベクトル
Δφ:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化
した後の溶接トーチの姿勢へ変化させるための回転角度
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【請求項1】
多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成され、前記溶接トーチの進行方向が途中で変化する主軌道上に、多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、
隣接する教示点間から前記主軌道の進行方向を演算し、その進行方向が所定の角度以上に変化する教示点を算出する算出手段と、
前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段と、
を備えたことを特徴とする溶接ロボット制御装置。
【請求項2】
前記主軌道の進行方向の変化する角度が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備える、請求項1に記載の溶接ロボット制御装置。
【請求項3】
多関節溶接ロボットのアーム先端に設けられた溶接トーチの移動経路として教示された複数の教示点を連結して構成された主軌道上に多数の補間点を設け、各補間点に前記主軌道に対して直交する方向の所定の変位量を設定し、前記溶接トーチを各補間点の変位位置に従って移動させることにより、当該溶接トーチを前記主軌道上でウィービング動作をさせながら移動させる溶接ロボット制御装置であって、
前記教示点間毎の前記ウィービング動作における振幅のデータを記憶する記憶手段と、
前記記憶手段に記憶された振幅のデータより前記ウィービング動作における振幅のデータが所定の閾値以上に変化する教示点を算出する算出手段と、
前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点の前記変位位置を、前記教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトルを縮小したベクトルで逆方向に変化させた位置に補正する位置補正手段と、
を備えたことを特徴とする溶接ロボット制御装置。
【請求項4】
前記ウィービング動作における振幅の変化割合が増加するのに応じて前記位置補正手段により変位位置が補正される補間点の数を増加させる補正数変更手段を更に備える、請求項3に記載の溶接ロボット制御装置。
【請求項5】
前記位置補正手段は、下記演算式(1)により前記所定数の補間点の各補間点の前記変位位置を補正することを特徴とする、請求項1〜4のいずれかに記載の溶接ロボット制御装置。
【数1】
但し、Pw(m)’:補正後の変位位置
Pw(m) :補正前の変位位置
d:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点の変位位置から前記教示点の直後の補間点の変位位置に向かうベクトル
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【請求項6】
前記算出手段により算出された教示点の直後の補間点から前記主軌道の進行方向に配置される所定数の補間点について、各補間点における前記溶接トーチの姿勢を、下記演算式(2)により補正する姿勢補正手段を更に備えたことを特徴とする、請求項1、2、5に記載の溶接ロボット制御装置。
【数4】
但し、Rw(m)’:補正後の溶接トーチの姿勢
Rw(m) :補正前の溶接トーチの姿勢
Kr:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化した後の溶接トーチの姿勢へ変化させるための回転中心軸ベクトル
Δφ:主軌道の方向が変化する前の溶接トーチの姿勢から主軌道の方向が変化
した後の溶接トーチの姿勢へ変化させるための回転角度
T:主軌道の進行方向又はウィービング振幅が変化する教示点の直前の補間点から変位位置が補正される複数の補間点を溶接トーチが移動するまでに要する時間
t0:隣接する補間点間を溶接トーチが移動するのに要する時間
c:主軌道の進行方向又はウィービング振幅が変化した直後から複数の補間点に順番に付される、c・t0がTを超えない番号
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2007−216232(P2007−216232A)
【公開日】平成19年8月30日(2007.8.30)
【国際特許分類】
【出願番号】特願2006−36134(P2006−36134)
【出願日】平成18年2月14日(2006.2.14)
【出願人】(000000262)株式会社ダイヘン (990)
【出願人】(000005197)株式会社不二越 (625)
【公開日】平成19年8月30日(2007.8.30)
【国際特許分類】
【出願日】平成18年2月14日(2006.2.14)
【出願人】(000000262)株式会社ダイヘン (990)
【出願人】(000005197)株式会社不二越 (625)
[ Back to top ]