「部分成功」是一种真实结果:标注机器人回合
机器人演示大多是部分成功,而二元结果会把这一点丢掉。一个以时间轴为形态的标注界面必须做对哪些事,从保留极值的降采样到事后重新标注。
一次机器人演示,是若干路同步的相机视频流加上若干条数值时序——关节位置、夹爪状态、力矩、奖励——全部按帧索引。关于它值得问的每一个问题都与时间有关:抓取何时开始、何时失败、每一时刻距离完成还有多远。
因此界面必须是一条时间轴,而不是一张表单。以下是这件事实际要求做到的东西。
「部分成功」是出现频率最高的结果
第一个设计决策是结果词表,而显而易见的那个答案是错的。
成功或失败是一种自然的二元划分,而它会摧毁信号。在真实机器人数据中,部分成功是出现频率最高的结果:机械臂把物体从桌上拿起来又掉了;它把方块放进了正确的箱子却放错了格;它在超时两秒之后完成了任务。
把这些强行归入"失败",会让它们与一台根本没动过的机械臂无从区分。归入"成功"则更糟。按任何一种映射训练出来的策略,都会学到关于"实际发生了什么"的不实内容。
三种结果,再配上一套失败原因分类——抓空、物体滑落、碰撞、拿错物体、放错位置、超时——才能让失败是可分析的,而不只是被计数。
把信号放在视频旁边,而不是藏在标签页后面
这一条有已发表的研究支持。ATLAS(维也纳工业大学,2026)报告称,在视频旁并列显示本体感知时序可降低边界误差,优于纯视觉工具。正是这一发现,让 Potato 渲染了这些轨道。
它也与你在真实回合上立刻能看到的现象吻合:一次失败的抓取,在夹爪与腕部力的曲线上会比在画面上早若干帧显现。夹爪合拢了,力却始终没有上升,而画面要更晚才显示出手里空空如也。
如果这些轨道藏在标签页后面,标注者就不会去打开。
降采样要保留极值,而不是取均值
一段 30 秒、30 Hz 的回合,每条时序有 900 个采样点,而要画进大约 300 像素宽的轨道里。总得丢掉一些东西。
均值降采样丢掉的恰恰是最不该丢的。只持续一帧的力峰值本身就是事件,而把它与相邻采样平均,会让它彻底消失。轨道看起来很平滑,接触发生的那一刻却不见了。
保留极值的降采样会在每个分桶中同时保留最大与最小值,因此单帧的峰值能一直保留到像素层面。这是一个很小的实现细节,却决定了这条轨道到底有没有用。
各图层的代价相差极大
三个标注图层,它们的代价并不可比:
| 图层 | 每个回合的代价 |
|---|---|
| 阶段切分 | 几秒 |
| 结果加原因 | 几秒 |
| 稠密进度奖励 | 几分钟 |
因此它们是可以逐项配置的,而多数项目只启用其中一部分。若把三者作为一张不可协商的表单一并发布,奖励曲线就会成为没人能做完一项研究的原因。
事后重新标注能把失败变成数据
一个在原定任务上失败的回合,常常是另一项任务的成功演示。机械臂本想把方块放进左边的箱子,却放进了右边:这是被记录指令的失败,同时也是另一项任务干净利落的成功。
采集这个回合实际演示了什么,在标注时只需一个文本字段,事后却无从补救。哪怕你还不确定会不会用上,也请一并采集。
三个问题,三种一致性度量
这些图层是三类不同的答案,因此需要三种度量:
- 阶段边界——时间 IoU
- 结果标签——Krippendorff's α
- 奖励曲线——ICC 加 Pearson
每一项都会同时给出覆盖率。在时间轴 5% 的范围上算出的相关系数,对其余 95% 什么也没说,而一个不附带覆盖率的系数,会被当作覆盖了全部来解读。
具体到边界,容差很重要:0.25 秒下与 2 秒下的一致性是两种不同的断言,因此报告会扫描容差,而不是替你挑一个。
格式
LeRobot v2、RLDS/TFDS、HDF5(RoboMimic 与 ALOHA)以及 ROS bag 都通过同一个字段导入。导出为 LeRobot v2 加上一份逐帧的 JSONL 附属文件,因此一份只读的公开数据集无需重新发布就能携带你的标注。
Potato 不是答案的场合
ATLAS 是为单标注者边界精度与 ROS bag 专门打造的,在这件事上它更强。ELAN 与 BORIS 仍是行为编码领域的标准工具。Rerun 与 Foxglove 是最好的机器人可视化工具。
Potato 额外提供的,是支持多标注者、以网页方式部署,并对结果给出一致性统计。如果只有一个人在标注,那就用 ATLAS。