支持L3 智能驾驶的相关软件及工具链的四级产品架构

01

产品划分和产品架构的重要性

自动驾驶软件架构涉及太多不同领域的技术(算法设计,算法加速,通讯,图像处理等等),每一个领域都可以是一个企业的专属产品。我们需要一种方法对涉及的纷繁复杂的相关产品做一个产品架构上的梳理。厘清不同产品之间的结构层次。不同产品之间的依赖关系。这样在我们讨论一个相关产品时,能够清楚这个产品的作用以及在整体产品架构中的地位。

不同的产品涉及的专业领域差别巨大,没有人能掌握所有领域的知识。区分出不同的产品,可以使单独的产品更聚焦于特定领域,由合适的产品经理做专业的定义,由具备合适技能的研发团队来开发和测试。

不同产品之间有相互的依赖关系,如,A 产品会交付给客户,但是其开发需要 B 产品和 C 产品进行支持,B产品也要交付客户,而 C 产品不用。厘清其依赖关系可以让我们知道哪些要先开发,哪些后开发,哪些可以由不同的团队并行开发再集成。在产品层面的划分也可以更明确哪些产品可以购买,哪些必须要自己开发。

而且不同的产品有不同的研发周期,如果A产品依赖与B产品,而B产品的开发周期又很长,我们就要想办法来提供模拟的方案来暂时消除这种依赖。保证A产品按期完成。这些都需要统筹考虑。前提是对不同产品的边界有一个清晰的划分

产品划分逻辑可以有很多种,比如:

1. 根据特定的专业领域聚类关系进行划分

2. 根据从硬件到应用层的层级关系进行划分

3. 根据纵向的功能切面进行划分

4. 根据是运行时组件和还是开发支持工具链进行划分

02

产品架构与产品线

2.1 四级产品架构

图1 四级产品架构

下图是以划分了4级产品架构等级 PA1~PA4。这个划分实际是以“开发智能驾驶软件框架及基础组件(L.FW) ”为出发点来做的。

'智能驾驶软件框架及基础组件(L.FW)' 本身为第3级(PA3)产品的边界。PA3 往上的PA2 包括所有运行在在智能驾驶域控制器中的软件。往下的 PA4 包含各种自动驾驶功能软件包,这些软件包都基于 L.FW 提供的组件接口进行开发。

PA1还包括在PA2 之外的所有用于 PA2 开发的工具链和支持系统。

这里的 PA1-PA4的产品架构是包含关系。

每一级 PA 内还可以包含多条产品线,一个产品线内可以包括多个相关的产品。产品线是按照产品的相关性来划分的

比如,PA1 内除了 PA2外的产品可以分为几大产品线:

  1. 软件测试

  2. 数据采集与数据管理平台

  3. 真值系统

  4. 算法开发支持

  5. 仿真测试

2.2 PA2 级产品结构

图2 PA2(域控制器内)的产品架构

PA2 级别的产品在 (D.P + L.OS) 主要是要选择嵌入式的计算机OS,常用的有 Linux、QNX或 VxWorks 等。

一般来讲,智能驾驶领域以 Linux 为主,有开源的实现。但最好选用有专业团队支持的商业版本,一方面能提供加速 Linux 在目标板上的移植和专项优化,包括系统裁剪,启动优化等,一方面能够提供长期的专业技术支持,跟进最新补丁的加入。

PA2 级别的产品在 (D.R + L.OS) 可以是某个RTOS系统。一般芯片开发商提供微处理器抽象层(MCal) 也在这个位置。RTOS 可以基于 Mcal 来实现自己的芯片驱动,也可以独立做驱动。也可以直接使用 CP AtuoSar , 但 CP AutoSar 横跨了 实时域的 L.OS 和 L.BSW 两层。

PA2 基本的产品在 (D.P + L.BSW) 区域是支持性能域的车载控制器基础软件,典型的产品就是 AP AutoSar. 对等的产品比较接近的是 ROS2。但 ROS2 只是完成了 AP AutoSar 通讯部分并没有与车载控制器相关的模块。另外,在 L.BSW 层,我们还需要实时域和性能域之间的数据同步机制。如果L.BSW 层选择的第三方产品没有提供,就需要自己开发。

2.3 PA3、PA4 及产品结构

PA3基本上等同于 L.FW 层。其内部产品主要是各自运行框架。

FW:ENV 环境模型框架和 EPX-SA 模型的执行框架是最主要的两个。

另外还有平台特定的框架,如 算法加速框架,视频处理框架,2D/3D 渲染框架,HMI引擎,这些也需要开发,不过需要基于平台特定的SDK能力。

L.FW 层还会提供一些基础的 EPX-SA 组件和部分基础的感知算法,让整个框架能够运转起来。

PA4 产品是基于 PA3 实现真正的智能驾驶的功能。包含感知算法和 EPX-SA 的各种组件,这些算法和组件都被装载到 L.FW 层的合适位置被执行。不同的算法和组件的集合就形成某一个产品。

—END—

作者介绍

(0)

相关推荐