简介:本文以某开源双臂机器人项目的ACT模仿学习实践为线索,系统对比“数据采集与策略训练”与“模型部署与实机执行”两条链路在目标、架构、功能与运维上的差异,剖析无硬件软件复现与真实抓取之间的边界,并给出条件化选型建议与迁移注意事项,帮助读者理清从示教数据到实机落地的完整决策路径。
一、对比背景:为什么要把一条流水线拆成两段看
双臂机器人要完成“抓取—搬运—放置”这类长序列精细操作,主流技术路线之一是模仿学习(Imitation Learning):由人通过示教给出示范动作,机器人从示范数据中学习策略。其中,ACT(Action Chunking Transformer,动作分块Transformer)是一类被广泛使用的策略架构,它将连续多步动作作为一个“动作分块”整体预测,从而获得更平滑、更抗累积误差的执行效果。
一套完整的双臂机器人模仿学习实践,通常被拆为两段相对独立又紧密衔接的链路:一段负责“产生和训练策略”,即数据采集与模型训练;另一段负责“在真实机器人上加载、调度和执行策略”,即模型部署与实机控制。某开源双臂机器人项目将这两段分别以两组公开代码仓库的形式发布,本文即围绕这两条链路展开系统对比。
之所以值得对比,是因为开发者常见三类困惑:其一,两条链路的职责如何划分,团队投入应放在哪一侧;其二,没有机器人硬件,能复现到什么程度;其三,仿真或离线验证通过之后,距离真实抓取成功还差什么。下文将围绕这些问题逐一展开。
二、对象定义:两条链路分别是什么
2.1 训练侧链路:从示教数据到策略模型
训练侧链路解决“策略从哪里来”的问题,典型环节包括:
训练侧的产物有两个:标准化的数据集,以及训练完成的策略模型权重。
2.2 部署侧链路:从策略模型到真实动作
部署侧链路解决“策略怎么落地”的问题,典型环节包括:
部署侧的输入是训练侧产出的策略模型,输出是真实机器人本体的关节运动。
2.3 两者关系
一句话概括:训练侧负责“生产策略”,部署侧负责“消费策略”。两者通过统一的观测空间定义(相机配置、关节数量与顺序)与动作空间定义(控制频率、指令单位、分块长度)衔接为一条完整流水线。
三、相同点分析:两条链路共享什么
尽管两条链路形态不同,但在以下方面高度一致:
四、核心差异分析:七个维度逐一拆解
4.1 系统架构与运行环境
训练侧本质是“异步批处理”架构:采集、转换、训练、验证之间是松耦合的离线流程,对延迟不敏感,可以暂停、重跑、并行。部署侧本质是“在线闭环”架构:感知—推理—执行必须在固定控制周期内完成,任何一环超时都会直接表现为实机动作卡顿或失稳。这一根本差异决定了两条链路完全不同的工程关注点。
4.2 功能能力与职责边界
训练侧的功能重心在“数据”:示教效率、审核手段、格式标准化、仿真回放能力决定其易用性。部署侧的功能重心在“调度”:模型版本管理、时间融合算法、分块锁定机制、总线驱动稳定性决定其可靠性。一个常见的分工误区是把观测预处理等工作同时压在部署侧,导致实机代码臃肿、控制周期不稳;更稳妥的做法是让训练侧完成尽可能多的离线预处理,部署侧只保留最小必要的在线计算。
4.3 时间特性与性能关注点
训练侧关注吞吐类指标:单位时间能采集多少有效Episode、一次训练要多久、离线预测误差如何。部署侧关注延迟类指标:单步推理是否落在控制周期内、分块切换是否有抖动、总线收发是否丢帧。值得注意的是“50步锁定执行”这一设计:它牺牲了一定的环境响应速度(分块执行期间不重新规划),换取执行节奏的确定性与动作连贯性。在目标物会被移动的动态场景中,这一取舍需要重新评估;在静态桌面操作场景中,它通常是收益大于代价的选择。
4.4 安全与风险控制
训练侧的主要风险是数据质量问题:一段标定异常或动作失败的示教若未在审核环节剔除,会直接污染策略。部署侧的主要风险是物理安全:越界、碰撞、超速都可能损坏设备或周边环境,因此需要依靠分块锁定、关节限位、运行日志与急停机制形成多重防护。两侧风险等级不同:训练侧的缺陷通常表现为“训练不收敛”,可在离线阶段低成本修复;部署侧的缺陷可能表现为“实机失控”,修复成本与安全代价都高得多。
4.5 硬件依赖与复现门槛
这是两条链路最容易被低估的差异。训练侧对硬件的依赖是“可选”的:借助公开的示范数据、仿真环境与格式转换工具,无机械臂本体的团队也能完成大部分训练侧流程的软件复现。部署侧对硬件的依赖是“刚性”的:没有本体、电机驱动器与CAN-FD总线,部署侧流程无法真正验证——最多只能验证模型加载与数据流组织的“逻辑正确性”,无法验证控制的真实效果。
4.6 成本结构与运维方式
训练侧的成本主要是算力与存储:示教数据量随任务数量和相机分辨率快速增长,策略训练需要GPU算力。团队可以选择自建算力,也可以使用云上的弹性GPU计算与对象存储类服务(例如百度智能云提供的通用计算与存储产品类目),按训练波峰弹性伸缩,避免为偶发的训练任务长期持有硬件。部署侧的成本主要是本体维护与现场人力:驱动固件升级、标定复检、故障恢复都需要具备机电背景的工程师参与,且大量成本发生在真实调试阶段——这部分无法通过纯软件投入压缩。
4.7 可复现性边界:软件通过不等于实机成功
原始实践给出了一个非常重要的结论:公开仓库可以完成部分无硬件的软件复现;但真实示教数据、原始训练记录与实机工况并未全部作为可直接下载的复现材料发布。因此,“软件测试通过”并不等于“真实抓取成功”。这背后是仿真到现实的固有差距:
因此,理性的预期管理是:把软件复现当作“必要条件”,把实机联调当作“必经阶段”,并为后者预留充足的迭代轮次与预算。
五、关键差异对比总表
| 对比维度 | 训练侧链路(数据采集与模型训练) | 部署侧链路(模型部署与实机控制) |
|---|---|---|
| 核心目标 | 产生并训练策略 | 加载、调度并执行策略 |
| 典型输入 | 人工示教动作、相机画面 | 策略模型权重、实时观测 |
| 典型输出 | 标准化数据集、模型权重 | 真实机器人关节运动 |
| 运行模式 | 离线、异步、批处理 | 在线、同步、闭环 |
| 关键组件 | 遥操作与拖动示教、Episode审核、格式转换、仿真验证、策略训练 | 模型校验、数据流编排、时间融合、50步锁定、CAN-FD驱动、运行日志 |
| 性能关注 | 数据吞吐、训练时长、离线预测误差 | 控制周期延迟、动作平滑性、执行确定性 |
| 硬件依赖 | 可选(可无硬件软件复现) | 刚性(必须具备本体与总线) |
| 主要风险 | 坏数据污染策略 | 实机失控、越界、碰撞 |
| 主要成本 | 算力与存储(可用云端弹性资源) | 本体维护与现场调试人力 |
| 复现边界 | 大部分流程可离线复现 | 逻辑可验、效果必须实机验证 |
六、典型场景下的选择
七、选型建议:条件化判断
八、迁移与落地注意事项
从纯软件复现迁移到实机部署,或在不同的机器人本体之间迁移已训练策略时,需要重点核查:
附:两侧核心流程的示意性伪代码,帮助理解职责划分。
训练侧:
episodes = collect_by_teleop_and_drag() # 手柄遥操作 / 拖动示教episodes = review_and_filter(episodes) # 人工审核,剔除失败片段dataset = convert_to_standard_format(episodes) # 转换为通用模仿学习数据格式policy = train_action_chunking(dataset) # 训练动作分块策略validate_in_simulator(policy, dataset) # 物理仿真环境回放验证
部署侧:
model = download_and_verify_model() # 模型下载与完整性校验while not task_done:obs = read_cameras_and_joints() # 多相机观测 + 关节状态if chunk_exhausted: # 上一个动作分块执行完毕chunk = model.infer(obs, chunk_len=50) # 预测长度为50的动作分块action = temporal_ensemble(chunk, history) # 时间融合,平滑输出send_over_canfd(action) # 总线下发关节指令write_log(obs, action) # 运行日志留痕
九、总结
回到本文的对比主题:训练侧链路与部署侧链路是双臂机器人模仿学习这枚硬币的两面。相同点在于它们共享同一份数据契约与同一套本体描述,共同指向任务成功率这一终极指标;差异则源于运行形态的根本不同——离线批处理让训练侧可以宽松地试错,在线闭环则要求部署侧在控制周期、安全机制与确定性执行上锱铢必较。选型的核心判断依据是硬件条件与目标阶段:无硬件、重算法时优先训练侧;有本体、重落地时把工程重心压在部署侧。而无论选择哪一侧,都应清醒地认识到软件复现只是必要条件,真实抓取成功依赖两侧围绕数据契约的持续协同与实机迭代。