从失败到成功:在SO-101上训练ACT模型的三次尝试与关键教训
在人工智能与机器人交叉领域,Action Chunking Transformer(ACT)凭借其将视觉输入直接映射为连续动作序列的能力,成为模仿学习(Imitation Learning, IL)中备受关注的架构。然而,将论文中的成功复现到真实机器人平台,往往远比预期复杂。本文以SO-101六自由度机械臂为实验平台,系统性地回顾了三次训练ACT模型完成“抓取方块并放入容器”任务的完整过程,旨在揭示从理论到实践的关键鸿沟与应对策略。

初次尝试:理想与现实的巨大落差

项目启动时,一切看似简单。参考LeRobot官方教程,使用两台普通USB网络摄像头、一台游戏主机和一对主从式SO-101机械臂,计划采集50个演示片段后即可训练出可用策略。然而,现实很快给出了第一记重击。

数据采集阶段便暴露出多个底层问题。由于使用了两台型号完全相同的摄像头,Linux系统在USB设备枚举时频繁交换其设备路径,导致录制脚本平均每5个片段就崩溃一次。这种看似微小的硬件兼容性问题,在长时间数据收集中被急剧放大,最终耗费近两小时才勉强凑齐数据。更严重的是,机械臂校准文件的丢失埋下了致命隐患。校准参数被临时存储在易失性目录中,一次意外断电后,重新校准时未将各关节置于中位,导致后续所有关节角度指令产生系统性偏移。这意味着,即使模型学到了正确的动作,执行时也会因底层映射错误而失效。

训练过程本身相对顺利,一个52M参数的ACT模型在RTX 3080上约4小时完成。损失曲线在Weights & Biases上呈现理想的下降趋势,令人充满期待。但评估结果却令人啼笑皆非:机器人并未学会抓取,而是反复执行“接近-闭合-抬升”的无效循环,如同一只啄木鸟般敲击桌面。深入分析发现,问题根源在于数据质量与环境一致性的全面失控。摄像头在训练与测试期间发生了轻微位移,且右侧摄像头的视角在抓取时存在严重的指尖遮挡,使得模型无法有效学习精确的抓取姿态。同时,仅在5个固定位置各采集10个样本的策略,导致模型严重过拟合,沦为对特定轨迹的记忆而非对任务本质的理解。

第二次迭代:构建鲁棒的工程化管道

首次失败促使我们转向系统性工程改进,核心目标是建立一个可重复、可监控、可评估的闭环开发流程。

硬件标准化是首要任务。我们将双摄像头布局从“前侧”改为“前顶”组合。顶部视角极大减少了抓取时的视觉遮挡,并能清晰观察到夹爪与方块的相对高度关系,这对于学习稳定的中点抓取至关重要。所有设备——包括机械臂底座和摄像头支架——均使用胶带和标记进行物理固定,确保每次实验的几何关系绝对一致。此外,手动锁定了摄像头的曝光、白平衡等参数,消除了昼夜光线变化带来的图像风格差异。

数据采集基础设施得到根本性增强。我们编写了udev规则,利用USB物理端口路径这一不变属性来永久绑定摄像头和机械臂的设备节点,彻底解决了设备随机掉线的问题。同时,开发了独立的原始数据记录器,除标准LeRobot数据集外,额外保存同步时间戳、原始视频流和元数据,为后续的精细化调试提供了可能。在演示录制过程中,操作者强制只观看摄像头画面,杜绝了人类利用额外空间信息“作弊”的可能。

最关键的进步在于形式化的任务定义与评估体系。我们明确定义了任务的核心变量:方块类型(白、灰、绿)、容器类型(保鲜盒、碗、纸箱)以及它们的起始位姿。通过在工作台上铺设带刻度的网格,每个演示片段都关联一个结构化的task_config,精确记录所有变量。这使得评估集可以被严格复现,不同模型间的性能对比变得公平可信。基于此,我们设计了分层的**进度评分(Progress Score)**机制,将任务分解为“接近方块”、“成功抓取”、“抵达容器”、“释放方块”和“方块入箱”五个阶段,并赋予不同权重。这种细粒度的评估远比简单的二元成功/失败更能反映模型的真实能力。

