3. 自动驾驶系统性能指标

在自动驾驶系统中,性能问题往往不是“能不能跑”,而是“能不能稳定、及时、可预测地跑”。同一套感知、定位、规划、控制算法,在实验室里可能表现良好,但一旦进入实车、多传感器并发、长时间运行和复杂交通场景,延迟、抖动、资源占用和功耗就会成为决定安全性的关键因素。因此,性能指标不是单纯的工程优化参数,而是自动驾驶系统可靠性设计的基础语言。

本节的核心目标:建立一套可测量、可比较、可追踪的性能指标体系,把“系统是否足够快、足够稳、足够省”转化为明确的量化定义。

3.1 核心指标定义与关系

自动驾驶系统通常由传感器采集、时间同步、感知推理、目标跟踪、定位融合、预测、规划、控制、执行器反馈等环节组成。每个环节都会引入时间开销和资源消耗,最终叠加为端到端时延。理解这些指标,需要先区分“单点性能”和“链路性能”。

  • 延迟(Latency):从事件发生到系统产生有效响应的时间间隔。例如,从激光雷达扫描到点云进入感知节点,再到障碍物被识别并输出给规划模块的时间。
  • 抖动(Jitter):同一类事件延迟的波动程度。平均延迟低不代表安全,若抖动大,控制周期可能忽长忽短,导致车辆行为不稳定。
  • 吞吐量(Throughput):单位时间内系统能够处理的数据量或任务数,如每秒处理的图像帧数、点云帧数、消息数。
  • CPU/GPU占用:计算资源的使用比例。CPU占用高可能导致调度延迟,GPU占用高可能影响推理帧率和显存分配。
  • 内存占用:包括物理内存、显存、共享内存和消息队列缓存。内存泄漏或频繁分配会造成长尾延迟。
  • 功耗:计算平台、传感器和冷却系统的能量消耗,直接影响续航、散热和长期稳定性。
  • 端到端时延:从传感器原始数据采集到控制指令输出的总时间,是自动驾驶安全裕度最直接的约束之一。
  • 安全裕度:系统在时延、抖动、资源余量等方面距离安全边界还剩多少空间。安全裕度不是单一数值,而是多指标共同决定的系统能力。

这些指标之间并非独立。提高吞吐量可能增加CPU/GPU占用,进而抬高延迟和抖动;降低功耗可能限制算力,影响端到端时延。因此,性能工程本质上是在多目标之间寻找可验证的平衡点。

自动驾驶性能指标链路关系 从传感器到执行器:延迟、抖动、资源与安全裕度共同决定系统可用性 传感器采集 LiDAR / Camera / Radar 感知与融合 检测 / 跟踪 / 定位 预测与规划 行为预测 / 轨迹规划 控制与执行 横纵向控制 / 底盘 端到端时延 = 采集 + 传输 + 推理 + 融合 + 规划 + 控制 + 执行反馈 每一段都贡献延迟与抖动,最慢环节决定安全上限 延迟 / 抖动 响应快不快、稳不稳 吞吐量 单位时间处理能力 CPU / GPU / 内存 资源占用与余量 功耗与散热 长期稳定运行约束 安全裕度 = 系统能力 − 实际负载 − 不确定性波动 裕度不足时,延迟抖动会直接转化为碰撞风险 观测维度 时间 算力 数据 控制 资源 能耗 安全

3.2 指标测量方法与流程

要让性能指标真正可用,必须建立统一的测量口径。推荐流程如下:

  1. 定义时间基准:所有节点使用同一时钟源,优先采用PTP或gPTP进行硬件时间同步,避免用本地墙上时钟直接比较。
  2. 埋点采集:在传感器驱动、ROS2回调、推理前后、规划输出、控制指令下发等关键位置记录时间戳。
  3. 计算延迟与抖动:延迟取P50、P95、P99等分位数;抖动可用相邻周期延迟差的标准差或P99-P50表示。
  4. 资源采样:使用top、tegrastats、nvidia-smi、ros2 topic hz等工具周期性采集CPU、GPU、内存和功耗。
  5. 关联分析:将时延尖峰与资源占用、消息队列深度、调度延迟进行时间对齐,定位瓶颈环节。
  6. 设定阈值与裕度:根据车辆动力学和安全距离模型,反推允许的最大端到端时延和抖动范围。
# 示例:查看ROS2话题频率与延迟统计
ros2 topic hz /perception/obstacles
ros2 topic delay /planning/trajectory

# 示例:查看GPU占用与功耗
nvidia-smi --query-gpu=utilization.gpu,memory.used,power.draw --format=csv

# 示例:查看CPU调度延迟
cyclictest -t -p 80 -n -i 10000 -l 10000

3.3 典型场景与指标约束

不同自动驾驶场景对指标的敏感度不同。高速巡航更关注端到端时延和抖动,因为车速高、可用反应时间短;城市低速场景更关注吞吐量和CPU/GPU占用,因为传感器多、目标密集、计算负载重;泊车场景则对功耗和内存更敏感,因为平台往往算力有限且需要长时间待机。

场景 关键指标 典型约束 风险点
高速巡航 端到端时延、抖动 时延P99 ≤ 100ms,抖动 ≤ 20ms 急刹或避让不及时
城市低速 吞吐量、CPU/GPU占用 感知帧率 ≥ 10Hz,GPU ≤ 80% 目标漏检、规划超时
自动泊车 内存、功耗 内存余量 ≥ 20%,功耗 ≤ 平台上限 长时间运行后卡顿
园区接驳 延迟、安全裕度 端到端时延 ≤ 150ms,裕度 ≥ 30% 人车混行时响应不足

3.4 常见误区与复盘

误区一:只看平均延迟。平均延迟低,但P99延迟很高,仍然可能在关键时刻失效。自动驾驶必须关注长尾延迟。
误区二:把CPU占用低等同于系统健康。CPU占用低可能是任务被阻塞、消息丢失或调度优先级配置错误,必须结合吞吐量和端到端时延一起判断。
误区三:忽略抖动。控制周期抖动会直接导致车辆横向控制不平顺,甚至引发执行器频繁修正。
复盘建议:每次性能问题都应记录“时间、场景、指标异常、资源状态、根因、修复动作、回归结果”。只有形成闭环,安全裕度才可被持续验证。

总结来看,延迟、抖动、吞吐量、CPU/GPU占用、内存、功耗、端到端时延和安全裕度共同构成自动驾驶系统的性能画像。工程实践中,应把它们作为一组相互约束的指标进行采集、分析和优化,而不是孤立地追求某一项最优。只有明确指标定义、测量方法和安全边界,才能让自动驾驶系统在真实道路上具备可预测、可验证的可靠性。