1. 课程导入
1.1 多传感器系统的发展背景
过去二十年,感知系统从“单传感器+单处理器”逐步演进为“多传感器+多域计算”的复杂体系。早期嵌入式设备通常只挂载一个摄像头或一个惯性测量单元(IMU),数据在单一时间基准下采集,几乎不存在跨设备对齐问题。随着自动驾驶、机器人、无人机、工业检测和XR设备的兴起,系统需要同时接入摄像头、激光雷达、毫米波雷达、IMU、GNSS、轮速计、超声波等多种传感器,以覆盖不同距离、不同环境、不同物理量的感知需求。
传感器数量增加带来两个直接后果:一是数据量呈指数级增长,二是各传感器拥有独立的采样时钟、触发机制、传输延迟和处理流水线。若不做统一的时间管理,融合算法会把不同时刻的观测当作同一时刻处理,导致目标位置漂移、轨迹断裂、标定失效,甚至引发安全决策错误。因此,多传感器时序与同步工程从“附属调试工作”上升为系统级核心能力。
1.2 时序与同步工程的定义
时序工程关注的是数据在时间轴上的产生、标记、传输、缓存和消费过程,核心是“每个数据包都知道自己对应哪个物理时刻”。同步工程则关注多个数据流之间如何建立共同的时间基准,使不同传感器在同一时间坐标下可比较、可融合。两者合在一起,可以定义为:在多源异构数据采集与处理链路中,通过统一时钟、时间戳、触发、缓冲和对齐机制,保证数据在时间维度上的一致性与可追溯性。
需要区分三个常被混淆的概念:
- 时间戳:标记数据采集或生成时刻的数值,是同步的基础信息。
- 时间同步:让多个设备的时钟指向同一时间尺度,如PTP、gPTP、NTP。
- 数据对齐:在已有时间戳基础上,通过插值、外推或最近邻匹配,把不同频率的数据映射到同一处理时刻。
1.3 整体知识框架
本课程围绕“时间基准—采集触发—传输标记—缓存对齐—融合消费—评测复盘”这条主线展开,可归纳为五个层次:
| 层次 | 核心问题 | 关键对象 |
|---|---|---|
| 时钟层 | 各设备时钟如何统一 | 晶振、PTP/gPTP、NTP、时钟漂移 |
| 触发层 | 何时开始采集 | 硬触发、软触发、曝光同步、PPS |
| 标记层 | 时间戳在哪里打 | 传感器端、驱动端、ROS/中间件端 |
| 对齐层 | 不同频率数据如何匹配 | 插值、外推、最近邻、滑动窗口 |
| 评测层 | 同步效果如何量化 | 时间偏差、抖动、丢帧率、融合精度 |
1.4 典型应用场景与案例
以自动驾驶为例,前视摄像头以30Hz输出图像,激光雷达以10Hz输出点云,IMU以200Hz输出角速度和加速度。若摄像头时间戳来自驱动层,激光雷达时间戳来自传感器内部,IMU时间戳来自另一块MCU,三者之间没有统一时钟,融合模块就会把相差几十毫秒的观测拼在一起。在高速场景下,车辆以30m/s行驶,50ms对应1.5m位移,足以让目标关联失败。
再以工业机器人为例,视觉引导抓取需要相机、编码器和机械臂控制器协同。相机曝光时刻与编码器读数时刻若不同步,抓取位置会随传送带速度产生系统性偏移。解决方式通常是用硬件触发把相机曝光与编码器锁存对齐,并在控制器端统一打时间戳。
# 典型多传感器时间戳检查输出
camera_front ts=1723456789.123 dt=+0.000ms
lidar_top ts=1723456789.098 dt=-25.000ms
imu_0 ts=1723456789.121 dt=-2.000ms
gnss ts=1723456789.100 dt=-23.000ms
# 结论:lidar与gnss相对camera存在约25ms系统性偏差,需检查触发与时钟源