在新的框架下,我们采集了72个片段,采用分层抽样策略覆盖6个不同的方块起始区域,并保留其中一个区域作为分布外(OOD)测试集。训练后的模型在分布内测试中达到了60%的成功率,但在OOD测试中骤降至10%。失败分析揭示了两个核心问题:一是数据在XY平面上的覆盖不均匀,存在明显空洞,导致模型在区域边界处表现脆弱;二是演示数据中包含了大量抓取方块顶部的不良示例,模型忠实地复现了这些低质量行为,印证了“垃圾进,垃圾出”的铁律。

意外插曲:来自机器人的“反击”

就在第二次数据采集过半时,一场突如其来的硬件故障几乎让项目夭折。机械臂在高频通信下突然报错,提示无法同步读取所有电机的位置信息。经过一天的排查,罪魁祸首竟是夹爪电机。在遥操作过程中,出于担心方块掉落的本能,操作者过度用力夹紧,导致从动臂的夹爪电机长期超负荷运转而磨损。在高频率指令下,该电机无法及时返回状态包,阻塞了整个Dynamixel总线的通信。更换备用电机后,系统恢复正常。这次事件深刻警示:真实世界的机器人是精密而脆弱的,必须像对待伙伴一样温柔操作,并始终储备关键备件。

第三次冲刺:数据驱动的成功







吸取前两次教训,第三次尝试将全部精力聚焦于高质量、高覆盖度的数据。我们将每个采样区域的片段数量从10个提升至25个,并通过可视化工具实时监控XY坐标的分布,主动填补空白区域。更重要的是,引入了朝向扰动,让方块在-45°到+45°范围内随机偏航,模拟真实场景中方块摆放的不确定性。同时,操作者经过刻意练习,确保绝大多数演示都采用稳健的中点抓取策略,并尝试从不同角度接近方块。
最终的成果令人振奋。模型在分布内测试中成功率达到90%,平均进度评分0.92;在更具挑战性的分布外测试中,成功率也高达75%,平均进度评分0.80。机器人不仅能够稳定完成基本任务,还展现出一定的容错与恢复能力,例如在初次抓取失败后能调整姿态进行二次尝试。当然,局限性依然存在,如夹爪尖端卡在方块顶部、对超过45°的大角度偏航泛化不足等,但整体性能已达到实用门槛。
核心经验与未来方向
这段为期三周的探索,凝练出几条普适性极强的经验:
- 一致性高于一切:从硬件固定、相机参数到环境光照,任何微小的不一致都可能被数据饥渴的模型放大为灾难性失败。
- 数据即代码:数据的质量、多样性和覆盖度直接决定了模型能力的上限。结构化的任务定义和采样策略是高效数据收集的前提。
- 可观测性是生命线:强大的调试工具链——包括原始数据回放、时间序列可视化和细粒度评估——是快速定位问题、验证假设的基石。
- 拥抱物理世界的混乱:真实机器人系统充满不确定性,硬件故障、通信延迟、校准漂移是常态。健壮的系统设计必须包含对这些“噪音”的容忍与处理机制。
展望未来,优化路径已然清晰。首先,用腕部相机替代顶部全局相机,可提供与末端执行器运动解耦的、更稳定的抓取视角。其次,扩展任务的工作空间覆盖,例如增加容器在左右两侧的放置位,以提升模型的空间泛化能力。长远来看,探索视觉-语言-动作(VLA)模型或引入异步推理机制,可能是突破当前性能瓶颈、实现更流畅自然交互的关键。
最终,这段旅程最深刻的启示或许是:那些在社交媒体上光鲜亮丽的机器人演示背后,是无数次枯燥的调试、意外的崩溃和对细节的极致打磨。当你的机器人第一次真正理解你的意图,并精准地将方块放入指定容器时,那份喜悦足以抵消所有的挫折。而这,正是真实世界机器人学的魅力所在。