问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

旋转矩阵的具体推理:绕轴旋转详解

创作时间:
作者:
@小白创作中心

旋转矩阵的具体推理:绕轴旋转详解

引用
CSDN
1.
https://blog.csdn.net/2301_77637149/article/details/142907812

旋转矩阵是计算机图形学、机器人学等领域中一个非常重要的概念,用于描述坐标系之间的旋转关系。本文将从基本知识出发,详细推导绕x轴、y轴和z轴旋转的旋转矩阵,帮助读者深入理解这一概念。

基本知识

对于一个坐标系的旋转变换,无论它怎么转,都可以直接拆分为绕3个轴旋转,即绕x轴旋转、绕y轴旋转、绕z轴旋转。(注意,以下公式均以顺时针为标准方向,使用的左手系)

对于绕x轴旋转,x轴本身是不会改变的,所以我们只需要关注yoz平面。同理,对于绕y轴旋转,我们只需要关注xoz平面;对于z轴旋转,我们只需要关注yoz平面。

旋转矩阵本身就是目标坐标系的坐标轴在参考坐标系中的投影矩阵。即:

$$
R_B^A = \begin{bmatrix}
\hat{X}B^A & \hat{Y}B^A & \hat{Z}B^A
\end{bmatrix} =
\begin{bmatrix}
r
{11} & r
{21} & r
{31} \
r_{12} & r_{22} & r_{32} \
r_{13} & r_{23} & r_{33}
\end{bmatrix}
$$

其中,$R_B^A$的A表示参考坐标系{A},B表示被描述的坐标系{B}。$\hat{X}_B^A$表示目标坐标系{B}的x轴在参考坐标系{A}的投影:

$$
\hat{X}B^A = \begin{bmatrix}
r
{11} \
r_{12} \
r_{13}
\end{bmatrix}
$$

三个r分别对应着在参考坐标系的投影。

进一步,我们设置单位向量$\hat{X}_A, \hat{Y}_A, \hat{Z}_A, \hat{X}_B, \hat{Y}_B, \hat{Z}_B$,其中$\hat{X}_B$为表示目标坐标系{B}的x轴。那么如此一来,对于投影计算,我们可以直接使用两向量的点积来表示,如下:

$$
R_B^A = \begin{bmatrix}
r_{11} & r_{21} & r_{31} \
r_{12} & r_{22} & r_{32} \
r_{13} & r_{23} & r_{33}
\end{bmatrix} =
\begin{bmatrix}
\hat{X}_B \cdot \hat{X}_A & \hat{Y}_B \cdot \hat{X}_A & \hat{Z}_B \cdot \hat{X}_A \
\hat{X}_B \cdot \hat{Y}_A & \hat{Y}_B \cdot \hat{Y}_A & \hat{Z}_B \cdot \hat{Y}_A \
\hat{X}_B \cdot \hat{Z}_A & \hat{Y}_B \cdot \hat{Z}_A & \hat{Z}_B \cdot \hat{Z}_A
\end{bmatrix}
$$

例如$\hat{X}_B \cdot \hat{X}_A$表示目标坐标系{B}的x轴在参考坐标系{A}的x轴上的投影。

故有以下计算结果:

绕x轴旋转

$$
R(x, \theta) =
\begin{bmatrix}
\hat{X}_B \cdot \hat{X}_A & \hat{Y}_B \cdot \hat{X}_A & \hat{Z}_B \cdot \hat{X}_A \
\hat{X}_B \cdot \hat{Y}_A & \hat{Y}_B \cdot \hat{Y}_A & \hat{Z}_B \cdot \hat{Y}_A \
\hat{X}_B \cdot \hat{Z}_A & \hat{Y}_B \cdot \hat{Z}_A & \hat{Z}_B \cdot \hat{Z}_A
\end{bmatrix} =
\begin{bmatrix}
1 & 0 & 0 \
0 & |\hat{Y}_B| \cdot |\hat{Y}_A| \cdot \cos\theta & |\hat{Z}_B| \cdot |\hat{Y}_A| \cdot \cos(\frac{\pi}{2} + \theta) \
0 & |\hat{Y}_B| \cdot |\hat{Z}_A| \cdot \cos(\frac{\pi}{2} - \theta) & |\hat{Z}_B| \cdot |\hat{Z}_A| \cdot \cos\theta
\end{bmatrix} =
\begin{bmatrix}
1 & 0 & 0 \
0 & c\theta & -s\theta \
0 & s\theta & c\theta
\end{bmatrix}
$$

这里x轴不变,所以$X_B$在$X_A$的投影为$|\hat{X}_B| \cdot |\hat{X}_A| \cdot \cos0 = 1$,其余都正交,为0。

同理,有其余的:

绕y轴旋转

$$
R(y, \theta) =
\begin{bmatrix}
\hat{X}_B \cdot \hat{X}_A & \hat{Y}_B \cdot \hat{X}_A & \hat{Z}_B \cdot \hat{X}_A \
\hat{X}_B \cdot \hat{Y}_A & \hat{Y}_B \cdot \hat{Y}_A & \hat{Z}_B \cdot \hat{Y}_A \
\hat{X}_B \cdot \hat{Z}_A & \hat{Y}_B \cdot \hat{Z}_A & \hat{Z}_B \cdot \hat{Z}_A
\end{bmatrix} =
\begin{bmatrix}
|\hat{X}_B| \cdot |\hat{X}_A| \cdot \cos\theta & 0 & |\hat{Z}_B| \cdot |\hat{X}_A| \cdot \cos(\frac{\pi}{2} - \theta) \
0 & 1 & 0 \
|\hat{X}_B| \cdot |\hat{Z}_A| \cdot \cos(\frac{\pi}{2} + \theta) & 0 & |\hat{Z}_B| \cdot |\hat{Z}_A| \cdot \cos\theta
\end{bmatrix} =
\begin{bmatrix}
c\theta & 0 & s\theta \
0 & 1 & 0 \
-s\theta & 0 & c\theta
\end{bmatrix}
$$

绕z轴旋转

$$
R(z, \theta) =
\begin{bmatrix}
\hat{X}_B \cdot \hat{X}_A & \hat{Y}_B \cdot \hat{X}_A & \hat{Z}_B \cdot \hat{X}_A \
\hat{X}_B \cdot \hat{Y}_A & \hat{Y}_B \cdot \hat{Y}_A & \hat{Z}_B \cdot \hat{Y}_A \
\hat{X}_B \cdot \hat{Z}_A & \hat{Y}_B \cdot \hat{Z}_A & \hat{Z}_B \cdot \hat{Z}_A
\end{bmatrix} =
\begin{bmatrix}
|\hat{X}_B| \cdot |\hat{X}_A| \cdot \cos\theta & |\hat{Y}_B| \cdot |\hat{X}_A| \cdot \cos(\frac{\pi}{2} + \theta) & 0 \
|\hat{X}_B| \cdot |\hat{Y}_A| \cdot \cos(\frac{\pi}{2} - \theta) & |\hat{Y}_B| \cdot |\hat{Y}_A| \cdot \cos\theta & 0 \
0 & 0 & 1
\end{bmatrix} =
\begin{bmatrix}
c\theta & -s\theta & 0 \
s\theta & c\theta & 0 \
0 & 0 & 1
\end{bmatrix}
$$

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号