Tech Station

理论基础 › 🦾 运动学与动力学建模

🦾

运动学与动力学建模 Kinematics & Dynamics

这是机器人学的「本体论」:如何用数学描述一个由刚体和关节组成的机构在哪里、怎么动、受什么力。从旋转与齐次变换出发,经过运动学与雅可比、拉格朗日动力学,到递归算法、接触力学和足式机器人常用的简化模型。学完你应该能对一个机械臂或四足机器人写出它的正运动学、雅可比和运动方程,并在 MuJoCo / Pinocchio 里验证。

6 个主题 约 135 小时 先修:📐 数学与物理准备
已掌握 0/6

学完你将能够

1刚体位姿与李群 SO(3) / SE(3) Rigid-Body Motion, Rotations & Twists

⏱ 约 20 小时

一个刚体的位姿由旋转 R ∈ SO(3) 和平移 p 组成,合在一起是齐次变换 T ∈ SE(3)。旋转不是向量空间(不能直接相加),这是机器人学最容易出 bug 的地方——要掌握旋转矩阵、四元数、轴角、指数坐标之间的关系,以及「在切空间做微小扰动」的思想。

核心要点

  • 旋转的多种表示:旋转矩阵、欧拉角(有万向锁)、轴角、单位四元数(双重覆盖)
  • 齐次变换 T 与坐标系链:T_ac = T_ab T_bc;左乘 / 右乘分别对应世界系 / 本体系变换
  • 角速度与旋量(twist)ξ = (ω, v),se(3) 与指数映射 exp: se(3) → SE(3);伴随变换 Ad_T 变换旋量与力旋量
  • 在李群上做优化 / 滤波:用切空间的小扰动 δ ∈ ℝ⁶ 表示误差(⊞ / ⊟ 运算),左 / 右扰动的区别

关键公式

T=[Rp01]∈SE(3),R⊤R=I,  det⁡R=1T = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix} \in SE(3),\quad R^{\top}R = I,\; \det R = 1
齐次变换矩阵
R=exp⁡([ω^]θ)=I+sin⁡θ [ω^]+(1−cos⁡θ)[ω^]2R = \exp([\hat{\omega}]\theta) = I + \sin\theta\,[\hat{\omega}] + (1-\cos\theta)[\hat{\omega}]^2
Rodrigues 公式:轴角 → 旋转矩阵
自测:学完应该能回答
  1. 为什么不能直接对两个旋转矩阵取平均?正确做法是什么?
  2. 本体系角速度 ω_b 与世界系角速度 ω_w 的关系是什么?

推荐资料(全部免费)

2正 / 逆运动学与雅可比 Forward / Inverse Kinematics & Jacobians

⏱ 约 25 小时

正运动学回答「给定关节角,末端在哪」;雅可比回答「关节速度如何映射到末端速度」;逆运动学回答「末端要到哪,关节该转多少」。指数积(PoE)公式让这些推导变得系统而优雅,而雅可比几乎出现在之后所有控制算法里。

核心要点

  • 指数积公式 T(θ) = e^{[S₁]θ₁} ⋯ e^{[Sₙ]θₙ} M,比 D-H 参数更少出错;URDF / MJCF 里的关节树如何对应
  • 空间 / 本体雅可比,奇异构型与可操作度椭球;力与速度的对偶 τ = Jᵀ F
  • 数值逆运动学:牛顿-拉夫森、阻尼最小二乘(DLS)、零空间投影实现多任务优先级
  • 把 IK 写成 QP:加关节限位、避障、速度约束——这就是「任务空间控制」的雏形
  • 闭链与并联机构、轮式移动机器人运动学(差速、麦克纳姆)、四旋翼的运动学约束

关键公式

