自动驾驶(八十四)---------中间件对比分析

这篇具有很好参考价值的文章主要介绍了自动驾驶(八十四)---------中间件对比分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

         很久没有写博客了,CSDN无故非法删了我第82篇,让我很恼火,一直提不起兴趣重新写一遍第82篇。但回初心,知识需要用自己的语言输出,所以今天对比分析自动驾驶中间件:

1. 中间件介绍

        在自动驾驶架构中,中间件是重要部分,他是处在OS内核的上一层、功能软件的下一层的软件就是中间件,通用架构如下:自动驾驶(八十四)---------中间件对比分析,自动驾驶,自动驾驶

          从功能角度看,中间件的的作用有很多,我简单总结:

1. 通信模块:负责软件内部模块之间、车辆控制器间、外部系统等的通信
2. 诊断 :监测车辆系统和组件,识别故障、错误状态,包括 DID DTC
3. 任务调度:执行系统、状态管理、执行步调,负责任务的初始化、启动、停止等
4. Log 运行过程中各种操作、事件和消息的记录,用于问题回溯、分析
5. 时间 系统:为各软件模块提供精准的时间戳信息,支持数据融合,协同控制等;
6. Tools 数据包的录制、播放、监控等
7. Component :提供应用程序运行框架组件
8. 安全措施: Crypto Key 管理,提供通用密码 操作和安全 密钥管理的 API

        从以上角度看,自动驾驶系统中,中间件是很重要的软件内容,绝对不是DEMO阶段理解的进程IPC。不妨再从另外一个角度来看中间件的重要性,在一个量产项目中到底中间件能决定什么内容呢,我总结出以下几点:

1. 进程间通讯 :各个模块之间需要大量数据交换,高效的 IPC 通讯 是基础功能;
2. 算法模块 所有算法模块需要适配中间件的框架和接口等,组成数据链路
3. 数据 模块 内存数据组织、数采设备、数据存储、数据上传、保密机房、大数据处理都是基于中间件操作
4. 平台 化:通过对传感器、计算平台等资源进行抽象,统一接口、屏蔽硬件和底层的差异;
5. 功能安全认证:中间件作为重要的软件内容,好的中间件满足功能安全的等级要求。
6. 其他功能 任务启停、时间同步、基础算法等都和中间件有关 ;

         综上正反来看,中间件的重要性不言而喻,基本决定了整个系统的半壁江山,值得好好分析一下:

2. ROS2                

        要说中间件,估计ROS更加有名,ROS是一个开源的、灵活的、用于编写机器人软件的框架,设计理念是模块化和分布式的。灵活的支持多种语言,采用分布式通讯,拥有强大的工具支持。

        ROS2相比ROS进行了改进,例如支持对设备,支持实时系统,没有Master节点限制,进行了规范的编程模型等,总之ROS2为自己向自动驾驶量产迈进了一步,但是量产需要包含但不限于上面节介绍的所有条件,所以ROS2依然无法摆脱浓厚的DEMO气质,离真正的自动驾驶量产还有很远。

        自动驾驶(八十四)---------中间件对比分析,自动驾驶,自动驾驶

 3. CyberRT

        都说百度起了个大早,赶了个晚集,但Apollo的开源,相关人员的大量毕业,还是为中国的自动驾驶打下了基础。为什么百度自动驾驶走不出来,我看是李彦宏还是没有极致的精神,内部官僚气息严重,可以理解的是:Google的Transformer作者全部离职,语言大模型也是赶了个晚集,自动驾驶不上不下,百度作为Google的学生,这样的结果也算一脉相承了。

        Cyber RTApollo平台下基于ROS开发框架,当时ROS2还没有推出,鉴于ROS1有很多缺点,例如:roscore的主节点限制;所以百度自研搞出来了CyberRT,确实比ROS离量产迈进一大步。

        CyberRT基于开源的DDS协议,又使用开源Protobuf进行消息的序列化和反序列化,针对量产做了大量工作:

        1.高性能:Cyber RT框架采用了多线程和多进程的并行计算模型,以实现高性能的并行数据处理和通信。

        2.实时性:Cyber RT框架提供了精确的时间同步和事件触发机制,支持实时数据处理和任务调度。

        3.可扩展性:Cyber RT框架采用模块化设计,允许用户通过组合和配置不同的模块来构建自定义应用程序

        4.工具支持:Cyber RT框架提供了一系列工具和库,包括可视化(Dreamview)调试工具、性能分析工具、日志记录和回放工具等,方便开发者进行开发和调优工作;

        5.有向无环图:算法模块通过有向无环图,配置任务间的逻辑关系。对于每个算法可以进行优先级、运行时间、使用资源等方面的配置。

        CyberRT是自动驾驶科技公司的温床,大部分科技公司的都是把CyberRT改个名,再接一个UBER开源的AVS可视化,就说自己自研中间件了,总之说自研中间件的科技公司基本都是缝合怪。

