前言
旋轉矩陣 (Rotation Matrix) 在科學與工程領域中無處不在,從機器人手臂的運動控制、航太衛星的姿態描述,到電腦視覺中的攝影機定位,旋轉矩陣是描述空間方向最核心的數學工具。
然而,我在閱讀文獻時會有一些疑惑:為什麼同樣是繞著 $x, y, z$ 三個軸旋轉,在不同的文獻中,矩陣相乘的順序有時是由左往右 ($R_x R_y R_z$),有時卻是由右往左 ($R_z R_y R_x$)?最後終於搞明白,不同的關鍵在於我們觀測旋轉時所採用的參考坐標系 (Reference Frame) 不同。
本篇文章將從簡單的 2D 旋轉出發,逐步推導至 3D 空間,並深入剖析兩種不同的旋轉描述方式
- Body-Fixed Rotation:繞著物體自身的動態軸旋轉。
- Space-Fixed Rotation:繞著固定的世界坐標軸旋轉。
主動旋轉與被動旋轉
往往導致困惑的地方就是「誰在旋轉」,因此需要先釐清:
- 主動旋轉 (Active Rotation):坐標軸不動,物體在固定的坐標系中相對於原點做旋轉 (軸不動,物體動)。
逆時針主動旋轉 (Active Rotation)
- 被動旋轉 (Passive Rotation):物體不動,取而代之的是旋轉坐標軸 (軸動,物體不動)。
順時針被動旋轉 (Passive Rotation)
在進行旋轉運算時,必須確定當前的情境。逆時針主動旋轉 $\theta$ 的效果,在數學上等同於順時針被動旋轉 $\theta$ 的效果。若沒有釐清這點,最終旋轉矩陣的角度將會差一個負號。
2D 旋轉矩陣
逆時針主動旋轉與順時針被動旋轉

「逆時針主動旋轉」等同於「順時針被動旋轉」,因此我們只看其中一種即可,以下以「逆時針主動旋轉」為例。
令 $\overline{OP}$ 長度為 $r$ 且與 $x$ 軸的夾角為 $\alpha$、點 $P$ 的坐標為 $(x, y)$、點 $P'$ 的坐標為 $(x', y')$,則
順時針主動旋轉與逆時針被動旋轉

「順時針主動旋轉」等同於「逆時針被動旋轉」,因此我們只看其中一種即可,以下以「順時針主動旋轉」為例。
令 $\overline{OP}$ 長度為 $r$ 且與 $x$ 軸的夾角為 $\alpha$、點 $P$ 的坐標為 $(x, y)$、點 $P'$ 的坐標為 $(x', y')$,則
3D 旋轉矩陣
任何 3D 的旋轉都可以分解為繞著三個正交軸的旋轉,以下將先探討固定單一軸的逆時針被動旋轉矩陣,再帶出 Body frame 與 Space frame 的概念,最後完成 Body-Fixed 與 Space-Fixed 旋轉矩陣的推導。
固定 $x$ 軸的旋轉矩陣 $R_x$

固定 $x$ 軸再根據右手定則逆時針旋轉,是從 $y$ 軸轉到 $z$ 軸,套用公式得到
且 $x$ 軸不動,因此
固定 $y$ 軸的旋轉矩陣 $R_y$

固定 $y$ 軸再根據右手定則逆時針旋轉,是從 $z$ 軸轉到 $x$ 軸,套用公式得到
且 $y$ 軸不動,因此
固定 $z$ 軸的旋轉矩陣 $R_z$

固定 $z$ 軸再根據右手定則逆時針旋轉,是從 $x$ 軸轉到 $y$ 軸,套用公式得到
且 $z$ 軸不動,因此
Body frame 與 Space frame
Body frame (物體座標系) 與 Space frame (空間座標系) 是兩種定義參考座標系的方式,本質上是在選擇「觀察視角」。
Body frame 扮演的是「物體本身」的視角,它緊貼於物體並隨之旋轉。從物體自身的觀點來看,它永遠處於座標原點,所有的運動都是外部環境相對其位置與姿態的改變。
相對而言,Space frame 則是「旁觀者」的角色,它如同固定在地面上的觀測站,提供了一個絕對且靜止的基準,用以記錄物體在空間中的絕對軌跡。
這種視角切換,決定了我們如何透過數學描述旋轉。
Body-Fixed 旋轉矩陣
Body-Fixed 旋轉是指每一次旋轉都是以「上一次旋轉後的新軸」(也就是 Body frame) 為基準來旋轉。接下來,將推導依序繞 Body frame 的 $x, y, z$ 軸旋轉的旋轉矩陣
首先,對 Body frame 的 $x$ 軸旋轉 $\theta_x$
再對 Body frame 的 $y$ 軸旋轉 $\theta_y$
最後對 Body frame 的 $z$ 軸旋轉 $\theta_z$
得到總旋轉矩陣為
Space-Fixed 旋轉矩陣
Space-Fixed 旋轉是指每一次旋轉都是以固定不動的 Space frame 為基準來旋轉。接下來,將推導依序繞 Space frame 的 $x, y, z$ 軸旋轉的旋轉矩陣
首先,對 Space frame 的 $x$ 軸旋轉 $\theta_x$
我們接下來想要對 Space frame 的 $y$ 軸進行旋轉,所以必須使用 Change of Basis 將經過 $R_x(\theta_x)$ 旋轉後的坐標系轉換回 Space frame
再對 Space frame 的 $y$ 軸進行旋轉
再使用 Change of Basis 將坐標轉換回原本的座標系
最後是對 Space frame 的 $z$ 軸旋轉 $\theta_z$。同理,先使用 Change of Basis 將經過 $R_x(\theta_x) R_y(\theta_y)$ 旋轉後的坐標系轉換回 Space frame
再對 Space frame 的 $z$ 軸旋轉 $\theta_z$
再使用 Change of Basis 將坐標轉換回原本的座標系
得到總旋轉矩陣為
總結
Body-Fixed 旋轉的概念相當直觀,每次旋轉都建立在物體當前的區域座標系上,只要依序乘上對應的旋轉矩陣即可;而 Space-Fixed 旋轉則始終固定在全域座標系中,每次旋轉都必須藉助 Change of Basis 將旋轉軸轉換回最初的基準坐標系來進行推導。
儘管兩者的物理意義與推導過程截然不同,但神奇的是,若從最終的數學式子來看:Space-Fixed 依序繞 $x, y, z$ 軸旋轉的效果,完全等價於 Body-Fixed 以相反順序依序繞 $z, y, x$ 軸旋轉的結果。這種殊途同歸的幾何對稱性,或許正是數學最令人著迷、也是最酷的地方!

