@kokerf
2018-04-05T01:08:52.000000Z
字数 15181
阅读 1831
计算机视觉
旋转的四种表示形式:
Rotations are linear transformations that preserve vector length and relative vector orientation (i.e., handedness).
A rotation operator acting on vevtor :
we can define the rotation group as,
如图,向量通过轴,旋转得到向量(右手定理)。记向量在上投影为,垂直方向的投影为,有:
其中
这里的表示了在平面上的旋转。建立基底
令,有。在平面上旋转,有
从而有
最终我们可以得到旋转后的向量,通过,得到向量旋转公式(vector rotation formula)
映射可以使用矩阵表示:
旋转用矩阵形式表示,则特殊正交群表示为:
与其对应的李代数表示为:
可以表示为,这里有:
四元数的乘法表示为:
四元数作为另外一种表示形式,表示为:
旋转属于刚体运动,其在上的轨迹可以认为是从初始位置开始对刚体的连续转动。由,对时间求导,有:
可以得到,
可见,是一个的反对称阵(skew-symmetric),属于。根据式我们有一对一的映射关系,可以写作
如果是恒定的,对上式做积分(对微分方程求解)可以得到:
这里的,都为旋转矩阵,也为旋转矩阵。定义为在期间的旋转向量,有:
这就是从到的指数映射:
定义从的映射为,有
与的关系为
与指数映射相反,给出对数映射:
对于旋转向量,从旋转矩阵的映射记为:
和对数映射之间的关系为:
旋转向量通过指数映射,做泰勒展开:
对于单位向量,叉乘矩阵满足:
使用上述两个公式,可以得到:
通过对比和可以得到从旋转向量到旋转矩阵的封闭形式的表达式,也称为罗德里格斯公式(Rodrigues rotation formula):
记作。同时有另外的形式表示为
对求迹可得
因此有:
为了说明旋转矩阵通过对数映射得到的向量就是旋转向量,这里给出证明。
把一个向量绕着单位旋转轴旋转一定角度,可以表示为如下的线性乘法:
这里的.
考虑单位四元数,有,对时间求导,有:
有:
可以得到是纯四元数。我们可以记作:
把式子两边左乘可以得到:
如果恒定,解一阶齐次线性微分方程可得:
这里的、都是单位(unit)四元数,同样也是单位四元数。定义,有
这里给出的是从纯四元数空间到表示运动的单位四元数的映射关系
上述表示了到四元数的映射,但是纯四元数空间是单位球的切空间(或李代数),并不是直接的速度空间(velocity space)。实际上是一个“半速空间”,我们有。有。我们可以直观的考虑,用四元数表示对一个三维向量的旋转为,向量经历了“两次”在四元数的作用,换句话说,四元数只对我们在上的旋转进行了“一半”的编码。具体会在下文说明。
为了表示直接从旋转向量到四元数的映射关系。这里体现half-angle effect, 定义映射如下:
与的关系如下:
同时根据角速度,式子和变为
与指数映射对应,这里给出对数映射:
同时给出映射:
很显然两个指数映射之间的关系为:
先考虑从旋转向量到四元数的转换。我们可以通过对欧拉公式进行推导得到:
由于,我们可以从得到:
对于小角度旋转,对做一阶泰勒展开近似,有:
把一个向量围绕轴选旋转一定角度可以使用双四元数乘法来实现:
根据四元数的乘法和公式,我们有
显然这就是向量旋转公式。注:这里的可以化为
在第三个等式中连续叉乘的化简使用了叉乘的反交换率和公式。此外也可以使用如下公式
公式证明了四元数也可以表示旋转,旋转向量通过指数映射可以得到四元数。接下来将对四元数的“半角效应”进行说明。
对于旋转轴,通过指数映射有四元数:
在给定旋转向量,我们有旋转矩阵和四元数的指数映射,,他们对向量做旋转操作的结果都是使其绕着同一旋转轴旋转同一角度。
也就对:
备注:
1. 对于一阶线性微分方程: