8. 機器人正運動學---DH座標系建立技巧

目錄

 

1. 引言

2. 建立DH座標系的技巧

2.1 理清關節和連桿

2.2 畫 z 軸

2.3 確定 x 軸

2.3.1 x軸方向

2.3.2 x軸起始點(座標系原點)

2.4 小結

3. 總結


1. 引言

關於DH參數上一篇文章介紹了基本概念和物理意義,但是還有一些內容沒有提到。這篇文章主要介紹DH座標系建立的一些技巧。

2. 建立DH座標系的技巧

DH參數本身並不複雜,但是最初我在應用DH參數對機器人建立座標系時的感受就一個字,亂。亂的原因是比較多的,羅列一下有這麼幾個點:

  1. 在機器人上不太容易一一區分出各個連桿,而且連桿編號也容易亂
  2. 無法確定一段距離是連桿偏距 d 還是連桿長度 a
  3. 難以確定座標系的 x 軸方向
  4. 建立完座標系後發現通過DH變換無法使座標系重合

那麼建立DH座標系有沒有什麼技巧呢?還真有,而且很有效。下面我們來介紹一下如何快速建立機器人的DH座標系。

2.1 理清關節和連桿

第一步至關重要,你得首先搞清楚哪個是關節1,哪個是連桿1,與連桿1固連的座標系1原點在哪裏等等。還是想再次強調DH座標系是建立在連桿的傳動軸也就是遠離基座的那個軸。因此對於串聯機器人來說關節,連桿,座標系按照距離基座由近到遠排列應該是這樣的:首先肯定是關節1,其次是安裝在關節1上的連桿1,然後是與連桿1固連的座標系1,之後是關節2。請注意連桿1的座標系 z 軸軸線實際是連桿2的驅動軸。

我們以一個六軸機器人建立DH座標系爲例,爲了方便看清楚各個連桿,我把每個連桿塗成了不同的顏色,如下圖所示。

想象一下如果沒有給各個連桿塗上顏色,你還能一下子看出所有的連桿嗎?你還能一下子區分出連桿1的座標系應該建立在哪裏嗎?

2.2 畫 z 軸

第二步我們要確定各個連桿座標系的 z 軸,這一步實際上是比較容易的,因爲按照規則 z 軸應該是和關節軸同向的。所以這裏你唯一需要搞清楚的是這些 z 軸分別是固連在哪個連桿上。由於DH參數是在傳動軸上建立座標系的(請原諒我已經無數次在強調這個問題,因爲我曾經無數次掉進這個坑裏),所以 z 軸肯定是建立在連桿遠離基座一側的那個軸上的。

以下我們把與連桿固連的座標系塗成與連桿相近的顏色。請先在自己的腦海中構思一下,看看你建立的 z 軸與下面的圖是一致的嗎。

2.3 確定 x 軸

第三步我們需要確定 x 軸,這一步是最關鍵也是比較困難的一部分。在這裏需要確定的有兩點,第一點你需要確定 x 軸的方向第二點你得搞清楚座標系的原點在哪裏,也就是需要確定 x 軸的起始點。

2.3.1 x軸方向

我們先解決第一點。DH座標系的 x 軸是連桿的驅動軸和傳動軸的公垂線。所以 x 軸的方向相對而言是比較容易獲得的。我們知道兩個不平行的向量的叉乘(外積)就是兩個向量的公垂線了。所以我們定義:

                                                                           x_{i}=z_{i-1}\times z_{i}

這樣你就可以確定連桿座標系 x 軸的軸線了。最終 x 軸的指向你可以統一讓它們指向傳動軸。當驅動軸和傳動軸平行時也很簡單,你只需要畫一條與兩個軸都垂直且相交的向量,並且這個向量指向傳動軸就可以了。

2.3.2 x軸起始點(座標系原點)

接下來解決第二點。怎麼確定座標系 x 軸的起點(其實就是座標系原點)。提前說明一下,當連桿的驅動軸和傳動軸是異面直線時這個問題是不存在的,因爲異面直線的公垂線有且僅有一條,這個時候原點已經隨着 x 軸的確定一起確定下來了(就是 x 軸和 z 軸的交點)。

除了異面直線之外,驅動軸和傳動軸還有兩種關係,一個是平行關係,另一個是相交關係。這兩種關係下驅動軸和傳動軸的公垂線有無數條。在這個時候要如何確定座標系的原點呢?

