旋转矩阵

旋转的表示

在三维坐标系中,有三种表达形式

  1. 旋转矩阵

    \[ R = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix} \]

  2. 旋转角

    \[ \theta = \begin{pmatrix} \phi & \theta & \psi \end{pmatrix} \]

    旋转角又称欧拉角,一般情况下旋转角指的是坐标系绕\(x\)轴旋转后,再绕\(y\)轴旋转后,再绕\(z\)轴旋转分别的角度
  3. 旋转向量

    \[ r = \begin{pmatrix}r_x & r_y & r_z\end{pmatrix} \\ \theta = norm(r)\]

    刚体绕旋转轴旋转,\(r\)表示的是旋转轴的方向,\(r\)的长度\(norm(r)\)表示刚体绕轴旋转的角度

旋转向量与旋转矩阵之间的变换

旋转向量与旋转矩阵之间的变换又称为罗德里格斯变换(Rodrigues)

旋转向量变成旋转矩阵

\[ \theta \larr norm(r) \\ r \larr r/\theta \]

\[ R = \cos{\theta{I}} + (1-\cos{\theta})rr^T + \sin{\theta} \begin{bmatrix} 0 & -r_z & r_y \\ r_z & 0 & -r_x \\ -r_y & r_x & 0 \end{bmatrix} \]

旋转矩阵变为旋转向量

\[ \sin{\theta}\begin{bmatrix} 0 & -r_z & r_y \\ r_z & 0 & -r_x \\ -r_y & r_x & 0 \end{bmatrix} = \frac{R-R^T}{2} \]

\[ \theta = \arccos(\frac{tr(R-I)}{2}) \]

左右手坐标系确定及其旋转正向

这两个问题很容易弄混淆,要确定旋转正向必须先确定是左手坐标系还是右手坐标系。

  1. 判定坐标系:
    1. 使用左手,大拇指指向Z轴正向,其余四指由X向Y握起。如果可以达成,则为左手坐标系,否则为右手坐标系。
    2. 伸出左手,食指朝上,大拇指向右,中指向前,如果X,Y,Z三轴分别与大拇指,食指,中指同向,则为左手坐标系。否则为右手坐标。
    3. 左手坐标系与右手坐标系的区别仅在:Z轴方向相反。相同点:X向右,Y向上
  2. 有了坐标系,判断旋转正向:
    1. 从轴的正方向看向原点,左手坐标系下 :顺序时针方向即是旋转正向,右手坐标系下:逆时针方向即是旋转正向
    2. 左手坐标,绕Y轴旋转:左手握住Y轴,四指弯曲的方向就是旋转正向,这里就是由Z轴指向X轴。
      若绕Z轴旋转:左手握住Z轴,四指弯曲的方向就是旋转方向,这里是由X轴指向Y轴。

内旋是右乘 外旋是左乘吗

posted @ 2023-08-19 20:38  Champrin  阅读(154)  评论(0编辑  收藏  举报