视觉SLAM中,刚体三维空间运动的描述。

1 三维空间刚体运动

我们很容易想到,刚体在三维空间中的运动是由一次旋转和+一次平移组成的。平移其实就是刚体在三轴方向上移动的距离,问题不大,但在视觉SLAM问题中旋转的处理是比较麻烦的。
接下来介绍旋转矩阵、四元数、欧拉角的定义,以及他们是如何运算和变换的。

1.1 点、向量和坐标系

为什么要弄明白这些基础的问题呢,恰恰因为他们是基础,而最容易忽视的也是基础

1、点是空间中的基本元素,无体积,无长度。
2、把两点连接就构成了向量。向量可以看作从一个点指向另一个点的箭头。
3、 当我们为三维空间指定坐标系时,就可以谈一个点和一个向量的坐标了。

值得注意的是,点和向量只是三维空间中存在的一种东西,只有在指定三维空间坐标系时,才赋予了他们坐标。

对于坐标我们可以计算他们的内外积,这个想必大家都会计算。在视觉SLAM问题中,为了方便后面各种公式推导的理解,这里对向量之间的外积计算引入了一个^符号。这个符号可以把向量写成一个矩阵!其是一个反对称矩阵!

如图:向量外积转为矩阵与向量乘法

1.2 坐标系间的欧式变换

视觉SLAM问题中常常涉及到坐标系之间的变化,比如世界坐标系、机器人坐标系,相机坐标系等。两个坐标系之间的变换由一个旋转和一个平移组成,这就是**刚体运动**。刚体运动中,同一个向量在各个坐标系下的长度和夹角都不会发生改变。而我们说两个坐标系之间相差了一个欧式变换
在这里插入图片描述

欧式变换由旋转和平移组成,用R和t表示。

(1)旋转矩阵

旋转矩阵刻画了旋转前后同一个向量的坐标变换关系。

向量在两个坐标系之间的旋转,向量本身是不变的,根据这个性质可以推出旋转矩阵。

在线性代数中,一个向量由一组基和一个坐标相乘得到。
在这里插入图片描述
在上式左右两端左乘[e1,e2,e3]T,可得下式。
在这里插入图片描述
旋转矩阵的性质行列式为1且正交, RT=R-1
反过来,行列式为1的正交矩阵也是旋转矩阵。

(2)变换矩阵

欧式变换由一个旋转和一个平移组成,旋转矩阵用R表示,平移向量用t表示,可由下式表示。
在这里插入图片描述
在实际应用中,为了方便使用矩阵计算, 引入了齐次坐标:
在这里插入图片描述
矩阵T既包含旋转矩阵,又包含平移向量,称为变换矩阵。

1.2 旋转向量和欧拉角

①任意旋转都可以用一个旋转轴和一个旋转角来表示。

旋转向量的定义(或轴角,Axis-Angle):对于一个旋转轴为n,旋转角为 θ \theta θ的旋转,对应的旋转向量为 θ \theta θn ,并且向量n的模为1。

②欧拉角:把一个旋转分解成三次分别绕x,y,z轴的旋转,用三个分离的旋转角[ θ \theta θx, θ \theta θy, θ \theta θz]描述一个旋转。

绕物体的Z轴旋转得到偏航角(yaw),再绕旋转之后的Y轴旋转得到俯仰角(pitch),最后绕旋转之后的X轴得到滚转角(roll)。

  • 欧拉角的bug

万向锁问题:俯仰角如果是 90o 或-90o ,第三次旋转会与第一次旋转使用同一个轴,并且避免不了。会导致丢失一个自由度(由三次旋转变成了两次旋转)。这被称为奇异性问题
在这里插入图片描述
这块总是转不明白,其实可以那一本书比划一下。
我们不用专业术语描述,可以用上下左右来说。
首先平放书本,左转头20°,然后俯仰角如果是 90o 就说明此时书已经竖直放置了,第三次就是绕竖轴旋转。仔细想想其实改变一下第一次旋转的角度,完全不用第三次旋转就可以得到相同的效果。

1.3 四元数

四元数(Quaternion)定义为一个实部和三个虚部,是一种非常紧凑、没有奇异性的表达式。

关于四元数的理解可以看这篇博文《可视化四元数,愿你不在掉头发》,因为我实在弄不懂[尴尬脸]。

2 各种变换之间的转换

2.1 旋转向量&旋转矩阵

已知 [n, θ \theta θ] ,求R:

在这里插入图片描述

已知R ,求[n, θ \theta θ] :
在这里插入图片描述

2.2 四元数&旋转矩阵

已知四元数 q = [q0,q1,q2,q4],求R:
在这里插入图片描述
已知R,求四元数:
在这里插入图片描述

2.3 四元数&旋转向量

绕单位轴u 旋转 θ \theta θ的四元数是:在这里插入图片描述

下一节预告

在视觉SLAM问题中我们要估计和优化相机的位姿,把旋转矩阵作为优化变量时,会引入额外的约束(旋转矩阵是正交矩阵且行列式等于1),使优化变得困难。其实可以用李群和李代数之间的转换关系,将位姿估计变成无约束的优化问题,简化求解方式。

非常感谢您的阅读!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宛如新生

转发即鼓励,打赏价更高!哈哈。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值