按照DH的規則,兩個 z 軸之間公垂線長度代表的是抽象的連桿長度,兩個 x 軸的公垂線長度代表的相鄰兩個連桿之間的偏距。你在確定座標系原點時就需要考慮這些參數物理含義了。由於 z 軸已經全部確定了, x 軸的方向也確定了,所以這個時候各個連桿的長度也就是DH參數中的 a 已經確定了。那麼我們在選擇 x 軸的起點時必須要保證經過上一個連桿 i-1 的座標系繞 z_{i-1} 軸旋轉和沿 z_{i-1} 軸平移後能讓 x_{i-1} 和 x_{i} 重合。當你發現經過這樣的變換不能讓x_{i-1}x_{i}重合時說明你的連桿 i 座標系選擇的原點有問題。

上面這麼說還是太晦澀了,我們舉個例子。上面的六軸機器人連桿2的驅動軸和傳動軸平行,連桿3的驅動軸和傳動軸相交,我們就以這兩個連桿爲例來說明座標系原點的確定過程。

在這之前我們還是先把基座標系和連桿1座標系確定下來,通常基座的 x 軸指向機器人的正前方。因此基座標系很容易就確定下來了。連桿1的驅動軸和傳動軸是異面直線,因此連桿1的座標系 x 軸也可以輕鬆地根據前面提到的叉乘公式確定。這樣基座和連桿1的座標系就確定完了,如下圖所示。

接下來的連桿2和連桿3就比較特殊了。當你試圖找到 z_{1} 和 z_{2} 的公垂線時你發現又無數條。對於這種平行的連桿怎麼確定其 x 軸呢?其實很簡單,你的連桿 1 座標系不是已經確定好了嘛,只需要過這個座標系原點作垂線與 z_{2} 相交就可以了。這其實是最簡單的連桿,不要把這個問題想複雜了就好。如果不相信,你可以按照前面說的規則檢驗一下。連桿 2 的座標系確定之後如下圖所示。

接下來就是連桿3了,你會發現連桿3的驅動軸和傳動軸是相交的。連桿3的 x_{3} 方向是容易確定的,因爲只要驅動軸和傳動軸不平行我們就可以利用叉乘公式確定確定 x 軸的方向。但是同樣的,這樣的 x 軸有無數個,要怎麼選擇呢?你可以試一下選 z_{2} 和 z_{3}的交點。先告訴各位這是對的。其實可以多找幾個點,你會發現無論原點選在除這個點之外的任何地方,你要麼需要在某個中間步驟向y軸平移,要麼就是最終你需要在 z 軸方向再平移一段。這樣我們就確定了連桿3的座標系,如下圖所示。觀察後你會發現兩個座標系的原點重合,這說明連桿長度和連桿偏距都爲0,這就是此類連桿的一個特點。

後面的連桿4也是類似的,驅動軸和傳動軸相交,注意圖裏面的 z_{3} 很不明顯,不要把 z_{2} 當成 z_{3} 哦。叉乘後發現 x_{4} 向下,原點當然也是在 z_{3} 和 z_{4} 的交點。後面的連桿也都大同小異。這裏我就不一一介紹了。

最後的六軸機器人DH座標系建立完成後如下圖所示。

最後我們寫出這個機器人的DH參數表如下表所示。

連桿編號 \theta d a \alpha offset
1 \theta_{1} d_{1} a_{1} 90^{\circ } 0
2 \theta_{2} 0 a_{2} 0 90^{\circ }
3 \theta_{3} 0 0 90^{\circ } 0
4 \theta_{4} d_{4} 0 90^{\circ } 180^{\circ }
5 \theta_{5} 0 0 90^{\circ } 180^{\circ }
6 \theta_{6} 0 0 0 0

 

關於offset項是疊加在\theta上面的偏置量,你可以理解爲機器人處於零位時,驅動軸和傳動軸依然存在夾角。

2.4 小結

前面感覺囉嗦了很多,不知道有沒有說清楚,這裏簡單總結一下:當連桿驅動軸和傳動軸是異面直線,公垂線(唯一)就是連桿的 x 軸;當連桿的驅動軸和傳動軸平行時,找到上一個連桿的座標系原點,向當前連桿的 z 軸作垂線,垂足就是當前連桿原點,垂線就是 x 軸;當連桿的驅動軸和傳動軸相交時,交點就是連桿座標系原點,驅動軸和傳動軸的叉乘就是 x 軸方向

這一塊還是需要各位仔細去品味的,相信你經過不斷的思考和嘗試,一定可以變得通透。寫這篇博客挺費力的,作圖時間很長,但是我真的在這個過程裏受益匪淺,對DH座標系的理解也更進了一步。如果你一下子還不能完全理解,千萬彆着急,可以先放着,過幾天再看,相信一定會有新的收穫。

3. 總結

這篇文章我們主要介紹了DH座標系建立的一些技巧,下一篇文章會介紹修改DH參數以及和標準DH參數之間的差別。由於個人能力有限,所述內容難免存在疏漏,歡迎指出,歡迎討論。

下一篇:9. 機器人正運動學---修改DH參數

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