旋转的轴角表示用两个值参数化了旋转: 一个轴或直线,和描述绕这个轴的旋转量的一个角。它也叫做旋转的指数坐标。
有时也叫做旋转向量表示,因为这两个参数(轴和角)可用在这个轴上的其模是旋转角的一个向量来表示。
轴角表示在处理刚体动力学的时候是方便的。它对特征化旋转还有在刚体运动的不同表示之间的转换是有用的。
假如你站在地面上,选取重力的方向为负 z 方向。如果你左转,你将绕 z 轴旋转
弧度 (或 90 度)。在轴角表示中,这将是
![{\displaystyle \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)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/55facd168be3f26be45c8504bf8d7eb4f80e6b20)
这可以表示为指示 z 方向的模为
的旋转向量。
![{\displaystyle {\begin{bmatrix}0\\0\\{\frac {\pi }{2}}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e28c9fc67ca58468a53b627b2e223d12656a3585)
表示旋转有很多方式。理解它们相互之间的区别和如何转换是重要的。
从 so(3) 到 SO(3) 的指数映射
[编辑]
从旋转的轴角表示到旋转矩阵的变换使用指数映射。
![{\displaystyle \exp \colon so(3)\to SO(3)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/05a8595064cf9d81f9b671d451c56741e2608d77)
本质上说,通过使用泰勒展开,你可以得出在这两种表示之间的闭合形式的关系。给出一个轴
和角
,等价的旋转矩阵给出为:
![{\displaystyle 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 }](https://wikimedia.org/api/rest_v1/media/math/render/svg/c432fb33d4e041237dc126115694b23745b0e5ca)
![{\displaystyle 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)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/011ccaa8715c6031c4b31238d59ffed6d5e7a7b0)
![{\displaystyle R=I+{\hat {\omega }}\sin(\theta )+{\hat {\omega }}^{2}(1-\cos(\theta ))}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f622a7dab29cce188aa9f83b2b627254e591887a)
这里的 R 是 3x3 旋转矩阵而帽算子给出与叉积被乘数对应的反对称矩阵算符。
从 SO(3) 到 so(3) 的对数映射
[编辑]
要获得旋转矩阵的轴角表示,计算旋转的角
![{\displaystyle \theta =\arccos \left({\frac {\mathrm {trace} (R)-1}{2}}\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6400a524cddf6f9dcc3b20ef39b3b8bda744b1cb)
并接着使用它来找到轴
![{\displaystyle \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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c8b825bd9b7ef99158b459d0bbee8d9a9750477b)
要从轴角坐标变换到四元数使用下列表达式:
![{\displaystyle \mathbf {q} =\left(\cos {\tfrac {\theta }{2}},\omega \sin {\tfrac {\theta }{2}}\right)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ee1c1e3e592bd36f08f0b371b01069a6d4e670cb)
给出一个单位四元数 q = r + v,提取轴角坐标可以使用下列表达式:
![{\displaystyle \theta =2\,\arccos(r)\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c508a1acee91cabd1cadfd24e73c6b95d5aad972)
![{\displaystyle \omega ={\begin{cases}{\dfrac {\mathbf {v} }{\sin {\tfrac {\theta }{2}}}},&\mathrm {if} \;\theta \neq 0\\0,&\mathrm {otherwise} \end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1ffcde896b48555e74cd07611d1009faa8d65dda)