ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

毫米波雷达原理与工程实践:智能驾驶的隐形守护者

毫米波雷达原理与工程实践:智能驾驶的隐形守护者 车外下着大雨雨刮器开到最快档前车尾灯在水雾里只剩一片模糊的红晕。这时候你车上的摄像头接近“失明”激光雷达的回波也被雨滴搅得一团糟——但自适应巡航依然稳稳跟住前车车道里突然窜出一辆电瓶车系统照样在第一时间点了一脚刹车。这背后默默干活的就是那个不起眼、很少被拿出来讲、但几乎每台具备辅助驾驶能力的车上都有的部件毫米波雷达。我见过太多想入门智能驾驶的朋友一上来就追着摄像头和激光雷达跑对毫米波雷达要么一笔带过要么干脆觉得“它就是个测距的”。说实话这个判断不太对。这篇我准备把它讲透它凭什么在传感器组合里不可替代、它内部是怎么处理信号的、工程上用起来有哪些门道以及为什么4D雷达、摄像头与雷达融合这些词会突然火起来。想真正理解智能驾驶这块拼图不能少。1. 为什么摄像头和激光雷达都替代不了它1.1 自动驾驶的“传感器三角”现在主流的智能驾驶感知方案本质上是一个“三角结构”摄像头负责看颜色和语义激光雷达负责画高精度轮廓毫米波雷达负责测距测速和应对恶劣天气。三者各管一摊谁也没法完全替代谁。摄像头最大的优势是便宜、信息量大能识别交通标志、红绿灯、车道线但这玩意儿怕黑、怕逆光、怕大雾、怕暴雨。大白天一切正常一进隧道口瞬间强光它先“瞎”两秒对向远光灯一照画面直接过曝。更不用提雨雪天气里镜头沾上水珠整个画面就像打了马赛克。激光雷达呢它能精确到厘米级直接出三维点云建图、定位、静态障碍物检测都很强但两个痛点非常要命一是贵哪怕现在价格被打下来不少一颗前向主雷达的成本也够买好几颗车载摄像头二是对环境敏感大雨天雨滴会反射激光产生大量噪点扬尘环境下更是直接“雾化”。这时候毫米波雷达的优势就体现出来了它发射的是波长毫米级的电磁波雨、雾、雪、灰尘、光照变化对它影响很小。你把它装在车头最脏的位置蹭满泥浆它照样工作。摄像头需要“看得清”激光雷达需要“环境透”毫米波雷达基本不需要这些前提条件——它在物理层面就免疫了大多数让光学传感器头疼的问题。1.2 测速雷达的独门绝技还有一个容易被忽略的点毫米波雷达天生就能直接测出目标的径向速度而且测得很准。这个能力来自物理学里的多普勒效应——目标朝向雷达移动时反射回来的电磁波频率会变高远离时频率会变低。频率的变化量和相对速度直接挂钩所以雷达输出目标时每条目标记录里天然就带速度字段。不要小看这个能力。知道前车在减速和“看到前车变近了”是两个层次的信息。摄像头和激光雷达要做测速只能靠前后两帧位置差分帧率不够或者目标抖动一下就完了。雷达直接在电磁波层面测出多普勒频移速度精度能到零点几米每秒而且不受目标距离远近的影响。AEB自动紧急刹车为什么敢在最后关头果断刹停很大程度上就是因为雷达给的速度信息足够可靠。1.3 “隐形守护者”不是营销话术把毫米波雷达叫“隐形守护者”还真不是厂商宣传片里硬造的词。它装在车标后面、保险杠内侧、后视镜附近外观上你基本看不见但它在整个驾驶辅助系统里承担的是最“保底”的那部分工作。光学传感器都可能被环境欺骗但雷达不容易被骗。它是整个感知系统里最后一道不容易崩的防线。一个比较有代表性的场景是夜晚无路灯的高速公路前方一辆车因为没有尾灯完全隐没在黑暗里。摄像头看不见激光雷达因为距离远点云太稀疏也未必认得出但毫米波雷达不受光照影响照常返回一个“前方150米有金属反射目标速度约20km/h”的目标。ACC自动减速你甚至不知道发生了什么。这就是它“隐形”的另一个含义——干最关键的活但不让你感知到它的存在。2. 毫米波雷达是怎么“看见”世界的2.1 从调频连续波说起要说清楚雷达的原理得先提一个词FMCW也就是调频连续波。市面上主流的车载雷达绝大多数都是这种工作体制。它和脉冲雷达不一样。脉冲雷达是发射一个短促的脉冲等它碰到目标弹回来通过时间差算距离就像对着山谷喊一嗓子听回声。FMCW不这么做——它连续发射一个频率随时间线性变化的信号就像一个正弦波在不停地“滑音”从77GHz滑到77.5GHz再跳回77GHz开始下一轮。发射信号和接收到的回波会有一个频率差这个频率差里同时包含了距离信息和速度信息再通过数学变换把它们拆开。这个设计的好处很直接连续波意味着发射功率不需要太高器件做起来容易集成、体积小调频又让距离测量变成了“频率测量”而频率测量在工程上是非常成熟、精度极高的活儿。所以车载毫米波雷达才能做到巴掌大小、几十克重、功耗也不高直接塞进保险杠后面。2.2 距离、速度、角度是怎么算出来的很多刚接触雷达的人以为雷达输出的就是“前方多少米有个东西”这是把结果当成了原理。实际上一颗雷达内部要做相当多的计算才能从一堆电磁波里抽出三个核心参数距离、速度、角度。先说距离。FMCW雷达发射一个频率线性上升的信号碰到目标反射回来后接收信号和发射信号之间会产生一个频率差。距离越远这个差值越大两者是严格的线性关系。所以测距的本质是测频差——用一个混频器把发射信号和接收信号乘在一起得到它们之间那个“差值频率”的信号这个信号叫中频信号。对中频信号做傅里叶变换就能把不同的频率分量分出来每个峰值就对应一个目标。再说速度。这个就用到前面说的多普勒效应了。目标在动回波频率就会有额外的偏移。为了把速度信息从距离信息里解出来雷达会连续发射很多个chirp调频斜坡然后对同一个距离单元上的所有chirp再做一次FFT看相位随时间的变化速率。这个速率就是目标的速度。所以距离维FFT之后往往还要跟一个速度维FFT业界管这个过程叫“2D FFT”这是每一个做雷达信号处理的工程师都绕不开的基本功。最后是角度。单根天线只能测距离和速度分不清目标到底在左边还是右边。为了测角度雷达会用多根接收天线排成阵列目标在不同天线上产生的相位差不一样——就像一排人同时听到同一个声音离声源近的那只耳朵先听到相位差由目标和阵列的夹角决定。通过比较不同天线接收信号的相位差就能算出目标的到达角。2.3 一条完整的信号处理链路把上面三个步骤串起来一条典型的车载雷达信号处理链路长这样ADC采样射频前端把中频信号变成数字信号距离维FFT把时域信号变成频域分离不同距离的目标速度维FFT对多帧数据做二次FFT分离不同速度的目标CFAR检测在“距离-速度”二维图谱里找出超过噪声底限的峰值角度估计对检测到的峰值利用多天线的相位差算出角度聚类与跟踪把一堆点迹聚成目标再用滤波算法持续跟踪这里面CFAR恒虚警检测值得一提。雷达接收到的信号里有大量噪声和地面杂波如果用一个简单的固定阈值来判断“有没有目标”阈值设太高会把小目标漏掉设太低又全是误报。CFAR的聪明之处在于它是一个自适应的阈值——每个检测单元周围有一个参考窗口阈值是根据周围噪声水平动态算出来的而不是拍脑袋定一个固定值。这样在噪底比较高的环境比如城市里建筑反射杂波密集也能保持稳定的检测性能。2.4 工程里写FFT的几个实际经验既然热词里有“毫米波雷达C FFT程序”这里就多说几句工程层面的东西。我在实际项目里写雷达信号处理FFT这块踩过的坑不算少挑几个最典型的说。第一个是FFT长度和频谱分辨率的关系。距离维FFT的长度直接决定距离分辨率——分辨率等于光速除以两倍的扫频带宽。比如带宽500MHz距离分辨率就是大约0.3米这是物理极限不是FFT点数堆得高就能突破的。FFT点数再多也只是让频谱采样更密看起来更平滑但真正把两个相近的目标分开靠的还是带宽。第二个是加窗。FFT默认假设信号是周期延拓的但实际采样的信号首尾往往不连续直接做FFT会引入频谱泄漏——一个强目标的能量会“泄漏”到旁边一堆频率单元上把附近小目标淹没。解决办法是加窗函数比如汉宁窗、布莱克曼窗。但代价是主瓣会变宽也就是距离维的峰值会胖一圈两个距离很近的目标反而更难分开了。加不加窗、加什么窗本质是在旁瓣抑制和主瓣宽度之间找平衡这个得根据实际场景调。第三点是实信号和复数信号的坑。如果ADC采的是单通道实信号频谱会是对称的正负频率各有一份处理不对会丢信息。工程上更常见的是I/Q双通道复数采样直接得到完整的相位信息。写代码时一定要搞清楚手里的数据是实信号还是复数信号别搞了半天以为有了目标其实是镜像频率。顺手给一个非常简化的C风格的FFT处理骨架让大家对整体流程有个直观感受// 假设adcData是单个chirp的采样点长度为N std::vectorstd::complexfloat rangeBuf(N); for (int i 0; i N; i) { // 加窗减少频谱泄漏 float window 0.5f * (1.0f - cosf(2.0f * M_PI * i / (N - 1))); rangeBuf[i] adcData[i] * window; } fft(rangeBuf, N); // 距离维FFT // 对M个chirp做速度维FFT取出同一距离单元bin std::vectorstd::complexfloat speedBuf(M); for (int m 0; m M; m) { speedBuf[m] rangeSpectrum[m][rangeBin]; } fft(speedBuf, M); // 速度维FFT // 在speedBuf里找峰值乘上对应尺度系数得到目标速度真正商用代码比这复杂得多但核心骨架就是这两级FFT。不少培训机构拿着这段代码当“核心算法”卖其实这只算入门的第一步。后面还有CFAR、角度估计、目标跟踪每一步的工程坑都不比FFT少。3. 一辆智能汽车上雷达到底在忙什么3.1 从ACC到AEB雷达承担的关键任务打开一辆带L2级辅助驾驶的车毫米波雷达负责的工作比大多数人想象中多。ACC自适应巡航是最典型的应用雷达持续输出前车的距离和相对速度控制单元据此决定是加速、滑行还是制动。这里雷达输出的速度信息质量直接决定巡航全程的平顺度——速度数据抖动一下车里的人就能感觉到一顿一顿的。AEB自动紧急刹车同样高度依赖雷达。现在行业里普遍的方案是雷达和摄像头融合判断摄像头先识别出“那是一个行人/一辆车”雷达再确认“它的距离在急剧缩短”两个条件同时满足才触发制动。这样做的原因是防误触发——只靠摄像头判断会被广告牌上的人像骗到只靠雷达判断又分不清前方是行车还是路边的金属护栏。两者互为校验安全性和可靠性都上了一个台阶。还有BSD盲区监测用的往往是安装在车辆后保险杠角落的角雷达。并线时后方来车出现在后视镜死角里摄像头看不到这时候角雷达能在几百毫秒内探测到盲区里的移动目标点亮后视镜上的警示灯。如果这时候你打了转向灯想变道系统还会发出声音警告。这个场景里雷达的价值是“速度快、不受天气影响、能覆盖摄像头看不全的区域”。3.2 毫米波雷达的三个“不擅长”讲完优点也得讲讲边界这样才能客观理解为什么需要多传感器融合。毫米波雷达有几个短板是工程上绕不开的。第一是角度分辨率不高。受限于天线孔径的物理尺寸传统毫米波雷达的角度分辨率通常在几度到十几度之间。什么意思呢前方100米处两辆车并排行驶如果它们靠得比较近雷达可能把它们当成一个目标。如果旁边正好有金属隔离带反射信号强目标的位置还有可能被“拉”到隔离带附近。第二是难以分类识别。雷达看到的目标本质上是“一团反射点”它能告诉你这个目标有多远、多快、反射面积多大但很难直接告诉你是人、是车、还是路边的金属垃圾桶。你非要让它做分类只能靠反射点的形状、雷达截面积、微多普勒特征这些间接线索去猜。这也是为什么语义理解和雷达始终要配合使用——雷达提供可靠的“存在性”信息摄像头提供“到底是什么”的语义信息。第三是静止目标检测容易出问题。很多雷达算法为了减少地面杂波和路侧静止物体的误报会做所谓的“静止目标过滤”速度接近零的目标默认不报或者降权处理。这就带来一个经典问题——前方车道里停着一辆故障车或者高速上堵车时最后一辆车是静止的如果雷达把它过滤掉了光靠摄像头又没及时识别出来那AEB就很危险。所以业界现在越来越强调“静止目标检测能力”包括多普勒盲区补偿、多帧跟踪确认这些手段本质上都是在跟这个物理短板较劲。3.3 目标检测的本质“语义”和“存在”是两回事这里想展开讲一个很多人理解上的误区。雷达做目标检测输出的不是“车”“人”这种语义标签而是一个个“反射点”或“目标列表”。每条目标记录一般长这样距离、速度、角度、反射强度、可能还有微多普勒特征。这个列表里没有“这是一辆白色轿车”这种信息。所以在融合算法里雷达负责的始终是“目标存在性”和“运动状态”这两个任务语义理解交给摄像头去补。听到摄像头死机就以为整个系统瘫痪那是外行人的想法真正做得好的系统当摄像头失效时会降级到“仅雷达模式”ACC和AEB还能继续工作只是没法识别红绿灯和车道线了。这种降级能力本身就是雷达可靠性的一种体现。4. 4D雷达和传感器融合工程上最硬的两块骨头4.1 4D雷达到底“4D”在哪这几年4D毫米波雷达被炒得很热。所谓4D就是在距离、速度、角度这三个维度之外多了一个高度维度。传统雷达的天线阵列是水平排列的能分清左右但分不清高低。4D雷达通过增加垂直方向的天线阵列让雷达也能感知目标的俯仰角输出类似激光雷达的稀疏点云。多这一个维度在实际使用中带来的变化非常明显。最典型的场景是立交桥和隧道口——一辆车开上高架桥传统雷达会把它和目标车道上地面的车混在一起两团反射点叠在一起很容易误判。4D雷达因为有了高度信息能直接分辨“那个目标在高处”还是“在路面”立体交通场景下的目标分离能力大幅提升。另外4D雷达的点云密度比传统3D雷达高了不少。一些高分辨率4D雷达在近距离上甚至能勾画出车辆的轮廓。这让它在一定程度上能替代低线束激光雷达的一部分功能比如可通行空间检测、静态障碍物识别、地面分割。虽然点云质量和激光雷达还有差距但考虑到4D雷达的成本只有激光雷达的几分之一不受天气影响这个方向对量产车吸引力极大。不少车企已经在前向雷达方案里从传统毫米波雷达切到了4D成像雷达。4.2 摄像头和雷达是怎么“对表”和“对坐标”的既然热词里出现了“百度摄像头与毫米波雷达目标时空同步”传感器融合的时空同步问题确实值得单独讲一讲。摄像头和雷达各自独立工作一个输出的是图像坐标系下的像素位置一个输出的是以雷达为原点的极坐标或笛卡尔坐标目标。要让它们的数据对齐到同一个“时间断面”和“空间坐标系”里必须解决两个问题时间同步和空间同步。时间同步经常被忽略但真的会出大事。摄像头是帧式传感器30帧每秒每帧图像对应一个曝光时刻雷达是目标式传感器每几十毫秒刷新一次目标列表两者不是一个节奏。如果直接把最新的一帧图像和最新的雷达目标拿来融合两者之间可能存在几十毫秒的时间差。在高速公路上车以120km/h行驶50毫秒就意味着车辆移动了1.7米。一个1.7米的误差放到AEB场景里足够让整个制动判断“差一口气”。工程上通常的做法是把所有传感器的时间戳统一到一个共同的时钟域里然后做插值或外推把所有数据对齐到同一个参考时刻——比如统一对齐到图像帧的时刻把那一点的雷达目标位置按目标速度外推过去。这一步看着简单但时间源统一这块就有很多细节雷达和摄像头的内部时钟漂移率不一样必须定期校准外推依赖目标的瞬时速度雷达输出速度抖动稍大外推出来的位置就会晃。可以说时空同步是传感器融合里最不性感但最容易出问题的一环。空间同步就是标定。雷达坐标系和摄像头坐标系之间存在一个刚体变换关系平移量和旋转量。这个变换矩阵需要通过标定实验来求常见做法是用角反射器放在摄像头也看得见的位置分别记录两边的观测结果再用优化算法求解。标定做得好不好直接决定融合效果——一个几厘米的标定误差投射到50米外就是好几米的横向偏差目标附近的点云和图像框就对不上。4.3 为什么说融合的第一关是时空同步我见过不少项目融合算法本身写得挺漂亮但就是效果不对。排查到最后十有八九出在时空同步上——要么是时间戳没对齐要么是标定参数有误差。很多时候不是算法不够先进而是底下那层数据没对齐再好的算法也白搭。这方面没有捷径唯一的笨办法就是把时间戳打准、把标定流程做扎实、把每一步的误差来源都记录下来。空间上还要注意一点雷达波束的主瓣和旁瓣都可能被强反射物体触发导致目标位置偏离真实位置。小区门口一排金属栏杆、路边的集装箱、施工围挡的铁皮都会让雷达目标“看起来”出现在路中间。这时候指望融合算法去纠偏是治标不治本真正的解法是在前端把反射点质量打分做细把疑似多径反射、旁瓣响应的点迹降权或剔除。这个“点迹质量管理”环节在一线工程里花的精力比很多人想象中多得多。5. 法规、选型、测试一线工程踩过的坑5.1 法规怎么把雷达推向“标配”聊法规不是要谈具体政策而是说一个行业趋势全球范围内AEB这类主动安全功能正在从“高配选项”变成“准入门槛”。碰撞安全评测体系里主动安全的权重逐年加重AEB要覆盖的场景从城市低速扩展到夜间、恶劣天气、行人横穿等复杂工况。这件事直接推高了毫米波雷达的需求。因为AEB要在多种光照和天气下可靠工作单靠摄像头很难拿到高分——夜间逆光场景、雨雾天气场景摄像头的得分天然吃亏。加上雷达融合视觉去做AEB天生就能覆盖更多恶劣条件。所以现在很多车型即使入门版也会至少配一颗前向雷达和几颗角雷达法律法规和技术评分标准在其中起了很强的推动作用。对从业者来说这意味着一个比较确定的信号未来相当长一段时间里毫米波雷达的需求是稳的不会因为激光雷达成本下降就被替代。它和摄像头、激光雷达更多是互补关系而不是替代关系。5.2 24GHz还是77GHz先搞清楚你做什么场景热词里出现了“24GHz毫米波雷达模块40m”这个说法说明入门级24GHz模块在开发者群体里还有不少关注度。我结合选型经验说说两者的区别。24GHz和77GHz是两个主流频段。早期车载雷达大量用24GHz主要因为器件成熟、成本低、供应链完善。但24GHz频段的可用带宽有限距离分辨率做不高体积也相对大加上车载雷达的国际趋势是往77GHz靠拢现在新车的前向主雷达清一色是77GHz甚至79GHz。77GHz的好处是带宽大最宽可达4GHz距离分辨率能做到厘米级而且因为波长短天线尺寸可以做得很小同样是6发8收的天线阵列77GHz比24GHz能做得更小。但24GHz并没有“死掉”。它成本确实低在一些近距离场景里比如盲区监测、开门预警、车内感知、部分商用车后装方案仍然有应用空间。40米探测距离对这类近距离应用来说其实够用了。如果你做的是入门级开发板、教学演示、或者对体积不太敏感的工业场景24GHz仍然可以选如果你做的是车载前向主雷达或者追求高分辨率的项目直接上77GHz不会错。5.3 三个典型测试场景井盖、隧道、静止车实战里有很多雷达误报漏报的经典场景我这里挑三个每一个都是我在测试场上亲眼见过的坑。第一个是雨天路面金属井盖。井盖反射强雨后地面上还有一层水膜电磁波在水膜上发生镜面反射一个井盖可能被雷达当成一个很大的静态目标位置还被“镜像”到路面底下或者偏向旁边。如果算法没有做好地面杂波滤除车辆经过井盖时可能触发莫名其妙的警告甚至刹车。那套自适应阈值和地面点云分割算法就是在这个场景里一点点磨出来的。第二个是隧道环境。隧道里金属电缆架、墙面、其他车辆的雷达信号串扰会造成大量的多径反射。明明只有一个目标雷达可能报出好几个“影子目标”距离和速度还都对不上。处理不好ACC在隧道里会来回抽动速度控制一冲一冲的。这种场景没有银弹只能在信号层面做多径检测在跟踪层面做目标生命周期管理把位置跳变过大的“幽灵目标”及时杀死。第三个是静止车辆目标。前面提过静止目标过滤的问题这里展开说它的实际后果。高速快车道上一辆故障车停在路中间没有任何运动特征雷达速度维上是零多普勒很容易被目标检测环节当作地面杂波滤掉。等车靠近目标终于突破检测门限留给系统的反应时间已经非常有限。针对这个问题目前行业里的做法包括保留低速目标的低置信度输出、用多帧跟踪判断目标是否持续存在、结合高分辨率点云做目标轮廓检测。每一招都不是万能的但合在一起能覆盖绝大多数场景。这些场景的核心经验是雷达好不好不要只在干净场地里测。把车开到雨夜的城市道路、隧道、工地旁边转一圈你才能真正知道这颗雷达的算法功底到底怎么样。5.4 车内感知毫米波雷达的另一条增长曲线最后聊一个热词里也提到的方向毫米波雷达生命体征检测。它的原理还是那一套——雷达能捕捉微小的多普勒信号。人呼吸的时候胸腔会有几毫米的起伏心跳时体表也有微弱振动这些都是非常微弱的微多普勒特征。毫米波雷达可以隔着衣服甚至座椅检测到这些细微运动进而判断车内是否有生命体。这件事最有价值的落地场景是车内儿童存在检测CPD。每年夏天都有把孩子遗忘在车里酿成的悲剧摄像头在黑暗环境下看不清还可能冒犯隐私而毫米波雷达正好适合这个场景不依赖光照、不采集面部图像、隔着衣物也能探测呼吸。相关法规已经在推动新车标配CPD功能这对毫米波雷达来说是一个全新的增量市场。除了车载这个技术方向还可以延伸到睡眠监测、老人跌倒检测、养老院看护等场景。我在前面的系列文章里也提过一个好的传感器技术的价值往往不在于它在一个点上的表现而在于它的底层能力能在多少个看似不相关的场景里复用。毫米波雷达就是典型的例子——从车外到车内从测距到生命体征底层都是同一套电磁波感知原理。最后想说的话做了这么久传感器相关的工作我越来越有一个体会在一套智能驾驶系统里最值得信赖的往往是那个最不起眼的部件。摄像头像人的眼睛提供丰富的色彩和语义但太容易受环境欺骗激光雷达像精密的触觉每个点都准确但脆弱且昂贵毫米波雷达则像人的直觉——它不告诉你这个目标是什么颜色、什么形状但它总能在一片混沌中告诉你“那边有个东西在靠近注意一下。”这大概就是它被称为“隐形守护者”的真正原因。它在绝大部分时间里不引发任何关注但在那些光照奇差、天气恶劣、传感器纷纷失效的瞬间它靠着一整套电磁波物理逻辑把最基础、最可靠的安全信息送到系统手里。如果你正准备入行智能驾驶我的建议是别只盯着最亮眼的那个传感器花点时间把毫米波雷达的信号处理链路吃透把点迹跟踪的每个细节磨清楚。这些东西不性感但恰恰是量产车上真正决定体验和安全的那部分底层功夫。
返回列表