汽车导航 汽车导航
Ctrl+D收藏汽车导航
首页 > 汽车资讯 > 正文

未动科技:支持L3+自动驾驶的软件架构及产品架构

作者:

时间:1900/1/1 0:00:00

L2及以下级别的自动驾驶功能基本上被归类为“驾驶辅助”。在每个功能场景中,主要的驾驶行为都是由驾驶员主导的,自动驾驶系统只在非常有限的约束条件下操作车辆。并且这些约束形成的场景基本上是独立的,这也是为什么每个功能都可以由不同的供应商独立开发的原因之一。作为赋能汽车驾驶行业的早期汽车智能科技企业,伟东科技自成立以来,一直专注于打造高水平的汽车驾驶视觉感知算法、高实时、高可靠性的系统软件平台和异构计算引擎。高级自动驾驶,也被称为L3,已经逐渐取代了车辆的驾驶,导致了L2的根本变化。L3级别要求在良好的路况下,大多数操作将由车辆主导,车辆将自动完成自适应巡航控制、车道居中、自动变道、自动进入高速公路匝道等一系列操作。司机只需要在必要时介入汽车。当然,这对自动驾驶系统的硬件计算、传感器配置以及各种传感、规划和控制算法提出了更高的要求。作为一家汽车智能技术企业,伟东科技更关注如何提高自动驾驶技术中的硬件算力,尤其是能够支持深度学习的算法能力,以及如何开发更好的感知算法等。然而,如何使这些大大提高的专业能力协同工作,很少被具体提及。我们需要的不仅是与自动驾驶功能相关的各种技术模块在车辆运行过程中的协同工作,而且是这些不同技术模块在开发阶段的有效分解,因为不同的技术模块往往属于完全不同的技术领域,需要不同的专业团队(或供应商)来完成。如果这些技术模块可以“拆卸”和“安装”,这就是软件架构需要解决的问题。正是因为从L2到L3的交叉难度太大,人们对L2的软硬件架构进行了修补,试图在不改变核心架构逻辑的情况下添加一些新功能,才有了所谓的L2.5。然而,L2原生架构上的补丁功能最终将结束,必须有一个新的架构来支持L3及以上版本的自动驾驶。L2自动驾驶软件架构的瓶颈多个独立的自动驾驶控制器+域控制器的方案主要用于L2和L2.5的开发。其在软件架构方面的瓶颈至少如下:1多个独立的控制器导致计算资源的调度不协调,导致计算能力的浪费和稀缺。例如,全自动泊车辅助功能和ACC/AEB功能不会同时激活。车速超过20公里后,驻车辅助功能停止,ACC/AEB可以激活。然而,停车辅助系统的计算能力不能用于ACC/AEB功能。在低速时,情况正好相反。2.自动驾驶范围内的通信延迟。多个控制器只能通过总线进行通信,从而导致一定量的数据延迟。如果使用高速Can总线(1Mbps),毫米波雷达每个周期可以发射30个目标,实现50%的总线负载。3.每个控制器的自动驾驶功能没有一致的架构设计,只能通过信号进行数据通信,通过域控制器进行协调。当堆叠更多的功能时,复杂性很难维持。4.基于功能(ACC、LKA、TJP等)的设计方法使得难以应对L3及以上基于场景的调度。实现的功能越多,就越难定义功能的边界。如果没有一致的体系结构设计,并行运行的功能可能会导致复杂性呈指数级增长。5.不可能在独立的控制器之间有效地共享公共组件,并且每个控制器重复轮子。6.每个控制器的功能实现无法利用其他控制器计算的感知结果,导致资源浪费。在这些问题的背景下,自动驾驶的域控制器越来越集中,这意味着这些控制器需要集成在一起……

高性能域控制器。即使域中有其他控制器,它们基本上都是低智能的,通常只执行单个感知项目来获得原始数据。然而,感知算法仍然在域控制器内完成。在如此高的集中度下,高性能域控制器需要新的软件架构。L3+自动驾驶软件架构鸟瞰技术创新的L3+软件架构是为了满足高性能域控制器的需求而提出的。自动驾驶域控制器是一个非常复杂的系统,其软件体系结构涉及多个方面。很难从单一的维度准确地理解整体结构。下图从3000米的鸟瞰图中,从三个正交维度描绘了整个软件体系结构。“正交性”是一个具有垂直概括意义的数学概念。这表明这两个分类的维度是独立和不相关的。

北京

图1动视科技软件架构鸟瞰图2.1动视科技L3+软件架构:“层次”维度从左到右逐渐上升,每一层都依赖于左一层来完成其工作。尽管本文是关于软件体系结构的,但也很容易理解图中的硬件。毕竟,软件依赖于硬件。首先,从两个角度理解每一层的作用:1这一层做什么?2.这个层不做什么

北京

