Day 0|机器人学习阅读入门:从一次示范到真实动作
建议用时:15–20 分钟,包含文末自测。 机器人学习论文常把视觉、策略、轨迹、控制与硬件放在同一个系统中。理解它们的接口,比先记住模型缩写更有用。这篇导读帮助你回答三个问题:机器人实际看见什么,模型输出的动作交给谁,学习信号从哪里来?
一、用“把红色方块放进托盘”贯穿全文
设想一台固定在桌边的机械臂。桌上有红色方块和托盘,我们希望它识别目标、靠近、抓取、搬运并放下。相机、夹爪、关节编码器和底层控制器已经存在。以下设置都是教学构造,不代表某篇论文的实验平台。
先把系统连成一条可读的概念地图:传感器产生观测,策略根据观测和任务产生动作,底层控制器把动作要求变成执行器命令,真实机械系统运动,再形成新的观测。 示范、奖励与环境模型可以在学习阶段帮助策略改进;它们并不都必须出现在每一种方法里。
例如,策略可能每次输出“夹爪在基座坐标系中向右移动两厘米,并保持张开”。控制器随后求解怎样驱动各个关节。另一篇论文可能直接输出关节力矩。虽然都写作 action,实际承担的工作相差很大。
因此,读任何“端到端”机器人系统,先问清楚它从哪里开始、在哪里结束。图像到期望末端位姿,与图像到电机力矩,是不同的接口;两者都可能被作者称为端到端学习。
二、观测、状态和动作是三件事
观测是机器人当下拿得到的信息
观测(observation)可能包括相机图像、关节角、关节速度、夹爪开合、力传感器读数和语言指令。状态(state)则是我们用来描述环境与机器人物理情形的变量,可能还包含不可直接测得的摩擦、方块速度和接触状态。观测速查
一张照片看不见方块底面的摩擦,也可能看不见被夹爪挡住的目标。机器人因此常面对部分可观测(partially observable)问题。加入历史图像、记忆或状态估计可以帮助判断,但不意味着所有隐藏量都能准确恢复。
训练时模拟器可能直接提供物体真实位姿,部署时却只有相机。这属于信息权限差异。若论文用了训练期的特权信息(privileged information),需要说明部署策略是否仍依赖它,不能把模拟器真值默认为真实机器人可用输入。
动作必须连同单位、坐标系和频率一起读
动作(action)是策略交给系统的指令。它可以是关节角、关节速度、力矩、末端位姿增量、夹爪命令,或一段未来动作序列。动作速查
“向右两厘米”至少需要四个补充:相对谁的右;是一次增量还是绝对目标;多久执行一次;允许的速度与范围是多少。每秒输出十次的两厘米增量,与每秒输出一百次,可能导致完全不同的运动。
有些论文使用动作块(action chunk),一次预测未来多个时刻的动作。实际系统可以只执行其中一部分,再根据新观测重新预测。一次输出较长序列能减少某些抖动或计算开销,但执行期间缺少反馈也可能增加受扰风险。ACT与 Diffusion Policy在这类接口上很值得比较。
三、策略、控制器与动力学分别做什么
策略(policy)依据任务和观测选择行动。为表示历史依赖,我们暂写:
表示到当前为止的观测历史, 表示目标或指令, 是策略参数。这里用确定性写法介绍接口;随机策略可以写为从 中采样。
控制器(controller)把期望动作转为可执行命令,并常利用实际误差持续修正。例如策略给出期望夹爪位置,控制器结合关节测量计算电机命令。策略与控制器有时合在一个学习模块里,有时分成不同频率的层级;“学到策略”本身不说明底层控制是否被替换。反馈控制
动力学(dynamics)描述施加命令后真实系统如何演化。一个离散时间的抽象写法是:
是实际控制输入, 概括扰动等未建模因素。本例中的策略动作 与执行器输入 可以不同:前者是末端目标,后者可能是关节力矩。若论文直接输出力矩,它们也可能在接口上重合。
学习动力学模型(learned dynamics model)得到的 则试图预测后果,供规划或训练使用。预测方块会滑到哪里,与决定该不该推动方块,是不同功能。世界模型(world model)还可能在隐空间中预测与决策有关的未来,并不一定重建每一个物理变量。动力学速查
四、示范与奖励提供不同的学习信号
示范告诉我们某个人或系统怎样做
示范(demonstration)记录专家行为,例如人用遥操作控制机械臂,得到图像、关节信息与对应动作序列。模仿学习(imitation learning)利用这种行为信息学习策略。示范 · 模仿学习
最直观的行为克隆(behavior cloning,BC)把观测作为输入、示范动作作为目标,做监督学习。对一种简单的连续动作回归设置,可以写:
这里的 是示范数据集。这只是教学用的平方误差形式,实际方法也可用似然、扩散目标或其他损失。学习的是“这种情况下专家怎样动”,不需要先给每一步设计奖励。行为克隆速查
问题在于机器人执行时会到达示范没有覆盖的情形。夹爪稍微偏了一点,下一张图就可能陌生,随后误差继续扩大。这叫分布偏移(distribution shift)。DAgger 让当前策略运行,并在它实际到达的状态上取得专家动作标签,再聚合数据;关键是补上会遇到的情形,并不只是多录几条顺利示范。读 DAgger
同一个方块可以从左侧或右侧绕过去。若把两种合理动作直接用单一平方误差模型平均,平均路径可能正好撞上障碍物。多模态动作分布由此成为重要问题。不过,采用生成式策略也不自动保证不会碰撞,仍需验证它在实际输入下产生了什么。
奖励告诉我们怎样评价结果
奖励(reward)是环境提供或系统设计的标量反馈。强化学习(reinforcement learning,RL)利用后果改进行为,以优化长期回报。方块任务可以给成功放入托盘奖励,也可以加入距离、碰撞或动作平滑项;奖励如何定义会改变学到的行为。
奖励并不等于“正确动作标签”。同一次成功抓取,可能有许多可行轨迹。奖励设计不当时,机器人还可能找到高分但不符合任务意图的行为,所以论文需要同时报告真实任务成功情况。
示范与奖励可以组合:先模仿得到能用的初始策略,再用交互回报改进;也可以从示范推断成本或奖励,即逆强化学习(inverse reinforcement learning,IRL)。行为往往不能唯一确定背后的奖励,恢复结果还依赖建模假设。Apprenticeship Learning · MaxEnt IRL · DAPG
“模仿/强化”主要区分学习信号,“离线/在线”主要区分训练时能否继续收集交互。用固定示范做 BC 是一种组合,用固定奖励数据做离线 RL 是另一种。不要把“有数据集”一律叫模仿学习,或把“机器人自己动过”一律叫在线训练。
五、DMP 为什么容易与动力学模型混淆
动态运动基元(dynamic movement primitives,DMP)把动作表示成具有结构的运动生成系统。它可以从示范中学习形状,并通过目标或时间尺度调整期望运动。DMP 速查
在方块任务中,先只考虑“从起点移动到抓取点”这一段。示范给出期望路径,DMP 学习这段运动的形状;执行时不断生成期望位置或速度,再交给跟踪控制器。它主要回答“希望怎样运动”。
物理动力学模型则回答“给这台机械臂某个力矩,它实际上怎样运动”。两者都可以写成动态变化的方程,但角色不同。DMP 的动态系统不等于完整的机器人动力学模型,也不等于一定在做强化学习。
这个区别关系到安全边界:期望轨迹趋向目标,不代表真实机器人必然无碰撞、不会超过力矩限制,或能在任意速度下跟踪。桌上增加障碍物时,还需要处理路径与接触约束。
本系列 DMP固定讨论 2002 年论文的具体方程;后来的常见教程形式与原始写法并不完全相同。导读不把它们混写。之后可以读 ProMP,理解如何用概率方式表示一族示范运动,再读 PILCO或 PETS,对照学习环境预测模型的路线。
六、从模拟器到真实机器人要跨过什么
仿真到现实迁移(simulation-to-real transfer,sim-to-real)利用模拟环境中的训练或验证帮助真实系统工作。模拟器可以便宜、并行地收集数据,但视觉、摩擦、质量、接触、传感器噪声与通信延迟都可能和现实不同。Sim-to-real 速查
域随机化(domain randomization)在训练中改变选定条件。例如随机背景、灯光和相机参数,帮助视觉策略减少对单一外观的依赖;随机质量、摩擦和延迟,则关注动力学差异。域随机化
在方块例子里,训练时只改变桌布颜色,不能据此声称策略已经适应所有接触动力学。随机范围太窄可能覆盖不到真实情形,太宽也可能增加学习难度或引入不合理环境。迁移效果需要在目标硬件与明确测试条件下观察。Domain Randomization · Dynamics Randomization
系统辨识(system identification)尝试从测量中估计实际系统参数;在线适应(online adaptation)在运行中利用新信息调整估计或行为。它们与随机化可以互补,但“适应”不一定意味着在部署时更新全部网络参数。
再往后,视觉语言动作模型(vision-language-action model,VLA)将视觉、语言与动作表示连接起来,使“把红色方块放进托盘”的语言指令成为策略输入。它扩大了条件表达和数据利用方式,仍然要面对观测缺失、动作单位、控制频率与真实接触这些老问题。RT-1 · RT-2 · OpenVLA
七、用一个失败结果练习读论文
假设模型在留出的图像上预测示范动作误差很低,却只成功搬运了一半方块。不要立刻把两项指标当成矛盾:
- 离线动作误差只评价给定观测上的预测;闭环执行还会改变下一步观测。
- 数据切分如果让同一条轨迹的相邻帧同时进入训练与测试,可能高估泛化能力。
- 成功率要说明试验次数、初始位置、物体变化、失败重置和人工干预,不能只给一段最好看的视频。
- 仿真成功、同一实体方块成功、换材质或换机器人成功,是不同范围的结论。
这些是阅读时应检查的问题,不是断言某篇论文存在这些缺陷。还要区分训练消耗了多少真实交互、多少人类示范,以及部署是否依赖专门标定或额外传感器。
把动作块的两条时钟算清楚
继续用搬方块的教学系统。控制器每秒接收20个动作,即每步0.05秒;模型预测16步,但只执行前8步再看图。因此预测时域是0.8秒,实际无新视觉反馈的执行段是0.4秒,不应把二者都叫“模型频率”。
若每次推理另耗0.08秒,同步执行的一轮约需0.48秒,只能每秒重新规划约2.08次。控制器仍可按20Hz保持或插值目标。异步计算可以把部分等待藏在旧动作执行中,但新块必须按时间戳跳过已过期动作;吞吐增加不意味着观察永远新鲜。动作块的基本接口见Diffusion Policy原文,等待与队列机制见SmolVLA §3.3。上述数值是自构手算,不是两篇论文的实测。
为同一个成功率写一张预算单
“用了20条示范”还不完整。至少另外记录:多少在线真机转移、多少次人工接管、多少复位时间、多少仿真或合成轨迹、多少训练与推理计算。一个由人类多次救回的训练回合,不能与无接管的独立测试回合共用成功分母。HIL-SERL原文§3.4—3.5把纠正视为实际转移,正适合练习追踪这笔数据账。
第一次阅读可以只抄四行:部署观测;动作单位/坐标/频率;真实、模拟与专家数据各多少;无接管测试怎样定义。先把接口写对,再推公式,通常比先背模型组件更容易发现不公平比较。
八、符号与接口速查
| 符号 | 本篇约定 | 使用前检查 |
|---|---|---|
| 物理状态、可用观测 | 训练与部署的信息权限是否相同 | |
| 任务目标或指令 | DMP 中常特指终点,别自动解释成语言 | |
| 策略动作、实际控制输入 | 是否同一层级,单位与频率是什么 | |
| 关节位置、关节速度 | 转动关节与移动关节的单位不同 | |
| 机器人动力学中常指力矩 | DMP 文献也常用它表示时间尺度 | |
| 策略、学习得到的预测模型 | 决策规则与后果预测不能互换 | |
| 数据集、训练损失 | 损失下降不等于真实任务一定成功 |
九、接下来的阅读路线
先读发展时间线,再根据兴趣进入一条主线:
- 想理解“怎样从示范得到动作”:从 DMP、DAgger、ProMP读到 robomimic、Diffusion Policy和 ACT。
- 想理解“怎样用交互或模型改进”:从 PILCO、SAC、PETS读到 TD-MPC。
- 想理解“怎样部署并扩展任务”:从 域随机化、动力学随机化进入 RT-1和 OpenVLA。
如果坐标系、运动学和控制接口仍让你卡住,可以先读机器人经典基础 Day 0,不必为了跟上学习模型而跳过物理含义。
十、三分钟自测
1. 一套方法从示范学习 DMP,再把期望轨迹交给控制器。它一定学到了机器人动力学吗?
没有。它学习的可能只是期望运动生成器;真实受力后的运动规律与底层控制仍由其他部分负责。
2. 策略输出“夹爪移动 0.02”,还有什么必须确认?
至少要确认单位、坐标系、绝对目标还是相对增量、控制周期和执行约束。单个数字无法确定真实动作。
3. 模拟训练随机了灯光与纹理,是否足以证明真实抓取可靠?
不能。接触、延迟、摩擦与观测误差仍可能不同;需要明确目标硬件上的测试与失败范围。
4. 50Hz动作输出是否表示每20毫秒都根据新图像作了决定?
不一定。它可能在执行旧图像产生的动作块,或者由低层插值填满命令。需要查看图像时间戳、推理触发时刻、每块实际执行长度与返回后的对齐方式。
资料与阅读边界
本篇的方块任务、接口与损失小例子是教学构造。示范运动生成可对照 DMP 原论文,访问状态上的专家标注可对照 DAgger 原论文。导读不代表重新运行过机器人实验;原有文章关于版本、原文可得性、未核实数据和未复现的说明继续有效。