NOA这个词,这几年已经被车企和供应商说烂了,但真正落到规控系统层面,你会发现一个尴尬的现实:方案网上到处都是,能算清楚账、能扛住量产、能把成本压下去的,反而没几个人愿意讲。这篇文章我想换个角度,不聊感知怎么堆料,不聊高精地图怎么铺,只聊规控系统本身——在传感器配置不高、算力有限的前提下,怎么把NOA的规控做到既便宜又能用、既安全又平顺。这套思路适合正在做量产项目的工程师、纠结硬件选型的系统架构师,也适合刚入行想知道“规控到底在干什么”的同学。我会把方案选型的逻辑、算力预算的测算方法、核心模块的实现细节,以及我实际踩过的坑,一次性讲透。
1. 先理解“极致性价比”到底在省什么
1.1 性价比不只是BOM成本
很多人一提性价比,第一反应就是“把芯片换成便宜的、把摄像头数量减下来”。这个理解太片面了。我做过的几个量产项目里,真正把成本打下来的,往往不是硬件单价压得多狠,而是系统方案的确定性——你愿不愿意用更简单的感知配置,规控来兜住那些不可靠的输入,决定了整个系统的BOM能不能降下来。
举个例子,一套典型的行泊一体NOA方案,如果走7V5R(7个摄像头、5个毫米波雷达)加一个30TOPS左右的中算力芯片,域控制器加传感器的BOM大概能控制在2500到3500元这个区间。如果继续往上堆,比如上激光雷达、上大算力平台,单是感知硬件的成本就能翻一倍以上。但问题是,用户实际感知到的NOA体验,差异真的有这么大吗?我在测试里见过不少高配方案,匝道汇入照样犹豫,大弯道照样画龙。体验的瓶颈往往不在感知有多强,而在规控能不能把已有信息用好。
所以“极致性价比”这件事,本质是三个账一起算:硬件BOM账、开发验证账、售后口碑账。硬件省下来的钱,如果开发周期拉长、售后问题变多,那反而更贵。这也是为什么我后文反复强调一个原则:规控要做厚,感知才敢做薄。
1.2 规控如何“兜住”感知的降级
感知降级的情况下,规控会面对哪些“脏数据”,我先列举几个真实场景。
第一,车道线抖动。摄像头在隧道出入口、逆光、雨天积水反光时,输出的车道线曲率会跳变,甚至左右线曲率方向相反。如果规控直接拿原始曲率算预瞄,方向盘必画龙。第二,目标丢失。毫米波雷达在目标被金属护栏遮挡时,会短暂丢点,融合模块可能输出一个跳变的“虚拟目标”,横向位置瞬间偏出去两米。第三,轨迹跳变。高精地图或者SD地图融合后,当前车道的参考线可能从一个版本突然切到另一个版本,纵向参考速度会断崖式变化。
常规做法是给感知和融合加一堆滤波和校验,但问题是感知侧的调整周期长、回归测试重。我的建议是,把一部分容错逻辑下放到规控侧,在规划层面对“不可信输入”做时间维度的约束。比如车道线曲率做一个历史队列的加权平滑,突变超过阈值就直接用上一周期的值;目标横向位置变化如果超过物理极限,就降低该目标的置信度权重。这一层兜底做得越稳,感知侧就越能放心地阉割硬件。这套思路,我内部叫“感知降维、规控做厚”,是整篇博文的灵魂。
2. 硬件选型与算力预算怎么算
2.1 传感器与芯片的典型组合
先说传感器配置。当前量产NOA的性价比方案,集中在这几档:
| 方案代号 | 传感器配置 | 典型芯片 | 参考算力 | 适用场景 | 参考BOM(域控+传感器) |
|---|---|---|---|---|---|
| 低配 | 5V3R(无侧后向) | 地平线J3或TDA4VM | 5-8 TOPS | 高速NOA基础版,无变道或保守变道 | 1800-2500元 |
| 中配 | 7V5R(含2侧后向) | TDA4VM或J5入门款 | 8-16 TOPS | 高速NOA带变道、自动匝道 | 2500-3500元 |
| 高性价比 | 11V5R(含后视、环视) | Orin N 8GB或J5 | 84-128 TOPS | 高速+城市NOA轻量版 | 4000-5500元 |
| 高配 | 11V5R+激光雷达 | Orin X或双芯片 | 254 TOPS | 城市NOA完全体 | 10000元+ |
这里需要说明,TOPS只是一个粗略指标,不同架构的芯片对同一网络的效率差异很大。J3的5 TOPS跑轻量模型可以撑住L2,但跑NOA的BEV模型就吃力了;TDA4VM 8 TOPS的优势在于有独立的MCU核和好的工具链,适合把规控放在片内MCU上做,省掉一颗外部MCU的成本。这一点在性价比方案里非常关键,后面我会展开。
选型时有个容易忽略的点:一定要给规控预留独立的实时核。现在很多方案用一个高算力SoC跑完感知和规控,听着省事,但SoC上的Linux或QNX调度抖动可能在几十毫秒级别。NOA的控制周期通常要求20到50毫秒,要是规划任务被感知任务挤掉,会导致奇怪的顿挫或接管请求。所以我在选型时,要么选带锁步MCU核的芯片,要么外挂一颗便宜的功能安全MCU,专门跑控制输出和故障监控,成本增加不大,安全性提升很明显。
2.2 算力预算的详细测算
算力测算不能拍脑袋,我习惯按模块拆开算。拿中配7V5R方案举例。感知侧:前视800万像素跑目标检测、车道线检测、可行驶区域分割和交通标志识别,四个模型同时跑,用TDA4VM或J5级别的芯片,预留8到12 TOPS;环视和后视的侧向目标检测分配到3到5 TOPS。规划侧:行为决策+MDP/规则引擎约占CPU的30%单核;轨迹规划如果走Lattice采样,每周期要评估几百条候选曲线,典型耗时在20到40毫秒,在多核CPU上占1到1.5个核;控制侧(纵向PID、横向LQR或MPC)很轻,50赫兹下只占不到5%的单核。最后的结论是:感知占大头,规控对通用算力要求高但对NPU要求极低。
所以当你看到一款芯片NPU标称100多TOPS,不要急着高兴,还要看它的CPU架构和核数是否够跑规划任务。我遇到过一款芯片,NPU很强但CPU是老旧的小核架构,Lattice规划跑到50毫秒以上,整个链路周期压不进100毫秒,最后只能降采样和简化轨迹评估,体验明显打折。这就是算力预算没算全的教训。
算力预算里还要留冗余。我个人的经验,长期运行负载不要超过标称算力的70%。原因有两个:一是芯片持续高负载会导致温升,NPU和CPU都会降频,规划耗时被动拉长;二是留给OTA升级的空间,NOA功能后面肯定会加场景、加模型,没有余量就只能换硬件,那才是最大的成本失控。
2.3 为什么要把余量留在规控侧
很多团队的算力预算是“感知吃掉80%,剩20%给规控”,这个比例我认为要反过来思考。NOA的核心体验——车道保持的稳定性、变道的果断性、过匝道的流畅性——全部由规控决定。感知模型进化很快,明年上一个更强的模型,精度提升5%,算力可能要多3个TOPS;但规控的算法成熟度高,主流方案已经收敛,计算开销增长很慢。把余量多留给规控,意味着你有能力在不换硬件的条件下,通过软件优化把体验上限拉高。这也符合“极致性价比”的逻辑。
在实际项目中,我倾向的分配方式是:感知和使用率最高不超过70%,规控所在CPU核的峰值使用率不超过50%,且强制预留两个空核处理突发的日志、诊断和OTA任务。这套策略在量产车回传数据变多、用户高负荷跑长途时,能明显降低系统卡顿和死锁的概率。
3. 规控核心模块设计与实现
3.1 软件分层与数据流梳理
规控软件的架构,我习惯按五层来搭:环境抽象层、行为决策层、运动规划层、运动控制层、执行器接口层。每一层之间用清晰的接口数据结构通信,比如环境抽象层输出的是一个“标准化目标列表”和“融合车道模型”,不直接暴露某个雷达点或原始车道线点;行为决策层输出的是驾驶意图(跟车、变道、汇入);运动规划层输出未来8到10秒的轨迹(时间序列的路径点+速度点);控制层输出方向盘转角、加速度请求;执行器层负责和EPS、VCU、ESP做频率和数据格式的适配。
分层的好处不只是代码清晰,更关键的是故障隔离。感知融合出了鬼影目标,行为决策层要能先过滤一轮;轨迹规划产出一条带伤的轨迹,控制层要做最后的“安全阀”,限制横向加速度和纵向减速度的物理边界。每一层都做防护,单点故障才不会直接传导到方向盘和刹车。
数据流的频率设计也是关键。环境抽象层输出10到20赫兹;行为决策5到10赫兹足够,因为驾驶意图不会在100毫秒内翻来覆去;运动规划10到20赫兹;运动控制需要50赫兹以上,最好能到100赫兹,控制频率不足会让方向盘手感明显发涩。这条链路的总延迟预算,感知到执行器控制在150到250毫秒以内。
3.2 轻量化的行为决策与轨迹规划
高算力方案里常见的做法是上端到端或者大模型的RL策略,但性价比方案玩不起,也没必要。我的做法是,“规则为主、采样为辅”的轻量化路径。
行为决策用有限状态机(FSM)就能处理绝大部分NOA工况:巡航、跟车、变道准备、变道执行、匝道行驶、限速、紧急制动。状态机不是low-poly的老古董,关键在于状态转移条件要设计得细腻。比如变道准备状态的进入条件,不只看目标车道是否有车,还要看目标车道后车的相对速度、相对距离以及它的加速度趋势。很多系统变道像“头铁”,就是只看了距离没看后车加速。
轨迹规划我用的是Lattice采样加代价评估。简单说,每周期生成纵向和横向各几十条候选轨迹,组合成几百条备选路径,然后用代价函数打分:安全性代价(与所有障碍物的最小距离、TTC)、舒适性代价(横向加速度变化率、纵向冲击度)、效率代价(平均速度、到达时间)、规则代价(限速、车道偏离)。最后选一条总分最低的轨迹输出。这套方法成熟、计算量可控,配合调好的权重,在高速和城市快速路上效果非常稳。相比之下,很多成本不低的方案用了复杂的搜索算法,跑起来慢,调参也更困难,实际效果并不一定更好。
Lattice里有个关键点是横向采样的终点选择。直道巡航时,候选轨迹的横向终态要集中在车道中心附近,不要动不动就采样出压线的轨迹;进入弯道时,横向目标要主动偏向弯道内侧一点,否则驾驶员会觉得车“贴着外侧墙跑”。这个偏向量的标定,要在不同曲率下测试,用表格记录下来。
3.3 控制层的标定顺序与关键参数
控制层,纵向是PID加前馈,横向是LQR或Pure Pursuit加前馈。很多人一上来就调PID,这是错误顺序。我的标定顺序是:先标定前馈,再调反馈;先标定纵向,再调横向;先在低速度下调稳,再逐步提高速度。
纵向控制,核心参数是加速度响应延迟补偿。从发出加速度请求到车辆真正响应,电机或发动机有100到300毫秒的延迟,涡轮增压的车甚至更长。如果PID不补偿这个延迟,跟车场景会来回抽动。我的做法是,在PI控制器前加一个Smith预估器,把执行器延迟建模进去;直接看效果,原来跟车前后窜动,补偿之后车身就是一条平稳的线。
横向控制,更关键的是方向盘转角的前馈标定。按车辆动力学,转角等于轴距乘以曲率乘以前馈系数,再加横摆角速度的阻尼项。前馈系数不是常数,随车速变化巨大:20公里/小时下,同样的曲率需要的转向角大得多;120公里/小时下,很小的转角就能维持同样的弯道。我建议做一张车速-曲率-转角的三维标定表,在测试场里逐点刷出来,再用最小二乘拟合出多项式系数。反馈部分用LQR就很够用,状态量取向横向偏差、航向偏差、横摆角速度,控制量取转角增量。LQR的Q矩阵权重,横向偏差的权重可以设为航向偏差的2到3倍,这样车辆对横向偏离更敏感,但对舵机抖动不敏感。
4. 高频场景的策略设计
4.1 匝道与大曲率弯道怎么过
NOA能不能让人觉得“像个老司机”,匝道是最大的试金石。匝道的难点在于:曲率变化剧烈、车道线有时不清晰、地图参考线和实际路面可能偏移一米以上。
我的策略是分三段处理。进匝道前300到500米,根据地图曲率预判,限速值在进弯前提前降到建议值,不要到弯道入口才开始减速。弯道中段,以横摆角速度和横向加速度为约束,动态调整目标速度,目标是横向加速度不超过2.5米每秒平方,驾驶员体感才不慌。出弯后,尽快恢复主路限速并准备汇入。
大曲率弯道的横向预瞄距离要随车速动态调整。低速时预瞄距离短一点(10到15米),高速时拉长(25到40米)。如果固定用一个预瞄距离,低速时转向会滞后、画龙,高速时转向会过度、压线。这个参数我调试时吃了不少亏,后来总结成公式:预瞄距离等于车速乘以1.2秒的预瞄时间,再按曲率修正。
4.2 Cut-in博弈与纵向安全阈值
Cut-in(车辆近距离切入)是城市快速路NOA的高频场景,也是最容易造成急刹或被后车追尾的场景。很多系统看到前车切进来就猛一脚刹车,乘客体验极差;或者为了平顺反应太慢,离前车已经很近了才大力制动。这两种都是策略没做好。
我的做法是,把切入目标按“预测轨迹是否与本车目标轨迹冲突”分等级。第一级,目标在本车道前方但横向速度大,预测2秒后会压到本车轨迹——这属于预判,要提前松油门并轻带刹车,减速度控制在1.5到2米每秒平方,让后车有感知。第二级,目标已经压线,且相对距离小于30米、相对速度为正——需要中等制动,3到4米每秒平方。第三级,目标已经侵占本车行驶线路一半以上,而且TTC小于3秒——要果断重刹,6米每秒平方以上。
一个常被忽略的细节:重刹之后要有个“释放”过程。如果目标切走后系统立即恢复原限速,驾驶员会感觉到一个明显的“踢背”感。正确做法是重刹后以0.5到1米每秒平方的加速度缓缓提速,等TTC恢复到安全区间再加到目标速度。
4.3 功能安全降级链路设计
性价比方案最怕的,是“为了省成本,把功能安全的冗余也省掉了”。但功能安全不等于一定要双套硬件,合理的降级设计一样能保障安全。
我设计降级链路的原则是:每下降一级,体验下降一档,但安全性要求一条红线都不能破。完整链路是:NOA正常 → 传感器部分失效时降级为PCC(预测性巡航控制) → 车道线完全丢失且地图不可用时降级为ACC(自适应巡航) + 紧急车道保持 → 执行器异常或者驾驶员严重脱离时直接请求接管。关键监控指标包括:EPS指令和实际转角的偏差超过阈值(比如5度持续500毫秒)、纵向减速度超过物理极限(比如8米每秒平方)、驾驶员手脱离方向盘时间超过15秒、驾驶员视线偏离超过5秒。任何一个条件触发,系统要立即给出接管请求,并且请求的交互要足够明确,声音、仪表、方向盘振动都要上。不能只靠中控弹窗,驾驶员可能正低头看手机。
接管请求之后还有个容易被忽略的点:如果驾驶员没有接管,系统不能无限等待,要在2到3秒后开始降级减速,以3米每秒平方的减速度缓慢靠边停车,并打开双闪。这个“最后兜底”动作,才是功能安全设计真正值钱的地方。
5. 测试验证与调参排坑经验
5.1 测试分层与数据闭环
规控的测试,我按四个层级来铺。MIL(模型在环),用Simulink或自研仿真环境跑批量场景,一晚上能跑几千个Cut-in和变道用例,主要用于算法逻辑快速迭代。SIL(软件在环),把C++代码编到X86环境,验证接口和状态机逻辑的一致性。HIL(硬件在环),接上真实的域控制器和执行器模拟器,验证时序、总线通信和故障注入场景。VIL(车辆在环),最后上测试场和公开道路进行实车验证。
这里重点讲VIL,因为性价比方案的项目周期紧,实车时间少,一定要带着明确的目标去测。我每次测试前会列一个“场景清单”,例如:匝道曲率半径400米的弯道测3个不同速度、Cut-in距离20/30/40米各测3回、前车急刹距离从50米到15米分5个档。每一条用例都提前定好通过标准,比如“最大横向加速度不超过3米每秒平方”“过弯不压左右车道线”“变道用时5到8秒”。没有通过标准的测试等于瞎跑,测完没法收敛。
数据闭环这块,我建议所有路测车辆都开数据回传,遇到接管和重刹的工况自动打点。回到办公室后,利用回灌工具把原始数据灌回仿真环境,复现现场路径,看当时决策模块怎么想的、轨迹为什么这样出。这个“日志回放+数据可视化”的闭环是排查疑难问题的利器。很多诡异问题,在实车上可能几分钟才出现一次,但回灌仿真是可以无限复现的。
5.2 常见问题速查与排查思路
| 问题现象 | 可能原因 | 排查思路 | 处理方法 |
|---|---|---|---|
| 方向盘高频细抖 | 车道线曲率输入抖动;横向LQR权重不当;前馈标定表有跳变 | 回放看车道线曲率曲线;看控制输出转角是否高频摆动 | 车道线曲率做滑动窗口滤波;降低Q矩阵中横摆角速度权重;重新拟合前馈表 |
| 弯道中明显压线 | 预瞄距离不足;横向目标偏置不够;限速过高导致横向加速度超限 | 看轨迹规划的横向偏移;看方向盘转角是否打到饱和 | 按车速动态增大预瞄距离;弯道限速再降5到10公里/小时;加入近弯速度预降 |
| 重刹后车辆点头严重 | 纵向冲击度未约束;制动力前馈过大 | 看纵向加速度曲线是否有阶跃 | 加冲击度限制(目标不超过2.5米每秒立方);重刹后加入缓释策略 |
| 变道反复犹豫 | 状态机转移条件太苛刻;目标车道后车预测不准 | 看每次取消变道的触发条件;看后车的预测轨迹 | 放宽后车相对速度阈值;增强目标加速度预测的平滑性 |
| 驾驶员频繁被请求接管 | 接管判定条件过于灵敏;驾驶员监控摄像头误检 | 回放接管触发时间点;查看DMS输出流 | 接管前增加时间窗口(如0.5秒)和置信度阈值;校准摄像头角度 |
| 隧道内频繁退出NOA | 车道线和定位信息在隧道内质量下降 | 看定位置信度、车道线置信度曲线 | 增加隧道场景专用策略:以历史车速和电子围栏做虚拟参考线,保持限速 |
有几条排查心得想多说一句。第一,遇到反复出现的问题,不要靠肉眼在车上盯,一定要回放数据和轨迹回灌,把问题量化成“哪条参数曲线在哪个时间点异常”。第二,改了参数先在一台车上验证,不要急着同步全车队,很多调参是牵一发动全身的。第三,所有参数修改要有版本记录,我在项目里吃过“上个月调好的参数不知道被谁改了”的亏,后来强制用配置文件管理加Git记录,这类问题再没出现过。
5.3 久经考验的调参心法
调参这件事,说直白点就是“先让它傻,再让它聪明”。我总是先给一套很保守的参数:变道必须目标车道后车距离50米以上才允许、最大减速度不超过3米每秒平方、横向加速度不超过2米每秒平方。这套参数下系统一定“很稳但很傻”,不会有危险动作。然后逐步放开限制,每放开一个维度,路测验证一轮,确认没引入新的问题再继续。这样90%的安全事故都能在早期被拦截下来。
另一个心法是“一次只改一个参数”。我见过工程师一次改了五个参数去调一个现象,结果是现象消失了但根本不知道哪个参数起的作用,之后出现新问题也没法回退。规控参数之间耦合很深,比如变道的最小距离和变道过程的横向加速度是相互影响的,你要改出距离阈值,就要同步检查横向加速度是否还能接受。一次一动,记录前后变化,才是真正的工程效率。
最后一条,标定数据要分季节、分车型、分配置。我吃过亏:冬天标定的车,到了夏天同一套转向前馈参数表现完全不一样,因为轮胎橡胶特性和路面摩擦系数变了。所以控制参数的最终冻结,一定是在不同温度和不同路面(干沥青、湿沥青、积水)下各跑一轮,取交集内最安全的值。
6. 成本落地、量产适配与下期预告
6.1 单套NOA的BOM成本拆解
做预算的时候,我把一套中配NOA(7V5R方案)的成本拆给老板看:
| 模块 | 成本区间(元) | 说明 |
|---|---|---|
| 域控制器(含芯片、存储、结构件) | 800-1200 | 中算力平台,规控跑在片上MCU,省外部MCU |
| 前视摄像头(800万像素) | 150-250 | 视觉感知主力 |
| 环视/后视摄像头(4个) | 200-350 | 侧向目标检测、变道辅助 |
| 前向毫米波雷达 | 200-300 | 纵向测距测速主力 |
| 角雷达(4个) | 500-800 | 侧后方目标感知 |
| 线束、接插件、电源 | 150-250 | 常被忽略,但决定了系统稳定性 |
| 结构件、散热 | 100-200 | 车规散热材料不便宜 |
| 合计 | 2100-3350 | 不含研发摊销和产线标定 |
这个成本结构,和市面上动辄5000以上的高配方案比,省下的主要就是激光雷达、大算力芯片和更多的高像素摄像头。而前述的“规控做厚”策略,目的就是让7V5R这套配置的体验逼近11V5R的90%。体验差距只要控制在10%以内,用户感知就很弱,这就是性价比的盈亏平衡点。
6.2 量产一致性与软件迭代策略
方案最终要落地,量产考验才开始。第一个坑是产线标定。摄像头、雷达的安装误差如果标定不严,车道线和目标的输出会有系统性偏差。我要求产线对每个域控制器跑一遍机械安装误差补偿,前视摄像头和角雷达都要做在线标定,标定不通过的车不下线。这个环节多花30到60秒产线节拍,换来的却是整批车一致性的大幅提升,值。
第二个坑是软件迭代节奏。量产之后不是万事大吉,用户场景的多样性能把测试没覆盖的角落全部照出来。我建议车队数据回传加“事件打点”,只要是接管、重刹、方向盘急打、异常退出,都要自动回传一段前后各10秒的日志。研发团队每周收集一次,按问题类型排优先级,每月发一版OTA,修复一批小问题。这套节奏坚持下来,车辆在用户手里的稳定性和口碑提升非常明显。
第三个坑是平台化复用。规控这套框架,我第一次搭建的时候就要求模块解耦、参数外置、接口统一。后来新项目换车型,只需要改标定表和传感器配置,核心代码一行不动,开发量从半年压缩到两个月。这才是“极致性价比”的最大杠杆——一次开发,多车型摊薄。
6.3 下期直播聊什么
这期内容从方案思路、硬件选型聊到规控细节和量产经验,基本把一套性价比NOA规控方案的主线讲完了。但还有一个话题我特别想展开,就是“数据驱动的规控迭代”。现在大家都在卷端到端,传统规控是不是要被取代?规则和学习的边界到底在哪里?踩过的坑、实测的效果,背后都有大量一手数据支撑。下期直播我会拿三个真实项目案例,聊聊规控系统如何利用路采数据做场景挖掘和参数自优化,也欢迎到时候带着你们的问题来连麦。想听的可以先做点功课,把你实际项目中遇到最头疼的规控问题记下来,我们下期见。