4. AutosarAP

        AUTOSAR(汽车开放系统架构),是由全球各大汽车整车厂、汽车零部件供应商、汽车电子软件系统公司联盟建立的一套标准协议。

        前期Autosar的标准主要针对MCUSWC设计、ECU软件、RTOS操作系统,随着智能化、电动化、高性能,Linux操作系统等需求,就把早期的Autosar改名AutosarCP,提出新标准---- Adaptive Platform AUTOSAR通过一个表格进行对比,基本体现了AutosarAP的新特点:

对比

AuotsarCP

AuotsarAP

操作系统

OSEKRTOS

LinuxQNX

开发语言

C

C++

芯片

MCU

SOC

通讯

基于信号 CAN/FD LIN FlexRay

SOME/IP SPI IPC 面向服务

实时性

微妙

毫秒

功能安全

ASILD

ASILB

应用

电源、制动等

智驾、座舱

        不难看出,AuotsarAP只是一套标准协议,任何人都可以自己按照标准来实现,下面介绍几家公司的产品和特点:

       1. Vector绝对是这个领域的大哥,以功能稳定和产品丰富著称,很多标准都是Vector牵头制定的,就是价格太高,是其他家的3-4倍,AutosarAP的产品一般1500W左右,而且是按项目收费,支持又不好,销售态度恶劣,我不推荐。

       2. Etas: 相比Vector 主打就是听劝,价格便宜 一般3/400W, 而且不限平台,支持又好,可惜质量一般,相信以后会慢慢提高,推荐指数****

       3. EB:价格适中,支持也一般,硬件供应商德赛一直使用,搞得占有率慢慢要起来。

       4. Mentor:产品也是质量一般,好在价格便宜,工具链也比较健全,比较看好

       5. TTTec:这家公司很少听到,但是他们的产品却起了好听的名字:motionwise,支持也不好,价格也没有优势,不推荐

再说国内:

       1. 东软睿驰:NeuSAR,这种国产软件很尴尬,东软以为自己可以卖软件,但是中间件却不同,车企愿意花钱买国外的AutoSar,所以搞出来的中间件根本卖不掉,只能自己用,自己的算法又基本玩玩,前景堪忧

       2. 普华基础:国家队,为了避免卡脖子自己搞的软件,一汽、上汽肯定用,其他就没停过了,好不好我也不说了

       3. 经纬恒润:早年代理过Vector,看到Vector数钱,估计眼红,自己做的就不是那么回事了,一句话四不像

       国内还有很多小公司自称自研了AutosarAP,没有接触,只是直觉感觉不靠谱吧,目前主机厂量产项目基本都是AutosarAP,偶尔也有用缝合怪的,那也是被科技公司绑架了,至少汽车厂商没有标榜用了自研中间件。

5. FastDDS

       DDS分布式通信规范,采用订阅/发布模型,提供多种QoS服务质量策略,以保障数据进⾏实时、⾼效、灵活地分发。ROS2和CyberRT都是基于DDS的规范来实现通讯功能,所以ePromise 公司基于DDS的规范,用C++实现了一套开源软件---FastDDS

       目前FastDDS是ROS2的LTS版本和大多数非 LTS 版本中支持的默认中间件,FastDDS已经有自己的完善的文档和社区,也能移植到各种平台,通讯性能也很不错,资源消耗低,目前主要是作为ROS2的插件来用。还是需要依托ROS2强大的工具链来配合。

6.  IceOryx

       冰羚是一种通信中间件,由Eclipse 基金会发布和维护. 特点就是内存共享,数据传输0拷贝,可以分为不同的访问权限,可以灵活配置,目前不说量产了,想广泛的DEMO还有很长的路要走。


       当下市场,科技公司眼里只有DEMO,不知量产深浅,敢于突破德国公司画的圈圈:什么功能安全、信息安全,又是诊断、又是任务管理的;统统不管,就想搞个大新闻,ROS2、CyberRT就敢量产,要是能换个壳,那就自称高级自研的中间件了,为了拿项目什么都敢说。

       Tier1也只有大型公司敢于布局,靠自己拿的其他项目,半卖半送中间件,看能不能量产起来,但是目前主机厂还是不给面子。

       当下主要的汽车厂还是只认AutoSARAP,对车企来说几百万对于一个项目而言也不是多的大事,没必要当你的小白鼠。

       最近看到科技公司老总总是大放厥词,就算你们的算法吊打老牌车企自研,但还是希望对量产要有敬畏之心,你所谓的端到端大模型也只是从老美摇尾乞怜来的,人家不开源你就翻白眼,纵观历史号称颠覆汽车百年工业历史的人物大有人在,又有几个做到了什么呢?文章来源地址https://www.toymoban.com/news/detail-856908.html

