Files
worldmodel/plans/PRISM/11_world_model_bridge.md
T
gaojie dbcbdbb59e chore: 为所有 md 文件添加 Hugo front matter
- 处理: 74 个 .md 文件
- 跳过: 0 个(无已存在的 front matter)
- 异常: 3 个(H1 缺失,用文件名兜底)
  - plans/PRISM/.research/readmes/3d-llm.md
  - plans/PRISM/.research/readmes/openmask3d.md
  - plans/PRISM/.research/readmes/openscene.md
2026-05-20 22:42:22 +08:00

9.9 KiB
Raw Blame History

title, date, draft, tags, categories
title date draft tags categories
Chapter 11 — 与世界模型 (World Model) 的衔接 2026-05-20 false
PRISM
世界模型
空间记忆
物理
规划
worldmodel

Chapter 11 — 与世界模型 (World Model) 的衔接

本章目标:说明 PRISM 输出的"空间记忆"如何被 M-JEPA / DreamerV3 / Genie / NVIDIA Cosmos 等世界模型消化,又如何回写到 PRISM——形成 "感知 → 记忆 → 想象 → 验证" 的闭环。


11.1 为什么记忆需要"接"世界模型

PRISM 自己回答了 what is here(这里有什么)和 what was here(这里曾有过什么);但还没回答 what would happen if...(如果……会怎样)。

后者正是世界模型 (World Model) 的职责:

问题 谁回答
"床头柜在哪?" PRISM L4
"从门口到床走 2 秒会撞到吗?" PRISM L2 + 简单运动学
"把椅子推到门口,会挡住门吗?" 需要世界模型 rollout
"如果把水洒在床上,下一秒会发生什么?" 需要物理世界模型
"客人下一步可能要什么?" 需要 latent dynamics

PRISM 的角色:给世界模型提供"上下文 + 初始状态 + 反事实约束"


11.2 PRISM 与 World Model 的对接接口

flowchart TB
    ACT["Action / Plan"]
    subgraph WM["World Model (WM)"]
        ENC["Encoder<br/>(obs → z)"]
        DYN["Dynamics<br/>(z, a → z')"]
        DEC["Decoder<br/>(z → obs / r)"]
        ENC --> DYN --> DEC
    end
    subgraph PRISM["PRISM"]
        direction LR
        L1["L1"] --- L2["L2"] --- L3["L3"] --- L4["L4"]
        DELTA["delta + anchors"]
    end
    WM --> ACT
    PRISM -- "context<br/>(LTM 上下文)" --> WM
    WM -- "reality check<br/>(rollout vs delta)" --> PRISM
    style WM fill:#e3f2fd,stroke:#1565c0
    style PRISM fill:#fff7d6,stroke:#c97a00
    style ACT fill:#d4f0d4,stroke:#2e7d32

PRISM 与 WM 之间有 4 条接口

方向 接口 含义
PRISM → WM 观测 obs 当前 ZED 帧 + 当前 L4 节点的属性
PRISM → WM 上下文 context L3 + L4 的场景图作为 prior
WM → PRISM 想象 rollout 假设动作 a 序列下未来 z̃ 的解码图像/状态
WM → PRISM 物理先验 物体的可移动性、稳定性、堆叠规则等

11.3 三类目标世界模型与对接方式

11.3.1 M-JEPAMeta 的预测式 JEPA 系列)

  • 特点:在隐空间预测下一时刻的"嵌入",不重建像素,物理一致性好
  • 对接
    • 把 PRISM L1 关键帧 + 当前位姿 + 当前局部 TSDF 拼成 obs
    • 把 L4 场景图序列化为 token 注入到 M-JEPA 的 context 端
    • rollout 得到的下一 z 通过 decoder(如轻量 NeRF 渲染头)变回图像,与下一帧真实图像对比
