基于平面的機器人三維尋位糾偏方法
【專利摘要】本發明提出采用一種基于平面的機器人三維尋位糾偏方法及就應用該糾偏方法的焊接機器人,目的在于提供新穎的尋邊和計算方法以應對產品加工中所造成的偏差,提高產品的焊接質量與合格率。本發明的方法包括如下步驟:在工件上定義工件坐標系與基于所述工件坐標系的用戶坐標系;沿工件坐標系XY平面的X軸、Y軸方向,分別間隔相同距離獲取兩個坐標點值;利用坐標點值中的兩個,根據反正切三角函數ATan計算出偏移角度A;利用上述坐標點值,根據直線方程求解基于工件坐標系的X軸偏移量△X與Y軸偏移量△Y偏移角度A轉換成可供機器識別的姿態四元數,再將該姿態四元數、X軸偏移量△X和Y軸偏移量△Y賦值至所述用戶坐標,以實現機器人的姿態調整。
【專利說明】基于平面的機器人三維尋位糾偏方法
【技術領域】
[0001]本發明涉及機器人技術,具體是涉及一種基于平面的機器人三維尋位糾偏方法,以及應用該糾偏方法的焊接機器人。
【背景技術】
[0002]在焊接領域,激光焊接工藝對產品的定位精度有著較高要求。在焊接加工時,一般是通過產品外部邊緣進行定位的,而產品在成形過程中需經過沖壓、折彎等多道工序,不可避免地會產生累積誤差。因此,對產品進行激光焊接的時候,就需要對焊接路徑X軸、y軸方向以及z軸的旋轉角度進行糾偏。
[0003]對此,現有的焊接機器人一般會設有尋邊機構,通過尋邊機構與產品邊緣的多次接觸而獲取位置坐標,再通過預設程序計算出偏差值,繼而自動調整焊縫位置。然而,現有技術方案通常僅能計算獲得X軸、y軸單一方向的偏差,而不能獲得Z軸旋轉角度的偏差。
【發明內容】
[0004]針對【背景技術】中提及的問題,本發明提出采用一種基于平面的機器人三維尋位糾偏方法及就應用該糾偏方法的焊接機器人,目的在于提供新穎的尋邊和計算方法以應對產品加工中所造成的偏差,正確糾正機器人焊接路徑在平面位置和旋轉角度的偏移,提高產品的焊接質量與合格率。本發明是通過如下技術方案實現的:
[0005]一種基于平面的機器人三維尋位糾偏方法,包括如下步驟:
[0006]I)在工件上定義工件坐標系,并定義基于所述工件坐標系的用戶坐標系;
[0007]2)沿所述工件坐標系XY平面的X軸方向,間隔相同距離獲取兩個坐標點值(XI,Yl)和(X2,Y2);沿所述工件坐標系XY平面的Y軸方向,間隔相同距離獲取兩個坐標點值(X3, Y3)和(X4, Y4);
[0008]3)利用上述坐標點值中的兩個,根據反正切三角函數ATan計算出基于工件坐標系的偏移角度A ;
[0009]4)利用上述坐標點值,根據直線方程求解基于工件坐標系的X軸偏移量Λ X與Y軸偏移量Λ Y ;
[0010]直線Kl 的方程是,Kl = (Υ1-Υ2)/(Χ1-Χ2);
[0011 ]直線 Κ2 的方程是,Κ2 = (Υ3-Υ4) / (Χ3-Χ4);
[0012]X 軸偏移量,Λ X= (Κ1*Χ1-Κ2*Χ3-Υ1)/(Κ1_Κ2);
[0013]Y 軸偏移量,Λ Y = Υ1+( Λ Χ-Χ1)*Κ1 ;
[0014]5)將上述偏移角度A轉換成可供機器識別的姿態四元數,再將該姿態四元數、X軸偏移量Λ X和Y軸偏移量Λ Y賦值至所述用戶坐標,以實現機器人的姿態調整。
[0015]進一步的,所述偏移角度A的計算為
[0016]A = -(arctan((X4-X3)/(Y4-Y3)))或
[0017]A = - (arctan ((X2-X1) / (Y2-Y1)))。
[0018]進一步的,所述姿態四元數的轉換通過機器人編譯工具中的OrientZYX函數實現。
[0019]本發明還對應提出一種基于上述三維尋位糾偏方法的焊接機器人,其包括一具有尋邊探頭的機械臂,所述尋邊探頭包括彈簧、探針以及與焊槍連接的固定支架;所述探針通過導線與機器人的I/o模塊連接,該導線上串聯有繼電器。
【專利附圖】
【附圖說明】
[0020]圖1為三維尋邊糾偏方法的流程圖。
[0021]圖2為焊接實例中坐標建立示意圖。
[0022]圖3為坐標系偏角A示意圖。
[0023]圖4為焊接機器人及焊接實例示意圖。
【具體實施方式】
[0024]如下結合附圖,對本申請方案作進一步描述:
[0025]如圖1-4所示,一種基于平面的機器人三維尋位糾偏方法,包括如下步驟:
[0026]SOl:在工件上定義工件坐標系wob jA,并定義基于所述工件坐標系wobjA的用戶坐標系wob jB ;
[0027]S02:沿所述工件坐標系wobjA的XY平面的X軸方向,間隔相同距離獲取兩個坐標點值 Pl (XI,Yl)和 P2(X2,Y2);
[0028]S03:沿所述工件坐標系wobjA的XY平面的Y軸方向,間隔相同距離獲取兩個坐標點值 Ρ3(Χ3,Υ3)和 Ρ4(Χ4,Υ4);
[0029]S04:利用上述坐標點值中的兩個,根據反正切三角函數ATan計算出基于工件坐標系wobjA的偏移角度A ;本實施例中取坐標點值Ρ3(Χ3,Υ3)和Ρ4(Χ4,Υ4)進行計算,A=-(arctan((X4-X3)/(Y4-Y3)));
[0030]S05:利用上述坐標點值 Pl (XLYl)、P2 (X2,Y2)、P3 (X3,Y3)和 Ρ4(Χ4,Υ4),根據直線方程求解基于工件坐標系的X軸偏移量Λ X與Y軸偏移量Λ Y ;
[0031]直線Kl 的方程是,Kl = (Υ1-Υ2)/(Χ1-Χ2);
[0032]直線Κ2 的方程是,Κ2 = (Υ3-Υ4) / (Χ3-Χ4);
[0033]X 軸偏移量,Δ X = (K1*X1-K2*X3-Y1) / (Κ1-Κ2);
[0034]Y 軸偏移量,Λ Y = Υ1+( Λ Χ-Χ1)*Κ1 ;
[0035]S06:將上述偏移角度A轉換成可供機器識別的姿態四元數;
[0036]S07:將該姿態四元數、X軸偏移量Λ X和Y軸偏移量Λ Y賦值至所述用戶坐標wobjB,以實現機器人的姿態調整。
[0037]在本實施例中,上述取點、計算、姿態四元數轉換由機器人編譯工具實現,具體代碼如下:
[0038]一、坐標點值獲取:
[0039]MoveL pAl, vlOOO, fine, Tooldata_2\W0bj:= wobjA ;
[0040]注:M0VeL機器人直線運動指令,直線運動到pAl點,vlOOO是速度,find是準確到達該點,tooldata_2\W0bj:= wobjA是工具坐標\工件坐標;
[0041]SearchL\Stop, DilFind,target—base {1},pA2,v5,Tooldata_2\W0bj:= wobjA ;
[0042]注:SearchL\Stop機器人直線尋邊指令,從上一個點以v5的速度運行到pA2,當信號DiFind = I時停止,并將當前位置坐標(x,y,z)儲存在target—base {1},tooldata—2\WObj:= wobjA是工具坐標\工件坐標;
[0043]MoveL pCl,vlOOO,fjne,Tool dat a_2 \W0b j:= wobjA ;
[0044]SearchL\Stop, DilFind, target—base {3},pC2,v5,Tool dat a_2 \W0b j:= wobjA ;
[0045]MoveL pDl,vlOOO,fine,Tool dat a_2 \W0b j:= wobjA ;
[0046]SearchL\Stop, DI10—3,target—base {4},pD2,v5,Tool dat a_2 \W0b j:= wobjA ;
[0047]注:利用上述指令獲取的4 個點(target—base {1}、target—base {2}、target—base{3}、target—base{4})
[0048]Y {1}: = target—base {1}.trans.y-wob jA, uframe.tran.y ;
[0049]X{1}: = target—base {1}.trans.x-wobjA,uframe.tran.x ;
[0050]Y {2}: = target—base {2}.trans.y-wob jA, uframe.tran.y ;
[0051]X {2}:= target—base {2}.trans.x-wobjA,uframe.tran.x ;
[0052]y {3}: = target—base {3}.trans.y-wob jA, uframe.tran.y ;
[0053]X {3}:= target—base {3}.trans.x-wobjA,uframe.tran.x ;
[0054]Y {4}: = target—base {4}.trans.y-wob jA, uframe.tran.y ;
[0055]X {4}:= target—base {4}.trans.x-wobjA,uframe.tran.x ;
[0056]注:分別將4個點的X、Y值賦值到變量里用于計算。
[0057]二、偏角計算:
[0058]angle: = - (ATan ((X {4} -X {3}) / (Y {4} -Y {3})));
[0059]注:使用機器人函數Atan,用其中P3和P4的數據求出相對wobjA的角度儲存在變量angle中;
[0060]三、X軸偏移量Λ X與Y軸偏移量Λ Y計算:
[0061]Kl:= (Y{1}-Y{2})/(X{1}-X{2});
[0062]Κ2:= (Y {3} -Y {4}) / (X {3} -X {4});
[0063]X{5}:= (Κ1*Χ{1}-Κ2*Χ{3}+Υ{3}-Υ{1})/(Κ1-Κ2);
[0064]Y{5}:= Υ{1} + (Χ{5}_Χ{1})*Κ1 ;
[0065]四、姿態四元數轉換:
[0066]wobjB: = wobjA ;
[0067]wobjB.0frame.rot:= OrientZYX(angle, 0,0);
[0068]wobjB.0frame.trans.x:= X{5};
[0069]wobjB.0frame.trans.y: = Y {5};
[0070]注:將wobjA復制到wobjB ;將求出的角度變量angle通過機器人編譯工具中的OrientZYX函數轉換為姿態四元數后賦值到wobjB的姿態值上;將求出的變量X {5}、Y {5},賦值到wobjB上;
[0071]一種基于上述三維尋位糾偏方法的焊接機器人,其包括一具有尋邊探頭11的機械臂1,所述尋邊探頭11包括彈簧、探針111以及與焊槍連接的固定支架13 ;所述探針通過導線與機器人的1/0模塊連接,該導線上串聯有繼電器。所述焊接機器人由數控程序控制,并以上述糾偏方案減少誤差。
[0072]以焊接廚房用水槽為例,具體操作是將水槽的槽體2與桌子3焊接。
[0073]首先,在產品上建立工件坐標系wobjA,通過使用尋邊探頭11在相對于建立在產品上坐標系wobjA的X軸、y軸方向分別隔固定距離獲得兩個位置,并記錄所獲物4個位置值Pl (XI,Y1)、P2(X2,Υ2)、Ρ3(Χ3,Υ3)和Ρ4(Χ4,Υ4)。然后由上述程序利用4點坐標數據計算得到一組偏差數(Λ Χ、Λ Y和偏角A),再賦值至用戶坐標系以糾正焊接路徑。
[0074]上述優選實施方式應視為本申請方案實施方式的舉例說明,凡與本申請方案雷同、近似或以此為基礎作出的技術推演、替換、改進等,均應視為本專利的保護范圍。
【權利要求】
1.一種基于平面的機器人三維尋位糾偏方法,其特征在于包括如下步驟: 1)在工件上定義工件坐標系,并定義基于所述工件坐標系的用戶坐標系; 2)沿所述工件坐標系XY平面的X軸方向,間隔相同距離獲取兩個坐標點值(XI,Yl)和(X2,Y2);沿所述工件坐標系XY平面的Y軸方向,間隔相同距離獲取兩個坐標點值(Χ3,Υ3)和(Χ4, Υ4); 3)利用上述坐標點值中的兩個,根據反正切三角函數ATan計算出基于工件坐標系的偏移角度A ; 4)利用上述坐標點值,根據直線方程求解基于工件坐標系的X軸偏移量ΛX與Y軸偏移量Λ Y; 直線 Kl 的方程是,Kl = (Υ1-Υ2)/(Χ1-Χ2); 直線 Κ2 的方程是,Κ2 = (Υ3-Υ4) / (Χ3-Χ4); X 軸偏移量,Λ X= (Κ1*Χ1-Κ2*Χ3-Υ1)/(Κ1-Κ2); Y 軸偏移量,ΔΥ = Υ1+(Δ X-X I) *K1 ; 5)將上述偏移角度A轉換成可供機器識別的姿態四元數,再將該姿態四元數、X軸偏移量Λ X和Y軸偏移量Λ Y賦值至所述用戶坐標,以實現機器人的姿態調整。
2.根據權利要求1所述的基于平面的機器人三維尋位糾偏方法,其特征在于:所述偏移角度A的計算為 A = -(arctan((X4-X3)/(Y4-Y3)))或
A = - (arctan ((X2-X1) / (Y2-Y1)))。
3.根據權利要求1所述的基于平面的機器人三維尋位糾偏方法,其特征在于:所述姿態四元數的轉換通過機器人編譯工具中的OrientZYX函數實現。
4.一種基于權利要求1-3所述三維尋位糾偏方法的焊接機器人,其特征在于:包括一具有尋邊探頭的機械臂,所述尋邊探頭包括彈簧、探針以及與焊槍連接的固定支架;所述探針通過導線與機器人的I/O模塊連接,該導線上串聯有繼電器。
【文檔編號】B23K26/70GK104227250SQ201410472919
【公開日】2014年12月24日 申請日期:2014年9月16日 優先權日:2014年9月16日
【發明者】袁小云, 劉劍輝 申請人:佛山市利迅達機器人系統有限公司