2020年12月13日 星期日

[自動化工程]座標系統_閒聊齊次轉換矩陣HTM_part1

 其實寫網誌是一種治療語言癌的療程...



什麼是齊次轉換矩陣 (Homogenous Tranformation Matrix , HTM) 


前篇提到座標系統裡有著"坐標系轉換"元素,用於串接坐標系間的資訊變換,而齊次轉換矩陣就是"坐標系轉換"的具現化 - 一個可被運算的特殊結構矩陣;(以下簡稱HTM) 


用HTM處理坐標系轉換有什麼好處? 


HTM精妙的點在於以一個矩陣同時裝載卡式坐標系中三種轉換性質繞軸旋轉、原點平移,這也是為何他被冠上齊次(Homogenous)的抬頭。

我們用原生做法來襯托HTM的簡潔:在不使用前,處理繞軸旋轉、原點平移時,按變換順序計算轉換的話如此表達:
$$ \vec{P_j} = R\vec{P_i} + T $$ 
以上用了兩個元素、兩次運算達成結果:$\vec{P_i}$相乘旋轉$R$後加上平移$T$,由於每次座標轉換都要通過這幾項固定運算,我們能否將上面運算整併成一個固定流程?通過一關就得到結果?  答案當然是可以 $$ \begin{bmatrix} \vec{P_j}\\ 1 \end{bmatrix} = \begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} \begin{bmatrix} \vec{P_i}\\ 1 \end{bmatrix} = \begin{bmatrix} R\vec{P_j} + T \\ 0\vec{P_j}+1  \end{bmatrix} = \begin{bmatrix} R\vec{P_j} + T \\ 1 \end{bmatrix}$$  
上式運算展開後與原生做法等價。
在多增設一個冗餘維度:零向量$0$,和右下角常數$1$後,便可用一個矩陣漂亮跨接兩坐標系, 在此情境下的所有位置向量會多一個固定元素1;運算模式就可以直接用矩陣與向量相乘表示啦!(撒花)
既然座標系轉換可用單一矩陣運算表達,自然此應用可置入“線性代數”框架,可透過各個已被證明的矩陣性質來輔助處理相關問題了。

 

HTM連續座標轉換(矩陣相乘)

假設今天需要做兩次座標轉換:從${i}$轉換到${j}$,再從${j}$轉換到${k}$該做如何表示?首先先用關係寫出來:

$$\vec{P_k}=T^j_kT^i_j\vec{P_i} $$

把座標轉換$T$都代換成HTM,並把R相乘,連續座標轉換後,等價於來源與目標直接轉換,與座標轉換關係一致:

$$\vec{P_k} \\ = {\begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} }_k^j {\begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} }_j^i \vec{P_i} \\ = {\begin{bmatrix} R^j_kR^i_j & R^j_kT^i_j + T^j_k\\ 0 & 1 \end{bmatrix} } \vec{P_i} \\ = {{\begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} }}^i_k \vec{P_i}$$

由於旋轉$R$是正交矩陣(orthogonal matrix),相乘以後,$R^j_kR^i_j$仍是正交矩陣,因此可以知道HTM彼此相乘後,形式上仍然是HTM。

 

HTM逆座標轉換? 


  • HTM必須是可逆的,因為逆座標轉換與座標轉換相乘後必須回到原座標系,因此HTM與逆HTM相乘後等於$I$: $$ I={\begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} }^{-1} {\begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} } $$


  • 拼湊一下便得出逆轉換矩陣形式囉: $$ {\begin{bmatrix} R & T\\ 0 & 1 \end{bmatrix} }^{-1} = {\begin{bmatrix} R^{-1} & -R^{-1}T\\ 0 & 1 \end{bmatrix} } $$


  • 同樣地,逆轉後的$R^{-1}$是正交矩陣,因此逆HTM仍然是一種HTM,沒跳出HTM所統治的領域啊!!!就是我大偉哉HTM



後記1:記得縮放S是可以整合在HTM內的,還需要找資料
    後記2:LATEX怎麼讓等號對齊啊

    沒有留言:

    張貼留言