chore: initial commit — import worldmodel workspace (plans/, research/)
This commit is contained in:
@@ -0,0 +1,327 @@
|
||||
# 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 | ¥10–30 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 — 单边管线(W1–W2)
|
||||
|
||||
### W1:iPhone 端管线打通
|
||||
|
||||
**目标**:跑通 [`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 看到房间 + 床 + 桌(带标签)。
|
||||
|
||||
### W2:ZED 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 个房间 LTM;CLIP 检索 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 — 在线感知 + delta(W5–W6)
|
||||
|
||||
### 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 — 端到端 demo(W8)
|
||||
|
||||
**目标**:完整演示一个 "T0–T4 一天" 剧本(参考 [`08_runtime_timeline.md`](08_runtime_timeline.md))。
|
||||
|
||||
| Day | 任务 | 验收 |
|
||||
|-----|------|------|
|
||||
| Mon | 选定真实场景(实验室 + 2 房间),完成 iPhone 扫描 | LTM 节点 ≥ 50,anchors ≥ 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 周后能演示,每天该做什么
|
||||
Reference in New Issue
Block a user