Reference:
- 《视觉SLAM十四讲》
- http://www.cs.toronto.edu/~gwtaylor/publications/nips2006mhmublv
- https://github.com/asheshjain399/RNNexp/tree/srnn/structural_rnn/CRFProblems/H3.6m/mhmublv/Motion
基础概念
外积 (外积的方向垂直于两个向量)
即有
这里的为反对称符号,提供了一个向量到矩阵(反对称矩阵,Skew-symmetric)的对应关系。
1、旋转矩阵
坐标 旋转成
于是有
进一步,有
这里的就称为旋转矩阵(且为正交阵)。
特殊正交群(SOG, Special Orthogonal Group)
考虑带平移的旋转:
引入齐次坐标,则有
这里为变换矩阵,也是正交阵。
特殊欧式群(SEG, Special Euclidean Group)
2、旋转向量与欧拉角
任何旋转可以由一个旋转轴和一个旋转角来刻画。
于是考虑用一个向量与旋转轴一致,而长度等于旋转角,这个向量就是旋转向量,只需要一个三维向量表示即可,该向量也是后面会提到的李代数。
罗德里格斯公式(Rodrigues's Formula)
旋转向量旋转矩阵
其中为反对称符号。
p.s. 其中用到了反对称矩阵Trace为0。
于是有,
因为是旋转轴,则
即转轴是旋转矩阵特征值为1对应的特征向量。
比起旋转向量,欧拉角(三个轴的旋转参数)会更加直观,不过会遇到万向锁的问题。且不适合插值和迭代。
3、四元数
旋转矩阵用9个量描述3个自由度,但是具有冗余性;欧拉角和旋转向量虽然紧凑,但是具有奇异性。
复数的乘法表示了复平面上的旋转。
四元数是一种扩展的复数。紧凑没有奇异性。
且满足
简记为:
进一步,用单位四元数(可以表示三维空间任意旋转)。
假设某个旋转是绕单位向量进行了的旋转,则这个旋转的四元数可以表示为:
反之,也可以从单位四元数求对应的旋转轴和夹角:
注意到每加,就变成。即每个旋转可以由两个互为相反数的四元数表示。
P.S. 四元数的逆为
其中,为四元数共轭,虚部取相反数。
四元数表示旋转
设一个三维点以及一个由轴角指定的旋转,令得到的。
将三维空间点用一个虚四元数表示
则将这个点按旋转,有对应这个旋转的四元数:
可以验证,旋转后得到
旋转后的也为纯虚四元数,三个虚部分量即为旋转后的3D点。
四元数&旋转矩阵
对应的旋转矩阵:
假设矩阵,则四元数为
小结
- 特殊正交群(SOG, Special Orthogonal Group)
- 特殊欧式群(SEG, Special Euclidean Group)
李代数
考虑旋转矩阵,且满足
进一步假设为随时间的旋转.
关于时间求导:
即
可以看出是一个反对称矩阵。于是可以找到反对称的三维向量满足
右乘,有
令, 且,做泰勒展开即有
由其可知反应了的导数性质,故称它在SO(3)原点附近的正切空间上。
即有, 且初始条件为, 即可解微分方程得:
- 结论:给定某个时刻的,我们就能求得一个,它描述了在局部的导数关系。
- 这里的实际上是一种李代数。
的元素是三维向量或者三维反对称矩阵:
它与SO(3)的关系由指数映射给定:
推导
这里的是三维向量,令它的模长和方向为、。令为长度为1的方向向量,则有
通过推导可得
网友评论