到了这里,关于自动驾驶(八十四)---------中间件对比分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 消息中间件(MQ)对比:RabbitMQ、Kafka、ActiveMQ 和 RocketMQ

    前言 在构建分布式系统时,选择适合的消息中间件是至关重要的决策。RabbitMQ、Kafka、ActiveMQ 和 RocketMQ 是当前流行的消息中间件之一,它们各自具有独特的特点和适用场景。本文将对这四种消息中间件进行综合比较,帮助您在项目中作出明智的选择。 1. RabbitMQ 特点: 消息模

    2024年02月20日
    浏览(48)
  • 云原生中间件开源现状分析与华为中间件案例解读

    开源中间件在企业分布式架构搭建和服务治理中扮演着重要的角色,尤其是在解决我国网络高并发和业务复杂性问题方面。然而,尽管中间件市场由商业闭源厂商主导,提供了一系列基础中间件和数据类中间件以支持稳定的应用程序运行环境,开源中间件生态却相对分散和薄

    2024年02月02日
    浏览(73)
  • node 第十四天 基于express的第三方中间件multer node后端处理用户上传文件

    Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上的所以非常高效。 前面我们已经知道了怎样利用express提供的静态资源处理中间件 express.static() 处理用户请求静态资源文件(图片, js, css等) 接下来学习如何处理用

    2024年02月06日
    浏览(41)
  • IIS中间件四大漏洞分析

    IIS PUT 文件上传漏洞 漏洞原理 IIS启动WebDAV的功能,并且设置可读写权限 漏洞危害 开启WebDAV之后,IIS就支持PROPFIND、PROPPATCH、MKCOL、DELETE、PUT、COPY、MOVE、LOCK、UNLOCK等方法了。当IIS中的配置允许写入的时候就可以直接PUT文件上去,由此可能引发非常严重的安全问题,强烈建议

    2024年02月22日
    浏览(36)
  • 消息中间件之RocketMQ源码分析(十)

    启动命令 nohup ./bin/mqnamesrv -c ./conf/namesrv.conf dev/null 21 通过脚本配置启动基本参数,比如配置文件路径、JVM参数,调用NamesrvStartup.main()方法,解析命令行的参数,将处理好的参数转化为Java实例,传递给NamesrvController实例 加载命令行传递的配置参数,调用controller.initialize()方法初

    2024年02月20日
    浏览(53)
  • 顶顶通呼叫中心中间件利用自动外呼进入机器人的压力测试配置流程

    进入机器人的压力测试我可以通过两种方式实现: 一端放音,另一端进入机器人。 两端都进入机器人。 压力测试原理 : 一端通过自动外呼呼叫给自己,然后执行呼叫路由external中的拨号方案,进入机器人话术中。另一端待对端接通后通过队列外呼中的“路由条件”和“呼叫

    2024年01月24日
    浏览(37)
  • 【Alibaba中间件技术系列】「RocketMQ技术专题」RocketMQ消息发送的全部流程和落盘原理分析

    RocketMQ目前在国内应该是比较流行的MQ 了,目前本人也在公司的项目中进行使用和研究,借着这个机会,分析一下RocketMQ 发送一条消息到存储一条消息的过程,这样会对以后大家分析和研究RocketMQ相关的问题有一定的帮助。 分析的总体技术范围发送到存储,本文的主要目的是

    2024年02月10日
    浏览(43)
  • 【中间件】消息中间件之Kafka

    一、概念介绍 Apache Kafka是一个分布式流处理平台,用于构建实时数据管道和流应用。它可以处理网站、应用或其他来源产生的大量数据流,并能实时地将这些数据流传输到另一个系统或应用中进行处理。 核心概念: Topic(主题) :消息的分类,用于区分不同的业务消息。

    2024年01月20日
    浏览(65)
  • scrapy---爬虫中间件和下载中间件

            -进来request对象         -加代理         -加cookie         -加请求头     -出去response对象         -修改响应对象,最后进入到爬虫的parser中就是修改后的response 1.加代理   2.加cookie,修改请求头,随机生成UserAgent         2.1加cookie        2.2 修改请求头

    2024年02月16日
    浏览(65)
  • 常见的中间件以及什么是中间件

    中间件顾名思义就是系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件在客户服务器的操作系统、网络和数

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包