12 KiB
Chapter 09 — 实施路线图(8 周原型 + 4 个月生产)
本章目标:把 PRISM 从"文档"变成"能跑的代码"。给出8 周原型计划(达到 demo 可演示)+ 4 个月生产计划(达到上线可交付)。
9.1 总览
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 |
软件环境
# 工作站
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 全流程,得到一个房间的 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 §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)。
| 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) |
| 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 细化具体技术栈选型与版本依赖。
章节版本:v1.0 估计阅读时间:12 分钟 关键收获:从今天起到 8 周后能演示,每天该做什么