表1 ActionTech 2.2的软件架构级别ActionTech L3+软件架构:在“实时域”和“性能域”的分工中,越到最后,规划和控制的实时性要求越高。硬实时性要求在一定时间内做出响应,并在一定时间完成。这需要硬件和计算机操作系统提供基本保证。通常,使用一个在MCU上运行的相对简单的实时系统来实现这一点。MCU的计算能力有限,其计算资源对基于机器学习的视觉算法的需求要低几个数量级。因此,需要集成高性能CPU和人工智能计算资源的SoC来满足高性能计算的要求。通过这种方式,它被分为“实时域”和“性能域”。在性能领域,运行的计算机操作系统通常不满足硬实时性要求,而是努力满足软实时性要求。例如,Linux有支持实时性能的内核补丁。但实时补丁不足以实现实时性能,基于Linux的应用程序还需要利用实时补丁提供的功能。在上面的三维图中,“分工”和“层次”的坐标轴是正交的。也就是说,“层次”轴上的每个分段在“实时域”和“性能域”中都有相应的目标。每个主题通常对应于一个特定的软件产品。下表列出了一些组合示例:

北京

表2中的产品划分示例Classic AutoSar非常独特,因为它属于实时域,但在层次轴上跨越了两层。2.3京东科技L3+软件架构:“方面”是软件架构中的一个概念。编程范式中有一个概念叫做“面向方面程序”(AOP)。其基本含义是在软件架构中将软件功能分为“核心业务”和“外围业务”:核心业务是指完成实际业务逻辑的功能系统,如算法执行、场景切换等。外围业务是指即使不实现,也不会影响核心业务执行的功能。例如,性能统计、信息安全等。并不是说这些功能不重要,而是将它们与核心业务逻辑区分开来,有助于更好地理解和实现核心业务。同时,可以从更全球化的角度设计和实现具有相同方面的外围业务,并为相应的方面设计合适的专有架构,然后与核心业务集成。在上面的三维图中,由D轴和L轴组成的平面中的每个交点都是一个乘积,这个交点映射在a轴上以表示函数……

产品需要在相应的部分中实现。例如,以D.R+L.HW表示的硬件MCU需要在A.FuSa平面上达到ASIL-D级别。由于D轴和L轴的每个交点都涉及软件技术的显著差异,因此投影在A轴上每个平面上的需求点在所使用的技术解决方案中也有很大差异。因此,在系统开发过程中(V模型左上角的系统开发阶段),可以提出某个方面的总体设计要求。但是,当涉及到每个DL轴交叉点时,它应该由该交叉点的相应产品开发团队单独实现。一个团队不可能实现一个完整方面的所有功能。ROS/ROS2和“中间件”由于ROS/ROS经常用于自动驾驶系统的原型开发,我们将结合上述三维图讨论ROS/ROS的位置以及它是否可以用于自动驾驶量产。首先,让我们明确操作系统的概念。ROS是一个机器人操作系统,虽然名称中包含字母OS,但这个OS并不是那个OS。一般来说,OS专门指计算机操作系统,如Windows、Linux、MacOS、RTOS等。为了避免歧义,本文不使用缩写,完全写成“计算机操作系统”或“计算机操作体系”。从广义上讲,操作系统为某个专业领域提供了一套软件解决方案和应用程序接口。该专业领域的用户可以基于此界面简化与领域相关的开发。因此,该解决方案软件系统可以称为特定于领域的操作系统。ROS是一种用于解决机器人软件开发的特定领域操作系统。但实际上,使用ROS或ROS2编写的应用程序只是在计算机操作系统上运行的进程,但它们链接到ROS/ROS2提供的库。ROS/ROS2还提供了促进机器人开发的软件包,例如用于某些算法或坐标转换的工具库。因为自动驾驶汽车在某种意义上也是一个自动驾驶机器人,ROS/ROS2可以用于自动驾驶的原型开发,并且ROS/ROS 2的生态系统中有许多方便的工具可以为开发提供很多便利。在上面的三维图中,ROS/ROS2的位置在交叉区域内,并在一定程度上延伸。然而,它只涵盖了这两个领域中的一小部分。而且在A轴上几乎没有实现任何功能。3.1上表详细描述了ROS/ROS2在(D.P+L.BSW)中的位置,该表映射到通信网络设备的概念。其中很大一部分是管理飞机的工作,然后一个重要的点是提供通信能力。通常,还将提出基于L.BSW的功能开发应用程序的框架形式的规范。ROS/ROS2实际上主要在L.BSW层提供通信支持功能,允许各种应用程序节点通过发布-订阅模式解耦。车辆控制器所需的基本管理功能很少在ROS/ROS2中实现。有人认为,由于实时通信不足,ROS2无法用于车辆控制器的工业批量生产。这是一个误解。ROS2最初并不是为实时域设计的。如果需要在ROS2中运行实时性要求高的车辆控制算法,这是软件设计错误,而不是ROS2的问题。ROS2可以用于大规模生产的智能驾驶控制器吗?答案是肯定的,前提是L.BSW层所需的所有功能都已完成,并且A轴截面所需的全部特性都已完成。这实际上是基于ROS2体系结构来实现一组AP AutoSar规范。这可以成为一个独立的产品,可以花时间、人力和金钱开发,只是看看它是否必要和值得。3.2 ROS/ROS2在(D.P+L.FW)ROS/ROS2中的地位确实实现了机器人开发的应用框架,并提供了许多基本组件,极大地促进了机器人应用的开发。然而,目前的机器人应用程序只在很小的区域内移动。仓库机器人的范围相对较大,运动范围只有一百米,场景相对单一。因此,ROS/ROS2对机器人开发的支持被映射到智能驾驶,这主要反映在分形递归EPX模型的最内层。在短距离内对单个场景的感知、规划和控制执行。它没有针对复杂场景的调度(S)机制……

