当前位置: 首页 > news >正文

自动驾驶中间件

自动驾驶中间件

  • 1. 什么是中间件
  • 2. 中间件的分类
  • 3. 自动驾驶为什么需要中间件
  • 4. 通信中间件

Reference:

  1. 自动驾驶中间件:量产落地的关键技术
  2. 通俗易懂的告诉你什么是中间件

对于初入自动驾驶行业的人来说,各色各样的新型传感器、线控系统、芯片域控制器、算法软件似乎是自动驾驶未来实现的重中之重,对于中间件大多数人可能都不太熟悉,有些甚至从未听说过其存在。但中间件却也是极为重要的一环,它一定程度上决定了自动驾驶这件事能不能真正落地。尤其是随着自动驾驶产业化进程的深入,量产纷纷被各家企业提上日程,越来越多人意识到中间件的重要性和必要性。

1. 什么是中间件

维基百科这样定义:中间件是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源、中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。

通过定义我们可以总结判断出:

  • 中间件是软件;
  • 系统软件和应用软件之间、软件各部件之间;
  • 管理客户机与系统软件之间的计算资源和网络通信;
  • 中间件为应用软件服务、应用软件为最终用户服务,最终用户并不直接使用中间件。

在这里插入图片描述

2. 中间件的分类

基于中间件的功能特点等,中间件可以分为基础中间件、集成中间件和行业领域应用平台。

类型名称分类描述
基础中间件包括交易中间件、消息中间件、应用服务器中间件等,主要用于节点之间、应用于服务器之间的互联互通、交易请求的高效处理,Web应用的构建等,基础中间件产品是构建分布式应用的基础
集成中间件主要用于异构系统(如不同的数据库系统、业务应用系统等)之间进行资源整合,以实现互联互通、数据共享、业务流程系统统一等功能,并构建灵活可扩展的分布式企业应用
行业领域应用平台为了满足特定的行业、企业需求,易于快速、方便地的构建应用,而在原有基础中间件、集成中间等的基础之上所开发的中间件,根据所提供的服务不同,行业领域应用平台包括文件交换管理、数据共享交换、支持云计算和物联网的平台中间件等

3. 自动驾驶为什么需要中间件

中间件存在的最重要的功能便是通过对计算平台、传感器等资源进行抽象,对算法、子系统、功能采取模块化的管理,并提供统一接口,让开发人员能够专注于各自业务层面的开发,无需了解无关细节,从而极大提升算法开发效率。

对于软件开发者来说,智能驾驶中间件使开发者们无需考虑底层的 OS 内核是什么,也无需考虑硬件环境是什么,即不仅实现了应用软件与 OS 的解耦,也实现了应用软件与硬件的解耦;而后者则确保了数据能够安全实时地传输、资源进行合理的调度。

在自动驾驶领域,中间件的功能涉及到通信、模块升级、任务调度、执行管理,但其最主要的功能还是通信。通信中间件的引入整体上可以帮助开发人员提高工作效率,接下来将聊聊通信中间件:

(比如 ROS 在自动驾驶开发中,属于中间件的层级,本身具有完备的客户端,并且提供了丰富的函数接口,可以很好地适配上下层不同的应用和下层的通信。ROS 属于中间件,但是中间件的概念很泛化,ROS 属于中间件但是不属于通信中间件)

4. 通信中间件

通信中间件非常重要,也是目前各家智能驾驶企业非常关注与重视的方向。目前通信中间件主要有 SOME/IPDDSMQTT。现阶段,SOME/IPDDS 是自动驾驶上用得最多的两类通信中间件。二者都是面向服务的通信协议,都采用了“以数据为中心”的发布-订阅模式。SOME/IP 在汽车领域深耕的时间比较长,而 DDS 则是一个工业级别的强实时的通信标准。

应用在自动驾驶上,DDS 具备了高度的灵活性和扩展性、实现软硬件解偶、多种 QoS(质量服务策略)、丰富的应用场景等特点,也渐渐被行业人员所了解与接受。事实上,DDS 和 SOME/IP 尽管存在竞争关系,但也是可以共存的。有的主机厂既用了 DDS,也用了 SOME/IP,只是使用的场景不一样——有时候是在一个核上的进程之间进行通信,有时候是核与核之间进行通信,有的时候是域控制器和其他的车载娱乐系统进行通信等等。
在这里插入图片描述

目前在多数企业中,由于 SOME/IP 本身就是为汽车行业制定的通信标准,因此 SOME/IP 在之前的使用率会稍微高一些,DDS 也是近两年才慢慢被多家的造车新势力和传统主机厂所采纳。但从趋势来看,未来,DDS 的市场占有率较于SOME/IP是具备明显优势的

http://www.lryc.cn/news/157191.html

相关文章:

  • 鲲鹏920(ARM64)移植javacpp
  • python打包exe实用版
  • 什么是反向代理(Reverse Proxy)?解释反向代理的作用和常见应用。
  • 算法通关村第十二关——不简单的字符串转换问题
  • PROSOFT PTQ-PDPMV1网络接口模块
  • 力扣(LeetCode)算法_C++——稀疏矩阵的乘法
  • 华为云API人脸识别服务FRS的感知力—偷偷藏不住的你
  • 产品技术体系
  • Docker从认识到实践再到底层原理(二-3)|LXC容器
  • [运维|docker] ubuntu镜像更新时报E: Problem executing scripts APT::Update::Post-Invoke错误
  • 计算机网络的故事——HTTP首部
  • js农历与阳历转换使用笔记
  • 苹果与芯片巨头Arm达成20年新合作协议,将继续采用芯片技术
  • Linux下systemd深入指南:如何优化Java服务管理与开机自启配置
  • PMOS阵列(PMOS阵列代替)
  • Linux常见指令
  • 让开发回归简单模式-组件封装
  • LED显示屏安全亮度参数设置方法和防护
  • 数据库sql--关于计算方圆5公里点位编写
  • 嵌入式基础知识-DMA
  • STM32 软件IIC 控制OLED 显示屏
  • 【系统设计系列】 DNS和CDN
  • thinkphp中使用Elasticsearch 7.0进行多表的搜索
  • 说说 TCP的粘包、拆包
  • PowerToys安装
  • Unity——LitJSON的安装
  • YOLOv5:对yolov5n模型进一步剪枝压缩
  • 大数据(八):Pandas的基础应用详解(五)
  • 【算法】归并排序 详解
  • linux 进程隔离Namespace 学习