奇妙的旋转(1):四元数,欧拉角及方向余弦矩阵

1.从二维到三维:旋转的复杂化

旋转是对应刚体的,刚体可以看作一个质点系,刚体中每两个质点之间相对距离不发生变化。
质点的运动用一个线速度即可描述,当刚体内质点运动具有不同线速度时,刚体发生了转动,描述刚体整体运动的参数是角速度和角加速度。
描述旋转最形象的实例是陀螺,可以看到,旋转发生时是有一个旋转轴的,旋转轴质点上线速度为0,其它质点速度v=w×r,注意这三个量是矢量,其中v w是自由矢量,r是固定矢量。注意,刚体运动的每一个瞬时都有一个旋转轴。
这样,刚体做平面运动中的旋转就很简单,因为其旋转轴只能垂直于运动平面,角速度和角加速度的方向确定了,这样角速度和角加速度从一个矢量退化为标量(准确的说,角速度和角加速度的方向有两个,一个是平面正面,一个是反面,但可以用正负号表示)。这是二维的情形。二维的旋转用复数和欧拉公式可以很好的描述。
但从二维到三维时,事情复杂了。为什么,因为旋转轴方向不固定了。所以刚体在三维内运动与二维动相比具有本质的区别。理解了这一点就可以进一步了解四元数了。

2 四元数:描述旋转本质的数学工具

根据

### 欧拉角四元数方向余弦矩阵之间的数学转换 #### 从欧拉角四元数的转换 设给定一组绕Z轴-Y轴-X轴旋转欧拉角分别为ψ(偏航), θ(俯仰), φ(滚转),则对应的四元数q可表示为: \[ q = \begin{bmatrix} w \\ x \\ y \\ z \end{bmatrix} = \begin{bmatrix} \cos(\phi/2)\cos(\theta/2)\cos(\psi/2)+\sin(\phi/2)\sin(\theta/2)\sin(\psi/2) \\ \sin(\phi/2)\cos(\theta/2)\cos(\psi/2)-\cos(\phi/2)\sin(\theta/2)\sin(\psi/2) \\ \cos(\phi/2)\sin(\theta/2)\cos(\psi/2)+\sin(\phi/2)\cos(\theta/2)\sin(\psi/2) \\ \cos(\phi/2)\cos(\theta/2)\sin(\psi/2)-\sin(\phi/2)\sin(\theta/2)\cos(\psi/2) \end{bmatrix} \] 此表达式展示了如何由三个独立的角度构建一个描述物体方位变化的四元数值[^1]。 #### 从四元数方向余弦矩阵(DCM)的转换 对于任意单位四元数 \( q=[w,x,y,z]^T \),其对应的方向余弦矩阵可通过下述关系获得: \[ C = \begin{pmatrix} 1 - 2(y^{2} + z^{2}) & 2(xy - wz) & 2(xz + wy) \\ 2(xy + wz) & 1 - 2(x^{2} + z^{2}) & 2(yz - wx) \\ 2(xz - wy) & 2(yz + wx) & 1 - 2(x^{2} + y^{2}) \end{pmatrix}\] 这里C即为我们所寻求的方向余弦矩阵,它能够有效地表征两个坐标系间的相对定向关系。 #### 从方向余弦矩阵欧拉角的转换 当已知方向余弦矩阵\( C_{i,j} \),可以通过下面给出的一组公式计算出相应的欧拉角度数: \[ \tan{\phi}=\frac{-c_{3,2}}{c_{3,3}},\quad \tan{\theta}=-\frac{c_{3,1}}{\sqrt{(c_{3,2})^2+(c_{3,3})^2}},\quad \tan{\psi}=+\frac{c_{2,1}}{c_{1,1}} \] 需要注意的是,在某些特殊情况下(比如奇异位置),上述公式的应用可能会遇到除零错误等问题;此时应采取适当措施加以规避或处理[^4]。 ```matlab function [eulerAngles] = dcmToEuler(dcm) phi = atan2d(-dcm(3,2), dcm(3,3)); theta = asind(-90°,+90°] psi = atan2d(dcm(2,1), dcm(1,1)); eulerAngles = [phi; theta; psi]; end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值