编辑推荐: |
本文主要介绍了自动驾驶软件架构优化相关内容。
希望对您的学习有所帮助。
本文来自于51CTO,由火龙果软件Linda编辑、推荐。 |
|
前言:
自动驾驶技术是一个庞大的工程体系,软件架构、功能算法、控制规划、感知识别、建图定位、电气架构、车载控制器、验证体系等等,有太多的角度可以去切入。对于自动驾驶功能与算法开发,自动驾驶功能的分级是很重要的,自动驾驶的功能衍变就是随着自动驾驶功能的分级推进而不断发展。而随着自动驾驶等级的不断提高,对应的功能使用场景以及软件架构也发生相应的调整。
一、自动驾驶系统分级
国内与国际对于自动驾驶系统都划分为0~5级,每一级对应的功能如下:
0级:前向碰撞预警 FCW算法、车道偏离预警 LDW Lane Departure Warning、侧向报警BSD、开门预警DOW、倒车辅助预警RCTA、泊车辅助PA、驾驶员疲劳检测DMS;
1级:定速巡航系统 CC算法、自适应巡航系统 ACC算法 Adaptive Cruise Contro、车道纠偏辅助
LDP Lane Departure Prevention、车道居中辅助 LKA Lane Keep
Assist、自动紧急制动 AEB算法、行人保护 PDS
2级:自动泊车算法 APA、交通拥堵辅助TJA、自动变道功能 LCS;
2.5级:高速公路导航辅助NOP、城区导航辅助
3级:高速公路单车道自动驾驶TJP、高速公路多车道自动驾驶HWP
4级:代客泊车AVP、港口园区无人驾驶
5级:完全自动驾驶
国内自动驾驶分级如下图所示:

国际标准如下:

比较形象与直观的理解可以参考下图:

二、系统架构
自动驾驶系统的架构可以如下图表示。最下层是硬件层,传感器、执行器、V2X设备等硬件都属于这一层;中间层是控制器,由MCU或者SOC加各种接口构成,接口包括CAN、以太网、LVDS等接口与硬件层相连接;在控制器的芯片中还要运行操作系统以及中间件,中间件提供了软件接口以及调度管理工具,来进行上层各个软件模块之间的管理与通信。在软件层进行功能模块的实现,感知、预测、决策规划、控制、数据储存等功能,都在软件层进行实现。

对于自动驾驶软件,之前的L2系统从架构上通常按照以下3个模块进行划分:感知、决策规划、控制;通常认为感知相当于人类的眼睛,与传感器连接,将传感器识别到的原始信号识别为目标以及道路的各个属性;决策规划相当于人类的大脑,处理感知或得的信息,并做出决策;控制层相当于人类的四肢,接受决策规划模块的控制,操纵执行器进行横向与纵向的控制。

接下来这个框架图将感知、决策规划、控制这3个模块更加细致的展现。
感知模块的输入可以是各种传感器:摄像头、激光雷达、毫米波雷达等,同时感知也会接受车身传感器的信息来对感知结果进行修正。决策规划模型又分为行为决策、轨迹规划、轨迹生成等模块。控制模块主要分为横向控制与纵向控制,横向控制主要是控制转向系统,纵向控制涉及油门与刹车的控制。

软件架构的另外一种表述如下:

以上的软件架构图是目前主流L2功能的架构图,随着自动驾驶功能向着L3迈进以及NOP等L2.5 功能的出现,自动驾驶软件架构也出现了进一步的发现,目前主流的NOP架构可以参考下图。可以看到,与L2的架构相比,NOP的架构中多了MAP、定位、Routing
模块。
其中HDMAP模块提供了高精地图数据,与感知提供的车道线数据相比,高精地图提供的车道线数据更准确、可视距离更远、而且可以反映出道路的拓扑结构。
定位模块则给出当前车辆所在的位置,结合HDMAP的数据给出局部地图。
Routing则给出全局的路径规划结果,作为局部路径规划的参考。

NOP架构更详细的描述可以参考下图:

以上介绍了L2以及L2.5功能的自动驾驶算法架构,后续会继续深入介绍各个模块,欢迎大家持续关注。
|