機器人正運動學---連桿座標系與DH參數

目錄

 

1. 引言

2. 連桿座標系

3 DH參數

3.1 DH參數的介紹

3.2 DH參數定義

3.2.1 連桿長度和扭角

3.2.2 連桿轉角和連桿偏距

4. 解決問題

5. 總結


1. 引言

前面的文章我們一直在介紹座標系以及它們之間的變換關係,數學的意味還是很濃的。講了那麼多的公式和規律,它們要怎麼用在機器人上呢?這篇文章將介紹座標系和機器人之間的紐帶即連桿座標系。完成這篇文章的介紹之後我們就可以利用一些機器人的開發平臺如ROS,Robotic Toolbox,SimMechanics等來進行一些基本的機器人建模與仿真工作了。

2. 連桿座標系

從前面一系列關於座標系的文章中我們瞭解到可以利用齊次變換矩陣來計算某個空間點在各個座標系下的座標。在機器人正運動學---座標系及其變換文章開頭我們提出了一個問題,如何求解一個多連桿機器人(如下圖)的末端點P在世界座標系下的座標。介紹到這裏我們終於可以嘗試解決這個問題。

由於機器人的各個連桿之間可以發生相對運動,我們真的很難直觀地看出末端點在世界座標系的位置。那怎麼辦呢?其實我們可以把這個問題分解一下讓每個子問題求解起來沒有那麼困難。

如果我們建立一個與末端連桿固連的座標系,那麼P點在該座標系下的座標是很容易給出的,因爲它只和末端連桿的機械尺寸有關,與機器人的運動無關,這就是一個連桿座標系。連桿座標系是一個個與機器人的連桿固連在一起的座標系。如果我們在機器人的每一個連桿上都建立一個固連座標系,並且我們想辦法求解每相鄰兩個連桿之間的座標系變換關係,是不是就能很容易地將P點座標映射到世界座標系了呢(相對而言相鄰兩個連桿之間的座標變換關係是容易求得的)。

這時比較關鍵的問題是怎麼求解相鄰兩個座標系之間的變換關係。隨便建立連桿座標系肯定是不好的,一方面這將導致座標系之間的關係複雜多樣,難以統一;另一方面我們可能需要進行很多不必要參數的測量。因此建立連桿座標系需要一套準則。我們希望這套準則儘可能使用較少的參數來描述各個座標系,同時我們希望這套準則是普適的。

1995年Jacques Denavit Richard Hartenberg解決了這個問題,他們提出了著名的DH參數法建立連桿座標系的準則。在這個準則下每個連桿只需四個參數就可以確定它的連桿座標系。

3 DH參數

3.1 DH參數的介紹

DH參數是一種描述連桿座標系的方法,如下圖所示。可以認爲這是機器人中的兩個相鄰連桿Link_{i-1}Link_{i}。在這裏我首先還是希望解釋一下圖中符號的含義,特別是下標含義,我學習的時候經常弄混。

圖1. DH 參數

首先我們來定義兩個概念,驅動關節傳動關節,這兩個概念很容易理解。我們都知道對於電驅動的機器人,各個關節處通常都會有伺服電機驅動。在一個串聯機器人中連桿i靠近基座的關節驅動連桿i的運動,稱爲連桿i的驅動關節; 連桿i靠近末端執行器的關節用於驅動連桿i+1的運動,因此我們稱這個關節爲連桿i的傳動關節。DH參數建立的座標系又被稱爲傳動軸座標系。這裏需要強調連桿i的座標系是建立在傳動關節也就是靠近末端執行器一側的關節處,也就是說座標系O_{i-1}x_{i-1}y_{i-1}z_{i-1}(簡稱\{O_{i-1}\})是與Link_{i-1}固連在一起的,座標系\{O_{i}\}是與Link_{i}固連在一起的,在後面的介紹中請各位一定牢記,否則你會覺得整個座標系變換都很奇怪

Axis_{i-1}對應的是Link_{i-1}的驅動軸; Axis_{i}對應的是Link_{i-1}的傳動軸以及Link_{i}的驅動軸;  Axis_{i+1}對應的是Link_{i}的傳動軸...

