3、传感器基础:视觉传感器(相机)模型、激光雷达(LiDAR)原理、编码器与GPS
做传感器融合,第一步不是写代码,而是搞懂你手里的传感器到底在输出什么。我见过太多项目,融合效果不好,最后追根溯源,发现是某个传感器的模型没选对,或者时间戳根本没对齐。这一章,咱们就把几个核心传感器的底裤扒干净。
3.1 视觉传感器(相机)模型
相机说白了,就是把三维世界投影到二维平面上。这个投影过程,就是相机模型要描述的东西。最常用的是针孔模型。
3.1.1 针孔模型与内参矩阵
你想想看,一个小孔,光线穿过它,在后面的感光元件上成像。这就是针孔模型的物理原型。数学上,它用内参矩阵 K 来描述:
K = [fx 0 cx]
[ 0 fy cy]
[ 0 0 1]
- fx, fy:焦距,单位是像素。注意,不是物理毫米,是像素。这跟感光元件的像素尺寸有关。
- cx, cy:主点偏移,通常是图像中心,但实际会有偏差。
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 是反射强度,不是颜色,但它对区分路面和车道线很有用。
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) * π * 直径 / 时间间隔。但实际中,轮子会打滑,所以编码器推算的位置会漂移。这就是为什么需要融合其他传感器。
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 坐标系有分区,不同分区的投影变形不一样。跨区作业时,要小心处理。
3.5 本章知识结构
下面这张图,把本章的核心知识点串起来了。你可以看到,每个传感器都有自己的坐标系和输出,而融合的核心,就是把这些数据统一到同一个时空基准下。