鄭力銘,蔡小可,羅偉林
(1.福州大學海洋學院,福州 350108;2.福州大學機械工程及自動化學院,福州 350108)
由于機器人具有較高的定位精度和較大的靈活性,在日常生活以及工業(yè)生產(chǎn)中的運用越來越廣泛[1]。同時,機器人的結構也在向復雜化的方向發(fā)展,對機器人的運動學分和動力學析也越來越復雜[2-3]。要對機器人進行運動學分析,就需要建立機器人模型[4-5]。進行機器人建模的方法有很多,其中最常用的方法是DH 法則[6]。在建模的過程當中,傳統(tǒng)的DH 法則計算出基座坐標系和夾爪坐標系的關系,進而分析推導出機械手臂的的夾爪位姿[7-8]。由于機器人工作環(huán)境的復雜化多樣化,使得使用傳統(tǒng)的DH 法則建立機器人坐標系可能會造成失真的情況,導致建模錯誤,嚴重的話可能會對后續(xù)的運動學乃至動力學分析產(chǎn)生連鎖性誤差。
本文提出一種建立在DH法則基礎上的機器人建模改進方法——幾何向量法,使用這種方法可以彌補復雜機械結構對模型建立的影響,提高機器人建模的準確性。
對于給定的機器人,各種坐標系的選擇不是唯一的,不同的工程師有可能得到不同的DH參數(shù)表,但是最終得到的運動學結果是相同的。機器人一般由多個關節(jié)和連桿按順序鏈接構成,關節(jié)可以是旋轉(zhuǎn)關節(jié)也可以是移動關節(jié)。以直觀的方式指定軸z0,z1,…,zn-1,其中將zi指定為關節(jié)i+1 的驅(qū)動軸。即,z0是關節(jié)1 的驅(qū)動軸,z1是關節(jié)2 的驅(qū)動軸,以此類推。此時,有兩種情況需要考慮:(1)如果關節(jié)i+1 是旋轉(zhuǎn)的,zi是關節(jié)i+1的旋轉(zhuǎn)軸;(2)如果關節(jié)i+1是移動的,zi是關節(jié)i+1 的平移軸。一旦建立了鏈接的z軸,就建立了基架。基架的選擇幾乎是任意的??梢赃x擇基架的原點o0為z0上的任意點。然后以任何方便的方式選擇x0,y0,只要得到的坐標系符合右手定則即可。設置的第0坐標系也可以稱為基坐標系,一旦第0 個坐標系已經(jīng)建立,就可以開始迭代,在這個過程中,從第1 個坐標系開始,用第i-1 個坐標系定義第i個坐標系[9]。
在上述基礎條件下,為解決運用DH法則進行機器人建模的局限性,提出一種建模方法——幾何向量法,使用這種方法可以提高機器人建模的準確性,其建立步驟如下。
(1)按照傳統(tǒng)的DH法則建立DH參數(shù)表。
(2)按照傳統(tǒng)方法判斷扭角(α)和連桿間距(d)和轉(zhuǎn)角(θ)[10-11]。
(3)重新定義桿長a,與傳統(tǒng)DH法不同,這里將桿長定位為一個向量,長度為其中:l為實際桿長,d為連桿間距。方向記作γ,為向量oioi-1與向量xi的夾角,定義繞zi順時針旋轉(zhuǎn)為正。
(4)在運動學分析設置轉(zhuǎn)角參數(shù)的時候,把該關節(jié)的參數(shù)均加上γ即可。
圖1 所示為一個兩軸的機械 手 , 連 桿 長 度 為l1=200 mm,l2=400 mm 。 在第二個關節(jié)處建立x方向坐標時有兩種情況,分別表示為x1與x′1。
圖1 兩軸機械手
運用DH 法則分別對其在Matlab 中建立機器人模型[12],針對x1與x′1兩種情況,DH參數(shù)表如表1 和2 所示。從表2 可以看出,連桿1 的桿長被誤判。
表1x1情況下DH參數(shù)
表2x′1情況下DH參數(shù)
圖2 兩軸機械手模型(x1 情況) 圖3 兩軸機械手模型(x′1 情況)
圖4 兩軸機械手賦初值模型(x1 情況)
圖5 兩軸機械手賦初值模型(x′1 情況)
將幾何向量法應用于圖1 所示的機械手建模,設置兩個關節(jié)初始參數(shù)為q0=[0, -π/2],最終位置為qf=[π /6, -5π/6],運動時間設置為4 s。運用軌跡生成函數(shù)(jtraj)指令得到數(shù)值仿真結果,如圖6所示(黑色線條)。
圖6 二軸機械手末端夾爪位置軌跡
為了檢驗幾何向量法的準確性,運用幾何法進行求解,幾何法是基于坐標軸的之間的幾何關系,通過三角函數(shù)直接建立夾爪中心點與基座之間的位置表達式,可以準確地表達出夾爪基于基座的空間位置。通過坐標變換矩陣得到的夾爪中心點在基座坐標系中的表達式,將表達式中的關節(jié)參數(shù)從起始位置到終點位置進行平均分割,再一一代入表達式中求得對應的夾爪中心點位置。取出其中的夾爪中心點的位移量,忽略其中夾爪的朝向,并且將這些離散的位移點光順成曲線。幾何法所對應的坐標轉(zhuǎn)換陣為:
通過計算,可得夾爪中心點坐標為:
進行數(shù)值模擬時,將θ1和θ2分成40 等分進行軌跡模擬,每個角度對應一個時刻。計算得出的夾爪位置軌跡如圖6所示(紅色線條)。從結果對比可以看出,應用本文提出的幾何向量法其結果與幾何解一致。其中,x-y的位移圖完全一致說明幾何向量法的可靠性。至于x-t圖和y-t圖的斜率略有偏差是因為幾何向量法使用了Matlab 中的軌跡生成函數(shù)(jtraj)指令,jtraj指令對夾爪始末位置的加速度進行了平滑處理,以達到運動的穩(wěn)定。而幾何法中并沒有對始末位置平滑處理,因此x-t圖和y-t圖分別在斜率上略有偏差,但總體運動趨勢一致。
圖7 六軸機械手模型
再以一個更復雜的對象為例驗證幾何向量法的有效性,圖7所示為一個六軸的機械手。為了使得裝置正常,分別給第3 個關節(jié)和第5 個關節(jié)賦初值-p/6、p/6。需要注意的是第3 個關節(jié)賦初值是為了使桿長不失真,第5個關節(jié)賦值則是為了使其初始處于圖示位置——最后一根桿垂直向下,否則它就會和前面的桿重疊,無法顯示機械臂的全部桿件。
采用幾何向量法建立DH參數(shù),如表3所示。
表3 DH參數(shù)
坐標轉(zhuǎn)換陣為:
夾爪中心點坐標:
設置6 個關節(jié)初始參數(shù)為q0=[5 0, 0, -π/6, 0, π/6, 0],最終位置為運動時間設置為5 s。運用軌跡生成函數(shù)(jtraj)指令可得到幾何向量法的數(shù)值仿真結果。同理,運用幾何法也可計算得出夾爪的位置軌跡,結果對比如圖8所示。
圖8 六軸機械手末端夾爪位置軌跡
從仿真結果可以看出,x-y-z圖函數(shù)關系一致,而x-t、y-t與z-t三圖之間存在一定誤差,但趨勢相同。誤差是由于Matab當中的jtraj指令會對夾爪中心點始末的加速度進行平滑處理,以達到運動的穩(wěn)定。
針對使用DH法則進行機器人建模以及運動分析時容易產(chǎn)生失真現(xiàn)象而提出一種基于幾何向量法的機器人建模方法。通過實例說明了本文提出的建模方法在處理復雜的機械結構時具有良好的普適性和可靠性。該方法可以改進使用DH法則時出現(xiàn)的誤差,且較為簡便,只需要將DH 參數(shù)中的桿長(a)換一種方式設定即可。