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、相似、仿射、射影变换
各个变换的性质比较如下