[关闭]
@kokerf 2018-04-05T01:08:52.000000Z 字数 15181 阅读 1831

旋转的表示

计算机视觉


1. 表示形式

旋转的四种表示形式:

1.1 旋转群 SO(3)

 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,

1.2 旋转向量

rotation_vector

如图,向量通过轴,旋转得到向量(右手定理)。记向量上投影为,垂直方向的投影为,有:

其中

这里的表示了在平面上的旋转。建立基底

,有。在平面上旋转,有

从而有

最终我们可以得到旋转后的向量,通过,得到向量旋转公式(vector rotation formula)

1.3 旋转矩阵

映射可以使用矩阵表示:

旋转用矩阵形式表示,则特殊正交群表示为:

与其对应的李代数表示为:

可以表示为,这里有:


的逆运算。

四元数

四元数的乘法表示为:

四元数作为另外一种表示形式,表示为:

2. 转换关系

2.1 旋转矩阵与轴角

a.

旋转属于刚体运动,其在上的轨迹可以认为是从初始位置开始对刚体的连续转动。由,对时间求导,有:

可以得到,

可见,是一个的反对称阵(skew-symmetric),属于。根据式我们有一对一的映射关系,可以写作


从而我们可以得到微分方程(ODE):


在原点附近,,等式化为。我们可以解释李代数在原点导数构成的空间,也就组成了的切空间(tangent space),或者向量空间(vectocity space)。因此,也被称为瞬时角速度。

如果是恒定的,对上式做积分(对微分方程求解)可以得到:

这里的都为旋转矩阵,也为旋转矩阵。定义为在期间的旋转向量,有:

这就是从的指数映射:

b.

定义从的映射为,有

的关系为


,称为旋转向量(rotation vector)或者轴角向量(angle-axis vector), 为旋转轴,为旋转角度。

c.

与指数映射相反,给出对数映射:

d.

对于旋转向量,从旋转矩阵的映射记为:

和对数映射之间的关系为:

e. 转换公式

旋转向量通过指数映射,做泰勒展开:

对于单位向量,叉乘矩阵满足:

使用上述两个公式,可以得到:

通过对比可以得到从旋转向量到旋转矩阵的封闭形式的表达式,也称为罗德里格斯公式(Rodrigues rotation formula):

记作。同时有另外的形式表示为

求迹可得

因此有:

f. 旋转操作

为了说明旋转矩阵通过对数映射得到的向量就是旋转向量,这里给出证明。

把一个向量绕着单位旋转轴旋转一定角度,可以表示为如下的线性乘法:

这里的.


可见结果就是向量旋转公式

2.2 四元数与轴角

a.

考虑单位四元数,有,对时间求导,有:

有:

可以得到是纯四元数。我们可以记作:

把式子两边左乘可以得到:

如果恒定,解一阶齐次线性微分方程可得:

这里的都是单位(unit)四元数,同样也是单位四元数。定义,有

这里给出的是从纯四元数空间到表示运动的单位四元数的映射关系

b.

上述表示了到四元数的映射,但是纯四元数空间是单位球的切空间(或李代数),并不是直接的速度空间(velocity space)。实际上是一个“半速空间”,我们有。有。我们可以直观的考虑,用四元数表示对一个三维向量的旋转为,向量经历了“两次”在四元数的作用,换句话说,四元数只对我们在上的旋转进行了“一半”的编码。具体会在下文说明。

为了表示直接从旋转向量到四元数的映射关系。这里体现half-angle effect, 定义映射如下:

的关系如下:

同时根据角速度,式子变为

c.

与指数映射对应,这里给出对数映射:

d.

同时给出映射:

很显然两个指数映射之间的关系为:

e. 转换公式

先考虑从旋转向量到四元数的转换。我们可以通过对欧拉公式进行推导得到:


这也就是指数映射

由于,我们可以从得到:

对于小角度旋转,对做一阶泰勒展开近似,有:

f. 旋转操作

把一个向量围绕轴选旋转一定角度可以使用双四元数乘法来实现:


这里的,我们把向量写作纯四元数的形式

四元数乘法为:

根据四元数的乘法和公式,我们有

显然这就是向量旋转公式。注:这里的可以化为

第三个等式中连续叉乘的化简使用了叉乘的反交换率和公式。此外也可以使用如下公式

公式证明了四元数也可以表示旋转,旋转向量通过指数映射可以得到四元数。接下来将对四元数的“半角效应”进行说明。

对于旋转轴,通过指数映射有四元数:


考虑四元数与单位(identity)四元数之间的夹角:

因此我们有,可见四元数在4D空间中与单位(identity)四元数的夹角是四元数对3D空间向量旋转的旋转角度的一半。

2.3 四元数与旋转矩阵

在给定旋转向量,我们有旋转矩阵和四元数的指数映射,他们对向量做旋转操作的结果都是使其绕着同一旋转轴旋转同一角度

也就对:


有:

两边都是对做线性操作,我们可以得到四元数到旋转矩阵的变换公式:

记作。通过四元数的左乘矩阵和右乘矩阵,我们有:

通过上式可以解得:

旋转矩阵和四元数之间有如下性质:


备注:
1. 对于一阶线性微分方程:


假设都连续。令

为一阶齐次线性方程,其通解为:

  1. 泰勒展开

参考:
Quaternion kinematics for the error-state Kalman filter

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注