# bridge/mjepa_bridge.py
def build_obs(prism: PRISM, t: float) -> Dict:
    return {
        "rgb":        prism.l1.frames[-1].rgb_left,
        "depth":      prism.l1.frames[-1].depth,
        "pose":       prism.l1.frames[-1].pose.to_matrix(),
        "occupancy":  prism.l2.local_octomap_crop(radius=3.0),
        "graph":      prism.l4.serialize_neighborhood(radius=3.0),
    }

11.3.2 DreamerV3 / TD-MPC2(基于 RSSM 的循环世界模型)

  • 特点:训练快,适合控制任务(导航、抓取)
  • 对接:用 PRISM 提供的任务级 reward 信号 —— 例如 "到达目标房间" 由 PRISM L3 判定
  • PRISM 既是 obs source,也是 reward function
class PRISMDreamerEnv(gym.Env):
    def __init__(self, prism, sim_or_real):
        self.prism = prism
        self.sim = sim_or_real
    def reset(self): return self._obs_from_prism()
    def step(self, action):
        self.sim.apply(action)
        obs = self._obs_from_prism()
        reward = self.prism.api.task_progress()  # 调 API
        return obs, reward, done, info

11.3.3 视频生成式世界模型(Cosmos / Genie 2 / Sora 类)

  • 特点:像素级 rollout,逼真度高,可生成"如果机器人转左 90° 会看到什么"
  • 对接
    • 用 PRISM L2 的 3DGS 渲染当前帧作为 "first frame"
    • 文本指令 + first frame → 视频生成
    • 生成的视频被 PRISM detector 复用做"反事实检测"

11.4 三类核心用法

11.4.1 用法 APlanning by Imagination(用 WM 做规划)

1. 任务 = "在 308 把椅子推到角落"
2. PRISM 提供:椅子 bbox、房间 polygon、可通行栅格
3. WM rollout:候选 5 条推送轨迹,模拟每条的结果
4. 评估:每个 rollout 后用 PRISM 验证"椅子是否真在角落"
5. 选最优轨迹,执行

11.4.2 用法 BAnomaly Detection(用预测误差发现异常)

1. 在线时 WM 持续预测下一帧 z̃
2. 与真实下一帧 z 对比
3. 误差爆增 → 异常事件(玻璃打碎?人摔倒?)
4. PRISM 把异常写入 delta 并触发告警

