上一节主要是学习了一些SLAM的基本概念,现在来继续学习,本人资料教程全部参考深蓝学院https://www.shenlanxueyuan.com/
而slam的重要基础就是刚体的三维运动
1.点与坐标系
2D的时候就只需要考虑一个平面,利用(x,y)加旋转角表达
而3D需要立体直角坐标系配上旋转角
然后坐标计算和向量计算啥的,就都是数学和物理知识了,我自己也不是很熟练不能过多解释
2.旋转矩阵
这个就主要是线性代数的知识的,矩阵和行列式的化简计算就派上用场了,还是希望学过高数和线代的小伙伴来接触slam
旋转矩阵主要也是一个坐标系里的点根据一个旋转角旋转而成,计算的时候带上角度之间的函数
一般称R为旋转矩阵,且满足R是正交矩阵,行列式为1
3.旋转向量和欧拉角
旋转向量方向是旋转轴,长度为转过的长度,有个最著名的叫罗德里格斯公式,因为不会,我就没贴出来
欧拉角则是将旋转分解为三个方向上的转动,常见的是
1.绕物体的z轴旋转,得到偏航角yaw;
2.绕旋转后的y轴旋转,得到俯仰角pitch;
3.绕旋转后的x轴旋转,得到滚转角roll;
但实际中一般少用欧拉角表示姿态
4.四元数
四元数一般都用于表示旋转,在物体移动和定位中是个比较精确的方式
也可分为二维和三维
而四元数的计算也是需要高数的底子,因为涉及复数的运算
最后,四元数相比于角轴和欧拉角的优势是:紧凑、无奇异性
实操的环节待我先在linux上研究明白哈哈哈