22.4. 本章小结#
本章介绍了刚体动力学、碰撞与摩擦的处理以及铰链刚体的仿真。
在刚体动力学一节,我们首先介绍了如何使用质心位置和旋转矩阵描述刚体的状态,以及如何用质心速度和角速度刻画刚体的运动;随后带领读者了解了刚体力学,推导了外力与外力矩如何影响刚体的运动状态;最后将上述内容汇总,结合时间离散化,给出了刚体模拟的时间积分算法。
在碰撞与摩擦一节,我们介绍了如何利用有符号距离场以及采样点进行刚体的碰撞检测,随后讲述了基于惩罚力和摩擦力的碰撞处理方式,最后简要介绍了其他的碰撞检测和碰撞处理方法并为读者指出了相关阅读材料。
在铰链刚体一节,我们分别介绍了约束法和广义坐标法是如何模拟铰链刚体的,并给出了不同种类关节的表示和处理方式,最后还点出了两种方法的利弊。读者在学习后应当能够根据场景需要选择合适的模拟方法。
22.4.1. 习题#
设场景中障碍物的有符号距离场为 \(\phi(x,y,z)=\sqrt{x^2+y^2+z^2}-1\),质点 \(A\) 的位置 \(\boldsymbol x_A=(0.7,-0.4,0.6)\),速度 \(\boldsymbol v_A=(0,1,-1)\),质点 \(B\) 的位置 \(\boldsymbol x_B=(-0.99,0,0)\),速度 \(\boldsymbol v_B=(1,1,0)\)。回答如下问题:
质点 \(A\) 和 \(B\) 是否与障碍物发生碰撞?
质点质量均为 \(m=1\),设时间步长 \(h=0.01\),摩擦系数 \(\mu=0.5\),按照惩罚方法进行碰撞处理,惩罚力的系数 \(k=100\),求出两个质点在一个时间步后的速度。(场景中不存在其它外力)
设两刚体 \(A\) 和 \(B\) 的角速度分别为 \(\boldsymbol\omega_1\) 和 \(\boldsymbol\omega_2\),求证:\(A\) 相对 \(B\) 的角速度为 \(\boldsymbol\omega_1-\boldsymbol\omega_2\)。
请解释为何用约束表示关节的方法可能出现模拟过程中关节错位的现象。(提示:不妨举个例子尝试一下)
考虑图 22.8 中的合页关节,设刚体 \(1\) 与刚体 \(2\) 的质心位置分别为 \(\boldsymbol x_1=(x_1,y_1,z_1)^\top\)、\(\boldsymbol x_2=(x_2,y_2,z_2)^\top\),旋转矩阵分别为 \(\boldsymbol R_1\)、\(\boldsymbol R_2\),两刚体的质心与关节的中心共面,关节角为 \(\theta\),刚体 \(1\) 和 \(2\) 的质心到关节中心的距离分别为 \(l_1\) 和 \(l_2\)。我们使用欧拉角的方式表示刚体 \(1\) 的旋转,旋转顺序为 \(ZYX\),角度分别为 \(\theta_Z\)、\(\theta_Y\)、\(\theta_X\)。在 \(\theta_Z=\theta_Y=\theta_X=0\) 时,合页关节的旋转轴为 \(y\) 轴正方向,且与刚体 \(1\) 和关节中心连线垂直;\(\theta=0\) 时两刚体质心与关节中心三点共线,且两刚体质心不重合。现在选取广义坐标为 \((x_1,y_1,z_1,\theta_Z,\theta_Y,\theta_X,\theta)\),请用广义坐标表示出 \(\boldsymbol x_1\)、\(\boldsymbol x_2\)、\(\boldsymbol R_1\) 和 \(\boldsymbol R_2\)。
22.4.2. 参考文献#
David Baraff. Physically based modeling: rigid body simulation. SIGGRAPH Course Notes, ACM SIGGRAPH, 2(1):2–1, 2001.
Zachary Ferguson, Pranav Jain, Denis Zorin, Teseo Schneider, and Daniele Panozzo. High-order incremental potential contact for elastodynamic simulation on curved meshes. In ACM SIGGRAPH 2023 Conference Proceedings, SIGGRAPH '23. New York, NY, USA, 2023. Association for Computing Machinery. URL: https://doi.org/10.1145/3588432.3591488, doi:10.1145/3588432.3591488.
Zachary Ferguson, Minchen Li, Teseo Schneider, Francisca Gil-Ureta, Timothy Langlois, Chenfanfu Jiang, Denis Zorin, Danny M. Kaufman, and Daniele Panozzo. Intersection-free rigid body dynamics. ACM Transactions on Graphics (SIGGRAPH), 2021.
Minchen Li, Zachary Ferguson, Teseo Schneider, Timothy Langlois, Denis Zorin, Daniele Panozzo, Chenfanfu Jiang, and Danny M. Kaufman. Incremental potential contact: intersection- and inversion-free large deformation dynamics. ACM Trans. Graph. (SIGGRAPH), 2020.
Bolun Wang, Zachary Ferguson, Teseo Schneider, Xin Jiang, Marco Attene, and Daniele Panozzo. A large-scale benchmark and an inclusion-based algorithm for continuous collision detection. ACM Trans. Graph., sep 2021. URL: https://doi.org/10.1145/3460775, doi:10.1145/3460775.
曹虎周. 刚体定点运动瞬时转轴的存在与唯一性证明. 榆林高等专科学校学报, pages 57, 2000.