1. 课程导入

在自动驾驶、无人机导航、机器人定位、工业过程监控等系统中,状态估计器往往同时接收来自激光雷达、毫米波雷达、视觉相机、IMU、轮速计、GNSS 等多类传感器的数据。不同传感器在采样频率、观测维度、噪声特性、失效模式上差异巨大,因此“估计结果是否可信、精度是否达标、在异常场景下是否稳健”不能仅凭单次实验或主观判断得出结论,而必须建立一套可复现、可量化、可对比的性能评测体系。本课程围绕“多源状态估计性能评测”展开,目标是让学习者既能理解评测指标背后的数学含义,又能独立设计评测流程、搭建测试场景、分析误差来源,并最终形成面向工程落地的评测报告。

一、学习目标:从“会跑算法”到“会评算法”

本课程不是单纯讲解某一种滤波算法或优化方法,而是聚焦于“如何判断一个多源状态估计系统好不好”。完成课程后,学习者应达到以下四个层次的目标:

  • 概念层:理解状态估计、多源融合、真值基准、误差统计、一致性检验等核心概念,能区分精度、鲁棒性、实时性、可观测性等不同评价维度。
  • 指标层:掌握 RMSE、MAE、NEES、ANEES、ATE、RPE、收敛时间、失效率等指标的定义、适用条件与计算方式,避免误用。
  • 方法层:能够设计离线回放、在线注入、蒙特卡洛重复实验、故障注入、消融对比等评测流程,并合理选择真值来源与评价基准。
  • 工程层:能够针对具体场景(如城市峡谷、隧道、动态遮挡、传感器退化)制定评测方案,输出可解释、可复现、可决策的评测结论。

核心转变:从“算法能跑通”转向“算法在什么条件下、以多大代价、达到何种可信度”。性能评测的本质,是用可观测的证据回答“估计结果是否值得信任”。

二、核心概念:多源状态估计与性能评测的基本要素

多源状态估计通常由状态模型、观测模型、融合策略和输出接口四部分组成。状态模型描述系统随时间演化的规律,例如位置、速度、姿态、零偏等;观测模型描述各传感器如何间接反映状态;融合策略决定如何加权、更新或优化;输出接口则给出估计值及其不确定度。性能评测要同时关注“估计值”和“不确定度”两条线,因为一个估计器可能均值很准,但协方差严重不一致,导致后续决策过于自信。

评测体系中的关键对象包括:

  • 真值基准:高精度组合导航、动捕系统、仿真真值或人工标注轨迹,用于计算误差。
  • 评价指标:绝对误差、相对误差、一致性指标、时间延迟、计算负载等。
  • 测试场景:正常工况、退化工况、故障工况、边界工况,用于覆盖不同失效模式。
  • 统计方法:均值、标准差、分位数、置信区间、蒙特卡洛重复次数,用于判断结果是否显著。

下图给出多源状态估计性能评测的整体框架,从传感器输入、估计器、真值基准到指标计算与结论输出,形成一条完整的数据流与评价链。

多源状态估计性能评测整体框架 传感器输入 → 估计器 → 真值基准 → 指标计算 → 结论输出 多源传感器 LiDAR / Radar Camera / IMU GNSS / 轮速计 采样率·噪声·失效模式 状态估计器 EKF / UKF / PF 因子图 / 优化 松耦合 / 紧耦合 输出:状态 + 协方差 真值基准 高精度组合导航 动捕 / 仿真真值 人工标注轨迹 时间同步·坐标对齐 指标计算 RMSE / MAE / ATE NEES / ANEES 收敛时间 / 失效率 统计显著性检验 评测结论与决策输出 精度是否达标 · 一致性是否可信 · 退化边界在哪里 · 是否可上线 测试场景库 正常·退化·故障·边界 复现与报告 数据·配置·脚本·结论 评测不是一次性打分,而是“场景—数据—指标—结论”的闭环迭代

三、方法流程:一次完整评测的六个步骤

为了让评测结果可复现、可对比,建议遵循以下流程。每一步都需要明确输入、输出和判定条件,避免“只跑一次就下结论”。

  1. 明确评测问题:是评估绝对精度、相对精度、一致性、鲁棒性,还是实时性?不同问题对应不同指标和场景。
  2. 准备数据与真值:采集或仿真多源数据,完成时间同步、外参标定、坐标统一,并选择可信真值源。
  3. 配置估计器与基线:固定参数、随机种子、初始条件,设置单传感器、松耦合、紧耦合等对比基线。
  4. 设计测试场景:覆盖正常、退化、故障、边界四类工况,必要时进行故障注入与消融实验。
  5. 计算指标与统计:对多次蒙特卡洛实验计算均值、标准差、分位数和置信区间,判断差异是否显著。
  6. 输出结论与复盘:给出精度、一致性、鲁棒性、实时性结论,标注失效边界与改进方向。