T(θ)=e[S1]θ1 e[S2]θ2⋯e[Sn]θn MT(\theta) = e^{[\mathcal{S}_1]\theta_1}\, e^{[\mathcal{S}_2]\theta_2}\cdots e^{[\mathcal{S}_n]\theta_n}\, M
指数积(PoE)正运动学
V=J(θ) θ˙,θ˙=J⊤(JJ⊤+λ2I)−1 Vd\mathcal{V} = J(\theta)\,\dot{\theta},\qquad \dot{\theta} = J^{\top}(JJ^{\top} + \lambda^2 I)^{-1}\,\mathcal{V}_d
雅可比与阻尼最小二乘逆运动学
自测:学完应该能回答
  1. 6 自由度机械臂在奇异构型附近,为什么末端很小的速度需求会导致巨大的关节速度?
  2. 零空间投影 (I − J⁺J) 为什么可以在不影响主任务的前提下执行次任务?

推荐资料(全部免费)

3刚体动力学:拉格朗日与运动方程 Rigid-Body Dynamics

⏱ 约 30 小时

动力学告诉你力 / 力矩如何产生运动。用拉格朗日方法(L = 动能 − 势能)可以系统地推出机器人的运动方程 M(q)q̈ + C(q, q̇)q̇ + g(q) = τ。理解质量矩阵、科氏 / 向心项、重力项各自的物理意义,是所有基于模型的控制的前提。

核心要点

  • 拉格朗日方程与广义坐标;为什么它比牛顿-欧拉更适合推导闭式方程
  • 机器人动力学标准形式:质量矩阵 M(q) 对称正定、Ṃ − 2C 反对称、参数线性性 Y(q,q̇,q̈)π = τ(辨识的基础)
  • 欠驱动系统:控制输入数少于自由度数(单摆车、四足、无人机),动力学约束不能被抵消
  • 能量与被动性;哈密顿形式与动量;为什么这些性质在控制设计里有用

关键公式

ddt∂L∂q˙−∂L∂q=τ,L=T(q,q˙)−V(q)\frac{d}{dt}\frac{\partial L}{\partial \dot{q}} - \frac{\partial L}{\partial q} = \tau,\qquad L = T(q,\dot q) - V(q)
欧拉–拉格朗日方程
M(q) q¨+C(q,q˙) q˙+g(q)=τ+Jc(q)⊤fcM(q)\,\ddot{q} + C(q,\dot{q})\,\dot{q} + g(q) = \tau + J_c(q)^{\top} f_c
机器人运动方程(含接触力)
自测:学完应该能回答
  1. 质量矩阵 M(q) 为什么一定对称正定?它的物理含义是什么?
  2. 为什么欠驱动系统不能用「计算力矩法」把动力学完全抵消?

推荐资料(全部免费)

4空间向量代数与递归动力学算法 Spatial Algebra, RNEA / ABA / CRBA & Derivatives

⏱ 约 20 小时

闭式拉格朗日方程在几十个自由度上不可行,实际软件(Pinocchio、MuJoCo、Drake)都用 Featherstone 的空间向量代数与 O(n) 递归算法:RNEA 算逆动力学、ABA 算正动力学、CRBA 算质量矩阵。理解它们的结构,才能读懂仿真器源码、正确处理浮动基座,以及利用解析导数做优化。

核心要点

  • 空间向量(6D 运动 / 力向量)、空间惯量、Plücker 坐标;关节模型与运动子空间 S
  • RNEA:向外递推速度 / 加速度,向内递推力,O(n) 得到 τ = ID(q, q̇, q̈)
  • ABA:铰接体惯量,O(n) 正动力学 q̈ = FD(q, q̇, τ);CRBA 组合刚体算法求 M(q)
  • 浮动基座:把基座当 6 自由度虚关节,广义坐标 q = (基座位姿, 关节角),速度不等于坐标导数
  • 动力学的解析导数(∂ID/∂q 等):让 DDP / MPC 快一个量级;代码生成与自动微分

关键公式

