# 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 分钟 **关键收获**:建立"传感器画像 → 分层决策"的映射逻辑