1. 课程导入
在传统机器人编程中,工程师需要把任务拆解成精确的坐标、轨迹和条件判断,再逐条写入控制程序。一旦物体位置、光照、摩擦或任务顺序发生变化,程序往往需要重新标定甚至重写。模仿学习(Imitation Learning)提供了另一条路径:让机器人从人类示范中直接学习“怎么做”,把专家操作转化为可复用的策略。行为克隆(Behavior Cloning, BC)则是模仿学习中最基础、工程落地最广泛的一类方法,它把示范数据看作“状态—动作”样本,用监督学习训练一个从观测到动作的映射函数。
一句话理解:模仿学习解决“如何从示范中学会任务”,行为克隆解决“如何用监督学习拟合示范中的状态到动作映射”。前者是问题框架,后者是具体方法。
1.1 核心定义与问题形式
设机器人在时刻 t 的观测为 o_t,动作为 a_t,专家示范轨迹为 τ = {(o_1,a_1), (o_2,a_2), ..., (o_T,a_T)}。行为克隆的目标是学习策略 π_θ(a|o),使它在相似观测下输出接近专家的动作。训练目标通常是最小化动作预测误差:
L(θ) = E_(o,a)~D [ || π_θ(o) - a ||² ] # 连续动作
L(θ) = -E_(o,a)~D [ log π_θ(a|o) ] # 离散动作
这里的 D 是示范数据集,θ 是策略网络参数。与强化学习不同,行为克隆不要求机器人反复试错,也不依赖奖励函数设计,因此数据采集成本低、训练流程接近常规深度学习,非常适合抓取、放置、按压、插拔、倒水等操作任务。
1.2 发展历程:从示教再现到端到端策略
机器人模仿学习并非新概念。早期工业机器人采用“示教再现”(Teach Pendant),由人拖动机械臂记录轨迹点,机器人重复执行固定路径。这类方法依赖精确复现,缺乏泛化能力。20世纪90年代,学者开始用统计模型从示范中学习策略,如高斯混合模型、隐马尔可夫模型。2010年后,深度学习的兴起使端到端行为克隆成为可能:输入图像或点云,输出关节速度或末端位姿。近年来,扩散策略、动作分块、视觉语言模型等进一步提升了多模态、长时序任务的模仿学习能力。
1.3 核心价值:为什么工程上优先选择行为克隆
行为克隆的工程价值主要体现在四个方面。第一,数据即程序:人类示范一次,机器人就能获得一条可训练样本,省去复杂建模。第二,与深度学习生态兼容:可直接使用 PyTorch、TensorFlow、ROS 2、LeRobot 等工具链。第三,适合多模态输入:RGB、深度、关节角、力觉、语言指令都可以作为观测。第四,易于迭代:采集新数据、微调模型、重新部署的闭环周期短。
但行为克隆也有明显短板。最典型的是分布偏移:训练时只见过专家状态,部署时机器人一旦偏离专家轨迹,就会进入未见状态,错误逐步累积。另一个问题是动作多峰:同一观测下可能存在多种合理动作,若用均方误差回归,模型容易输出“平均动作”,导致机械臂犹豫或碰撞。后续章节会分别用 DAgger、动作分块、扩散策略等方法应对。
1.4 典型应用场景
- 桌面抓取与放置:从人类拖拽示范中学习抓取杯子、积木、工具并放置到目标位置。
- 柔性物体操作:叠衣服、整理线缆、翻书等任务难以精确建模,适合从示范中学习。
- 装配与插拔:USB 插入、齿轮装配、连接器对接,需要结合视觉与力觉反馈。
- 厨房与家庭服务:倒水、搅拌、开抽屉、按按钮等长时序任务。
- 工业质检与分拣:从人工分拣示范中学习缺陷识别与抓取策略。
1.5 课程框架与学习路径
本课程共 30 章,围绕“数据—模型—训练—评测—部署”五段式展开。下表给出整体框架与关键产出。
| 阶段 | 核心内容 | 关键产出 |
|---|---|---|
| 数据采集 | 遥操作、动捕、VR 示教、数据格式与同步 | 可训练示范数据集 |
| 策略建模 | MLP、CNN、RNN、Transformer、扩散策略 | 观测到动作的映射模型 |
| 训练优化 | 损失函数、动作分块、数据增强、课程学习 | 收敛且稳定的策略权重 |
| 仿真评测 | MuJoCo、Isaac Sim、RoboSuite、闭环测试 | 成功率与鲁棒性报告 |
| 真机部署 | ROS 2、实时推理、安全限幅、故障恢复 | 可运行的机器人技能 |
学习建议:先跑通一个最小行为克隆闭环——采集 50 条抓取示范,训练一个小型 CNN 策略,在仿真中评测,再迁移到真机。不要一开始就追求大模型和复杂任务。
常见误区:把行为克隆等同于“复制动作”。实际上,行为克隆学习的是观测到动作的条件分布,而不是逐帧回放。若数据覆盖不足、观测不同步或动作空间定义不一致,模型很容易在部署时失效。