τ=ID(q,q˙,q¨)=M(q)q¨+h(q,q˙),Mij=CRBA:  Si⊤Imax⁡(i,j)cSj\tau = \mathrm{ID}(q,\dot q,\ddot q) = M(q)\ddot q + h(q,\dot q),\qquad M_{ij} = \mathrm{CRBA}:\; S_i^{\top} I^c_{\max(i,j)} S_j
逆动力学(RNEA)与质量矩阵(CRBA)的结构
自测:学完应该能回答
  1. 为什么 RNEA 是 O(n) 而直接构造 M(q) 再求逆是 O(n³)?
  2. 浮动基座机器人的广义速度为什么不能写成广义坐标的时间导数?

推荐资料(全部免费)

5接触与冲击动力学、混合系统 Contact, Impact & Hybrid Dynamics

⏱ 约 25 小时

足式行走和抓取的本质都是接触:接触力单边(只能推不能拉)、有摩擦锥约束、状态在触地瞬间跳变。这些让动力学变成互补问题与混合系统,也是仿真器最难、控制器最容易出错的地方。

核心要点

  • 单边接触的互补条件 0 ≤ φ(q) ⊥ λ ≥ 0;库仑摩擦锥与其多面体近似
  • 刚性接触求解:LCP / 时间步进(Stewart–Trinkle);软接触模型(弹簧-阻尼、MuJoCo 的软约束)
  • 冲击:速度跳变的冲量-动量方程,恢复系数;足式机器人的触地重置映射
  • 混合系统:连续流 + 离散跳变(守卫与重置),庞加莱映射与极限环稳定性
  • 接触隐式轨迹优化 vs 预先给定接触序列;为什么接触让梯度不连续

关键公式

0≤ϕ(q)  ⊥  λn≥0,∥λt∥≤μ λn0 \le \phi(q)\;\perp\;\lambda_n \ge 0,\qquad \|\lambda_t\| \le \mu\,\lambda_n
单边接触互补条件与摩擦锥
M(q) (q˙+−q˙−)=Jc⊤Λ,Jc q˙+=0M(q)\,(\dot q^{+} - \dot q^{-}) = J_c^{\top}\Lambda,\qquad J_c\,\dot q^{+} = 0
刚性完全非弹性冲击的冲量-动量关系
自测:学完应该能回答
  1. 为什么「脚触地」会让 RL 策略梯度或轨迹优化的梯度不可靠?
  2. 软接触与刚性接触各自的优缺点?仿真器为什么普遍选软接触?

推荐资料(全部免费)

6浮动基座、质心动力学与简化模型 Floating Base, Centroidal Dynamics & Template Models

⏱ 约 15 小时

足式机器人全身动力学有几十个自由度,实时规划往往用简化模型:线性倒立摆(LIP)、弹簧负载倒立摆(SLIP)、单刚体模型(SRBD)、质心动力学。理解每个模型忽略了什么,就能理解 MPC 为什么能工作、什么时候会失效。

核心要点

  • 浮动基座的欠驱动:基座 6 自由度无直接驱动,只能通过接触力改变动量
  • 质心动量与质心动力学:ḣ = Σ 外力 / 力矩,全身控制的「上层约束」
  • LIP:零力矩点(ZMP)与捕获点,双足步态生成的经典工具
  • SRBD:忽略腿部惯量,把机器人当一个带接触力的刚体,四足凸 MPC 的模型
  • 从简化模型到全身:WBC 负责把简化模型的输出映射到关节力矩

关键公式

x¨=gzc (x−pzmp)\ddot{x} = \frac{g}{z_c}\,(x - p_{\text{zmp}})
线性倒立摆(LIP)
mp¨=∑ifi−mg,ddt(Iω)=∑i(ri−p)×fim\ddot{p} = \sum_i f_i - mg,\qquad \frac{d}{dt}(I\omega) = \sum_i (r_i - p)\times f_i
单刚体(SRBD)动力学
自测:学完应该能回答
  1. ZMP 落在支撑多边形之外意味着什么?
  2. SRBD 忽略腿部惯量在什么情况下会出问题?

推荐资料(全部免费)