2. 传感器基础
在无人机视觉与IMU时间同步标定中,第一步不是写标定算法,而是把两类传感器的“语言”弄清楚:相机输出的是离散图像帧,IMU输出的是高频惯性采样,两者在物理原理、数据形式、时间戳来源和硬件接口上都有明显差异。只有先理解这些差异,后续才能判断时间偏差从哪里来、如何对齐、如何验证。
一、相机与IMU的工作原理差异
相机是外部感知传感器,通过镜头将环境光线聚焦到感光芯片上,CMOS/CCD像素阵列完成光电转换,再经读出、曝光控制和图像信号处理,最终输出一帧二维图像。相机测量的是环境在某一曝光时间段内的投影结果,因此它天然带有“曝光窗口”概念,而不是一个绝对瞬时采样点。
IMU是内部运动传感器,通常由三轴陀螺仪和三轴加速度计组成。陀螺仪测量角速度,加速度计测量比力,二者通过MEMS结构感知惯性变化。IMU输出的是连续时间序列,采样频率常见为100Hz、200Hz、400Hz甚至1kHz,远高于相机常见的20Hz、30Hz或60Hz。它记录的是无人机自身的运动状态,不依赖外部光照和纹理。
二、数据输出形式与时间戳来源
相机常见输出形式包括:原始图像帧、压缩图像流、带元数据的图像帧。对于标定和同步,关键不是图像本身,而是每帧图像对应的曝光时刻。相机时间戳通常有三种来源:
- 驱动接收时间戳:主机收到图像帧时打上的时间,容易受USB传输、驱动调度和缓冲影响,误差可达毫秒到几十毫秒。
- 硬件触发时间戳:由外部触发信号或相机内部计数器记录,通常更接近真实曝光时刻,适合高精度同步。
- 曝光中心时间戳:部分工业相机可输出曝光开始、曝光结束或曝光中心时间,标定时应优先使用曝光中心或曝光开始时刻。
IMU时间戳来源同样需要区分:
- 传感器内部采样时刻:IMU芯片按固定周期采样,理论上最准确。
- MCU/飞控接收时刻:数据从IMU传到主控时被打上时间戳,可能受总线延迟和中断抖动影响。
- 主机接收时刻:数据传到电脑或机载计算机时记录,延迟最大,通常只用于粗略对齐。
因此,在做视觉惯性标定前,必须确认每个传感器的时间戳到底代表“采样时刻”“曝光时刻”还是“接收时刻”。如果混用,后续优化会把硬件延迟错误地拟合进时间偏移参数中。
三、常见硬件接口与数据链路
相机接口常见有MIPI CSI-2、USB 3.0、GigE、HDMI等。MIPI CSI-2常用于嵌入式平台,带宽高、延迟低,但线缆短;USB 3.0通用性强,适合实验平台,但传输抖动较大;GigE适合工业相机,支持较长线缆和硬件触发。IMU接口常见有I2C、SPI、UART、CAN。I2C和SPI多用于芯片级连接,UART和CAN多用于模块与飞控之间。
下面这张图展示了相机与IMU从物理传感器到主机时间戳的典型数据链路,以及各自的时间戳产生位置。理解这张图,有助于判断同步误差可能引入在哪一段。
四、典型场景与常见误区
以一台搭载MIPI相机和SPI IMU的无人机为例:相机以30Hz输出图像,IMU以200Hz输出数据。若直接使用主机接收时间戳,图像帧可能因USB或MIPI缓冲产生5~20ms抖动,IMU数据也可能因中断延迟产生1~5ms抖动。此时若直接做视觉惯性里程计,轨迹会出现明显漂移或尺度不稳定。
正确做法是:优先使用相机硬件曝光信号和IMU内部采样计数器,将两者统一到同一时钟域;若硬件不支持,则通过标定估计固定时间偏移和随机抖动。常见误区包括:
- 把主机接收时间当作传感器采样时间,忽略传输和驱动延迟。
- 忽略相机曝光时间,认为一帧图像对应一个瞬时时刻。
- 忽略IMU总线延迟,尤其是I2C低速总线上的多传感器轮询。
- 只做软件时间戳对齐,不验证硬件触发是否真正生效。
五、接口与时间戳对照清单
| 传感器 | 常见接口 | 典型输出 | 优先时间戳 | 主要延迟来源 |
|---|---|---|---|---|
| 相机 | MIPI CSI-2 / USB 3.0 / GigE | 图像帧、压缩流、元数据 | 曝光中心或曝光开始 | 曝光窗口、ISP处理、传输缓冲 |
| IMU | I2C / SPI / UART / CAN | 角速度、比力、温度 | 内部采样时刻 | 采样周期、总线传输、中断响应 |
| 飞控/主机 | UART / USB / Ethernet | 融合数据、日志 | 接收时刻(仅参考) | 调度、缓冲、系统负载 |
总结来看,相机与IMU的时间同步标定,本质上是在两条不同频率、不同延迟、不同时间戳语义的数据链路之间建立统一时间基准。理解工作原理、输出形式、时间戳来源和硬件接口,是后续设计同步方案、选择标定方法和排查误差的前提。