目錄
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參數是一種描述連杆坐标系的方法,如下圖所示。可以認為這是機器人中的兩個相鄰連杆
和
。在這裡我首先還是希望解釋一下圖中符号的含義,特别是下标含義,我學習的時候經常弄混。
圖1. DH 參數
首先我們來定義兩個概念,驅動關節和傳動關節,這兩個概念很容易了解。我們都知道對于電驅動的機器人,各個關節處通常都會有伺服電機驅動。在一個串聯機器人中連杆i靠近基座的關節驅動連杆i的運動,稱為連杆i的驅動關節; 連杆i靠近末端執行器的關節用于驅動連杆i+1的運動,是以我們稱這個關節為連杆i的傳動關節。DH參數建立的坐标系又被稱為傳動軸坐标系。這裡需要強調連杆i的坐标系是建立在傳動關節也就是靠近末端執行器一側的關節處,也就是說坐标系
(簡稱
)是與
固連在一起的,坐标系
是與
固連在一起的,在後面的介紹中請各位一定牢記,否則你會覺得整個坐标系變換都很奇怪。
對應的是
的驅動軸;
對應的是
的傳動軸以及
的驅動軸;
對應的是
的傳動軸...
标志右斜杠的兩對直線圈1和圈2分别是兩對平行直線。圖中的
、
、
、
就是我們要介紹的
的DH參數。
3.2 DH參數定義
要說DH參數為何如此受青睐我覺得主要有兩個原因。第一就是DH參數描述一個連杆坐标系隻需要4個參數; 第二這四個參數具備明顯的實體意義:
- 代表坐标系 和坐标系 之間 軸的夾角,也就是 旋轉的角度(這不就是關節i電機旋轉的角度嗎)
- 代表坐标系 想對于坐标系 在 軸方向的偏移量
- 代表 的驅動軸和傳動軸之間的夾角
- 代表 的數學意義上的長度
從上面的描述我們可以看出1和2是描述的是
和
之間的關系,3和4描述的是
的固有屬性(因為它們隻和
有關)。是以要說清楚DH參數,這兩組不同含義的參數還是分開來看。
3.2.1 連杆長度和扭角
我們先從
和
的定義開始,因為這兩個參數比較直覺。下圖就是連杆固有參數
和
的示意圖。再次強調連杆長度和扭角是連杆自身的固有屬性,與其他連杆沒有任何關系。
圖2. 連杆固有屬性
無論這個連杆有多麼的複雜,我們都可以對它進行一種統一的描述:兩根關節軸線(
和
)以及他們的公垂線(圈1)是對一個連杆最簡單的抽象。這裡可能需要一點點空間幾何的知識,異面直線有且僅有一條公垂線。
在這裡我們定義
和
的公垂線圈1的長度為連杆長度
,這就是四個DH參數中的第一個參數。
定義
和
兩條異面直線的夾角為連杆的關節扭角
,圖中雙右斜杠對應的兩條直線平行,這是DH參數中的第二個參數。
3.2.2 連杆轉角和連杆偏距
接下來我們來看連杆轉角
和連杆偏距
的定義。這兩個參數描述的是一種位置關系。再次強調它們描述的是相鄰兩個連杆之間的位置關系,不再是連杆的固有屬性。就這裡來說
和
描述的是
相對于
的位置關系。
請在回到圖1中觀察,
和
分别是與
和
固連的坐标系。根據我們的定義
的
軸建在
和
的公垂線上,
的
軸建在
和
的公垂線上。仔細體會一下這說明了什麼。這說明
的
軸和
的
軸都垂直于
,也就是
是異面直線
和
的公垂線。
圖1中單右斜杠對應的兩條直線平行,那麼
對應的就是直線
和
的夾角。是以我們定義
和
的
軸夾角為連杆轉角
。
我們發現
沿
(即
的
軸)旋轉
後
和
的
軸平行了!我們定義
和
的
軸之間的公垂線長度為連杆偏距
。
我們發現
沿着
旋轉
,再沿着新坐标系的
軸(其實還是
,因為前面的旋轉是繞着
軸的,是以
軸方向不會改變)平移
,之後你會發現新的坐标系和
的
軸已經完全重合了!!
更進一步,再将新坐标系沿着其
軸旋轉
角,我們發現新坐标系和
不僅
軸重合,而且
軸平行了!!!那麼如果再沿着
軸平移
呢?沒錯兩個坐标系這時候完全重合!!!!
以上描述的過程用數學語言表達就是:
這個變換矩陣可以将
中的點映射到
!有一點需要注意沿同一軸連續的平移和旋轉是可以交換位置的,這一點大家從幾何的角度思考一下就不難發現,是以沿
的平移和旋轉可交換,沿
軸的平移和旋轉可交換。
4. 解決問題
到這裡我們終于可以解決前面提到的關于機器人末端點在基坐标系下的坐标的問題了。方法很簡單,就是在每個連杆上都建立一個坐标系,然後用前面提到的變換關系找到相鄰連杆之間的變換關系,這樣問題就迎刃而解了。如下圖所示就是在SCARA機器人的各個連杆上建立的坐标系,為了便于觀察添加了一些輔助線。
在利用DH參數進行機器人正運動學分析時我們習慣上列寫DH參數表。有了參數表後我們就已經從機器人中抽象出了數學模型。有人說高手眼中沒有機器人,隻有坐标系大概就是這種感覺吧。我們把這個機器人的參數列成如下的表格。(依然請各位牢記DH參數中
代表兩個
軸夾角,
代表兩個
軸的公垂線長度,
代表兩個
軸夾角,
代表兩個
軸的公垂線長度)
DH參數表到這裡就算是建立完成了,SCARA機器人第三軸是平移關節,DH參數表中的變量為
,
,
,
,其餘參數均為固定值。還記得我們在3.2.2介紹的變換關系嗎?每相鄰兩個連杆之間的關系都可以用這個變換加以描述。是以我們可以找到:
我們要求的P點是不是就是坐标系{4}的原點呢?它在基坐标系下如下表示呢?很簡單把所有變換疊乘就可以了:
是以當我們測量到DH參數中各個變量的值以及已知機器人的結構參數時,隻需要代入到上面的方程中,就可以求解末端點P在基坐标系下的坐标。
5. 總結
這篇文章我們介紹了DH參數以及其實體意義,有些特殊的連杆如何建立坐标系沒有進行相關介紹,比如連杆兩個軸線平行/相交時如何建立坐标系。建立DH坐标系有哪些小技巧,這些我們将在下一篇文章進行讨論。由于個人能力有限,所述内容難免存在疏漏,歡迎指出,歡迎讨論。
下一篇:8. 機器人正運動學---DH坐标系建立技巧