SLAM中的座標變換

​  在SLAM經常需要談論一件事情,就是座標系變換與座標變換,座標系變換和座標變換是不一樣的,要注意區分兩者的不同。在nn維線性空間中,任意nn個線性無關的向量都可取作它的基或座標系。但是對於不同的基或座標系,同一個向量的座標是不同的,下面討論當基改變時,向量的座標是如何變化的。

一、基變換

x1\pmb x_{1}x2\pmb x_{2},…,xn\pmb x_{n}是舊基,y1\pmb y_{1}y2\pmb y_{2},…,yn\pmb y_{n}是新基,則根據基的定義可以知道
在這裏插入圖片描述
或者形式的寫成
在這裏插入圖片描述
其中矩陣C\pmb C稱作由舊基到新基的過渡矩陣,過渡矩陣代表了座標系變換或者基變換,可以證明過渡矩陣是非奇異矩陣

二、座標變換

​  當我們知道了座標系的變換之後就可以求解座標變換的問題了,假設一個向量p\pmb p在舊基下的座標爲(ξ1,ξ2,...,ξn)T(\xi_{1},\xi_{2},...,\xi_{n})^T,在新基下的座標爲(η1,η2,...,ηn)T(\eta_{1},\eta_{2},...,\eta_{n})^T,那麼有:
p=ξ1x1+ξ2x2+...+ξnxn=η1y1+η2y2+...+ηnyn\pmb p=\xi_{1}\pmb x_{1}+\xi_{2}\pmb x_{2}+...+\xi_{n}\pmb x_{n}=\eta_{1}\pmb y_{1}+\eta_{2}\pmb y_{2}+...+\eta_{n}\pmb y_{n}
根據過渡矩陣,可以得到:
(η1,η2,...,ηn)T=C1(ξ1,ξ2,...,ξn)T(\eta_{1},\eta_{2},...,\eta_{n})^T = C^{-1}(\xi_{1},\xi_{2},...,\xi_{n})^T
上式即爲同一向量在不同座標系下的座標變換,可以看到座標變換矩陣是基變換矩陣的

三、旋轉矩陣與平移向量

  在視覺SLAM中,相機運動屬於剛體運動,而剛體運動可以分解爲旋轉和平移。當定義好了相機座標系後,相機座標系的旋轉可以用旋轉矩陣來表示,平移可以用平移向量來表示,注意,這裏旋轉矩陣和平移向量一般在世界座標系下的表達。假設相機座標系1經過旋轉和平移變成了座標系2,將座標系1設爲世界座標系,旋轉矩陣爲R\pmb R,平移向量爲t\pmb t,某向量在座標系1中的座標爲a=(a1,a2,a3)T\pmb a=(a_{1},a_{2},a_{3})^T,在座標系2中的座標系爲b=(b1,b2,b3)T\pmb b=(b_{1},b_{2},b_{3})^T,則
a=Rb+t\pmb a=\pmb R\pmb b+\pmb t
旋轉矩陣是正交陣,自然也是非奇異矩陣。上述座標是用非齊次座標來表示的,如果改成齊次座標:a=(a1,a2,a3,1)T\pmb a^{'}=(a_{1},a_{2},a_{3},1)^Tb=(b1,b2,b3,1)T\pmb b^{'}=(b_{1},b_{2},b_{3},1)^T
則上式可以寫成更簡單的表達方式:
a=Tb\pmb a^{'}=\pmb T\pmb b^{'}
其中
在這裏插入圖片描述
T\pmb T稱作變換矩陣(Transformation Matrix),用於描述歐式變換。
那麼旋轉矩陣和基變換是什麼關係呢?答:旋轉矩陣就是基變換,但旋轉矩陣和平移向量構成的變換不是基變換。

四、位姿

​  位姿在視覺SLAM中是指每一幀對應的相機座標系相對於世界座標系(或初始幀相機座標系)的剛體運動:即旋轉矩陣和平移向量,故位姿是座標系的變換而非座標變換。有了每一幀的位姿,我們就可以得到相機的運動軌跡。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章