2. 传感器基础:激光雷达工作原理与相机成像模型
各位同学,欢迎来到第二章。
这一章,咱们聊聊传感器的“底子”。说白了,就是激光雷达怎么测距的,相机又是怎么成像的。你想想看,如果连传感器怎么工作的都不清楚,后面做联合标定,那不就是瞎蒙吗?
我在项目里见过不少新人,上来就调参数,结果标定出来的结果一塌糊涂。为什么?就是没搞懂传感器本身的脾气。好,咱们开始。
2.1 激光雷达工作原理
激光雷达,英文叫LiDAR,全称是Light Detection And Ranging。名字已经告诉你了——通过光来测距。
2.1.1 TOF(飞行时间法)原理
目前主流的激光雷达,绝大多数都采用TOF原理。TOF,Time of Flight,飞行时间。说白了,就是发射一束激光,打到目标上反射回来,测量这束光飞了多久。
核心公式:
距离 = (光速 × 飞行时间) / 2
为什么要除以2?因为光走了个来回。发射到目标,再反射回来,路程是两倍距离。
光速是3×10⁸ m/s,这个速度极快。举个例子,如果目标在100米外,光来回一趟只需要大约0.67微秒。嗯,你没看错,微秒级。所以TOF雷达对时间测量精度要求极高,通常需要皮秒(ps)级别的计时电路。
我个人习惯把TOF雷达分成两类:
- 脉冲式TOF:发射一个短脉冲,直接测量回波时间。简单粗暴,但精度受限于脉冲宽度和计时精度。
- 连续波TOF(iTOF):发射调制后的连续光,通过测量发射波和回波之间的相位差来推算距离。精度更高,但计算量也大。
避坑指南: 我曾经在项目里遇到过,阳光直射下TOF雷达测距值突然跳变。后来发现是太阳光中的红外成分干扰了接收器。解决办法?加装窄带滤光片,只让激光波长通过。这个细节,很多新手会忽略。
2.1.2 机械式激光雷达
机械式,就是“转起来”的雷达。一个激光发射器+接收器,装在旋转电机上,360度扫描周围环境。
它的特点很明显:
- 优点:视场角360°全覆盖,技术成熟,点云密度高。
- 缺点:有机械旋转部件,寿命有限,震动环境下容易出问题。而且体积大、成本高。
我记得最早做自动驾驶测试时,车顶装了个64线机械雷达,转起来嗡嗡响。有一次在颠簸路段测试,雷达的旋转编码器直接松动了,点云数据全乱了。从那以后,我对机械雷达的安装固定格外上心。
2.1.3 固态激光雷达
固态激光雷达,没有旋转部件。它通过电子方式控制激光束的扫描方向。目前主流方案有两种:
- MEMS振镜式:用微小的反射镜片,通过电磁驱动让镜片摆动,实现光束扫描。体积小,成本低,但视场角有限。
- OPA光学相控阵:通过控制阵列中每个发光单元的相位,让光束在空间中干涉形成特定方向的波束。纯电子扫描,没有任何机械运动。但技术难度大,目前还没大规模量产。
固态雷达的优势很明显:体积小、寿命长、抗震动。但视场角通常只有90°-120°,需要多个组合才能覆盖360°。
注意: 固态雷达的“固态”只是指没有宏观旋转部件,内部其实还是有微小的运动结构(比如MEMS振镜)。真正的全固态(如OPA)还在实验室阶段。别被宣传忽悠了。
2.2 相机成像模型
说完激光雷达,咱们聊聊相机。相机的工作原理,说白了就是把三维世界投影到二维图像上。这个投影过程,用数学模型来描述,就是相机成像模型。
2.2.1 针孔模型
针孔模型是最基础的相机模型。想象一个暗箱,前面开一个小孔,光线通过小孔在后面的成像平面上形成倒像。
数学上,它描述的是三维空间点P(X, Y, Z)到图像点p(u, v)的映射关系:
u = fx * X / Z + cx
v = fy * Y / Z + cy
其中:
- fx, fy 是焦距参数(单位是像素)
- cx, cy 是主点坐标(光轴与成像平面的交点)
这4个参数,我们称为相机内参。每个相机都有自己的内参,需要通过标定得到。
核心理解: 针孔模型本质上是一个“透视投影”。离相机越近的物体,在图像上显得越大;越远的物体,显得越小。这就是“近大远小”的数学表达。
2.2.2 畸变模型
现实中的相机,不可能做到完美的针孔。镜头本身会有各种光学缺陷,导致图像变形。这就是畸变。
畸变主要分两类:
| 畸变类型 | 表现 | 原因 |
|---|---|---|
| 径向畸变 | 直线变弯曲,像鱼眼效果 | 镜头曲率不完美 |
| 切向畸变 | 图像倾斜、梯形变形 | 镜头与成像平面不平行 |
数学上,我们用多项式来修正畸变:
x_corrected = x * (1 + k1*r² + k2*r⁴ + k3*r⁶) + 2*p1*x*y + p2*(r² + 2*x²)
y_corrected = y * (1 + k1*r² + k2*r⁴ + k3*r⁶) + p1*(r² + 2*y²) + 2*p2*x*y
其中k1, k2, k3是径向畸变系数,p1, p2是切向畸变系数。这些参数加上内参,统称为相机标定参数。
实战经验: 我建议你在做联合标定前,先单独标定相机。用棋盘格拍个20-30张照片,用OpenCV跑一遍标定。看看重投影误差,如果超过0.5像素,说明标定质量不行。我曾经遇到过,相机镜头被磕碰过,畸变参数异常大,结果联合标定怎么都收敛不了。后来换了镜头,一次就过了。
2.3 本章知识体系
为了让你更直观地理解本章内容,我画了一张结构图:
这张图把本章的核心内容串起来了。左边是激光雷达,右边是相机。联合标定,说白了就是找到左边和右边之间的空间变换关系。但前提是——你得先把各自内部的参数搞清楚。
一句话总结: 激光雷达告诉你“那里有个东西,距离我X米”,相机告诉你“那个东西在图像上的像素坐标是(u, v)”。联合标定就是建立“X米”和“(u, v)”之间的数学关系。
好了,这一章就到这里。内容不多,但都是基础中的基础。下一章咱们开始动手,聊聊标定板的制作和采集数据的注意事项。
可可精品资料库