剛性轉換和齊次轉換矩陣
點的剛性轉換
如果你想將旋轉和平移結合在一起,你就可以得到所謂的剛性轉換。這樣的轉換可以用下面的方程來描述:
(1)
對於多次轉換,這樣的方程很快就會變得令人困擾,就像下面的兩個轉換:
一個更加明了的選擇就是使用所謂的齊次轉換矩陣和對應的齊次向量。一個齊次轉換矩陣H包含了旋轉矩陣和平移向量。例如式(1)的剛性轉換可以被重寫如下:
當處理剛性轉換序列時,這種記法的用處就變得更加明顯,其可以用一個齊次轉換矩陣鏈來表示,類似於旋轉鏈,如下式所示:
就像旋轉鏈所描述的那樣,剛性轉換鏈可以從兩個方向被讀取。當從左向右讀取時,轉換時繞著新軸來執行的,當從右向左讀取時,其實繞著舊軸來執行的。
事實上,一個剛性轉換已經是一個鏈了,因為其實由平移和旋轉組成的:
如果旋轉是由多次繞軸旋轉組成的,則單獨的旋轉也可以被寫成如下的齊次轉換矩陣:
從右向左讀這條鏈,你可以遵循點的轉換:首先,其繞著z軸旋轉,然後繞著(舊)y軸旋轉,最後其被平移。
坐標系統的剛性轉換
坐標系統的剛性轉換與單獨平移和旋轉所描述的工作方向一樣。這就意味著齊次轉換矩陣描述了從坐標系統c1到坐標系統c5的轉換。與此同時,其描述了坐標系統c5相對於坐標系統c1的位置和方向:它的列向量包含了坐標軸向量和原點的坐標:
如已經在旋轉中提到的一樣,坐標系統的剛性轉換鏈通常也是從左到右讀取的。進而,上面的鏈可以按這樣的方式來讀:首先平移坐標系統,然後繞著新的y軸旋轉它,最後繞著其最新的z軸旋轉它。
坐標轉換
如對單獨平移和旋轉的描述,對於從一個剛性轉換坐標系統c5轉換一個點坐標到原始坐標系統c1,你可以應用被應用到坐標系統c5的點相同的轉換,例如你將點坐標同齊次轉換矩陣相乘:
典型的,如果沒有任何困擾的危險,你可以省去齊次向量,簡單寫成:
總結
l剛性轉換由一個旋轉和平移組成,它們可以用一個齊次轉換矩陣明了的描述,其包含了旋轉矩陣和平移向量。
l點的轉換,是通過將它們的坐標向量同齊次轉換矩陣相乘。
l如果你想轉換一個坐標系統,齊次轉換矩陣描述了坐標系統最後的位置和方向:矩陣的列向量對應坐標系統原點和軸向量在原始坐標系統的坐標,這樣,你可以說齊次轉換矩陣是一個坐標系統的位置和方向
l為了將一個點從剛性轉換的坐標系統c1轉換到原始坐標系統c1,,你可以應用被應用到坐標系統點相同的轉換,例如你可以將它們的坐標同被用來轉換坐標系統c1到c5的齊次轉換矩陣相乘。
l多個剛性轉換可以用一個轉換矩陣鏈來描述,其可以從兩個方向來讀取。當從左到右讀取時,旋轉是繞著新軸被執行的;當從右到左讀取時,轉換則是繞著舊軸被執行的。