视觉SLAM十四讲学习笔记——第三讲 三维空间刚体运动
2021/10/18 23:40:50
本文主要是介绍视觉SLAM十四讲学习笔记——第三讲 三维空间刚体运动,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.旋转矩阵的正交性
P45下方注解第一条“旋转矩阵的正交性可直接由定义给出”,在查阅众多证明方法之后,我选择一种个人更容易理解的方法。
首先明确:正交矩阵即逆为自身转置的矩阵,即满足,因此要证明旋转矩阵的转置矩和逆矩阵是同一个矩阵。对于转置矩阵较为简单:
对于旋转矩阵的逆,可以从物理意义上考虑,即为反向旋转对应的旋转矩阵(经过两次旋转回到初始状态,对应矩阵相乘结果为单位矩阵),因此只需要调换对应基底就可以得到旋转矩阵的逆矩阵:
对比旋转矩阵的转置矩阵和逆矩阵,对应的每一项数值相同,因此有:
即可证明:旋转矩阵是正交矩阵。
2.平移变换的反变换
P46上方描述平移向量“平移变换 t 的反变换不是 -t ,而是和两个系的旋转有关系”。这个问题可以简单推导一下:
得到平移变换的反变换:
这一结果在变换矩阵 T 的定义也可以看到,变换矩阵定义:
求变换矩阵的逆矩阵,根据分块矩阵求逆的方法,特别当左下角为零矩阵时:
求得变换矩阵的逆矩阵:
这种推导方式得到的逆矩阵右上角的平移向量和最初的推导结果完全相同。
3.罗德里格斯公式推导
罗德里格斯公式:描述旋转向量到旋转矩阵的变换过程。
这部分推导比较复杂,直接拍草稿纸了:
各别过程有一点混乱,也是对比了不同的证明方法,选了一种我最容易理解的。
4.欧拉角万向锁问题
P55提到欧拉角存在一个重大缺点“万向锁问题”,也被称为奇异性问题。
最初我对万向锁的理解不太到位,找了一些讲解视频看起来就清晰很多,视频链接https://v.youku.com/v_show/id_XNzkyOTIyMTI=.html主要针对“奇异性”问题,我的理解是“当给出一个旋转变换,是否有且仅有一组欧拉角可以描述这个旋转过程?”,答案很明显,在大多数情况下是这样的,但当第二次旋转俯仰角为±90°的时候,就有多组欧拉角描述同一个旋转变换(偏航和滚转是同一个轴的旋转变换),因此欧拉角存在奇异性!同样的旋转向量也存在奇异性,转角超过2π时而产生的周期性。
5.四元数表示旋转
用四元数表达对一个点的旋转:
乘法均为四元数乘法,结果也是四元数,且为纯虚四元数。
证明过程:https://blog.csdn.net/gxsheen/article/details/79156817,证明过程完全是大量的计算,没有什么技巧可言,不想自己推一遍了。
6.对比几种旋转变换的描述方式
描述方式 | 优点 | 缺点 |
旋转矩阵 | 可以表示描述任意旋转过程 | 冗余性:用9个量表示仅有3个自由度的旋转、不直观 自带约束:必须正交,且行列式为1,不利于优化算法。 |
旋转向量 | 仅使用3个变量 | 奇异性问题、不直观 |
欧拉角 | 简单、直观,数据较少:仅需要3个量 | 任何形式的欧拉角都存在万向锁问题(奇异性问题) |
四元数 | 紧凑:用4个量描述、没有奇异性、可以实现平滑插值(最关键的优势) | 理解最困难、最不直观 |
这篇关于视觉SLAM十四讲学习笔记——第三讲 三维空间刚体运动的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)