# BEHAVIOR-1K 相关数据生产方法汇总 > 目标:为 QIU-26 梳理 BEHAVIOR-1K / OmniGibson 相关的数据生产路线,覆盖 MoMaGen 类生成方法、真机遥操数据、SimKit 可落地的中间产物,以及后续和亚军讨论时需要确认的问题。 ## 结论先行 BEHAVIOR-1K 不是单一“渲染数据集”,更适合作为**任务语义 + 家庭场景 + 物体状态变化**的上游来源。对 SimKit 来说,建议把数据生产拆成四层: 1. **符号任务样本**:从 BDDL/problem 文件抽取 activity、object categories、init/goal predicates,生成轻量 JSONL;不启动渲染器。 2. **仿真轨迹/视频样本**:在 OmniGibson/BEHAVIOR 环境或 SimKit 的 HSSD/SAPIEN 桥接环境中执行任务,输出 RGB-D/segmentation/action/state。 3. **生成式任务扩增**:用 MoMaGen 类方法或 LLM/VLM 生成新的家庭任务、对象摆放、语言指令和多步子目标,再回写为 BDDL/manifest。 4. **真机遥操/回放数据**:用 R1 Pro 或其他硬件采集人类示范,沉淀为 LeRobot/episode 格式;再用仿真做 replay、domain randomization 和失败样本补齐。 不要把第 1 层符号样本当作物理或抓取成功证据;它只能证明任务语义覆盖。真实抓取/放置仍需要 force/lift/contact/table-force 等定量指标。 ## 方法 1:BDDL 符号任务样本 **输入** - BEHAVIOR-1K / BDDL activity definitions。 - 每个 problem 的 objects、init、goal 段。 **产物** - `activity` / `problem` 标识。 - 物体类别列表、物体数量。 - init/goal predicate 名称和数量。 - source path / source commit(推荐保留)。 **适合用途** - 统计任务覆盖:哪些任务需要容器、清洁、搬运、开关、加热等 predicate。 - 生成 SimKit manifest 的候选任务条目。 - 给 LLM/VLM 做任务扩写、语言指令生成、分解成 skill primitives。 **局限** - 没有资产几何、质量、摩擦、碰撞、可达性信息。 - 不能证明 R1 Pro 可以执行。 - 不应该触发 OmniGibson/Isaac/SAPIEN 渲染;cron 中优先保持 renderer-free。 **SimKit 落地建议** - 继续保留 renderer-free 采样脚本模式:读取 `/tmp/behavior1k_probe` 或官方 sparse checkout,通过 `git ls-tree` / `git show` 读取 BDDL。 - 输出 JSONL + summary,并写明 provenance:remote、commit、activity、problem path。 - 后续再单独做 asset/physics/render validation,不和符号采样混在一个结论里。 ## 方法 2:OmniGibson / BEHAVIOR 仿真轨迹生产 **输入** - BEHAVIOR tasks、scene/object assets、机器人配置、action primitives。 - 可选:导航、抓取、放置、开关、容器交互等高级 primitive。 **产物** - 多相机 RGB / depth / segmentation。 - robot proprioception、object poses、predicate state transitions。 - action traces:base、arm、gripper、primitive label。 - 成功/失败标签:goal predicate 是否达成。 **适合用途** - 长程家庭任务数据。 - 语言条件策略训练样本。 - 失败恢复、状态变化、object affordance 数据。 **关键风险** - BEHAVIOR starter primitives / assisted grasp 不等价于真实物理抓取。 - 如果用 sticky/assisted grasp,需要在 metadata 中明确 `grasp_mode=assisted/sticky`。 - OmniGibson 资产和物理栈较重,cron 中不要和 HSSD/SAPIEN GPU 渲染任务并行抢资源。 ## 方法 3:MoMaGen 类生成式数据生产 这里把 MoMaGen 归为“生成式任务/场景/轨迹扩增”路线:先用模型生成任务设定、对象组合、语言目标或动作草图,再用仿真/真机验证过滤。 **可能生成的内容** - 家庭任务描述:例如整理、清洁、准备食物、搬运物体。 - 对象集合和初始布局:哪些类别、哪些 receptacle、哪些状态。 - 语言指令和多步子目标。 - 机器人 primitive 序列草图:navigate → grasp → place / toggle / open。 **推荐过滤链路** 1. 生成候选任务或布局。 2. 转成 BDDL-like symbolic record 或 SimKit manifest。 3. 做资产解析:对象类别是否有可用 mesh/collision。 4. 做可达性/碰撞粗筛。 5. 用仿真 replay 生成观测和状态标签。 6. 只把通过物理/渲染验证的样本标记为可训练数据。 **关键风险** - 生成任务容易语义合理但物理不可执行。 - 对象类别可能没有本地资产或比例不合理。 - 语言/符号成功不等于 contact-level success。 ## 方法 4:真机遥操数据与回放 **输入** - R1 Pro 或其他机器人真机遥操 episode。 - 多相机视频、joint/base/gripper 状态、operator command、任务语言。 **产物** - LeRobot-style episode:observation、action、timestamp、metadata。 - 真实接触、抓取、失败恢复数据。 - 可用于行为克隆、VLA fine-tuning、仿真 replay 对齐。 **和 BEHAVIOR-1K 的关系** - 用 BEHAVIOR task taxonomy 规范真机任务命名和目标状态。 - 用 BDDL predicate 作为 episode 标注模板:例如 `inside`, `ontop`, `clean`, `open`。 - 用仿真生成 long-tail 场景,用真机补足真实 contact / hardware distribution。 **关键风险** - 真机数据 expensive;需要明确任务优先级。 - 需要 camera calibration、time sync、action normalization。 - 遥操动作不能直接等价于仿真 controller action,需要记录 controller schema。 ## 方法 5:SimKit/HSSD/R1 Pro 桥接数据 SimKit 当前更适合做 BEHAVIOR-1K 的“桥接验证层”:把符号任务/生成任务中的部分 tabletop manipulation 子问题落到 HSSD/SAPIEN/R1 Pro 中验证。 **推荐切片** - 先做 stage-only / room render:确认相机、桌面、机器人位置。 - 再做 object-inclusive scene:记录 object load report 和 DeviceLost debug package。 - 对 tabletop grasp,只承认定量成功: - object lift 达阈值; - object-finger force 在 close/lift 阶段持续; - table support unloading; - gripper 未完全空闭合; - object-to-EEF / fingertip corridor 保持。 **不建议** - 不要把单张好看的 MP4 当成功数据。 - 不要把 HSSD full GLB visual mesh 当作物理碰撞,除非显式创建 collision proxy。 - 不要从历史 gate row 直接开始 planner;必须先通过 state-capture / frame-0 consistency gate。 ## 建议的数据 schema ```json { "source": { "dataset": "behavior1k|hssd|real_robot", "activity": "putting_away_groceries", "problem": "problem0", "source_path": "bddl3/.../problem0.bddl", "source_commit": "..." }, "task": { "language_instruction": "put the can on the shelf", "objects": [{"name": "can_1", "category": "can"}], "init_predicates": ["ontop", "inside"], "goal_predicates": ["inside"] }, "execution": { "mode": "symbolic_only|sim_replay|real_teleop|assisted_grasp", "robot": "r1pro", "controller_schema": "base+right_arm+right_gripper", "success": false, "success_metrics": { "predicate_goal_satisfied": false, "object_lift_m": 0.0, "object_finger_force_active_steps": 0, "table_unloaded": false } }, "artifacts": { "jsonl": "...", "video": "...", "overlay_stats": "...", "debug_summary": "..." } } ``` ## 和亚军讨论的问题清单 1. 目标数据是偏 **symbolic planning / VLA training / manipulation policy / video-language grounding** 哪一类? 2. MoMaGen 期望输出的是 task text、BDDL、scene layout、还是 executable trajectories? 3. 真机遥操优先覆盖哪些 BEHAVIOR task family:整理、清洁、厨房、开关门/抽屉、搬运? 4. R1 Pro 数据是否需要和 LeRobot schema 对齐?action 是 joint position、EEF pose、primitive label,还是混合? 5. 是否允许 assisted/sticky grasp 数据进入训练集?如果允许,metadata 中如何区分物理抓取和辅助抓取? 6. 对每条样本的最低验收标准是什么:只要 goal predicate,还是必须包含 contact/lift/table-force 证据? 7. BEHAVIOR/OmniGibson 资产许可、下载、缓存位置和版本锁定如何管理? 8. SimKit 第一阶段是否只做 renderer-free BDDL summary + 少量 HSSD tabletop proof-of-concept? ## 推荐下一步 1. 用 renderer-free BDDL sampler 生成 20–50 条 symbolic task samples,确认任务 taxonomy。 2. 选 3 个 tabletop-friendly task family,人工映射到 SimKit/HSSD/R1 Pro 子任务。 3. 为每个子任务写 manifest:对象类别、支持面、初始/目标 predicate、需要的 primitive。 4. 先产出失败/成功都可用的 diagnostic episodes,不急于声明抓取成功。 5. 和亚军确认 MoMaGen 与真机遥操的角色分工:谁负责生成候选,谁负责过滤验证,最终训练数据 schema 是什么。