首页 > 汽车技术 > 正文

自动驾驶的操作系统和软件实用程序

2021-03-12 08:35:58·  来源:Astroys  
 
计算机操作系统是系统软件的主要组成部分,它提供应用程序包和硬件之间的接口。操作系统还管理同时执行的软件程序以及它们在计算设备中使用的内存调度。软件实用
计算机操作系统是系统软件的主要组成部分,它提供应用程序包和硬件之间的接口。

操作系统还管理同时执行的软件程序以及它们在计算设备中使用的内存调度。软件实用程序是操作系统底层的附件,包括加密/解密软件、文件管理器、支持底层功能的网络实用程序。

在软件架构中,操作系统在基本软件层紧邻车辆总线系统,位于三层结构底层。像车辆总线系统一样,大多数自动驾驶汽车的操作系统本质上也是异构的。

在分布式设计中,开发人员可以根据ECU所需的实时性能和运行灵活性,以及负责的工程师对OS的熟悉程度,选择将不同的OS安装到车辆上的大量ECU中。

在集中式设计中,开发人员可以将多个OS堆叠在一起,以创建不同的执行环境。

集中式设计中的OS在硬件设备(传感器、计算、通信)和应用程序之间起着至关重要的作用。在操作系统中,驱动程序是软件和硬件设备之间的桥梁。网络模块提供抽象通信接口;调度程序管理所有资源的竞争;文件系统提供了对所有资源的抽象。对于安全关键的情况,操作系统必须满足实时要求。

中间件作为应用程序和操作系统之间的中间层,提供可用性和可编程性,可以更有效地开发和改进系统。通常,中间件支持发布/订阅、RPC(Remote Procedure Call)或服务、时间同步以及多传感器协作。中间件系统的典型示例是ROS(Robot Operating System)。

在操作系统和中间件系统之上,实现了几个应用程序来生成控制命令,并将它们发送到汽车的线控系统。物体/车道检测、SLAM、预测、规划,以及车辆控制等。

在车辆内部,多个ECU通过控制器CAN总线或汽车以太网连接,用于控制制动、转向和动力系统等。除了处理来自车载传感器的数据外,自动驾驶汽车还要与其他车辆、交通基础设施、行人等进行通信,作为补充。

不同类型的操作系统
在传统的汽车开发中,车辆配备了具有严格实时性能、预先调度和静态内存分配的操作系统。这些操作系统深深地嵌入到最小智能ECU中,例如用于转向和制动的ECU。

但是,两个新出现的趋势正在改变操作系统需求的格局和生态系统:

随着IoT的引入和兴起,车辆已经超出了其原始的运输功能,一些公司正在努力将这些联网的车辆纳入人们的互联生活。结果,车辆配备了信息娱乐和远程信息处理平台,可以提供以前由智能手机提供的服务,例如社交媒体、网页浏览、视频聊天,甚至视频游戏。这些应用与用于车辆控制的嵌入式ECU有很大不同的要求,并且通常建立在通用操作系统(GPOS)上,例如Linux、Android OS、Apple OS、Windows等。

随着汽车行业从较低级别的自动驾驶(L0-3)过渡到较高级别(L4-5),嵌入式ECU的复杂性和性能要求急剧增加。更具体地说,一些新要求包括:
集成来自多个传感器源的输出
支持具有不同级别的确定性、安全性和实时要求的各种流程
利用GPU、FPGA、ASIC、NPU等加速平台
为自动驾驶汽车认知模块中使用的黑箱算法提供车规级安全保证

因此,可以将车辆操作系统分为三大类:

传统和传统的嵌入式实时操作系统(RTOS),仍然可以在自动驾驶汽车的控制模块中找到。

用于非安全关键的信息娱乐模块的通用操作系统(GPOS),提供人机交互和用户体验,但不能保证安全或可靠。

具有增强功能的RTOS,可以提供在传统/传统嵌入式RTOS中没有的灵活性。

AUTOSAR Adaptive RTE
AUTOSAR Classic软件平台是一个经过时间考验的、安全的、被汽车行业广泛采用的软件平台。但是,它的标准接口仅适用于嵌入式操作系统,适用于实时应用程序,对于非自动驾驶汽车也足够了。但是,越来越智能的自动驾驶汽车模块需要基于POSIX的通用操作系统提供的更通用的API接口。

2017年,AUTOSAR联盟认识到合并POSIX操作系统的重要性,并为新的AUTOSAR Adaptive平台发布了RTE接口的第一版。AUTOSAR Adaptive RTE不再必须在嵌入式操作系统上运行。

AUTOSAR Adaptive RTE可以动态调度模块并分配内存,但是它将保持适用于量产汽车的高标准安全性和实时性能。 
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号