📅 2026-04-16🤖 claude-opus-4-20250514architectureprogressivereal-timepredictionbaseline

渐进式定位架构:从粗定位到精预测

1. 两种输出模式

1.1 最近志愿者估计值(快速粗定位)

直接取 RSSI 最强(距离最近)的好心人 GPS 位置作为设备位置。

  • 这正是 Apple Find My / Google Find Hub 当前的做法
  • 优势:零延迟,无需优化计算
  • 精度:等于该好心人的 GPS 精度(3–30m)
  • 用途:快速响应,用户打开 App 立刻看到大致位置

1.2 实时预测(精细优化)

收集多个好心人报告后做非线性优化 + 卡尔曼滤波。

  • 需要积累一定报告量(≥3 个才有几何约束)
  • 精度随报告增多持续提升
  • 移动场景下持续输出轨迹预测

2. 渐进收敛架构

两者不是二选一,而是同一系统的不同阶段

阶段 1:首个报告到达(t=0s)
├── 输出:最近志愿者估计值(粗定位)
├── 精度:等于好心人 GPS 精度(3–30m)
└── 置信圆:大(反映单点不确定性)

阶段 2:累积 3+ 个报告(t=30s~数分钟)
├── 输出:非线性优化结果(精定位)
├── 精度:显著优于单点,取决于几何分布
└── 置信圆:缩小

阶段 3:持续收到报告(移动场景)
├── 输出:卡尔曼滤波实时轨迹预测
├── 精度:随时间累积持续提升
├── 无报告时:按运动模型推算位置
└── 置信圆:动态调整(有观测时缩小,无观测时逐渐增大)

3. 模式切换逻辑

if 报告数 == 1:
    输出 = 最强 RSSI 好心人的 GPS 位置
    置信半径 = 该好心人的 accuracy + RSSI 测距不确定性

elif 报告数 == 2:
    输出 = 两个距离圆的交点区域中心(或加权平均)
    置信半径 = 缩小但仍较大(几何约束不足)

elif 报告数 >= 3:
    输出 = IRLS 鲁棒非线性优化结果
    置信半径 = 基于残差和几何 DOP 估计

if 移动场景 and 有历史轨迹:
    输出 = 卡尔曼滤波融合结果
    置信半径 = 滤波器协方差矩阵

4. 用户界面呈现

要素 表现形式
位置点 地图上的标记
置信圆 半透明圆环,半径 = CEP90
精度等级 文字提示:"大致位置" → "较精确" → "精确"
轨迹(移动) 带时间戳的路径线 + 预测延伸

置信圆随报告增多逐步缩小,给用户直观的"搜索范围正在收窄"体验。

5. 关键设计意义

5.1 优雅退化

当好心人极少时,系统退化到商业系统水平(最近志愿者位置),不会比现有方案差。这回答了"只有 1 个好心人怎么办"的问题。

5.2 渐进增益

每增加一个好心人都会改善结果:

  • 第 1 个:基线(等于 Find My)
  • 第 3 个:开始有几何约束
  • 第 5+ 个:鲁棒优化开始发挥作用(可识别并降权异常值)
  • 第 10+ 个:接近目标精度(CEP90 ≤ 30m)

5.3 实时预测价值

移动场景下,即使当前无好心人报告,运动模型仍能给出"设备可能在哪"的预测——这是纯静态优化无法做到的。用户不会看到"位置未知",而是看到一个不确定性逐渐增大的预测位置