1、概述微信
機器人運動學研究的是機械臂各個連桿之間的位移關係、速度關係和加速度關係。比較經典的一本書推薦你們讀讀熊有倫的《機器人技術基礎》下載網址在這。本篇博文將從剛體的位姿描述講起,逐步過渡到D-H法運動學建模的方法與步驟,結合前幾篇博客所樹的Rob機器人的手臂創建D-H運動學模型,並編寫一個逆運動學運動學求解的程序。spa
(1)位姿描述.net
咱們知道,剛體在世界座標系裏須要經過位置和姿態兩個維度來描述。首先,位置描述很容易理解,就是座標,例如點P的位姿經過座標Px,Py,Pz來描述,以下所示。3d
目前它是三維形式,可是咱們須要在其下面添加一維,使其變爲四維形式,以下所示,這就是齊次座標,多增長的這一維 ω 稱爲比例因子,這裏取1。blog
姿態的描述的描述相對複雜一些,它表徵的是剛體相對於世界座標系的旋轉狀況,咱們首先須要在剛體上添加一個座標系,用這個座標系的姿態來表明剛體的姿態,如圖一所示,在世界座標系中的剛體,咱們創建座標系X',Y',Z',而後分別額在這個座標系上取單位失向量n,o,b。get
圖1博客
剛體上的每一個座標軸 X',Y',Z' 都和世界座標軸 X, Y, Z 之間在空間上存在夾角,咱們以這些夾角爲基礎對其姿態進行描述,便獲得下面這個式子,矩陣 R 就是剛體相對於世界座標系的姿態描述。此外還有其餘的描述方法,好比歐拉角描述方法,四元數描述方法等。it
咱們將上面的 R 矩陣由三行三列的矩陣變換爲四行三列的矩陣,最後一行補零,就獲得了剛體姿態的其次矩陣,而後在將位置齊次矩陣加入進來組成四行四列的矩陣,就是剛體位姿描述的總體矩陣:T(也能夠稱爲轉換矩陣),以下式:基礎
咱們也能夠將其理解爲這是相鄰的兩個座標系之間的轉換關係或相對關係,只是這個相對關係經過位置和姿態兩個維度來描述的。咱們的機械臂是由一系列杆件和運動關節組成,若是咱們以必定的規則在機械臂的關節處創建座標系,就獲得一系列的座標系,如圖2所示,若是咱們又知道這一系列座標系中每相鄰兩個的轉換關係(即轉換矩陣),那麼經過推導咱們就知道了首位兩個座標系之間的轉換關係了,從而就能夠實現機械臂的運動學描述了。變量
圖2
(2)正逆運動學
咱們知道機器人運動學研究的是連桿之間的位移關係、速度關係和加速度關係,它又分爲正運動學和逆運動學。
正運動學:知道機械臂各個關節的關節變量(如每一個轉動關節轉了多少度,移動關節移動了對少距離)推導出末端執行器相對於世界座標系的位姿關係(座標系n相對座標系0)。(解決的是我在哪的問題)
逆運動學:知道末端執行器相對於世界座標系的位姿關係(座標系n相對座標系0),推導出要到達這個位姿械臂各個關節的關節變量(如每一個轉動關節須要轉多少度,移動關節須要移動多少距離)。(解決的是如何到那的問題)
二、D-H法
經過第一部分咱們就能夠分析知道,所謂的機器人運動學建模通俗講分爲如下幾個步驟:
1. 以必定的規則在機械臂上建立一系列的座標系。
2. 經過這些座標系中每相鄰兩個座標系之間的關係推導出最後一個座標系(座標系n)相對於第一個座標系(座標系0)的轉換關係(轉換矩陣)。
3. 經過這個轉換關係得到機械臂正運動學矩陣。
4. 經過正運動學矩陣得到逆運動學的求解方法。
具體以什麼樣的規則建立座標系?如何才能快速得到兩個相鄰座標系之間的轉換關係?如何求取逆運動學解?這一些列問題早在1995年兩位前輩就給出了答案(膜拜,經典的東西每每經久不衰),它們就是 Denavit 和 Hartenberg,(業內簡稱D-H法)下面咱們一步步看看它們如何解決這些問題的。
(1)描述連桿和連桿鏈接的參數
上述兩位大師將相鄰兩個連桿(剛體)之間的關係簡化成4個參數來描述,其中另個參數用來描述連桿,兩個參數用來描述兩個連桿的鏈接關係,先來講說描述連桿的兩個參數:ai-1 和 αi-1 ,如圖3所示。
圖3
Link length 連桿長度 ai-1 ,關節軸 i-1 和關節軸 i 之間的公垂線(圖3紅色直線)的長度ai-1。
Link twist 連桿轉角 αi-1,假設做一個平面,並使該平面與兩關節軸之間的公垂線垂直(圖3粉紅色平面),而後把關節軸 i-1 和關節軸 i 投影到該平面上,在平面內軸 i-1 按照右手法則轉向軸 i ,測量兩軸角之間的夾角爲αi-1.
再看一下描述兩個連桿的鏈接關係的兩個參數 di 和 θi,如圖4所示。
圖4
link offset 連桿偏距 di,相鄰兩個連桿之間有一個公共的關節, 沿着兩個相鄰連桿公共法線(圖4兩條黃線)的距離能夠用一個參數描述爲連桿偏距di。(當 i 爲移動關節時,連桿偏距爲一變量)
joint angle 關節角 θi, 兩個相鄰連桿的兩條公共法線(圖4兩條黃線)繞公共軸線(圖4紅色軸線)旋轉的夾角(圖4藍色夾角) θi。
用這四個參數就能夠完成相鄰兩個連桿(剛體)之間的關係的描述。
(2)在機械臂上創建座標系
Denavit 和 Hartenberg 肯定了連桿關係的描述方法以後,又制定了座標系的創建規則,長座標系{0}到座標系{n}的肯定步驟以下:
a. 肯定關節軸,並畫出軸的延長線。
b. 找出關節軸 i -1 和 i 的公垂線(圖3紅色直線)關節軸 i -1 的交點 ,做爲座標系 i-1 的原點 Oi-1。
c. 規定 Zi-1 的指向是沿着第 i-1 個關節軸。
d. 規定 Xi-1 軸的指向是沿着軸 i-1 和 i 的公垂線(圖3紅色直線)的方向,若是關節軸 i-1 和 i 相交,則Xi-1軸垂直於關節軸 i-1 和 i 所在的平面。
e. Yi-1軸的方向由右手定則肯定 Yi-1 = Zi-1 × Xi-1 。
此外,對於座標系{0} ,Z0軸沿着關節軸1的方向,當座標系{1}的關節變量爲0時,設定參考座標系{0}與{1}重合,且a0=0, α0=0,當關節1爲轉動關節,d1=0;當關節1爲移動關節,θ1=0。
座標系{n} 一般規定:
對於轉動關節 n,設定θn=0,此時 Xn 和 Xn-1 軸的方向相同,選取座標系{n} 的原點位置,使之知足 dn=0;
對於移動關節 n, 設定Xn軸的方向使之知足θn=0,當dn=0時,選取座標系{n} 的原點位於Xn-1軸與關節軸n的交點位置。
(3)根據機械臂上所創建的座標系肯定描述連桿和連桿鏈接的參數
創建完座標系之後,就須要根據座標系來肯定小節(1)中所說的描述連桿和連桿鏈接的四個參數,因爲咱們是根據特定規則來創建的座標系,因此咱們很容易獲得四個參數,獲得的方法如圖5所示。
圖5
三、Rob手臂的D-H法建模
下面咱們解結合前面博文所介紹的Rob機器人的一個手臂,講解如何在它的手臂上創建座標系,得到描述參數,最後獲得運動學關係,首先手臂的模型抽象以下圖6所示。
圖6
爲了方便起見,咱們讓手臂擡起來伸直,如圖7所示,這樣方便咱們創建座標系,而後咱們按照第二部分的(2)小節介紹的方法創建座標系,首先繪製關節軸線(關節轉軸) i1 到 i5(圖7中綠色虛線),而後根據規則肯定原點 O1 到 O6的位置,而後肯定每一個座標系Z軸的方向(圖7紅色軸,和關節軸線共線),而後肯定各個座標系的X軸,最後根據右手定則肯定各個座標系的Y軸,此外各個連桿的物理尺寸如圖7中的藍色虛線所標識。
圖7 (圖畫的太醜,沒有美術細胞。。。-_-||)
一旦肯定了座標系,咱們根據第二部分的(3)小節中圖5所示的法則就能夠快速肯定每一個連桿(座標系)之間的描述參數,以下表所示。
至此其實咱們已經獲得了Rob手臂上的座標系{0}到座標系{6}之間每兩個相鄰座標系的轉換關係了,就是上表中 i 行的數據。可是拿到這些數據怎麼轉換成第一部分的(1)小節中所介紹的轉換矩陣 T 呢?如何根據兩個相鄰座標系的轉換關係獲得座標系{6}到座標系{0}的轉換關係呢?又如何求取逆運動學解呢?這幾個問題在下一篇博客中揭曉,並給出逆運動學求解的C++源代碼。
<-- 本篇完 -->
歡迎留言、私信、郵箱、微信等任何形式的技術交流。
做者信息:
名稱:Shawn
郵箱:zhanggx0102@163.com
微信二維碼:↓