在SLAM经常需要谈论一件事情,就是座标系变换与座标变换,座标系变换和座标变换是不一样的,要注意区分两者的不同。在n维线性空间中,任意n个线性无关的向量都可取作它的基或座标系。但是对于不同的基或座标系,同一个向量的座标是不同的,下面讨论当基改变时,向量的座标是如何变化的。
一、基变换
设xxx1,xxx2,…,xxxn是旧基,yyy1,yyy2,…,yyyn是新基,则根据基的定义可以知道
或者形式的写成
其中矩阵CCC称作由旧基到新基的过渡矩阵,过渡矩阵代表了座标系变换或者基变换,可以证明过渡矩阵是非奇异矩阵。
二、座标变换
当我们知道了座标系的变换之后就可以求解座标变换的问题了,假设一个向量ppp在旧基下的座标为(ξ1,ξ2,...,ξn)T,在新基下的座标为(η1,η2,...,ηn)T,那么有:
ppp=ξ1xxx1+ξ2xxx2+...+ξnxxxn=η1yyy1+η2yyy2+...+ηnyyyn
根据过渡矩阵,可以得到:
(η1,η2,...,ηn)T=C−1(ξ1,ξ2,...,ξn)T
上式即为同一向量在不同座标系下的座标变换,可以看到座标变换矩阵是基变换矩阵的逆。
三、旋转矩阵与平移向量
在视觉SLAM中,相机运动属于刚体运动,而刚体运动可以分解为旋转和平移。当定义好了相机座标系后,相机座标系的旋转可以用旋转矩阵来表示,平移可以用平移向量来表示,注意,这里旋转矩阵和平移向量一般在世界座标系下的表达。假设相机座标系1经过旋转和平移变成了座标系2,将座标系1设为世界座标系,旋转矩阵为RRR,平移向量为ttt,某向量在座标系1中的座标为aaa=(a1,a2,a3)T,在座标系2中的座标系为bbb=(b1,b2,b3)T,则
aaa=RRRbbb+ttt
旋转矩阵是正交阵,自然也是非奇异矩阵。上述座标是用非齐次座标来表示的,如果改成齐次座标:aaa′=(a1,a2,a3,1)T和bbb′=(b1,b2,b3,1)T
则上式可以写成更简单的表达方式:
aaa′=TTTbbb′
其中
TTT称作变换矩阵(Transformation Matrix),用于描述欧式变换。
那么旋转矩阵和基变换是什么关系呢?答:旋转矩阵就是基变换,但旋转矩阵和平移向量构成的变换不是基变换。
四、位姿
位姿在视觉SLAM中是指每一帧对应的相机座标系相对于世界座标系(或初始帧相机座标系)的刚体运动:即旋转矩阵和平移向量,故位姿是座标系的变换而非座标变换。有了每一帧的位姿,我们就可以得到相机的运动轨迹。