MCAP→LeRobot 转换器 v0.2 cloud 端到端验收(2026-08-30)
验收结论:PASS(cloud 执行环境)
样本 sample_episode.mcap(46.9MB,EgoStandard bucket 单集,md5 716c70db...)
在 cloud(Ubuntu 22.04 / Py3.10 / 4 核 CPU / lerobot 0.6.1 + torch 2.10+cu128 / av 15.1.0)
经 v0.2 两段式转换器端到端转换并读回验证通过。
对账数据
| 指标 | MCAP 源 | 转换产物(读回实测) | 判定 |
|---|---|---|---|
| 姿态拍数 | 1039 拍 @30fps | total_frames=1038(99.9%,GOP 尾帧差) | PASS |
| 时长 | 34.60s | fps=30 × 1038 | PASS |
| 视频轨 | 双路 H.264 | 2 × mp4(cam_left/cam_right),解码回读 1038 帧 | PASS |
| 数据层 | state/action 301 维 | parquet ×1,float32 | PASS |
| 质量层 | is_bad 全 False | valid_ratio=1.0 | PASS |
| 标定/元数据 | CameraCalibration+FrameTransforms+session | extra_meta.json 旁路保存 | PASS |
v0.1→v0.2 变更与本日崩溃卡点闭环
- 0xC0000005 根因结论(判别实验链,探针留仓 scripts/dbg*.py): 本机 Windows Py3.13 下"PyAV 解码+写盘"即随机崩(零写盘探针 5+ 次全过、带写盘崩), 与 torch/lerobot/transformers 组合无关——判为机器/系统层概率性内存损坏,不修本机。
- v0.2 两段式进程隔离:段1 纯 av 解码→png(零 lerobot/torch)→ 段2 子进程 lerobot writer。CLI 外部签名不变,工作台 /convert 无感。
- 执行环境裁定:转换链路以 cloud 为准(/opt/flywheel/scripts + venv), 本机不再承担转换负载。样本与产物:/opt/flywheel/data/sample/。
传输过程记录(工程事实)
47MB 样本经 6×8MB 分块 scp 传输(单流长传被中继 reset 两次),合并后 md5 对账一致。 教训入档:长传输必须分块+逐块验证+最终 md5,不信 scp 退出码。
边界(重申)
转换产物仅作训练语料与采集 SOP 对照(EgoSuite 许可:商用训练可、禁转卖), 不进本仓数据产品。