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中是指每一帧对应的相机座标系相对于世界座标系(或初始帧相机座标系)的刚体运动:即旋转矩阵和平移向量,故位姿是座标系的变换而非座标变换。有了每一帧的位姿,我们就可以得到相机的运动轨迹。

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