孫增光,王士軍,孟令軍,王春璐,周永鑫
(山東理工大學 機械工程學院, 山東 淄博 255049)
六自由度關(guān)節(jié)機器人動作靈活性高、工作空間范圍大,并且結(jié)構(gòu)緊湊、占地面積小,能夠解放勞動力,提高勞動效率。因此,在機床上下料、噴涂、弧焊等機械制造業(yè)中得到了廣泛應用[1]。
利用Matlab對IRB2400機器人建模仿真,可以直觀了解機器人工作形態(tài)。為了提高機器人運動軌跡精度和穩(wěn)定性,對機器人進行軌跡規(guī)劃[2]。通過運動學分析,確定機器人末端執(zhí)行器的位姿[3],并進行機器人正逆運動學求解,以驗證機器人模型的正確性。運動學分析是機器人控制的基礎(chǔ),本文對IRB2400機器人進行軌跡規(guī)劃和運動學分析,以期為離線編程提供有效的驗證手段[4]。
IRB2400是全球應用最廣的工業(yè)機器人,該機器人堅固耐用、可靠性強、維護間隔時間長,具有最佳的軌跡精度和重復定位精度, 零件生產(chǎn)質(zhì)量穩(wěn)定,它的有效載荷大,到達距離遠,適用范圍廣[5]。IRB2400機器人空間結(jié)構(gòu)圖如圖1所示。
圖1 IRB2400空間結(jié)構(gòu)圖
在進行運動學分析時,首先根據(jù)建立的機器人連桿坐標系,建立各連桿之間的關(guān)系,最終推導出機器人末端相對于機器人底座的位姿變換。對于轉(zhuǎn)動關(guān)節(jié)構(gòu)成的機器人來說只有關(guān)節(jié)角θi為變量,其他3個參數(shù)由機械結(jié)構(gòu)決定。連桿i相對于連桿i-1的變換矩陣表示為
坐標系n相對于坐標系0的變換矩陣為
可以看出,要求變換矩陣需要知道連桿長度ai-1、連桿轉(zhuǎn)角αi-1、連桿偏距di和關(guān)節(jié)角θi4個參數(shù)。運用DH參數(shù)法建立的ABB IRB2400機器人連桿坐標系如圖2所示。
圖2 機器人連桿坐標系
根據(jù)建立的連桿坐標系求出連桿各參數(shù),建立的DH參數(shù)表見表1。
表1 機器人DH參數(shù)表Tab.1 Robot DH parameter table
iai-1/mmαi-1/(°)di/mmθi/(°)關(guān)節(jié)變量范圍/(°)1100-90090-180~+180270500-90-100~+1003135-9000-60~+6540907550-200~+20050-9000-120~+12060000-400~+400
利用Matlab建立機器人仿真模型,部分代碼如下:
L1=Link([pi/2 0 0.1 -pi/2 0]);
L2=Link([-pi/2 0 0.705 0 0]);
L3=Link([0 0 0.135 -pi/2 0]);
L4=Link([0 0.755 0 pi/2 0]);
L5=Link([0 0 0 -pi/2 0]);
L6=Link([0 0 0 0 0]);
robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','ABB IRB 2400');
輸出機器人模型時,定義關(guān)節(jié)角姿態(tài)為0,并通過teach()指令查看所建立的機器人,通過拖動關(guān)節(jié)角調(diào)節(jié)滑塊來改變關(guān)節(jié)角度值,使機器人呈現(xiàn)出不同的姿態(tài)。生成的機器人仿真模型如圖3所示。
圖3 機器人仿真模型
進行軌跡規(guī)劃可以使機器人運動變平穩(wěn),減少振動和沖擊,同時也能避免消耗額外能量并減少機械部件磨損[6]。關(guān)節(jié)空間軌跡規(guī)劃的基本思路是使用逆運動學計算方法,將笛卡爾空間中的路徑點轉(zhuǎn)換成對應的關(guān)節(jié)角,然后使用插值點計算方法,對關(guān)節(jié)型機器人的各個關(guān)節(jié)計算插值點,使關(guān)節(jié)型機器人的各個關(guān)節(jié)同步且順滑地到達目標點[7]。
關(guān)節(jié)空間多項式軌跡規(guī)劃從三次多項式開始,在軌跡規(guī)劃中,把機器人的關(guān)節(jié)角度變換成與時間有關(guān)的函數(shù),然后對角速度和角加速度進行約束。
假設(shè)初始時刻t0的角度是θ0,在終點時刻tf的角度是θf,為使運行平穩(wěn),給定4個約束條件,起始點和終止點關(guān)節(jié)角度為
(1)
起始點和終止點關(guān)節(jié)角速度為
(2)
由此確定了三次多項式關(guān)節(jié)插值函數(shù)為
θ(t)=a0+a1t+a2t2+a3t3
(3)
確定關(guān)節(jié)角速度及角加速度為
(4)
將約束條件(1)和(2)代入到函數(shù)關(guān)系式(3)和(4)中,得到a0、a1、a2和a3相關(guān)的線性方程為
(5)
求解以上方程組得
(6)
指定起止位置q_array=[0,50,150,100,40],指定起止時間t_array=[0,5,10,15,20],指定起止速度v_array= [0,10, 20,-15,0]。用Matlab計算三次多項式插值,得到的關(guān)節(jié)角度、角速度和角加速度隨時間變化的曲線如圖4所示。
圖4 三次多項式軌跡規(guī)劃
通過分析三次多項式的關(guān)節(jié)空間軌跡規(guī)劃圖可以看出,機器人運動關(guān)節(jié)角度、角速度是連續(xù)性的,但由于沒有對關(guān)節(jié)角的加速度約束,因此關(guān)節(jié)角的加速度有突變,機器人運動不穩(wěn)定,會導致機械系統(tǒng)產(chǎn)生一定的沖擊。
由于機器人在實際工作中對工作路徑有更高的要求,三次多項式插值算法難以滿足,所以提出了五次多項式插值算法。它不僅對路徑的起點與終點的角度、角速度進行約束,也對角加速度有規(guī)定,需滿足6個約束條件,其函數(shù)表達式如下:
相應的五次多項式描述規(guī)劃軌跡為
θ(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5(8)
通過求解方程組得
(9)
指定和三次多項式同樣的起止位置、時間、速度,指定起止加速度a_array=[0,20,30,-20,0],用Matlab計算五次多項式插值,得到的關(guān)節(jié)角度、角速度和角加速度隨時間變化的曲線如圖5所示。
圖5 五次多項式軌跡規(guī)劃
由圖5可以看出,五次多項式插值得到的加速度平滑,能保證關(guān)節(jié)角度、角速度和角加速度的連續(xù)性,使關(guān)節(jié)運動平穩(wěn),避免了沖擊和振動。
比較兩種插值方法可以看出,三次多項式的加速度發(fā)生突變,這對機器人的關(guān)節(jié)電動機沖擊較大,而五次多項式的加速度較為平滑,沒有突變。因此,五次多項式的插值比三次多項式更為精準。
機器人運動學研究是在不考慮受力的情況下機器人的運動特性,主要包括機器人的位置、速度和加速度等內(nèi)容[8]。
給定機器人末端初始關(guān)節(jié)角度qA= [0 0 0 0 0 0 ],機器人末端終止關(guān)節(jié)角度qAB=[0 -pi/4 -pi/4 0 pi/8 0],規(guī)定采樣時間間隔為0.01 s,采樣時間為10 s。用Matlab進行仿真,得到機器人末端軌跡圖如圖6所示,末端位移圖如圖7所示。
圖6 機器人末端軌跡圖
圖7 機器人末端位移圖
為了更好地了解機器人的各關(guān)節(jié)運動情況,利用Matlab求出了各關(guān)節(jié)的運動曲線(如圖8所示)、角速度曲線(如圖9所示)和角加速度曲線(如圖10所示)。
圖8 各關(guān)節(jié)的運動曲線
圖9 各關(guān)節(jié)的角速度曲線
圖10 各關(guān)節(jié)的角加速度曲線
從圖8—圖10可以看出,得到的各曲線均光滑連續(xù),得到的各關(guān)節(jié)最大角度、最大角速度、最大角加速度差別不大。在0~5 s時間段內(nèi)角速度逐漸增加,在5~10 s時間段內(nèi)角速度逐漸減少,終點處角速度和角加速度最終為0,說明機械臂是一個先加速后減速的過程。從角速度和角加速度曲線可以看出,各曲線平穩(wěn)無振動,各關(guān)節(jié)性能良好。
正運動學是根據(jù)給定的各關(guān)節(jié)角度變量計算機器人末端的位置和姿態(tài)。而逆運動學是根據(jù)末端已知的位置和姿態(tài)計算機器人的關(guān)節(jié)角,其關(guān)系如圖11所示。
圖11 正運動學和逆運動學關(guān)系
假設(shè)機器人初始關(guān)節(jié)角qA=[0 0 0 0 0 0 ],在Matlab中通過fkine函數(shù)計算相應的變換矩陣,得到機器人初始位置的末端齊次變換矩陣為
假設(shè)機器人終止位置時的關(guān)節(jié)角qB=[0 -pi/4 -pi/4 0 pi/8 0],計算得終止位置的變換矩陣為
在Matlab中,利用Robotics Toolbox中的ikine函數(shù)實現(xiàn)運動學逆問題的求解,以運動學正解后的矩陣TB求解運動學逆問題的關(guān)節(jié)角。令qi=robot.ikine(TB,'pinv'),求出qi = [0 -0.7854 -0.7854 0 0.3927 0]。
發(fā)現(xiàn)qi和qB的值看上去不相等,這時對關(guān)節(jié)角變量qi使用fkine指令求解對應的變換矩陣為
可以發(fā)現(xiàn),qi求解后其對應的變換矩陣Ti與給定的終止位置關(guān)節(jié)角qB所求的變換矩陣相同,即為同一變換,說明機器人的參數(shù)設(shè)計和Matlab中構(gòu)建的仿真模型是正確的。
通過DH參數(shù)法求解機器人各參數(shù),利用Matlab teach()指令建立了ABB IRB2400機器人仿真模型,通過改變關(guān)節(jié)角度值,使機器人呈現(xiàn)出不同的姿態(tài),從而能更加準確方便地了解機器人工作空間和范圍。對關(guān)節(jié)空間軌跡進行了規(guī)劃,通過分析位移、速度和加速度曲線可知,五次多項式插值算法的加速度平滑,減少了振動沖擊,提高了機器人的穩(wěn)定性。對機器人正運動學和逆運動學進行求解,得到的變換矩陣結(jié)果是一致的,說明機器人的參數(shù)設(shè)計和Matlab中構(gòu)建的仿真模型是正確的。通過運用Matlab的運動學仿真功能,能方便準確地判斷機器人在空間的位置和姿態(tài),這對工業(yè)機器人的實際應用具有重要意義。