標誌右斜槓的兩對直線圈1和圈2分別是兩對平行直線。圖中的\theta_{i} 、d_{i} 、\alpha _{i} 、a_{i}就是我們要介紹的Link_{i}的DH參數

3.2 DH參數定義

要說DH參數爲何如此受青睞我覺得主要有兩個原因。第一就是DH參數描述一個連桿座標系只需要4個參數; 第二這四個參數具備明顯的物理意義:

  1. \theta _{i}代表座標系\{O_{i-1}\}和座標系\{O_{i}\}之間x軸的夾角,也就是Axis_{i}旋轉的角度(這不就是關節i電機旋轉的角度嗎)
  2. d_{i}代表座標系\{O_{i}\}想對於座標系\{O_{i-1}\}z_{i-1}軸方向的偏移量
  3. \alpha _{i}代表Link_{i}的驅動軸和傳動軸之間的夾角
  4. a_{i}代表Link_{i}的數學意義上的長度

從上面的描述我們可以看出1和2是描述的是Link_{i-1}Link_{i}之間的關係,3和4描述的是Link_{i}的固有屬性(因爲它們只和Link_{i}有關)。因此要說清楚DH參數,這兩組不同含義的參數還是分開來看。

3.2.1 連桿長度和扭角

我們先從\alpha _{i}a_{i}的定義開始,因爲這兩個參數比較直觀。下圖就是連桿固有參數\alpha _{i}a_{i}的示意圖。再次強調連桿長度和扭角是連桿自身的固有屬性,與其他連桿沒有任何關係。

圖2. 連桿固有屬性

無論這個連桿有多麼的複雜,我們都可以對它進行一種統一的描述:兩根關節軸線(Axis_{i}Axis_{i+1})以及他們的公垂線(圈1)是對一個連桿最簡單的抽象。這裏可能需要一點點空間幾何的知識,異面直線有且僅有一條公垂線。

在這裏我們定義Axis_{i}Axis_{i+1}的公垂線圈1的長度爲連桿長度a_{i},這就是四個DH參數中的第一個參數。

定義Axis_{i}Axis_{i+1}兩條異面直線的夾角爲連桿的關節扭角\alpha _{i},圖中雙右斜槓對應的兩條直線平行,這是DH參數中的第二個參數。

3.2.2 連桿轉角和連桿偏距

接下來我們來看連桿轉角\theta _{i}和連桿偏距d_{i}的定義。這兩個參數描述的是一種位置關係。再次強調它們描述的是相鄰兩個連桿之間的位置關係,不再是連桿的固有屬性。就這裏來說\theta _{i}d_{i}描述的是Link_{i}相對於Link_{i-1}的位置關係。

請在回到圖1中觀察,\{O_{i-1}\}\{O_{i}\}分別是與Link_{i-1}Link_{i}固連的座標系。根據我們的定義\{O_{i-1}\}x軸建在Axis_{i-1}Axis_{i}的公垂線上,\{O_{i}\}x軸建在Axis_{i}Axis_{i+1}的公垂線上。仔細體會一下這說明了什麼。這說明\{O_{i-1}\}x軸和\{O_{i}\}x軸都垂直於Axis_{i},也就是Axis_{i}是異面直線x_{i-1}x_{i}的公垂線。

圖1中單右斜槓對應的兩條直線平行,那麼\theta _{i}對應的就是直線x_{i-1}x_{i}的夾角。因此我們定義\{O_{i-1}\}\{O_{i}\}x軸夾角爲連桿轉角\theta _{i}

我們發現\{O_{i-1}\}沿Axis_{i}(即\{O_{i-1}\}z軸)旋轉\theta _{i}\{O_{i-1}\}\{O_{i}\}x軸平行了!我們定義\{O_{i-1}\}\{O_{i}\}x軸之間的公垂線長度爲連桿偏距d_{i}

我們發現\{O_{i-1}\}沿着Axis_{i}旋轉\theta _{i},再沿着新座標系的z軸(其實還是Axis_{i},因爲前面的旋轉是繞着z軸的,因此z軸方向不會改變)平移d_{i},之後你會發現新的座標系和\{O_{i}\}x軸已經完全重合了!!

