想让人形机器人真正学会家务,不是先去追“更大的模型”,而是先把家庭场景的数据采集体系搭对。这篇文章面向已经在做家务操作、移动操作或家庭服务原型的人,重点不是讨论谁的数据更多,而是给你一套能落地的工程框架:任务脚本怎么定、示教怎么录、数据怎么质检、隐私怎么隔离、失败样本怎么回流。最关键的工程判断是,家庭数据不是“多拍点视频”就够了,它本质上是一条带约束的生产线。
这篇适合谁
- 在做人形机器人、移动操作机器人或双臂平台的家庭场景原型团队。
- 已经有基础遥操作或示教能力,但数据采集流程还比较散乱的人。
- 想把“偶尔能做一次”的家务 demo,推进成可复现训练集和验证集的人。
- 需要同时考虑数据质量、隐私、标注成本和训练回流的人。
先纠正几个很常见的误区
- 误区 1:家庭数据越真实越好,所以什么都录。
错。家庭场景变化太多,如果没有任务边界、对象集合、成功定义和失败标签,最后只会得到一堆不能复用的视频垃圾。 - 误区 2:数据采集主要是“招人来做动作”。
错。真正难的是采集协议、设备标定、时间同步、视角覆盖、episode 切分、隐私脱敏和质检回流。 - 误区 3:先把数据规模做大,再补质量控制。
错。家庭任务里的低质量示教会直接污染策略,尤其是接触-rich 操作、遮挡、多步骤任务和异常恢复动作。 - 误区 4:家庭场景一定要直接上真人人形本体采集。
不一定。很多早期任务更适合先用桌面双臂、移动操作底盘或 leader-follower 装置把动作接口和 episode 结构打稳,再迁移到更复杂的人形平台。
关键实现判断
如果你的目标是把家庭数据变成可训练、可验证、可复盘的资产,建议先做下面 4 个判断,再决定怎么采:
- 先定任务族,不要先定房间。 比起“厨房数据”“卧室数据”,更应该先定义“抓取-搬运-放置”“开关门/抽屉”“布类整理”“台面清理”这类任务族。
- 先定 episode 合同,不要先堆传感器。 一条有效 episode 至少要能回答:任务目标是什么、起始状态是什么、动作是谁发的、结束状态是否达标、失败卡在哪一步。
- 先定质检和回放,再扩采集员。 DROID 的价值不只是样本多,而是它证明了分布式采集要想有用,必须把硬件配置、任务定义和数据结构管起来,而不是放任不同人各录各的。
- 家庭数据运营,本质上是数据工艺,不是一次性众包。 你要把它当成持续生产系统来设计,包含招募、培训、审核、重录、脱敏、训练验证和淘汰机制。
分步实践指南
第 1 步,先把家庭任务拆成“可采、可训、可验”的最小单元
家庭场景最容易翻车的地方,是任务描述看起来很自然,执行条件却极不稳定。不要直接写“整理餐桌”“收拾客厅”,而要拆成可以度量的单元:
- 对象集合:杯子、盘子、毛巾、衣物、纸盒、垃圾袋。
- 起始约束:物体在不在视野内,是否可单手抓取,是否存在叠放或遮挡。
- 终止条件:物体位置、姿态、容器归属、抽屉/柜门状态。
- 异常分支:抓空、滑落、遮挡、路径被阻挡、目标容器已满。
这里可以借鉴 Open X-Embodiment 的做法,把任务文本、观察、动作和 episode 元数据统一成可跨平台对齐的结构。家庭数据如果未来要跨机器人迁移,不要只保存“视频 + 成功/失败”,还要保存任务语义和关键状态标签。
第 2 步,设计采集工位,而不是只设计采集 App
家庭数据采集不是给参与者一个手机就结束。你至少要定义一个最小采集工位:
- 固定视角相机,保证主体区域可见,减少频繁出框。
- 腕部或末端视角,用于接触瞬间和遮挡区域。
- 环境状态表,包括房间类型、光照、台面高度、主要物体类别。
- 任务卡片,明确每次采集的目标、可接受变化范围和失败重录条件。
如果你需要更强的接触操作示教,而不是纯旁观视频,Open-Teleach / OPEN TEACH 这类低成本遥操作方案值得参考。它的启发不只是“用 Quest 3 更便宜”,而是说明家庭数据采集最好尽快让操作信号、视觉回传和录制流程放在一个闭环里,避免事后再猜操作者当时到底想做什么。
第 3 步,把 episode 结构定死,尤其是时间同步和重放能力
很多团队早期最大的问题不是模型不行,而是采回来的数据根本无法稳定重放。建议每条 episode 至少固定这些字段:
- 任务 ID、环境 ID、采集员 ID、机器人/装置配置版本。
- 多视角图像时间戳、关节状态、末端位姿、夹爪/手指状态。
- 操作者输入流,区分自动动作、遥操作动作、人工修正动作。
- 阶段标签,例如 approach、pre-grasp、contact、transfer、place、recover。
- 结束原因,区分 success、partial-success、abort、safety-stop、operator-fix。
LeRobot 的 real-world 录制与 replay 流程 很值得抄。它强调同一套 robot id / calibration 要贯穿 teleoperate、record、evaluate 和 replay,这一点对家庭数据尤其关键。你今天换了相机位置、夹爪零位或 leader-follower 映射,明天却还把数据混在一个桶里,训练就会变得非常脏。
第 4 步,把质检做成流水线,不要靠人工肉眼抽查
家庭数据最贵的不是录,而是录完之后才发现不能用。建议把质检拆成 3 层:
- 入口质检: 文件完整性、时间戳连续性、相机掉帧、标定版本一致性、任务卡是否填写完整。
- 行为质检: 是否出现明显犹豫、重复无效动作、长时间停滞、目标物离开视野、操作者补救未打标签。
- 训练前质检: 成功率分布是否畸形,某些对象/房型是否过度集中,失败样本是否被错误标成成功。
DROID 的分布式采集经验提醒你,采集员多、场景多并不自动代表泛化更强。没有一致的质检门槛,只会把采集差异放大成训练噪声。实际工程里,我更建议先把“可重放、可解释、可筛掉坏样本”做到位,再去追规模。
第 5 步,先把隐私和数据治理架构搭起来,再扩到真实家庭
家庭场景比工厂难,不只是因为杂乱,还因为隐私风险更高。至少要做这几件事:
- 把身份信息和 episode 数据分库存储,禁止训练流水线直接接触原始身份信息。
- 默认提供区域级脱敏能力,例如人脸、证件、家庭照片、门牌和屏幕内容。
- 任务卡片上写清楚允许采集什么、不允许出现什么、发现后如何废弃和重录。
- 保留数据撤回和 episode 级删除能力,不要只支持整批清空。
这里不要觉得“后面再补合规”也来得及。家庭数据一旦进入训练集而且缺少溯源,后面很难把污染样本彻底清走。
第 6 步,把失败样本回流到任务设计,而不是只回流给模型训练
家庭任务失败,很多时候不是模型能力不够,而是任务定义、视角布置、抓取前状态判断或终止条件写错了。建议每周固定做一次失败 bucket 回顾:
- 感知失败,没看清。
- 动作失败,轨迹不稳或接触策略错误。
- 任务失败,目标和成功条件定义得太含糊。
- 采集失败,录制质量不达标。
- 治理失败,隐私/脱敏/标签缺失。
如果你准备做跨平台训练,可把 DROID 的多场景分布思路和 Open X-Embodiment 的统一数据接口结合起来用:前者提醒你场景覆盖的重要性,后者提醒你不要把不同平台的数据结构做成彼此不能复用的孤岛。
最容易翻车的地方
- 只录成功样本。 这样学出来的策略往往不会恢复,也不会求助。
- 不同采集员各自理解任务。 最终标签语义漂移,训练集内部互相打架。
- 忽视设备版本变更。 一个夹爪、一台相机、一个 teleop 映射参数变了,旧数据就可能不能直接混训。
- 把“真实家庭”理解成完全无约束。 真正可用的数据采集,必须在真实和可控之间找平衡。
- 没有 replay 和复核能力。 一旦模型出错,你连问题来自采集还是训练都拆不开。
怎么验证你真的搭对了
- 随机抽 20 条 episode,确认都能在 10 分钟内完成可视化回放,并定位关键阶段。
- 同一任务换 3 个采集员、2 个家庭环境后,质检通过率不要崩盘式下滑。
- 训练集与验证集按家庭、采集员、对象组合做隔离,验证结果不能只在“同屋同人同物”里好看。
- 失败 bucket 里,至少 70% 能落到明确原因,而不是笼统写“模型失败”。
- 抽查隐私治理链路,确认可以按 episode 溯源、废弃和重录。
下一步怎么做
如果你现在还处在家庭场景原型期,我建议不要急着铺大规模众包。先用 2 到 3 个任务族、5 到 10 个标准化家庭工位、1 套固定 episode schema,把 replay、质检和失败回流跑顺。等这条生产线稳定,再去扩采集员数量和家庭覆盖面。先把脏数据挡在门外,比后面多训十轮更划算。