好,在我們教完了 ik 這個部分,就等於說我們今天有了
T 的 6 到 0,來解除 θ1 到 θ6
之後 那我們現在要更廣義地來看這個一般的手臂問題需要怎麼解決
那在看一般的問題的時候,我們就必須更精準地定義 手臂跟我們要操作的物件間的相對關係
那我們現在就來看一下一個可能發生的場景,就是說我們今天這個手臂
它可能手臂會放在某個位置上面,所以它有一個 Base 好,那所以這個叫做 B frame。
那這個 Base 這個 frame 不一定跟 DH 的那個第 0 個 frame
會一樣,因為我們第 0 個 frame 照以前的定義都是會跟 1 基本上只差一個 θ1
的角度嘛,所以大家可以想成說我今天從這個 Base 到這個 0
可能還會有一個 空間上的移動跟轉動,那在這裡等於說這個手臂之後,這裡等於說只是在多定義了一個
手腕的 frame,那這個手腕的 frame 大家可以想成說就是基本上可能就是第六個
frame 或者第六個 frame 再往前移,取決於說我今天的這個空間是在哪裡
那基本上,因為我們知道說四五六都交點是交在這個手腕的位置 所以如果說今天手腕是再比它前面,就譬如說我們今天是一個
手臂要操作的時候,這個 frame 可能就會往前拉,就像是我們在 這個系列的影片的一開始講的那個 hand frame 一樣,是那個
H 那如果說,今天手前面又拿了一個工具,主要是工具要去做一個施工 可能我們會針對這個工具,再做一個轉換。
就等於說我們今天手臂上,如果是放不同的 工具,它就有不同的從
Tool 這個 frame 到 W 到所謂手腕這個 frame
的一個轉換式 這個定義好了之後,等於說我們手臂就可以任意地裝換不同的工具
我們就可以清楚地知道,這個相對位置的關係是什麼 那這是從手臂的角度去看我們
frame 的定義,另外是從我們需要操作的空間來看
那這個只是一個示意啦,等於說我們真實上不一定要照這個方式去定義,只是一般我們來想著說
我們假設說,今天手臂就是要操作在某個桌子上面的物件好了。
好,那等於說我們就必須要 先知道說這個桌子的 frame
的概況,那大家可以想著說,我其實需要知道的是桌子的這個 frame
相對於我的機械手臂的 Base,大概相對關係是什麼?
這樣我就可以知道說,我到底手臂伸到哪裡才可以到桌子的附近,或者說手臂到哪一個位置 才確定不會撞到桌子。
那另外就是我們今天所謂的 goal frame,就等於說我今天的目標物在這裡
我的目標上面可能會有一個 frame,那等於說我今天的 tool 要怎麼去跟這個
goal frame 去做一個對應,就是我們 手臂在規劃的時候想要做的事情,那今天這個
goal frame 一般在做設定的時候 通常是會先以相對於
Stationary frame 當成是 已知,就等於說這個東西放在桌上是一個已知的位置
那這整個的操作流程我們等一下會用一個例子來解釋,可能或許各位同學就比較清楚一點
那這個就是我們現在想要操作練習的
例子,那這個情境其實是一個我們常常會看到的一個狀況 就等於說,我們想做的事情,是把一個杯子從桌上
把它抓起來移動,掛到杯架上面,就像是這個電影所展示的
我們想要做的事情就是很單純,就是我們稱為一個物件取放的任務,那大家也知道
說,我們今天在生產線上,用機械手臂這個動作倒是非常地多,不論是我們
在包裝產線上東西包好之後,把東西拿起來放進箱子。
或者說今天在 一個 IC 產業上面,我們今天要製作一個主機板,把
IC 從它的料盒,把它在電路板上做插件的動作什麼,我們就是一直做這種取放的任務
所以這個在手臂上面的應用非常非常地多,那我們今天學完了這個 Inverse Kinematics
之後 我們想要做的,就比較像是說 假設我現在在桌上有放了一個杯子
那我想要知道說,那我的手各自要用什麼樣的角度去伸
才會讓我最後的手掌的位置能夠抓住杯子呢? 這個等於說是我們到現階段所學的內容,所能夠做的事情
那至於怎麼把杯子從現在的這個位置移動到最後的杯架上面,那個是我們的 下一個部分的課程所要教的。
所以各位同學,到現在為止,我們能夠做的就是說 我現在就是桌上有放一個杯子,我要能夠知道說 我的手臂的各個
joint 到底要呈現什麼樣的角度 才可以讓我的手的位置剛剛好能夠去抓到杯子,好,這是我們現階段的任務
那這裡等於說,為了讓能夠開始進行這樣子的運算,我們就把整個場景去做了一些
量化的一個規劃,那這裡可以看出來說,手臂的底座 到它剛剛
Z1 Z2 的這個交點,是 373
mm 好,那然後我們的手臂的原點的位置離這個
桌子的相對,這邊在右側的圖也有定義出來,它就等於說是這邊有定義
然後也有定義說,今天這個杯子,到底相對 於這個桌角,大概是什麼樣的一個關係
那這裡我這裡定義杯子相對於桌角的原因,其實也就是像剛剛講的,我們今天在生產線上
或許這個東西的位置會換來換去,那等於說,我們今天可能或許有一個相機系統
直接一看,就可以看到說今天這個杯子相對於桌子是相對關係是什麼
所以等於說,我們今天即使杯子換到不同的位置,我們只要有一個相機系統能夠抓到杯子相- 對於桌角
那我就等於說這個部分的相對就可以抓得到。
那桌角相對於機械手臂的,一般等於說在 一個生產線上是比較是不動的嘛,所以我們才刻意地把
杯子相對於機械手臂及基座的這個相對關係,把它拆成兩個部分:一個是從杯子到桌角
那一個從桌角到機械手臂 好,那我們在解這個問題的
順序,第一步當然是說,要先知道手臂的 DH
那在針對這一個圖中所顯示出來的 這個手臂的幾何就像是這裡圖中所 Show
的這樣子 那我們之前有教過說,我們的 Z frame,就是說我們的
Z0 跟 Z1 都在垂直的方向嘛,然後 Z0 Z1 是插在一個 θ1 的轉角
那 Z2 跟 Z3 基本上是側向的轉軸,然後四五六就是在最後面
那這裡等於說只是示意畫出四跟六在這裡,那五是在 再往裡面的方向上面,那基本上四五六都還是交在同一個點上面
那我們這個手臂等於說這個幾何是這樣之後,我們就可以把它的 DH table 找出來,那我這裡就列在左下角。
那 DH Table 的詳細的數字,我就不再去解釋說它為什麼是這一個,因為這個是
上一個單元的內容,那各位同學稍微停一下,去看一下這個
數字跟這個幾何的一個定義,應該就可以了解 那由於這個是一個 6R
的手臂,所以這裡 θ1 到 θ6 是未知數,其他的就變成 α、 A 跟
D,就都是參數 這是我們的第一步,那第二步
就是我們要首先要知道說,我們的這個物件 相對於世界座標上,到底它的相對關係是什麼?
那這個部分,就是像我剛剛講的,我們要找到 C
對 W frame,我們的 C 是指是 Cup,就是這個杯子的
frame,要找到對世界座標的話 我們的操作方式,就像是剛剛講的,我們要從
Cup frame 轉到桌子的 frame,好這裡有一個
Desk frame,然後再轉到 Wall frame,那 Wall frame 我們就等於說就很簡單地定義在機械手臂的基座上面
那我們在這樣定義之下,我們就知道說 我們的
transformation 的 C 到 W,可以把它拆解成兩段:就等於說從 C 到
D 就是由杯子相對於桌子,去乘上
D 對 W,就是從桌子相對於世界座標
那這兩個等於說單純都是移動的關係,各位同學可以看到說今天這個 從上視圖看下去,我的
Wall frame 的 XY 的方向 跟 Desk frame 的 XY 的方向,跟
Cup frame 的 來看的話,都是 XY,那從 Wall
到 Desk 方向都一樣,只是有位移 所以各位同學看到說,我的在
T 的 D 到 W 這個旋轉矩陣就是變成是單位矩陣 那它但是有 XYZ
的位移,所以就橫移了 830 上移了 20 ,然後在
Z 軸方向 移動了 330,所以這是 T 的 D 對 W。
那 T 的 C 對 D 就等於說,我今天的這個 cup frame 相對於這個桌子,因為我們是
刻意讓這個杯子的把,有一個轉角,這樣夾起來比較特別 所以等於說,我們知道說今天
cup frame 相對於 desk frame 它就有移動跟轉動,那它的
移動當然就是一個負的 280 和一個正的
250 吧 那因爲桌子的 frame 比較低,它的 frame
我們特別把它往上 移,希望說它的原點就在這個杯子的重心的位置左右
那也希望說手去夾住它這個原點的位置,所以我們今天 cup frame 它本身有一個
高度,所以我們再往上會動一點,動一個 62.5
的高度 那這個轉動的部分其實單純就是沿著 Z 軸的轉動 35
度嘛,所以就等於說基本上就是像這個圖中所 寫的這個數字,cos
sin 跟 -sin cos 藉由這個方式,我們其實就可以把
T 的 C 對 W 就算出來了,因爲這全都是數字,都沒有未知數
所以間接代表說,我們藉由這些定義 就可以找到我的
cup,相對于我的 world frame 的 transformation matrix 是什麽
那也如同剛剛講的,今天在這個設計之下 我如果今天有一個影像系統,那今天如果說杯子放在不同的位置
我可以就直接藉由影像系統的判別,來找到新的 C
對 D 那等於說就是隨時在不同的位置放的杯子,都有辦法去抓到它的
C 對 D 那 D 對 W 是不動的,就一樣都可以找出我們的 C 對 W
所以這個是我們的第一步,找到 C 對 W 那今天這個
C 對 W,我們的 cup,等於說間接我們也希望說我們的手動到這個位置嘛
所以間接也希望說,代表說我的手的末端也希望是伸到這個位置
所以等於說就像是這個圖中所示的,我今天手要能夠夾到這個杯子 我就希望說,手臂的那個
frame 的最後,或者說以手心來看的話 它要跟我們剛剛 cup
所定義的 frame 要重合,那這樣的話就等於說我們今天 我們的
cup 對 world 的這個 frame,也可以經過手臂來形成一個 transformation
matrix 的連乘 就等於說,我今天是從 cup 到第6個 frame
經過手臂的第6個 frame 到第0個 frame,再從 手臂的第0個
frame,再拉到 world frame,那今天這裡面 6 到
0 的這個轉換是未知的嘛,因爲它裡面有 θ1 到 θ6
的一個函數 剩下的藍色的部分都是已知,對不對,因爲我們今天
C 對 W 轉換,剛剛在前頁已經算完,已經知道它是什麽
那手臂我們也知道說,它的 0 到 world 要怎麽轉換
那今天,因爲我們是手已經抓住了這個杯子,所以這個杯子的 frame 到 6
的 frame 的轉換 我們也知道,所以等於說今天就可以來間接來反算出我們的
T 的 6 對 0 是什麽 那今天的 0 對 W,等於說對 world 這個 frame
的轉換我們只是一個高度的 上下,所以我們知道說它的旋轉矩陣就基本上是單位旋轉單位矩陣
那我們的移動的部分,就只有一個 Z 方向的上移跟下移 那我們的
cup 的方向的這邊,我們也知道說 它基本上是一個沿著這個本來
6 的方向的前移,所以等於說我們今天 frame 就往前拉了
206,就可以到達這個 cup 的 frame,但是我們今天 6 的 frame
跟 cup 的 frame 的方向有重新做一個 變動,我們本來在 6 的 frame 上面,因爲
Z 是往前的方向,因爲那個是它轉軸的方向,但是我們的 cup frame 定義的 Z 是向上嘛,這符合我們一般
cartesian 在空間中的一個定義方式,所以我們知道說我們的的旋轉矩陣要可能轉個
90 度的倍數去做一個轉換,所以各位同學也看到說今天
這個旋轉矩陣裡面就很乾净的只有 1 跟 -1,基本上就是 90
度跟 270 度之類的一個轉動 那好,我們今天這樣子推導完之後
我們可以藉由一個 inverse 的算法,就可以把等於說把 T 的 0 到
ω 跟 T 的 C 到 6 搬到另外一側,等於說在 未知的 6 到
0 就單獨被拉出來 那剩下的等於說是這幾個矩陣的連乘,那連乘之後
我們可以得到一個這樣子的一個矩陣,就等於說我的 6 到 0
必須要具有下面的這些數字的變動,才有辦法讓我的手 伸到杯子旁邊,去夾住杯子
那這個也是等於說是我們的已知條件,要來解出 θ1 到
θ6,我們有了是這個矩陣 那這個矩陣我們也可以把它拆開來存
移動跟轉動,就等於說這 6 到 0 是長這樣 那 P 的 6
到 0 的原點基本上就是後面的第四個 column,那接下來
步驟就像是我們剛剛舉的例子一樣,就等於說我 P 的 6 的原點對
0 基本上跟 P 的 4 的原點對 0 是一樣的,那我就可以開始照著剛剛的移動跟
轉動的那些程序,把這些角度都解出來 我們首先來跟剛剛一樣,先來看 θ1
2 3 的求解 那如同剛剛所説的,剛剛 P 的 6 對
0 事實上就是可以把它 漸漸拆解成像這樣子的一個形式,那我們就可以開始藉由這個設定,慢慢地把
這個坐標,開始把 3 2 1 的角度拉進來。
那我們這個原點的位置剛剛是 已知的嘛,我們 4 對 3
等於說這個是一個我們幾何上面的參數,在 DhTable 知道之後,這個就知道了
那我們這個知道之後,我們再把它乘,再乘上 T
的 3 對 2 之後,就可以把 θ3 放進來,最後會得到一個向量,長得像這樣子
接下來我們再算 g 的時候就等於說就把剛剛的
f 再把 T 的 2 對 1 也放進來,T 的 2 對 1 裡面就是有 θ2
的 函數會跑進來,所以這相乘之後,就可以把 g
也算出來了 那這裡可以看出來說,的確我的 cos
sin 就是有 2 跟 3,就代表說我的 g 本身是 θ2 跟 θ3
的函數 計算出來之後,就如同剛剛的架構,我可以分別去找
r 跟 z 那匯整之後,的確在這個 r 跟 z
的架構下面就把 cos sin 的 1 先消掉,我們可以單純地來看
cos sin 的 2 跟 3,3 的話會藏在 k 裡面 那 2
的話就在這裡被單獨地拉出來,是有 cos sin 的一個對稱的一個形式
那我們就知道說在這個架構之下,我們由於 a 跟
α 都有一些值,所以我們必須用最後的第三個公式來計算
角度,那我們這個式子出來之後,我們這個式子本身只是 θ3
的函數,所以等於說我們可以先解出 θ3 那接下來用剛剛講的 r
的式子解出 θ2 再用 x 的式子解出 θ1
那等於說這三個式子做完之後,我們就把 θ 的角度都算出來了,1
2 3 那 1 2 3 算完之後,我們就可以來對 4 5
6 去做求解 那也一樣,我們今天會有一個 R 的 0
到 3,3 到 0 的轉換,等於說我們今天 θ1 2 3 都知道之後,3
到 0 就會知道,3 到 0 知道之後,我們就可以把
6 對 3 的旋轉矩陣 拉出來,就等於說這裡面隱藏著 4
5 6 的角度,那接下來可以照著之前講的 Z-Y-Z Euler
angle 的方式就可以把剩下的三個角度 就都算出來了。
那等於說這個算出來之後
我們就知道說我們今天如果桌上有一個杯子在一個特定的位置,我就知道如何把手臂
以對的角度,確認說我的手就能夠伸到那個杯子的旁邊以進行抓起來的動作
那在後續的課程裡面,我們還再會教各位同學說,我們抓起來之後要怎麽規劃那段軌跡
讓我的杯子可以挂到杯架上面。
那在現在的這一步我們至少可以知道說我的手 要能夠夾住杯子該以什麽樣的 θ 角度才能夠運作
[音樂] [音樂]
[音樂]
[音樂]