譚月勝 詹登輝 張彭豪
(北京林業大學工學院, 北京 100083)
工業機械臂自身結構參數誤差及柔性誤差均會導致其末端執行器的實際位置發生偏離,從而使機械臂絕對定位精度降低[1]。因此對其進行誤差分析與補償顯得尤為重要。國內外研究者對提高機械臂末端運動精度進行了大量研究。陳宵燕等[2]對串聯機器人多模式標定及誤差補償方法進行了相關研究,建立了包含幾何和柔性的誤差模型,利用線性遞減權重的粒子群算法選取測量位姿,提出了一種局部補償方法,同時制定了一種多模式精度提高策略。TAN等[3]利用壓縮感知法對串聯機械臂的幾何誤差進行了補償。LIU等[4]利用七次多項式與粒子群算法,并結合對機械臂關節進行軌跡規劃,減小了機械臂末端的綜合誤差。機械臂作為一個強耦合性系統,其連桿和關節的彈性變形及動載荷等對末端執行器位置精度的影響均不可忽略,而采用運動學標定方法減小因柔性產生的誤差時,效果不佳。針對機械臂剛柔耦合的情況,VOLECH等[5]在機器人的減速器和連桿存在柔性時以仿真方式獲得了機器人末端的形變量,以輸入整形法對機器人末端誤差進行了補償。考慮到機械臂對于快速響應的要求,吳昊等[6]提出一種連續線性化模型預測控制方法來提高柔性空間機械臂的末端軌跡精度。由于機械臂柔性造成的非線性誤差不可忽略,因此可結合上述方法針對具體的研究對象設計相應的補償策略,對機械臂末端位置誤差進行補償。
本文針對機械臂因連桿與關節柔性變形而引起的末端位置的非線性誤差問題,分析其誤差變化情況,并對誤差進行補償。首先,建立剛柔耦合機械臂動力學和關節偏差相結合的誤差模型;其次,利用有限元法與軟件仿真[7-9]分析末端執行器位置誤差變化;最后,基于Matlab并結合實際應用提出一種快速補償方法,對機械臂末端位置誤差進行離線補償及實驗驗證,以期提高機械臂末端位置精度。
IRB1410型機械臂結構如圖1所示,其本體結構包括:基座、腰部、大臂、肩部、小臂、腕部及法蘭盤,作為一款六自由度機械臂,因其前3個關節及連桿對末端位置精度的影響遠大于后3個關節及連桿,故將大臂連桿、小臂橫桿和大臂平行的拉桿等效為Euler-Bernoulli梁模型研究其柔性變形,利用混合坐標系法和假設模態法來描述機械臂柔性桿的彈性變形[10-11],并將關節等效為線性扭簧[12],按照圖1的尺寸參數可得簡化模型如圖2所示,其中用慣性坐標XiYiZi(i=0,1,2,3)描述剛體的運動,柔性桿件的彈性變形則用固連在其根部的浮動坐標xjyjzj(i=1,2,3)表示。
對圖2中柔性桿上任一點在基坐標系X0Y0Z0下的位置關系可表述為
ri=Ai(ui+vi+li-1+li-2+R)
(1)
(2)
(3)
式中R——原點O1指向O2的矢量
li——桿i在自身慣性坐標系下的位置矢量,規定l0為零向量
ui——柔性桿在該任意點處未變形時的位置向量,i=2,3
vi——柔性桿在該任意點處產生變形后的位置向量,i=2,3
a1、a2——前兩階模態坐標
Ai——任意時刻時該浮動坐標系在基坐標系下的坐標變換矩陣,i=1,2,3
θ1——任意時刻回轉角
θi——關節i轉動角,i=2,3
因此,該點的速度為
(4)
則柔性桿動能為
(5)
柔性關節動能為
(6)
其中
Ji=JriN2(i=1,2,3)
式中Ji——被驅動的機械負載轉動慣量
N——被驅動的機械負載質量
Jri——第i關節電機轉子轉動慣量,i=1,2,3
在機械臂簡化模型中,將其腕關節及末端的負載視為依附于第3連桿末端的質點,質量為mg,則負載動能為
(7)
式中l2——大臂桿長l3——小臂桿長
綜上所述,機械臂系統的總動能可表示為
T=Tl+Tr+TG
機械臂系統的勢能包括桿件的彈性勢能與重力勢能以及柔性關節的彈性勢能,柔性桿彈性勢能為
(8)
式中Ei——柔性桿彈性模量
Ii——柔性桿截面慣性矩
重力勢能為
(9)
柔性關節彈性勢能為
(10)
式中kti——第i關節的扭轉剛度,i=1,2,3
則系統總勢能為
U=Ul+G+Ur
根據第二類拉格朗日法公式有
(11)
其中L=T-U,由式(5)~(10)可得機械臂的動力學模型為
(12)
(13)
其中
q=[θ1θ2θ3a1a2b1b2θ4θ5θ6]T
式中q——廣義坐標向量
QF——廣義外力二次項組成所對應的廣義力
Qr——廣義速度二次項組成所對應的廣義力
K——剛度矩陣
M——質量矩陣
J——JriN2組成的向量
Δθ——關節角偏差
由于機械臂在各連桿自身重力和附加載荷的影響下,關節軸線會受到力矩的作用,從而導致關節發生微小位移,產生一定的轉角偏差。在將柔性關節等效為扭簧模型時,關節角偏差與關節所受力矩的關系可以表示為
Δθ=Cτ
(14)
式中C——柔度系數,rad/(N·m)
τ——力矩,N·m
對于 6 自由度串聯式機械臂,其前3個關節產生的關節轉角偏差對末端定位精度的影響高于后3個關節[13-14],為簡化計算模型,只對前3個關節作柔性化處理和誤差建模分析。圖3為簡化模型的誤差分析圖,建模時暫且不考慮連桿的微小變形,在機械臂運動過程中,考慮慣性力矩的影響,將其當成平衡力系研究,由此可得大臂自重、小臂自重和負載對第2、3關節軸線的力臂為
(15)
式中lc2——大臂重心到關節旋轉軸線的距離
lc3——小臂重心到關節旋轉軸線的距離
則第1、2、3關節力矩為
(16)
式中F1——大臂自重F2——小臂自重
FG——負載載荷
m1、m2、m3、mG——桿1、2、3及負載質量
r——桿1回轉半徑,與圖2中的R相等
結合式(14),并設m=F2/F1,n=C3/C2,C1、C2、C3分別表示第1、2、3關節的柔度系數,可得第1、2、3關節處的關節角偏差為
(17)
關節力矩是各關節轉動慣量與其角加速度的乘積,廣義力矩給定為其關節力矩的兩倍,因此設定各個關節與時間的角位移為
(18)
結合式(12)、(13)、(17),同時給出數值仿真參數:l1=0.375 m,l2=0.72 m,l3=0.89 m,R=0.15 m,EI2=4.09×102N·m2,EI3=2.33×102N·m2,m1=87.49 kg,m2=42.26 kg,mg=11 kg,kt1=6.48×106N·m/(°),kt2=1.492×106N·m/(°),kt3=6.08×105N·m/(°),t=2 s,Δt=0.04 s,C1=3.356×10-10rad/(N·m),C2=6.948×10-10rad/(N·m),m=0.7,n=1.4,采用Newmark β法[15]計算得到機械臂末端3個方向誤差變化曲線,如圖4所示。
由圖4可知,機械臂末端的誤差隨時間變化而變化,3個方向均呈現波動性和非線性,x、y方向的誤差變化范圍較接近,而z方向因末端具有豎直向下的負載,故誤差變化較大,因此機械臂連桿柔性與關節柔性對末端位置精度的影響不可忽略。圖5是對動力學模型進行數值仿真后得到的末端綜合距離誤差。由圖5可以看出,綜合距離誤差仍然處在一個較大的范圍內,因此有必要對已建立的動力學模型的準確性進行驗證。
機械臂在自重、負載以及慣性力矩的影響下,連桿與關節均會發生一定程度的柔性變形[16]。機械臂連桿由于是細長桿結構,在載荷和慣性力的作用下引起末端執行器位置發生偏離,因此僅將大臂、小臂和大臂平行的拉桿利用ANSYS軟件作柔性化處理,可得含柔性桿件的機械臂三維模型,如圖6所示。而將關節等效為線性扭簧的形式,并在關節處施加關節力矩函數以實現柔性化[17-18]。以基座與腰部之間的關節為例,在基座旋轉軸輸入端添加轉動副和驅動函數,腰部輸出端添加轉動副和關節力矩以帶動腰部旋轉,柔性關節1模型如圖7所示。
為與理論模型相對應,末端載荷和各關節轉動規律均設置為理論建模時所給定的數值,在ADAMS中設置仿真時間為2 s,仿真時間間隔為0.004 s,仿真后再與設置相同參數的剛體模型對比。
圖8、9分別為對剛柔耦合機械臂模型進行ADAMS仿真時機械臂末端3個方向的距離誤差變化曲線及末端綜合距離誤差變化曲線,對比圖4和圖8可知,由于受到桿件柔性、關節柔性及負載等因素的綜合影響,在一段時間內會使機械臂在運動過程中做非線性顫動;但從3個方向上分別對比數值仿真與ADAMS仿真結果可得,兩種仿真所得到的3個方向上的誤差變化趨勢及范圍基本相同。同時對比圖5和圖9,可得圖10的結果。
由圖10可得,因ADAMS仿真中所取模態階數為20階,高于數值仿真時的模態階數,而模態階數越高模型也更接近真實情況,ADAMS軟件建立的剛柔耦合模型其耦合度也更強,在同樣的時間周期內和運動規律下,末端顫振的頻率也會較數值仿真時更高,因此兩種仿真結果會有所差別,在誤差允許范圍內,數值仿真與ADAMS仿真的結果可以相互驗證所建機械臂動力學模型及機械臂剛柔耦合系統模型的準確性。
由于機械臂中唯一可控的參數為其關節轉角,因此使用算法找到合適的關節角,并對關節角進行微調,以達到誤差補償的目的,其補償原理如圖11所示[19]。
基于所得誤差變化曲線具有強非線性特征,而神經網絡對于無規律、非線性數據具有很好的擬合作用,它無需求出具體誤差模型方程,只需對誤差樣本進行網絡訓練,便可得到所需要的誤差模型[20-21],因此利用BP算法訓練、預測誤差,其中輸入為6關節角,輸出為x、y、z3個方向誤差。在ADAMS仿真界面中保持不變的轉動規律,設置仿真時間為6 s,仿真時間間隔為0.02 s,可以得到301組誤差數據,將其作為樣本利用BP神經網絡算法進行訓練,可得到網絡訓練輸出誤差與仿真所得誤差的對比擬合曲線,如圖12所示。
由圖12可得,利用BP算法對于非線性、無規律數據具有很好的擬合效果,其擬合率達99.226%,網絡訓練輸出的誤差與仿真所得誤差雖有較為微小的差距,但不會對后續的補償研究產生影響,并將已訓練好的網絡保存。
以上運用BP算法訓練誤差來近似擬合仿真誤差的過程,主要是研究機械臂正常工作時末端的軌跡平穩現象,針對機械臂啟動時的情形,由于末端的抖動造成機械臂在啟動時發生振動現象而導致末端產生不規則的運動軌跡,表現為機械臂啟動時各關節振動,造成各關節運動軌跡呈非線性特征,以下將對各關節不規則運動軌跡展開分析,計算BP訓練實際誤差擬合率,同時判定算法訓練的有效性。
為驗證BP算法對于誤差訓練的有效性,將機械臂剛柔耦合模型瞬時啟動所得到的末端軌跡進行離散,設置仿真時間為瞬時啟動時間1 s,仿真時間間隔為0.02 s,可以得到51組誤差,運用式(18)計算得到各離散點關節轉角,并進行測量實驗,綜合比較BP算法訓練誤差與實際測量誤差及仿真誤差的一致性。
由圖13可看出,在機械臂啟動瞬時的不規則運動軌跡,BP算法的擬合效果雖不明顯,但是基本變化趨勢相同,說明BP算法對于強非線性,不規則運動軌跡同樣具有較好的擬合效果,在0.5 s之前誤差擬合率達83.573%,0.5 s后誤差擬合率達98.926%,BP算法訓練輸出的誤差與仿真所得誤差基本接近,與實驗測量誤差的差距也很小,說明機械臂啟動瞬時的影響不可忽略,本文重點討論機械臂平穩運行時的柔性因素的影響。
為簡化研究,將第2節中利用ADAMS仿真得到的誤差數據進行離散化,將其均勻離散成51個誤差點。為實現快速補償,提出基于正逆運動學的偽目標點法,其流程如圖14所示。
主要步驟如下:

