3、传感器基础:视觉传感器(相机)模型、激光雷达(LiDAR)原理、编码器与GPS

做传感器融合,第一步不是写代码,而是搞懂你手里的传感器到底在输出什么。我见过太多项目,融合效果不好,最后追根溯源,发现是某个传感器的模型没选对,或者时间戳根本没对齐。这一章,咱们就把几个核心传感器的底裤扒干净。

3.1 视觉传感器(相机)模型

相机说白了,就是把三维世界投影到二维平面上。这个投影过程,就是相机模型要描述的东西。最常用的是针孔模型。

3.1.1 针孔模型与内参矩阵

你想想看,一个小孔,光线穿过它,在后面的感光元件上成像。这就是针孔模型的物理原型。数学上,它用内参矩阵 K 来描述:

K = [fx  0  cx]
    [ 0  fy cy]
    [ 0   0  1]
  • fx, fy:焦距,单位是像素。注意,不是物理毫米,是像素。这跟感光元件的像素尺寸有关。
  • cx, cy:主点偏移,通常是图像中心,但实际会有偏差。
我的习惯:拿到一个新相机,第一件事就是做标定。别信厂家给的出厂参数,温度、震动、镜头松动都会让内参漂移。我曾经在一个项目中,因为偷懒用了旧标定参数,结果视觉SLAM跑飞了,查了三天才发现是内参变了。

3.1.2 畸变模型

针孔模型是理想情况。实际镜头有畸变,主要是径向畸变和切向畸变。

  • 径向畸变:光线在镜头边缘弯曲更厉害,造成“桶形”或“枕形”失真。用 k1, k2, k3 三个参数描述。
  • 切向畸变:镜头和感光元件不平行,造成“梯形”失真。用 p1, p2 两个参数描述。

标定就是求出这些畸变系数,然后对图像做去畸变。嗯,这一步不能省。

3.1.3 外参:相机在哪儿?

内参告诉你“相机怎么看”,外参告诉你“相机在哪儿”。外参是一个 4x4 的变换矩阵,包含旋转 R 和平移 t,把世界坐标系下的点变换到相机坐标系。

在融合中,外参是连接相机和其他传感器(比如LiDAR)的桥梁。这个矩阵的精度,直接决定了融合效果的上限。

3.2 激光雷达(LiDAR)原理

LiDAR 的原理其实不复杂:发射激光,打到物体上,反射回来,测量时间差或相位差,算出距离。但工程实现上,门道很多。

3.2.1 机械式 vs 固态式

类型 原理 优点 缺点
机械式 激光器旋转扫描 360° 视场角,技术成熟 有机械旋转部件,寿命短,成本高
固态式 光学相控阵(OPA)或闪光(Flash) 无运动部件,体积小,可靠性高 视场角有限,技术仍在发展

我个人更看好固态式。虽然现在机械式还是主流,但固态式在车规级可靠性上的优势太明显了。我参与过一个无人配送车项目,机械式LiDAR用了半年就开始出现扫描不均匀的问题,后来换了固态式,省心很多。

3.2.2 点云数据与坐标系

LiDAR 输出的是一堆点,每个点包含 (x, y, z, intensity)。这个坐标是在 LiDAR 自身坐标系下的。注意,intensity 是反射强度,不是颜色,但它对区分路面和车道线很有用。

避坑指南:LiDAR 的坐标系定义各家不同。有的用右手系,有的用左手系。Velodyne 和 Hesai 的坐标系就不一样。融合前,一定要统一到同一个坐标系下。我曾经因为没注意这个,把点云投影到图像上,结果全偏了,排查了半天。

3.2.3 关键指标

  • 线数:16线、32线、64线、128线。线数越多,垂直分辨率越高,但数据量也越大。
  • 测距精度:通常 ±2cm 左右。但远距离精度会下降。
  • 帧率:通常 10Hz 或 20Hz。注意,LiDAR 的帧率和相机的帧率往往不同,这就引出了时序同步的问题。

3.3 编码器

编码器是轮式机器人的“腿脚感知”。它告诉你轮子转了多少,从而推算位移。

3.3.1 增量式 vs 式

类型 输出 优点 缺点
增量式 脉冲信号(A、B相) 成本低,结构简单 断电丢失位置,需找零位
式 数字编码(格雷码等) 断电不丢失位置,抗干扰强 成本高,分辨率受位数限制

在机器人领域,增量式编码器用得更多,因为便宜。但要注意,它只能测相对位移,不能测位置。所以通常会和IMU或GPS融合,来修正累积误差。

3.3.2 从脉冲到速度

编码器输出的是脉冲。要得到速度,需要知道两个参数:

  • 每转脉冲数(PPR):轮子转一圈,编码器输出多少个脉冲。
  • 轮子直径:用于把角速度转换成线速度。

公式很简单:速度 = (脉冲数 / PPR) * π * 直径 / 时间间隔。但实际中,轮子会打滑,所以编码器推算的位置会漂移。这就是为什么需要融合其他传感器。

我的经验:编码器数据一定要做低通滤波。因为轮子在地面上滚动,会有高频振动,这些振动会混入脉冲信号中,导致速度估计噪声很大。我一般用截止频率 5-10Hz 的一阶低通滤波器。

3.4 GPS(全球定位系统)

GPS 是室外定位的基石。但很多人对它有误解,以为它无所不能。其实,GPS 的局限很明显。

3.4.1 工作原理

简单说,就是卫星发信号,接收机算时间差,然后解算出位置。至少需要 4 颗卫星才能解算出三维位置(经度、纬度、高度)。

3.4.2 精度与误差源

误差源 典型误差范围 说明
卫星钟差 1-2 米 卫星上的原子钟也有误差
电离层延迟 2-5 米 信号穿过电离层时速度变化
多路径效应 1-10 米 信号被建筑物反射,路径变长
接收机噪声 0.5-1 米 硬件本身的噪声

普通 GPS 的精度在 2-5 米,这显然不够自动驾驶用。所以需要差分 GPS(RTK)或 PPP 技术,才能达到厘米级精度。

3.4.3 坐标系与投影

GPS 输出的是 WGS-84 坐标系下的经纬度。但我们在做融合时,通常需要平面坐标(比如 UTM 坐标系)。所以需要做投影转换。

注意,UTM 坐标系有分区,不同分区的投影变形不一样。跨区作业时,要小心处理。

避坑指南:GPS 的更新频率通常是 10Hz,但 LiDAR 和相机可能是 20Hz 或 30Hz。而且 GPS 的时间戳往往有延迟,因为接收机内部处理需要时间。我曾经遇到过 GPS 时间戳比实际时间晚了 100ms 的情况,导致融合结果出现明显的滞后。所以,一定要做时间戳的校准。

3.5 本章知识结构

下面这张图,把本章的核心知识点串起来了。你可以看到,每个传感器都有自己的坐标系和输出,而融合的核心,就是把这些数据统一到同一个时空基准下。

传感器基础与融合框架 传感器基础与融合框架 视觉传感器 针孔模型 + 畸变 激光雷达 点云 + 强度 编码器 脉冲 → 速度 GPS 经纬度 + 时间戳 传感器融合中心 时空同步 + 状态估计 核心:统一坐标系 + 统一时间基准