以及用于多场景并行的执行仲裁(A)机制。毕竟,目前还没有需要从北京到广州旅行的机器人。因此,作为自动驾驶的软件开发框架,ROS/ROS2仍然有许多缺点,但作为一种快速原型开发工具,它仍然是一个非常好的选择。3.3关于L3+自主驱动的“中间件”,顾名思义,“中间件”必须位于两层的中间,从上层屏蔽下层的复杂性。计算机软件体系结构中有一句名言:“计算机科学领域的任何问题都可以通过添加间接的中间层来解决”。这是软件体系结构设计的一个主要设计理念,在无数地方得到了应用,解决了无数问题。“中间”一词也是相对的。当有多层堆叠时,每一层都是上层和下层之间的中间层。因此,当我们说“中间件”时,我们需要指出它的上下文,否则可能会在表达和理解上存在不一致。当我们说AP AutoSar或CP AutoSar是中间件时,这个中间件具有清晰的L.BSW层语义。在计算机操作系统和车载ECU的特定功能实现之间,ECU功能实现层屏蔽了与特定处理器和计算机操作系统相关的细节,并实现了与车辆网络、电源和其他系统交互所需的基本服务。当我们将“ROS/RS2称为中间件”时,其含义并不等同于“AP AutoSar作为中间件”。

ROS/ROS2是一个用于机器人开发的应用程序框架,在机器人应用程序和计算机操作系统之间提供通用的中间层框架和常用的软件模块(ROS Package)。ROS团队认为,这个框架做得足够好,可以称之为操作系统。L.FW层位于L.BSW和L.APK层之间。它为自动驾驶功能或场景的开发提供了软件框架和基本组件。就其上层而言,它也是中间件。如果做得好,它也可以被称为操作系统,这就是“自动驾驶操作系统”。无论如何,一切都是相对的。为了避免歧义,本文通常不使用“中间件”一词,如果使用,它将清楚地指出哪两层代表中间层。在大多数情况下,我们使用“车辆控制器基本软件”来表示任何汽车电子ECU需要实现的基本软件功能。它是计算机操作系统之上、ECU实际功能层(FW+APK)之下的中间层,代号为L.BSW。无动科技对自动驾驶中间件如何更好地支持上层应用有着准确而透彻的理解。结合多年的视觉感知研发积累,可以更好地与主机厂合作,优化汽车本身的功能,提升用户的驾驶体验。

标签:北京

汽车资讯热门资讯
政策加码储能产业 比亚迪助力能源转型

2021年4月21日,国家发改委、能源局联合发布《关于加快推动新型储能发展的指导意见》,首次从国家层面明确和量化储能产业发展目标。

1900/1/1 0:00:00
活久见 她们竟然在全新一代捷途X90车内玩瑜伽

过去一年中,现实重新定义了人们的生活空间。买菜不是非要去市场、办公不是非要去公司,“社区团购”和“移动办公”的普及改变了我们的生活空间,也为我们带来了更高效的解决办法。

1900/1/1 0:00:00
破局·重塑 铁将军“新零售”2.0来了!

近年,“新零售”风暴席卷而来,消费者的购买模式产生了翻天覆地的变化。各行各业都纷纷思考如何迅速在传统模式的基础上揉入“新零售”玩法,在困难重重的零售市场中脱颖而出。

1900/1/1 0:00:00
充电便利性再提升 全球首个汽车品牌私桩共享正式发布

5月12日,广汽埃安正式发布全球首个汽车品牌私桩共享,标志着广汽埃安能源生态布局再度提速,在致力构建可持续利用能源生态的道路上,又向前迈进了一步。

1900/1/1 0:00:00
再下一城!福州皮卡解禁 长城炮玩转皮卡车生活

又一省会城市皮卡解禁,皮卡乘用化势不可挡5月13日,福州正式解除皮卡限行规定,与乘用车享受同等路权,可以通行市区及城市快速路。作为省会城市,福州的解禁,必将掀起福建全省解禁浪潮。

1900/1/1 0:00:00