(19)
式中 IK()——逆運動學計算函數
(20)
式中f()——正運動學中關于位置點的計算函數
(3)判斷實際位置點與理論位置點間的偏差E
(21)
式中E——距離誤差


(22)

(5)通過運動學逆解求解偽逆解為
(23)
(6)基于第k次計算結果計算對應的末端位置點為
(24)

(25)
其中

(26)
式中px、py、pz——關節轉角微調后求解得到的3個方向空間的位置坐標值
Δx、Δy、Δz——神經網絡訓練后預測輸出的3個方向誤差
x0、y0、z0——期望關節角對應的末端期望位置點坐標值
將離散點結合訓練的BP算法與上述計算步驟,再利用Matlab編程,根據IRB1410型機械臂設計資料設置偏差E=0.24 mm[22-23],對所有的離散點進行計算,最終可以得到補償前、后距離誤差對比如圖15所示。
由圖15可知,從整體的距離誤差看,利用偽目標點法補償后,機械臂末端的位置誤差均減小,能達到不錯的補償效果,其位置誤差均方根減小了68.30%;在耗時方面,該方法補償每個點的平均耗時為0.393 s,能實現快速實時補償。
實驗以IRB1410型機械臂為研究對象進行測量,測量儀器為經緯儀,在測量前需對經緯儀進行安裝調試,保證其視野清晰,顯示正常,圖16為調試好的經緯儀;利用貼于法蘭盤處的含三角形的坐標紙測量機械臂末端位置點,如圖17所示。
三角形位于機械臂末端,其相對于安裝好的經緯儀坐標系原點形成一種“透視”效果,利用經緯儀測量三角形的3個頂點的水平角θ和豎直角α,可構建空間點坐標求解模型[24-25],圖18為求解模型圖,三角形三頂點的坐標可分別表示為

