基于动力学的角色驱动方法概览
✅ 本章定位:理解如何通过力/力矩驱动角色,生成符合物理规律的动画。
💡 运动学 vs 动力学 的详细对比参见 Introduction
本章知识框架
mindmap
基于动力学的角色驱动
角色动力学
仿真
动力学基础
关节约束
接触
PD 控制
PD 控制
PID 控制
欠驱动问题
轨迹优化
优化方法
数值计算方法
强化学习方法
角色控制
传统方法
数值方法
强化学习
✅ 物理方法的难点: ✅ (1) 仿真:在计算机中模拟出真实世界的运行方式。 ✅ (2) 控制:生成角色的动作,来做出响应。 ✅ 角色物理动画通常不关心仿真怎么实现。 ✅ 但也可以把仿真当成白盒,用模型的方法来实现。
动力学方法的四个核心模块
理解动力学方法的四个核心模块:
┌─────────────────────────────────────────────────────────────┐
│ 仿真器 (Simulation) │
│ 输入:力/力矩 → 输出:新状态 │
│ 核心:Mv̇ + C = f + Jᵀλ │
├─────────────────────────────────────────────────────────────┤
│ 底层执行 (PD Control) │
│ 输入:目标状态 → 输出:关节力矩 τ │
│ 核心:τ = k_p(q* - q) + k_d(q̇* - q̇) │
├─────────────────────────────────────────────────────────────┤
│ 中层策略 (Trajectory/Policy Generation) │
│ 输入:任务指令 → 输出:目标轨迹/策略 │
│ ① 轨迹优化:有参考轨迹 (CMA-ES/SAMCON) │
│ ② 角色控制:无参考轨迹 (ZMP/IPM/SIMBICON) │
│ ③ 强化学习:DeepMimic/AMP/ASE │
├─────────────────────────────────────────────────────────────┤
│ 高层规划 (Task Planning) │
│ 输入:用户意图 → 输出:任务序列 │
│ 方法:有限状态机、行为树 │
└─────────────────────────────────────────────────────────────┘
四个模块的关系:
高层规划 → 任务指令
↓
中层策略 → 目标轨迹 q*, q̇* (轨迹优化/角色控制/RL)
↓
底层执行 → 关节力矩 τ
↓
仿真器 → 新状态
本章子章节:
| 模块 | 文件 | 内容 |
|---|---|---|
| 仿真基础 | Simulation/ | 物理仿真器的工作原理 |
| 约束 | Simulation/JointConstraint.md | 关节约束、接触约束 |
| 执行控制 | PDControl/ | PD 控制原理与应用 |
| 轨迹优化 | Tracking/ | 有参考轨迹的生成方法 |
| 角色控制 | CharacterControl/ | 无参考轨迹的行走控制 |