4. 车端数据采集系统

车端数据采集系统是 ADAS 数据闭环的“源头”。如果源头的时间戳不可信、触发条件不合理、落盘格式不统一,后续的标注、训练和问题复现都会付出成倍代价。本节围绕 Bosch 采集平台的典型工程实践,讲清传感器配置、时间同步、触发策略与落盘组织四个关键环节,并给出可参考的参数与约束。

一、传感器配置:先定义“采集什么”,再谈“怎么采”

采集系统的第一份配置不是代码,而是传感器清单。它需要明确每个传感器的类型、安装位置、坐标系、内外参、输出频率与数据接口。以典型的 L2+ 采集车为例,常见配置包括:前视 8MP 摄像头(约 30fps,输出 H.264 或 RAW)、环视 4 路 2MP 摄像头、前向毫米波雷达(约 20Hz,输出目标列表与原始 ADC 数据)、角雷达、以及一台 128 线激光雷达(10Hz,输出点云)。此外还有 IMU/GNSS 组合导航(100Hz)和车辆 CAN 总线(轮速、方向盘转角、制动状态等)。

配置的核心是“时间基准统一、坐标系统一、命名统一”。每个传感器在配置文件中应有唯一 ID,例如 cam_front_8mp、radar_front、lidar_top。外参以车辆后轴中心为原点,X 向前、Y 向左、Z 向上,单位米;内参以像素为单位。这些参数一旦写入配置,采集、回放和复现都必须引用同一份,避免“采集一套、复现另一套”。

二、时间同步:采集系统的生命线

多传感器融合的前提是时间对齐。Bosch 采集平台通常采用“硬件触发 + 软件时间戳”的双层机制。硬件层由 PTP(IEEE 1588)或 GPS PPS 提供全局时钟,摄像头、雷达、激光雷达通过触发线或同步信号对齐到同一时间基准;软件层为每帧数据打上采集时间戳,并记录传感器内部时间与全局时间的偏差。

实际工程中,时间同步需要关注三个指标:同步误差、时间戳抖动和丢帧率。以 30fps 摄像头为例,若同步误差超过 5ms,在 120km/h 下车辆已移动约 16.7cm,足以影响目标关联。因此,配置中应明确每个传感器的最大允许偏差,例如摄像头 ≤ 2ms、雷达 ≤ 1ms、激光雷达 ≤ 1ms。采集软件需周期性输出同步质量报告,一旦偏差超限,应触发告警或降级记录。

车端采集系统:传感器—同步—触发—落盘链路 传感器层 前视摄像头 8MP/30fps 毫米波雷达 20Hz 激光雷达 128线/10Hz IMU/GNSS 100Hz 车辆 CAN 总线 环视 4×2MP 时间同步层 PTP / GPS PPS 全局时钟基准 硬件触发对齐 摄像头/雷达/激光 软件时间戳 采集时刻 + 偏差 同步质量监控 误差/抖动/丢帧 记录触发层 事件触发 AEB/急刹/接管 周期触发 固定时长切片 条件触发 速度/距离/置信度 环形缓存 触发前 10s 保留 落盘层 原始数据 RAW/PCAP 感知结果 JSON/Protobuf 元数据 时间/位置/配置 索引文件 快速检索 关键约束:同步误差 ≤ 2ms | 触发前缓存 ≥ 10s | 落盘带宽 ≥ 1.5GB/s | 时间戳统一 UTC | 配置版本与数据绑定

三、数据记录触发策略:不是“一直录”,而是“该录才录”

全量录制会产生海量数据,一辆采集车一天可能产生数 TB 数据,其中大部分是无效场景。因此,触发策略的目标是“用最小数据量覆盖最有价值场景”。Bosch 采集平台通常组合使用四类触发:

  • 事件触发:由 AEB 激活、驾驶员急刹、方向盘大转角、安全员接管等信号触发,记录事件前后各 10~30 秒。
  • 周期触发:按固定时间切片记录,例如每 5 分钟记录 30 秒,用于覆盖常规路况。
  • 条件触发:当自车速度、目标距离、感知置信度等满足阈值时触发,例如“车速 > 60km/h 且前方目标距离 < 30m”。
  • 环形缓存:系统持续写入环形缓冲区,触发时把触发前一段时间的数据一并落盘,避免“触发时已经错过关键帧”。

触发策略的配置需要与存储和带宽匹配。假设 8 路摄像头 + 1 路激光雷达 + 雷达原始数据,峰值写入带宽约 1.5~2GB/s。若环形缓存深度为 30 秒,仅缓存就需要约 45~60GB 内存或高速 SSD 空间。因此,实际配置中常采用“原始数据分级落盘”:摄像头存 H.264 压缩流,激光雷达存 PCAP,雷达存原始 ADC 或目标列表,感知结果单独存 JSON/Protobuf。

四、原始数据与感知结果落盘:格式、目录与索引

落盘不是简单写文件,而是建立“可检索、可回放、可复现”的数据组织。推荐目录结构按“日期/车辆/行程/片段”四级组织,每个片段包含 raw/、perception/、meta/ 三个子目录。原始数据按传感器 ID 分文件,感知结果按帧号或时间戳命名,元数据记录采集配置版本、车辆参数、天气与道路类型。

2025-03-18/
  VH-001/
    trip_0912/
      clip_0001/
        raw/
          cam_front_8mp.h264
          lidar_top.pcap
          radar_front.bin
        perception/
          objects_000001.json
          objects_000002.json
        meta/
          sensor_config_v3.2.yaml
          sync_report.csv
          trigger_log.txt

索引文件是落盘层的“目录”,通常记录每个片段的起止时间、触发原因、传感器列表、文件大小和校验值。这样在问题复现时,可以按时间、触发类型或传感器快速定位到目标片段,而不必遍历全部数据。

五、Bosch 采集平台关键参数与约束

项目 典型参数/约束 说明
时间同步误差 摄像头 ≤ 2ms,雷达/激光 ≤ 1ms 超限需告警并记录降级原因
触发前缓存 ≥ 10s,建议 30s 环形缓存,避免错过关键帧
落盘带宽 ≥ 1.5GB/s 峰值 需匹配 NVMe SSD 阵列
时间戳基准 UTC,精度 μs 级 所有传感器统一,禁止混用本地时间
配置版本 与数据片段绑定 复现时必须使用同一版本配置
数据完整性 CRC 校验 + 索引 防止落盘中断导致文件损坏
常见陷阱:时间戳只记录“写入时刻”而非“曝光/采样时刻”,会导致多传感器对齐出现系统性偏移;触发策略只配事件触发、不配环形缓存,会丢失事件发生前的关键上下文;原始数据与感知结果分开存储但未绑定同一片段 ID,复现时无法一一对应。

总结来看,车端采集系统的工程化程度直接决定数据闭环的效率。传感器配置定义“采什么”,时间同步保证“对得齐”,触发策略决定“录得准”,落盘组织支撑“找得到、复现得了”。这四者共同构成 Bosch 采集平台的关键参数与约束体系,也是后续标注、训练和问题复现的基础。