(27)
(28)
(29)
其中3個垂直距離hAi、hOi、hBi由下式計算而得
(30)
三角形邊長lOA=30 mm,mOB=40 mm,nAB=50 mm。將仿真中轉動規律進行離散化,將其離散成35組關節角,依次輸入到機械臂示教器中,分別測量每組關節角對應的機械臂末端懸掛重物(與仿真時保持一致,為11 kg)和未懸掛重物兩種位置點的水平角和豎直角,部分數值如表1所示(僅列出前5次測得數據)。

表1 掛重物前后經緯儀測量值Tab.1 Longitudinal measurements before and after hanging heavy object
根據所建立的求解模型,利用Matlab軟件編程可以計算得到機械臂未掛重物和掛有重物兩種情況下末端三角形三頂點的坐標值,由此可得機械臂在關節和連桿柔性變形下末端點位的位置誤差。
為了驗證ADAMS仿真誤差與實驗測量誤差結果的一致性,將機械臂剛柔耦合模型仿真所得到的末端軌跡離散為25個軌跡點,相應的誤差也離散為25個。表2為運用式(18)計算剛柔耦合機械臂模型在0.04、0.12、0.20、0.28、0.36 s所對應的機械臂各關節轉角,以此類推計算25組關節角度(僅列出前5次輸入值)。表3為剛柔耦合模型仿真的末端軌跡離散后所得25組連續時間間隔的末端軌跡誤差(僅列出前5次輸出值),表4為實驗階段在連續時間間隔內點O在3個方向上的距離誤差變化情況(僅列出前5次測得數據),同時選擇25組連續相同時間間隔的離散點進行對比,結果如圖19所示。

