
OEM的自动驾驶系统方案设计与车型项目开发
前文说到关于自动驾驶控制器如何进行平台化方案设计(文章:下一代自动驾驶域控制器系统架构设计),并对设计过程中的传感器硬件方案进行了详细的研究解读,对于硬件设计来讲,不仅需要重点考虑传感器方案,更要重点考虑控制器方案,控制器方案设计中又需要充分区分其在软硬件的不同组合特征进行相关设计,包括方案选型、芯片选型、架构组合设计、软件算法设计等方面。因为整套自动驾驶控制不仅包括对于感知、控制等算力的需求,也包含对控制执行的软件效率、存储等需求。本文将以比较典型的控制器方案进行详细讲解。
自动驾驶控制系统架构
典型的自动驾驶控制器架构包含了接入传感器端(雷达、摄像头等)数据、电源控制器、高精地图数据、数据记录端数据、HMI交互设置端,以及执行端数据,包括纵向控制执行端(ESP、EMS/VCU、TCU/PCU),横向控制执行端(EPS)。如下图显示了一种比较典型且常用的平台化架构示意图。
1、传感器冗余
如上图所示,自动驾驶控制系统一般需要对其执行的功能项进行详细的分解,提升驾驶员在辅助驾驶阶段无法满足的长时间脱手、脱脚驾驶,同时实现设计运行范围内的一定时间的脱眼驾驶功能,这就要求该系统具备对于驾驶过程中的正常情况进行0失误探测控制,其异常情况进行提前安全探测避撞。
一般而言,对于自动驾驶控制器需要处理的数据包含如下信息:
- 道路使用者检测 (行人, 机动车,非机动车)
- 目标语义检测(车辆朝向, 行人肢体动作& 运动方向)
- 道路结构解析(车道线属性/可行驶区域等)
- 交通语义解析(交通灯/ 交通标志)
- 环境目标信息融合
- 自车运动估计
- 自车定位
- 交通灯/交通标志分配
- 轨迹或目标预测
异常信息探测结果包含如下信息(且某些特殊信息确实无法探测到):
- 前方异常坠落物(如山体落石、前车掉落物品);
- 前方临时施工;
- 前方道路塌陷;
- 环境出现突然刮起大风。
也就是为了满足如上探测功能,需要在传感器端加装冗余探测传感器设备,确保在一种传感器单点失效的情况下,另一种传感器能够接续当前状态对环境进行持续探测。这里举几个例子,假如对于摄像头来说,可能存在逆光行驶,临时致盲忙的现象,此时可充分考虑前毫米波雷达或激光雷达对前方目标进行补充探测,避免出现系统异常退出。此外,一些特殊情况下的探测情况也容易出现探测致盲现象,如对于一般落石、施工区域等未经训练的特殊情况,摄像头或雷达的探测很容易出现漏检,因此,搭载冗余的激光雷达就显得尤为必要了,因为激光雷达是对环境物体进行点云重建,所以检测到障碍物只需要有反射回路就可以了。
此外,系统为了保证感知端输入性能,还可以设置定位冗余模块。其中包含基于卫星信号的绝对定位卫星定位智能传感器(VMPS),集成了GNSS信号接收器、高精度惯导IMU及信号纠偏服务,能保证多种工况下定位稳定,精度可达20厘米以内。而基于道路特征的相对定位通过车载传感器(摄像头、雷达)采集生成道路特征数据,并实时上传到云端后台与高精度地图进行比对,以此来确定汽车在当前车道中的位置,从而实现厘米级定位。该两者所组成的冗余定位方案,在天气恶劣或遮挡等不利条件下,两种定位方案相互校验的,保证车辆的精准定位。
2、供电冗余
自动驾驶系统控制中,必须要设计供电冗余系统,因为诸如某些控制器在同时工作过程中可能存在较大的耗电量,这时没有充足的供电电源是无法满足供电需求的,以防止因为电路电源中断导致的控制器失效。
在供电的电源冗余方面,其实电动车有一个很好的优势就在于,它本身除了一个小一点的铅酸电池以外,还有DC/DC这样的配置,但是在L3到来以后,我要达到ACUD的功能安全登记要求,就需要根据蓄电池+DC/DC两路分解成双等级DCUB,我们还要通过电源耦合分配的机制实现,哪些电气负载能实现SOB、哪些还是其他的要求,所以整个冗余的背后都是牵连到更多的包括电源系统,整个的供电负载,包括转向和制动一系列的系统和部件级的深层次的要求,作为OEM需要将电源相关技术需求转化为具体的技术规范和要求。
3、控制器冗余
前文已大致讲解了控制器冗余策略,即提供双路控制器,且分别为该两路控制器分配不同的控制权限,主控制器负责基础的感知、规划、决策处理,并通过内部电路连接将其自身的状态信息发送给辅助控制器进行不断地校验。辅助控制器则是在检测主控制器失效后,启动自身功能进行安全控制(包括安全停车、转向靠边等)。
4、执行器冗余
执行器冗余是自动驾驶系统中最为基本的冗余设计,并且已经在很多车型上得到搭载、开发,典型的执行器冗余设计是进行制动冗余,即设置双路制动控制方案,当其中一路制动器失效时,启动另一路进行接续制动。一般的方案是搭载博世iBooster或大陆的MKC1001提升制动性能,比如iBooster 即电控刹车系统,它通过油压电控机构代替了传统的真空助力泵,有更快速的刹车响应速度;可以在ESP失灵的情况下,帮助车辆安全刹车制动,防止车辆失控的发生。此外,转向冗余设计也是自动驾驶系统设计中的必然要素,在很多设计中通常是利用最新的线控转向系统 — 配备两套电机,两套电源以及两套绕组,且实行的线控转向系统从控制领域来看,无论电源、传感器和执行部件等,整套系统实际上是并行的两套完全一致的独立控制系统,一旦其中之一出现任何故障,都会直接切换到另外一套系统继续实现控制功能,虽然他们之间会协同调控,但并不存在相互干涉影响的问题,这就保证了两套控制系统的独立性。
5、线路连接冗余
线路连接冗余实际是跟随控制器与执行器冗余方案的,除开不同自动驾驶的线路连接需要设置线路冗余外,即便是相同的控制器之间的连接有可能设置双路以上的线路连接方式,这其中需要重点涵盖考虑功能安全的内容部分,即根据系统场景分析导入的相关控制器如果处于高功能安全等级,则需要设置电路双冗余,确保控制器之间的数据交互无漏发。
自动驾驶系统算法控制分析
自动驾驶系统算法控制平台化算法中包含了主要的三大部分,可参照如下流程表述进行
处理端 | 感知 | 规划 | 执行 |
执行操作 | • 图像处理 • 定位 • 可行驶区域检测 • 目标融合(雷达和摄像目标融合) • 感知预处理 • 目标预筛选 • 可行驶区域预处理 • 车道预处理等 | • 纵向:ACC/AEB • 横向: LDW/LKA/LCC/TJA(TJA严格意义上不能划分为横向,为结合功能;这里定义的TJA已经涵盖了0到150kph的速度区间) • 侧向:BSD/LCA/FCTA/RCTA/SEA • 高级功能HWP(无法再按照上述划分),为功能合集; • 支持所有驾驶功能的基础模块:车辆运动学模块VED | 取决于系统架构,其运动学控制(横向和纵向)可以布置在ADAS的控制器(隶属于规划部分),可以部署在执行器端(刹车系统和转向系统等)。 |
其中感知端包含利用摄像头及雷达运动对象检测、静止环境检测,其中运动对象不限于移动的车辆、行人或骑行者,但是这里需要注意的是如果是单目摄像头检测过程,对于环境运动信息中变化较为剧烈的部分,其检测效果并不尽如人意,因为两视频帧之间图像变化差异大,其相互匹配的元素特别少。而对于静止的车道信息、路边沿信息等,则可以做到很好的检测效果。此外,诸如摄像头或雷达一类的传感器对于道路异形物或坑洼部分的检测在自动驾驶系统中也是较大的挑战。
此外这里需要重点说一下自动驾驶系统算法比较重要的部分内容:可行使区域freespace的检测。这个特殊行驶区域代表了自动驾驶车辆可以通行的实际区域,从上图中可以看出该区域计算的方法是通过相机、雷达感知到的车身周边环境数据,并融合高精地图定位到的自车位置信息得出当前车辆前方及侧方无任何障碍物区域。到目前为止,主机厂即将量产的自动驾驶产品中还未有能够真正将可行使区域进行实际有效的利用的先例,因为该区域在检测结果的可信度及实时性上还未能完全满足驾驶需求。
此外,对于整个系统算法执行效率方面,需要整体考虑其算法计算效率,还需要充分考虑其信号传输延迟、执行器效率。算法效率涉及软件适用性和硬件芯片算力大小,假设软件算法本身性能可靠,执行器标定完成后性能固定,那么整套系统算法就更多的由硬件芯片算力、信号传输延迟来决定了。其中芯片算力部分将在后续文章中详细讲解,这里我们来说明一下平台化软件中对于信号传输延迟的需求。
如上图:
- 红色线条右边模块为车身控制端,通常其对处理实时性要求较高,故信号帧间延迟要求也较高,一般为20ms;
- 红色线条左边模块为感知端,通常对于系统而言,感知信号的输入实时性只要能够满足适配环境的变化情况即可,故一般设置信号周期为50ms即可满足要求;
- 最右边蓝色部分控制执行端则对信号处理及转发要求最高,特别是类似制动这种安全功能而言,越快的信号接收则会导致越快的响应建压,制动能力就会越强,转向控制亦是如此。故一般的信号处理周期(LoDMC/LaDMC)为10ms甚至8ms。
此外就是有效的执行器需求,一般的,对于执行器响应而言,系统主要的执行响应方包含转向、制动及动力三大支持驾驶的基本需求。
对于横向控制来说,系统平台化的开发方案差异在于是采取转向扭矩控制还是转向角度控制,两者涉及整个转向的控制闭环是由上层ADAS系统进行还是底端执行单元进行。对于执行器EPS来讲,如果输入是扭矩指令,则闭环控制是放入到上层ADAS系统进行的,ADAS系统需要告知执行器EPS车辆目标转向扭矩,EPS需要将该扭矩进行电机端执行电流转化,从而生成实际转向角,但是由于实际转化过程中存在一定的转化误差,执行状态延迟等,这会导致实际转向过程中往往控制不够精准,且甚至某些极端场景下出现较大的转化误差。但是如果输入的是转角指令,则完全不一样了。因为闭环控制是放入到低层EPS进行的,ADAS系统只需要告知执行器EPS车辆目标转向角度即可,至于如何实现(如如何通过对上层目标转角转化为电机转角,进而转化为电机电流)都由EPS去进行自我调节。这种输入方式有个好处,执行过程种EPS需要实时的监控车辆的当前姿态及车身信息,EPS就可以根据自身响应能力很精准且实时的计算出电机端需要执行多大的转向控制。这使得整个控制精度得到很大的提升。目前很多主机厂均开始采用如上控制方案。
此外,考虑到转向功能安全问题,无论如上何种方案进行控制,最终都是采用扭矩上下限控制功能退出。同时,驾驶员手动接管时也是采用方向盘手力矩检测的方式进行标定。
对于纵向控制(VLC,Vehicle Longitudinal Control)来说,我们习惯于将加速和减速控制囊括到一起进行原理说明。这里也有两种比较典型的VLC控制方式:
其一, VLC放到低层制动器ESP中进行控制,这种方法比较简单,只需要ADAS系统通过运动学方程精确计算出车辆加减速度,然后发送给制动器执行即可,其余纵向闭环控制全部交由制动器进行。其中包括对动力控制的接口对接-增降扭,自身控制-增降压。这种方式对于执行器要求较高。
其二,VLC放入上层ADAS系统,这种控制类型对于ADAS系统的纵向控制能力提出了更高的要求,即纵向加减速分配由ADAS系统进行,且与之交互的执行端包括了加速控制器EMS/VCU,减速控制器ESP。且由于加速控制器一般不具备直接接收加速度进行相应的能力接口,ADAS控制过程中需要将加速度换算成加速扭矩进行控制。这就牵扯到更多通过动力学方程计算扭矩的控制模型。且对于车身自身的信息(包括整车质量、滚轮半径、滑移率等)需要有更加全面的掌控。
无论何种方式,对于定义执行器而言均需要响应到足够的精度、时间延迟、震荡到稳定的时间限制。
总结
本文涵盖了对自动驾驶设计过程中的平台化系统架构,平台化系统设计算法。该两者的紧密性关系在自动驾驶设计过程中是一个不可分割的统一整体,系统架构的实际设计过程依赖指导了系统算法的开发软件过程,而系统软件算法的设计能力又反过来影响系统架构的设计完备性。因此,对于平台化软件分析种,系统架构和算法设计现状及短板进行有效的分析就显得尤为必要,这是工程设计前期比较关键的一步。从响应到整车层面的能力出发,系统设计应该通过设计合理的交互需求以适应更高效的算法执行控制。
本文转载自公众号:焉知智能汽车
