田勇,張露,林開司
(銅陵職業(yè)技術(shù)學院 電氣工程系,安徽 銅陵 244000)
隨著工業(yè)機器人越來越廣泛的應用于汽車、加工制造、電子、食品、物流等各個行業(yè),工業(yè)機器人已經(jīng)逐漸成為企業(yè)實現(xiàn)“智能制造”發(fā)展目標的重要基礎(chǔ)設(shè)備[1].在工業(yè)機器人的眾多應用場景中,幾乎都對整個運動過程中機器人手部的位置和姿態(tài)有較高的要求.這就需要對機器人的運動軌跡進行規(guī)劃,使其在經(jīng)過所要求的路徑點時還具有平滑的運動軌跡.在有些場景下,還要求機器人有較好的速度或加速度特性.近些年,工業(yè)機器人相關(guān)的專業(yè)受到了高校和專業(yè)培訓機構(gòu)的青睞.但是在機器人的教育教學過程中,雖然能夠方便的進行機器人操作與編程教學,但無法直觀的介紹機器人的軌跡規(guī)劃過程及動態(tài)等運動學相關(guān)特性.使用機器人仿真技術(shù)不僅可以用直觀的方法介紹如何通過結(jié)構(gòu)分析來建立機器人的數(shù)學模型,還可以進行機器人軌跡規(guī)劃的仿真、運動控制以及優(yōu)化設(shè)計等,并通過機器人仿真以圖形的形式直觀方便的模擬機器人的運動學相關(guān)特性.目前,已有較多對機器人軌跡規(guī)劃的研究.如:沈陸使用逆運動學解法將機器人途經(jīng)的位姿點轉(zhuǎn)換成關(guān)節(jié)空間下各關(guān)節(jié)的轉(zhuǎn)動角度值進行仿真運算[2].陳偉華等使用五次多項式過渡法進行機器人的軌跡插值規(guī)劃[3].Petrinec等提到使用高次多項式插值法進行軌跡規(guī)劃時,最終結(jié)果容易發(fā)生“龍格現(xiàn)象”[4].還有一些學者針對不同的優(yōu)化目標,使用S曲線加減速控制算法[5]、B樣條曲線插值法[6]等進行軌跡規(guī)劃研究,獲得了不同的優(yōu)化效果.
本文使用Matlab中的機器人工具箱對教學中所使用的EFORT ER3A機器人進行建模和仿真,分析機器人在不同路徑規(guī)劃方法下各關(guān)節(jié)的運動特性,驗證所構(gòu)建機器人模型和運動學參數(shù)的合理性.
ER3A機器人結(jié)構(gòu)及尺寸ER3A機器人由安徽埃夫特智能裝備股份有限公司研發(fā)和生產(chǎn).該機器人具備6個旋轉(zhuǎn)關(guān)節(jié),手腕末端負載3 Kg,是一種小型的垂直型多關(guān)節(jié)機器人,可以適用在裝配、物料搬運、打磨等場合,同時也常用在很多機器人教學實訓臺上.其結(jié)構(gòu)以及各運動關(guān)節(jié)之間的尺寸如圖1所示.
圖1 ER3A-C60機器人結(jié)構(gòu)、尺寸
機器人建?;诟倪M的D-H參數(shù)法對機器人進行建模.D-H參數(shù)法是由Denavit和Hartenberg提出的一種通用方法,該方法只需要4個參數(shù)就可以表達兩個坐標系之間的位姿關(guān)系,是一種用來表示機器人連桿與關(guān)節(jié)之間相互關(guān)系的方法[7].該方法把坐標系對應到每一個關(guān)節(jié)上,通過構(gòu)建坐標系之間的齊次變換矩陣來表達相互之間位置和姿態(tài)轉(zhuǎn)換關(guān)系,進而得到從機器人基座坐標系變換到手部坐標系的矩陣.
D-H參數(shù)法分為標準(Standard)DH法和改進(Modified)DH法.在標準DH法中,當相鄰兩個關(guān)節(jié)軸線相交時,不能保證所建立坐標系的惟一性,而改進DH法可以避免這樣的情況.本文所研究的工業(yè)機器人中,4軸、5軸、6軸的軸線存在相交的情況,因此本文選擇使用改進的DH法進行機器人數(shù)學建模.基于改進D-H參數(shù)法得到的變換矩陣正是進行機器人運動學計算分析和軌跡規(guī)劃的基礎(chǔ).
依照建模方法的約定,需要確定的坐標系可以大致分為基座坐標系{0},關(guān)節(jié)坐標系{i}和手部坐標系{h}.其中涉及的參數(shù)主要有轉(zhuǎn)動角度、連桿偏移量、連桿長度、連桿扭角等.
坐標系建立過程如下:
①確定各坐標系Z軸,坐標軸線位于關(guān)節(jié)的旋轉(zhuǎn)軸線上;
②確定各坐標系的原點,把相鄰兩軸的交點作為原點,如果相鄰兩軸不相交,則將相鄰兩個軸線的公垂線與低位軸的交點作為原點;
③確定各坐標系X軸,若相鄰倆軸相交,則以兩軸線所成平面的法線作為X軸,否則X軸與兩軸公垂線重合,方向由低位軸指向高位軸;
④確定Y軸,根據(jù)已確定的X軸和Z軸,按右手坐標系確定Y軸;
⑤當?shù)谝粋€關(guān)節(jié)的連桿偏移量、連桿扭角等為零時,可以設(shè)定基座坐標系{0}與坐標系{1}重合.對于末端坐標系{n},原點和x軸的方向可任意選取.一般情況下,將原點和x軸方向選取在構(gòu)建坐標系后可使dh參數(shù)為零的位置.
在本文的研究對象中,機器人末端未安裝工具手,因此可以不設(shè)定手部坐標系{h}或?qū)⑵渑c最后一個關(guān)節(jié)坐標系{n}重合.
依照上述方法,建立本文所研究的機器人連桿坐標系,如圖2所示.圖中,基座坐標系{0}與關(guān)節(jié)坐標系{1}重合,關(guān)節(jié)坐標系{4}與{5}的原點重合,將關(guān)節(jié)坐標系{6}設(shè)定在機器人本體最末端.按照所建立的坐標系,可以建立D-H參數(shù)表.對于改進的DH參數(shù)法,有4個參數(shù),ai表示沿xi軸,從zi移動到zi+1的距離;αi表示繞xi軸,從zi旋轉(zhuǎn)到zi+1的角度;di表示沿zi軸,從xi-1移動到xi的距離;θi表示繞zi軸,從xi-1旋轉(zhuǎn)到xi的角度.旋轉(zhuǎn)的正負方向同樣按照右手定則判定,具體如表1所示.
圖2 改進D-H法建立的ER3A機器人連桿坐標系
表1 基于改進D-H法的參數(shù)表
改進dh參數(shù)法使用的是XZ類變換,其坐標系變換順序是:先繞著坐標系{i}的Xi軸進行旋轉(zhuǎn)和平移,再繞著坐標系{i}的Zi軸進行旋轉(zhuǎn)和平移.從坐標系{i-1}變換到坐標系{i}的齊次坐標變換矩陣Ti的計算通式為:
(i-1)Ti=Rot(x,αi-1)×Trans(ai-1,0,0)×Rot(z,θi)×Trans(0,0,di)=
(1)
從機器人基座坐標系變換到手腕末端的坐標系的表達式如式(2)所示.
0T6=0T11T22T33T44T55T6
(2)
要求工業(yè)機器人在工作空間的范圍內(nèi)完成給定的任務(wù),就需要末端執(zhí)行器必須按照給定的軌跡進行運動,這正是機器人軌跡規(guī)劃的任務(wù)[8].機器人的軌跡規(guī)劃問題主要在關(guān)節(jié)空間與直角坐標空間內(nèi)進行.當機器人在連續(xù)軌跡(ContinuousPath,CP)控制的應用場景下工作時,一般采用直角坐標空間(笛卡爾空間)下的軌跡規(guī)劃.通過規(guī)劃可以得到機器人末端執(zhí)行器的位置和姿態(tài)關(guān)于時間的函數(shù).該種軌跡規(guī)劃方法,計算量較大,且可能帶來空間中存在奇異點、關(guān)節(jié)變量曲線突變等問題[9].關(guān)節(jié)空間中的軌跡規(guī)劃一般用于點到點軌跡(Point to Point,PTP)控制的應用場景下,該場景下機器人各關(guān)節(jié)運動不需要聯(lián)動,在運動中只關(guān)注機器人末端的起點和終點的位置和姿態(tài),對中間過程的姿態(tài)和位置沒有要求.這種情況下,各關(guān)節(jié)的旋轉(zhuǎn)角度是軌跡規(guī)劃的主要變量,運算簡便,各關(guān)節(jié)的運動均處在關(guān)節(jié)的運動限制范圍內(nèi),不會出現(xiàn)超限、奇異點等現(xiàn)象.因此,本文主要在關(guān)節(jié)空間下進行機器人軌跡規(guī)劃.
在關(guān)節(jié)空間下進行軌跡規(guī)劃,首先需要使用逆運動學理論,對機器人工作任務(wù)的空間坐標系中期望途經(jīng)的各點進行求解,得到途經(jīng)各點時各關(guān)節(jié)的角度值.隨后,以角度值作為變量,確定一條角度值隨時間變化的光滑函數(shù),該函數(shù)需依次通過所有的途經(jīng)點并到達終點.同時,為了衡量運動特性,通過該函數(shù)還可確定關(guān)節(jié)角速度、角加速度等運動參數(shù)關(guān)于時間的函數(shù).在滿足上述要求的條件下,可能存在不止一條的光滑函數(shù),所以這些光滑函數(shù)必須至少符合4個約束限制條件,即起點和終點的位置約束條件和速度約束條件(起點、終點速度為0).多項式插值法是解決機器人在關(guān)節(jié)空間下進行軌跡規(guī)劃的常用方法,本文將使用不同階次的多項式插值法對機器人路徑規(guī)劃進行研究.
三次多項式插值函數(shù)的表達式如式(3)所示.
θ(t)=a0+a1t+a2t2+a3t3
(3)
對于機器人中的任意關(guān)節(jié),θ(t)表示該關(guān)節(jié)在某一時刻的角度.對于該多項式,只需要明確所關(guān)注路徑段的起始與終止位置時所對應的各關(guān)節(jié)的關(guān)節(jié)角位移和關(guān)節(jié)角速度的具體數(shù)值,即可得到三次多項式函數(shù)表達式中的各系數(shù)值.
以機器人的某一關(guān)節(jié)為例,首先可以通過逆運動學原理求解得到該關(guān)節(jié)在起點(t=0)和終點(t=f)位置時的關(guān)節(jié)轉(zhuǎn)動角度θ0和θf.同時,在一般情況下,機器人在起點和終點位置時的速度通常為0.但在某些工作任務(wù)中,要求機器人在連續(xù)運動時,途經(jīng)規(guī)劃點而不做停留,此時該關(guān)節(jié)在起點和終點位置時的角速度可以表示為ω0和ωf.由上述條件可以得到約束條件如式(4)所示:
(4)
對式(4)進行求解,多項式中各參數(shù)結(jié)果如式(5)所示:
(5)
在關(guān)節(jié)空間內(nèi)使用五次多項式插值法對機器人進行軌跡規(guī)劃,需要6個參數(shù)才能確定惟一的軌跡曲線[10].除了前文中提到的起始點和終止點的角度和角速度條件外,還可附加關(guān)節(jié)在兩點處的角加速度作為約束條件.機器人的某一關(guān)節(jié)角度隨時間變化的方程為:
θ(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5
(6)
(7)
在Matlab環(huán)境下建立機器人模型,設(shè)置一個機器人的動作路徑,讓機器人分別在三次多項式軌跡規(guī)劃和五次多項式軌跡規(guī)劃的環(huán)境下依次經(jīng)過A、B、C三點.將機器人經(jīng)過三點時的運動參數(shù)設(shè)置如下:
點A的角度值為[-30,0,0,45,-30,60],角速度值為[0,0,0,0,0,0],角加速度值為[0,0,0,0,0,0];點B的角度值為[30,15,-30,60,30,90],角速度值為[0,0,0,0,0,0],角加速度值為[0,0,0,0,0,0];點C的角度值為[0,30,45,30,-60,30],角速度值為[0,0,0,0,0,0],角加速度值為[0,0,0,0,0,0].
從A點到B點時間為1 s,B點到C點時間為1 s,兩點間插值點數(shù)為50.
在Matlab環(huán)境下,使用Robotics工具箱進行機器人建模和仿真.對照所建立的D-H參數(shù)表,先使用工具箱中的LINK函數(shù)確定機器人上單個連桿對象的模型,然后通過robot函數(shù)建立整個機器人對象.
LINK函數(shù)的調(diào)用格式為:L=LINK([thetadaalphasigmaoffset],CONVENTION)
上述調(diào)用格式中,theta表示關(guān)節(jié)的轉(zhuǎn)動角度;d表示連桿偏移量,即相鄰兩關(guān)節(jié)x軸間距;a表示連桿長度;alpha表示連桿扭角;sigma表示關(guān)節(jié)類型:1為移動關(guān)節(jié),0為旋轉(zhuǎn)關(guān)節(jié);offset表示關(guān)節(jié)變量偏移量,可用于指定初始零位的姿態(tài);參數(shù)CONVENTION包括兩種選擇:“standard”為標準的D-H參數(shù)表示法;“modified”為改進的D-H參數(shù)表示法.
本文使用改進D-H參數(shù)法建模,對照表1所示的DH參數(shù)表和實際情況下機器人的零位姿態(tài),可以構(gòu)建機器人模型如下,為方便顯示,本文中將各連桿尺寸按照1∶1 000的比例進行了縮小.
L1=Link([0 0 0 0 0 0],'modified');
L2=Link([pi/2 0 0.05 pi/2 0 pi/2],'modified');
L3=Link([0 0 0.27 0 0 0],'modified');
L4=Link([0 -0.299 0.07 -pi/2 0 0],'modified');
L5=Link([0 0 0 pi/2 0 0],'modified');
L6=Link([0 0.0785 0 pi/2 0 0],'modified');
使用qlim指令來約束各關(guān)節(jié)的轉(zhuǎn)動角度范圍,以連桿1為例,在ER3A機器人的技術(shù)手冊中,其1軸的轉(zhuǎn)動范圍是±167°,對應如下指令:
L1.qlim=[-167 167]*pi/180
最后,使用SerialLink指令將所有連桿組合,使用teach指令可以對構(gòu)建的機器人模型在關(guān)節(jié)空間內(nèi)進行姿態(tài)控制,拖動滑條的位置則可以在關(guān)節(jié)轉(zhuǎn)動范圍內(nèi)條件關(guān)節(jié)角度,實現(xiàn)類似使用示教器操作機器人的功能.按照上述方法建立完整的機器人模型如圖3所示.
使用fkine函數(shù),通過輸入各關(guān)節(jié)的角度得到從機器人基座坐標系變換到末端坐標系的位姿矩陣.再使用transl指令可得到機器人末端的三維坐標值.這樣,就可以將機器人各關(guān)節(jié)的角度值對應到末端坐標系在基座坐標系下的坐標值.使用上述指令,在本文的設(shè)定條件下,機器人末端的軌跡如圖4所示.
圖3 ER3A工業(yè)機器人的仿真模型 圖4 機器人末端軌跡示意圖
為了驗證所建立的機器人模型參數(shù)的正確性,對A、B、C三點分別使用仿真函數(shù)fkine和操作機器人實際運行驗證這兩種方式,比較兩種方式下得到的機器人末端的直角坐標系坐標值,結(jié)果如表2所示.
表2 機器人運動學正解結(jié)果驗證
從表2可以看到,利用所建立的機器人模型,使用仿真函數(shù)所計算的結(jié)果與機器人實際運行所得到結(jié)果,其X軸和Y軸的坐標值均一致.在Z軸的坐標值上,仿真結(jié)果均比機器人運行結(jié)果少約321.5mm,這是由于機器人坐標系將坐標原點定于機器人的底座中心,而本文的建模方法中將機器人的基座坐標系原點定在于關(guān)節(jié)1軸線等高的平面上,兩者的高度差正好為321.5mm.因此,可以驗證本文所建立的機器人模型以及相關(guān)DH參數(shù)的正確性.
結(jié)合式(3)和式(5)的結(jié)果,定義和編寫機器人三次多項式插值函數(shù),運行求解后分別繪制出機器人從A點運動到B點再運動到C點的過程中各關(guān)節(jié)的角度、角速度和角加速度隨時間的變化關(guān)系,如圖5所示.從圖5可以看出,在機器人的運動過程中,各關(guān)節(jié)角度隨時間變化平滑,表明機器人的運動過程流暢.各關(guān)節(jié)的角速度變化,依照本文路徑的設(shè)定,在AB段和BC段的起止點均為0,中間的過程角速度變化也連續(xù)平滑.但是在加速的變化趨勢中可以看到,各關(guān)節(jié)在路徑的起止時,加速度不為0,且中間過程不連續(xù)、有突變.由此可知,機器人的關(guān)節(jié)空間中,使用三次多項式插值法進行路徑規(guī)劃,雖然計算較簡單,機器人在規(guī)定路徑上的運動平滑連續(xù),但加速度的變化過程不連續(xù),存在突變.雖然能夠較平滑的完成規(guī)定路徑動作,但是起止階段加速度突變會對機器人造成沖擊,若是在手部帶負載的情況下,更易造成負載不穩(wěn)定,且會對各運動關(guān)節(jié)造成額外的沖擊負載,影響機器人的使用和壽命.
圖5 三次多項式規(guī)劃各關(guān)節(jié)角度、角速度、角加速度變化
以相同的初始條件,使用五次多項式插值法規(guī)劃機器人在起止點之間的動作路徑.求解各關(guān)節(jié)的角度、角速度和角加速度的插值數(shù)值,并繪制出圖6.
圖6 五次多項式規(guī)劃各關(guān)節(jié)角度、角速度、角加速度變化
結(jié)合圖5和圖6可以看出,在機器人的關(guān)節(jié)空間下,使用三次多項式和五次多項式插值法進行軌跡規(guī)劃時,各關(guān)節(jié)的角度、角速度等參數(shù)隨時間變化都是連續(xù)的.但是使用三次多項式規(guī)劃方法時,各關(guān)節(jié)的角加速度在起止位置不連續(xù),存在突變;使用五次多項式規(guī)劃方法時,各關(guān)節(jié)的角加速度變化是連續(xù)平滑的,可以顯著的減小機器人在運行時所產(chǎn)生的沖擊和振動.
本文對教學中使用的EFORT ER3A工業(yè)機器人進行了結(jié)構(gòu)分析,并使用改進D-H法構(gòu)建了機器人的連桿坐標系,建立D-H參數(shù)表;在Matlab環(huán)境下,使用Robotics機器人工具箱進行機器人建模,并驗證了所建立模型和參數(shù)的正確性;分別研究了機器人在關(guān)節(jié)空間下以不同階次的多項式插值法進行軌跡規(guī)劃時運動學特點.研究結(jié)果表明,采用五次多項式的插值算法相對三次多項式插值,其運動更加平穩(wěn),加速度連續(xù)性更好,能有效的減少機器人在運動中的沖擊.本文的研究對在教學中直觀展示機器人的軌跡規(guī)劃、動態(tài)特性、運動控制以及優(yōu)化設(shè)計等提供了較有意義的依據(jù)和參考.