袁 媛
(西安航空職業(yè)技術(shù)學(xué)院 航空維修工程學(xué)院,陜西 西安 710089)
串聯(lián)機(jī)械臂作為現(xiàn)代工業(yè)中常用的機(jī)械臂,具有多自由度、多連桿的特點(diǎn),被廣泛應(yīng)用于焊接機(jī)器人及汽車(chē)、船舶、航天等零部件的焊接及噴涂操作中[1]。
作為控制的基本問(wèn)題,運(yùn)動(dòng)學(xué)及奇異性已經(jīng)被廣泛研究。安梓銘等[2]基于矢量分析方法建立了3-PRP型并聯(lián)機(jī)構(gòu)的運(yùn)動(dòng)學(xué)正逆解模型,并基于雅克比矩陣對(duì)其速度和奇異性各向同性配置進(jìn)行了分析。肖永飛等[3]針對(duì)設(shè)計(jì)的一種上肢外骨骼機(jī)構(gòu)進(jìn)行了運(yùn)動(dòng)學(xué)與奇異性分析,針對(duì)機(jī)械臂在工作空間內(nèi)的奇異形位提出了一種消除的方法。李瑞霞等[4]建立了六自由度機(jī)械臂的運(yùn)動(dòng)學(xué)坐標(biāo)系,基于D-H法建立了機(jī)械臂的正運(yùn)動(dòng)學(xué)模型,并進(jìn)行了工作空間的分析。李憲華等[5]建立了六自由度模塊化機(jī)械臂的運(yùn)動(dòng)學(xué)模型,并對(duì)工作空間內(nèi)的奇異構(gòu)型進(jìn)行了分析。劉夢(mèng)軍等[6]針對(duì)三自由度機(jī)械臂進(jìn)行了運(yùn)動(dòng)學(xué)正逆解的推導(dǎo)。宋晨等[7]針對(duì)所設(shè)計(jì)的調(diào)姿機(jī)構(gòu)建立了其運(yùn)動(dòng)學(xué)模型,并對(duì)其末端誤差和誤差靈敏度進(jìn)行了分析。夏田等[8]研究了下肢康復(fù)機(jī)械臂的運(yùn)動(dòng)學(xué)模型,并進(jìn)行了仿真分析。李麗等[9]分析了6R串聯(lián)機(jī)械臂的正運(yùn)動(dòng)學(xué)模型,并進(jìn)行了奇異位置分析。丁希侖等[10]對(duì)機(jī)械臂的空間位姿誤差分析方法進(jìn)行了總結(jié)。李志宏等[11]分析了機(jī)械臂連桿參數(shù)誤差對(duì)機(jī)械臂末端位姿偏差量和末端位姿可靠性的影響。吳碩等[12]基于D-H法推導(dǎo)了五自由度機(jī)械臂的運(yùn)動(dòng)學(xué)模型。趙磊等[13]建立了平面6桿機(jī)械臂的運(yùn)動(dòng)學(xué)模型,并對(duì)系統(tǒng)中存在的幾何誤差對(duì)機(jī)械臂的控制精度進(jìn)行了分析。葛為民等[14]通過(guò)仿真分析了機(jī)器人幾何靜態(tài)誤差參數(shù)對(duì)末端位置誤差的影響,并構(gòu)建了誤差參數(shù)靈敏度系數(shù)模型。張永貴等[15]基于示教器顯示的機(jī)械臂的位姿建立了運(yùn)動(dòng)學(xué)參數(shù)未知的機(jī)械臂的逆運(yùn)動(dòng)學(xué)模型。王帥等[16]基于D-H法建立了六連桿機(jī)械臂的運(yùn)動(dòng)學(xué)模型,并基于Matlab搭建了仿真模型進(jìn)行了仿真分析。
本文針對(duì)六自由度機(jī)械臂的運(yùn)動(dòng)分析問(wèn)題,對(duì)機(jī)械臂運(yùn)動(dòng)學(xué)數(shù)學(xué)模型、末端位置誤差、機(jī)械臂奇異形位等方面進(jìn)行研究。
六自由度串聯(lián)機(jī)械臂如圖1所示。
圖1 六自由度串聯(lián)機(jī)械臂Ji—關(guān)節(jié)的轉(zhuǎn)軸;θi—關(guān)節(jié)轉(zhuǎn)角;Oi—關(guān)節(jié)坐標(biāo)系原點(diǎn)
六自由度機(jī)械臂有6個(gè)旋轉(zhuǎn)自由度的串聯(lián)型機(jī)械臂,末端位置只與前3個(gè)驅(qū)動(dòng)關(guān)節(jié)相關(guān),后3個(gè)旋轉(zhuǎn)關(guān)節(jié)的存在將提高機(jī)械臂的靈活性,使得機(jī)械臂的靈巧度更高。
為了建立其運(yùn)動(dòng)學(xué)模型,首先筆者基于D-H關(guān)節(jié)坐標(biāo)系后置的方法建立其運(yùn)動(dòng)學(xué)坐標(biāo)系,通過(guò)D-H法規(guī)定的兩個(gè)相鄰坐標(biāo)系之間的變換規(guī)則,得到運(yùn)動(dòng)學(xué)模型的D-H參數(shù),如表1所示。
表1 焊接機(jī)器人的D-H參數(shù)
通過(guò)相鄰坐標(biāo)系之間的變換矩陣式可以得到相鄰關(guān)節(jié)之間的齊次坐標(biāo)變換矩陣,并通過(guò)坐標(biāo)系之間的變換得到機(jī)械臂末端在其自身基礎(chǔ)坐標(biāo)系下的位置向量與姿態(tài)角。相鄰坐標(biāo)系之間的變換矩陣如下:
i-1Ti=
(1)
將機(jī)械臂的D-H參數(shù)代入式(1),即可求得各個(gè)關(guān)節(jié)坐標(biāo)系之間的坐標(biāo)轉(zhuǎn)換矩陣。根據(jù)求得的相鄰關(guān)節(jié)坐標(biāo)系之間的坐標(biāo)變換矩陣,機(jī)械臂的正向運(yùn)動(dòng)學(xué)模型可通過(guò)相鄰坐標(biāo)系變換矩陣的乘積求得:
(2)
式中:0Tn—末端坐標(biāo)系到基坐標(biāo)系的變換矩陣;i-1Ti—第i關(guān)節(jié)坐標(biāo)系到第i-1關(guān)節(jié)的變換矩陣(i=1..,6)。
其中,各轉(zhuǎn)角范圍為:
為了驗(yàn)證建立的運(yùn)動(dòng)學(xué)正解模型的正確性,首先,本文借助于Matlab的機(jī)器人工具箱,搭建六自由度機(jī)械臂的機(jī)構(gòu)模型,以此模型的輸出作為真實(shí)的輸出結(jié)果,給定運(yùn)動(dòng)學(xué)模型與仿真的結(jié)構(gòu)模型相同的關(guān)節(jié)轉(zhuǎn)角,比較得到的兩種模型的輸出的末端位置[px,py,pz]與姿態(tài)角[α,β,γ],以兩種模型之間的誤差大小來(lái)衡量所搭建的正運(yùn)動(dòng)模型的正確性。其中姿態(tài)角的解析方法采用RPY解析法,由于此種方法比較成熟,筆者通過(guò)機(jī)械臂末端的姿態(tài)矩陣元素來(lái)解算末端坐標(biāo)系繞3個(gè)軸線方向的旋轉(zhuǎn)角度(3個(gè)姿態(tài)角),此處不贅述。
本研究搭建的正運(yùn)動(dòng)模型驗(yàn)證模塊Simulink程序如圖2所示。
圖2 六自由機(jī)械臂的正運(yùn)動(dòng)學(xué)驗(yàn)證模型
本研究將各個(gè)關(guān)節(jié)的轉(zhuǎn)角范圍賦給運(yùn)動(dòng)學(xué)模塊與機(jī)構(gòu)模塊,設(shè)置仿真時(shí)間為10 s,仿真步長(zhǎng)為0.1 s,運(yùn)行仿真程序可以得到理論和實(shí)際的機(jī)械臂末端位姿誤差,如圖3所示。
圖3 機(jī)械臂末端位置和姿態(tài)誤差曲線
從圖3可以看出,機(jī)械臂末端的位置和姿態(tài)與真實(shí)的相差很小,3個(gè)方向位置誤差數(shù)量級(jí)都在10-13mm,3個(gè)姿態(tài)角誤差數(shù)量級(jí)都在(10-14)°,由此可見(jiàn),本文所搭建的運(yùn)動(dòng)學(xué)正解模型是正確的。
基于運(yùn)動(dòng)學(xué)正解模型,通過(guò)等式兩側(cè)同時(shí)乘以矩陣逆陣及對(duì)應(yīng)元素相等可以求得所對(duì)應(yīng)的運(yùn)動(dòng)學(xué)逆解,即在給定末端位姿的條件下可以得到對(duì)應(yīng)的關(guān)節(jié)轉(zhuǎn)角。本研究以關(guān)節(jié)1為例,首先給定機(jī)械臂的末端位姿矩陣如下:
(3)
根據(jù)運(yùn)動(dòng)學(xué)正解模型可以建立等式如下:
(4)
因等號(hào)兩側(cè)矩陣對(duì)應(yīng)元素相等,可以求得關(guān)節(jié)1轉(zhuǎn)角θ1的解析式如下:
θ1=atan(py/px)
(5)
求得的其余關(guān)節(jié)轉(zhuǎn)角為:
其中:
與運(yùn)動(dòng)學(xué)正解類(lèi)似,本研究搭建機(jī)構(gòu)仿真模型作為實(shí)際輸出,通過(guò)給定機(jī)械臂仿真結(jié)構(gòu)的轉(zhuǎn)角,然后測(cè)量機(jī)械臂仿真模型末端的位置向量與姿態(tài)矩陣,并將位置向量和姿態(tài)矩陣組合成為機(jī)械臂末端的齊次矩陣作為運(yùn)動(dòng)學(xué)逆解模型的輸入,最終通過(guò)比較仿真機(jī)構(gòu)的輸入角度與運(yùn)動(dòng)學(xué)逆解得到的關(guān)節(jié)轉(zhuǎn)角,以驗(yàn)證運(yùn)行學(xué)逆解模型的正確性。搭建的運(yùn)動(dòng)學(xué)逆解的仿真驗(yàn)證程序如圖4所示。
本研究設(shè)置仿真時(shí)間為10 s,仿真步長(zhǎng)為0.1 s,運(yùn)行仿真程序可以得到仿真機(jī)構(gòu)模型的輸入角度和運(yùn)動(dòng)學(xué)逆解得到的關(guān)節(jié)轉(zhuǎn)角誤差,如圖5所示。
圖4 六自由機(jī)械臂的逆運(yùn)動(dòng)學(xué)驗(yàn)證模型
圖5 機(jī)械臂運(yùn)動(dòng)學(xué)逆解轉(zhuǎn)角誤差
從圖5中可以看出:兩種模型的轉(zhuǎn)角相差很小,關(guān)節(jié)轉(zhuǎn)角誤差數(shù)量級(jí)都在(10-11)°,由此可見(jiàn),本文所搭建的運(yùn)動(dòng)學(xué)逆解模型是正確的。
位置誤差敏感方向分布圖如圖6所示。
首先本研究在機(jī)械臂初始位置狀態(tài)下,給每個(gè)關(guān)節(jié)轉(zhuǎn)角賦加[-0.5,0.5]°的轉(zhuǎn)角誤差范圍,仿真分析此時(shí)的機(jī)械臂末端位置誤差。從圖6中可以看出,此時(shí)的末端誤差在x和z方向的變化區(qū)間為[-5,5] mm,在y方向的變化區(qū)間為[-2,2] mm。從結(jié)果中可以看出,關(guān)節(jié)的轉(zhuǎn)角誤差對(duì)機(jī)械臂末端x和z方向的位置誤差影響比較接近,而且誤差要明顯大于y軸方向。
為了分析末端位置誤差對(duì)各個(gè)關(guān)節(jié)轉(zhuǎn)角誤差的敏感方向,筆者依次在各關(guān)節(jié)轉(zhuǎn)角的基礎(chǔ)上加0.5°的誤差。由于機(jī)械臂末端的位置只與前3個(gè)關(guān)節(jié)相關(guān),本研究分析機(jī)械臂的末端誤差時(shí)只考慮前3個(gè)關(guān)節(jié)的轉(zhuǎn)角誤差。從圖6中可以看出,對(duì)于θ1的誤差影響來(lái)說(shuō),在x軸方向零位附近時(shí),x方向?yàn)棣?誤差敏感方向,在y軸附近時(shí)y方向?yàn)檎`差敏感方向,全域空間內(nèi)在三軸方向上的最大誤差為e1=[4.36,4.36,0] mm,θ1對(duì)機(jī)械臂末端的z方向位置無(wú)影響;對(duì)于θ2的誤差影響來(lái)說(shuō),在全域空間內(nèi)z方向?yàn)棣?誤差敏感方向全域空間內(nèi)在三軸方向上的最大誤差為e2=[-4.36,4.36,4.36] mm;對(duì)于θ3的誤差來(lái)說(shuō),在x軸方向零位附近時(shí),y方向?yàn)棣?誤差敏感方向,在y軸方向零位附近時(shí),x方向?yàn)棣?誤差敏感方向,在全域空間內(nèi)的其他位置,3個(gè)方向上的誤差比較接近全域空間內(nèi)在三軸方向上的最大誤差為e3=[1.75,1.75,1.75] mm。
圖6 位置誤差敏感方向分布圖
機(jī)械臂的奇異性是機(jī)械臂工作時(shí)一個(gè)潛在的不安因素。根據(jù)之前推導(dǎo)的正確的機(jī)械臂正運(yùn)動(dòng)學(xué)模型,由于機(jī)械臂六個(gè)關(guān)節(jié)全為旋轉(zhuǎn)關(guān)節(jié),本研究利用旋轉(zhuǎn)關(guān)節(jié)雅可比矩陣求取方法可求得機(jī)械臂末端運(yùn)動(dòng)與單個(gè)關(guān)節(jié)之間的映射矩陣如下:
Ji=[(p×n)z(p×o)z(p×a)znzozaz]
(7)
式中:P—第i個(gè)關(guān)節(jié)坐標(biāo)系到機(jī)械臂末端坐標(biāo)系之間的位置向量;n—第i個(gè)關(guān)節(jié)坐標(biāo)系到機(jī)械臂末端坐標(biāo)系之間的姿態(tài)矩陣第一列向量;o—第i個(gè)關(guān)節(jié)坐標(biāo)系到機(jī)械臂末端坐標(biāo)系之間的姿態(tài)矩陣第二列向量;a—第i個(gè)關(guān)節(jié)坐標(biāo)系到機(jī)械臂末端坐標(biāo)系之間的姿態(tài)矩陣第一列向量。
末端的雅可比矩陣如下:
J=[J1J2J3J4J5J6]
(8)
在推導(dǎo)的雅可比矩陣的基礎(chǔ)上,本研究通過(guò)編寫(xiě)M文件計(jì)算全域空間內(nèi)的奇異點(diǎn),即雅可比矩陣行列式的值為零的位姿點(diǎn)。首先將關(guān)節(jié)轉(zhuǎn)角空間離散成多組散點(diǎn),其次計(jì)算每組轉(zhuǎn)角情況下對(duì)應(yīng)的雅可比行列式的值,最后判斷在該組關(guān)節(jié)轉(zhuǎn)角情況下的行列式值是否為零,若為零則該組轉(zhuǎn)角對(duì)應(yīng)的位姿點(diǎn)即為奇異點(diǎn),若非零則該組轉(zhuǎn)角即為非奇異點(diǎn)。
通過(guò)運(yùn)行M文件可以得到機(jī)械臂的奇異點(diǎn)主要集中在兩個(gè)位置:(1)θ3=π/2,其余關(guān)節(jié)轉(zhuǎn)角不管處于何值,此時(shí)機(jī)械臂都是奇異形位,此時(shí)機(jī)械臂處于關(guān)節(jié)轉(zhuǎn)角的極限位置奇異;(2)θ4=θ5=θ6=0,末端的3個(gè)旋轉(zhuǎn)自由度處于初始位置,此時(shí)不管前3個(gè)控制機(jī)械臂末端位置的關(guān)節(jié)角度為何值,機(jī)械臂都處于奇異形位,這種情況也屬于極限位置奇異。在這兩個(gè)位置時(shí)不管其余關(guān)節(jié)轉(zhuǎn)角為何值,此時(shí)機(jī)械臂都處于極限位置奇異。
通過(guò)對(duì)六自由度機(jī)械臂的結(jié)構(gòu)分析,本研究基于D-H法建立了機(jī)械臂的正運(yùn)動(dòng)學(xué)模型與逆運(yùn)動(dòng)學(xué)模型,搭建了機(jī)構(gòu)的仿真模型,仿真結(jié)果顯示,所建立的運(yùn)動(dòng)學(xué)模型是正確的。
基于運(yùn)動(dòng)學(xué)模型,推導(dǎo)了機(jī)械臂運(yùn)動(dòng)學(xué)雅可比矩陣,通過(guò)仿真分析了工作空間內(nèi)機(jī)械臂的奇異形位,結(jié)果顯示,機(jī)械臂存在兩個(gè)位置的奇異形位,并且都屬于極限位置奇異。