4. 多传感器时间同步与空间标定
在 XENSIV 多传感器融合系统中,雷达、麦克风阵列与 IMU 各自运行在独立的时钟域和坐标系下。如果时间戳偏差超过 1 ms,雷达测得的距离变化与 IMU 积分出的速度就会出现明显错位;如果空间外参存在 2° 以上的旋转误差,麦克风阵列的波达方向估计与雷达目标方位就无法落在同一物理方向上。因此,时间同步与空间标定是融合推理能够成立的前置条件,而不是可选的调优步骤。
时间同步:硬件触发与软件时间戳的分工
时间同步的目标是让所有传感器采样事件对应同一个全局时间轴。工程上通常采用“硬件触发对齐采样时刻、软件时间戳记录到达时刻”的双层方案。
硬件触发层解决的是采样时刻的确定性。以雷达为例,其帧周期由内部 chirp 序列决定,典型帧周期为 50 ms;IMU 以 1 kHz 输出,采样间隔 1 ms;麦克风阵列以 16 kHz 采样,帧长 512 点,约 32 ms 一帧。若让三者自由运行,采样时刻会随晶振漂移逐渐错开。可行做法是选一个主时钟源(通常用 MCU 的定时器或雷达的帧起始信号)产生周期性触发脉冲,雷达在收到触发后启动下一帧,IMU 在触发沿复位其采样计数器,麦克风阵列则通过 I2S 的帧同步信号与触发沿对齐。这样三者的采样起点被强制对齐到同一个硬件事件。
软件时间戳层解决的是“数据何时被系统看到”。即使采样时刻对齐,数据经过驱动、DMA、总线传输后到达融合节点的时刻仍会抖动。因此需要在数据包进入融合队列时打上单调递增的本地时间戳,并记录该时间戳与硬件触发沿之间的固定延迟。这个延迟可以通过一次环回测量得到:让 MCU 在发出触发脉冲的同时翻转一个 GPIO,用逻辑分析仪或示波器测量该 GPIO 到数据包入队中断之间的时间差,重复 100 次取中位数,作为该通道的固定延迟补偿值。
示例参数(合理假设,非实测):雷达帧周期 50 ms,IMU 采样率 1 kHz,麦克风帧长 32 ms;硬件触发沿到雷达数据入队的固定延迟约 1.8 ms,到 IMU 约 0.3 ms,到麦克风约 2.5 ms。融合前将各通道时间戳统一减去对应延迟,再映射到同一全局时间轴。
完成上述两步后,可以用一个简单判据检查同步质量:让系统静止,观察雷达测距序列与 IMU 加速度积分速度序列的互相关峰值位置。若峰值偏离零点超过一个采样周期,说明固定延迟补偿不准或存在未建模的时钟漂移,需要重新测量或引入滑动窗口估计。
空间标定:从各自坐标系到统一坐标系
空间标定的本质是求取各传感器坐标系到融合坐标系(通常取 IMU 坐标系)的刚体变换,即旋转矩阵 R 和平移向量 t。雷达给出的是极坐标下的距离和方位角,麦克风阵列给出的是声源方向向量,IMU 给出的是角速度和加速度。三者必须通过外参变换到同一坐标系,才能进行目标关联和状态估计。
标定过程通常分两步。第一步是粗标定:将雷达、麦克风阵列和 IMU 安装在同一刚性支架上,用卷尺和角度尺测量各传感器之间的相对位置和朝向,得到初始 R 和 t。例如雷达中心到 IMU 中心的平移约为 (0.12, 0.00, 0.05) m,雷达朝向与 IMU 前向的夹角约为 3°。这个粗标定值作为后续优化的初值。
第二步是精标定:利用共同观测的物理目标进行联合优化。一个可操作的做法是在雷达和麦克风阵列前方放置一个角反射器,同时播放一段宽带声源。雷达测得角反射器的距离和方位角,麦克风阵列测得声源方向,IMU 记录支架的微小运动。将同一目标在两个传感器中的观测投影到融合坐标系,构建重投影误差函数,用非线性最小二乘(如 Levenberg-Marquardt)迭代求解 R 和 t。优化目标是最小化所有观测点的重投影误差平方和。
对于雷达与 IMU 的标定,还可以利用运动约束:让支架绕三个轴分别旋转,雷达观测静止目标,IMU 积分得到旋转量,通过手眼标定方程 AX = XB 求解雷达与 IMU 之间的旋转。这种方法不需要外部目标,适合现场快速校验。
标定顺序建议:先做时间同步,再做空间标定。因为空间标定中的联合优化需要同一时刻的观测数据,如果时间戳未对齐,重投影误差会混入时间错位带来的虚假空间偏差,导致 R 和 t 的估计出现系统性偏移。
联合标定的验证与残差判读
标定完成后必须验证。一个直观的验证方法是:在融合坐标系中,将雷达点云和麦克风 DOA 估计同时投影到水平面上,观察同一物理目标的两个观测是否重合。若方位角偏差小于 1°、距离偏差小于 5 cm,可认为标定有效。另一个方法是检查重投影误差的分布:如果残差在某个方向上呈现规律性偏移,说明该方向的旋转或平移未收敛;如果残差随机分布且幅值较小,说明标定结果可信。
实际系统中,温度变化和机械振动会导致外参缓慢漂移。因此建议在融合推理的预处理阶段加入在线校验:每隔一段时间用静止场景下的雷达和 IMU 数据重新估计一次外参,与标定值比较,若偏差超过阈值则触发重新标定或告警。这样可以把离线标定与在线监测结合起来,保证系统长期稳定运行。