车载基础软件——国产基础软件开发平台架构下的关键技术设计

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

人,既会因局限而不完美,又会因追求完美而感到幸福。有没有可能,局限是一种需要突破才能收获的幸福呢?所以,有没有可能,上帝公平地给每一个人以局限,其实是给我们幸福的机会?那么,现在这幸福的机会就在眼前,和你自身的局限那样显而易见,还等什么?勇敢去挑战吧!

本文主要介绍了国产基础软件开发平台架构下的关键技术设计。

车载基础软件——国产基础软件开发平台架构下的关键技术设计_第1张图片

一、系统软件

系统软件是针对汽车场景定制的复杂大规模嵌入式系统运行环境。系统软件一般包含异构分布系统的多内核设计及优化、Hypervisor、POSIX/ARA(AUTOSAR Runtime for Adaptive Applications)、分布式系统 DDS(数据分发服务)等。

1、内核系统

自动驾驶操作系统要求多内核设计,内核要求与 AUTOSAR 对内核的要求类似。车载智能计算基础平台支持异构芯片,需考虑功能安全、实时性能等要求。当前异构分布硬件架构各单元所加载的内核系统安全等级有所不同,AI 单元内核系统 QM ~ ASIL-B,计算单元内核系统 QM ~ ASIL-D,控制单元内核系统 ASIL-D,因而出现不同安全等级的多内核设计或单内核支持不同安全等级应用的设计。保证差异化功能安全要求的同时满足性能要求,是自动驾驶操作系统系统软件设计的关键。

2、虚拟化

虚拟化技术有效实现了资源整合和隔离。Hypervisor 是一种硬件虚拟化技术,管理并虚拟化硬件资源(如 CPU、内存和外围设备等),并将虚拟化的硬件资源提供给运行在 Hypervisor 之上的多个内核系统。自动驾驶操作系统是基于异构分布硬件,应用程序如 AI 计算和实时安全功能可能分别依赖不同的内核环境和驱动,但在物理层面共享 CPU 等。Hypervisor是实现跨平台应用、提高硬件利用率的重要途径。

3、POSIX/ARA

当前,系统软件在行业中依然借鉴 Adaptive AUTOSAR 平台思想,采用 POSIX API。POSIX(可移植操作系统应用程序接口)能够很好地适应自动驾驶所需要的高性能计算和高带宽通信等需求。Adaptive AUTOSAR 采用基于 POSIX 标准的内核系统,可使用所有标准的 POSIX API,旨在满足未来高级别自动驾驶的需求。自动驾驶操作系统系统软件基于实时嵌入式软件单元架构,是在不同内核系统中通过POSIX API 与应用软件、功能软件交互。

车载基础软件——国产基础软件开发平台架构下的关键技术设计_第2张图片

4、DDS

DDS 满足多种分布式实时通信应用需求。DDS 属于通用概念,是一种分布式实时通信中间件技术规范。自动驾驶操作系统需要建立跨多内核、多 CPU、多板的通用、高速、高效的 DDS 机制。DDS 采用发布 / 订阅架构,强调以数据为中心,提供丰富的 QoS(服务质量)策略,能保障数据进行实时、高效、灵活地分发,满足各种分布式实时通信应用需求。

5、管理平面和数据平面

管理平面和数据平面是自动驾驶操作系统的设计基石。管理平面和数据平面是复杂嵌入式系统的通用概念。管理平面包含日志、管理、配置、监控等非强实时功能,存在于每个硬件单元。数据平面是实时控制平面,实现自动驾驶操作系统的主要功能和数据处理,用于运行自动驾驶通用数据、实时状态监控、数据收集、失效切换、网联、云控、信息安全等功能模块。

二、功能软件

功能软件主要包含自动驾驶的核心共性功能模块。核心共性功能模块包括自动驾驶通用框架、网联、云控等,结合系统软件,共同构成完整的自动驾驶操作系统,支撑自动驾驶技术实现。

