前言
以下笔记根据王华民老师的Games103课程整理得到。
刚体运动
在物理引擎中更新刚体的运动状态,包括其在某个时刻的位置与速度(平动),角速度与姿态(转动)
1.牛顿欧拉方程
刚体的运动可以由牛顿欧拉方程表示:
其中
a
a
a与
α
\alpha
α分别代表角速度与角加速度,
q
q
q是四元数,根据刚体动力学欧拉方程,有
α
=
I
−
1
(
τ
−
w
×
I
w
)
\alpha=I^{-1}(\tau-w\times Iw)
α=I−1(τ−w×Iw)
2.平动
首先受力分析,对牛顿欧拉方程积分更新位置与速度,如下:
无法直接求上述积分,离散化,应用显式积分或隐式积分或半隐式积分更新
x
x
x与
v
v
v。
半隐式:
3.转动
类比于平动,转动的状态由姿态与角速度标识。姿态可以由转动矩阵 R R R代表,但难以定义 R R R对时间的微分,姿态也可以由欧拉角代表,但存在“万向死锁”的问题,故最终选用四元数来代表姿态。