3. 时间系统与时钟模型
在无人机视觉与IMU融合系统中,时间不是抽象概念,而是决定数据能否正确对齐的物理量。相机曝光时刻、IMU采样时刻、飞控输出时刻、ROS消息时间戳,若各自基于不同时间系统,融合结果就会出现系统性偏差。本节从工程视角梳理UTC、GPS时间、ROS时间、硬件时钟的差异,并建立时钟漂移与同步的基本模型。
一、四类时间系统的定位与差异
UTC(协调世界时)是人类社会统一的时间基准,由原子钟提供秒长,通过闰秒与地球自转对齐。它适合日志记录、跨设备人工比对,但不适合直接作为高频传感器的时间源,因为闰秒会造成时间轴不连续。
GPS时间由GPS卫星星座的原子钟维持,起点为1980年1月6日00:00:00,不含闰秒。GPS接收机通过解算卫星信号得到GPS周内秒(TOW)和整周计数,可提供纳秒级授时。无人机上常用的PPS(秒脉冲)就是GPS时间的硬件体现,其上升沿对应整秒时刻,精度可达数十纳秒。
ROS时间(ROS Time)是ROS系统中的逻辑时间,分为两种模式:使用系统墙钟的Wall Time,以及使用仿真或外部时钟的Sim Time。ROS消息头中的stamp字段通常记录的是ROS时间。若节点使用ros::Time::now(),其值取决于/use_sim_time参数和/clock话题。ROS时间本身不保证单调性,也不直接对应UTC,必须明确其来源。
硬件时钟是传感器或MCU内部的晶振计数器,例如IMU的采样计数器、相机的曝光触发计数器、飞控的定时器。硬件时钟频率稳定但存在漂移,且不同设备的计数器起点不同,不能直接跨设备比较。
二、时钟漂移与时钟同步的基本模型
任何真实时钟都不是理想时钟。设理想时间为t,设备时钟读数为C(t),则时钟模型可写为:
C(t) = f0 * t + theta + epsilon(t)
f0 : 标称频率偏差(ppm级)
theta : 初始相位偏差(秒)
epsilon: 随机抖动与温度漂移
其中f0导致时钟“走得快”或“走得慢”,称为频率偏差;theta是上电时刻的固定偏移;epsilon是短期噪声。时钟漂移通常用ppm表示,例如20 ppm意味着每秒钟偏差20微秒,每小时偏差72毫秒。对于视觉惯性里程计,1毫秒的时间偏差就可能造成明显的尺度误差和轨迹漂移。
时钟同步的目标是估计出两个时钟之间的仿射关系:
t_master = a * t_slave + b
a : 频率比(drift ratio)
b : 时间偏移(offset)
只估计b称为偏移同步,同时估计a和b称为频率与偏移联合同步。后者对长时间运行至关重要,因为频率偏差会随时间累积成巨大的偏移。
三、典型同步链路与信号流
无人机上常见的时间同步链路如下:GPS接收机输出PPS和UTC时间报文,飞控捕获PPS并记录本地定时器计数值,同时通过串口读取UTC;相机收到触发信号后记录曝光时刻的硬件计数器;IMU以固定频率采样并记录内部计数器;机载计算机通过ROS订阅各传感器数据,并利用PPS或触发信号建立硬件计数器到ROS时间的映射。
四、时间系统对照与工程选择
| 时间系统 | 基准 | 是否含闰秒 | 典型精度 | 适用场景 |
|---|---|---|---|---|
| UTC | 原子时+地球自转 | 含闰秒 | 毫秒~微秒 | 日志、人机界面、跨系统记录 |
| GPS时间 | GPS原子钟 | 不含闰秒 | 纳秒级 | 授时、PPS、多传感器硬同步 |
| ROS时间 | 系统墙钟或仿真时钟 | 取决于来源 | 毫秒级 | ROS消息时间戳、节点间通信 |
| 硬件时钟 | 晶振计数器 | 无 | 微秒级(含漂移) | 设备内部采样、触发、捕获 |
五、案例:视觉惯性标定中的时间偏差影响
假设相机与IMU进行联合标定,IMU采样率为200 Hz,相机帧率为20 Hz。若相机时间戳比IMU时间戳整体滞后5 ms,在无人机以1 rad/s角速度旋转时,姿态角误差约为0.005 rad,即0.29度。对于高精度VIO,这一误差会直接导致外参标定结果偏移,并在轨迹中表现为尺度漂移。
更隐蔽的问题是频率偏差。若IMU时钟比相机时钟快50 ppm,运行10分钟后,两者累计偏差达到30 ms,相当于6帧IMU数据错位。此时即使初始偏移已校准,系统仍会逐渐失准。因此,工程上必须同时估计偏移b和频率比a。
六、时钟同步的基本方法
- 硬同步:利用GPS PPS或硬件触发信号,将多个设备的采样时刻对齐到同一物理边沿。精度最高,但需要硬件支持。
- 软同步:通过消息时间戳和统计方法估计偏移与频率比,例如最小二乘拟合、卡尔曼滤波、凸优化。实现灵活,但受网络延迟和抖动影响。
- 混合同步:用PPS提供粗对齐,再用软同步精修残余偏移和频率偏差。无人机视觉惯性系统常采用此方案。
无论采用哪种方法,最终都要落到一个可验证的指标:同步后的时间残差是否小于传感器采样周期的十分之一。对于200 Hz IMU,这意味着残差应小于0.5 ms;对于20 Hz相机,残差应小于5 ms。只有满足这一条件,后续的视觉惯性融合与标定才有意义。