【物理引擎系列(1)】基础刚体物理 - 旋转矩阵,欧拉角,角速度

(1)转动的描述

绕O 点旋转的直杆,P 点上的线速度v,旋转半径 ,以及角速度

Screenshot 2022-08-20 095105.png

注意

转动惯量

moment of inertia, rotational intertia , angular mass

I 的方向和 一致

力矩

torque

注意角加速度方向和角速度一致,都是向上
力矩和转动惯量关系


角动量

angular momentum

角动量是力矩对时间的积分,对应于动量是力对时间的积分

(2)欧拉角

一个旋转的欧拉角表示,在未定义旋转轴次序时,解是不唯一的。
常规欧拉角,参考的三个旋转轴为固定的一个坐标系的三个轴
例如 unity 中的欧拉角,旋转顺序为 zxy [link],坐标轴为世界坐标系的xyz。
这种描述方式在绕自身坐标系旋转时并不好用,更为常用的一种描述是用 yaw-pitch-roll 方式描述,所绕的坐标轴分别是自身坐标系下的 z(上)- y''-x'''(前) [link]

为了下文的角速度推导,以文献中常用的 z - x' - z'' 为例


rot123.png

旋转矩阵

在一个 XYZ 坐标系中,绕 X, Y, Z 坐标轴的旋转矩阵分别为

旋转矩阵是正交矩阵。三列分别等于旋转后的 x,y,z 轴在原坐标系中的表示。

z-x'-z'' 旋转顺序下的 推导

令 在坐标系A 中的表示记为
由 A -> B -> C -> D ,从A 分别乘上三次旋转矩阵,通过z-x'-z''到 D 坐标系



其中有 = = =

对于正交变换 ,当坐标系通过 由 A->B 时有如下推导:



将下式带入上式有

所以



旋转矩阵与轴角的互转

比较简单,不详述。详细可参考 wiki link
在轴角表示 中满足
可以推得

一个补充概念:


因此

=>

如果旋转矩阵为对称矩阵,此方法失效。需要求解对称矩阵的特征向量。但此时旋转矩阵一定为单位阵。所以轴任意轴向,转角为0。

得到轴之后代回 即可求解

从轴角到 R 也很容易推导,不再详述。直接参考 wiki 的结果即可。

(3)从欧拉角推导角速度

最终旋转得到的坐标系中 x3-y3 平面,与 x0-y0 平面的交线为黑色虚线,被称为 line of nodes。
旋转顺序 - -

ref_frame.png

角速度可以被定义在3个旋转轴上,以原始坐标系 A 中的 , , 表示,参考 wiki link。
(定义)

u1u2u3.png

但是为了便利,一般将其重定义为绕自己的三个local坐标轴 x3, y3, z3 的表示

从 , , 到 , , ,即将, , 投影到 x3-y3-z3 构成的坐标系中,有:



带入之前的角速度定义,整理得:


更多拓展参考[1],[2]。


[1] Euler Angles
[2] Classical_Mechanics - Rigid Body Rotation - Angular Velocity and Eulerian Angles

你可能感兴趣的:(【物理引擎系列(1)】基础刚体物理 - 旋转矩阵,欧拉角,角速度)