首页/文章/ 详情

仿真测试入门参考(7):自动驾驶的软件-操作系统和中间件

1年前浏览1815

 经常有朋友问如何学习仿真测试,于是想着把自己的一些经验和理解分享出来,希望能有所帮助。不过视野和技术有限,所说不一定对,供大家批评和参考。这是第7篇,自动驾驶的软件-操作系统和中间件。

自动驾驶的软件包括操作系统、中间件和应用软件。

1.操作系统

操作系统是软件运行的基础环境,负责管理各种硬件和软件资源以及进程、内存、驱动程序,提供文件和网络系统等。

操作系统可分为实时操作系统(real-time operating system, RTOS)和非实时操作系统。实时操作系统可以确保在规定的时间内完成指定的功能,可及时提供响应并具有高可靠性,常用于车控系统。

实时操作系统又可分为硬实时操作系统和软实时操作系统:硬实时系统具有刚性时间限制,要求系统运行时要绝对满足每一次时间限制要求;软实时系统则可在一定限度内,错过个别的时间限制。非实时操作系统有时也被称为通用操作系统,相对功能更强大,常用于支持更多应用和接口的座舱系统。

常见的车载操作系统有QNX、Linux、Android等:

(1)QNX由黑莓公司提供,具有安全性高、低延时、微内核、非开源等特点,是全球第一个符合ISO26262 ASIL-D的实时操作系统,是广泛应用的汽车嵌入式内核系统,被宝马、奥迪和奔驰的多个车型采用。

(2)Linux是基于开源代码的类UNIX操作系统,具有性能稳定、易于裁剪、开源灵活等特点,被GENIVI联盟和Linux基金会大力推广。

(3)Android是基于Linux开发的操作系统,在广泛用于手机系统,雷诺、雪铁龙、百度、比亚迪等多家企业基于Anodroid开发了自己的车载操作系统。

2.中间件

中间件处于操作系统和应用软件之间,主要作用是为应用软件提供运行和开发的环境,提供数据管理、应用服务、消息传递等功能和服务。

常见的自动驾驶中间件有ROS/ROS2、百度Apollo CyberRT、DDS等:

(1)ROS/ROS2是开源的机器人操作系统,目前也被广泛用于自动驾驶,其提供了硬件抽象描述、驱动程序管理、消息传递和包管理等功能。ROS/ROS2将不同的软件模块视为不同的节点(node),不同的节点间通过基于发布/订阅方式的话题(topic)或者基于客户端/服务器方式的服务(service)传递消息(message)。

(2)Apollo CyberRT 是一个开源、高性能的运行时框架,专为自动驾驶场景而设计。针对自动驾驶的高并发、低延迟、高吞吐量进行了大幅优化。Apollo CyberRT中定义了一系列通信组件,不同的自动驾驶算法模块CyberRT中以组件(component)的形式存在,不同组件之间通过信道(channel)进行通信。

(3)数据分发服务(data distribution service, DDS)是OMG组织在2004年发布的中间件协议和应用程序接口(API)标准,它为分布式系统提供了高效、可靠、实时的数据分发服务。DDS使用以数据为中心的发布/订阅模型(Data-Centric Publish-Subscribe,DCPS),并且提供了多种服务品质(Quality of Service, QoS)策略,满足用户对数据共享方式的不同需求,大大提高了通信的可靠性、灵活性和实时性。

来源:孙工自动驾驶
通用汽车通信自动驾驶机器人控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-22
最近编辑:1年前
孙工自动驾驶
硕士 专注自动驾驶仿真测试
获赞 19粉丝 30文章 83课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