0%

Body-Fixed and Space-Fixed Rotation Matrices

前言

旋轉矩陣 (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)逆時針主動旋轉 (Active Rotation)
  • 被動旋轉 (Passive 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$ 軸的逆時針被動旋轉固定 $x$ 軸的逆時針被動旋轉

固定 $x$ 軸再根據右手定則逆時針旋轉,是從 $y$ 軸轉到 $z$ 軸,套用公式得到

且 $x$ 軸不動,因此

固定 $y$ 軸的旋轉矩陣 $R_y$

固定 $y$ 軸的逆時針被動旋轉固定 $y$ 軸的逆時針被動旋轉

固定 $y$ 軸再根據右手定則逆時針旋轉,是從 $z$ 軸轉到 $x$ 軸,套用公式得到

且 $y$ 軸不動,因此

固定 $z$ 軸的旋轉矩陣 $R_z$

固定 $z$ 軸的逆時針被動旋轉固定 $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$ 軸旋轉的結果。這種殊途同歸的幾何對稱性,或許正是數學最令人著迷、也是最酷的地方!

以最優質的內容回應您的鼓勵