去年做某个园区无人清扫车的感知方案时,团队在传感器上吵了快一周。有人坚持摄像头加毫米波雷达足够,激光雷达(LiDAR)纯粹是预算黑洞;也有人拍桌子说夜间遮挡一上来,纯视觉方案就是摆设。最后是两场连续的雨夜实测让所有人闭了嘴——纯视觉方案把路沿和锥桶漏得七七八八,装了激光雷达的那台车虽然也在积水路段冒出一堆噪点,但至少能把障碍物的轮廓、距离、位置报得明明白白。那次之后我养成了一个习惯:讲激光雷达,不能只说它强,也要把它的测距原理、三维能力、语义短板和天气软肋都拆开讲透。
这篇文章就沿着这几个方向展开,结合我实际调试设备、跑数据、调参数时踩过的坑,聊聊激光雷达(全称Light Detection and Ranging,激光探测与测距)到底是什么、擅长什么、不擅长什么,以及极端天气下它的穿透能力为什么会明显下滑。
1. "主动式遥感"究竟指什么:激光雷达的工作原理拆解
1.1 自己发光的传感器,和被动观察的相机差在哪
很多人第一次接触"主动式遥感技术"这个词会觉得抽象,其实用一句话就能讲通:被动式传感器自己不发射任何能量,只接收环境里已经存在的光或热信号,摄像头、人眼、红外热像仪都是这样。它们的共同弱点是外部光源一旦拉胯,画面质量跟着崩。夜间没路灯、逆光直射、隧道口光影突变,这些场景之所以让相机头疼,本质都是被动成像在受制于环境光照。
激光雷达则反过来。它主动往目标上发射激光脉冲,再等待回波,测量依靠的是"发射—接收"闭环。外界有没有光、是不是漆黑一片,对它来说几乎没有影响。这是它区别于一切被动视觉传感器的底层逻辑。我在给新同事讲这个区别时经常会补一句:白天黑夜对激光雷达的测距结果没有实质影响,这话听起来像广告词,但确实是物理原理决定的。
1.2 测距凭什么能测准:TOF、FMCW与三角测距的取舍
搞清楚"主动"之后,自然要问:反射回来的激光,怎么变成距离?
目前最主流的是飞行时间法,也就是TOF。激光雷达发射一个短脉冲,记录发出时刻和收到回波时刻的时间差,距离就等于光速乘时间差再除以二。道理跟声呐测距一样。光速大约是每秒30万公里,1纳秒对应30厘米的往返路程,要想把距离精度压到厘米级,时间测量就得做到纳秒甚至亚纳秒级。现代TOF激光雷达靠高精度计时芯片和高灵敏探测器,能在几十到几百米的量程内保持几厘米误差,这个精度对绝大多数机器人和车载感知场景都够用。
另一种流派是FMCW,调频连续波。它不测时间,而是发射一段频率连续线性变化的激光,回波和本地振荡光混频后产生一个频率差,频率差与目标距离成正比。再做多普勒分析,还能直接拿到目标相对速度。FMCW的优势是抗干扰能力强、天然测速、信噪比高,但系统复杂度高,目前更多出现在高端长距方案里。三角测距则是用固定几何基线,靠激光照射点和探测器成像位置的夹角解算距离,结构简单但量程短,常用于工业AGV之类近距离2D扫描测距。我个人的看法是:只要项目对长距离、高精度有硬要求,直接锁定TOF或FMCW,别在三角测距上浪费时间。
1.3 一台激光雷达好不好,先看这四个参数
看选型时,很多人一上来就问"能测多远",但我觉得线束、角分辨率、视场角和帧率,哪一个都不能漏。
| 参数 | 含义 | 对应用的影响 | 选型经验 |
|---|---|---|---|
| 线束 | 垂直方向扫描线的数量(16/32/64/128) | 决定点云疏密和垂直探测能力 | 高速自动驾驶至少64线起步;园区低速机器人32线够用 |
| 角分辨率 | 水平/垂直方向相邻两线之间的角度间隔 | 角分辨率越高,远距目标越不容易漏检 | 测140米外行人,角分辨率优于0.2°才有戏 |
| 视场角 | 水平/垂直可视角度范围 | 决定探测覆盖范围 | 一般水平360°、垂直30°左右常见 |
| 帧率 | 每秒输出点云帧数 | 决定动态目标跟踪的实时性 | 10Hz是底线,20Hz以上动态更跟手 |
这四个参数是互相牵制的。同样转速下,线束越多单帧点云越大,CPU和GPU的压力也越大;角分辨率越细,扫描机构成本越高;帧率提上去,点云数据量又会上一个台阶。所以激光雷达选型本质是在"成本和算力允许的范围内,找到能满足最小目标检出需求的那一台",而不是先选贵的再处理后续问题。
2. 点云如何把物理世界变成三维:"识别物体三维形状"的底层含义
2.1 从一束光到上百万个点:点云到底是什么
很多人以为激光雷达像摄像头那样输出一幅"图片",这就理解岔了。激光雷达输出的是点云,一个三维空间点的集合。每个激光脉冲打到物体表面再反射回来,就产生一个点。这个点至少包含三个坐标值,也就是x、y、z,代表它在雷达坐标系里的空间位置;通常还带一个反射强度值,记录这次回波的能量大小。部分雷达还会输出回波序号,说明这个脉冲经历了多次反射——比如一束激光穿过树叶缝隙,先碰到树枝、再打到地面,就能拿到两个回波。
一台32线机械式激光雷达,转一圈大概能打出几万个到几十万个点,高线束雷达单帧百万点也不稀奇。把这些点按三维坐标画出来,道路、车辆、行人、路沿、建筑棱线全部会被密密麻麻的坐标点覆盖。这就是"识别物体三维形状"的物理基础——不需要颜色,不需要纹理,仅靠几何位置分布,物体轮廓就被刻画出来了。我常用的比喻是:点云就像用几千根针同时扎在一块蛋糕上,每一根针都记录了蛋糕表面的起伏,哪怕这块蛋糕没有花纹,你照样能看出它的形状。
2.2 从原始点云到"认识障碍物":一条必须走通的处理链路
光有海量点云还远远不够,必须通过软件把点云变成"目标"。我在项目里常用的处理流程大致分四步。
第一步,预处理和地面分割。原始点云里大量点属于地面,如果不去除,聚类时会把地面点和障碍物点粘连在一起。最常用的方法是基于相邻点高度差和平面拟合,把近地面点抽出来。这一步做不好,后面全乱。
第二步,聚类。经过地面分割,剩余的点按空间距离聚成若干簇,常用欧式聚类——两个点距离小于设定阈值就归到同一簇。阈值调太大,会把近处的行人和电杆合并;调太小,又可能把一个走路的人拆成两截。这是整个流程里最费调试精力的部分。
第三步,特征提取和分类。每个簇提取尺寸、体积、中心位置、高度分布、反射率统计等特征,再交给训练好的分类模型,判断它是行人、二轮车、小汽车还是卡车。特征选得好,分类器才能扛住各种奇怪的姿态变化。第四步是目标跟踪,对每一帧检测结果做数据关联,输出位置、速度、运动轨迹,这样下游路径规划才能知道障碍物是静止的还是迎面来的。
这条链路里我最想强调一点:激光雷达的"识别三维形状",在工程上从来不是点云一拍就出来的,而是建立在数据质量和算法参数之上的系统能力。点云稀疏一点,算法再强也容易漏检;参数调不细,点云再密也会误报。硬件和软件必须绑在一起看。
2.3 为什么激光雷达在"测距离"这件事上比相机踏实
拍照测距常用的方案,大概三类。单目视觉靠透视几何、消失点和目标先验尺寸估算距离,误差与训练数据集高度相关,遇到没见过的物体很容易翻车。双目视觉靠左右两幅图的视差算深度,原理类似人眼,但是要先解决纹理匹配——白墙、均匀路面这种缺少纹理的位置,视差基本算不出来。结构光或ToF深度相机虽然是主动式,但功率和量程有限,一般只能覆盖几米到十几米,远场无能为力。
激光雷达不一样。它的每个距离值都是物理脉冲飞行时间直接测出来的,不依赖训练集、不依赖纹理、不依赖环境光。路边停着一辆从没见过的工程车,单目可能懵掉,激光雷达只管把外轮廓点打出来——不需要认识它是谁,先知道"这里有一堆点,宽2.5米、高3米,不能撞"就够了。这种"先有几何,再谈语义"的特性,是高精定位、精细三维重建、自主避障时激光雷达难以被替代的根本原因。
3. "色盲"和"文盲":激光雷达在视觉语义上的短板
3.1 反射强度不是颜色,也别指望用它还原颜色
标题里那句"无法识别颜色",我见过不少因误读而踩坑的操作。有人看反射强度高就猜是白色、反射强度低就猜是黑色,试图拿这个数值做简单颜色推断。实际上,激光雷达记录的反射强度是特定波长下的反射率,跟人对颜色的感知完全是两回事。
举一个最简单的例子:用905nm波段的激光分别打一件红色外套和一件绿色外套,只要面料材质、表面粗糙度接近,返回的能量差异可能非常小,甚至小到被噪声淹没。但在人眼看来,一件红、一件绿,颜色信息极其分明。激光雷达看不到这种"分明"——它只知道"这个波长下物体反射回来多少光",而不是"这个物体看起来是什么颜色"。想靠反射强度重建颜色,跟拿体温计测体重是一个道理,方向就不对。
3.2 交通灯、路牌、文字:为什么都成了难点
颜色和文字,是自动驾驶和机器人落地绕不开的信息。先说交通信号灯,红、黄、绿之间本质是波长差异,而激光雷达只有一个固定工作波长,打上去的是一束固定波长的光,根本分不出目标发光颜色。它最多能告诉系统"那里有一个亮度异常的物体",但"现在是红的还是绿的"永远翻译不出来。路牌更特殊:上面的字、箭头是极其微小的图案差异,对激光雷达而言,路牌整体就是一块微微倾斜的平面,最多测得反射强度比较高。至于那个"限速40"的"4"长什么样,点云里根本没有这个分辨率级别的语义。想读懂文字,就必须靠摄像头成像,再送进OCR识别,最后和激光点云做对齐融合。
这个短板在实际项目里非常现实。我调试园区导航时,系统把路牌当成普通障碍物后绕行,完全没意识到那是"前方右转"的标志,最后是加了一路图像语义输入,才把交通标志的路权语义补上。这类问题不是激光雷达"不够好",而是波长和分辨率这两个物理边界决定了它天生不擅长这些。
3.3 吸光材质和高反光材质的双重坑
除了"读不懂",激光雷达对部分材质的物理反应也让人头疼。低反射率的吸光材料,比如黑色橡胶、深色粗织物、无光油漆,对激光吸收厉害,回波非常弱。弱到一定程度,反射点就丢了,明明那里有一堵墙或一辆车,点云里却是空的。黑色车辆在夜间被激光雷达漏检,算是业内公认的难题,多半靠多传感器冗余和先验知识补全来解决。
反过来,镜面反射同样麻烦。玻璃幕墙、抛光金属面、路面水膜,会让激光产生镜面反射,回波方向偏离接收器,产生飞点和鬼影。轻则目标位置跳来跳去,重则在水坑里反射出"虚拟障碍物",让车辆莫名急刹。我调过一台车,雨天只要车前有一片积水,点云里就多出那团"悬浮点",后来靠滤波和置信度加权才压下去。这类问题充分说明:单一传感器永远无法全知,物理世界对光的反射太复杂了。
4. 浓雾、暴雪、沙尘之下:激光穿透力衰减的真实边界
4.1 大气衰减到底是怎么发生的
标题里讲"极端浓雾暴雪或沙尘天气,激光穿透能力下降",这句话要说透,得先讲清楚激光穿过大气时发生了什么。
激光在大气里衰减,主要来自两种效应:吸收和散射。吸收是指大气分子把一部分激光能量变成热能损耗掉;散射则更关键——激光遇到空气分子、小水滴、雪花、沙尘粒子,会被朝各个方向重新辐射,而接收器只能收到其中很小一部分回波。按粒子和波长的相对尺度,散射又分两类:粒子远小于波长时,是瑞利散射,强度随波长的四次方变化;粒子尺度接近或大于波长时,是米氏散射,波长关系不那么敏感。
雾滴直径大约是几微米到几十微米,沙尘颗粒在几十到几百微米,都和常用的近红外激光波长(905nm、1550nm)同量级甚至更大,所以引发的米氏散射非常强。激光每前进一米,能量就按指数衰减一次,测距性能自然断崖式下滑。这也是为什么雨雪沙尘天气里,激光雷达点云会出现肉眼可见的"稀疏化"。
4.2 905nm和1550nm:波长选择背后的物理账和成本账
行业主流激光雷达有两个工作波长区间:905nm左右和1550nm左右。这不是随便选的,背后是探测器、人眼安全和大气窗口的合力。
905nm最大的优势是便宜且成熟。这个波段可以用硅基探测器,很多半导体工艺都能做,光源也成熟,整套方案的成本控制得比较好。但缺点是950nm附近的光容易被人眼晶状体聚焦到视网膜,虽然视网膜对近红外不敏感,却可能被高能量激光灼伤,所以905nm方案一般会把脉冲峰值功率限制得比较低,这也限制了探测距离潜力。在雾里,905nm的表现不算好,我之前实测某些905nm雷达在浓雾环境里,有效测距从标称的两百多米掉到四五十米。
1550nm则不同。这个波长落在人眼安全窗口区,光被角膜和晶状体吸收后不会聚焦到视网膜,因此人体允许的发射功率上限比905nm高得多。功率上去了,探测距离自然更远,对雾霾的穿透能力也相对更好。代价是1550nm用不了普通硅探测器,必须用铟镓砷(InGaAs)探测器,价格贵出不少,整套激光器成本也明显更高。所以1550nm多用于追求远距和高可靠性的高端方案,短距低速机器人和量产预算紧张的车型,仍然大量采用905nm。
| 项目 | 905nm | 1550nm |
|---|---|---|
| 常用探测器 | 硅APD/SPAD | InGaAs光电探测器 |
| 人眼安全功率上限 | 低 | 高 |
| 雾天大气衰减 | 明显 | 相对更好 |
| 探测距离潜力 | 中近距为主 | 可做远距 |
| 综合成本 | 低 | 高 |
| 典型场景 | AGV、园区车、量产中短距感知 | 高端自动驾驶、远距测绘 |
4.3 实测中的点云退化与工程缓解手段
极端天气里,点云退化是肉眼可见的:有效点变稀,远处物体直接消失,近处多出一层噪声,像老电视机的雪花屏。原因不难理解——雨滴、雪花、沙尘本身就在反射激光,它们产生的杂散回波会被当成有效点接收,却又不具备任何真实目标形状;再加上雨滴挂上探测窗口、积雪覆盖镜面,衰减就进一步放大了。
处理这类问题的工程手段,我归纳成三档。第一档,软件层面先扛:靠近距回波质量判断"当前环境是否恶劣",然后主动缩减点云信任范围、降低远距目标置信度,把决策交给下游。同时可以利用点云的强度方差、回波次数特征,把雨雪噪点滤掉一部分。第二档,硬件层面优化:支持多回波的雷达可以保留最后一次回波,专门利用地面反射信号;有些方案还会加加热器、雨刮、高压喷气,防止探测窗口被水膜和雪层糊死。第三档,系统层面做冗余:毫米波雷达的波长在毫米量级,雨滴雪花相对它是小粒子,穿透能力明显更好。量产落地几乎都会保留毫米波雷达,在激光雷达退化的天气里兜底。谁把宝全押在单一传感器上,谁就等着翻车。
5. 现实中的组合拳:多传感器融合的技术细节与选型实操
5.1 三种传感器到底谁说了算
讲到这里,结论其实已经出来了:激光雷达非常强,但强项高度集中在三维几何;它记不住颜色和文字,也在雾、雪、沙尘里会掉链子。所以工程上最靠谱的做法不是吹捧某一种传感器,而是让它们合作。
我习惯用一句话概括分工:激光雷达管"在哪里、什么形状",摄像头管"是什么、什么颜色文字",毫米波雷达管"恶劣天气下还能认出什么、速度多少"。这套组合拳里,激光雷达是几何骨干,摄像头是语义增强,毫米波雷达是全天候保险。
融合的工作流有前融合和后融合之分。后融合最简单——每个传感器独立跑自己的检测算法,输出各自的目标清单,最后按位置、速度做关联融合,选置信度高的结果。前融合更激进——先把点云投影到图像坐标系,通过标定给每个点叠加上像素颜色和标签;图像语义分割结果也能反投影出来,给点云打上语义标签。业内共识是前融合信息损失少,但工程复杂度高,对时钟同步和标定精度要求极为严格;后融合好调试、模块解耦,适合快速落地。我见过不少项目为了赶进度选后融合,后期频繁出现"摄像头说有障碍物、激光雷达说没有"的对骂问题——其实不是任何一方错了,而是两路结果根本不在同一个坐标系里对齐。
5.2 外参标定和时钟同步:融合最容易翻车的两个环节
融合要做顺,首当其冲是外参标定——也就是把激光雷达坐标系、相机坐标系、车体坐标系之间的旋转和平移矩阵算出来。标定不准,点云投到图像上能错位好几米,后面所有工作全白搭。
我常用的标定流程是:找一块带反射靶标或棋盘格的标定板,放在多个位姿下,分别从图像里提取角点、从点云里提取靶标中心,建立多组二维-三维对应点,再解算外参。听起来简单,坑却非常多。我在户外做过一次标定,太阳升起来之后红外补光灯的干扰让靶标提取失败,折腾一上午全白干;还有一次车被人挪了一下,橡胶悬挂位置变了,整套外参全部失效,只能重来。所以我现在的规矩是:标定必须在室内遮光、车辆稳定的环境里做,标完立刻锁紧所有支架螺丝,并且每一次机械拆装、底盘更换之后都复查标定。
时钟同步是另一个容易翻车的点。相机常见30帧每秒,激光雷达常见10Hz,两台设备启动时间还不统一。时间戳不对齐,高速运动的车在融合结果里就会出现位置拖影。我的做法是在数据采集线程统一打时间戳,配上帧缓冲等待策略,宁可丢掉几帧,也不让时间差超过几十毫秒的错位数据进入融合流程。这个细节在静止测试时完全看不出来,一上真实道路就原形毕露。
5.3 回到选型:预算、指标与场景之间的平衡
最后聊一下怎么选激光雷达,毕竟每个项目预算不同。我的建议是先别急着翻品牌报价单,而是先回答三个问题。
第一,你要可靠探测的最远关键目标是什么?是两米外的锥桶,还是120米外的小车?目标尺寸和距离直接决定角分辨率和量程需求,这两者对应的可能是两个量级的产品。第二,你主要在什么天气环境运行?工业园区多雾、高速多雨、矿区多尘,都会影响波长和线束选择。如果环境相对可控,905nm中低线束方案够用;如果要求全年候,就得给1550nm甚至再加毫米波雷达预留预算。第三,你的算力和功耗冗余有多少?线束越高点云越密,后续算法的CPU/GPU消耗成倍上涨。我见过一个项目买了高线束雷达,算法端却只能跑到3Hz,导航直接跟不上——硬件指标没写进算力需求,等于白买。
| 场景 | 推荐档位 | 理由 |
|---|---|---|
| 室内AGV / 服务机器人 | 16线左右,近距离 | 成本敏感,近距离角分辨率够用 |
| 园区巡检 / 无人清扫 | 32线,90~150m | 兼顾成本与可靠避障 |
| 高速辅助驾驶 / L2-L3 | 64线及以上,200m+ | 远距小目标检出要求高 |
| 测绘 / 矿山体积测量 | 高线束或测绘级雷达+RTK | 依赖高精度点云,不强调实时性 |
回归到标题本身:激光雷达的强项和短板都鲜明,它提供了摄像头给不了的三维几何和主动测距能力,但也认不得颜色、读不了文字,在极端浓雾、暴雪、沙尘天气下穿透能力会明显下降。只有把这些边界一起吃透,才谈得上在合适的系统里把它放到该出现的位置。
如果要说一条从项目里沉淀出来的实操心得,我的建议是:决定用哪台激光雷达之前,先带着候选设备去现场跑一遍"最坏天气+最亮逆光"两组测试,看原始点云而不是看标称参数。很多参数在实验室里光鲜,到了雨夜现场,有效距离直接腰斩、噪点满天飞,这时候再换硬件,成本可就不是几万块钱的事了。另外,激光雷达安装位置的清洁与防震,真要和选型放在同等重要的位置——一台被灰尘糊住探测窗口的好雷达,表现可能还不如一台清理干净的入门雷达。这两条,是我在无数次现场翻车之后才真正记住的。