徐紅鑫,慕 麗
(沈陽(yáng)理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽(yáng) 110000)
機(jī)械臂能模仿人手和手臂的某些功能,雖然不如人體手臂靈活,但在三維空間,四到六個(gè)自由度就能滿(mǎn)足三維空間的簡(jiǎn)單工作,例如用以按固定程序抓取、搬運(yùn)物件或操作工具的自動(dòng)操作裝置。他可以代替人的繁重勞動(dòng)以實(shí)現(xiàn)生產(chǎn)的機(jī)械化和自動(dòng)化,能在不利于人身安全的環(huán)境完成工作目的,因而廣泛應(yīng)用于機(jī)械制造、冶金、輕工業(yè)等各個(gè)領(lǐng)域。隨著一些工業(yè)和航天行業(yè)的發(fā)展,對(duì)機(jī)械臂運(yùn)動(dòng)控制系統(tǒng)的精度要求越來(lái)越高,相關(guān)技術(shù)也引起了人們廣泛的關(guān)注,其中重要的一環(huán)就是機(jī)械臂運(yùn)動(dòng)學(xué)的建模以及求解[1]。
運(yùn)動(dòng)學(xué)從工作需求以及功能上可分為正運(yùn)動(dòng)學(xué)以及逆運(yùn)動(dòng)學(xué),正運(yùn)動(dòng)學(xué)為通過(guò)給定各個(gè)關(guān)節(jié)的角度而求出機(jī)械臂上任意一點(diǎn)(主要是末端執(zhí)行器)的位置以及姿態(tài)。逆運(yùn)動(dòng)學(xué)為通過(guò)給定末端執(zhí)行器的位置以及姿態(tài),計(jì)算各個(gè)關(guān)節(jié)能夠?qū)崿F(xiàn)這一要求的運(yùn)動(dòng)量。其中逆運(yùn)動(dòng)學(xué)是運(yùn)動(dòng)學(xué)建模以及求解的關(guān)鍵也是難點(diǎn)[2]。機(jī)械臂的正運(yùn)動(dòng)學(xué)模型為機(jī)械臂遞歸動(dòng)力學(xué)控制的每一步提供了各個(gè)連桿的質(zhì)心位置以及關(guān)節(jié)位置,而機(jī)械臂的逆運(yùn)動(dòng)學(xué)與機(jī)械臂的軌跡規(guī)劃是密不可分的。
由于工程中絕大多數(shù)機(jī)械臂都是串聯(lián)結(jié)構(gòu),故主要討論該結(jié)構(gòu)類(lèi)型的建模思路,以及常用建模方法和求解方法。
DH 系及DH 參數(shù)表示了用關(guān)節(jié)連接的相鄰兩根桿件間的坐標(biāo)系及坐標(biāo)參數(shù)。其中a,c,琢為結(jié)構(gòu)參數(shù),定義了相鄰兩個(gè)關(guān)節(jié)間的固定值,準(zhǔn)為運(yùn)動(dòng)參數(shù),表示關(guān)節(jié)的運(yùn)動(dòng)量。 Craig 后來(lái)介紹了建立改進(jìn)DH系的方法。改進(jìn)DH 系與傳統(tǒng)DH 系的不同之處在于,DH 參數(shù)與桿件之間的對(duì)應(yīng)關(guān)系成為主要目標(biāo),而DH 參數(shù)與關(guān)節(jié)之間的對(duì)應(yīng)關(guān)系被視為次要因素。改進(jìn)DH 系在理論推導(dǎo)時(shí)物理意義更加明確,方便工程人員應(yīng)用[3]。
在機(jī)械等相關(guān)領(lǐng)域書(shū)籍中,定義關(guān)節(jié)與連桿的方法如圖1 所示,在串聯(lián)機(jī)械臂結(jié)構(gòu)中,操作臂通常都是由轉(zhuǎn)動(dòng)關(guān)節(jié)和移動(dòng)關(guān)節(jié)組成的,基座稱(chēng)為連桿0,不包含在連桿之內(nèi),連桿1 和基座由關(guān)節(jié)1 相連,連桿2 和連桿1 由關(guān)節(jié)2 相連,以此類(lèi)推。
圖1 機(jī)械臂簡(jiǎn)圖
如圖2 所示,連桿坐標(biāo)系建立的位置不同,SDH方法將連桿i 的坐標(biāo)系固定于連桿的遠(yuǎn)端,MDH 方法將連桿的坐標(biāo)系固定于連桿的近端。
圖2 關(guān)節(jié)連桿簡(jiǎn)圖
SDH 與MDH 比較:
(1)固連坐標(biāo)系不同
SDH 方法關(guān)節(jié)i 上固連的是i-1 坐標(biāo)系,即坐標(biāo)系建在連桿的輸出端;MDH 關(guān)節(jié)i 上固連的是i 坐標(biāo)系,即坐標(biāo)系建在連桿的輸入端。
(2)執(zhí)行變換的順序不同
按照SDH 方法變換時(shí)四個(gè)參數(shù)相乘的順序依次為d-茲-a-琢,而MDH 方法則按照 琢-a-茲-d(正好與SDH 相反)
在相關(guān)教材中少有解釋改進(jìn)DH 建模的具體思路。雖然思路并不固定。但是都大同小異,都是通過(guò)依次建立三個(gè)坐標(biāo)軸的方法。但是建立坐標(biāo)軸的方式并不唯一,且一般錯(cuò)誤的原因都是坐標(biāo)原點(diǎn)的選擇錯(cuò)誤,而不是坐標(biāo)系的選擇錯(cuò)誤[4]。
如圖3 所示:在三維空間中,每一個(gè)物體都有六個(gè)自由度,分別為沿著空間坐標(biāo)三個(gè)軸的雙向移動(dòng)和繞著三個(gè)軸的雙向旋轉(zhuǎn)。即空間中任意兩個(gè)物體,能夠精確掌握二者之間三個(gè)坐標(biāo)軸方向的距離差和角度差,就能夠掌握二者的相對(duì)位置關(guān)系。將空間中的物體都固接一個(gè)三維直角坐標(biāo)系,則直角坐標(biāo)系相對(duì)于大地坐標(biāo)系的位置和姿態(tài)都可以表示出來(lái)。如圖所示坐標(biāo)系A(chǔ) 與坐標(biāo)系B 不僅有空間上位置的差別,還有自身角度即姿態(tài)的差別,坐標(biāo)系A(chǔ) 要通過(guò)三個(gè)坐標(biāo)軸方向的平移以及繞三個(gè)坐標(biāo)軸方向的旋轉(zhuǎn)才能與坐標(biāo)軸B 重合[5]。
圖3 位姿變換簡(jiǎn)圖
為了方便計(jì)算DH 參數(shù),將空間的六種自由度表示為空間兩物體的六種相對(duì)位姿關(guān)系。
(1)坐標(biāo)系A(chǔ) 的原點(diǎn)到坐標(biāo)系B 的XOY 平面的最短距離即坐標(biāo)系B 的Z 軸方向上的距離。
(2)坐標(biāo)系A(chǔ) 的原點(diǎn)到坐標(biāo)系B 的XOZ 平面的最短距離即坐標(biāo)系B 的Y 軸方向上的距離。
(3)坐標(biāo)系A(chǔ) 的原點(diǎn)到坐標(biāo)系B 的YOZ 平面的最短距離即坐標(biāo)系B 的X 軸方向上的距離。
(4)坐標(biāo)系A(chǔ) 的X 軸繞自己的Z 軸旋轉(zhuǎn)至與坐標(biāo)系B 的Z 軸同向的角度,即Z 軸方向上的旋轉(zhuǎn)角度。
(5)坐標(biāo)系A(chǔ) 的Z 軸繞自己的X 軸旋轉(zhuǎn)至與坐標(biāo)系B 的X 軸同向的角度,即X 軸方向上的旋轉(zhuǎn)角度。
(6)坐標(biāo)系A(chǔ) 的X 軸繞自己的Y 軸旋轉(zhuǎn)至與坐標(biāo)系B 的X 軸同向的角度,即Y 軸方向上的旋轉(zhuǎn)角度。
由于串聯(lián)式機(jī)械臂的特性,機(jī)械臂可以看作成為一個(gè)開(kāi)式運(yùn)動(dòng)鏈,它由一系列連桿通過(guò)轉(zhuǎn)動(dòng)副或者移動(dòng)副串聯(lián)而成,開(kāi)鏈的一段固定在基座上,另一端是自由的,安裝著末端執(zhí)行器,完成各種作業(yè)。關(guān)節(jié)由驅(qū)動(dòng)器驅(qū)動(dòng),關(guān)節(jié)相對(duì)運(yùn)動(dòng)導(dǎo)致連桿的運(yùn)動(dòng),所以研究機(jī)械臂連桿的位置關(guān)系可以轉(zhuǎn)化為研究關(guān)節(jié)的相對(duì)位置與姿態(tài)。將每一個(gè)關(guān)節(jié)固定一個(gè)坐標(biāo)系,然后描述這些坐標(biāo)系之間的關(guān)系。
以puma560 機(jī)械臂為例,如圖4 所示:這是典型的六自由度串聯(lián)式機(jī)械臂,基座稱(chēng)為連桿0,其中末端的三個(gè)旋轉(zhuǎn)軸可理解為球形關(guān)節(jié),具有三個(gè)自由度,相當(dāng)于人類(lèi)的手腕部,建立坐標(biāo)系分如下幾部。
圖4 PUMA560 機(jī)械臂
(1)繪制機(jī)械臂結(jié)構(gòu)簡(jiǎn)圖,找出影響實(shí)際操作工作的連桿與關(guān)節(jié)軸,如圖5 所示。
圖5 PUMA560 機(jī)構(gòu)簡(jiǎn)圖
由于機(jī)械臂實(shí)際形態(tài),有些連桿的結(jié)構(gòu)形狀特殊,例如連桿1 和連桿3。
(2)確定相鄰兩連桿之間的交點(diǎn)或者公垂線(xiàn),如圖6 所示,其中關(guān)節(jié)2 的軸線(xiàn)與關(guān)節(jié)3 的軸線(xiàn)相互平行,且公垂線(xiàn)無(wú)數(shù)條。
圖6 PUMA560 原點(diǎn)選取
(3)確定關(guān)節(jié)坐標(biāo)系原點(diǎn)位置:大多數(shù)教材是直接規(guī)定坐標(biāo)軸的方向,由于關(guān)節(jié)2 與關(guān)節(jié)3 為平行軸,所以多個(gè)版本坐標(biāo)系規(guī)定不同,切容易混亂[6]。直接規(guī)定坐標(biāo)系原點(diǎn)位置更簡(jiǎn)潔易懂。關(guān)節(jié)i 的坐標(biāo)系原點(diǎn)為軸線(xiàn)i 與軸線(xiàn)i+1 的交點(diǎn)位置,若無(wú)交點(diǎn),比如兩坐標(biāo)軸平行時(shí),可為了使坐標(biāo)系i 與坐標(biāo)系i+1的兩個(gè)z 軸和兩個(gè)x 軸位置更加特殊而隨意選取。
(4)確定關(guān)節(jié)坐標(biāo)系3個(gè)軸方向。
如圖7 所示:坐標(biāo)系i 的z 軸為坐標(biāo)系i 的軸線(xiàn)方向。
圖7 PUMA560 坐標(biāo)軸選取
坐標(biāo)系i 的x 軸為沿著軸線(xiàn)i 與軸線(xiàn)i+1 的公垂線(xiàn),指向關(guān)節(jié)i+1。若軸線(xiàn)i 與軸線(xiàn)i+1 相交沒(méi)有公垂線(xiàn),則坐標(biāo)系i 的x 軸應(yīng)垂直軸線(xiàn)i 與軸線(xiàn)i+1 做構(gòu)成平面,方向由右手定則決定。y 軸同理也由右手定則決定。
其中基座坐標(biāo)系指固定于機(jī)器人基座上的坐標(biāo)系,這個(gè)坐標(biāo)系是一個(gè)固定不動(dòng)的坐標(biāo)系,因此在研究機(jī)械臂運(yùn)動(dòng)問(wèn)題的時(shí)候,可以把該坐標(biāo)系作為參考坐標(biāo)系,可以在這個(gè)參考坐標(biāo)系中描述操作臂坐在其他連桿坐標(biāo)系的位姿,為了使問(wèn)題簡(jiǎn)化,通常將該坐標(biāo)系與坐標(biāo)系1 相重合。
(5)獲取dh 參數(shù)
如圖8 所示:由于機(jī)械臂各個(gè)關(guān)節(jié)所固接的坐標(biāo)系的特殊,坐標(biāo)系i-1 并不需要六種坐標(biāo)變換才能與坐標(biāo)系i 重合,即通過(guò)3個(gè)軸的移動(dòng)以及繞三個(gè)軸的旋轉(zhuǎn)。圖8 的兩軸位置比實(shí)際機(jī)械臂的位置更特殊,更具有意義[7]。
圖8 關(guān)節(jié)簡(jiǎn)圖
淤坐標(biāo)系i-1 先進(jìn)行繞自身x 軸的旋轉(zhuǎn),轉(zhuǎn)至坐標(biāo)系i-1 的z 軸與坐標(biāo)系i 的z 軸同向;將兩關(guān)節(jié)之間依靠該運(yùn)動(dòng)所需要的角度計(jì)為琢。
于坐標(biāo)系i-1 沿著兩軸公垂線(xiàn)即坐標(biāo)系i-1 的x軸的方向平移,直至坐標(biāo)系i-1 的z 軸與坐標(biāo)系i 的z 軸位于同一條線(xiàn),所需矢量位移計(jì)為a。
盂坐標(biāo)系i-1 沿著z 軸方向做平移直至兩坐標(biāo)系原點(diǎn)重合,所需矢量位移計(jì)為d。
榆坐標(biāo)系i-1 繞z 軸旋轉(zhuǎn)直至兩坐標(biāo)系完全重合,所需矢量角度計(jì)為茲。
30年前的S.hayatl 的論文提到了傳統(tǒng)的DH 的奇異性的問(wèn)題,但是這種奇異性既不是空間變換矩陣是否可逆的問(wèn)題,也不是我們常說(shuō)的機(jī)器人運(yùn)動(dòng)學(xué)的奇異性問(wèn)題。而是DH 坐標(biāo)系定義的奇異性。
由于在運(yùn)動(dòng)學(xué)建立坐標(biāo)系中是針對(duì)機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)進(jìn)行標(biāo)定的,所以機(jī)器人實(shí)際結(jié)構(gòu)參數(shù)可能會(huì)存在偏差。對(duì)于一般關(guān)節(jié)來(lái)說(shuō)問(wèn)題不大,但是對(duì)于兩個(gè)相鄰平行關(guān)節(jié)時(shí),DH 坐標(biāo)的x 軸方向定義不明確。
在定義DH 坐標(biāo)系時(shí),從上文可以得出DH 建系的方法只有4 種變換,缺少y 軸方向的平移和繞y 軸方向的旋轉(zhuǎn)。在建立坐標(biāo)系時(shí),相鄰平行的關(guān)節(jié),由于加工或者裝配上的誤差,2個(gè)平行的軸實(shí)際上絕對(duì)位置是有小范圍誤差的,由于建立坐標(biāo)系時(shí)x 軸定義為相鄰軸線(xiàn)的法線(xiàn)方向;所以軸向的小范圍誤差就可能會(huì)導(dǎo)致dh 坐標(biāo)系中x 軸方向上的大范圍誤差。
(1)傳統(tǒng)方法
引入修正系數(shù)茁,描述為繞y 軸的旋轉(zhuǎn),既然兩個(gè)平行軸間有微小差距,坐標(biāo)系i 通過(guò)正常的變換無(wú)法與 坐標(biāo)系i+1 重合,加入新的自由度,即繞y 軸的旋轉(zhuǎn)使其重合。在正常變換中,最后一部為繞z 軸旋轉(zhuǎn)使兩坐標(biāo)系完全重合,由于兩軸實(shí)際不平行,所以無(wú)法通過(guò)該變換使其重合。通過(guò)修正系數(shù),當(dāng)兩坐標(biāo)原點(diǎn)重合時(shí),先進(jìn)行繞y 軸的旋轉(zhuǎn),使兩z 軸重合,再進(jìn)行z 軸的旋轉(zhuǎn)使其完全重合。因?yàn)榻ㄏ翟瓌t不變,坐標(biāo)系i 的x 軸依然垂直兩坐標(biāo)系軸線(xiàn),所以當(dāng)原點(diǎn)重合時(shí),可以通過(guò)繞自身y 軸的旋轉(zhuǎn)達(dá)到兩坐標(biāo)系z(mì)軸重合的效果。
(2)改進(jìn)方法
引入新的參數(shù)L 表示y 軸方向的平移。旋轉(zhuǎn)在矩陣變換的計(jì)算量是要大于平移的,利用此特點(diǎn)將兩個(gè)平行的關(guān)節(jié)靠近基座的關(guān)節(jié)的坐標(biāo)軸的x 軸與y 軸互換,則坐標(biāo)軸i 可通過(guò)平移先與坐標(biāo)軸i+1 重合,原來(lái)的先繞y 軸旋轉(zhuǎn)再繞z 軸旋轉(zhuǎn)就變成了先繞x軸再繞z 軸,和其他相鄰關(guān)節(jié)的旋轉(zhuǎn)變換達(dá)成統(tǒng)一,相比于S.hayatl 提出的旋轉(zhuǎn)參數(shù)修正方法,不僅修正效果完全等效,平移參數(shù)的修正方法在形式和計(jì)算上更為簡(jiǎn)單,易于處理。
厘清標(biāo)準(zhǔn)DH 與改進(jìn)DH 建模的區(qū)別,并分析了改進(jìn)DH 建模的建模思路,從繪制機(jī)構(gòu)件圖到坐標(biāo)原點(diǎn)到坐標(biāo)軸的選取。對(duì)于由于裝配誤差引起的DH 奇異性的問(wèn)題,針對(duì)傳統(tǒng)的旋轉(zhuǎn)修正系數(shù)進(jìn)行優(yōu)化,采用移動(dòng)修正系數(shù),簡(jiǎn)化了計(jì)算過(guò)程。