首页 关于
树枝想去撕裂天空 / 却只戳了几个微小的窟窿 / 它透出天外的光亮 / 人们把它叫做月亮和星星

刚体动力学算法

最近想通过研究 MuJoCo 的文档和代码,入门仿真引擎。但是专业不足,很多说法都没有听过。 为了有个系统的认知,找来一本介绍刚体动力学算法的教材来看看。 据说 Mujoco 中用到的 RNE, CRB 算法以及稀疏惯性分解(sparse inertia factorization)都是参考的它。

引言 + chapter 1

第一部分:数学和物理基础

Chapter2: 空间向量代数
Spatial Vector Algebra
空间矢量(spatial vector)是 6D 的向量,用于描述刚体平移和旋转两个方面的运动和力。它提供了一套紧凑的符号,用于研究刚体动力学。 使得我们可以快速的开发运动方程,并以简洁地形式表达,方便我们设计动力学算法,并将之转换成计算机代码。
Chapter3: 刚体系统的动力学
Dynamics of Rigid Body Systems
刚体系统,是由若干个关节连接在一起的刚体构成的,它们可能受到各种力的作用。关节的作用是对其连接的两个物体施加运动约束,给系统引入了约束力。 本章大部分内容都是在讲描述运动约束的方法,以及如何将之应用到刚体的运动方程中。
Chapter4: 刚体系统建模
Modelling Rigid Body Systems
刚体系统是由多个零部件组合而成的。这些零部件包括刚体、关节、以及各种力元件。关节负责系统的运动学约束。 本书中的动力学算法都是基于模型的,而本章将提供建立系统模型的一些套路。

第二部分:动力学经典算法

Chapter5: 逆动力学
Inverse Dynamics
逆动力学是在计算产生指定刚体系统加速度所需要的力。本章介绍的递归牛顿欧拉算法,是运动树逆动力学的最简单有效的算法,其计算复杂度是 \(O(n)\)。
Chapter6:
正动力学——惯性矩阵法
Forward Dynamics —— Inertia Matrix Methods
正动力学是给定作用力计算刚体系统的加速度。本章和下一章介绍运动树的正动力学。
惯性矩阵法需要计算一个 \(n \times n\) 的关节空间惯性矩阵, 然后分解该矩阵,求解 \(n\) 个关于加速度变量的线性方程组。此类算法在最坏情况下具有 \(O(n^3)\) 的复杂度,或者说是\(O(nd^2)\)的复杂度, 其中 \(d\) 是树的深度。
Chapter7:
正动力学——传播算法
Forward Dynamics —— Propagation Methods
本章介绍运动树的正动力学的传播算法。该算法将加速度沿着关节,从一个刚体传播到下一个刚体。 它需要多次遍历运动树,每次遍历都对每个刚体执行固定数量的计算,其计算复杂度是 \(O(n)\)。
Chapter8: 闭环系统
Closed Loop Systems
本章讨论存在环路的刚体系统的正逆动力学。主要讨论如何通过闭环系统的生成树建立闭环约束,这种方法被认为是最佳选择。 此外,本章还会简单介绍,如何从无约束刚体开始建立所有的关节约束方法。

第三部分:高级内容

Chapter9: 混合动力学
Hybrid Dynamics and Other Topics
简介。

专有名词参考翻译




Copyright @ 高乙超. All Rights Reserved. 京ICP备16033081号-1