旋轉矩陣及四元數的空間轉換
tags: articles
作者: 鄭聖文
E-mail: shengwen1997.tw@gmail.com
本文章以 創用CC 姓名標示─非商業性─相同方式分享
授權
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
前言
旋轉矩陣及四元數是用來描述四軸飛行器、機械手臂或是各式機器人姿態的基本數學公式,本文是依照我的理解所撰寫的一篇導讀,若有錯誤,麻煩請您來信指正。
歐拉角及旋轉矩陣
歐拉角(Euler angle)是用於表示兩座標系之間相對應的角度關係,從一座標系至一座標系的轉換可以以一線性轉換進行描述。
給出沿著軸旋轉度的轉換:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
給出沿著軸旋轉度的轉換:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
給出沿著軸旋轉度的轉換:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
分別列出上面三組所使用到的轉換矩陣, 以及, 我們以下標表示旋轉軸:
接著可以定義由載體參考系(body frame of reference)旋轉至慣性參考系(Inertial frame of reference)的數學公式:
我們以表示載體到慣性(body to interial)的轉換:
旋轉矩陣並不具有交換律,以上我們以的順序旋轉。
而若給定一已知旋轉矩陣,可由下式求出歐拉角:
旋轉矩陣的逆轉換可由反矩陣取得:
而因旋轉矩陣屬於特殊旋轉群 SO(3),因此逆矩陣將等價於轉置矩陣:
定義四元數之基本運算
四元數是數學家 威廉·哈密頓 (William Rowan Hamilton) 於1843年提出的數學概念,其用途是作為物理學表達空間的工具。四元數是複數系的擴展,因此了解複數對於理解四元數有一定幫助。
四元數由一實數與三虛數組成,可以表示如下:
如同虛數一樣,四元數具有其獨特的乘法關係:
以及
由上面六條規則可以發現,四元數虛數之間相互乘法不具有交換性
四元數的乘法關係可以整理為以下表格:
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
我們首先定義四元數的加法:
接著定義乘法運算:
上式可以從乘法表中導出。
可以將四元數的實數部及虛數部拆開寫作下式:
因此乘法可寫作:
上式的為向量運算之外積運算。
而四元數乘法亦可以矩陣形式表示:
在稍後的章節中,會使用到四元數乘法的逆運算,而乘法逆運算必須由四元數的共軛值求得,因此我們首先定義四元數的共軛值為:
而四元數的長度為:
並且由於:
因此四元數的乘法逆運算可由下式求得:
而當四元數為單位四元數時(),乘法逆運算等於共軛值:
四元數的空間旋轉
根據已被證明之數學,若給出一四元數:
以及以四元數表達的一座標:
則下式可以將點相對原點旋轉度:
而是任意想要旋轉的軸。
可以想像為一四度空間上的旋轉,該運算除了會使原座標旋轉度之外,也會在第四維空間上產生一位移,因此除了一次運算()外,可以另一次逆運算()消除空間上的位移,但兩次運算皆會使座標旋轉度,使最終旋轉的度數為度,因此我們必須選定原先的角為度。
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
接著將上式以矩陣形式描述:
亦可將行4列4省略記做下式:
接著擴展使得我們可以一次描述三軸的旋轉:
注意,四元數乘法並不具備交換性,改變順序將會導致結果改變。
而數學上由於旋轉矩陣與四元數具有對稱性,因此由:
可以給出:
由上式便可將四元數轉換回歐拉角。
參考資料
[1] Conversion between quaternions and Euler angles, Wikipedia