Files
worldmodel/plans/PRISM/09_roadmap.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

335 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Chapter 09 — 实施路线图(8 周原型 + 4 个月生产)"
date: 2026-05-20
draft: false
tags: ["PRISM", "世界模型", "空间记忆", "机器人", "iOS", "评测"]
categories: ["worldmodel"]
---
# Chapter 09 — 实施路线图(8 周原型 + 4 个月生产)
> 本章目标:把 PRISM 从"文档"变成"能跑的代码"。给出**8 周原型计划**(达到 demo 可演示)+ **4 个月生产计划**(达到上线可交付)。
---
## 9.1 总览
```mermaid
gantt
title PRISM 实施路线图(8 周原型 + 4 个月生产)
dateFormat X
axisFormat W%s
section 8 周原型
Phase 0:准备 硬件 + 环境 :p0, 0, 1
Phase 1:单边管线 iPhone & ZED :p1, 1, 3
Phase 2:核心握手 重定位 MVP :p2, 3, 5
Phase 3:在线感知 + delta :p3, 5, 7
Phase 4:巩固机制 :p4, 7, 8
Phase 5:端到端 demo :milestone, m1, 8, 8
section 4 个月生产
Phase 6:鲁棒性 / 多房间 / 评测 :p6, 8, 16
Phase 7:集成 LLM Agent / 任务系统 :p7, 16, 20
Phase 8:生产部署 / 文档 / 开源 :p8, 20, 24
```
---
## 9.2 Phase 0 — 准备(W0 = 部署前)
### 硬件清单
| 类别 | 物品 | 数量 | 价格 | 用途 |
|------|------|------|------|------|
| 扫描 | iPhone 15 Pro Max | 1 | ¥10 k | RoomPlan |
| 扫描 | DJI OM 6 稳定器 | 1 | ¥0.9 k | 减抖 |
| 扫描 | ArUco 标识板(铝) | 3 | ¥0.2 k | 公共原点 |
| 机器人 | ZED 2i | 1 | ¥4 k | 在线感知 |
| 机器人 | Jetson Orin AGX 64 GB | 1 | ¥18 k | 计算 |
| 机器人 | 移动底盘(差速 / 麦轮) | 1 | ¥1030 k | 载体 |
| 机器人 | 2D LiDAR (RPLIDAR S2) | 1 | ¥2 k | 安全冗余 |
| 工作站 | RTX 4090 + 64 GB | 1 | ¥25 k | 训练 / 烘焙 |
| **合计** | | | **~ ¥73 k** | |
### 软件环境
```bash
# 工作站
Ubuntu 22.04
CUDA 12.2 + cuDNN 8.9
ROS 2 Humble
Python 3.10 + conda env "prism"
- open3d>=0.18
- pyzed>=4.1
- open_clip
- ultralytics (YOLO-World)
- nerfstudio
- octomap-python
- networkx + neo4j (optional)
# 机器人 (Jetson Orin)
JetPack 6.0
ROS 2 Humble
同上 Python 包(Jetson 编译版)
ZED SDK 4.1
```
### 团队配置(最小)
| 角色 | 人数 | 重点 |
|------|------|------|
| Robotics 工程师 | 1 | ZED + ROS 2 + 控制 |
| ML 工程师 | 1 | CLIP / YOLO / 3DGS |
| 系统工程师 | 1 | PRISM 主框架 + Schema |
| iOS 开发(兼) | 0.5 | PRISMScanner App |
---
## 9.3 Phase 1 — 单边管线(W1W2
### W1iPhone 端管线打通
**目标**:跑通 [`04_pipeline_A_iphone_offline.md`](04_pipeline_A_iphone_offline.md) 全流程,得到一个房间的 LTM。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | 写 `PRISMScanner` Swift App(最小版:调 RoomPlan + 存 USDZ + JSON | iPhone 真机可扫房间 |
| Tue | 实现 `parser_iphone.py` + `align_to_map.py` | 一个房间 → JSON,节点 ≥ 20 |
| Wed | 实现 `extract_furniture_mesh.py` + `bake_octomap.py` | 每件家具一份 `.glb`octomap.bt 可视化通过 |
| Thu | 实现 `bake_tsdf.py` + CLIP 计算 | tsdf.vbg + 节点 embedding |
| Fri | 实现 `build_anchors.py` + `prism_ingest_iphone` CLI;写单元测试 | `prism ingest` 一行命令完成 |
**周末验收**:扫一个真实卧室 → 跑 ingest → `prism viz ltm` 在 RViz 看到房间 + 床 + 桌(带标签)。
### W2ZED 2i 端管线打通
**目标**:跑通 ZED 实时数据采集 + VIO + 关键帧保存,与 PRISM Schema 对接。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | ZED SDK 安装 + ROS 2 wrapper;输出 RGB+Depth+Pose | rqt 看到三路 topic |
| Tue | 实现 `FrameProducer`(环形缓冲 + 关键帧)+ `PerceptualFrame` 序列化 | 关键帧落盘 stm/keyframes/ |
| Wed | 实现 TSDF Worker(局部融合,先不接 prior_mask | RViz 看到实时 mesh |
| Thu | 实现 `DetectorWorker`YOLO-World,开放词表) | `prism viz detection` 在 RGB 上画框 |
| Fri | TF 树整理 + 时间戳同步检查 | 所有节点 lag < 100 ms |
**周末验收**:手推机器人在一个房间转一圈,得到 stm/ 目录有 100+ 关键帧,TSDF 完整。
---
## 9.4 Phase 2 — 核心握手:重定位 MVP(W3–W4)
### W3:粗匹配 + 精配准
**目标**:在 1 个房间内实现冷启动重定位成功率 > 90%。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | 实现 `CoarseRelocalizer`CLIP Top-K | 单次匹配 < 100 ms |
| Tue | 实现 `fine_register`FPFH+RANSAC → ICP | 单次配准 < 500 ms |
| Wed | 串成 `relocalize()` + 在 10 个不同位置测试 | 成功率 ≥ 8/10 |
| Thu | 加多帧投票 + DINOv2 重排 | 成功率 ≥ 9/10 |
| Fri | 发布 TF `map → zed2i_init`;写 ROS 2 节点 | 完整 ROS 流水线运行 |
**周末验收**:把 ZED 在房间内随机放 10 个位置,每次 < 1 s 给出位姿,平移误差 < 15 cm。
### W4:跨房间 + 异常处理
**目标**:扩到多房间,加入容错。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | 扩到 3 个房间 LTMCLIP 检索 Top-3 房间 → 逐个 ICP | 跨房成功率 ≥ 85% |
| Tue | 实现 anchor 级超精配(5.6)作为兜底 | fitness 提升 0.1+ |
| Wed | 实现 `OnlineRelocalizer`(在线 anchor 校正) | 巡逻 30 min 漂移 < 30 cm |
| Thu | 实现 ArUco 兜底 + 绑架恢复 | 绑架到另一房间 30 s 内恢复 |
| Fri | 写自动化重定位评测脚本 | `prism eval reloc` 输出报表 |
**周末验收**[`05_pipeline_B_relocalization.md`](05_pipeline_B_relocalization.md) §5.10 评测协议全部通过。
---
## 9.5 Phase 3 — 在线感知 + deltaW5W6
### W5:完整在线感知
**目标**:实现 Chapter 06 的所有 worker,跑稳。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | TSDF Worker 接入 `prior_mask` / `no_update_zone` | 镜面区不被污染 |
| Tue | Detector Worker 接入 `associate_hybrid` + EMA 更新 | 已知家具不漂 |
| Wed | 实现 `ChangeDetector`TSDF diff + DBSCAN | 手动搬走一把椅子,10 s 内出 delta |
| Thu | 实现 `DeltaLog`(去重 + JSONL) | 重复事件不重写 |
| Fri | 整体压测:跑 2 小时 | 无内存泄漏,30 Hz 稳定 |
### W6:差异检测与告警
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | 实现"新增物体"提案流程;与现有节点 disambiguate | 新拖鞋出现写 delta,不重复 |
| Tue | 隐私过滤(person → 不写语义) | 人入镜不写入 LTM |
| Wed | dashboards: `prism viz live` + `prism viz delta` | 两个可视化能跑 |
| Thu | 写 ROS 2 launch 文件,整套节点一键启动 | `ros2 launch prism online.launch.yaml` |
| Fri | Bug fix + 性能 profile | CPU < 50%GPU < 60% |
**周末验收**:连续运行 4 小时,delta 累积 ≥ 500 条,无崩溃。
---
## 9.6 Phase 4 — 巩固机制(W7
**目标**:跑通 Chapter 07 的 `prism consolidate` 完整流程。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | 实现 `classify` + 晋升规则;单元测试 | 1000 模拟 delta,准确分类率 100% |
| Tue | 实现 `arbitrate`(冲突合并) | remove+add 自动合并为 moved |
| Wed | 实现 `apply_events`deepcopy + 整体替换) | 应用后 validate() 0 errors |
| Thu | 实现 `incremental_update_tsdf` + warmstart 3DGS | 单房间增量 < 5 min |
| Fri | staging + sanity_relocalize + commit;回滚测试 | 注入故意错误能成功回滚 |
**周末验收**:跑一次完整 `prism consolidate --mode=full`,前后对比 LTM 健康度提升。
---
## 9.7 Phase 5 — 端到端 demoW8
**目标**:完整演示一个 "T0–T4 一天" 剧本(参考 [`08_runtime_timeline.md`](08_runtime_timeline.md))。
| Day | 任务 | 验收 |
|-----|------|------|
| Mon | 选定真实场景(实验室 + 2 房间),完成 iPhone 扫描 | LTM 节点 ≥ 50anchors ≥ 6 |
| Tue | 部署到机器人 + 完整启动;冷启动 demo | 视频 1:开机 → 重定位 |
| Wed | 巡逻 + delta 累积 demo | 视频 2:搬走椅子,10 s 内提示 |
| Thu | LLM Agent 集成(GPT-4o 调用 PRISM API);任务 demo | 视频 3"取遥控器" 任务成功 |
| Fri | 充电触发 consolidate + 第二天重启 demo | 视频 4:巩固前后对比 |
**周末交付**
- 📹 4 段演示视频(每段 < 2 min)
- 📊 性能报告(重定位 / 在线感知 / 巩固指标)
- 📚 README + Quickstart 文档
- 🎤 15 分钟 demo PPT
**此时 PRISM v0.1 原型可对外展示**
---
## 9.8 Phase 6 — 鲁棒性与多房间(M3–M4,2 个月)
| 周次 | 主题 |
|------|------|
| M3-W1 | 扩到 8 房间 + 走廊(真实酒店楼层) |
| M3-W2 | 重定位在跨多 session 拼接 LTM 上的稳定性 |
| M3-W3 | 镜面 / 玻璃 / 弱纹理的特殊处理(接 [`hotel_scene_implementation_plan_part2.md`](../hotel_scene_implementation_plan_part2.md) |
| M3-W4 | 长时(72 h 不间断)压测 |
| M4-W1 | 自动化评测套件(13 章指标) |
| M4-W2 | 数据集采集(HotelScene-Bench v0.5 |
| M4-W3 | 性能优化(FP16 / TensorRT / nvblox |
| M4-W4 | 第一轮内部用户测试 + 修 bug |
---
## 9.9 Phase 7 — LLM Agent 集成(M5
| 周 | 任务 |
|----|------|
| W1 | 写 `SpatialMemoryAPI`(高层接口)+ Function-Calling schema |
| W2 | GPT-4o / Qwen-VL 接入;任务规划器 |
| W3 | 6 类典型任务实现:取物、引路、检查、补货、问询、迎宾 |
| W4 | 多轮对话 + 上下文管理 + 错误恢复 |
---
## 9.10 Phase 8 — 生产 / 开源(M6
| 周 | 任务 |
|----|------|
| W1 | 安装脚本 / Docker 镜像 / 一键部署 |
| W2 | 完整文档(API ref + 教程 + FAQ |
| W3 | 开源准备(GitHub 仓库 + README + LICENSE |
| W4 | 发布 v1.0 + 论文撰写启动 |
---
## 9.11 关键里程碑(Go/No-Go gates
| 时刻 | Gate | 通过标准 | 不通过怎么办 |
|------|------|----------|--------------|
| **W2 末** | 单边管线 | 两条管线各自 demo 成功 | 延期 1 周;不能进 W3 |
| **W4 末** | 重定位 | 多房间冷启动 ≥ 85% | 不能进 W5;换 DINOv2 + anchor 兜底 |
| **W6 末** | 在线感知稳定 | 4 h 无崩溃 + 资源占用合理 | 优化或简化 worker |
| **W8 末** | 端到端 demo | 4 段视频 + 报告 | 缩小 demo 范围 |
| **M4 末** | 鲁棒性 | 72 h 压测通过 | 暴露真实问题再迭代 |
| **M6 末** | 生产就绪 | 文档 + Docker + 开源 | 推迟 release |
---
## 9.12 风险驱动的调整规则
每周五开 30 min sync,按下表决定下周计划:
| 信号 | 调整 |
|------|------|
| 重定位 fitness 持续 < 0.7 | 暂停新功能,先解决(可能要补 DINOv2 / SuperPoint |
| Detector 误检率高 | 增加训练时间或换 Grounding-DINO |
| delta/pending 增长太快 | 提前实现 consolidate 的轻量版 |
| iPhone 扫描人工成本太高 | 简化采集 SOP,或试用 Polycam 替代 RoomPlan |
| Jetson 资源不足 | 砍 3DGS(用 Mesh 代替)或换 Orin AGX 64 GB |
---
## 9.13 团队任务分配建议
| Sprint | Robotics | ML | System | iOS |
|--------|----------|----|----|-----|
| W1 | (env setup) | (env setup) | parser_iphone | PRISMScanner |
| W2 | ZED ROS2 + FrameProducer | YOLO-World | TSDF Worker | — |
| W3 | TF / 控制 | CLIP coarse | fine_register / ICP | — |
| W4 | OnlineReloc / Anchor | DINOv2 rerank | ChangeDetector | (ArUco 兜底) |
| W5 | Avoidance 接入 | EMA 更新 | DeltaLog | — |
| W6 | Launch + 压测 | dashboards | — | — |
| W7 | 集成 | 3DGS warmstart | consolidate full | — |
| W8 | E2E demo | demo 物料 | docs / quickstart | — |
---
## 9.14 预算(8 周原型阶段)
| 类别 | 金额 |
|------|------|
| 硬件(一次性) | ~ ¥73 k |
| 软件订阅(Roboflow / Polycam Pro / OpenAI API | ¥3 k |
| 云 GPU 备用(恒源云) | ¥2 k |
| 场地租用(一个酒店楼层 1 周) | ¥10 k |
| 人力(3.5 FTE × 2 月) | ¥150 k |
| **合计** | **~ ¥240 k** |
→ 即 8 周原型阶段约需 ¥24 万。生产阶段(M3-M6)再追加约 ¥80 万。
---
## 9.15 本章小结
| 关键里程碑 | 时刻 | 一句话 |
|-----------|------|--------|
| **单边可跑** | W2 末 | iPhone & ZED 分别打通 |
| **握手成功** | W4 末 | 任意位置 1 s 内重定位 |
| **在线稳定** | W6 末 | 4 h 压测无崩溃 |
| **巩固闭环** | W7 末 | 充电 → 巩固 → 重启验证 |
| **端到端 demo** | W8 末 | 4 段视频 + 报告 |
| **生产就绪** | M6 | 开源 + 文档 + Docker |
读完本章你应能:
- ✅ 制定一份 PRISM 的 Gantt 图
- ✅ 在每个 gate 决定 Go/No-Go
- ✅ 估算预算与团队配置
下一章 [`10_tech_stack.md`](10_tech_stack.md) 细化具体技术栈选型与版本依赖。
---
**章节版本**v1.0
**估计阅读时间**12 分钟
**关键收获**:从今天起到 8 周后能演示,每天该做什么