- 架构">1、特斯拉Autopilot 自动驾驶软件架构
- 2、大众中央集中式软件参考架构
- 3、华为MDC 智能驾驶计算平台架构
- 4、英伟达自动驾驶平台架构
- 5、百度Apollo 开放平台架构
本文节选自汽标委智能网联汽车分标委今年7月编撰的《汽车控制总体技术要求研究报告》,本报告由国汽(北京)智能网联汽车研究院有限公司、华为技术有限公司牵头,共30余家单位参与撰写。
下面将对目前国内外主流车控操作系统的开发和应用情况进行简单介绍。
1、特斯拉Autopilot 自动驾驶软件架构
众所周知,特斯拉是自动驾驶技术和产业化的领跑者,其优势在于以计算平台为核心,自研并领先芯片硬件、操作系统平台软件等。特斯拉自动驾驶软件架构如图11 所示,主要特点是其操作系统基于单一Linux 内核,打造了整套自动驾驶的软件方案,分别完成了从感知、决策规划和控制系统解决方案。从现在公开的信息可知,系统基于Ubuntu 进行裁剪,对Linux 内核进行了实时性改造,这个内核也开源在github 上,深度学习框架基于PyTorch,实时数据处理基于开源流处理平台Kafka,拥有48 个独立的神经网络进行多维度数据处理,并且具备强大的OTA 升级能力。其FSD(Full Self-Driving)计算平台硬件集成了智能座舱域和自动驾驶域,操作系统通过OTA 软件升级,充分利用数据、云计算生态,开创汽车产品价值和服务的新模式。
Autopilot 与娱乐控制层掌控了所有的摄像头和雷达传感器。在模块内部,Autopilot 系统和娱乐系统这两大部分通过CAN 和高速串行总线FPD-Link 打通,两者之间甚至可以传递视频数据。Autopilot 数据流处理机制如图10 所示,融合自动驾驶与车内感知,实现服务驾驶闭环。
通过E/E 架构的集中化,特斯拉将汽车的软件开发内化,将汽车底层硬件标准化和抽象化,此举让特斯拉通过软件定义汽车和创新变得更容易。特斯拉的Autopilot 进化沿着功能集中化、资源共享化的道路前进,体现了特斯拉软硬件解耦,通过软件定义汽车的实践。
特斯拉在打造Autopilot 整体软件栈时采用的理念(参见图11):站在巨人肩膀上进行创新,充分利用开源项目进行全栈开发,从开发(比如UI 框架基于QT,前端也基于一些开源的库)、构建、到部署都采用了开源的方案,推动车端算力服务、调度机制,以及云端算力资源优化布局,培育智能驾驶新业务模式。
最底层的是数据、GPU 集群以及Dojo 计算集群,这一层主要进行数据采集、标注和训练,生成算法模型;采用基于PyTorch 开源框架的深度神经网络对模型进行分布式训练;用损失函数对模型进行评估;在评估层之上,是云端推理和车端FSD 芯片推理,到这一层,意味着算法模型走完了大部分流程,然后就是部署到车端;在车端,这是车控操作系统运行范围,特斯拉通过影子模式将这些算法模型与人类驾驶行为进行比对,检测是否存在异常。
这样从数据采集到算法部署的闭环,随着更多汽车上路展开数据收集,可实现基于海量数据的驱动,让系统性能不断迭代,更加优秀。在这个闭环当中,涉及到数据集、模型训练神经网络、云端和车端推理算法等要素。
总结来看,软件定义汽车深刻地改变了汽车行业的盈利模式,将高性能的硬件预埋作为投资,通过软件更新服务盈利,已经成为特斯拉为代表的新造车势力的标准操作。
2、大众中央集中式软件参考架构
大众汽车为了加速自动驾驶技术的应用,组建了庞大队伍自主开发汽车操作系统vw.OS。vw.OS 采用的是基于Adaptive AUTOSAR面向服务的软件架构,其中,中央集中式软件参考架构如图12 所示。大众新一代EE架构的设计特点主要有:
- 采用高性能处理器、高速网络;
- 兼容POSIX 的内核(Linux/QNX 等)Linux + Adaptive AUTOSAR 操作系统;
- 应用软件和I/O 功能解耦,减少整个系统的复杂性和应用之间的依赖性;
- 高效、快速地开发用户功能;
- 采用面向服务的通信。
3、华为MDC 智能驾驶计算平台架构
华为MDC(Mobile Data Center:移动数据中心)定位为智能驾驶的计算平台。此平台集成华为在ICT 领域30 多年的研发与生产制造经验,基于CPU 与AI 处理器芯片,搭载智能驾驶OS,兼容AUTOSAR,支持L2~L5 平滑演进,结合配套的完善工具链,客户或生态合作伙伴可灵活快速的开发出针对不同应用场景的智能驾驶应用。华为MDC 智能驾驶计算平台(以下简称华为MDC 平台),性能强劲、安全可靠,是实现智能驾驶全景感知、地图&传感器融合定位、决策、规划、控制等功能的汽车“大脑”。适用于乘用车(如拥堵跟车、高速巡航、自动代客泊车、RoboTaxi) 、商用车(如港口货运、干线物流)与作业车(如矿卡、清洁车、无人配送)等多种应用场景。华为的MDC 智能驾驶计算平台架构主要特点有:
- 提供软硬件解决方案,且高度解耦,可独立升级,硬件升级路线和软件升级路线分别独立;
- 对主流传感器的适配性好,支持主流GNSS、IMU、摄像头、激光雷达和毫米波雷达等传感器的数据接入,且支持摄像头和激光雷达点云的前融合;
- 对主流中间层软件的适配性很好,可兼容ROS 和AUTOSAR,支持Caffe 和TensorFlow 等常用深度学习框架;
- 核心组件(芯片、操作系统内核)自主可控; 华为是业界唯一同时拥有CPU 与AI 芯片研发能力的厂家, MDC 平台硬件集成具有CPU
- 与AI 计算能力的强大SoC 芯片,为智能驾驶提供可扩展的异构算力; 功能软件基于SOA 架构,遵循AUTOSAR规范,定义了智能驾驶基本算法组件(如感知算法组件、融合算法组件、定位算法组件、决策算法组件、规划算法组件、控制算法组件等)的调用框架与组件之间的软件接口;上层场景应用可以灵活选择不同的算法组件组合,实现具体的场景应用功能;
提供安全可信,高效便捷,灵活开放的应用开发端到端工具集,支持可视化&拖拽式操作及自动代码生成,可一站式开发、测试、调优,帮助客户或生态合作伙伴快速开发满足AUTOSAR规范的智能驾驶应用。
4、英伟达自动驾驶平台架构
英伟达(NVIDIA)是全球领先的人工智能计算公司,利用其先进的硬件芯片开发优势,以行业较领先的高性能安全芯片为核心,提供完整的硬件平台和基础软件平台,其架构如图13 所示。NVIDIA 计算平台硬件目前处在“Xavier”阶段,下一代平台“Orin”已发布但并未上市。Xavier 是 NVIDIA 首次生产的车规级系统级芯片,该芯片采用了六种不同类型的处理器,包括 CPU、GPU、深度学习加速器(DLA)、可编程视觉加速器 (PVA)、图像信号处理器(ISP) 和立体/光流加速器。基于Xavier 芯片,NVIDIA 提供面向自动驾驶开发的DRIVE AGX XavierTM,算力达到30 TOPS,面向L2+和L3 级自动驾驶;提供DRIVE AGX PegasusTM 使用两块Xavier 系统级芯片和两块Turing GPU,算力达到320 TOPS,面向L4 级和L5 级自动驾驶。
NVIDIA Drive 的主要特点有:1)软硬件解决方案,且高度解耦,可独立升级,硬件升级路线和软件升级路线分别独立;
- 2)硬件优势明显,是GPU 设计、生产领域的领导者;
- 3)软件生态非常好,有业界最完善的官方开发套件,开发者社区相对完善
- 4)软件层面开放程度较高,可在DriveWorks(功能软件层)开放API,也可在Drive AV 和Drive IX(应用软件层)开放API;
- 5)系统软件层融合了第三方RTOS+AUTOSAR,设有Hypervisor 层,第三方量产RTOS方案通过ASILD 认证;
6)算法加速全部基于自身CUDA 架构和TensorRT 加速包,二者是NVIDIA独有,因此其软件开发生态不可脱离其硬件平台。
5、百度Apollo 开放平台架构
百度Apollo 是一套软件平台,其依赖的计算平台硬件需要采用第三方的IPC,Apollo 开放平台架构如图14 所示。百度自行研发了两款辅助性硬件ASU(Apollo 传感器单元)和AXU(Apollo 扩展单元),其中,ASU 用于收集各传感器的数据,通过PCIe 传输至IPC,此外,IPC 对车辆的控制指令也需通过ASU 向CAN 发送;AXU 用于满足额外算力、存储的需求,以GPU、FPGA 形式接入已有硬件平台。
百度Apollo 的主要特点有:1)为网联云控(V2X)进行软硬件端到端的开发;
- 2)提出“认证平台”的概念,包括车辆认证、硬件认证;
- 3)很好地融入了云服务,其中包括众多百度自家的其他产品,如:基础百度云服务、在线仿真产品、高精度地图、小度助手(Duer OS),各产品间彼此受益;
- 4)由于开源,核心的算法模块在Github 进行长时间优化后已充分产品化;
- 5)主要侧重系统软件的开发,包含定制优化的操作系统、系统中间件及算法功能模块,大部分硬件则采用第三方方案;
- 6)产品没有涉及到AUTOSAR 架构的额外开发适配,也无需对车辆现有的ECU/MCU 进行改变。