视觉SLAM理论——位姿的理解与间接求解

目录:
  • 位姿的定义
  • 位姿与变换矩阵的区别与联系
  • 位姿的求解方法
位姿的定义

  在SLAM中,位姿是世界坐标系相机坐标系的变换,包括旋转平移。根据以上定义可以衍生以下几个问题:

1.世界坐标系在哪?
通常世界坐标系是自己定义的,一经定义,便不可更改,通常构图所用点的坐标便是世界坐标系下的坐标。

2.相机坐标系在哪?
相机坐标系是指以相机的光心为原点所构成的坐标系,由于相机是运动的,所以相机坐标系也是运动的。

3.如何表达位姿?
位姿通常以三维空间中的欧式变换来表示,变换矩阵T最常用,也可以分别用旋转R和平移向量t来表示。因为相机坐标系是运动的,所以位姿也是变换的。

  设一点PP在世界坐标系下的坐标为pwp_w,相机坐标系下的坐标为pCp_C,根据位姿的定义有:

pw=T1pcp_w=T_1*p_c
pc=T2pwp_c=T_2*p_w

  通常把T1,T2T_1,T_2记作TcwTcwTwcTwc,其中T1,T2T_1,T_2是互为逆矩阵,因此有:

pw=Twcpcp_w=Twc*p_c
pc=Tcwpw=Twc1pwp_c=Tcw*p_w=Twc^{-1}*p_w

  Twc,TcwTwc,Tcw是位姿的两种表达方式,实际过程中根据情况自己选择。

位姿与变换矩阵的区别与联系

  由定义可知,位姿本质上是变换矩阵,特指世界坐标系与相机坐标系之间的变化关系。
  而变换矩阵是任意两个空间(坐标点)之间的欧式变换关系。
视觉SLAM理论——位姿的理解与间接求解
  图中的Ti为位姿,Tij为变换矩阵,分别表达了不同坐标系之间的变换。

位姿的求解方法

  这里讨论的是位姿的一种间接求解方法,不同于重投影误差优化,对极约束等直接求解方法,这类求解方法常常是作为位姿直接求解方法的初始值。关于直接求解位姿的方法可参考前面写的一系列文章。
视觉SLAM理论——位姿的理解与间接求解
  如图所示,结合上面的基本推倒,有以下式子成立:

pc1=T1pwp_{c1}=T_1*p_w
pc2=T2pwp_{c2}=T_2*p_w
pc2=T12pc1p_{c2}=T_{12}*p_{c1}

  利用前面两式进行代换:

T2pw=T12T1pwT_2*p_w=T_{12}*T_1*p_w

  约去pwp_w得:

T12=T2T11T_{12}=T_2T_1^{-1}
T2=T12T1T_2=T_{12}*T_1

  T12T_{12}是一类特殊的变换矩阵,表达的是相机之间的运动,并且跟位姿有着非常密切的联系。在实际的使用过程中,通常可以按照以下步骤进行使用:

1.利用初始化算法得到T1,pc1T_1,p_{c1}
2.设定一个初始值T12T_{12}
3.令T2=T12T1,pc2=pc1T_2=T_{12}*T_1,p_{c2}=p_{c1},得到一个初步的T2T_2pc2p_{c2}
4.利用重投影误差重新估计T2T_2pc2p_{c2}
5.重新更新T12T_{12}
6.令T3=T12T1,pc3=pc2T_3=T_{12}*T_1,p_{c3}=p_{c2},得到一个初步的T3T_3pc3p_{c3}…依次类推求得每一个TijpciT_{ij},p_{ci}

  经过1234,一帧图像的优化过程便结束了,后面是进行连续的图像追踪与优化。

  值得注意的是,我们可以把世界坐标系的原点与相机的原点重合,这样得到的TijT_{ij}会更特殊,会直接包含位姿中的平移信息。

参考文献:
[1]视觉SLAM十四讲
[2]https://blog.****.net/cnn_block/article/details/88790909