跳转至

定位评估与运维:指标、失效场景与降级策略

本页用于把定位能力从"算法效果"转成"可运维工程能力",建立指标体系、失效处理与持续运营机制。


1. 核心指标体系

1.1 轨迹误差指标

ATE(Absolute Trajectory Error,绝对轨迹误差):

\[\text{ATE} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} \| \mathbf{p}_i - \hat{\mathbf{p}}_i \|^2}\]

ATE 衡量整段轨迹的全局精度,需要轨迹对齐(使用 Umeyama 对齐)以去除初始坐标系偏差。

RPE(Relative Pose Error,相对位姿误差):

\[\text{RPE}_{\Delta} = \frac{1}{N-\Delta} \sum_{i=1}^{N-\Delta} \| Q_i^{-1} \hat{Q}_i \|\]

其中 \(Q_i = T_i^{-1} T_{i+\Delta}\) 为真实相对位姿,\(\hat{Q}_i\) 为估计相对位姿。

RPE 衡量局部漂移特性,与 ATE 互补(ATE 受回环影响,RPE 不受)。

1.2 定位精度分级

不同自动化等级对定位精度的要求:

精度等级 横向误差 纵向误差 适用场景
车道级(Lane-level) < 50 cm < 1 m L2+ 高速辅助
亚车道级(Sub-lane) < 20 cm < 50 cm L3 城区
精确级(Precise) < 10 cm < 20 cm L4 Robotaxi

1.3 可用性与稳定性指标

指标 定义 参考目标
定位可用率 满足精度要求的时间占比 > 99.5%(城区)
重定位时间 定位失效后恢复所需时间 < 5 s
漂移率 单位距离误差增长 < 0.1%(无 GNSS 时)
横向误差 P95 95% 时刻下的横向误差 < 15 cm
横向误差 P99 99% 时刻下的横向误差 < 30 cm

2. 真值获取方法

2.1 高精度参考系统

常用真值系统:

系统 精度 成本 说明
RTK + IMU(后处理) 2–5 cm 位置 最常用工程方案
PPP-RTK(实时) 5–10 cm 较高 依赖差分网络
全站仪 + 控制点 毫米级 静态场景标定
LiDAR 高精扫描(比对) 5–10 cm 建图验证

2.2 数据采集要求

参考轨迹采集规范:
  ├─ GNSS 信号质量:卫星数 ≥ 8,PDOP < 2
  ├─ 采集时段:晴天,开阔区域优先
  ├─ 速度:< 80 km/h(采集精度要求)
  ├─ 后处理:使用基站差分数据进行 PPK 处理
  └─ 精度验收:横向 RMS < 3 cm

3. 场景化评估矩阵

建议针对不同 ODD 场景分别维护评估基准集:

场景类别 典型场景 主要挑战 重点指标
高速 长直道、隧道、匝道 隧道 GNSS 失效、长直道激光退化 隧道内漂移率
城区 高楼峡谷、路口、地下停车场 GNSS 多径、遮挡 横向误差 P95
复杂天气 夜间、雨雪、大雾 LiDAR 噪声、视觉退化 可用率
特殊区域 施工改道、临时封路 地图失效 重定位时间

4. 失效模式分析

4.1 GNSS 失效

失效类型 原因 检测方法
信号遮挡 高楼/隧道遮挡天空 卫星数 < 4 + HDOP 上升
多径干扰 信号反射导致测距偏差 位置跳变 > 阈值
欺骗攻击 伪造 GNSS 信号 与其他传感器一致性检验
电磁干扰 强 EMI 环境 SNR 下降 + 定位跳变

GNSS 失效检测算法:

def detect_gnss_anomaly(gnss_pos, prev_pos, dt):
    # 速度合理性检验
    v_est = (gnss_pos - prev_pos) / dt
    if norm(v_est) > v_max_reasonable:
        return "JUMP_ANOMALY"

    # 与 IMU 推算一致性检验
    imu_pos = integrate_imu(prev_pos, imu_data, dt)
    if norm(gnss_pos - imu_pos) > threshold:
        return "IMU_INCONSISTENCY"

    return "NORMAL"

4.2 地图失效

失效类型 原因 检测方法
施工改道 道路临时封闭/改线 匹配残差突增
地图过期 道路改造未更新 语义冲突(路口形状变化)
数据错误 生产错误 内部拓扑一致性校验

