邢紅輝,王保升,洪 磊,左健民,石朗春
(1.南京工程學(xué)院智能制造裝備研究院,江蘇 南京 211167)(2.江蘇省智能制造裝備工程實(shí)驗(yàn)室,江蘇 南京 211167)(3.江蘇省先進(jìn)數(shù)控技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 211167)
隨著中國(guó)制造2025的提出,科技水平的不斷提升大大推動(dòng)了我國(guó)的工業(yè)化。工業(yè)化水平的提高,生產(chǎn)技術(shù)的不斷更新,使得產(chǎn)業(yè)向著自動(dòng)化的方向不斷發(fā)展。產(chǎn)業(yè)的自動(dòng)化,需要工業(yè)機(jī)器人加入,從而促進(jìn)了工業(yè)機(jī)器人的發(fā)展[1]。比如在自動(dòng)化生產(chǎn)線上,用焊接機(jī)器人逐步取代人工焊接,這不但降低了勞動(dòng)成本,而且還能提高焊接的效率與質(zhì)量。在相對(duì)比較惡劣的環(huán)境下,機(jī)器人也能高效地完成焊接作業(yè)。針對(duì)現(xiàn)有的焊接機(jī)器人都具有的示教效率低、實(shí)驗(yàn)時(shí)間長(zhǎng)等缺點(diǎn),可以利用仿真軟件模擬機(jī)器人的焊接過(guò)程,通過(guò)分析實(shí)驗(yàn)數(shù)據(jù)來(lái)評(píng)價(jià)焊接方案的可行性,從而減少實(shí)驗(yàn)時(shí)間,提高作業(yè)效率[2]。
本文研究的ABB1410機(jī)器人是由腰關(guān)節(jié)回轉(zhuǎn)(腰部)、肩關(guān)節(jié)俯仰(大臂)、肘關(guān)節(jié)俯仰(小臂)、腕關(guān)節(jié)回轉(zhuǎn)(手腕)、腕關(guān)節(jié)俯仰(手腕)、腕關(guān)節(jié)側(cè)擺(手腕)6個(gè)轉(zhuǎn)動(dòng)關(guān)節(jié)組成的。焊接實(shí)驗(yàn)中機(jī)器人在腕關(guān)節(jié)處安裝焊槍,在肘關(guān)節(jié)處安裝送絲機(jī)。根據(jù)標(biāo)準(zhǔn)的D-H[3]參數(shù)法,給ABB1410機(jī)器人建立必要的坐標(biāo)系,并選取機(jī)器人腰關(guān)節(jié)坐標(biāo)系作為基坐標(biāo)系以簡(jiǎn)化運(yùn)算。圖1所示為機(jī)器人坐標(biāo)系的簡(jiǎn)化線圖。
圖1 ABB1410機(jī)器人D-H坐標(biāo)系簡(jiǎn)化線圖
根據(jù)機(jī)器人的整體結(jié)構(gòu)和建立的簡(jiǎn)化坐標(biāo)系,得出機(jī)器人連桿參數(shù)和關(guān)節(jié)變量,見(jiàn)表1。
在確定全部的連桿坐標(biāo)系后,根據(jù)相鄰兩連桿i與(i-1)之間的相對(duì)關(guān)系[4](式(1)),將表1中關(guān)節(jié)轉(zhuǎn)角θi、距離di、桿長(zhǎng)ai、扭角αi代入計(jì)算,得到六自由度機(jī)器人的運(yùn)動(dòng)學(xué)方程(式(2))[5]。
表1 ABB1410機(jī)器人連桿D-H參數(shù)表
(1)
式中:i-1Ti為齊次變換矩陣,表示i連桿件坐標(biāo)系相對(duì)于(i-1)連桿坐標(biāo)系的方向與位置;Rz(θi)為xi-1軸和xi軸之間關(guān)于zi-1軸的角度;Dz(di)為沿zi-1軸,(i-1)坐標(biāo)系原點(diǎn)到xi軸的距離;Dx(ai)為沿xi-1軸,zi-1坐標(biāo)系原點(diǎn)到zi軸的距離;Rx(αi)為zi-1軸和zi軸之間關(guān)于xi軸的角度。
利用MATLAB編程計(jì)算機(jī)器人末端坐標(biāo)系相對(duì)基座標(biāo)系的變換矩陣,即六自由度機(jī)器人的運(yùn)動(dòng)學(xué)方程為:
(2)
式中:nx,ny,nz,ox,oy,oz,dx,dy,dz描述的是末端連桿相對(duì)于參考坐標(biāo)系的姿態(tài);px,py,pz表示的是機(jī)器人末端連桿相對(duì)于參考坐標(biāo)系的位置;Ci=cosθi,Si=sinθi(i=1,2,3,4,5,6)。
為了方便研究ABB1410焊接機(jī)器人在移動(dòng)過(guò)程中末端位置的軌跡曲線,可以先建立機(jī)器人模型。根據(jù)表1中相關(guān)數(shù)據(jù),利用MATLAB中的Robotics Toolbox工具箱,調(diào)用link函數(shù),建立ABB1410焊接機(jī)器人的模型(如圖2所示)。以下是相應(yīng)的程序:
圖2 ABB1410焊接機(jī)器人三維模型
L1=link([ 0 0.475 0.15 -pi/2 0 ]);
L2=link([ -pi /2 0 0.6 0 0 ]);
L3=link([ 0 0 0.12 -pi/2 0 ]);
L4=link([ pi 0.72 0 -pi/2 0 ]);
L5=link([ 0 0 0 pi/2 0 ]);
L6=link([ 0 0.085 0 0 0 ]);
robot=SerialLink({ L1 L2 L3 L4 L5 L6 });
robot.name = ‘ABB1410機(jī)器人’;
teach( r,[0-pi /2 0 pi 0 0]) ;
圖2中右圖所示是ABB1410機(jī)器人的初始狀態(tài),圖左上方的數(shù)字表示的是機(jī)器人模型末端位置與姿態(tài)。通過(guò)驅(qū)動(dòng)圖中左下方的滑塊,可以轉(zhuǎn)動(dòng)機(jī)器人的各個(gè)關(guān)節(jié),其中移動(dòng)滑塊1,2,3可以改變機(jī)器人模型的末端位置,而滑塊4,5,6是用來(lái)調(diào)整機(jī)器人的末端姿態(tài)。
模型建立后,需要確定建立的模型是否正確,這樣就要用到工具箱Robotics Toolbox中的fkine模塊。至于驗(yàn)證內(nèi)容,一方面是對(duì)機(jī)器人的正運(yùn)動(dòng)結(jié)果進(jìn)行驗(yàn)證,另一方面是驗(yàn)證模型建立的準(zhǔn)確度[6]。首先,在工作范圍內(nèi)任意給定機(jī)器人6個(gè)關(guān)節(jié)變量qb,然后調(diào)用fkine(r,qb)函數(shù),就可以得到ABB1410機(jī)器人模型的末端位姿。假設(shè)關(guān)節(jié)向量qb=[pi/4 -pi/3 pi/6 pi/4 -pi/3 pi/6],經(jīng)過(guò)MALTAB編程計(jì)算返回末端坐標(biāo)系的變換矩陣T6;接著將關(guān)節(jié)向量qb代入式(2)中,同樣也能得到末端坐標(biāo)系相對(duì)于基礎(chǔ)坐標(biāo)系的變換矩陣。通過(guò)對(duì)比,可知計(jì)算得到的結(jié)果與上述結(jié)果是一致的,證明機(jī)器人模型建立成功,同時(shí)也證明正運(yùn)動(dòng)學(xué)方程是正確的。
在MATLAB軟件的Robotics Toolbox工具箱中用來(lái)規(guī)劃?rùn)C(jī)器人的關(guān)節(jié)空間軌跡的函數(shù)是jtraj。其原理是根據(jù)已知的初始與終止的關(guān)節(jié)角度,以及運(yùn)動(dòng)的持續(xù)時(shí)間,通過(guò)轉(zhuǎn)動(dòng)機(jī)器人的關(guān)節(jié)角度,使得末端連桿移動(dòng)。而平滑變化的關(guān)節(jié)角被分成兩路傳送,一路傳送到plot模塊中,該模塊能在一個(gè)單獨(dú)的窗口中顯示機(jī)器人運(yùn)動(dòng)過(guò)程的畫面;一路傳送到fkine模塊中,用來(lái)求解機(jī)器人的正運(yùn)動(dòng)學(xué)方程[7]。可以先假設(shè)qa,qb為ABB1410機(jī)器人的起始位置與終止位置的關(guān)節(jié)向量,利用已建立的機(jī)器人模型,進(jìn)行機(jī)器人末端位置的軌跡曲線仿真,得到如圖3所示的ABB1410機(jī)器人末端空間軌跡曲線。軌跡規(guī)劃程序如下:
t=[0:0.056:2];
qa=[0 -pi/2 0 pi 0 0];
qb=[pi/4 -pi/3 pi/6 pi/4 -pi/3 pi/6];
[q,qd,qdd]=jtraj(qa,qb,t);
T=robot.fkine(r,q);
圖3 ABB1410機(jī)器人末端空間軌跡曲線
通過(guò)MATLAB簡(jiǎn)單編程運(yùn)行,得到的機(jī)器人移動(dòng)軌跡是從初始位置到終止位置的一條圓弧,實(shí)現(xiàn)了機(jī)器人關(guān)節(jié)的空間軌跡規(guī)劃。同時(shí)還可以利用fkine函數(shù)求解正運(yùn)動(dòng)學(xué)方程,計(jì)算可得機(jī)器人的任一關(guān)節(jié)的角位移、角速度和角加速度。圖4所示為ABB1410機(jī)器人末端的位置在3個(gè)坐標(biāo)軸上的投影坐標(biāo)隨時(shí)間變化的曲線,從曲線的變化可以看出機(jī)器人末端運(yùn)動(dòng)平穩(wěn)且連續(xù)。圖5所示為ABB1410機(jī)器人模型中關(guān)節(jié)2的角位移、角速度、角加速度隨時(shí)間變化的曲線,從圖中可以看出,關(guān)節(jié)2的速度、角速度隨著時(shí)間變化連續(xù)而且平緩。經(jīng)仿真可知,ABB1410機(jī)器人在進(jìn)行實(shí)際焊接作業(yè)時(shí),末端焊槍的移動(dòng)是平緩的,機(jī)器人的6個(gè)關(guān)節(jié)以及運(yùn)動(dòng)部件的運(yùn)動(dòng)也是相對(duì)穩(wěn)定的。
圖4 機(jī)械人末端執(zhí)行器坐標(biāo)變化曲線
本實(shí)驗(yàn)裝置包括ABBR1410機(jī)器人、焊槍、焊接件、實(shí)驗(yàn)平臺(tái)等。
圖5 關(guān)節(jié)2角位移、角速度、角加速度隨時(shí)間變化曲線
實(shí)驗(yàn)步驟:1)確定實(shí)際作業(yè)時(shí)ABB1410機(jī)器人與焊接件之間的相對(duì)位置,讓機(jī)器人對(duì)焊接件位置進(jìn)行采點(diǎn),通過(guò)得到的點(diǎn)的位置擬合出焊接件相對(duì)于機(jī)器人基坐標(biāo)系的位置;2)根據(jù)得到的ABB1410機(jī)器人與焊接件之間的相對(duì)位置關(guān)系,在SolidWorks軟件中對(duì)ABB1410機(jī)器人與焊接件進(jìn)行三維建模并確定兩者之間的位置;3)設(shè)定機(jī)器人腰關(guān)節(jié)的運(yùn)動(dòng)坐標(biāo)系為基坐標(biāo)系,并在三維模型中提取焊縫上特征點(diǎn)的三維坐標(biāo);4)如圖6所示,利用ABB1410機(jī)器人對(duì)實(shí)際焊接的焊縫進(jìn)行采點(diǎn),最后分別從建模與實(shí)物上取10組點(diǎn)的三維坐標(biāo),見(jiàn)表2。
圖6 ABB1410機(jī)器人焊接實(shí)物圖
表2 建模采點(diǎn)值與實(shí)物采點(diǎn)值比較
比較兩組點(diǎn)的起點(diǎn)與終點(diǎn)的三維坐標(biāo),根據(jù)式(4)分別計(jì)算點(diǎn)的x,y,z坐標(biāo)的誤差。
(4)
式中:Δ誤差為模型點(diǎn)與實(shí)物點(diǎn)的坐標(biāo)誤差;psim為模型中軌跡點(diǎn)的坐標(biāo);pact為實(shí)物中軌跡點(diǎn)的坐標(biāo)。
通過(guò)計(jì)算可知,起點(diǎn)與終點(diǎn)的位置存在誤差(見(jiàn)表3),但是誤差較小,誤差的來(lái)源可能是實(shí)際驅(qū)動(dòng)機(jī)器人采點(diǎn)位置時(shí)出現(xiàn)的不準(zhǔn)確。
表3 仿真與實(shí)物中軌跡起點(diǎn)與終點(diǎn)的誤差
只計(jì)算起始點(diǎn)的誤差并不能得到2條軌跡的誤差,也不足以證明仿真軌跡與實(shí)物軌跡具有良好的一致性。但是由于在軌跡上取點(diǎn)位置的不統(tǒng)一,不能直接比較除起點(diǎn)與終點(diǎn)以外的8組點(diǎn)。這里可以使用MATLAB中的擬合工具箱,利用得到的2組10個(gè)點(diǎn)擬合出軌跡曲線進(jìn)行比較。從圖6實(shí)物圖中可以看出,焊接軌跡上的點(diǎn)基本屬于同一水平面;從表2可知,無(wú)論是建模采點(diǎn)還是實(shí)物采點(diǎn),在z軸方向的變化都較小且保持在623左右也說(shuō)明了這一點(diǎn)。因此先將z軸坐標(biāo)的變化忽略不計(jì),只研究點(diǎn)的x與y坐標(biāo)。利用MATLAB中擬合工具箱得到兩組點(diǎn)的x與y坐標(biāo)的擬合公式:
(5)
(6)
式中:xsim和ysim為從模型中提取的坐標(biāo)數(shù)值;xact和yact為從實(shí)物中提取的坐標(biāo)數(shù)值。
令橫坐標(biāo)xsim=xact,計(jì)算2個(gè)擬合公式中的縱坐標(biāo),通過(guò)對(duì)比縱坐標(biāo)的值,來(lái)確定由2條軌跡上的點(diǎn)分別擬合而成的方程的誤差。任意取xsim=xact=1 015mm代入式(5)和式(6),得到:
ysim=157.23mm
yact=159.76mm
(7)
通過(guò)式(7)計(jì)算結(jié)果可知2個(gè)擬合公式中取同一橫坐標(biāo)時(shí),縱坐標(biāo)相對(duì)誤差較小。2個(gè)擬合公式是根據(jù)2條軌跡上取得的點(diǎn)得到的,這結(jié)果表明2條軌跡曲線上橫坐標(biāo)相同的點(diǎn),它們的縱坐標(biāo)的相對(duì)誤差比較小。
根據(jù)所得到的點(diǎn)的x與y坐標(biāo)的相互關(guān)系,利用MATLAB中的工具箱繪制出擬合的曲線,如圖7所示。圖7(a)是從ABB1410機(jī)器人與焊接件的模型上提取的三維坐標(biāo)點(diǎn)擬合的軌跡曲線;圖7(b)是實(shí)際中驅(qū)動(dòng)ABB1410機(jī)器人從焊接件上提取的焊縫點(diǎn),并由這些點(diǎn)擬合而成的軌跡曲線。從2條軌跡曲線的對(duì)比來(lái)看,軌跡曲線總體相似,但是2條軌跡曲線上橫坐標(biāo)相同的點(diǎn),它們的縱坐標(biāo)還是存在相對(duì)誤差。根據(jù)2條軌跡曲線的擬合公式(5)與(6),計(jì)算得到的結(jié)果(式(7) )表明兩者之間誤差比較小,從而證明三維建模上的軌跡曲線與實(shí)際中的曲線具有良好的一致性。與此同時(shí),實(shí)驗(yàn)還證明了在MATLAB中研究機(jī)器人的軌跡規(guī)劃以及仿真的可行性。
圖7 軌跡擬合曲線圖
本文主要研究仿真軟件中模擬焊接機(jī)器人的軌跡規(guī)劃,傾向于理論方面的研究。文中得到的機(jī)器人末端的關(guān)節(jié)空間運(yùn)動(dòng)的軌跡曲線,以及末端位
置在三坐標(biāo)軸上的投影點(diǎn)的時(shí)間變化曲線和關(guān)節(jié)2的角位移、角速度、角加速度變化曲線,表明機(jī)器人在空間運(yùn)動(dòng)時(shí)運(yùn)動(dòng)連續(xù)且平穩(wěn),符合焊接工業(yè)機(jī)器人實(shí)際作業(yè)時(shí)各部件運(yùn)動(dòng)平緩的要求,為后續(xù)的實(shí)驗(yàn)提供了理論分析依據(jù)。
本文通過(guò)對(duì)比由兩種方式得到的同一軌跡曲線,可知利用SolidWorks建立的三維模型中仿真焊縫軌跡與實(shí)際焊縫軌跡具有良好一致性,證明利用仿真軟件進(jìn)行軌跡規(guī)劃具有較高的精度,可為后續(xù)的離線編程提供三維模型與軌跡規(guī)劃仿真的理論基礎(chǔ),同時(shí)也驗(yàn)證了在MATLAB中研究機(jī)器人的軌跡規(guī)劃以及仿真的可行性。