1、自动驾驶通用框架模块

自动驾驶通用框架模块是功能软件的核心和驱动部分。L3 及以上等级自动驾驶系统具备通用、共性的框架模块,如感知、规划、控制等及其子模块。一方面,自动驾驶会产生安全和产品化共性需求,通过设计和实现通用框架模块来满足这些共性需求,是保障自动驾驶系统实时、安全、可扩展和可定制的基础。

另一方面,重点算法特别是人工智能算法仍在不断演进,如基于 CNN(卷积神经网络)框架的深度学习感知算法、基于高精度地图等多源信息融合定位算法、基于通用 AI 和规则的决策规划算法和基于车辆动力学模型的控制算法等。

车载基础软件——国产基础软件开发平台架构下的关键技术设计_第3张图片

自动驾驶通用框架模块定义核心、共性自动驾驶通用框架和数据流,并包含共性模块的实现;提供对外接口 API(应用程序编程接口)和服务,以接入非共性或演进算法、HMI(人机接口)等;通用框架模块也会调用自动驾驶操作系统内的云控、网联、信息安全等功能软件模块,或使用这些模块提供的服务。通用框架模块的设计和实现,可以充分利用市场不断成熟的、不同领域的算法子模块,促进产品高质高效的快速迭代。

2、网联模块

网联模块是自动驾驶操作系统功能软件中实现网联通信、处理网联数据的功能子模块。除满足常规网联服务场景要求外,该子模块通过完善通用框架模块设计实现网联协同感知、网联协同规划、网联协同控制等网联自动驾驶功能。

网联数据通过 V2X(车用无线通信技术)获得,包括路侧数据、摄像头、智能信号灯、道路交通提示预警等信息及其他车辆信息等,与单车传感器系统的多种探测手段相结合和融合处理,能够有效实现单车感知范围扩展到数百米,车辆间防碰撞,根据预警直接控制车辆启停等重要感知、规划和控制功能。

单车智能化与 V2X 网联功能的有机结合增强自动驾驶系统整体的感知、决策和控制能力,降低自动驾驶成本,最终实现无人驾驶。该子模块是智能网联汽车的典型特征,也是自动驾驶操作系统的核心功能之一。

3、云控模块

云控模块是与云控基础平台交互的功能子模块。云控基础平台为智能网联汽车及其用户、管理及服务机构等提供车辆运行、基础设施、交通环境等动态基础数据。云控基础平台具有高性能信息共享、高实时性云计算、多行业应用大数据分析等基础服务机制。

云控模块通过自动驾驶通用框架模块的支持,提供云控基础平台所需的数据支撑,同时通过高速通信与中心云 / 边缘云进行云端感知、规划和控制等数据的实时同步,实现云 - 端分工协同,如基于广泛多车感知的云端感知、云端多车感知融合和云端最终裁决等。

4、深度学习和视觉模块

功能软件需要支持深度学习嵌入式推理框架便于成熟算法移植和适配。自动驾驶是深度学习算法的重要应用场景,尤其在视觉、激光雷达及决策规划方面,算法企业、科研机构进行了长期且富有成效的研究和产品化工作。

在自动驾驶操作系统功能软件中需要支持深度学习嵌入式推理框架 ( 如 TensorRT),并兼容TensorFlow 和 Caffe 等主流训练开发框架的深度学习模型,便于已有成熟算法和开发生态的移植和适配。

5、传感器模块

传感器模块规范和模块化各类自动驾驶传感器,为传感器数据融合提供基础。L3 及以上等级自动驾驶技术方案多依赖激光雷达、摄像头、毫米波雷达等不同类型、不同安装位置的传感器,这些传感器硬件接口、数据格式、时空比例、标定方法不同。针对传感器的多样性、差异性和共性需求,自动驾驶操作系统功能软件中预置传感器模块来规范和模块化自动驾驶各类传感器,为异构传感器信息融合处理提供基础。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

你可能感兴趣的:(汽车行业,架构,硬件架构)