SLAM學習筆記(1)
SLAM號稱能改變世界的顛覆性技術,也聽身邊很多朋友談起,雖然並不瞭解其內涵,卻有種想要了解、學習的衝動。筆者學習的參考書為高翔的《視覺SLAM十四講》,斷斷續續地學習了幾天,深知還未能窺探視覺SLAM的全貌。在此先立個一直學習下去的flag。第一次寫部落格,希望能堅持寫下去,更希望一直能堅持學習下去。
今天把之前學習過的主要內容做一個總結,主要是三維空間內物體運動的描述方式。
1、旋轉矩陣
向量的內積可描述向量間的投影關係,計算過程可寫成:
外積方向垂直於兩個向量所確定的面大小為兩個向量所張成的平行四邊形面積,計算過程如下:
歐式變換:空間的剛體運動,剛體中各個點的相對位置不發生變化,同一個向量在各個座標系中的長度和家教不發生變化。
旋轉矩陣:由兩組積的內積組成,刻畫了旋轉前後同一個向量的座標變換關係。旋轉矩陣是行列式為1的單位正交矩陣,反之也成立。以下為《十四講》中的描述。
2、變換矩陣
在三維向量的末尾新增1變成四維矩陣,成為齊次座標。對於這個四維座標,可將旋轉和平移寫在一個矩陣裡,使得整個關係變成了線性關係,成為變換矩陣,如下圖中的T。
3、尤拉角
任意旋轉都可以用一個旋轉軸和一個旋轉角來刻畫,可以使用一個向量,其方向與旋轉軸一致,而長度等於旋轉角,成為旋轉向量,旋轉向量到旋轉角的關係可由羅德里格斯公式確定,如下
尤拉角使用了三個分離的轉角,把一個旋轉分解成三次繞不同軸的旋轉。由於分解方式有許多種,所以尤拉角也存在著不同的定義方法。比如說,當先繞X 軸旋轉,再繞Y 軸,最後繞Z 軸,就得到了一個XY Z 軸的旋轉。同理,可以定義
ZY Z、ZY X 等等旋轉方式。如果討論更細一些,還需要區分每次旋轉是繞固定軸旋轉的,還是繞旋轉之後的軸旋轉的,這也會給出不一樣的定義方式。
尤拉角存在萬向鎖問題,即奇異性問題。
4、四元數
找不到一種不帶奇異性的三維向量描述方式,四元數是Hamilton 找到的一種擴充套件的複數. 它既是緊湊的,也沒有奇異性。一個四元數q 擁有一個實部和三個虛部。假設某個旋轉是繞單位向量n = [nx, ny, nz] 進行了角度為θ 的旋轉,四元數形式為
四元數常見的運算有四則運算、數乘、逆、共軛、求模長等。四元數與轉換矩陣的轉換關係為
5、相似、仿射、射影變換
各個變換的性質比較如下
相關文章
- 學習筆記1筆記
- 學習筆記-1筆記
- python學習筆記(1Python筆記
- Vue學習筆記1Vue筆記
- swift學習筆記《1》Swift筆記
- HTML學習筆記1HTML筆記
- ADworld學習筆記(1)筆記
- flex:1學習筆記Flex筆記
- git學習筆記 1Git筆記
- git學習筆記1Git筆記
- golang 學習筆記1Golang筆記
- HTML學習筆記(1)HTML筆記
- hibernate學習筆記(1)筆記
- spring學習筆記(1)Spring筆記
- Leetcode學習筆記(1)LeetCode筆記
- Numpy學習筆記 1筆記
- OA-SLAM 筆記SLAM筆記
- React學習筆記1—起步React筆記
- webpack1學習筆記Web筆記
- Scrapy 框架 (學習筆記-1)框架筆記
- Spring框架學習筆記(1)Spring框架筆記
- Vue(1)之—— Vuex學習筆記Vue筆記
- Node.js學習筆記1Node.js筆記
- <node.js學習筆記(1)>Node.js筆記
- vue原始碼學習筆記1Vue原始碼筆記
- Hadoop學習筆記——————1、Hadoop概述Hadoop筆記
- shell指令碼學習筆記-1指令碼筆記
- 數論學習筆記 (1):整除筆記
- Java 學習筆記--Day1Java筆記
- 《Netty實戰》-學習筆記1Netty筆記
- springboot 開發學習筆記1Spring Boot筆記
- Golang學習筆記(1):包管理Golang筆記
- G01學習筆記-1筆記
- Vue_cli——學習筆記1Vue筆記
- 強化學習-學習筆記1 | 基礎概念強化學習筆記
- JavaScript學習筆記1—快速入門JavaScript筆記
- 資料結構學習筆記1資料結構筆記
- 學習Python的日子 Linux筆記(1)PythonLinux筆記