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