11.4.3 用法 CSelf-Supervised Pretraining(用 PRISM 数据训 WM

1. 机器人长期运行积累 stm/keyframes/ 与 pose / action 配对
2. 用这些数据 fine-tune M-JEPA / DreamerV3
3. 每月触发一次,使 WM 越来越懂这个具体场景

11.5 数据格式约定(PRISM-WM Bridge Schema

@dataclass
class WMObservation:
    rgb:        np.ndarray            # (H,W,3) uint8
    depth:      np.ndarray            # (H,W) float32, meters
    pose_world: np.ndarray            # (4,4)
    local_occ:  np.ndarray            # (Dx,Dy,Dz) bool, 3m 邻域
    graph_tok:  List[int]             # 序列化场景图 token (≤ 256)
    timestamp:  float

@dataclass
class WMAction:
    type: Literal["move","push","grasp","look_at"]
    params: Dict
    # e.g. {"type":"move", "params":{"delta_xy":[0.3,0], "delta_yaw":0}}

@dataclass
class WMRollout:
    actions: List[WMAction]
    predicted_obs: List[WMObservation]
    predicted_reward: List[float]
    confidence: float

→ 这是 PRISM ↔ WM 的"USB 接口",未来不同 WM 都按这个对接。


11.6 一个完整闭环示例

任务:"把垃圾桶从 305 推到电梯厅"

1. PRISM 查 L4 → trash_bin_305, bbox, parent=room_305
2. PRISM 查 L3 → 路径 room_305 → hallway → lift_lobby
3. PRISM 提供 obs_t(当前帧、局部栅格、相关 L4 子图)
4. WM (DreamerV3) 内部 imagine 100 步:
     - 候选动作序列 a_{1:100}
     - 预测 z_{1:100}, reward_{1:100}
     - 选最大累计 reward 的 a 序列
5. 机器人执行 a_1,得到 obs_{t+1}
6. PRISM 用真实 obs_{t+1} 与 WM 预测的 z̃_1 比对:
     - 一致 → continue
     - 不一致 → 误差注入 WM 再 imagine(重规划)
     - 不一致 + 持续大 → 写 delta(环境变了,比如垃圾桶卡住了)
7. 任务结束后:
     - 真实轨迹 (obs, a, obs') 累积到 stm/episodes/
     - 月度 fine-tune WM

11.7 三层抽象的对应关系

WM 概念 PRISM 对应
Observation L1 关键帧 + L2 局部 occupancy
Hidden state z 不直接对应,但 PRISM 的 L4 节点是其"符号侧倒影"
Action 机器人控制器输出,PRISM 不管
Reward PRISM API 提供任务级信号
Prior L3+L4 场景图作为 context token
Imagination 在 WM 内部,不存进 PRISM;只把"决策"和"反例"回写
Reality PRISM 实时观测,作为 WM 训练 / 校正的 ground-truth

11.8 与既有项目对比

项目 类型 PRISM 关系
Habitat 仿真 PRISM 的 LTM 可导出为 Habitat 场景
Isaac Sim 仿真 LTM 的 USDZ 直接打开
NVIDIA Cosmos 视频 WM 可作为 PRISM 的"生成式预测器"
Hydra / Hovsg / ConceptGraphs hierarchical SLAM PRISM 与之同源;区别:PRISM 强调"先验灌入 + 巩固机制"
VoxFormer / NeRF-SLAM 单一稠密表示 PRISM 用作 L2 实现,但加入 L3/L4
VLMaps / OpenScene 开放词表场景图 可作为 PRISM 的 L4 backbone
Embodied-CoT / SayCan LLM 规划 是 PRISM 的下游消费者

11.9 时间表(与 09_roadmap.md 衔接)

阶段 WM 相关任务
8 周原型 不接 WM,先打地基
M3-M4 实现 WMObservation / WMAction schemaDreamerV3 在仿真里跑通
M5 接入真实 PRISM,做 Planning by Imagination demo
M6 异常检测;fine-tune WM 的训练管线
M7+ 切换到 M-JEPA 或 Cosmos,做语义 / 视频级 rollout

11.10 局限与开放问题

局限 说明
WM 在长时间 rollout 中漂移 必须靠 PRISM 不断"reality check"
L4 场景图怎么 token 化 当前是手写 (label, pos, attr) 三元组 → 可学习的图 encoder 待研究
PRISM 是否要"反向写入"WM 输出 暂定不写rollout 是虚拟,写进 LTM 会污染
Reward 设计 PRISM 提供基本 task progress;复杂 reward 需领域专家
数据效率 单楼层 episode 数有限,跨场景迁移学习是关键

11.11 本章小结

关键点 一句话
PRISM 之于 WM 提供 context + obs + reward + reality check
WM 之于 PRISM 提供 imagination + 物理先验,不直接写 LTM
接口 WMObservation / WMAction / WMRollout 三类数据结构
三类用法 Planning / Anomaly / Pretraining
闭环关键 真实观测和 imagine 偏差大 → 写 delta + 触发 replan
现阶段 8 周原型不接 WM;M5 之后逐步引入

读完本章你应能:

  • 解释 PRISM 与世界模型的本质区别(记忆 vs 想象)
  • 设计一个最小的 PRISM→DreamerV3 接入
  • 知道为什么 WM 的"幻想"不能写进 LTM

下一章 12_risks.md 整理 PRISM 全系统的 6 大风险与对策。


章节版本v1.0 估计阅读时间12 分钟 关键收获:把 PRISM 升级为"有想象力的大脑"的路径