Advertisement

旋转矩阵与旋转向量

阅读量:

文章目录

  • 两向量间的旋转轴及夹角
    • 旋转变换矢量及其性质

    • 旋转变换矢量与旋转矩阵间的转换关系

    • 由旋转矩阵求取旋转变换矢量的过程

    • 求解变换前后向量间的夹角

    • 确定变换前后向量的中垂线方向

    • 欧拉角

    • 四元数

    • 参考链接

两向量之间的转轴和转角

原始空间中的向量p_{0}与旋转空间中的向量p_{1}之间的夹角即为:
通过计算点积与模长的比例\frac{p_{0} \cdot p_{1}}{|p_{0}| |p_{1}|}
我们能够得到其间的夹角θ

旋转角所在的平面为有p_0p_1所构成的平面,那么旋转轴必垂直该平面。

设平面向量p_0 = [a_1, a_2, a_3]p_1 = [b_1, b_2, b_3]其叉乘运算结果即为旋转轴向量\vec{c}其具体计算如下:

\vec{c} = \begin{pmatrix} a_2b_3 - a_3b_2 \\ a_3b_1 - a_1b_3 \\ a_1b_2 - a_2b_1 \end{pmatrix}

旋转向量

任意旋转都可以用一个旋转轴和一个旋转角来刻画。

旋转轴方向向量u,旋转角\theta,即轴角。

旋转向量到旋转矩阵

该旋转向量与旋转矩阵之间的转换关系由罗德里格斯公式(Rodrigues's Formula)所表示:其中,
\mathrm{R=\cos\theta I+(1-\cos\theta)uu^T+\sin\theta u^\wedge}

运算符^的功能是将向量映射至其对应的反对称矩阵。具体而言,在这种运算中,
给定一个三维空间中的单位向量u,
其对应的反对称矩阵记为U= u^。

给定单位旋转向量\mathrm u及其对应的旋转轴\theta后,则其对应的旋转矩阵则可表示为以下形式:
其第一行元素包括\cos\theta加上\mathrm u_x平方乘以(1减去\cos\theta),其中一项为\mathrm u_x乘以\mathrm u_y乘以(1减去\cos\theta),另一项为负的\mathrm u_z乘以sinθ;
同样地,在第二行中包含了类似的组合表达式;
第三行则由类似的计算方式构成。

旋转矩阵到旋转向量

计算旋转角

$\begin{aligned}
&\text{矩阵}\ R\ 的迹运算结果为:
\
&= \cos\theta \cdot \text{单位矩阵迹运算结果}

  • (1 - \cos\theta) \cdot 单位向量外积迹运算结果
  • \sin\theta \cdot 单位向量反对称矩阵迹运算结果
    \
    &= 3\cos\theta + (1 - \cos\theta)
    \
    &= 1 + 2\cosθ.
    &endaligned$

推得:

\theta=\arccos\frac{\mathrm{tr}(\mathrm{R})-1}2

计算旋转轴

旋转轴上的向量在旋转过程中保持不变,则满足以下关系式:
\mathrm{Ru=u.}
其中矩阵R的特征值1对应的特征向量即为转轴u。通过求解该方程并将其结果进行单位化处理,则可获得转轴u。

欧拉角

遵循右手坐标系原则,在该系统中当大拇指指向坐标轴的正向时,四指弯曲的方向代表旋转的正向。其中包含三个自由度指标:分别为偏航角(Yaw)、俯仰角(Pitch)和翻滚角(Roll)。

欧拉角理论将任意旋转分为绕三个坐标轴的旋转,并按照特定顺序进行操作。其旋转矩阵可表示为Rot_z(\theta) Rot_y(\beta) Rot_x(\alpha)

当任意一个坐标轴以90度角度进行旋转变换时,在整体上的旋转变换效果与另一轴保持一致,则这种情况即被定义为"死锁"。

无论绕着x坐标系中的x₁轴向右或向左转动90°,将会使得y₁或z₁坐标系中的点位于同一直线上."失去了一个自由度"也就意味着真正参与该操作的作用体仅有y₁与x₁两个坐标系(或者是z₁与x₁两个坐标系)."因此,不可能围绕原始z₁坐标系中的z₂轴执行任何旋转变换的操作.

为了解决“死锁“的问题,我们要使用四个自由量,这就引出了”四元数“的概念。

四元数

该领域中的三维坐标表示方法较为抽象难以理解;然而该数学模型能够简洁而优雅地描述三维空间中的旋转操作。值得注意的是:不仅能够有效避免欧拉角所导致的运动学奇异(即死锁问题),同时也简化了涉及旋转矩阵的复杂运算。

参考链接

三维空间中刚体运动系列第二篇:旋转向量与罗德里格斯公式的深入解析

全部评论 (0)

还没有任何评论哟~