计算机器人正反运动学方程,机器人运动学方程
2.8機器人正運動學方程的D-H表示法
在1955年,Denavit和Hartenberg在“ASME Journal of Applied Mechanics”發表了一篇論文,后來利用那個這篇論文來對機器人進行表示和建模,并導出了它們的運動方程,這已成為表示機器人和對機器人運動進行建模的標準方法,所以必須學習這部分內容。Denavit-Hartenberg(D_H)模型表示了對機器人連桿和關節進行建模的一種非常簡單的方法,可用于任何機器人構型,而不管機器人的結構順序和復雜程度如何。它也可用于表示已經討論過的在任何坐標中的變換,例如直角坐標、圓柱坐標、球坐標、歐拉角坐標及RPY坐標等。另外,它也可以用于表示全旋轉的鏈式機器人、SCARA機器人或任何可能的關節和連桿組合。盡管采用前面的方法對機器人直接建模會更快、更直接,但D-H表示法有其附加的好處,使用它已經開發了許多技術,例如,雅克比矩陣的計算和力分析等。
假設機器人由一系列關節和連桿組成。這些關節可能是滑動(線性)的或旋轉(轉動)的,它們可以按任意的順序放置并處于任意的平面。連桿也可以是任意的長度(包括零),它可能被彎曲或扭曲,也可能位于任意平面上。所以任何一組關節和連桿都可以構成一個我們想要建模和表示的機器人。
為此,需要給每個關節指定一個參考坐標系,然后,確定從一個關節到下一個關節(一個坐標系到下一個坐標系)來進行變換的步驟。如果將從基座到第一個關節,再從第一個關節到第二個關節直至到最后一個關節的所有變換結合起來,就得到了機器人的總變換矩陣。在下一節,將根據D-H表示法確定一個一般步驟來為每個關節指定參考坐標系,然后確定如何實現任意兩個相鄰坐標系之間的變換,最后寫出機器人的總變換矩陣。
圖2.25??? 通用關節—連桿組合的D-H表示
假設一個機器人由任意多的連桿和關節以任意形式構成。圖2.25表示了三個順序的關節和兩個連桿。雖然這些關節和連桿并不一定與任何實際機器人的關節或連桿相似,但是他們非常常見,且能很容易地表示實際機器人的任何關節。這些關節可能是旋轉的、滑動的、或兩者都有。盡管在實際情況下,機器人的關節通常只有一個自由度,但圖2.25中的關節可以表示一個或兩個自由度。
圖2.25(a)表示了三個關節,每個關節都是可以轉動或平移的。第一個關節指定為關節n,第二個關節為關節n+1,第三個關節為關節n+2。在這些關節的前后可能還有其他關節。連桿也是如此表示,連桿n位于關節n與n+1之間,連桿n+1位于關節n+1與n+2之間。
為了用D-H表示法對機器人建模,所要做的第一件事是為每個關節指定一個本地的參考坐標系。因此,對于每個關節,都必須指定一個z軸和x軸,通常并不需要指定y軸,因為y軸總是垂直于x軸和z軸的。此外,D-H表示法根本就不用y軸。以下是給每個關節指定本地參考坐標系的步驟:
所有關節,無一例外的用z軸表示。如果關節是旋轉的,z軸位于按右手規則旋轉的方向。如果關節是滑動的,z軸為沿直線運動的方向。在每一種情況下,關節n處的z軸(以及該關節的本地參考坐標系)的下表為n-1。例如,表示關節數n+1的z軸是
。這些簡單規則可使我們很快地定義出所有關節的z軸。對于旋轉關節,繞z軸的旋轉(
角)是關節變量。對于滑動關節,沿z軸的連桿長度d是關節變量。
如圖2.25(a)所示,通常關節不一定平行或相交。因此,通常z軸是斜線,但總有一條距離最短的公垂線,它正交于任意兩條斜線。通常在公垂線方向上定義本地參考坐標系的x軸。所以如果
表示
與
之間的公垂線,則
的方向將沿
。同樣,在
與
之間的公垂線為
,
的方向將沿
。注意相鄰關節之間的公垂線不一定相交或共線,因此,兩個相鄰坐標系原點的位置也可能不在同一個位置。根據上面介紹的知識并考慮下面例外的特殊情況,可以為所有的關節定義坐標系。
如果兩個關節的z軸平行,那么它們之間就有無數條公垂線。這時可挑選與前一關節的公垂線共線的一條公垂線,這樣做就可以簡化模型。
入股兩個相鄰關節的z軸是相交的,那么它們之間就沒有公垂線(或者說公垂線距離為零)。這時可將垂直于兩條軸線構成的平面的直線定義為x軸。也就是說,其公垂線是垂直于包含了兩條z軸的平面的直線,它也相當于選取兩條z軸的叉積方向作為x軸。這也會使模型得以簡化。
在圖2.25(a)中,
角表示繞z軸的旋轉角,d表示在z軸上兩條相鄰的公垂線之間的距離,a表示每一條公垂線的長度(也叫關節偏移量),角
表示兩個相鄰的z軸之間的角度 (也叫關節扭轉)。通常,只有
和d是關節變量。
下一步來完成幾個必要的運動,即將一個參考坐標系變換到下一個參考坐標系。假設現在位于本地坐標系
,那么通過以下四步標準運動即可到達下一個本地坐標系
。
(1)繞
軸旋轉
(如圖2.25(a)與(b)所示),它使得
和
互相平行,因為
和
都是垂直于
軸的,因此繞
軸旋轉
使它們平行(并且共面)。
(2)沿
軸平移
距離,使得
和
共線(如圖2.25(c)所示)。因為
和
已經平行并且垂直于
,沿著
移動則可使它們互相重疊在一起。
(3)沿
軸平移
的距離,使得
和
的原點重合(如圖2.25(d)和(e)所示)。這是兩個參考坐標系的原點處在同一位置。
(4)將
軸繞
軸旋轉
,使得
軸與
軸對準(如圖2.25(f)所示)。這時坐標系n和n+1完全相同(如圖2.25(g)所示)。至此,我們成功地從一個坐標系變換到了下一個坐標系。
在n+1和n+2坐標系間嚴格地按照同樣的四個運動順序可以將一個坐標變換到下一個坐標系。如有必要,可以重復以上步驟,就可以實現一系列相鄰坐標系之間的變換。從參考坐標系開始,我們可以將其轉換到機器人的基座,然后到第一個關節,第二個關節……,直至末端執行器。這里比較好的一點是,在任何兩個坐標系之間的變換均可采用與前面相同的運動步驟。
通過右乘表示四個運動的四個矩陣就可以得到變換矩陣A,矩陣A表示了四個依次的運動。由于所有的變換都是相對于當前坐標系的(即他們都是相對于當前的本地坐標系來測量與執行),因此所有的矩陣都是右乘。從而得到結果如下:
?????????? (2.51)
????? ?(2.52)
比如,一般機器人的關節2與關節3之間的變換可以簡化為:
???????????(2.53)
在機器人的基座上,可以從第一個關節開始變換到第二個關節,然后到第三個……,再到機器人的手,最終到末端執行器。若把每個變換定義為,則可以得到許多表示變換的矩陣。在機器人的基座與手之間的總變換則為:
??????????????????(2.54)
其中n是關節數。對于一個具有六個自由度的機器人而言,有6個A矩陣。
為了簡化A矩陣的計算,可以制作一張關節和連桿參數的表格,其中每個連桿和關節的參數值可從機器人的原理示意圖上確定,并且可將這些參數代入A矩陣。表2.1可用于這個目的。
在以下幾個例子中,我們將建立必要的坐標系,填寫參數表,并將這些數值代入A矩陣。首先從簡單的機器人開始,以后再考慮復雜的機器人。
表2.1???? D-H參數表
#
d
a
1
2
3
4
5
6
對于如圖2.26所示的簡單機器人,根據D-H表示法,建立必要的坐標系,并填寫相應的參數表。
解:
為方便起見,在此例中,假設關節2,3和4在同一平面內,即它們的
值為0。為建立機器人的坐標系,首先尋找關節(如圖2.26所示)。該機器人有六個自由度,在這個簡單機器人中,所有的關節都是旋轉的。第一個關節(關節1)在連桿0(固定基座)和連桿1之間,關節2在連桿1和連桿2之間,等等。首先,如前面已經討論過的那樣,對每個關節建立z軸,接著建立z軸。觀察圖2.27和圖2.28所示的坐標可以發現,圖2.28是圖2.27的簡化線圖。應注意每個坐標系原點3在它所在位置的原因。
圖2.26??? 具有六個自由度的簡單鏈式機器人
圖2.27??? 簡單六個自由度鏈式機器人的參考坐標系
圖2.28??? 簡單六個自由度鏈式機器人的參考坐標系線圖
從關節1開始,
表示第一個關節,它是一個旋轉關節。選擇
與參考坐標系的x軸平行,這樣做僅僅是為了方便,
是一個固定的坐標軸,表示機器人的基座,它是不動的。第一個關節的運動是圍繞著
-
軸進行的,但這兩個軸并不運動。接下來,在關節2處設定
,因為坐標軸
和
是相交的,所以
垂直于
和
。
在
和
之間的公垂線方向上,
在
和
之間的公垂線方向上,類似地,
在
和
之間的公垂線方向上。最后,
和
是平行且共線的。
表示關節6的運動,而
表示末端執行的運動。通常在運動方程中不包含末端執行器,但應包含末端執行器的坐標系,這是因為它可以容許進行從坐標系
出發的變換。同時也要注意第一個和最后一個坐標系的原點的位置,它們將決定機器人的總編換方程??梢栽诘谝粋€和最后的坐標系之間建立其他的(或不同的)中間坐標系,但只要第一個和最后的坐標系沒有改變,機器人的總變換便是不變的。應注意的是,第一個關節的原點并不在關節的實際位置,但證明這樣做是沒有問題的,因為無論實際關節是高一點還是低一點,機器人的運動并不會有任何差異。因此,考慮原點位置時可不用考慮基座上關節的實際位置。
接下來,我們將根據已建立的坐標系來填寫表2.2中的參數。參考前一節中任意兩個坐標系之間的四個運動的順序。從
開始,有一個旋轉運動將
轉到了
,為使得
與
軸重合,需要沿
和沿
的平移均為零,還需要一個旋轉將
轉到
,注意旋轉是根據右手規則進行的,即將右手手指按旋轉的方向彎曲,大拇指的方向則為旋轉坐標軸的方向。到了這時,
就變換到了
。
接下來,繞
旋轉
,將
轉到了
,然后沿
軸移動距離
,使坐標系原點重合。由于前后兩個z軸是平行的,所以沒有必要繞x軸旋轉。按照這樣的步驟繼續做下去,就能得到所需要的結果。
必須要認識到,與其他機械類似,機器人也不會保持原理圖中所示的一種構型不變。盡管機器人的原理圖是二維的,但必須要想象出機器人的運動,也就是說,機器人的不同連桿和關節在運動時,與之相連的坐標系也隨之運動。如果這時原理圖所示機器人構型的坐標軸處于特殊的位姿狀態,當機器人移動時它們又會處于其他的點和姿態上。比如,
總是沿著關節3與關節4之間連線
的方向。當機器人的下臂繞關節2旋轉而運動。在確定參數時,必須記住這一點。
表2.2???? 例2.19機器人的參數
#
d
a
1
0
0
90
2
0
0
3
0
0
4
0
-90
5
0
0
90
6
0
0
0
表示旋轉關節的關節變量,d表示滑動關節的關節變量。因為這個機器人的關節全是旋轉的,因此所有關節變量都是角度。
通過簡單地從參數表中選取參數代入A矩陣,便可寫出每兩個相鄰關節之間的變換。例如,在坐標系0和1之間的變換矩陣
可通過將
(sin
=1,cos
=0,
=
)以及指定
為
等代入A矩陣得到,對其他關節的
~
矩陣也是這樣,最后得:
???????
???
????????(2.55)
????????
特別注意:為簡化最后的解,將用到下列三角函數關系式:
??????????????? (2.56)
在機器人的基座和手之間的總變換為:
?????????????????????????????????????????????????? (2.57)
斯坦福機械手臂。在斯坦福機械手臂上指定坐標系(如圖2.29所示),并填寫參數表。斯坦福機械手臂是一個球坐標手臂,即開始的兩個關節是旋轉的,第三個關節是滑動的,最后三個腕關節全是旋轉關節。
圖2.29??? 斯坦福機械手臂示意圖
解:
在看本題解答之前,現根據自己的理解來做,問題的答案在本章的最后。建議在看解答中建立的坐標系和機械手臂的解之前,先試著自己做。
機器手臂最后的正運動學解是相鄰關節之間的6個變換矩陣的乘積:
其中
??????? ?????????????????????(2.58)
總結
以上是生活随笔為你收集整理的计算机器人正反运动学方程,机器人运动学方程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Greenplum6.x搭建_安装
- 下一篇: win7设置多用户登陆和修改3389端口