智能驾驶全景分析其二-决策篇
智能驾驶全景分析其二-决策篇
0.内容概述
2.决策篇拆分
决策层(Decision-making Layer)是智能驾驶系统中的关键组成部分,负责根据感知层提供的环境信息,为车辆制定安全、可行和高效的行驶策略。决策层的核心就是车载计算平台。车载计算平台产业链从硬件到软件主要包括硬件平台,系统软件与功能软件。
- 异构计算平台:CPU 计算单元、AI 单元、MCU 控制单元、存储、ISP 等其他硬件组成 的自动驾驶域控制器
- 系统软件:硬件抽象层、操作系统内核、中间件组件等;
- 功能软件:自动驾驶通用框架、功能软件通用框架。
2.1 硬件部分
2.1.1 概念与名词解释
- CPU 计算单元:CPU 是中央处理器的缩写,是计算机的核心部件,负责执行指令和处理数据。CPU 计算单元是指 CPU 中用于进行算术和逻辑运算的部分,通常包括 ALU(算术逻辑单元)和 FPU(浮点运算单元)。CPU 计算单元在自动驾驶域控制器中主要用于执行系统软件和功能软件,以及处理一些复杂的控制逻辑和决策策略。
- AI 单元:AI 单元是指用于加速人工智能或机器学习的计算速度的硬件部件,通常有 GPU、ASIC、FPGA 三种类型。
- GPU:GPU 是图形处理器的缩写,最初是用于处理图形数据和复杂算法的硬件部件,具有高并行结构和高速度。后来,GPU 也被用于加速人工智能或机器学习的计算速度,特别适合用在深度学习训练方面,因为深度学习需要大量的矩阵运算和数据并行处理。GPU 在自动驾驶域控制器中主要用于执行深度神经网络和图像识别等任务。
- ASIC:ASIC 是专用集成电路的缩写,是针对某一特定应用而设计和制造的硬件部件,具有高效率和低功耗的特点。ASIC 可以更有针对性地进行硬件层次的优化,从而获得更好的性能、功耗比。但是 ASIC 的设计和制造需要大量的资金、较长的研发周期和工程周期,而且深度学习算法仍在快速发展,若深度学习算法发生大的变化,ASIC 类芯片一旦定制则难于进行修改。ASIC 在自动驾驶域控制器中主要用于执行一些固定且高频的人工智能或机器学习任务,例如目标检测、语音识别等。
- FPGA:FPGA 是现场可编程门阵列的缩写,是一种可编程的硬件部件,具有低能耗、高性能以及可编程等特性,相对于 CPU 和 GPU 有明显的性能或者能耗优势。FPGA 可以通过编程重组电路,直接生成专用电路,仅消耗少量甚至一次时钟周期就可完成运算。此外,由于 FPGA 的灵活性,很多使用通用处理器或 ASIC 难以实现的底层硬件控制操作技术,利用 FPGA 可以很方便地实现。这个特性为算法的功能实现和优化留出了更大空间。FPGA 在自动驾驶域控制器中主要用于执行一些可变且低频的人工智能或机器学习任务,例如路径规划、定位等。
- MCU 控制单元:MCU 是微控制器的缩写,是一种集成了 CPU、存储器和外围接口的单片机,通常用于执行一些简单的控制功能。MCU 控制单元是指 MCU 中用于控制外围设备和通信总线的部分,通常包括 GPIO(通用输入输出端口)、UART(通用异步收发器)、SPI(串行外设接口)、I2C(双向串行总线)等。MCU 控制单元在自动驾驶域控制器中主要用于与传感器、执行器、显示器等外围设备进行数据交换和控制指令的发送和接收。
- 存储:存储是指用于存储数据和程序的硬件部件,通常有 ROM(只读存储器)、RAM(随机存取存储器)、Flash(闪存)等类型。存储在自动驾驶域控制器中主要用于存储系统软件和功能软件,以及缓存一些中间数据和结果数据。
- ISP:ISP 是图像信号处理器的缩写,是一种专门用于处理图像信号的硬件部件,通常包括图像采集、预处理、增强、压缩、编码等功能。ISP 在自动驾驶域控制器中主要用于对来自摄像头的图像信号进行处理,以提高图像质量和降低数据量。
2.1.2 发展趋势
(1) EEA架构集中化;走向DCU
传统EEA架构的问题:
- 控制器数量过多:各级别汽车 ECU 数量都在逐年递增,每台汽车搭载的 ECU 平均 25 个,一些高端车型通常会超过 100 个;
- 线束布置过于复杂:ECU 数量越多,总线数量必将更长,2000 年奔驰 S 级轿车的电子系统已经拥有 80 个 ECU, 1,900 条总长达 4km 的通信总线。2007 年奥迪 Q7 和保时捷卡宴的总线长度突破 6km,重量超过 70kg,基本成为位列发动机之后的全车第二重部件;
- “跨域”信号传输需求增加:智能驾驶需要大量的“跨域”信号传输,环境传感器(雷达,视频和激光雷达)产生了大量数据传输的需求,这也对传统分散式ECU基础架构提出了挑战。
因此,为了适应智能化需求,催生了以DCU为主的域集中架构
(2) 算力需求快速提高;单车传感器数量倍增
2.1.3 硬件平台:芯片
(1) 概念解释
MCU是微控制器(Microcontroller Unit)的缩写,是将计算机的 CPU、RAM、ROM、定 时计数器和多种 I/O 接口集成在一片芯片上,形成芯片级的芯片;它是一种集成了处理器、存储器、输入/输出接口和外设控制器等功能的单片电路。MCU通常用于嵌入式系统,如智能家居、工业控制、物联网等领域,可以实现对硬件设备的控制和通信。
SoC是系统芯片(System on Chip)的缩写,它是一种将多个电子系统的功能集成在一个芯片上的技术。SoC通常包括处理器、存储器、图形处理器、音频处理器、网络接口、安全模块等组件,可以提供更高的性能和更低的功耗。SoC通常用于移动设备、智能电视、游戏机等领域,可以实现多媒体处理、人工智能、云计算等功能。
与 MCU 不同的是,SoC 是系统级的芯 片,它既像 MCU 那样有内置 RAM、ROM,同时又可以运行操作系统。(手机常用)
(2)技术路径
当前,CPU+XPU是自动驾驶SoC芯片设计的主流趋势。 根据XPU选择不同,可以分为三种技术路线:CPU+GPU+ASIC、CPU+ASIC 以及 CPU+FPGA 三类
“CPU+GPU+ASIC”,主要代表英伟达、特斯拉 FSD 以及高通 Ride
好像是最主要的技术路径?这种方案的优点是可以利用 GPU 的强大并行计算能力来处理数据密集型的应用,如卷积神经网络等,同时 ASIC 可以针对特定的算法需求进行定制化设计,提高性能、降低功耗和成本。这种方案的缺点是 ASIC 的开发周期较长,且不易适应算法的变化,而 GPU 的功耗也较高。
“CPU+ASIC”,主要代表 Mobileye EyeQ5 系列和地平线征程系列
这种方案的优点是可以充分发挥 ASIC 的优势,实现高效、低功耗、低成本的专用芯片,同时减少了 GPU 的冗余和功耗。这种方案的缺点是 ASIC 的开发难度较大,且需要与算法开发同步进行,而 CPU 的计算能力相对有限。
”CPU+FPGA“,主要代表 Waymo
这种方案的优点是 FPGA 具有硬件可编程的能力,可以灵活地适应不同的算法需求,同时 FPGA 也适合处理顺序相关的机器学习算法,如循环神经网络等。这种方案的缺点是 FPGA 的性能、功耗和成本都不如 ASIC,而且 FPGA 的编程难度也较高。
目前各家发布的最新芯片平台均可以支持 L3 或 L4 级的算力需求,英伟达当前 处于领先位置。英伟达单颗 Orin 的算力可以达到 254TOPS,而 2022 年落地 的车型中搭载 4 颗 Orin 的蔚来 ET7 和威马 M7 其巅峰算力将超过 1000TOPS, 高通骁龙 Ride 平台的巅峰算力预计在 700-760TOPS,Mobileye 也推出了面向 高阶自动驾驶的 EyeQ6 Ultra,算力达到 176 TOPS,当前各家最先进的算力平 台均可以支持 L3 或 L4 级的算力需求。从相关量产车型来看,英伟达 Orin 成为 当下的主流选择,Mobileye 正在逐渐掉队。
(3)关键参数和关键指标
TOPS(Tera Operation Per Second)
SoC的TOPS算力是指每秒钟可以进行的万亿次操作(Tera Operations Per Second),用于衡量SoC的运算能力。不同的SoC可能有不同的运算精度,例如int8,int16等,影响TOPS算力的计算方法。一般来说,TOPS算力可以通过以下公式计算:
其中,F是SoC的工作频率(Hz),C是输入通道数,H和W是输入特征图的高度和宽度(像素),M是输出通道数,N是卷积核大小(像素),2是每次乘加操作的运算次数。
例如,如果一个SoC的工作频率是1GHz,输入通道数是3,输入特征图的大小是224x224,输出通道数是64,卷积核大小是3x3,那么它的TOPS算力可以计算为:
也就是说,这个SoC每秒钟可以进行0.173万亿次操作。
TOPS 峰值算力反映的都是 GPU 理论上的乘积累加矩阵运算算力, 而非在实际 AI 应用场景中的处理能力,具有很大的局限性。以英伟达的芯片为 例,Orin、Xavier 的利用率基本上是 30%左右,而采用 ASIC 路线,ASIC 芯片 针对不同的神经网络模型去优化,基本上可以做到 60%~80%之间
FLOPS(Floating-Point Operations Per Second)
每秒可执行的浮点 运算次数的字母缩写,它用于衡量计算机浮点运算处理能力。浮点运算, 包括了所有涉及小数的运算。MFLOPS(MegaFLOPS)等于每秒 1 百万 次的浮点运算;GFLOPS(GigaFLOPS)等于每秒 10 亿(=10^9)次的 浮点运算;TFLOPS(teraFLOPS)等于每秒 1 万亿次的浮点运算。
DMIPS(Dhrystone Million Instructions Per Second)
是测量处理器 运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量。 MIPS:每秒执行百万条指令,用来计算同一秒内系统的处理能力,即每秒 执行了多少百万条指令。不同的 CPU 指令集不同、硬件加速器不同、CPU 架构不同, 导致不能简单的用核心数和 CPU 主频来评估性能,Dhrystone 作为统一的跑分算法,DMIPS 比 MIPS 的数值更具有意义。
2.1.4 硬件平台:域控制器
**上面提到的SoC是域控制器的一部分。**车载计算平台需采用异构多核芯片硬件架构。自动驾驶的域控制器,要具备多传感器融合、定位、路径规划、决策控制、无线通讯、高速通讯的能力。通常需要外接多个摄像头、毫米波雷达、激光雷达,以及 IMU 等设备,完成的功能 包含图像识别、数据处理等。面向 L3 及以上高阶自动驾驶,单一芯片无法满足诸多接口和算力需求,计算基础平台需采用异构芯片的硬件方案,具有芯片选型灵活、可配置拓展、算力可堆砌等优点。计算平台的异构分布硬件架构主要 包括 CPU 计算单元、AI 单元和控制单元。
- AI芯片:负责执行深度学习、图像处理、数据融合等复杂的AI计算和智能控制,通常包括GPU、CPU、DLA、PVA、ISP等不同类型的处理器,如NVIDIA Xavier、华为昇腾310等。
- MCU:负责功能安全和车辆控制,不要求很高的算力,但是可靠性必须要有保障,ISO26262等级要求达到ASIL-D,如Infineon的TC297或TC397等。
- 传感器接口:负责连接摄像头、激光雷达、毫米波雷达、超声波雷达等感知传感器,用于采集车辆周围的环境信息,如道路状况、障碍物位置、交通信号等。
- 定位模块:负责接收GPS信号和IMU数据,用于确定车辆的位置和姿态,以及与地图的匹配。
- 车联网模块:负责与其他车辆或基站进行通信,用于交换路况信息、协同控制、远程监控等。
- 底盘线控:负责与车辆的执行器进行通信,用于控制车辆的加速、刹车、转向等动作。
2.1.5 域控制器主要玩家
自动驾驶域控制器玩家主要分为系统集成商、软件平台厂商以及 OEM 厂商三大类。
- OEM整车厂家
特斯拉以及国内的造车新势力如蔚来、小鹏、威马、理想、上汽智己等都已实现或宣布将自研自动驾驶域控制器,以掌握未来软件定义汽车下底层的硬件自主权;
- 系统集成商和Tier1
如博世、大陆、采埃孚等国际 Tier1 和系统集成商,德赛西威、经纬恒润、华为等一批本土 Tier1 和系统集成商;
- 软件平台厂商
如映驰科技、东软睿驰、TTech、中科创达等公司
(1)智能座舱域控制器
目前,主要有两类芯片厂商参与智能座舱域控制器的市场,一类是传统的汽车芯片厂商,如NXP、德州仪器、瑞萨电子等,他们主要面向中低端市场,提供成熟和稳定的解决方案;另一类是手机领域的厂商,如联发科、三星、高通等,他们主要面向高端市场,提供高性能和创新的解决方案。
全球主要的智能座舱域控制器厂商有以下几家:
(此图存疑,主要在于计算平台存在一些疑似失误)
我查到的造车新势力使用的控制器:
蔚来:英伟达Orin
理想:高通8155
小鹏:英伟达Xavier
威马:高通8155
特斯拉:自己的FSD
(2)自动驾驶域控制器
全球范围内,全球 Tier1 基本都已布局自动驾驶域控制器产品,典型产品如伟世通 DriveCore、博世 DASy、大陆集团 ADCU、采埃 孚 ProAI、Veoneer Zeus、麦格纳 MAX4 等,国内方面,如德赛西威 IPU 系列、 经纬恒润 ADC、东软睿驰 CPDC、华为 MDC 等。
此外,在域控制器市场还有一类重要的玩家,就是从主机厂孵化成立的智能驾驶软件平台型公司,如长城汽车的毫末知行,吉利汽 车的亿咖通等。
2.2 软件部分
2.2.1 操作系统
(1) 介绍
在智能网联时代,车机操作系统OS按照下游应用划分,可以分为车控OS和座舱OS两大类。
车控OS:底盘控制,动力系统和自动驾驶,与汽车的行驶决策直接相关
车控OS的操作系统有两种:嵌入式实时操作系统 RTOS 和基于 POSIX 标准的操作系统,RTOS 和 POSIX 在汽车领域的应用主要分为三个方面:安全车载操作系统、智能驾驶操作系统和智能座舱操作系统。
安全车载操作系统主要是实时操作系统 RTOS,主要应用对象是 ECU。ECU 对安全车载操作系统最基本的要求是高实时性,系统需要在规定时间内完成资源分配、任务同步等指定动作。嵌入式实时操作系统具有高可靠性、实时性、交互性以及多路性的优势,系统响应极高,通常在毫秒或者微秒级别,满足了高实时性的要求。目前,主流的安全车载操作系统都兼容 OSEK/VDX 和 Classic AUTOSAR 这两类汽车电子软件标准。
智能驾驶操作系统主要面向智能驾驶领域,应用于智能驾驶域控制器,该类操作系统对安全性和可靠性要求较高,同时对性能和运算能力的要求也较高。该类操作系统目前在全世界范围内日趋成熟,但生态尚未完备。智能驾驶操作系统主要是基于 POSIX 标准的操作系统,可以为支持 POSIX 标准的操作系统及不同的应用需求提供标准化的平台接口和应用服务,主要是为了适应汽车智能化的发展需求。
智能座舱操作系统主要为汽车信息娱乐服务以及车内人机交互提供控制平台,是汽车实现座舱智能化与多源信息融合的运行环境,对操作系统的实时性与可靠性要求并不严苛。主流车型的智能座舱操作主要包括 QNX、Linux、Android 等,传统智能座舱操作系统中 QNX 占据了绝大部分份额,近年来,智能座舱的娱乐与信息服务属性越发凸显,开源的 Linux 以及在手机端拥有大量成熟信息服务资源的 Android 被众多主机厂青睐,成为后起之秀。
一般来说,RTOS 更适合对实时性和可靠性要求极高的安全车载领域,而 POSIX 更适合对通用性和兼容性要求较高的智能驾驶和智能座舱领域。
座舱OS:车载信息娱乐服务+人机交互平台,不直接参与汽车的行驶决策
智能座舱OS多用linux或者Android
(2)底层内核
QNX、Linux、VxWorks 是主要的底层内核(狭义 OS 仅包含内核(如 QNX、Linux),广义 OS 从下至上包括从BSP、操作系统内核、中间件及库组件等硬件和上层应用之间的所有程序。)
QNX、Linux 是目前常见内核 OS,VxWorks 也有一定应用。随着 WinCE 停止更新逐渐退出,OS 内核的格局较为稳定,主要玩家为 QNX(Blackberry)、Linux(开源基金会)、VxWorks(风河)。其中 Linux 属于非实时操作系统,而 QNX 和 VxWorks 属于实时操作系统,WinCE 是微软开发的嵌入式操作系统,正在逐步退出汽车操作系统市场。
实时操作系统和非实时操作系统的区别在于实时操作系统必须在规定的时间内完成任务,而非实时操作系统则没有这样的要求。实时操作系统通常用于对时间敏感的场合,比如导弹控制、汽车电子、工业控制等,而非实时操作系统则适用于一般的娱乐办公用途。
实时操作系统和非实时操作系统的另一个区别是任务调度方式不同。实时操作系统一般采用基于优先级的调度方式,也就是说,当高优先级的任务就绪时,它可以抢占低优先级的任务而立即得到执行,无论低优先级的任务是否已经进入内核调度。这样可以保证高优先级的任务能够及时响应外部事件。非实时操作系统一般采用基于时间片的调度方式,也就是说,当一个任务的时间片用完后,内核会停止它而切换到下一个任务执行,即使这个任务没有执行完也没有主动挂起。这样可以保证所有任务都能公平地获得CPU资源。
黑莓QNX
遵从POSIX规范的类UNIX实时操作系统,是全球第一款达到ASIL D级别的车载操作系统。
ASIL D级别是指汽车安全完整性等级的最高等级,也是对功能安全要求最严苛的等级。ASIL D级别是通过对危害事件进行严重程度、暴露率和可控性三个维度的评估而确定的,代表了危害事件导致的伤害或损失的潜在风险最高。ASIL D级别的安全目标需要在系统设计、硬件、软件等方面进行严格的设计和实施,验证,以保证功能安全 。一般来说,安全气囊、防抱死制动系统和动力转向系统等对时间敏感和安全攸关的功能需要达到ASIL D级别。
优点是稳定性和安全性非常高,内核小,代码小,故障影响小,驱动等错误不会导致整个系统都崩溃。缺点是它作为非开源系统,兼容性较差,开发难度大,在娱乐系统开发中应用不多,开放性不够,生态缺乏
Linux(Android)
linux是基于POSIX和UNIX的开源操作系统,定制开发灵活性强,接口多,主要运用在车载信息娱乐场景,但基于linux开发的难度大,开发周期长,限制了车机系统进入门槛
VxWorks
Wind River设计开发的嵌入式实时操作系统,具有良好的可靠性和卓越的实时性,被广泛的应用在通信,军事,航空航天等领域;但是需要收取高昂的授权费,开发定制成本较高。
在当前市场中,QNX和Linux是车机OS内核的首选。2021年QNX市占率达到43%;Linux(含Android)版本丰富,经过改造linux内核也具有实时性功能,21年市占率35%;WinCE市占率8%,并且仍在快速下滑;VxWorks由于其业务重点在复杂工业领域,对于汽车产业投入较少,售价和维护费用极其昂贵,目前仅在部分高端品牌车型上有所尝试。
(4)当前主流的车机OS分类
定制型车机OS
在基础OS上进行深度开发和定制(包括系统内核修改),与 Tier1 和主机厂一起实现座舱系统平台或自动驾驶系统平台。例如百度车载 OS、大众 VW.OS、特斯拉 Version;
ROM型车机OS
基于 Android 或 Linux 定制开发,无需更改系统内核。海外主机厂多选择基于 Linux 开发 ROM 型车机 OS,国内自主品牌则主要选择应用生态更好的 Android。例如奔驰、宝马、蔚来、小鹏等整车厂的车机系统都属于 ROM 型车机 OS;
超级汽车APP
手机映射系统,是指集地图,音乐,语音,社交等功能于一体的超级APP。例如苹果的CarPlay,华为HiCar,百度CarLife,谷歌AndroidAuto等。(这种方式更像是把算力外包给了手机)
QNX+Linux 或者是 QNX+Android 是当前智能驾驶 OS+智能座舱 OS 的主要选择。以ONX为代表的实时操作系统主要用在驾驶OS上,座舱OS主流是Android和基于Linux的定制型及ROM型系统。
2.2.2 硬件抽象层与中间件层
硬件抽象层(HAL)是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
(1) BSP:操作系统和硬件之间的桥梁
BSP是板级支持包(Board Support Package)的缩写,是嵌入式系统中介于操作系统和硬件之间的软件层次,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板。BSP的内容和形式可能因不同的操作系统而有所差异,但一般来说,BSP包括以下几个方面:
- 硬件初始化:BSP负责在系统启动时对硬件进行初始化,如设置栈指针、中断向量、内存映射、时钟源等,为操作系统的加载和运行做好准备。
- 启动加载程序:BSP提供一个启动加载程序(Bootloader),用于将操作系统的映像文件从存储介质(如Flash、SD卡等)加载到内存中,并传递一些硬件参数给操作系统。
- 设备驱动程序:BSP包含特定硬件平台的设备驱动程序,这些驱动程序是为了使操作系统与硬件之间进行通信,实现对硬件的控制和访问。常见的设备驱动程序有串口、网卡、LCD、触摸屏、键盘、鼠标等。
- 文档和示例代码:BSP通常会提供详细的文档和示例代码,帮助开发人员更好地理解硬件平台和BSP的工作方式,并提供一些开发指南和最佳实践。
BSP 的功能分为两部分,一方面为 OS 及上层应用程序提供一个与硬件无关的软件平台,另一方面 OS可以通过 BSP 来完成对指定硬件的配置和管理。
(2)Hypervisor:虚拟化平台
提供平台虚拟化的层称为Hypervisor,Hypervisor是一种用于创建和运行虚拟机(VM)的计算机软件、固件或硬件,也称为虚拟机监控器(VMM)或虚拟化器。Hypervisor可以让一台主机计算机支持多个客户机虚拟机,通过虚拟地共享其资源,如内存和处理能力。每个虚拟机都被称为一个客户机机器。Hypervisor向客户机操作系统提供一个虚拟的操作平台,并管理客户机操作系统的执行。与模拟器不同的是,客户机大多数指令是在原生硬件上执行的。
车载领域的 Hypervisor 负责管理并虚拟化异构硬件资源,以提供给运行在 Hypervisor 之上的多个操作系统内核。Hypervisor 支持异构硬件单元(包括控制单元、计算单元、AI 单元)的隔离,在同一个异构硬件平台上支持不同的操作系统内核,从而支持不同种类的应用。
Hypervisor的作用是实现硬件和软件的解耦,提高软件的可移植性和可复用性,降低开发难度和成本,加快开发进度。Hypervisor也可以根据不同的需求进行定制和优化,以适应不同的应用场景。
QNX Hypervisor 是当前市场的主流。目前常见的 Hypervisor 包括黑莓的 QNX、英特尔与 Linux 主导的 ACRN、Mobica 为代表的 XEN、松下收购的 OpenSynergy 的 COQOS、德国大陆汽车的 L4RE,法国 VOSyS 的 VOSySmonitor等,其中最主流的是黑莓的 QNX
与英特尔与 Linux 主导的 ACRN,其中黑莓的QNX 是目前唯一被大规模商用且安全等级达到 ASIL D 级的虚拟化操作系统。
基于 QNX Hypervisor 虚拟技术运行的多操作系统架构
(3)中间件层:软硬件解耦
中间件隔离了应用层与底层硬件,助力软硬件解耦。中间件位于操作系统、网络和数据库之上,应用软件的下层,作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件,实现软硬件的解耦分离。
所有的中间件方案中,最著名的就是CP AUTOSAR的RTE。AUTOSAR 标准发展了十多年,已经形成非 常复杂的技术体系。各工具厂商开发了相应的支撑软件,以助力主机厂加速实现 AUTOSAR 的落地。目前全球知名的 AUTOSAR 解决方案厂商包括 ETAS(博世)、EB(大陆)、Mentor Graphics(西门子)、Wind River、Vector、KPIT等,国内主要是东软睿驰、经纬恒润等。
2.2.3 功能软件,工具链及应用程序
(1)功能软件
智能驾驶通用模型
对应于自动驾驶中环境感知,决策与规划,控制与执行三大部分,通用模型也可以分为环境模型,规划模型和控制模型等
功能软件通用框架
功能软件通用框架是承载智能驾驶通用模型的基础,是功能软件的核心和驱动部分,可以分为数据流框架和基础服务两部分。
- 数据流框架向下封装不同的智能驾驶系统软件和中间件服务,向智能驾驶通用模型中的算法提供与底层系统软件解耦的算法框架。
- 基础服务是功能软件层共用的基本服务,包括可靠冗余组件、信息安全基本服务以及网联云控服务等。
数据抽象
数据抽象可以为上层各模型提供数据源。通过对传感器、执行器、自车状态、地图以及来自云端的接口等数据进行标准化处理,数据抽象的过程可以为智能驾驶通用模型提供各种不同的数据源进而建立异构硬件数据抽象,达到功能和应用开发与底层硬件的解耦和依赖。
这段话的意思是,数据抽象是一种让上层的模型不用关心数据是从哪里来的,怎么来的,格式是什么样的,而只需要按照统一的方式使用数据的方法。数据抽象可以把各种不同的数据,比如传感器的信号,执行器的动作,自己车辆的状态,地图的信息,云端的接口等等,都转换成一种标准化的形式,让上层的模型可以方便地获取和处理。这样做的好处是,上层的模型就不用管底层的硬件是什么样的,有什么特点和限制,只要数据抽象层能够提供所需的数据就行。这样就可以让功能和应用开发更加灵活和通用,不受底层硬件的影响。
(2)工具链
车载计算平台开发的软硬件环境以及全栈工具链成为提升开发效率的重要途径之一。高阶自动驾驶技术不断迭代,车载计算平台的研发更需要对产品进行整体持续的迭代,而不只是针对单一的模块,或者其中几个功能。全栈式工具链主要包括开发工具、集成工具、仿真工具、调试工具、测试工具等。
(3)应用软件
应用软件是在系统和功能软件之上独立开发的软件程序,主要包括面向自动驾驶算法,地图导航类,车载语音,OTA与云服务,信息娱乐等。
自动驾驶算法
自动驾驶算法是指用于实现自动驾驶汽车的各种功能和任务的计算机程序。自动驾驶算法通常可以分为四大类:定位、感知、规划和控制。
- 定位算法是指用于估计自动驾驶汽车相对于地图或道路的位置和方向的算法。定位算法通常利用车载传感器,如激光雷达、雷达、摄像机、GPS、IMU等,以及离线或在线的地图数据,来进行数据融合和状态估计。定位算法有基于激光雷达的、基于激光雷达加相机的和基于相机的等不同的方法。
- 感知算法是指用于检测和识别自动驾驶汽车周围环境中的各种对象和事件的算法。感知算法通常利用车载传感器,如激光雷达、雷达、摄像机等,以及深度学习、计算机视觉、模式识别等技术,来进行数据处理和信息提取。感知算法有静态障碍物测绘、移动障碍物检测与跟踪、道路测绘、交通信号检测与识别等不同的任务。
- 规划算法是指用于生成自动驾驶汽车从当前位置到目标位置的最优或可行的路径或轨迹的算法。规划算法通常利用车辆状态和环境信息,如位置、速度、加速度、地图、障碍物、交通规则等,以及优化理论、人工智能、运筹学等技术,来进行数据分析和决策生成。规划算法有路径规划、行为选择、运动规划等不同的层次。
- 控制算法是指用于控制自动驾驶汽车沿着规划好的路径或轨迹运行的算法。控制算法通常利用车辆状态和轨迹信息,如位置、速度、加速度、曲率等,以及控制理论、反馈控制、预测控制等技术,来进行数据计算和信号输出。控制算法有纵向控制(速度和加速度)、横向控制(方向盘转角)等不同的方面。
其中,感知类算法,SLAM( Simultaneous localization and mapping,同步定位与建图)算法是一个重要分支,SLAM 算法根据点云数据传感器的不同又可分为视觉 SLAM 算法、激光 SLAM 算法以及多传感器融合算法;决策类算法包括自动驾驶规划算法、自动驾驶决策算法;执行类算法主要
为自动驾驶控制算法。
高精度地图
高 精 度 地 图 , 即 HD Map( High Definition Map)或 HAD Map( Highly Automated Driving Map),是指绝对精度和相对精度均在 1 米以内的高精度、高新鲜度、高丰富度的电子地图。其信息包括道路类型、曲率、车道线位置等道路信息,路边基础设施、障碍物、交通标志等环境对象信息,以及交通流量、红绿灯状态信息等实时动态信息。高精度地图是实现高度自动化驾驶的必要条件,是L3及以上级别的自动驾驶汽车的必备选项。
目前国内的高精度地图市场呈现三足鼎立的态势,百度,四维图新,高德占据主要份额。
车载语音
车载语音是车内最简洁、最人性化、最安全的交互方式,也是未来最主要的车内交互方式。随着 AI 和硬件性能的增强,语音交互是未来汽车的绝对主流。语音交互主要是依靠 NLP 算法对语音进行解析,使得自动驾驶系统更容易理解驾驶员的指令。当前,科大讯飞与Cerence领先中国车载语音市场,互联网企业以及车厂纷纷入局。