空間數學與剛體運動

齊次變換矩陣

齊次變換矩陣是一張 4x4 的數字方陣,它一手抓住了「一個參考系如何關聯到另一個參考系」的全部資訊:既包括它是怎麼轉動的,也包括它在空間裡平移了多少。一個參考系無非是一組約定好的座標軸加一個原點,比如「桌子的那個角」或者「機器人的手腕」。這個變換把旋轉部分(第二個參考系相對第一個扭轉的方向)和平移部分(它的原點離得多遠)打包進同一個整潔的對象裡。把一個點的座標餵進這張矩陣,它就會以另一個參考系來表示重新冒出來,彷彿你把這個點從一個視角搬到了另一個視角。

把旋轉和平移一起塞進一張 4x4,正是「齊次」這個詞所指的巧妙手法。單論旋轉,可以用乘法完成;可一旦要加上平移,通常還得另做一步加法。通過多添一行、並把位置看成帶有一個「幽靈第四座標」一,這張矩陣就能讓一次乘法同時把兩件事都辦了。真正的好處在於鏈式相乘:如果你知道從桌子到機器人底座、從底座到手臂、再從手臂到夾爪各自的變換,只要把這三張矩陣按順序乘起來,就能得到從桌子徑直到夾爪的變換。機器人正是這樣,一路穿過每個關節,算出自己的手在世界裡的位置。

數學家把所有這些有效的剛體變換的集合稱為 SE(3),即特殊歐幾里得群——它不過是「一個固體物體在不彎折、不拉伸的前提下能被挪動的每一種方式」的精確叫法。在軟體裡,一整棵這樣的變換樹描述著機器人的身體及其周圍環境,而像 ROS 這樣的系統會把它們組織在一棵變換樹裡,於是機器人的任何部位都能發問「從我的視角看,那個東西在哪兒」,並得到答案。

為了弄清手腕相機看到的一顆螺絲相對於桌子在哪裡,機器人把「桌子到底座」「底座到手腕」「手腕到相機」三個變換相乘,再把結果作用到這顆螺絲的座標上。

把幾個變換鏈式相乘,一次乘法就回答了「這個東西在那個參考系裡位於何處」。

這種 4x4 的形式主要是為了打包方便;左上角的 3x3 塊是旋轉,最右一列是平移,而最底下一行固定為 0 0 0 1。

又稱
transformT-matrix4x4 transform位姿变换矩阵位姿變換矩陣