地图匹配残差监控:

\[\text{residual}(t) = \frac{1}{N}\sum_{i=1}^{N} d(p_i^{\text{scan}}, p_i^{\text{map}})\]

\(\text{residual}(t)\) 持续超过阈值(如 0.3 m)时,触发地图降级。

4.3 特征稀缺与场景退化

退化因子(Degeneracy Factor)分析:

对点云配准问题,分析信息矩阵 \(\mathbf{H}\) 的特征值分布:

\[\mathbf{H} = \sum_i \mathbf{J}_i^T \mathbf{J}_i\]

若某方向特征值接近零,表示该方向信息不足(退化)。


5. 降级策略

5.1 多传感器权重自适应

正常状态:
  weight_gnss = 0.4
  weight_lidar = 0.4
  weight_camera = 0.2

GNSS 异常时:
  weight_gnss = 0.05
  weight_lidar = 0.65
  weight_camera = 0.30

LiDAR 退化时(低点云质量):
  weight_gnss = 0.55
  weight_lidar = 0.15
  weight_camera = 0.30

5.2 降级决策树

定位健康度评分 = f(GNSS质量, 匹配分数, 融合残差)
    │
    ├─ 评分 > 0.8:正常定位,输出完整置信度
    │
    ├─ 0.5 < 评分 ≤ 0.8:
    │   ├─ 降低对地图先验权重
    │   ├─ 提升实时感知主导权重
    │   └─ 收紧行驶策略(限速 60 km/h,禁止变道)
    │
    ├─ 0.3 < 评分 ≤ 0.5:
    │   ├─ 触发重定位(主动搜索地图匹配)
    │   ├─ 限速 40 km/h
    │   └─ 向上层发送降级通知
    │
    └─ 评分 ≤ 0.3:
        ├─ 定位失效
        ├─ 触发 TOR(请求人工接管)
        └─ 若无人接管,执行 MRC(靠边减速停车)

6. 运维平台设计

6.1 定位问题可视化

建议建立 Web 端定位监控看板:

  • 实时地图:在地图上展示车辆轨迹、定位置信度热图
  • 误差时序图:横纵向误差随时间变化,叠加传感器状态
  • 传感器状态矩阵:各传感器实时健康状态(绿/黄/红)
  • 重定位事件:标记位置与触发原因

6.2 问题自动聚类

# 将定位问题片段向量化后聚类
from sklearn.cluster import DBSCAN

features = [
    [gnss_quality, lidar_score, speed, weather, road_type]
    for event in failure_events
]

clusters = DBSCAN(eps=0.5, min_samples=5).fit(features)

# 对每个聚类分析主因
for cluster_id in set(clusters.labels_):
    analyze_root_cause(cluster_id, failure_events)

7. 地图版本管理与热更新

7.1 版本号规范

地图版本格式:
  {区域代码}_{YYYYMM}_{patch}_{变更类型}

示例:
  SHA_202501_003_施工绕行
  BJ_202502_001_全量更新

7.2 增量更新流程

监控平台检测到高残差区域(连续 10 辆车匹配失败)
    │
    ├─ 触发采集任务:指派采集车到目标区域
    ├─ 数据处理:自动化提取差异区域
    ├─ 人工质检:验证变化内容
    ├─ 增量包生成:仅包含变化区域
    ├─ 灰度推送:先推送 10% 车辆
    └─ 监控 24h 后全量推送

8. 定位模块发布门禁

门禁项 验收标准
横向误差 P95 ≤ 基线 × 105%
定位可用率 ≥ 基线
重定位成功率 ≥ 99%(在 5 s 内)
隧道漂移率 ≤ 0.3% 单位距离
场景回归通过率 ≥ 98%(全量场景集)
接管事件中定位相关占比 ≤ 上一版本

9. 最小运维建议

  1. 定位问题自动聚类:按失效类型(GNSS/地图/退化)自动打标签,减少人工分析成本
  2. 高变化区域优先更新:对施工频繁、道路改造多的区域,提高地图更新频率(周级而非月级)
  3. 定位回归集:每次算法或地图版本发布前,必须执行固定场景集回归,不通过不发布
  4. 根因可追踪:每次接管事件中,若有定位置信度下降,必须追踪至具体传感器和时间段
  5. 健康度暴露给规划层:规划层应根据定位置信度调整行为策略,而非盲目信任定位输出