轨迹优化相关概念澄清
✅ 本章定位:澄清轨迹优化中容易混淆的概念,包括离线/在线、开环/闭环、前馈/反馈三组概念的区别与联系。
三组容易混淆的概念
轨迹优化领域有三组分类概念,它们经常被混用,但实际上是三个不同维度的分类:
| 维度 | 分类 | 核心问题 |
|---|---|---|
| 维度 1:优化时机 | 离线 vs. 在线 | 什么时候计算控制策略? |
| 维度 2:控制方式 | 开环 vs. 闭环 | 是否使用当前状态反馈? |
| 维度 3:力矩来源 | 前馈 vs. 反馈 | 力矩从哪里来? |
维度 1:离线优化 vs. 在线优化(Optimization Timing)
定义
| 离线优化 | 在线优化 | |
|---|---|---|
| 计算时机 | 任务执行前预先计算 | 任务执行中实时计算 |
| 计算频率 | 一次(或偶尔重新计算) | 每帧/每隔几帧 |
| 输出 | 完整的轨迹/策略 | 当前步的轨迹/策略 |
| 计算时间 | 可以很长(秒/分钟级) | 必须很短(毫秒级) |
代表方法
| 离线优化 | 在线优化 | |
|---|---|---|
| 轨迹优化 | CMA-ES、iLQR、DDP | MPC、SAMCON |
| 学习方法 | DeepMimic(训练阶段) | DeepMimic(推理阶段) |
优缺点对比
| 维度 | 离线优化 | 在线优化 |
|---|---|---|
| 计算成本 | 低(只做一次) | 高(持续计算) |
| 抗扰动能力 | ❌ 弱(无法应对意外) | ✅ 强(可实时调整) |
| 适用场景 | 预先制作动作库 | 实时交互控制 |
直观类比
| 离线优化 | 在线优化 | |
|---|---|---|
| 开车 | 出门前查好导航路线 | 根据实时路况调整路线 |
| 做饭 | 按菜谱步骤执行 | 根据食材状态调整火候 |
| 结果 | 路线最优但怕堵车 | 可避开拥堵但计算成本高 |
维度 2:开环控制 vs. 闭环控制(Control Architecture)
定义
| 开环控制 | 闭环控制 | |
|---|---|---|
| 是否使用反馈 | ❌ 不使用当前状态 | ✅ 使用当前状态 |
| 输入 | 仅初始状态 + 预设指令 | 初始状态 + 实时状态反馈 |
| 抗扰动能力 | ❌ 弱(扰动后无法恢复) | ✅ 强(可纠正偏差) |
| 输出 | 预设动作序列 | 根据状态调整的动作 |
框图对比
开环控制:
初始状态 → 控制器 → 动作序列 → 执行 → 结果
闭环控制:
┌──────────────┐
│ │
▼ │
目标状态 → (+) → 控制器 → 执行 → 当前状态
▲ │
│ │
└─────传感器───┘
(状态反馈)
代表方法
| 开环控制 | 闭环控制 | |
|---|---|---|
| 轨迹跟踪 | 纯轨迹跟踪(无 PD) | PD 跟踪、MPC |
| 特点 | 简单但脆弱 | 鲁棒但复杂 |
优缺点对比
| 维度 | 开环控制 | 闭环控制 |
|---|---|---|
| 结构简单 | ✅ 简单 | ❌ 需要传感器/反馈 |
| 抗扰动 | ❌ 无 | ✅ 强 |
| 精度 | ❌ 依赖模型精度 | ✅ 可纠正误差 |
| 稳定性 | ❌ 可能发散 | ✅ 通常稳定 |
直观类比
| 开环控制 | 闭环控制 | |
|---|---|---|
| 投篮 | 闭眼投出,不调整 | 看着篮筐,实时调整 |
| 开车 | 闭眼开,只靠预设方向盘 | 看着路,随时修正方向 |
| 结果 | 有扰动就偏离 | 可抵抗扰动 |
维度 3:前馈控制 vs. 反馈控制(Torque Source)
定义
| 前馈控制 | 反馈控制 | |
|---|---|---|
| 力矩来源 | 预先计算的力矩 $\tau^*$ | 根据误差计算的力矩 |
| 计算公式 | $\tau = f(\text{模型}, \text{目标})$ | $\tau = k_p e + k_d \dot{e}$ |
| 是否需要模型 | ✅ 需要(逆动力学) | ⚠️ 需要较少 |
| 响应速度 | 快(无需等待误差) | 慢(需要误差出现) |
公式对比
前馈控制: $$ \tau_{\text{feedforward}} = \text{InverseDynamics}(q^, \dot{q}^, \ddot{q}^*) $$
反馈控制(PD): $$ \tau_{\text{feedback}} = k_p (q^* - q) + k_d (\dot{q}^* - \dot{q}) $$
复合控制(前馈 + 反馈): $$ \tau = \underbrace{\tau_{\text{feedforward}}}{\text{前馈}} + \underbrace{k_p (q^* - q) + k_d (\dot{q}^* - \dot{q})}{\text{反馈}} $$
代表方法
| 前馈控制 | 反馈控制 | |
|---|---|---|
| 方法 | 轨迹优化的控制轨迹、逆动力学 | PD 控制、 Stable PD |
| 特点 | 精确但需要模型 | 鲁棒但有稳态误差 |
优缺点对比
| 维度 | 前馈控制 | 反馈控制 |
|---|---|---|
| 响应速度 | ✅ 快(预先计算) | ❌ 慢(需误差出现) |
| 模型依赖 | ❌ 高(需要精确模型) | ✅ 低 |
| 抗扰动 | ❌ 弱 | ✅ 强 |
| 稳态误差 | ✅ 无 | ❌ 有(需要误差才能输出力矩) |
直观类比
| 前馈控制 | 反馈控制 | |
|---|---|---|
| 弹琴 | 记住谱子,凭肌肉记忆弹奏 | 听音准,实时调整手指 |
| 开车上山 | 凭经验预先踩油门 | 看速度表,慢了加油快了收油 |
| 最佳方案 | 记住谱子 + 听音调整(前馈 + 反馈) |
三组概念的关系
核心区别
| 概念对 | 核心问题 | 与其他概念的关系 |
|---|---|---|
| 离线 vs. 在线 | 什么时候计算? | 决定前馈力矩的计算时机 |
| 开环 vs. 闭环 | 是否用反馈? | 闭环 = 有反馈控制 |
| 前馈 vs. 反馈 | 力矩从哪里来? | 前馈通常来自离线/在线优化 |
常见组合方案
方案 1:离线优化 + 前馈 + 反馈(最常用)
离线轨迹优化 → 目标轨迹 (q*, q̇*) + 控制轨迹 (τ*)
↓
在线 PD 控制:τ = τ* + k_p·e + k_d·ė
↓
闭环控制(前馈 + 反馈)
| 维度 | 选择 | 说明 |
|---|---|---|
| 优化时机 | 离线 | 预先计算轨迹和控制 |
| 控制方式 | 闭环 | 使用 PD 反馈 |
| 力矩来源 | 前馈 + 反馈 | $\tau = \tau^* + \text{PD}$ |
优点:
- 前馈提供主要驱动力(60-80%)
- 反馈负责抗扰动和纠偏(20-40%)
- 计算成本低(离线优化一次)
适用场景:动捕跟踪、预先制作的动作
方案 2:在线优化 + 前馈 + 反馈(MPC)
每帧:
1. 测量当前状态 x
2. 在线优化 → 新目标轨迹 + 新控制轨迹 (τ*)
3. PD 控制:τ = τ* + k_p·e + k_d·ė
| 维度 | 选择 | 说明 |
|---|---|---|
| 优化时机 | 在线 | 每帧重新优化 |
| 控制方式 | 闭环 | 使用当前状态反馈 |
| 力矩来源 | 前馈 + 反馈 | $\tau = \tau^* + \text{PD}$ |
优点:
- 可应对动态变化的环境
- 可处理突发扰动
缺点:
- 计算成本高
- 需要高效求解器
适用场景:实时交互、复杂地形行走
方案 3:纯反馈(DeepMimic)
RL 策略 → 目标轨迹 (q*, q̇*)
↓
PD 控制:τ = k_p·e + k_d·ė(无前馈)
| 维度 | 选择 | 说明 |
|---|---|---|
| 优化时机 | 离线(训练) | 训练一次,推理多次 |
| 控制方式 | 闭环 | 使用 PD 反馈 |
| 力矩来源 | 纯反馈 | $\tau = \text{PD}$ only |
优点:
- 无需轨迹优化
- 策略可泛化
缺点:
- 需要大量训练
- 稳态误差较大
适用场景:通用角色控制、游戏 AI
完整对比表
| 方案 | 优化时机 | 控制方式 | 力矩来源 | 抗扰动 | 计算成本 | 代表方法 |
|---|---|---|---|---|---|---|
| 方案 1 | 离线 | 闭环 | 前馈 + 反馈 | ✅ | 低 | 轨迹优化 + PD |
| 方案 2 | 在线 | 闭环 | 前馈 + 反馈 | ✅✅ | 高 | MPC |
| 方案 3 | 离线 | 闭环 | 纯反馈 | ✅ | 中 | DeepMimic |
| 方案 4 | 离线 | 开环 | 纯前馈 | ❌ | 最低 | 纯轨迹跟踪 |
关键要点总结
-
三组概念是不同维度的分类
- 离线/在线:什么时候计算
- 开环/闭环:是否用反馈
- 前馈/反馈:力矩从哪里来
-
常见组合方案
- 最佳实践:离线优化 + 闭环控制 + 前馈 + 反馈
- 实时应用:在线优化(MPC)+ 闭环控制
- 学习方法:离线训练 + 闭环控制 + 纯反馈
-
概念关系
- 离线/在线优化 → 输出前馈力矩
- 开环/闭环 → 决定是否使用反馈
- 前馈/反馈 → 力矩的两个来源,可以组合使用
-
选择建议
- 需要抗扰动 → 闭环 + 反馈
- 需要精确跟踪 → 加前馈
- 计算资源有限 → 离线优化
- 环境动态变化 → 在线优化(MPC)
📚 深入学习:
本文出自 CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES105_mdbook/