4. 数据采集与传感器标定
在Apollo数据闭环中,数据采集是“原料入口”,传感器标定是“质量基准”。如果采集链路存在丢帧、时间漂移或外参错误,后续感知训练、回放仿真和系统验证都会建立在错误前提上。本章围绕多传感器数据采集方案、时间同步、空间标定、数据质量评估与常见问题展开,目标是建立一套可复现、可验证、可追溯的采集与标定工程方法。
一、核心原理:采集与标定的三条主线
多传感器数据采集不是简单地把相机、激光雷达、毫米波雷达、IMU和GNSS的数据写入磁盘,而是要在统一时间基准和统一空间基准下,形成可对齐、可融合、可回放的数据包。其核心可归纳为三条主线:
- 时间同步:所有传感器数据必须映射到同一时间轴,通常以GNSS/PTP时间为基准,配合硬件触发或软件时间戳对齐。
- 空间标定:确定各传感器相对车体坐标系的外参,以及相机内参、畸变系数、雷达安装角等,使不同模态数据能在同一坐标系下表达。
- 数据质量评估:通过完整性、时间偏差、标定残差、点云密度、图像曝光等指标,判断数据是否可用于训练和验证。
关键认知:采集解决“有没有数据”,标定解决“数据准不准”,质量评估解决“数据能不能用”。三者缺一不可,且必须在采集现场形成闭环记录。
二、多传感器数据采集方案
Apollo典型采集车通常搭载前视、侧视、后视相机,机械式或固态激光雷达,毫米波雷达,组合惯导和GNSS。采集方案需要明确传感器安装位置、触发方式、数据频率、存储格式和同步策略。
| 传感器 | 典型频率 | 时间同步方式 | 关键采集参数 |
|---|---|---|---|
| 相机 | 10–30 Hz | 硬件触发 + 曝光时间戳 | 分辨率、曝光、增益、帧率 |
| 激光雷达 | 10–20 Hz | PPS + 角度时间戳 | 线束、转速、回波模式 |
| 毫米波雷达 | 10–20 Hz | CAN时间戳 + 周期对齐 | 距离、速度、角度、RCS |
| IMU/GNSS | 100–1000 Hz | PTP/GNSS秒脉冲 | 加速度、角速度、定位状态 |
采集软件通常以ROS/ROS2或Apollo Cyber RT为中间件,将各传感器话题写入rosbag或Apollo record文件。采集前必须检查磁盘剩余空间、时间源状态、传感器健康状态和标定文件版本,避免“采了但不可用”。
# 采集前检查示例
rosbag record /camera/front/image /lidar/points /radar/objects /imu/data /gnss/fix \
--duration=60s -O test_001.bag
# 查看时间戳分布
rosbag info test_001.bag
三、时间同步:从硬件触发到软件对齐
时间同步的目标是让同一物理时刻的传感器数据具有一致的时间戳。常用方法包括:
- GNSS秒脉冲+PTP:以GNSS为全局时间源,通过PPS和PTP协议同步各传感器和计算平台。
- 硬件触发:由采集控制器统一发出触发信号,相机和激光雷达按固定相位曝光或扫描。
- 软件时间戳:在数据到达主机时打时间戳,适合对同步精度要求不高的场景,但会引入传输和调度抖动。
- 离线对齐:采集后利用IMU积分、运动补偿或互相关方法,对多模态数据进行二次对齐。
实践建议:时间同步误差应控制在传感器周期的1/10以内。例如10 Hz相机,同步误差最好小于10 ms;激光雷达运动补偿时,时间误差会直接转化为点云畸变。
四、空间标定:内参、外参与联合标定
空间标定分为内参标定和外参标定。相机内参包括焦距、主点、畸变系数;外参描述传感器到车体坐标系的旋转和平移。Apollo中常用相机-激光雷达联合标定,利用标定板、车道线或自然场景特征,优化外参使点云投影与图像边缘对齐。
# 相机内参标定示例(OpenCV)
python3 calibrate_camera.py \
--image_dir ./calib_images \
--pattern_size 9x6 \
--square_size 0.025 \
--output camera_intrinsics.yaml
标定完成后,必须验证重投影误差和点云配准残差。若外参存在1°旋转误差,在50 m处会产生约0.87 m的横向偏差,足以导致感知融合失败。因此,标定不是“一次做完”,而是需要在车辆震动、传感器拆装、温度变化后重新校验。
五、数据质量评估与常见问题
数据质量评估应贯穿采集、标定和回放三个阶段。建议建立如下检查清单:
- 完整性:各传感器帧率是否稳定,是否存在长时间丢帧。
- 时间一致性:跨传感器时间戳偏差是否超限,是否存在时间回退。
- 空间一致性:标定残差是否在阈值内,点云投影是否与图像对齐。
- 数据有效性:图像是否过曝/欠曝,点云是否稀疏,雷达是否被遮挡。
- 环境覆盖:是否覆盖白天、夜晚、雨天、隧道、高速等场景。
常见误区:只关注“数据量”,忽略“数据对齐质量”;标定文件版本与采集数据不匹配;使用软件时间戳却要求高精度融合;采集时未记录车辆运动状态,导致离线对齐困难。
下面用一张关系图概括采集与标定的核心链路,帮助理解各环节的依赖关系。
六、案例与复盘:一次采集失败的分析
某项目在回放时发现相机与激光雷达融合结果出现明显“重影”。排查后发现:采集时相机使用软件时间戳,激光雷达使用PPS硬件时间戳,两者平均偏差约35 ms;同时外参文件是上一版车辆标定结果,未随传感器支架调整更新。修复措施包括:统一使用PPS触发相机、重新标定外参、在采集流程中加入时间偏差和重投影误差自动检查。修复后,融合目标位置误差从0.8 m降至0.1 m以内。
该案例说明,数据采集与标定必须作为系统工程管理:采集前检查时间源和标定版本,采集中监控帧率和时间偏差,采集后生成质量报告并归档。只有把“采集—同步—标定—评估”串成闭环,才能为Apollo数据闭环和系统验证提供可靠的数据底座。