在真实手臂上运行推理

部署意味着实时运行训练有素的检查点,将实时摄像头和联合观察结果输入网络,并在物理手臂上执行输出操作。 推理脚本以 50Hz 处理观察-动作循环。

来源 ~/openarm-env/bin/activate # Make sure ROS 2 is running (real hardware mode, from Unit 1) python -m lerobot.scripts.eval \ --policy-checkpoint ~/openarm-policies/pick-and-place-v1/checkpoint_XXXXX \ --设备cuda \ --num-eval-episodes 10 \ --录制视频\ --output-dir ~/openarm-evals/v1 # Replace XXXXX with your best checkpoint step number from Unit 5 # --record-video saves each episode as an mp4 for review

对于首次部署运行,请将手放在物理急停按钮附近。 新部署的策略在预热真实硬件环境时有时可能会做出意外的动作。 这对于前 2-3 集来说是正常的。 之后,行为应该稳定下来。

有关全面的部署和生产指南,包括安全范围和看门狗定时器,请参阅 OpenArm 生产指南.

评估方法

Do not evaluate your policy informally. 使用结构化协议——这是了解您所做的更改(更多数据、不同的检查点、不同的任务框架)是否真正提高了性能的唯一方法:

协议项目 规格
每次评估的集数最少 10 个,20 个以获得高可信度结果
对象起始位置固定的。 使用胶带标记。 每集的位置都一样。
对象类型Same object as training. 照明必须符合训练条件。
什么才算成功物体放置在距目标 3 厘米以内的位置。 手臂回到家。 发作期间没有人为干预。
故障分类记录失败类型:错过抓取/掉落物体/错误目标/超时。 这会告诉您要修复什么。
报告指标成功率=成功次数/总次数。 报告集数(例如,“7/10 = 70%”)。

数据飞轮:如何变得更好

成功 7/10 次的政策是一个好的开始,但通往 9/10 或更高的道路是通过数据飞轮。 这是机器人在生产中学习的核心循环:

1

收集

记录演示,包括当前政策遇到的失败案例

2

火车

添加新演示后,对扩展数据集进行重新训练(或微调)

3

评价

运行结构化评估协议。 成功率有提高吗? 还存在哪些故障模式?

4

分析

观看失败视频。 确定策略失效的具体状态。 在那里收集目标数据。

飞轮的关键见解: 目标数据胜过随机数据。 不要再录制 50 个随机演示,而是观看失败视频并确定出现问题的确切时刻。 记录 20 个专门涵盖该困难状态的演示(例如,在工作区边缘的抓握,或以不寻常的角度抓取物体)。 20 个有针对性的演示比 50 个随机演示的成功率会提高得更快。

常见故障模式及其修复方法

  • 手臂超出抓握位置: 策略的操作块太大或者您的数据具有较高的速度方差。 在抓点附近低速再录制 10 个演示。 或减少 chunk_size 训练配置中从 100 到 50。
  • Arm 在训练对象上成功,但在稍有不同的对象上失败: 您的训练数据缺乏对象位置多样性。 在 10 厘米半径内的 5 个不同位置记录 20 个对象演示。 这教导政策要概括。
  • 政策冻结或产生重复动议: CVAE 样式变量正在崩溃。 这通常意味着您的数据集有太多差异 - 模型无法找到一致的样式。 检查混合演示(不同的操作员、不同的任务框架)并清理数据集。

第 6 单元完成时...

在结构化评估运行中,您的手臂有十分之七能够自主完成拾放任务。 您已经观看了 3 个失败视频并找出了问题所在。 您对数据飞轮的了解足以规划您的下一次改进迭代。 这是结构化路径的结束,但也是机器人学习实践的开始。

你做到了。

您已经从拆箱机器人到训练和部署真正的模仿学习策略。 这使您领先于 99% 接触过机器人手臂的人。 您在这里构建的内容——远程操作设置、数据管道、训练工作流程——可以扩展到任何任务和任何硬件。

下一步是什么

你有基础。 从这里开始可以去哪里: