dbcbdbb59e
- 处理: 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
253 lines
9.5 KiB
Markdown
253 lines
9.5 KiB
Markdown
---
|
||
title: "Chapter 01 — 两方案能力解构"
|
||
date: 2026-05-20
|
||
draft: false
|
||
tags: ["PRISM", "世界模型", "空间记忆", "机器人", "iOS", "RoomPlan"]
|
||
categories: ["worldmodel"]
|
||
---
|
||
|
||
# Chapter 01 — 两方案能力解构
|
||
|
||
> 本章目标:把 iPhone 与 ZED 2i 两个采集方案**逐项拆开**,建立"谁该干什么"的明确边界,作为后续所有分层决策的依据。
|
||
|
||
---
|
||
|
||
## 1.1 决策框架:传感器画像 (Sensor Persona)
|
||
|
||
在做任何融合之前,必须先回答 7 个问题:
|
||
|
||
```
|
||
1. WHEN 何时采集? (离线 vs 在线)
|
||
2. WHO 谁来用? (人 vs 机器人)
|
||
3. WHERE 覆盖多大? (场景级 vs 视锥级)
|
||
4. HOW MUCH 精度多少? (cm vs %)
|
||
5. WHAT 语义多丰富? (结构化 vs 像素级)
|
||
6. HOW FAST 多快? (秒/分钟 vs Hz)
|
||
7. WHY FAIL 什么时候坏? (失效模式)
|
||
```
|
||
|
||
按这 7 个问题给两个传感器各做一张画像。
|
||
|
||
---
|
||
|
||
## 1.2 iPhone (RoomPlan + LiDAR) 画像
|
||
|
||
```yaml
|
||
名称: iPhone Pro (15/14/13 Pro 系列)
|
||
角色: 先验地图源 (Prior Map Provider)
|
||
|
||
WHEN:
|
||
- 部署前一次性扫描
|
||
- 场景大改时重扫(建议季度级)
|
||
- 不参与机器人运行时
|
||
|
||
WHO:
|
||
- 由"人"持机扫描(10–20 分钟/房间)
|
||
- 机器人**不携带** iPhone
|
||
|
||
WHERE:
|
||
- 房间级 30–100 m²(单次扫描)
|
||
- 多房间需多次扫描 + 走廊串联
|
||
- 最大有效范围 ≤ 5 m(LiDAR 物理限制)
|
||
|
||
HOW MUCH:
|
||
- 墙面定位精度: ±3 cm
|
||
- 家具尺寸误差: ±5 cm
|
||
- 朝向误差: ±2°
|
||
- 全局拓扑(房间相对位置): ±10 cm
|
||
|
||
WHAT:
|
||
RoomPlan 直接产出:
|
||
- 结构化几何:参数化的 wall/door/window 平面方程 + OBB
|
||
- 家具语义:bed/sofa/chair/table/storage/... (≈ 16 类)
|
||
- USDZ / JSON 格式
|
||
额外可得(用 ARKit 原始数据):
|
||
- 稠密点云(LiDAR 深度,640×480)
|
||
- RGB 图像序列
|
||
- ARKit 位姿轨迹
|
||
|
||
HOW FAST:
|
||
- 扫描期间: 30 fps 实时预览
|
||
- 处理出图: 10–60 秒(设备端)
|
||
- 不是"实时机器人感知"
|
||
|
||
WHY FAIL:
|
||
- ❌ 强光直射(窗边):LiDAR 失效
|
||
- ❌ 全黑环境:RGB 失效,IMU 漂移
|
||
- ❌ 完全镜面 / 玻璃墙:几何错乱(与 ZED 2i 共同弱点)
|
||
- ❌ 弱纹理大白墙:照片建模失败(LiDAR 可补)
|
||
- ⚠️ 家具被移动后:所有家具节点过时
|
||
- ⚠️ 动态物体(人/宠物):会被错误烘到 mesh
|
||
```
|
||
|
||
**一句话**:iPhone 是**"建筑师的图纸 + 摄影师的照片"**——稀疏精确、有语义,但**冻结在过去某一时刻**。
|
||
|
||
---
|
||
|
||
## 1.3 ZED 2i (双目 + IMU) 画像
|
||
|
||
```yaml
|
||
名称: Stereolabs ZED 2i
|
||
角色: 在线感知器 (Live Perceptor)
|
||
|
||
WHEN:
|
||
- 机器人运行时持续工作
|
||
- 30 fps 流式输出
|
||
- 与控制循环同步
|
||
|
||
WHO:
|
||
- 装在机器人前向(建议 1.0–1.3 m 高度)
|
||
- 机器人随身携带
|
||
- 没有人参与
|
||
|
||
WHERE:
|
||
- 视锥级:水平 110° × 垂直 70°
|
||
- 深度有效范围: 0.3–20 m(QUALITY 模式下 0.5–10 m 最稳)
|
||
- 单次只能看一个视锥(≈ 30% 房间)
|
||
|
||
HOW MUCH:
|
||
- 深度精度: ±1% @ 1 m, ±2% @ 3 m, ±4% @ 5 m
|
||
- VIO 位姿漂移: 0.1% 行驶距离(即 100 m 内 < 10 cm)
|
||
- 长时间累计漂移: 1 km 后约 1 m
|
||
- IMU 短时积分: 角速度 ±2000 dps, 加速度 ±16 g, 400 Hz
|
||
|
||
WHAT:
|
||
原始数据:
|
||
- 左右 RGB 图像(2208×1242 @ 15fps,或 1280×720 @ 60fps)
|
||
- 深度图(与左目对齐)
|
||
- IMU (陀螺 + 加速度 + 磁力计 + 气压计)
|
||
SDK 直接给出:
|
||
- 6-DoF 位姿(VIO)
|
||
- 稀疏关键点轨迹
|
||
- 实时 spatial mapping(mesh)
|
||
- 物体检测(内置 SOTA 类别有限,建议外挂 YOLO-World)
|
||
没有语义:
|
||
- 默认不识别房间、不分割物体
|
||
- 需自己接 CLIP/SAM/Grounding-DINO
|
||
|
||
HOW FAST:
|
||
- 深度 + VIO: 30 Hz
|
||
- 1080p RGB: 30 Hz
|
||
- IMU: 400 Hz
|
||
- 端到端延迟(采集→深度可用): 50–80 ms
|
||
|
||
WHY FAIL:
|
||
- ❌ 镜面、玻璃:双目失配,深度伪影(与 iPhone 共同弱点)
|
||
- ❌ 极弱纹理(白墙、纯色地毯):匹配失败
|
||
- ❌ 强光直射镜头:过曝
|
||
- ⚠️ 长时间静止 + 转动:VIO 漂移大(IMU bias 累积)
|
||
- ⚠️ 快速旋转(> 180°/s):图像运动模糊
|
||
- ⚠️ 跨房间(穿门瞬间):可能丢失定位 → 需重定位
|
||
```
|
||
|
||
**一句话**:ZED 2i 是**"驾驶员的眼睛 + 内耳前庭"**——视锥窄但连续、稠密、随身,但**只看到当下、不记得过去**。
|
||
|
||
---
|
||
|
||
## 1.4 并排对比表
|
||
|
||
| 维度 | iPhone (RoomPlan/LiDAR) | ZED 2i (双目+IMU) | 谁占优 |
|
||
|------|-------------------------|-------------------|--------|
|
||
| 部署成本 | ¥10 k(一次性) | ¥4 k(一次性) | ZED |
|
||
| 单次覆盖 | 30–100 m² | 一个视锥 | **iPhone** |
|
||
| 几何精度 | ±3 cm(墙) | ±1–4%(深度) | iPhone(近场打平,远场胜出) |
|
||
| 语义丰富度 | 16 类家具,开箱即用 | 0 类(需外挂) | **iPhone** |
|
||
| 时间分辨率 | 离线 | 30 Hz | **ZED** |
|
||
| 动态物体处理 | 无 | 可在线检测 | **ZED** |
|
||
| 镜面/玻璃 | 失败 | 失败 | 平手(都差) |
|
||
| 弱纹理 | LiDAR 可救 | 失败 | **iPhone** |
|
||
| 大场景拼接 | 多扫多拼,易漂 | VIO 长漂 | 平手(都需校正) |
|
||
| 是否上机器人 | 否 | 是 | — |
|
||
|
||
---
|
||
|
||
## 1.5 互补性可视化
|
||
|
||
```mermaid
|
||
quadrantChart
|
||
title iPhone vs ZED 2i 能力象限
|
||
x-axis 低更新率 --> 高更新率
|
||
y-axis 低覆盖 --> 高覆盖
|
||
quadrant-1 高覆盖+高频率 理想不存在
|
||
quadrant-2 高覆盖+低频率 iPhone
|
||
quadrant-3 低覆盖+低频率 盲区
|
||
quadrant-4 低覆盖+高频率 ZED 2i
|
||
iPhone RoomPlan: [0.15, 0.85]
|
||
ZED 2i VIO Depth: [0.85, 0.20]
|
||
L2 度量层 会合点: [0.5, 0.5]
|
||
```
|
||
|
||
- **iPhone 在"高覆盖×低更新"象限** → 自然落位为 **L3/L4** 的稳定结构
|
||
- **ZED 2i 在"低覆盖×高更新"象限** → 自然落位为 **L1/L2** 的即时感知
|
||
- 中间的 **L2 度量层**是两者**必然相遇**的地方 → 配准与差异检测必须发生在这里
|
||
|
||
---
|
||
|
||
## 1.6 互补性的三个具体维度
|
||
|
||
### 维度 1:空间分布互补
|
||
- iPhone 覆盖**全场景**但**静态**
|
||
- ZED 2i 覆盖**视锥**但**穿越所有视锥后**也能覆盖全场景
|
||
- → ZED 2i 是 iPhone 的**时间扩展**(补未来的变化);iPhone 是 ZED 2i 的**空间扩展**(补它没看到的部分)
|
||
|
||
### 维度 2:语义粒度互补
|
||
- iPhone 给**粗粒度建筑语义**:房间、墙、门、大件家具
|
||
- ZED 2i + VLM 给**细粒度物品语义**:遥控器、水杯、毛巾
|
||
- → 大小语义嵌套形成 **L4 场景图的两级**(房间→家具→物品)
|
||
|
||
### 维度 3:失败模式互补
|
||
- iPhone 在**镜面**失败 → ZED 2i 也失败 → 这是**真共同弱点**,需第三方案(偏振相机,见 [`hotel_scene_implementation_plan_part2.md`](../hotel_scene_implementation_plan_part2.md))
|
||
- iPhone 在**弱纹理**仍能 LiDAR 救场 → ZED 2i 在此处需依赖 iPhone 的先验填充
|
||
- ZED 2i 在**动态场景**胜出 → 在此处需 ZED 来告诉 iPhone "你的图过期了"
|
||
|
||
---
|
||
|
||
## 1.7 反例:什么情况下单一传感器够用?
|
||
|
||
为了诚实,列出 PRISM **不必要**的场景:
|
||
|
||
| 场景 | 推荐 | 原因 |
|
||
|------|------|------|
|
||
| 仅做静态房间数字孪生展示(不上机器人) | 只用 iPhone | 不需要在线感知 |
|
||
| 已有完整 BIM/CAD 图纸的工厂 | BIM + ZED 2i(跳过 iPhone) | BIM 比 RoomPlan 更准 |
|
||
| 完全开放的户外环境(公里级) | LiDAR 主导(如 Livox + FAST-LIO2) | RoomPlan 不支持户外 |
|
||
| 实验室桌面操作(毫米级) | 桌面级 RGB-D + AprilTag | RoomPlan/VIO 精度都不够 |
|
||
| 一次性快速 demo(不留长期记忆) | 只用 ZED 2i | 不需要先验 |
|
||
|
||
**适用 PRISM 的甜区**:**室内 + 多房间 + 服务机器人 + 需要长期运行 + 场景偶尔变化**。酒店、家居、办公、医院走廊都属于此。
|
||
|
||
---
|
||
|
||
## 1.8 把画像翻译为分层决策
|
||
|
||
| 画像观察 | 引出的设计决策 | 在 PRISM 中的体现 |
|
||
|----------|----------------|--------------------|
|
||
| iPhone 离线 + 高精度 + 有语义 | 应充当"先验/宪法" | L3/L4 主写者 |
|
||
| ZED 2i 在线 + 视锥窄 + 无语义 | 应充当"补丁/快讯" | L1 唯一写者,L2/L4 增量写者 |
|
||
| 两者都在镜面失败 | 镜面区单独打标"no-update" | 见 [`12_risks.md`](12_risks.md) |
|
||
| 两者精度量级相近(cm 级) | 配准用 ICP 足够,不必更复杂 | 见 [`05_pipeline_B_relocalization.md`](05_pipeline_B_relocalization.md) |
|
||
| iPhone 偶尔过时 | 必须有"差异检测 + 巩固"机制 | 见 [`06_pipeline_C_online_perception.md`](06_pipeline_C_online_perception.md), [`07_pipeline_D_consolidation.md`](07_pipeline_D_consolidation.md) |
|
||
| ZED 2i 会漂 | 必须有"锚点重定位刷新" | 见 [`05_pipeline_B_relocalization.md`](05_pipeline_B_relocalization.md) |
|
||
|
||
---
|
||
|
||
## 1.9 本章小结
|
||
|
||
| 关键词 | 一句话 |
|
||
|--------|--------|
|
||
| **iPhone 的本质** | 高质量但冻结的"过去快照",给 L3/L4 |
|
||
| **ZED 2i 的本质** | 实时但视锥窄的"当下流",给 L1/L2 |
|
||
| **不可调和的共同弱点** | 镜面/玻璃 → 单独打掩膜 |
|
||
| **天然互补的关键点** | 覆盖×频率象限完全错开 |
|
||
| **甜区** | 室内多房间服务机器人 |
|
||
|
||
读完本章你应知道:**为什么必须分层,以及每一层应该由谁主导。**
|
||
|
||
下一章 [`02_architecture.md`](02_architecture.md) 会把这 4 层结构完整展开,说明每一层的数据结构、更新规则、查询接口。
|
||
|
||
---
|
||
|
||
**章节版本**:v1.0
|
||
**估计阅读时间**:12 分钟
|
||
**关键收获**:建立"传感器画像 → 分层决策"的映射逻辑
|