全部文章
格式 · 交付

LeRobot v3 与 MCAP —— 第一视角双目演示何时选哪个

· 10K HoursData

第一视角双目人类演示数据不是「只是视频」。它是一个打包体:双目帧、设备侧时间戳、IMU、头部位姿、标定产物,以及训练栈无需定制考古就能加载的 schema。机器人学习采购里常出现两套包装世界:LeRobot v3(以数据集为中心、对训练加载友好)与 MCAP(以录制为中心、对机器人日志友好)。选错会带来静默成本——适配器耗周、时间基准损坏,或标定卡在训练器实际不读的文件外。

本文是面向买方的实用对比:何时 LeRobot v3 是正确的交付合同,何时 MCAP(或 MCAP 优先采集路径)仍有意义,以及如何写 SOW 才不会把日志格式训练数据集混为一谈。下文具体包络数字均来自可核验公开样片:2 条 episode、4,914 帧、163.47 sEP001 接线 121.57 sEP002 补货 41.90 s),双目 1920×120030 fps硬件同步双目,时间戳是记录的(不是计算的),以 LeRobot v3 发布、许可 CC BY-NC 4.0,工具在 GitHub,商业上下文在 10K HoursData。


各格式在优化什么

LeRobot v3 — 训练产物

LeRobot v3 的设计目标是:研究与应用团队调用 LeRobotDataset(),就能以最少胶水把 episode、帧与对齐字段送进模仿 / VLA 管线。用买方语言:当主要消费者是策略训练集群、内部评估架,或 Physical-Intelligence/pi-data-sharing 一类共享检查时,你要的就是它。

对第一视角双目演示,LeRobot v3 里你应期望找到:

  • Episode 结构(如 EP001 / EP002)与按帧索引的字段
  • 与采集包络一致的视觉流(1920×1200/目30 fps、硬件同步双目)
  • 可承载 设备侧 戳记、100% 覆盖且 无插值 的时间字段
  • 训练代码无需发明第二套时钟即可连接的 IMU / 位姿通道
  • 在数据集卡片或清单旁交付或引用标定产物(KKB4R1/R2P1/P2QIMU↔cam版本)的路径

公开样片刻意按此交付,好让买方把「能在 LeRobot v3 加载」当成二元验收门,而不是一种感觉。

MCAP — 机器人录制 / 交换

MCAP 是机器人日志里广泛使用的录制容器:多 topic、多速率、便于追加,适合机器人运行时、类 bag 工作流,以及已讲 ROS 邻近生态的工具链。用买方语言:当主要消费者是机器人平台团队、采集车管线,或实验室已把一切传感器总线标准化为 MCAP 时,MCAP 更亮眼。

MCAP 擅长保存异构流。它本身并不保证:

  • 你的模仿训练器知道如何加载该打包体
  • 双目对是硬件同步,而不仅仅是共同入库
  • 时间戳是设备记录的,而不是事后按标称 FPS 填的
  • 标定矩阵与标定版本挂在训练可消费的位置
  • pi-data-sharing 式数据集检查在无导出步骤时也能通过

MCAP 回答「我们能否存储并回放总线?」LeRobot v3 回答「学习栈能否消费这套演示集?」


采购决策表

问题 倾向 LeRobot v3 倾向 MCAP(或 MCAP 优先)
主要消费者是策略 / VLA 训练? 次要
需要把 LeRobotDataset() 写成 SOW 门? 否(除非你导出)
需要对齐 pi-data-sharing? 转换之后
主要消费者是机器人运行时日志 / 多 topic bag? 次要
采集团队已标准化 MCAP 工具链? 需要导出路径 原生契合
买方要一份可核验的公开训练样片? 匹配公开样片包装 转换以求对等

面向基础模型与模仿团队的多数第一视角人类演示采购订单,即使内部采集用别的容器,也应规定 LeRobot v3 交付。采集格式 ≠ 交付格式。


为什么演示采购默认选 LeRobot v3

1. 验收变成一次加载测试

「兼容 LeRobot」含糊。LeRobot v3 + 成功的 LeRobotDataset() 加载不含糊。再配上对 Physical-Intelligence/pi-data-sharing 的通过,工程第一天就能跑合同。公开样片让这道门不是理论:2 episodes / 4,914 帧 / 163.47 s 应按你写入生产批次的同一期望加载。

2. 时间基准完整性更容易在训练产物上强制