下面给出一个典型的评测配置片段,用于说明参数、场景和指标如何组织。实际工程中可将其写入 YAML 或 JSON 配置文件,便于批量复现。

evaluation:
  dataset: "urban_canyon_01"
  truth_source: "rtk_ins_postprocess"
  sync_tolerance_ms: 5
  estimators:
    - name: "ekf_loose"
      type: "EKF"
      sensors: ["imu", "gnss", "wheel"]
    - name: "graph_tight"
      type: "factor_graph"
      sensors: ["imu", "lidar", "camera"]
  scenarios:
    - normal
    - gnss_degraded
    - lidar_dropout
    - dynamic_occlusion
  metrics:
    - rmse_position
    - rmse_velocity
    - nees
    - convergence_time
    - failure_rate
  monte_carlo_runs: 30
  random_seed: 42

四、案例与场景:为什么同一算法在不同场景下结论相反

假设某多源融合算法在城市开阔路段 RMSE 为 0.35 m,表现优秀;但在城市峡谷中 GNSS 多径严重,若仍以 GNSS 为高权重观测,位置误差可能迅速增大到 3 m 以上。此时若只报告平均值,就会掩盖退化场景下的风险。因此评测必须分场景统计,并关注最差工况、恢复时间和失效次数。

另一个常见场景是传感器 dropout。例如激光雷达在雨雾中有效点云骤减,视觉在强光下特征丢失,IMU 零偏随时间漂移。评测时应记录“从故障发生到估计器发散或恢复”的时间窗口,并统计失效率。下表给出四类典型场景与推荐关注指标,可作为评测设计的检查清单。

场景类型 典型触发条件 推荐关注指标 常见误区
正常工况 传感器均正常、动态适中 RMSE、MAE、ATE、计算耗时 只看均值,忽略方差与最差样本
退化工况 GNSS 多径、视觉弱纹理、点云稀疏 分场景 RMSE、NEES、恢复时间 用正常场景参数直接外推
故障工况 传感器丢帧、卡死、跳变、零偏突变 失效率、发散时间、容错切换成功率 只测精度,不测失效边界
边界工况 高速运动、强机动、长时间无绝对观测 漂移率、收敛时间、一致性检验 忽略时间同步与坐标对齐误差

实用建议:评测报告至少应包含“场景—指标—统计量—结论”四列。对于每个结论,都要能追溯到具体数据、配置和脚本,避免只给一个孤立的数字。

五、常见误区与复盘要点

初学者在性能评测中容易陷入以下误区:一是把“单次实验最优”当作“系统最优”,忽略随机性和蒙特卡洛统计;二是只关注位置误差,忽略姿态、速度、零偏和协方差一致性;三是真值本身不可信,却将其视为绝对标准;四是场景覆盖不足,导致结论无法外推到真实部署;五是不记录参数和随机种子,导致结果无法复现。

复盘时应重点回答三个问题:第一,误差主要来自哪里,是观测噪声、模型误差、时间同步还是外参标定?第二,估计器在什么条件下开始退化,退化是渐进的还是突发的?第三,不确定度输出是否与实际误差匹配,是否存在“过度自信”或“过度保守”?只有把这些问题回答清楚,性能评测才真正具备工程价值。

注意:性能评测不是算法开发的最后一步,而应贯穿需求分析、算法选型、参数调优和上线验收全过程。越早建立评测基准,越能避免后期返工。

六、课程路线图:30 章如何组织

本课程共 30 章,整体按照“基础概念—指标体系—数据与真值—评测方法—场景与故障—工程落地”的主线推进。前几章建立统一术语和评测框架;中间章节深入 RMSE、NEES、ATE、RPE、一致性检验等核心指标,并讲解数据同步、标定、真值获取;后续章节覆盖蒙特卡洛、故障注入、消融实验、实时性评测和报告撰写。每章都会围绕一个可操作的问题展开,并配有对应的图解、清单或配置示例,帮助学习者把抽象指标转化为可执行的评测动作。

学习本课程时,建议同步准备一份自己的评测数据集或仿真环境,边学边练。每学完一个指标,就尝试在自己的数据上计算一次;每学完一种场景,就尝试构造一次故障注入。只有把评测流程真正跑通,才能在多源状态估计的工程实践中做出可信、可解释、可复现的判断。