更進一步,再將新座標系沿着其x軸旋轉\alpha _{i}角,我們發現新座標系和\{O_{i}\}不僅x軸重合,而且z軸平行了!!!那麼如果再沿着x軸平移a_{i}呢?沒錯兩個座標系這時候完全重合!!!!

以上描述的過程用數學語言表達就是:

                                                                    ^{i-1}\textrm{T}_{i}=rot_{z}\left ( \theta _{i} \right )trans_{z}\left ( d_{i} \right )rot_{x}\left ( \alpha _{i} \right )trans_{x}\left ( a_{i} \right )

這個變換矩陣可以將\{O_{i}\}中的點映射到\{O_{i-1}\}!有一點需要注意沿同一軸連續的平移和旋轉是可以交換位置的,這一點大家從幾何的角度思考一下就不難發現,因此沿z的平移和旋轉可交換,沿x軸的平移和旋轉可交換。

4. 解決問題

到這裏我們終於可以解決前面提到的關於機器人末端點在基座標系下的座標的問題了。方法很簡單,就是在每個連桿上都建立一個座標系,然後用前面提到的變換關係找到相鄰連桿之間的變換關係,這樣問題就迎刃而解了。如下圖所示就是在SCARA機器人的各個連桿上建立的座標系,爲了便於觀察添加了一些輔助線。

在利用DH參數進行機器人正運動學分析時我們習慣上列寫DH參數表。有了參數表後我們就已經從機器人中抽象出了數學模型。有人說高手眼中沒有機器人,只有座標系大概就是這種感覺吧。我們把這個機器人的參數列成如下的表格。(依然請各位牢記DH參數中\theta代表兩個x軸夾角,d代表兩個x軸的公垂線長度,\alpha代表兩個z軸夾角,a代表兩個z軸的公垂線長度

SCARA DH參數
連桿編號 \theta d \alpha a
1 \theta _{1} d_{1} 0 l_{1}
2 \theta _{2} 0 0 l_{2}
3 0 d_{3} 0 0
4 \theta _{4} 0 0 0

DH參數表到這裏就算是建立完成了,SCARA機器人第三軸是平移關節,DH參數表中的變量爲\theta _{1}\theta _{2}d_{3}\theta _{4},其餘參數均爲固定值。還記得我們在3.2.2介紹的變換關係嗎?每相鄰兩個連桿之間的關係都可以用這個變換加以描述。因此我們可以找到:

                                                                     ^{0}\textrm{T}_{1}=rot_{z}\left ( \theta _{1} \right )trans_{z}\left ( d_{1} \right )trans_{x}\left ( l_{1} \right )

                                                                               ^{1}\textrm{T}_{2}=rot_{z}\left ( \theta _{2} \right )trans_{x}\left ( l_{2} \right )

                                                                                       ^{2}\textrm{T}_{3}=trans_{z}\left ( d_{3} \right )

                                                                                          ^{3}\textrm{T}_{4}=rot_{z}\left ( \theta _{4} \right )

我們要求的P點是不是就是座標系{4}的原點呢?它在基座標系下如下表示呢?很簡單把所有變換迭乘就可以了:

                                                                           P^{0}=^{0}\textrm{T}_{1}\cdot ^{1}\textrm{T}_{2}\cdot ^{2}\textrm{T}_{3}\cdot ^{3}\textrm{T}_{4}\cdot \begin{bmatrix} 0\\ 0\\ 0\\ 1 \end{bmatrix}

因此當我們測量到DH參數中各個變量的值以及已知機器人的結構參數時,只需要代入到上面的方程中,就可以求解末端點P在基座標系下的座標。

5. 總結

這篇文章我們介紹了DH參數以及其物理意義,有些特殊的連桿如何建立座標系沒有進行相關介紹,比如連桿兩個軸線平行/相交時如何建立座標系。建立DH座標系有哪些小技巧,這些我們將在下一篇文章進行討論。由於個人能力有限,所述內容難免存在疏漏,歡迎指出,歡迎討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章