「SLAM」三维空间刚体运动名词笔记
主要內容:旋轉矩陣、變換矩陣、四元數、歐拉角
3.1 旋轉矩陣
3.1.1 點、向量和坐標系
- 剛體:三維空間中的物體,需要用三維坐標(xyz)和位姿(物體朝向)來描述
- 左/右手坐標系:將大拇指、食指、中指兩兩垂直,定義大拇指代表x軸,食指代表y軸,中指代表z軸;那么左手xyz三個方向合起來表示的即是左手坐標系,右手xyz三個方向合起來表示的即是右手坐標系;區別是,左手坐標系和右手坐標系對應的xyz軸,三軸不能同時重合
3.1.2 坐標系間的歐氏變換
- 世界坐標系/慣性坐標系:固定不動
- 移動坐標系:從世界坐標系看移動坐標系,會發現移動坐標系在世界坐標系中,原點會變化;而移動坐標系自己看自己,原點是不變的
- 剛體運動:兩個坐標系之間的運動,由旋轉加上平移組成
- 歐式變換:在世界坐標系下一個物體從一個點移動到另一個點的過程,由旋轉和平移組成
- 旋轉矩陣:旋轉前后坐標系的兩組基的內積構成的矩陣,描述了旋轉本身;旋轉矩陣是一個行列式為1的正交矩陣(充要)
- 平移矩陣:向量加減
3.1.3 變換矩陣與齊次坐標
變換并不是線性的,為了方便表示多次變換的結果,引入了矩陣的表示方法,即齊次坐標和變換矩陣,引入齊次坐標后,寫成矩陣形式,變換即為線性了
- 齊次坐標:在某個向量坐標末尾增加一個數值為1的維度,使其變成四維向量,該向量則被稱為齊次坐標
- 變換矩陣:包含旋轉和平移,使變換關系為線性的矩陣。變換矩陣是一個分塊矩陣,其左上角為旋轉矩陣,右上角為平移向量,左下角為0向量,右下角為1;自由度為6(前,右,上,旋轉,俯仰,偏航)
3.2 旋轉向量和歐拉角
由于旋轉矩陣用了4*4共16個數值來表達6個自由度之間的變換存在數據的冗余、旋轉矩陣自身帶有的行列式為1和正交的約束使得求解過程可能存在困難——從而引出了旋轉向量和歐拉角
3.2.1 旋轉向量
任意旋轉都可以用一個旋轉角和一個旋轉軸來刻畫,而旋轉向量正好包含了這兩個特性。
-
旋轉向量:向量方向與旋轉軸一致,向量長度等于旋轉角,是一個三維向量,用于描述旋轉
假定存在一個單位向量n,此時向量具有一個方向,為旋轉軸的方向;假定旋轉角為θ,那么θn即可描述一次旋轉 -
變換矩陣的旋轉向量表示:使用一個旋轉向量和一個平移向量即可表示變換矩陣,表達一次旋轉
-
旋轉矩陣R和旋轉向量θn之間的相互計算:
n -> R:
R -> θ:
旋轉軸n與R之間的關系:由于旋轉軸上的向量經過旋轉后不發生改變,則有Rn = n,因此轉軸n是矩陣R特征值1對應的特征向量
3.2.2 歐拉角
由于旋轉矩陣和旋轉向量的表述比較不直觀,為了直觀地表述旋轉究竟是怎么回事,歐拉角的概念被引入
大部分領域使用歐拉角時的定義(旋轉順序,旋轉方式)不一定相同
- 歐拉角:有三個分離的轉角,將一次旋轉分解成三次三個不同方向旋轉的總和
存在多種分解方式:旋轉軸旋轉的先后順序(xyz, zyx, yzx等),繞固定軸旋轉還是繞最新旋轉的軸旋轉等 - 偏航(yaw)、俯仰(pitch)、翻滾(roll)
偏航:繞物體Z軸旋轉得到
俯仰:繞物體Y軸旋轉得到
翻滾:繞物體X軸旋轉得到 - rpy角:一個膾炙人口的特定旋轉流程的歐拉角描述,rpy角旋轉順序是zyx
歐拉角的使用過程中會碰到一個萬向鎖問題。具體自行查閱。
3.3 四元數
旋轉矩陣用9個數值描述3個自由度的旋轉存在一定的冗余,而歐拉角和旋轉向量雖然緊湊但存在奇異性。
總結
以上是生活随笔為你收集整理的「SLAM」三维空间刚体运动名词笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广东江门军人医院在哪里
- 下一篇: 「Swift」第三章String and