表2 各關節輸入轉角Tab.2 Input angle of joints (°)

表3 離散后末端軌跡誤差Tab.3 Discrete rear end trajectory error values

表4 點O 3個方向誤差Tab.4 O-point three-direction error values mm
圖19為數值仿真、ADAMS仿真以及實驗測量的綜合誤差變化情況的對比曲線。由圖19可看出,由于機械臂受到除柔性關節、柔性桿件及測量等因素的影響造成的運動學誤差外,同時還受到機械臂的裝配誤差、關節驅動電機影響、機械臂啟動時的末端振動等因素也會對機械臂的末端綜合運動誤差造成影響,造成實際綜合誤差大于數值仿真及ADAMS仿真時的運動學綜合誤差,但由于三者綜合誤差變化趨勢基本相同,因此可利用該剛柔耦合機械臂模型來近似研究實際機械臂的運動學誤差補償問題。
為驗證補償算法的有效性和可操作性,利用所得實驗數據進行誤差補償驗證,因點O、A、B的誤差相差不大,故選取點O作為補償對象,圖20為誤差補償流程圖。考慮實驗中人為和環境等因素的影響并根據IRB1410型機械臂的絕對軌跡精度,可將偽目標點法中閾值E設置為0.6 mm,補償前后效果對比如圖21所示。
由圖21可看出,補償前距離誤差最大值和平均值分別為2.654、1.530 mm,補償后距離誤差最大值和平均值分別為0.538、0.299 mm,誤差均方根減小了77.01%,可以驗證所設計的偽目標點法對誤差的補償具有有效性,由于機械臂還受到除柔性和測量之外其他因素的影響,故機械臂的誤差并未完全消除。
(1)考慮機械臂連桿和關節柔性建立了剛柔耦合理論位置誤差模型,并進行數值仿真分析。
(2)基于理論誤差模型建立了機械臂剛柔耦合虛擬樣機模型,并進行運動誤差仿真分析,與理論計算所得位置誤差進行對比,驗證了所建模型的準確性。
(3)在仿真所得誤差的基礎上,提出基于BP算法的偽目標點法對位置誤差進行快速補償,獲得了較好的誤差補償效果。
(4)通過搭建測量實驗平臺進行了誤差測量實驗,利用偽目標點法進行誤差補償,結果表明,距離誤差最大值和平均值均減小,從而驗證了所提算法對誤差補償的有效性。