好,我們現在就來帶入幾個例題,把剛剛所教的東西的整個程序給它跑一邊
那我們第一個例題就是我們這一次上課一開始講的那個,我們假設說有一個平面的手臂
這裡有,等於說桿件有三個,有三截 那我這裡已經畫出來說它本身有三個轉動的自由度
就是這個紫色的箭頭,是旋轉的就是三個旋轉,它在平面上面 那我們現在要開始去找出這個手臂它的那個
幾何參數的表達法,那我們就依據我們 剛剛講的那個順序,開始一樣一樣地定義上來
我們的第一個就知道說,好,我們今天這裡的三個轉動在這裡 代表說它的三個轉軸就是我上面標出來的三個紅點
那事實上它本身應該是三個向量了,那向量是 出紙面的方向,所以它等於說這個轉軸的
這個轉,就是逆時針是正,所以那個向量是出紙面的方向 我們先定義的這三個轉軸都找到了。
那下一步就是 像剛剛找到的轉軸跟轉軸中間的那個向量要找到
我們知道說,好那這個向量就是這個圖中所畫的咖啡色的位置
那因為我們知道說今天在這兩個轉軸,這三個轉軸都是互相平行
所以它等於說中間的線段其實有無限多個位置,那因為我們是平面的
機構,所以它等於說即使空間中是上下,我們當成是平面,所以我們就不管它 所以說等於說就是圖中所畫的,我們就直接畫在這個紙面上面。
所以這個 兩個線段,就是這個咖啡色是這樣子 那下一步就要定義我們的
Z 那剛剛有講過說我們 Z 的方向就是跟轉軸的方向是一樣的
所以我們的 Z1 就是從圖中的這個紙上的這個點 往上指。
Z2 就是圖中這個紅點 一樣是出紙面的方向指。
Z3 這個紅點,出紙面的方向 有了 Z 之後,我們知道我們的 X 是從
Zi-1 的轉軸指向 Zi 轉軸的方向 所以我們就可以知道說,我們的 X1
就是圖中所畫的,從 Z1 指到 Z2 X2 就是從 Z2 指向
Z3,這是在中間的部分 那我們這時候還有頭尾要處理。
那我們先把這個剛剛的中間這兩個的 Y 先補上來 好了,我們再來處理頭尾。
那 Y 我們知道說,Z 是出紙的方向,X 在這裡,所以 Y 是向上,所以這個應該
各位同學在這個平面上的模型就可以看得比較清楚。
那我們來看一下頭尾 那我們剛剛有講過說,我們頭的方向,我們假設第
0 桿就這個頭,就一開始的這個頭的方向 我們可以把它設計成跟第一個
frame 完全 重合,那重合的時候等於說我們是 θ 角當成 0
的時候 所以等於說我這裡如果是圖中這樣畫,我如果畫成在這個方向上面
我們等下 θ1 的角度就是 X0 跟 X1 的夾角
這樣才會說我們今天當 θ1 等於 0 的時候,我們的 X1 會跑到 X0 的這個位置。
所以我的 X0、 Y0 是這樣子畫。
那 X0、 Y0 這樣畫之後代表我們的 Z0 也是跟 Z1 是在同樣的方向上面
那我們的最後一個桿件也一樣,我們最後一個桿件等於說我設定 X3
的時候 是希望說,我的 X3 一指的時候跟 X2 是重合的
那它重合的時候代表說我的 θ3 是 0 度的時候,所以等於說也是這個桿件的方向 所以我就先這樣子畫起來。
那畫起來之後,角度就像是剛剛講的,誒,我今天 θ1 是這樣定義 θ2 是這樣定義,θ3 是這樣定義。
那在這樣子的定義之下,我的當 θ3 等於 0 的時候,我的 X3 跟 X2 是重合。
當 θ1 等於 0 的時候,我的 X1 跟 X0 是重合的。
就跟我們剛剛本來想做的事情 的那個定義方式是一樣的。
那有了這幾個之後,我們其實就已經 可以把我們的所謂的那個參數表建出來
我們一般叫這個叫做 D-H table 嘛,就是由兩個人所共同發明的這個參數表
就等於說我們在這一題裡面,因為我們所有的 Z 方向都是互相平行
沒有像剛剛講的空間中的轉軸會錯開來,都是平行 所以我們所有的 α 都是 0。
那從第一軸到第二軸它有一個位移量,所以就等於說我們的 a 是有
我們的 d0 到 d1 是重合的,所以我們的第一個值這個 a0 是 0
那 d1 到 d2 它有一個平移量是長度 L1,所以等於說就是
我們的 a1 ,我們的 a1 就會是等於 L1
那第二軸到第三軸也是一個平移量,所以我們的 a2 就會是 L2
那由於我們是平面的 機構,所以我們知道說我們今天所有的咖啡色線中間都在
同一個平面上面,它沒有上下錯開來,所以所有的 d 就統統都是 0
那今天三個轉軸都是旋轉的,三個那個 axes 都是旋轉的,所以 θ1、
θ2、 θ3 就是我們整個系統裡面主要馬達在驅動的這三個關節。
所以這個 table 下面總共 12 個參數裡面 三個是驅動,剩下的九個其實都是固定的。
那在這九個固定的裡面 其實有 7 個是 0 ,只有兩個是有值的
所以大家也可以想像說,今天如果真正,我們找到那個 transformation matrix 的時候其實大部分都會是
0 ,所以矩陣本身會蠻簡潔的 好,那我們再來看
最後還有一個就是說,我們今天在這個定義方式的時候,我們的 P
點 假設我們真正在意的是這個 P 點,那 P 點可能就是,我們的圖中來看等於說這比較像是 我們夾爪要抓東西的位置。
那我們有時候會需要知道這個 P 點
相對於我們前面這個坐標系的關係,我們才有辦法知道說這個 P
點到底對 D 桿是在哪裡 那從這個幾何上的參數的定義,我們就會知道說我們的
P 點 在第三個 frame 下面來看的話,它的坐標是 {L3,0,0} 嘛,就等於說它是沿著
沿著 X3 的方向,往前移動了 L3 的距離,那 Y 跟 Z 都是
0 所以這個等於說間接也代表說,我這裡寫了一個 P3 之後,我如果想要知道
P 點對 d 的關係,等於說我想要的是一個 P0 這樣就可以知道說手臂的末端點到底對
d 的關係是什麼 那從我們剛剛學過的技巧,如果我們找到了一個 T3 對
0 ,我們事實上就有把 P 點 在第三個 frame 的表達法換到 P 點在
d frame 上的表達法 所以這個就是我們剛剛想做的事情。
那我們再來看下一個例子 那這個例子就是,比較像是一個在空間中會動作的一個手臂
那這個手臂它一樣是三個自由度
我們會先第一個自由度是一個旋轉,所以是在這裡畫出來的下面這個,會有一個旋轉 第二個自由度是一個移動,所以它是 P
,對不對?我們是 RPR 嘛,第一個是旋轉 第二個是移動,第三個再一個旋轉
所以等於說今天本身這個手臂的三個自由度就像是這個圖中所畫的這樣子 那一樣,我們要先找到轉軸的方向。
第一個是這樣轉,所以等於說是向上的 那第二個是左右的移動,所以我們知道說它的轉軸就是左右方向
第三個是對著這個桿件的這個方向去做轉動,所以等於說
我們第三軸的方向,轉軸的方向也跟第二軸的方向是在同一個方向上面
那我們有了這三個轉軸之後
我們來開始找它們就是剛剛講的,就是那個跟轉軸都垂直的那個線段
那這個圖就出現了我們剛剛所講的 第一軸的轉軸跟第二軸的轉軸,它本身是碰在一起的
所以等於說它中間不是一個線段,它是交在一個點上,就是這個圖中所畫的這個點
那第二個轉軸跟第三個轉軸本身也是重合的,所以其實它也沒有 沒有線段,它本身就是一模一樣。
所以我們這裡等於說只是畫一個點來稍微標示一下 那我們接下來開始,接下來有了這些線段,在這裡都是點之後
我們就來開始建立我們的 Z 的坐標 那 Z 其實就像剛剛講的,都是我們本身轉軸的方向,Z1 朝上、 Z2 朝右、 Z3 朝右。
這個應該沒有爭議 那接下來是 X 的方向
那我們剛剛就想說,我們今天講過 Z1、 Z2
都 碰在一起的時候,我們選的 X 方向基本上都挑跟 Z1 跟 Z2 都垂直的 那我們現在就先暫時定一個往後。
那這其實有很多個挑法嘛,因為等於說你可以知道說往後可以 往前也可以。
我們等一下會再多做一點討論。
那這裡我們就先任意地選一個,我們就選擇它是往後 那今天
2 跟 3 本身 它也都在同一個方向上面,所以我們的
2 就直接選擇往後 等於說它是選擇跟我們 1 的方向是一樣,這樣等於說在運算上面會比較簡單一點
那有了 Z 跟 X 之後,我們的 Y 就可以補上去。
那基本上 Y 補上去都是符合右手定則。
所以是 X1、 Y1 這樣 cross 之後,Z 朝上 X2、 Y2 這樣 cross 之後,Z 朝右。
那接下來就要補 D 桿的方向 那 D 桿就像剛剛講的,我們今天就是選擇 θ1
等於 0 的時候 的那個姿態,就是我們 D 桿的位置。
所以我在這裡 Z0 Y0 跟 X0 就畫在這個位置。
那 X 因為太擠了,我這裡就不放 最後一桿,就等於說也是一樣,就等於說就
選擇它角度是0的時候,所以等於說我們任意選一個
X3跟Y3,我們偏移了一個距離,因為這裡有一個長度的條件,那其他在姿態上面,我們的- 選擇是一樣的角度
那這裡就把最後的 三個在驅動的關節標上去,θ1是這個方向的
然後d2是這個方向,那θ3是這個方向轉,因爲我們是從Z來看,所以是
這個方向是逆時針,那有了這些定義之後 我們就跟剛剛一樣,可以把我們的DH
table整個找出來 好,那今天我們第一軸跟第二軸中間,我們已經有了一個
90度的轉角,所以我們知道我們的中間這個數字會有一個90度 那它的90度必須要從
X1來看,從Ẑ1 到Ẑ2的夾角是從X1 來看,所以我們知道說這是一個,從X1來看是一個逆時針的90度
從Ẑ1轉到Ẑ2,所以就等於說我們這個90度就是正的值 那剛剛還知道說我們Ẑ1,Ẑ2,Ẑ3互相都
有碰在一起,就是沒有一個中間的一個距離,所以等於說我們的a的部分
就通通都會是0,那我們這裡在d的部分,它開始有一些位移,我這裡可以看到說
我們它有一個位移,所以等於說我們的d
我們d的部分,d2跟L2它也延伸在坐標軸上,它就會有一個平移上去
那最後θ,就是我們剛剛的驅動,那這一題比較不一樣的是說,這一題有兩個轉動,一個移動
所以我們真正的驅動關節是θ1,d2跟θ3
就是用這個方式去把它描述出來,好
那這裡一樣,跟剛剛一樣,我們可能在意的還是手臂夾爪的位置
所以這裡也跟剛剛一樣,有一個P點,那這裡有一個L3的距離 那L3距離可以代表說我今天從frame
3來看的話,我這個P點到底在哪裡 那依據我們剛剛的方式,我們只要把P點的那個坐標找到
那在這裡跟剛剛不一樣就是說這裡的P點反而是在L3,是在Ẑ的方向上面 所以P在第三個frame看就是{0,0,L3}
那我們今天建立了這個table之後,我們其實心裡就預期說,我們可以找到T的3對0
所以等於說我們再把這個P3乘上T的3對0之後
我們的確就可以找到P0,就等於說這個末端點對d 在d的這個frame下面來看,它到底在哪一個角度上面
好,那我們剛剛就那個例題就遇到了 我們a是等於0的時候,就等於說我們今天
Ẑ軸之間是有相交的,那我們現在發現說Ẑ軸相交的時候,其實我們有很多個定義方式
就像是這兒,這裡來說好了,我們這裡 Ẑ1
跟Ẑ2相交,我們Ẑ2其實 是有兩個方向的嘛,我們的這個轉軸並沒有說它要朝這邊
它可以朝右,也可以朝左,對不對?等於說我們Ẑ1假設都是 向上的時候,我們Ẑ2相對Ẑ1,我們可以朝右指
也可以朝左指,我們這時候Ẑ2就有兩個選擇
那我們在X方面,因為Ẑ1跟
Ẑ2之後,就會定義了一個X,但是同樣的Ẑ1跟Ẑ2,我們的X一樣有兩個選擇
所以我們今天如果比較左右的話,比較左我們是在 比較像是在比較說我Ẑ1固定的時候,Ẑ2有兩個選擇
對不對?那比較上下的時候,就比較像是說 我的Ẑ1,Ẑ2都固定的時候,我的X有兩個選擇
所以我們今天可以看到說,我們單純地Ẑ1跟Ẑ2相交 我們事實上就有四種不同的排列組合
所以等於說我們今天在一個簡單的兩軸之間的相交,我們其實的選擇就已經有四種
這一次我剛剛說我們其實我們在選X的方向,我們說我們是用選的,那個並不是唯一解
那各位同學挑一個,覺得那個是對的X方向 或者說你們今天那個手臂本身的驅動,它有一個特定的轉向是正的時候
利用這個方式來找到適合的Ẑ跟X的方向會比較簡單。