第 9 章 学习式操作概览¶
前八章的链路是规划式的:几何、碰撞、可达性、接触判据,每一步都有可检查的中间量。学习式方法把其中一部分换成策略网络:从图像或状态直接给出动作。本章只做两件事——给出选择依据(什么时候值得换),以及给出接口边界(换过来之后,输出如何进入第 7 章的控制层,安全由谁兜)。训练细节、任务设计与评估归 isaac-note,感知侧的模型选型归 camera-note;本章不训练也不部署任何策略模型,具体开源实现与指标一律引外部来源。
规划式与学习式的分工与接缝:
flowchart LR
plan["规划式:每步有可检查中间量"] --> mix{"选择依据"}
learn["学习式:策略网络"] --> mix
mix --> data["数据来源:示教 / 仿真 / 自采"]
mix --> map["策略输出 → 控制层映射"]
map --> safe["安全边界由谁兜"]
1. 规划式与学习式的分工¶
两条路线的区别不在“聪明程度”而在误差的可追溯性。同一件事(把方块从 A 搬到 B),规划式链路里每一步都能单独核验:抓取候选是否满足力闭合判据(第 6 章)、位形是否合法(第 3 章)、轨迹是否被执行(第 7 章)。学习式链路里这些判断被压进一个策略,失败时只能看输入输出,中间没有可核验量。
| 维度 | 规划式 | 学习式(模仿 / 强化) |
|---|---|---|
| 中间量可核验 | 是,逐段可判 | 否,端到端映射 |
| 失败可归因 | 能定位到段与判据 | 通常只能到“状态-动作对”层面 |
| 场景变化的成本 | 重新标定位姿、换抓取候选 | 数据分布偏移即性能退化,需重采或微调 |
| 长尾与柔性任务 | 需要显式建模,规则难穷举 | 数据覆盖到即可泛化 |
| 数据与算力 | 几乎不需要(靠模型与搜索) | 演示数据或大量并行仿真采样 |
| 接触丰富任务 | 需引入力模型与柔顺层(第 8 章) | 可从演示里隐式学出 |
| 节拍可预测性 | 规划耗时有上界(第 4 章) | 推理时间稳定,但重试率不稳定 |
一句话的判据:任务能被几何与判据描述清楚时,规划式便宜且可审计;描述不清楚(柔性物体、杂乱堆叠、难以建模的接触)时,学习式用数据换掉建模成本。多数工业现场的正确答案是混合:感知与抓取候选用学习式(形状先验、位姿估计),执行序列用规划式(第 6 章的判据 + 第 4 章的规划 + 第 7 章的执行监控)。
2. 数据的三条来源¶
学习式操作的成本中心是数据,不是模型。三条来源的取舍:
| 来源 | 单位成本 | 质量与偏差 | 归属 |
|---|---|---|---|
| 遥操作演示(人在环) | 人力密集,一条演示数秒到数十秒 | 分布贴近真机,但覆盖窄、依赖操作员 | isaac-note 第 7 章(模仿学习与数据生成) |
| 仿真生成 / 程序化脚本 | 算力换人力,可批量 | 有 sim-to-real 差距,接触与摩擦模型是主要偏差源 | isaac-note 第 4、7 章 |
| 真机自主采集(强化 / 自我改进) | 硬件占用时间、磨损 | 分布最贴近,但探索代价高 | isaac-note 第 5、6 章 |
三条来源在操作任务上的共同难点是成功判据的自动标注:抓取是否成功要有可自动判定的信号(力/压力开关、吸盘真空度、视觉复检、放置后称重)。没有自动标注,遥操作数据的利用率就受限——这属于工程实现细节,此处不展开。遥操作设备(主从臂、VR 控制器、力反馈手套)的具体形态与可得性以厂商资料为准。
3. 策略输出到控制层的映射¶
这是操作侧最该关心、又最少被讨论的一环:策略给出的动作向量必须映射到某个真实入口,而不同映射的安全性质完全不同。
| 动作空间 | 映射到 | 安全层 |
|---|---|---|
| 关节位置增量 | 关节层话题或低层接口(第 7 章表中的第三类) | 关节限位与限速必须自己实现,无容差检查 |
| 笛卡尔速度(twist) | Servo 通路(第 7 章第 6 节) | 有碰撞距离缩放与指令看门狗,是本层最合适的入口 |
| 末端位姿 | 规划到该位姿的短轨迹(第 4 章) | 每步都过一次规划与碰撞检查,代价是节拍 |
| 夹爪开合 / 离散原语 | 第 6 章的执行序列 | 序列内部仍需 attach/detach 的时序正确 |
三条判据。推理频率与指令通路要匹配:策略每秒出 10 个动作而 Servo 的指令周期是 0.034 s,就要有插值与超时保护,否则动作序列在两层之间失配(第 7 章量纲分工)。安全检查不能省:策略输出的位姿不经过第 3 章的碰撞校验就直接执行,等价于放弃唯一的兜底;常见做法是每步用短视域的规划或可达/碰撞过滤器把关。失败要能退回规划式:策略置信度低或连续几步不收敛时,退回到显式规划路径(第 5 章的 Fallbacks 容器同样适用于“学习策略→规划原语”的回退顺序)。
上表少了力这一维:策略若直接输出期望接触力或关节力矩,就必须走第 8 章的阻抗/力控接口,而这条通路对模型准确性最敏感——力矩指令没有位置环的兜底,参数差一点就是过冲或压溃工件。常见的折中是让策略只输出位置与夹爪状态,力由底层柔顺层按接触状态自适应:策略学“往哪走”,柔顺层管“用多大力”。
Servo 通路的安全边界在第 7 章「Servo 的接口边界与集成坑」:输出话题的接收方、moveit_active、指令看门狗与 current_pose 四项前置条件都满足,指令才会落到关节;因此以上只是接口层面的结论,接入前要逐项核对。
4. 公开形态与版本边界¶
学习式操作在 2024 年之后的公开形态更新很快,几条常见路线只作名目引用,具体版本、许可与可用性不写成既成事实:
- 扩散策略(Diffusion Policy)一类:把动作预测建模为条件去噪过程,输出动作序列。概览与感知侧的模型谱系见
camera-note第 9 章。 - 视觉-语言-动作(VLA)模型:以图像 + 语言指令直接产出动作,跨任务泛化是卖点;评测口径与可复现性见 camera-note 第 9、10 章。
- 抓取/位姿先验网络:作为第 6 章抓取候选的生成器使用,与其余规划式部分天然可组合。
- 仿真并行训练栈(GPU 上千环境同时采样):属 isaac-note 第 2、4、5 章。
上述各包在 Humble / Jazzy 下的可用版本与许可随发布节奏变化,选型时查各包 package.xml 的 <license> 与仓库发布记录。本板块不引用它们的具体成功率数字——同一模型在不同评测口径下的数字差异,远大于模型之间的差异,脱离口径的百分比没有信息量(第 10 章给统计口径的原因)。
5. 选型三轴¶
把第 1 与第 3 节合起来,落到可问的三个问题:
- 可验证性:这个任务失败时,需要知道“错在哪一段”吗?需要产线审计、可追溯、或要与人工流程对齐的,答案是肯定的→ 规划式为主。
- 数据成本:能否拿到足够覆盖长尾的演示或仿真经验?换型频繁、任务集合宽,数据采集就比规则建模便宜→ 学习式为主。
- 接触丰富度:任务是准静态几何问题(搬运、放置),还是依赖难以显式建模的接触与柔顺(插拔、整理柔性物体、舀取粉末)?后者用判据写不清,学习式能吸收。
三轴不是打分表而是排除法:任何一轴强烈指向某侧,就按那一侧做主干,另一侧做补充。最常见的错误是“因为学习式先进”而把可验证性轴忽略,最后既说不清失败原因,又要为维护数据采集管道付长期成本。
6. 评估与上线的口径¶
无论哪条路线,上线前的评估要满足三条口径,否则数字不可比:
- 样本量与区间:至少 30 次,并报区间(第 10 章给算法),单次成功不算结论。
- 条件分层:按工件位姿区间、尺寸、光照分别报,混在一起的总成功率掩盖了失效区域(第 10 章里“边长 > 60 mm 通过率 0%”就是这么被分出来的)。
- 首因记录:每次失败记首因段(第 5、7 章的分段判据),而不是只记“失败”。
学习式方法常见的问题是只报平均值不报分层与区间,跨论文与跨现场都难以比较;把这三条固定下来,比换模型带来的信息量更大。分层维度本身也要固定并随报告一起给出:换一个分层维度,数字就不能跨批次比较。
7. 要点¶
- 两条路线的真实分界是可验证性与可归因性,不是“能力”;能用几何与判据描述清楚的任务,规划式便宜且可审计。
- 数据是学习式的成本中心:遥操作、仿真生成、自主采集三条来源各有偏差,且都需要成功判据的自动标注才能用起来。
- 策略输出必须落到具体入口:关节层最裸、Servo 层有看门狗、经规划的短轨迹最贵但每步都过碰撞检查;安全检查不能因为“是策略给的”而省略。
- 失败退回规划式的路径要在设计时就留(
Fallbacks或上层状态机),不要在上线后补。 - 开源实现与指标一律先核实版本与许可再写入,脱离评测口径的百分比不引用。
- 评估三条件:足够样本量并给区间、按条件分层、记录失败首因;这三条比换模型更能改变结论质量。