目錄
1. 引言
關於DH參數上一篇文章介紹了基本概念和物理意義,但是還有一些內容沒有提到。這篇文章主要介紹DH座標系建立的一些技巧。
2. 建立DH座標系的技巧
DH參數本身並不複雜,但是最初我在應用DH參數對機器人建立座標系時的感受就一個字,亂。亂的原因是比較多的,羅列一下有這麼幾個點:
- 在機器人上不太容易一一區分出各個連桿,而且連桿編號也容易亂
- 無法確定一段距離是連桿偏距 還是連桿長度
- 難以確定座標系的 軸方向
- 建立完座標系後發現通過DH變換無法使座標系重合
那麼建立DH座標系有沒有什麼技巧呢?還真有,而且很有效。下面我們來介紹一下如何快速建立機器人的DH座標系。
2.1 理清關節和連桿
第一步至關重要,你得首先搞清楚哪個是關節1,哪個是連桿1,與連桿1固連的座標系1原點在哪裏等等。還是想再次強調DH座標系是建立在連桿的傳動軸也就是遠離基座的那個軸。因此對於串聯機器人來說關節,連桿,座標系按照距離基座由近到遠排列應該是這樣的:首先肯定是關節1,其次是安裝在關節1上的連桿1,然後是與連桿1固連的座標系1,之後是關節2。請注意連桿1的座標系 軸軸線實際是連桿2的驅動軸。
我們以一個六軸機器人建立DH座標系爲例,爲了方便看清楚各個連桿,我把每個連桿塗成了不同的顏色,如下圖所示。
想象一下如果沒有給各個連桿塗上顏色,你還能一下子看出所有的連桿嗎?你還能一下子區分出連桿1的座標系應該建立在哪裏嗎?
2.2 畫 z 軸
第二步我們要確定各個連桿座標系的 軸,這一步實際上是比較容易的,因爲按照規則 軸應該是和關節軸同向的。所以這裏你唯一需要搞清楚的是這些 軸分別是固連在哪個連桿上。由於DH參數是在傳動軸上建立座標系的(請原諒我已經無數次在強調這個問題,因爲我曾經無數次掉進這個坑裏),所以 軸肯定是建立在連桿遠離基座一側的那個軸上的。
以下我們把與連桿固連的座標系塗成與連桿相近的顏色。請先在自己的腦海中構思一下,看看你建立的 軸與下面的圖是一致的嗎。
2.3 確定 x 軸
第三步我們需要確定 軸,這一步是最關鍵也是比較困難的一部分。在這裏需要確定的有兩點,第一點你需要確定 軸的方向第二點你得搞清楚座標系的原點在哪裏,也就是需要確定 軸的起始點。
2.3.1 x軸方向
我們先解決第一點。DH座標系的 軸是連桿的驅動軸和傳動軸的公垂線。所以 軸的方向相對而言是比較容易獲得的。我們知道兩個不平行的向量的叉乘(外積)就是兩個向量的公垂線了。所以我們定義:
這樣你就可以確定連桿座標系 軸的軸線了。最終 軸的指向你可以統一讓它們指向傳動軸。當驅動軸和傳動軸平行時也很簡單,你只需要畫一條與兩個軸都垂直且相交的向量,並且這個向量指向傳動軸就可以了。
2.3.2 x軸起始點(座標系原點)
接下來解決第二點。怎麼確定座標系 軸的起點(其實就是座標系原點)。提前說明一下,當連桿的驅動軸和傳動軸是異面直線時這個問題是不存在的,因爲異面直線的公垂線有且僅有一條,這個時候原點已經隨着 軸的確定一起確定下來了(就是 軸和 軸的交點)。
除了異面直線之外,驅動軸和傳動軸還有兩種關係,一個是平行關係,另一個是相交關係。這兩種關係下驅動軸和傳動軸的公垂線有無數條。在這個時候要如何確定座標系的原點呢?
按照DH的規則,兩個 軸之間公垂線長度代表的是抽象的連桿長度,兩個 軸的公垂線長度代表的相鄰兩個連桿之間的偏距。你在確定座標系原點時就需要考慮這些參數物理含義了。由於 軸已經全部確定了, 軸的方向也確定了,所以這個時候各個連桿的長度也就是DH參數中的 已經確定了。那麼我們在選擇 軸的起點時必須要保證經過上一個連桿 i-1 的座標系繞 軸旋轉和沿 軸平移後能讓 和 重合。當你發現經過這樣的變換不能讓和重合時說明你的連桿 i 座標系選擇的原點有問題。
上面這麼說還是太晦澀了,我們舉個例子。上面的六軸機器人連桿2的驅動軸和傳動軸平行,連桿3的驅動軸和傳動軸相交,我們就以這兩個連桿爲例來說明座標系原點的確定過程。
在這之前我們還是先把基座標系和連桿1座標系確定下來,通常基座的 軸指向機器人的正前方。因此基座標系很容易就確定下來了。連桿1的驅動軸和傳動軸是異面直線,因此連桿1的座標系 軸也可以輕鬆地根據前面提到的叉乘公式確定。這樣基座和連桿1的座標系就確定完了,如下圖所示。
接下來的連桿2和連桿3就比較特殊了。當你試圖找到 和 的公垂線時你發現又無數條。對於這種平行的連桿怎麼確定其 軸呢?其實很簡單,你的連桿 1 座標系不是已經確定好了嘛,只需要過這個座標系原點作垂線與 相交就可以了。這其實是最簡單的連桿,不要把這個問題想複雜了就好。如果不相信,你可以按照前面說的規則檢驗一下。連桿 2 的座標系確定之後如下圖所示。
接下來就是連桿3了,你會發現連桿3的驅動軸和傳動軸是相交的。連桿3的 方向是容易確定的,因爲只要驅動軸和傳動軸不平行我們就可以利用叉乘公式確定確定 軸的方向。但是同樣的,這樣的 軸有無數個,要怎麼選擇呢?你可以試一下選 和 的交點。先告訴各位這是對的。其實可以多找幾個點,你會發現無論原點選在除這個點之外的任何地方,你要麼需要在某個中間步驟向軸平移,要麼就是最終你需要在 軸方向再平移一段。這樣我們就確定了連桿3的座標系,如下圖所示。觀察後你會發現兩個座標系的原點重合,這說明連桿長度和連桿偏距都爲0,這就是此類連桿的一個特點。
後面的連桿4也是類似的,驅動軸和傳動軸相交,注意圖裏面的 很不明顯,不要把 當成 哦。叉乘後發現 向下,原點當然也是在 和 的交點。後面的連桿也都大同小異。這裏我就不一一介紹了。
最後的六軸機器人DH座標系建立完成後如下圖所示。
最後我們寫出這個機器人的DH參數表如下表所示。
連桿編號 | offset | ||||
---|---|---|---|---|---|
1 | 0 | ||||
2 | 0 | 0 | |||
3 | 0 | 0 | 0 | ||
4 | 0 | ||||
5 | 0 | 0 | |||
6 | 0 | 0 | 0 | 0 |
關於offset項是疊加在上面的偏置量,你可以理解爲機器人處於零位時,驅動軸和傳動軸依然存在夾角。
2.4 小結
前面感覺囉嗦了很多,不知道有沒有說清楚,這裏簡單總結一下:當連桿驅動軸和傳動軸是異面直線,公垂線(唯一)就是連桿的 軸;當連桿的驅動軸和傳動軸平行時,找到上一個連桿的座標系原點,向當前連桿的 軸作垂線,垂足就是當前連桿原點,垂線就是 軸;當連桿的驅動軸和傳動軸相交時,交點就是連桿座標系原點,驅動軸和傳動軸的叉乘就是 軸方向。
這一塊還是需要各位仔細去品味的,相信你經過不斷的思考和嘗試,一定可以變得通透。寫這篇博客挺費力的,作圖時間很長,但是我真的在這個過程裏受益匪淺,對DH座標系的理解也更進了一步。如果你一下子還不能完全理解,千萬彆着急,可以先放着,過幾天再看,相信一定會有新的收穫。
3. 總結
這篇文章我們主要介紹了DH座標系建立的一些技巧,下一篇文章會介紹修改DH參數以及和標準DH參數之間的差別。由於個人能力有限,所述內容難免存在疏漏,歡迎指出,歡迎討論。