轴角
跳转到导航
跳转到搜索
旋转的轴角表示用两个值参数化了旋转: 一个轴或直线,和描述绕这个轴的旋转量的一个角。它也叫做旋转的指数坐标。
有时也叫做旋转向量表示,因为这两个参数(轴和角)可用在这个轴上的其模是旋转角的一个向量来表示。
用途[编辑]
轴角表示在处理刚体动力学的时候是方便的。它对特征化旋转还有在刚体运动的不同表示之间的转换是有用的。
例子[编辑]
假如你站在地面上,选取重力的方向为负 z 方向。如果你左转,你将绕 z 轴旋转 <math>\tfrac{\pi}{2}</math> 弧度 (或 90 度)。在轴角表示中,这将是
- <math>\langle \mathrm{axis}, \mathrm{angle} \rangle = \left( \begin{bmatrix} a_x \\ a_y \\ a_z \end{bmatrix},\theta \right) = \left( \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix},\frac{\pi}{2}\right)</math>
这可以表示为指示 z 方向的模为 <math>\tfrac{\pi}{2}</math> 的旋转向量。
- <math>\begin{bmatrix} 0 \\ 0 \\ \frac{\pi}{2} \end{bmatrix}</math>
与其他表示的联系[编辑]
表示旋转有很多方式。理解它们相互之间的区别和如何转换是重要的。
从 so(3) 到 SO(3) 的指数映射[编辑]
- <math>\exp\colon so(3) \to SO(3)</math>
本质上说,通过使用泰勒展开,你可以得出在这两种表示之间的闭合形式的关系。给出一个轴 <math> \omega \in \mathbb{R}^{3}</math> 和角 <math> \theta \in \mathbb{R}</math>,等价的旋转矩阵给出为:
- <math>R = \exp(\hat{\omega} \theta) = \sum_{k=0}^\infty\frac{(\hat{\omega}\theta)^k}{k!} = I + \hat{\omega} \theta + \frac{1}{2}(\hat{\omega}\theta)^2 + \frac{1}{6}(\hat{\omega}\theta)^3 + \cdots</math>
- <math>R = I + \hat{\omega}\left(\theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots\right) + \hat{\omega}^2 \left(\frac{\theta^2}{2!} - \frac{\theta^4}{4!} + \frac{\theta^6}{6!} - \cdots\right) </math>
- <math>R = I + \hat{\omega} \sin(\theta) + \hat{\omega}^2 (1-\cos(\theta))</math>
这里的 R 是 3x3 旋转矩阵而帽算子给出与叉积被乘数对应的反对称矩阵算符。
从 SO(3) 到 so(3) 的对数映射[编辑]
要获得旋转矩阵的轴角表示,计算旋转的角
- <math> \theta = \arccos\left( \frac{\mathrm{trace}(R) - 1}{2} \right) </math>
并接着使用它来找到轴
- <math> \omega = \frac{1}{2 \sin(\theta)} \begin{bmatrix} R(3,2)-R(2,3) \\ R(1,3)-R(3,1) \\ R(2,1)-R(1,2) \end{bmatrix}</math>
四元数[编辑]
要从轴角坐标变换到四元数使用下列表达式:
- <math>\mathbf q = \left(\cos\tfrac{\theta}{2}, \omega \sin\tfrac{\theta}{2}\right)</math>
给出一个单位四元数 q = r + v,提取轴角坐标可以使用下列表达式:
- <math>\theta = 2\,\arccos(r)\,</math>
- <math>\omega =
\begin{cases}
\dfrac{\mathbf{v}}{ \sin \tfrac{\theta}{2} }
, & \mathrm{if} \; \theta \neq 0 \\
0, & \mathrm{otherwise}
\end{cases} </math>