《視覺SLAM十四講》學習系列(2)—三維空間剛體運動
本文主要內容來自《視覺SLAM十四講》第三講-三維空間剛體運動。介紹SLAM中的一個基本問題:剛體在三維空間中的運動如何描述。在書中介紹了四種方法:旋轉矩陣、旋轉向量、歐拉角和四元數。
基礎數學知識
標準正交基
在線性代數中,一個內積空間的正交基(orthogonal basis)是元素兩兩正交的基。稱基中的元素爲基向量。假若,一個正交基的基向量的模長都是單位長度1,則稱這正交基爲標準正交基。
反對稱矩陣
對於三維空間中的向量
a,b
,外積可用來描述
a
到
b
之間是如何選擇的,其中外積的方向即爲旋轉矩陣的方向。外積也可寫成:
a×b=⎡⎣⎢ia1b1ja2b2ka3b3⎤⎦⎥=⎡⎣⎢0a3−a2−a30a1a2−a10⎤⎦⎥b(2)
將上述過程記爲
a
^
b
,其中^爲反對稱符號。將外積
a×b
轉爲
a
^
b
,在運算時即可轉爲矩陣運算,有利於提高計算機處理效率,類似情況在接下來的部分中還將多次出現。
正交矩陣
正交矩陣即逆爲自身轉置的矩陣。
旋轉矩陣
座標系間的歐氏變換
相機運動時一個剛體運動,即同一個在各個座標系下的長度和夾角都不會發生變化,這類變換稱爲歐式變換。這樣的歐式變換由一個旋轉和一個平移組成。設某個單位正交基
(e1,e2,e3)
經過一次旋轉後變成了
(e′′1,e′′2,e′′3)
,同一向量
a
的座標有以下關係:
[e1,e2,e3]⎡⎣⎢a1a2a3⎤⎦⎥=[e′′1,e′′2,e′′3]⎡⎣⎢a′′1a′′2a′′3⎤⎦⎥
左乘
[e1,e2,e3]T
後有
⎡⎣⎢⎢eT1e1eT2e1eT3e1eT1e2eT2e2eT3e2eT1e3eT2e3eT3e3⎤⎦⎥⎥⎡⎣⎢a1a2a3⎤⎦⎥=⎡⎣⎢⎢eT1e′′1eT2e′′1eT3e′′1eT1e′′2eT2e′′2eT3e′′2eT1e′′3eT2e′′3eT3e′′3⎤⎦⎥⎥⎡⎣⎢a′′1a′′2a′′3⎤⎦⎥
⎡⎣⎢100010001⎤⎦⎥⎡⎣⎢a1a2a3⎤⎦⎥=⎡⎣⎢⎢eT1e′′1eT2e′′1eT3e′′1eT1e′′2eT2e′′2eT3e′′2eT1e′′3eT2e′′3eT3e′′3⎤⎦⎥⎥⎡⎣⎢a′′1a′′2a′′3⎤a′′2a′′3⎤⎦⎥
⎡⎣⎢a1a2a3⎤⎦⎥′′3
⎤⎦⎥
⎡⎣⎢a1a2a3⎤⎦⎥=⎡⎣⎢⎢⎡⎣⎢