该品类的核心主张是 时间戳是记录的,不是计算的。在公开样片上这意味着:

  • 帧间隔 中位数 = p99 = 最大值 ≈ 33.28 ms0 帧超规
  • 100% 设备侧时间戳,无插值
  • IMU 约 300.48 Hz,每曝光 10 样本,18,050 连续样本,0 处间隙 >10 ms
  • 同一时间线上的逐帧 6-DoF 头部位姿

这些检查应落在训练器实际打开的产物上。若你只收 MCAP、指望有人「以后会导出」,时间基准质检往往太晚——或根本不做。

3. 双目与标定随学习包一起走

1920×1200/目 的硬件同步双目,若没有随货标定就不完整:KKB4R1/R2P1/P2QIMU↔cam,以及版本。样片残差参考——基线 ~60.7 mm、Sampson 0.166 px、重投影 0.800 px15,811 内点——应写进同一验收故事。面向 LeRobot 的交付会逼出问题:学习者到哪里找这些产物? MCAP 可以把它们存成 topic 或附件,但买方仍需要显式映射进训练布局。

4. 共享与评估分叉更便宜

内部分叉、伙伴评估与非商业研究,受益于文档化的样片许可(公开集 CC BY-NC 4.0)以及不要求每位接收方写 MCAP 解码器的 schema。商业生产条款仍按 SOW;重点是 schema 摩擦,不是许可教条。


何时 MCAP 仍该进讨论

在以下情况选择或保留 MCAP:

  1. 采集运维 已从头戴 / 机器人邻近日志栈吐出 MCAP,改管线的风险大于加一层导出。
  2. 机器人平台团队 需要在学习集旁做多 topic 回放(调试、时延分析、非学习消费者)。
  3. 你要一份原始录制归档加一份精选 LeRobot v3 发布——两份产物、两个用途。

此时 SOW 应写成:采集可用 MCAP;学习侧可验收交付为 LeRobot v3;转换必须保留设备侧时间戳(禁止 FPS 回填)、硬件同步语义、IMU 连续性与标定版本关联。 按标称 30 fps 重算时间的转换是回退,不是格式升级。


RFP 中应拒绝的反模式

  • 「交付 MCAP 或 LeRobot 均可」却不点名主要消费者。
  • 「LeRobot 兼容」却不写 v3、不写 LeRobotDataset()、不写 pi-data-sharing
  • 只交 MCAP,把双目标定埋在聊天记录里。
  • 用导出脚本插值缺失戳记,硬凑干净的 33.3 ms 网格。
  • 声称混合 89 片段 / 8 场景 范围库里每个片段都与 EP001/EP002 同样打包——只有这两条 episode 才是我方设备公开参考。

任一路径都必须保住的包络检查表

无论容器,该档可验收第一视角双目演示都应保住:

[ ] Dual-eye colour RGB, 1920×1200 per eye, 30 fps, hardware-synced stereo
[ ] Timestamps recorded on device: 100% coverage, no interpolation
[ ] Frame interval median = p99 = max ≈ 33.28 ms; 0 out of spec
[ ] IMU ~300.48 Hz; 10 samples/exposure; continuous stream; 0 gaps >10 ms
[ ] Per-frame 6-DoF head pose
[ ] Calibration: K, KB4, R1/R2, P1/P2, Q, IMU↔cam, version
[ ] Geometry report at reference class where applicable
      (baseline ~60.7 mm; Sampson 0.166 px; reprojection 0.800 px; 15,811 inliers)
[ ] Learning delivery: LeRobot v3; LeRobotDataset(); pi-data-sharing
[ ] Public reference: EP001 121.57 s wiring; EP002 41.90 s restocking;
      4,914 frames; 163.47 s total; sample license CC BY-NC 4.0
[ ] If MCAP is used in capture: conversion must not invent timestamps

产能规划保持分开:10,000+ 可验收小时/月 指已通过这些门的小时——不是只躺在原始日志里的小时。


软性下一步

若团队在为第一视角双目演示采购在 LeRobot v3 与 MCAP 之间抉择:默认把学习交付定为 LeRobot v3,仅在采集/运行时已依赖时保留 MCAP,并在任何转换两侧锁住时间基准主张——时间戳是记录的,不是计算的

自行核验公开 LeRobot v3 样片:

可约一次讲解:LeRobotDataset() 加载、时序门,以及标定产物如何挂到批次。格式选择于是变成工程决策,而不是 logo 偏好。


10K HoursData — 面向学习打包的第一视角双目人类演示数据(LeRobot v3),时间戳是记录的、不是计算的。