b2c信息网

您现在的位置是:首页 > 明日新闻 > 正文

明日新闻

apollo源码CAN通讯(apollo开源协议)

hacker2022-06-14 02:04:28明日新闻67
本文目录一览:1、阿波罗11源代码什么程序语言写的

本文目录一览:

阿波罗11源代码 什么程序语言写的

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为Anders Hejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

在古希腊神话里,DELPHI是智慧女神,米开朗基罗在意大利有著名的DELPHI雕像。

Delphi也是一个希腊地名,那里的阿波罗神庙神谕非常灵验,所以古希腊各个城邦都信奉delphi那里阿波罗神庙预言,

由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了弹性可重复

如何用Apollo+MQTT协议实现IM功能

MQTT+Mina的路过,我的思路是上行走http,下行接收走mqtt,以此实现A-B。

Publish包的消息体payload要进行扩展,你说的topic拓展我觉得意义不大。 欢迎探讨.

z转载,仅供参考,祝你愉快,满意请采纳。

百度Apollo中标山西阳泉自动驾驶车路协同示范项目

3月24日,百度Apollo宣布新的中标项目——将参与建设阳泉市经济开发区双向约10公里车路协同测试示范区。该项目将在阳泉市经济开发区进行车路协同规划建设,支撑自动驾驶技术验证、测试评价、运营服务。

解读:早在2019年11月21日,百度Apollo就已宣布其自动驾驶与车路协同项目落地山西阳泉。

此次签约明确百度Apollo将参与建设阳泉市经济开发区双向约10公里(城市段)车路协同测试示范区。项目包括完成路侧系统建设,以及基于百度公有云部署的车路协同云控平台、自动驾驶车辆监管平台的部署。

项目建设完成后,可通过环境感知对象检测技术与V2X通讯技术支持L4级别自动驾驶车辆超视距、全量障碍物感知、盲区检测等场景应用。

车路协同能够有助于车辆实现L4级自动驾驶,尤其是城市复杂路况下,是城市智慧交通的重要组成部分。

今年3月,共中央政治局常务委员会召开会议提出,加快5G网络、数据中心等新型基础设施建设进度。在中央基调明确的背景下,新基建不仅成为热门词汇,也成为各地方政府投资发力的重要领域,阳泉项目已经是百度近期签约的第三个新基建项目。

此前两个分别是合肥市智能网联汽车塘西河公园5G示范运行线设计采购施工一体化项目,这也是全国第一个大型5G车路协同示范线;以及重庆永川区“西部自动驾驶开放测试基地”建设项目,项目金额5280万。

除了地方政府在新基建领域的投资积极性外,百度能率先在3地拿下车路协同项目,与其之前的积极的战略布局和技术储备密切相关。

去年12月18日,百度第一届百度Apollo生态大会,明确以车路协同、自动驾驶、智能车联三大开放平台为基础,打造Apollo全生态。车路协同成为百度在智能交通领域的发力点,为此百度新增智能交通业务组。

除了组织和战略的调整,百度在车路协同领域也拥有一些技术优势。

在自动驾驶方面,具备自动驾驶及车路协同全栈研发能力,拥有导航地图甲级测绘资质、自动驾驶高精度地图采集制作及L4级自动驾驶实车规模化落地应用能力,还承担了自动驾驶国家人工智能开放创新平台。

在2019年,包括长沙、重庆、沧州、株洲、德清、阳泉都已经加入了百度Apollo生态。在新基建的推动下,将会有更多的地方投入到智慧交通的建设中,凭借着先发优势,百度将收获更多的项目。

本文来源于汽车之家车家号作者,不代表汽车之家的观点立场。

如何在c++定义一个学生类以实现平均成绩的计算和查询功能?

一.中间件的定义与作用

1.什么是中间件?

图片摘自公众号“筋斗云与自动驾驶”

笔者在交流中发现,不同的人对中间件的理解并不一样,甚至可以说,到现在,这个概念还是模糊不清的。比如:

(1)有的人认为中间件仅指位于OS内核之上、功能软件之下的那部分组件,为上层提供进程管理、升级管理等服务;而有的人则认为中间件还应包括功能软件和应用软件中间的那部分(参见上图)。按茅海燕的说法,前者是“通用中间件”,而后者是“专用中间件”。本文中提到的“中间件”,若不做专门说明,便特指“通用中间件”。

(2)有一些人提到的自动驾驶中间件,包括了AUTOSAR(又分为AUTOSAR CP和AUTOSAR AP),还有一些人口中的中间件,特指ROS2、Cyber RT、DDS等。

(3)未动科技VP萧猛认为,“中间”一词是相对的,当有多层堆叠的时候,每一层都是其上下两层的中间层,因此,在用“中间件”这个词的时候,我们需要特别指明它究竟位于“哪两层之间”。按萧猛的说法,当我们称“ROS/ROS2 为中间件”时,其含义与 “AUTOSAR AP为中间件”并不是对等的关系。

(4)Vector产品专家蔡守群说,他理解的中间件,“是给App开发提供功能支撑的,对外是没有功能表征的;但是站在操作系统内核的角度,中间件跟App并没有本质的区别”。

2.中间件的作用

汪浩伟说:“专用中间件原本是应用程序的一部分,只是很多公司做自动驾驶都需要用到,就被抽象出来了。”

那么,它究竟有什么用?

毕晓鹏认为,自动驾驶中间件最主要的作用是:对下,它能够去适配不同的OS内核和架构;对上,它能够提供一个统一的标准接口,负责各类应用软件模块之间的通信以及对底层系统资源的调度。

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

为什么要通过中间件来支持软硬件解耦?毕晓鹏解释道:

我开发一个应用软件,其中很多内容都是与具体应用逻辑无关的,包括数据通信、通信安全、系统资源调度等,比如,有十个进程需要数据交互,完全没有必要在十个程序的软件代码里各自进行实现和配置。针对这种情况,我们就可以把重复的部分抽象成一种服务,单独封成一层东西(这就是中间件),并提供统一的库、接口和配置方法,供上层去调用。这样的话,有一部分人专门去做中间件的,而做上层应用的人也不需要考虑跟底层交互的事情。

举例说,如果要做一个自动泊车系统,它有各个模块或业务逻辑独立的不同软件,在进行通信、数据交互,或者调用底层资源时,只需要中间件的一个接口就可以实现,其他事情不需要考虑,这样开发人员就可以专注于自己的业务逻辑。

又比如,一个摄像头需要感知前面的车道线、红绿灯等,开发人员就专门做红绿灯和车道线检测算法,与外界的数据交互只需要使用中间件的通信服务(例如订阅摄像头信息,发布检测结果),而不必关心数据从哪里来、发给谁。

Nullmax纽劢科技系统平台总监苗乾坤博士在此前的一篇文章中写道:

“芯片算力大幅增长,摄像头像素呈翻倍之势,激光雷达出现在更多新车规划上……没有谁能够断言车上的传感器应该有多少,又或者是将来的汽车还会增加哪些硬件,但所有人都知道硬件的变化将会来得更加猛烈。

“所以我们也可以看到,汽车对软硬件架构的要求也越来越高,既要能满足当下的需求,还要具备相当的前瞻性、兼容性和扩展性,能够支持接下来软硬件升级换代、增减模块的需求。而自动驾驶的中间件,就正是这样一个可以按需调整、满足各样需求的现代温室。

“在早期开发中,中间件可以化整为零,将巨大的软件工程分解成若干小任务,分散解决。在后期应用时,它又可以化零为整,像拼积木一样,根据需求将一个个模块组合成一个整体,严丝合缝。”

在春节前的一场直播中,东软睿驰产品销售总监安志鹏说,在软硬件解耦、模块化管理后,再遇到问题,就不用整个系统都改,只改相对应的部分就行了。这样,软件的可复用程度就极大地提升了,同时,验证的工作量也会减少许多,整体开发效率也会因此提升。

相反,没有中间件的话,应用层就得直接调用操作系统的接口,后期要是换了操作系统,应用层的代码和算法可能就要推倒重来。

简言之,中间件通过对计算平台、传感器等资源进行抽象,对算法、子系统、功能采取模块化的管理,并提供统一接口,让开发人员能够专注于各自业务层面的开发,无需了解无关细节。

按东软睿驰产品销售总监安志鹏的说法,搞AUTSOAR这样的中间件,并不是只对OEM有利,“零部件供应商的选择面也大了——应用做好了,下面的软件、芯片可以选好几家供应商的,要比传统的开发模式快很多,因而,零部件供应商也是受益者”。

用萧猛的话说,中间件最直接的好处就是“为上层屏蔽底层的复杂性”,软件开发人员可以忽略芯片、传感器等硬件的差异,从而高效、灵活地将上层应用及功能算法在不同平台上实现、迭代、移植。萧猛认为,中间件可以看做是自动驾驶应用背景下的一项“新基建”。

(图片摘自冯占军博士的《AUTOSAR对基础软件开发是喜还是忧?》一文。AUTOSAR只是中间件的一种,但这里写的“AUTOSAR开发优势”基本也适用于其他中间件。)

不过,站在开发者的角度看,中间件的意义也未必全部是正面的。如冯占军博士在《AUTOSAR对基础软件开发是喜还是忧?》一文中就提到了如下两点:

底层软件工程师变成了工具人,“只要你去点点鼠标,用工具配合就可以了”,很多原本由自己做的测试也改由供应商来做,进而导致工程师的成就感严重降低;时间久了,工程师从0到1开发的能力也会降低。

(图片摘自冯占军博士的文章。尽管文章说的是Autosar,但实际上这些问题在ROS等其他中间件的使用过程中也会存在。)

对软件工程师来说,中间件造成的“能力退化”这一问题几乎是无解的。但冯占军博士认为,“如果这个中间件在开发过程中,有使用公司的工程师深度参与,提出需求并一起实施,会好一些”。

此外,殷玮在一篇文章提到,使用AUTOSAR这样的中间件,Tier 1们应该是很不情愿的,“因为不到增加了成本,还有可能逐步沦为硬件生产商”。但这个也不能说是中间件的锅,在软件定义汽车大大趋势下,这几乎是必然的。

二.常见的基本概念

1. AUTOSAR CP 与 AUTOSAR AP

在所有的中间件方案中,最著名的非AUTOSAR莫属了。

严格地说,AUTOSAR并非特指由某一家软件公司开发出来的某款操作系统或中间件产品,而是由全球的主要汽车生产厂商、零部件供应商、软硬件和电子工业等企业共同制定的汽车开放式系统架构标准。不过,在实践中,各公司基于AUTOSAR标准开发出来的中间件也被被称为“AUTOSAR”。

当前,AUTOSAR可分为Classic Platform和Adaptive Platform两个平台,两者分别被简称为AUTOSAR CP与AUTOSAR AP。

简单地说,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,对应传统的车身控制、底盘控制、动力系统等功能,如果涉及到自动驾驶的话,AUTOSAR CP可能无法实现;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,对应自动驾驶的高性能电子系统。

严格地说,AUTOSAR CP并不只是个“中间件”,它是相当于“OS内核+中间件”的一套完整的“操作系统”。 AUTOSAR CP定义了基本的上层任务调度、优先级调度等。

在基于分布式架构的ADAS功能中,AUOTSAR CP便是最常见的“操作系统”。在AUTOSAR的生态形成后,很多芯片厂商的MCU上标配的就是AUTOSAR CP,主机厂没有什么选择权。

由于分布式架构下的芯片主要是MCU,因此,便有了“AUTOSAR CP主要跑在MCU上”的说法。

在分布式架构下,不同的功能对应着不同的MCU,而每一个MCU上都需要跑一套AUTOSAR CP,若传感器的类型比较多,则仅ADAS相关功能就需要很多套AUTOSAR CP,那怎么收费呢?

常规的做法是:根据MCU的类型来收费——如果MCU是两个异构的MCU,那AUTOSAR CP就按两套来收费;如果MCU是同构的,那AUTOSAR CP就按一套来收费。

随着EE架构从分布式向集中式演进、芯片由MCU向SOC演进,计算量及通信量成数量级地上升,另外,多核处理器、GPU、FPGA以及专用加速器的需求,还有OTA等,都超出了AUTOSAR CP的支持范围。

(图片摘自安志鹏的直播课)

2017年,为更好地满足集中式架构+SOC时代的高等级自动驾驶对中间件的需求,AUTOSAR联盟推出了通信能力更强、软件可配置性更灵活、安全机制要求更高的AUTOSAR AP平台。

需要强调的是,不同于AUTOSAR CP自身已经包含了基于OSEK标准的OS,AUTOSAR AP只是一个跑在Lunix、QNX等基于POSIX标准的OS上面的中间件——它自身并不包含OS。

结合aFakeProgramer于2020年发表在CSDN上的《为什么要用AP?Adaptive AutoSAR到底给企业提供了一些什么?》一文及东软睿驰安志鹏在2022年春节前的一场直播中讲的内容,AUTOSAR CP与AUTOSAR AP最主要的区别有如下几点:

1).编程语言不同——AUTOSAR CP基于C语言,而AUTOSAR AP基于C++语言;

2).架构不同——AUTOSAR CP 采用的是FOA架构(function-oriented architecture),而AUTOSAR AP采用的则是SOA架构(service-oriented architecture);

3).通信方式不同——AUTOAR CP采用的是基于信号的静态配置通信方式(LIN\CAN...通信矩阵),而AUTOSAR AP采用的是基于服务的SOA动态通信方式(SOME/IP);

4).连接关系不同——在AUTOSAR CP中,硬件资源的连接关系受限于线束的连接,而在AUTOSAR AP中,硬件资源间的连接关系虚拟化,不局限于通信线束的连接关系;

5).调度方式不同——AUTOSAR CP采用固定的任务调度配置,模块和配置在发布前进行静态编译、链接,按既定规则顺序执行,而AUTOSAR CP则支持多种动态调度策略,服务可根据应用需求动态加载,并可进行单独更新。

6).代码执行和地址空间不同——AUTOSAR CP中,大部分代码静态运行在ROM,所有application共用一个地址空间,而在AUTOSAR AP中,应用加载到RAM运行,每个application独享(虚拟)一个地址空间。

这些区别,带给AUTOSAR AP的优势有如下几点——

1).ECU更加智能:基于SOA通信使得AP中ECU可以动态的同其他ECU同其他ECU进行连接,提供或获取服务;

2).更强大的计算能力:基于SOA架构使得AP能够更好地支持多核、多ECU、多SoCs并行处理,从而提供更强大的计算能力;

3).更加安全:基于SOA架构使得AP中各个服务模块独立,可独立加载,IAM管理访问权限;

4).敏捷开发:Adaptive AUTOSAR服务不局限于部署在ECU本地可分布于车载网络中,使得系统模块可灵活部署,后期也能灵活独立更新(FOTA);

5).高通信带宽:可实现基于Ethernet等高通信带宽的总线通信;

6).更易物联:基于以太网的SOA通信,更易实现无线、远程、云连接,方便部署V-2-X应用。

(图片摘自东软睿驰)

当然了,在某些方面,AUTOSAR AP与AUTOSAR CP相比是有一些“劣势”的。比如,AUTOSAR CP的时延可低至微秒级、功能安全等级达到了ASIL-D,硬实时;而AUTOSAR AP的时延则在毫秒级,功能安全等级则为ASIL-B,软实时。

上述区别也导致了两者应用领域的不同:AUTOSAR CP一般应用在对实时性和功能安全要求较高、对算力要求较低的场景中,如引擎控制、制动等传统ECU;而AUTOSAR则应用在对实时性和功能安全有一定要求,但对算力要求更高的场景中,如ADAS、自动驾驶,以及在动态部署方面追求较高自由度的信息娱乐场景。

尽管AUTOSAR AP有种种优点,但总的来说,它目前还不够成熟——主要是信息安全及UCM等模块不成熟。量产车上装AUTOSAR AP的不少,但主要用在娱乐场景,真正用在自动驾驶场景的还很少。

此外,由于SOC+MCU组合的现象会长期存在,因而,在今后相当长一段时间内,AUTOSAR AP都不可能彻底取代AUTOSAR CP——最常见的分工会是,需要高算力的工作交给AUTOSAR AP,而需要高实时性的工作则交给AUTOSAR CP。

(图片摘自超星未来)

2.ROS 2

ROS是机器人操作系统(Robot Operating System)的英文缩写,原生的ROS本是机器人OS,并不能直接满足无人驾驶的所有需求,用作自动驾驶中间件的是ROS 2。

ROS 2与ROS 1的主要区别如下:

(1).ROS 1主要构建于Linux系统之上,主要支持Ubuntu;ROS 2采用全新的架构,底层基于DDS(Data Distribution Service)通信机制,支持实时性、嵌入式、分布式、多操作系统,ROS 2支持的系统包括Linux、windows、Mac、RTOS,甚至是单片机等没有操作系统的裸机。

(2).ROS 1的通讯系统基于TCPROS/UDPROS,强依赖于master节点的处理;ROS 2的通讯系统是基于DDS,取消了master,同时在内部提供了DDS的抽象层实现,有了这个抽象层,用户就可以不去关注底层的DDS使用了哪个商家的API。

(3).ROS运行时要依赖roscore,一旦roscore出现问题就会造成较大的系统灾难,同时由于安装与运行体积较大,对很多低资源系统会造成负担;ROS2基于DDS进行数据传输,而DDS基于RTPS的去中心化的通信框架,这就去除了对roscore的依赖,系统的稳定性强,对资源的消耗也得到了降低。

(4).由于ROS 缺少Qos机制,topic的稳定性与质量难以保证;ROS2则提供了Qos机制,对通信的实时性、完整性、历史追溯等功能有了支持,这便大幅加强了框架功能,避免了高速系统难以适用等问题。

不过,ROS2的QoQ配置较为复杂,目前主要是国外一些专业的大学或实验室在使用,国内仅有极少数公司在尝试;此外,ROS 2的生态成熟度远不如ROS,这也给推广应用带来了不便。

跟AUTOSAR AP一样,ROS 2也是跑在soc芯片上、用于满足高等级自动驾驶的需求的。不过,萧猛在去年的一批文章中却特别强调:当我们称 “ROS/ROS2 为中间件”时,其含义与 “AUTOSAR AP为 中间件”并不是对等的关系。

萧猛的文章称:

当我们说 AutoSar是中间件时,这个中间件是很明确的 L.BSW层语义,即处于计算机OS与车载ECU特定功能实现之间,为 ECU功能实现层屏蔽掉特定处理器和计算机OS相关的细节,并提供与车辆网络、电源等系统交互所需的基础服务;

ROS/ROS2 是作为机器人开发的应用框架,在机器人应用和计算机OS之间提供了通用的中间层框架和常用软件模块(ROS Package),而且, ROS团队认为这个框架做得足够好,可以称作操作系统(OS)了。

ROS 2尽管在功能上跟AUTOSAR AP有不少重叠之处,但两者的思路是不一样的:

(1).从表现形式上看,AUTOSAR AP首先是一套标准,这个标准定义了一系列基础平台组件,每个平台组件定义了对应用的标准接口,但没有定义实现细节,和平台组件之间的交互接口(这些部分留给AUTOSAR AP供应商实现);ROS2则从一开始就是代码优先,每个版本都有完整的代码实现,也定义有面向应用标准API接口。

(2)AUTOSAR AP从一开始就面向ASIL-B应用;ROS 2不是根据ASIL的标准设计的,ROS 2实现功能安全的解决方案是,把底层换为满足ASIL要求的RTOS和商用工具链(编译器)。

ROS 2“过不了车规”似乎已成为一个很广泛的行业共识。但在萧猛看来,ROS2本来就不是为实时域设计的,如果一定要把实时性要求高的车辆控制算法运行在 ROS2中,“那是软件设计的错误,而不是ROS2的问题”。

萧猛认为,只要能补齐 L.BSW层所需要完成的所有功能、补齐 A 轴所有切面要求的特性,ROS 2就能用于自动驾驶量产车。如前段时间刚拿到采埃孚等多家巨头投资的Apex.AI公司基于ROS 2定制开发的Apex.OS就已经通过了最高等级的ASIL D认证。

萧猛说:“这实际上是基于 ROS 2的架构去实现一套 AUTOSAR AP 规范。这可以成为一个单独的产品,投入时间+人+钱可以开发出来,只是看有没有必要,值不值得”。

在具体的实践中,ROS 2跟AUTOSAR AP存在直接竞争关系——尽管对用户来说,并不存在严格意义上的“二选一”问题,但通常来说,若选了ROS 2,就不会选AUTOSAR AP了;若选了AUTOSAR AP,就不会选ROS 2了。

3. CyberRT

Cyber RT是百度Apollo开发出来的中间件,在Apollo 3.5中正式发布。Cyber RT和ROS2是比较像的, 其底层也是使用了一个开源版本的DDS。

百度最早用的是ROS 1,但在使用的过程中逐渐发现了ROS 1存在“若ROS Master出故障了,则任何两个节点之间的通信便受到影响”的问题,所以就希望使用一个“没有中间节点”的通信中间件来代替ROS 1,那时还没有ROS2,所以自己去做了一个Cyber RT。

为了解决 ROS 遇到的问题,Cyber RT删除了master机制,用自动发现机制代替,这个通信组网机制和汽车网络CAN完全一致。此外,Cyber RT的核心设计将调度、任务从内核空间搬到了用户空间。

(图片出处:)

其相对于其他系统,Cyber RT的一大优势是,专为无人架驶设计。百度已将Cyber RT开源,某互联网巨头的自动驾驶团队使用的中间件便是百度开源出来的Cyber RT。

Cyber RT跟ROS 2之间也存在竞争关系。

在谈到AUTOSAR AP、ROS 2与Cyber RT这些中间件的关系时,Vector产品专家蔡守群的解释是:

“不需要很机械地去分类,你可以把AUTOSAR AP, ROS和Cyber RT都想象成一个提供一组中间件的超市,用户可以按需从不同的超市购买,并不是说从一个超市买过一个中间件,就不能从其他超市买了。

蔡守群说:AUTOSAR AP中也包含了对ROS接口的支持。说不准哪天ROS和Cyber RT就会加入AUTOSAR AP的组件,或者 AUTOSAR AP会引入Cyber RT的组件。

4.DDS(通信中间件)

(1)什么是DDS?

在自动驾驶领域,中间件的功能涉及到通信、模块升级、任务调度、执行管理,但其最主要的功能就是通信。当前市场上,无论是Cyber RT还是 ROS,基本上90%的功能就是通信,狭义上说就是通信中间件。

通信中间可以分成开源和闭源的两种。开源的为OPEN DDS、FAST DDS、Cyclone等,闭源的就RTI的DDS和Vector的SOME/IP。DDS的全称为Data Distribution Service ,指一种数据分发服务标准,由对象管理组织(OMG)制定。

DDS能够实现低延迟、高可靠、高实时性的数据融合服务,能够从根本上降低软件的耦合性、复杂性,提高软件的模块化特性。高等级自动驾驶现在基本上都在探索依靠DDS来解决异构通信、低时延等CP解决不了的挑战。

融合了DDS的汽车软件能够更好地运行在下一代汽车的体系架构中,更能降低开发的成本、缩短研发的时间,更快地将产品推向市场。

(2)DDS与ROS 2、AUTOSAR AP之间的关系

ROS 2和Cyber RT的底层都使用了开源的DDS,将DDS作为最重要的通信机制。但也有自动驾驶公司的工程师认为,DDS可以起到替代ROS 2的作用,站在用户的角度看,两者之间其实存在“二选一”的关系。

AUTOSAR CP里一直没有包含跟DDS有关的东西,但AUTOSAR AP在 2018年3月的最新版(版本18-10)里开始支持DDS标准。将DDS与AUTOSAR AP结合使用,不仅可以保证和扩展AUTOSAR AP系统内部互操作性的功能,而且还可以将其开放给来自不同的生态系统(即ROS 2)。

从工程角度来看,将AUTOSAR和DDS结合起来的最大优势是,功能域和网络拓扑不再是对手,而是车辆中的盟友。网络拓扑结构能够更好地适应车辆的物理约束,功能域在物理车辆的顶部提供了一个灵活的覆盖层,这就是所谓的分区体系结构。

当然,DDS仅是通信中间件的一种。关于各类通信中间件之间的异同,我们将在本系列的第二篇做更详细的阐释。

三.AUTOSAR AP的地位正在弱化?

尽管AUTOSAR是当下最有名的自动驾驶中间件,但《九章智驾》在对诸多中间件厂商们的调研中得出一个结论:AUTOSAR在产业链中的地位可能正在弱化。 当然了,那些专注于AUTOSAR系统的厂商们并不认同这一观点。

我们在上文已经提到,随着EE架构从分布式向集中式演进、MCU被SOC取代,CP AUTSAR被AUTOSAR AP、ROS 2和Cyber RT等取代已是大势所趋,在下文,我们主要谈的是“AUTOSAR AP的地位会不会弱化”。

2021年12月中旬,两家AUTOSAR发起公司大陆集团、丰田联合采埃孚、捷豹路虎、沃尔沃、海拉等多家汽车行业龙头企业宣布投资车载操作系统初创公司Apex.AI,而Apex.AI的主力产品Apex.OS则是基于ROS 2发展起来的。

拿到了Apex.AI公司15%股权的采埃孚方面在接受媒体采访时说:“这意味着,我们可以为客户提供AUTOSAR AP的替代方案。”

尽管AUTOSAR AP已经有了标准,但还没有落地。安波福、采埃孚、大陆这些公司提供的方案,仍然是基于AUTOSAR CP标准的接口。事实上,越来越多的OEM不太想完全用AUTOSAR去解决智能驾驶操作系统的问题。

不仅特斯拉没有用AUTOSAR AP,国内的几大造车新势力也没有用(他们用的是AUTOSAR CP+DDS)。甚至,连一些正在转型的传统车企也没打算用AUTOSAR AP。

从产业链中各方的反应来看,AUTOSAR AP“地位不稳”的原因主要有以下几个:

1.使用成本太高

冯占军博士在《AUTOSAR对基础软件开发是喜还是忧?》一文中透露,AUTOSAR的费用通常是“几百万起”,并且,针对不同的域控制器、不同的芯片需要“重复收费”,一般小厂根本吃不消。“可能还没有什么产出,几百万就花出去了”。

除购买成本高外,毕晓鹏和萧猛都提到,AUTOSAR前期的学习难度很大、学习成本也非常高。为了学会如何使用AUTOSAR,企业甚至不得不专门培训一批人,如果受培训的人临时离职了,那培训费用就打了水漂。

2.效率不高

毕晓鹏认为,AUTOSAR AP的配置非常多,它是通过配置加上一部分代码去实现自己的功能,但配置多了之后,效率不高,而且代码臃肿。

3.静态部署与动态部署的理念冲突

毕晓鹏博士提到,AUTOSAR AP其实是从AUTOSAR CP发展而来的,AUTOSAR CP是静态部署,只适用于相对简单的业务逻辑和功能,其代码是固化的,有点像以前的功能手机——功能无法改变,不可能往里面再加一个APP;但AUTOSAR AP有点像现在的智能手机,软件开发人员开发一个APP,跨平台就可以用不同手机上了,这种动态部署的理念和之前的静态部署概念不甚相同,而其方法论却是基于静态部署衍生而来的,因此在实践层面会遇到不少问题。

4.无法满足智能网联的需求

由于云端跟车端所使用的操作系统不一样,AUTOSAR只能负责车内的通信,不能支持车端到云端的通信,因而无法支持车路协同场景(车端跟云端的通信,是通过MQTT、kafka等中间件来实现的)。除此之外,AUTOSAR能否兼容车辆网联化中需要用到的数据平台、通信平台和地图平台,也存在很大的疑问。

毕晓鹏说,在发现了这些问题后,有一些OEM开始逐渐放弃AUTOSAR架构,“转而自己去研发一套更适合动态部署、成本较低的新型软件架构”。

传统车厂是从使用CP过来的,所以在惯性上,他们可能还会考虑AP是否适合智能驾驶,但慢慢地也在尝试转型。如奥迪和TTTech合作做的通信中间件——zFAS,也没有采用AP。

不同于AUTOSAR CP已经是非常标准化的东西,大家用起来没什么问题,AUTOSAR AP现在的标准也不是很完善,每年也在更新,具体AP能发展成什么样,这个谁也不知道,大家更多也是观望的态度。

毕晓鹏认为,AUTOSAR标准并不能很好地支撑自动驾驶应用和创新的发展,因此,我们有必要建立一套更适合中国智能驾驶发展、且自主可控的技术架构和生态体系。

萧猛认为,由于从AUTOSAR CP到AUTOSAR AP一脉相承,一些已经对AUTOSAR形成路径依赖的公司会坚持使用AUTOSAR AP,但在经历过招人难、开发周期长等教训之后,他们有可能转向ROS 2。

当然,以AUTOSAR为主业的公司,显然不会认可上述“涉嫌唱衰”AUTOSAR AP的观点的。

比如,Vector蔡守群就认为,AUTOSAR AP只会越来越重要,因为它是顺应车载技术不断发展的一套规范,覆盖面会越来越广。

东软睿驰茅海燕也认为,要将整车域控制器和智驾域控制器合并到统一的中央计算平台上,没有AUTOSAR AP的支持很难搞定。“不是每家公司都能像特斯拉一样自己从头搭建系统的,目前,最好的工具还是AUTOSAR AP”。

JAVA版的开源OA系统源码,哪里有下载的呀?或者发邮件给我apollo@zhubo.cn!可以用在加分,谢谢!

JAVA开源OA根本就没有,下载DEMO还差不多。。。 我在公司上班,源码的确有,但不能给哦~!

.NET 企业OA源码一搜一大堆~! 不值钱

在自动驾驶的路上,百度Apollo走了多远?

10月10日,百度旗下自动驾驶出租车服务Apollo GO正式在北京开放,北京的朋友们可以通过百度地图或Apollo GO的APP下单,在海淀、亦庄的站点免费进行试乘。

这个新鲜玩意儿引来不少人关注,他们之中有汽车媒体、行业从业者、大学生、极客、科技博主,试乘现场的几个站点都在排队,首日呼单量就超过了2600单,甚至有人等了好几个小时都没有叫到车。

想必,大家都想知道百度所谓的“自动驾驶”已经发展到什么程度了,想亲眼看看,幻想中的RoboTaxi是否已经变成现实。不过呢,虽然百度宣称Apollo GO全面开放,但是这个『全面』还是有很多限制的——

首先,运营时段有限,周一到周日的10:00-16:00,避开了早晚高峰以及夜晚的驾驶环境;其次,车辆已经预设好路线,只能在事前计划好的15个站点上下车(类似摆渡车);再来,车速将限制在60km/h以下;每台车只能在后座乘坐1-2名的乘客,乘坐者年龄符合18-60周岁之间;最重要的是,每辆车都配备有安全员,随时保证接管车辆行驶。

号称超L3赶L4级的自动驾驶,却又给出了这么多的限制条件,百度的Apollo GO究竟能达到什么程度呢?百度在自动驾驶领域中又走了多远呢?

百度的自动驾驶发展到什么程度了?

百度的自动驾驶项目早在2013年开始起步,到2015年就累计投入了200亿元,2017年带着一张北京五环的罚单闯入大众视线。在路试落地北京之前,其无人驾驶出租车已经在长沙、沧州进行过了试运营,接送了超过10万名乘客。

就在一个月前,9月15日,一辆没有安全员的无人驾驶出租车载着百度集团副总裁、智能驾驶事业群总经理李震宇和央视记者,在北京首钢园区内行驶。

同一天,百度CEO李彦宏在“百度世界2020大会”上预测了自动驾驶实现商用化的时间表,“5年之内,自动驾驶汽车将进入全面商用阶段”,“凭借智能交通体系,能够提升15%-30%的通行效率”,“5年之内,中国一线城市就不再需要限行,10年之内就能解决交通拥堵问题。”

雄心壮志的背后,确实是有足够的研发实力和经验来支撑。

就在今年2月27日美国加州管理局DMV公布的2019年自动驾驶路测成绩单中,MPI值(Miles Per Intervention,无人工干预行驶的平均里程数)排名前五的公司中,有三家来自中国(百度、Auto X、小马智行),其中以百度为首,并首次超过美国的Waymo,位居第一名。

另外,在Navigant Research为自动驾驶企业制定的竞争力排名榜单中,百度也首次进入到“Leader”评级,与Waymo与Cruise处于同级。

可以说,百度在自动驾驶领域的研发实力,不仅在国内名列前茅,并且已经得到了全球行业的认可。

Apollo技术具体如何实现呢?

硬件方面,一台Apollo测试车包括工控机IPC(包含专用GPU)、GPS定位系统、IMU惯性系统、CAN总线接口卡、大容量硬盘(数据库)。除了这些基础架构的硬件之外,传感器还包括顶部旋转Lidar(128线)、前向摄像头(双目)、侧向摄像头(单目)、车头/尾Lidar(16线)、车身左右Lidar(16线)、车头/尾毫米波雷达、超声波近身雷达等,基本上是武装到牙齿了。

软件层面,Apollo为定制Linus内核(4.4.32),但没有列出具体的应用软件和数据库等等。地图定位上,Apollo采用了Novotel的GPS和IMU组合定位系统,它们可以利用卡尔曼滤波机制融合,提供足够频次和足够精度的定位和姿态信息,这也是目前最好的定位技术之一。

算法层面,Apollo加入DeepDrive深度学习自动驾驶产业联盟,发布了Apollo 的自动驾驶数据集ApolloScape。通过海量、高质的真实数据,为自动驾驶的算法开发、测试进行迭代更新,百度表示,ApolloScape的数据量做到了国内同类数据集的10倍以上。

软硬件的结合,构成了Apollo的自动驾驶系统。其中,整套系统的核心是工控机IPC,这套配置中具体使用了Neousys 6108GC工控机,配套Nvidia的GTX1080显卡,IPC通过USB和Ethernet接口接收各种传感器送来的数据,经过处理后,再通过PCI接口对接CAN卡最终驱动车辆动作。

由于百度是一件互联网企业,并不具备生产车辆的技术与能力。所以这套辅助驾驶系统选择的载体是林肯的MKZ。

为什么是这款车型呢?这里再简单说明一下。

首先,林肯MKZ的电气化结构比较完善,拥有线控油门、线控刹车、线控转向系统;其次,目前有一家以ADAS工具包为主要产品的Dataspeed公司,将林肯MKZ的CAN总线协议破解并封装成ADAS Kit提供于开发者;再来,福特基于拓展出行服务商的目的,愿意想向自动驾驶公司提供相关接口,是为数不多的可选项之一。

综合以上元素,将林肯MKZ改装为自动驾驶测试车是目前最便捷和最实惠的选择。除了Apollo,英伟达、Pony AI等自动驾驶公司也是采用了林肯MKZ。

总得来说,Apollo凭借这些技术,已经可以实现结构化道路的L3级别,或者称为特定场景、有限场景的L3自动驾驶。从北京的体验者反馈来看,在转弯、变道以及调头,大多数情况下无需安全员手动操作,Apollo都能够平稳完成;前方如有车辆速度过慢,Apollo也会进行变道超车;道路中间突然出现行人时,Apollo能够主动降速等待行人通过再行驶。

不过缺点也存在,由于AI的驾驶“习惯”不够人性,在转向和规避行人时的操作十分生硬,常会强行转弯或骤然刹车,容易产生颠簸,部分乘客人表示出现了轻微晕车的情况。

可以说,百度Apollo的技术实力还是有的,只是还有很大的提升空间。那么在自动驾驶领域处于顶尖位置的车企,他们都是什么水平呢?

其它竞争对手的进度

目前,自动驾驶技术的开发企业主要分为三类,第一类是传统车企或汽车零部件厂商,包括通用、宝马、奥迪、大陆、博世等;第二类是互联网科技巨头,包括谷歌、百度、滴滴、阿里等,其中滴滴同时又是出行平台,在自动驾驶研发和使用中有双重身份;第三类是创业型科技公司,包括Auto X、小马智行等。

这里我们就举两个典型的例子,一个是车企代表特斯拉、一个是Google系的Waymo。而两个例子,也恰好是激光雷达和视觉识别两条技术路线的代表。

先说Waymo,Waymo是Google于2009年1月开启的一项自动驾驶汽车计划,之后于2016年12月从Google独立出来,成为Alphabet公司旗下的子公司。

就在今年初,Waymo宣布其自动驾驶路测超过2000万英里;3月,Waymo宣布获得第一轮外部投资,共22.5亿美元,投前估值达到了1050亿美元,远远超过大众、戴姆勒、通用等一众车企。

对比百度的Apollo GO,Waymo的RoboTaxi更早,于2018年年底在美国凤凰城上线Waymo One服务,这也是全球Robotaxi商用化尝试的开端。今年10月,Waymo宣布在凤凰城进入全无人状态驾驶(无安全员),并面向公众公开提供收费服务,这标志着Robotaxi在技术、商业全面实现上走出了第一步。

因为不生产汽车,Waymo的最大优势集中在算法。它是基于激光雷达为主的解决方案,秉持“交通即服务”的商业模式,重激光雷达、重高清地图,优势是能够快速搭建系统原型,不仅对大数据的依赖程度低,还更容易检测、提取和分割数据,安全上更有保障。但是缺点是,传感器的成本高、拓展性弱、商业化速度慢。

与之相对的是,特斯拉的Autopilot代表的是“汽车即产品”的服务模式,从辅助驾驶逐步过渡到完全自动驾驶,重摄像头、重视觉识别、轻地图。因为需要视觉学习,所以对数据的依赖程度更高,为此特斯拉也有自己的“独门秘籍”——影子模式(号称拥有100亿英里的实测数据),优点是成本更低、拓展性更强、商业化速度更快;缺点是,安全控制上不如激光雷达。

从技术上来啊说,特斯拉是目前唯一一家从软件算法到硬件架构全部自研的车企,其软硬件技术也一直处于行业领先。日经BP社曾在拆解Model 3时得出结论,认为特斯拉在电子架构上已经领先竞争对手6年时间;而大众董事会成员Thomas Ulbrich也承认,特斯拉在电动汽车和开发软件方面领先大众10年。

特斯拉Autopilot的主要优势在于神经网络、海量数据与控制算法,虽然理论技术上与Waymo或Cruise难拉开差距,但是它拥有将算法与车辆控制结合的深厚经验。值得注意的是,特斯拉Autopilot投入市场的策略更加激进,就在这个月,特斯拉宣布推送完全自动驾驶版FSD Beta给少部分目标用户,以实现接近L4级的自动驾驶。

从实测体验来看,FSD Beta大部分时间都可以实现“零干预驾驶”,它可以在路口识别红绿灯以及道路旁的禁令标志,能够根据路口标线以及导航自动选择车道。在通过环岛等复杂路口时,FSD Beta也能自主遵守路口让行规则行驶,并自主避让路边的行人和非机动车。

现阶段,无任何标线划定的狭窄道路对于其它所有驾驶辅助系统而言都是噩梦,但以摄像头为主导的FSD Beta仍然能够胜任,路面的边界、通行路径和两侧停泊车辆全部都能被探测到。即使是在两边停满车辆的停车场路段,FSD Beta仍可识别出几乎所有交通参与者。在夜间测试过程中,FSD Beta的识别能力仍与白天时大致保持相同,依然相当精确。

我们离真正的无人驾驶还有多远?

总得来说,百度Apollo在国内已经属于领先地位,在国际上也处于第一梯队, 但是距离业界领头羊Waymo、Cruise以及特斯拉的Autopilot还有一段距离,这也是百度Apollo之后的前进目标。

那我们离无人驾驶还有多远呢?

这取决于前方的困难何时才被解决。譬如技术上的边角案例(Corner Case)。车辆通过雷达或摄像头采集的数据,上传后供机器进行学习,但是实际行驶中,难免出现一些超出机器的经验范围的路况,这些就是边角案例(如台湾Model 3撞货车的例子)。电动汽车百人会的研究报告指出,如今的无人驾驶技术可处理90%的常规路况,但剩下的10%边角案例影响巨大,需要花费90%的时间解决。

譬如说法律上的责任归属的问题。责任主体在任何法律中,都是一个至关重要的概念。但是自动驾驶技术,模糊了这个概念的划分。如果自动驾驶的车辆不幸发生车祸,责任在于驾驶员?在于技术供应商?还是在于车辆所属品牌?这都是目前都是没有解决的问题(如美国Uber致行人死亡的例子)。

譬如说路权与道路规则的制定。无人驾驶车辆是否和人工驾驶车辆享有同等路权、接受统一管理?它们是否行驶在同样的车道、应用同样的交通规则?

譬如产品本质的变化。自动驾驶将大幅提高车辆的使用率,从而降低了整个道路的车辆存量,因为届时人不再需要车辆的所属权,只需要拥有车辆的使用权,这样的性质转变,公众是否能够接受?

譬如说技术上的伦理问题。著名的电车难题又会重现,假设一辆自动驾驶的车辆,面对前方路边突然冲出的行人,可进行躲避操作保护行人,但是会牺牲乘客和道路其它车辆的安全,反之则会伤害行人,AI该如何进行判断选择?

自动驾驶发展要面临的问题还有很多,这里不能一一枚举。也因为如此,致力于自动驾驶技术的企业不能操之过急,将一些还未实现的功能点前置宣传,容易造成公众们的误解,甚至引发重大的安全事故。

汽车供应商大陆在2013年做了一项关于自动驾驶调查,结果显示,66%的美国人认为“自动驾驶汽车让我感到害怕”,50%的人认为“该技术无法可靠运行”。而到了2018年,两项调查结果的数据却增加到了77%。原因可能是特斯拉、Uber等公司在自动驾驶测试中一次又一次的交通事故,影响了公众对于自动驾驶的信心。

百度的未来,自动驾驶的未来

李彦宏在2020年百度世界大会上预测,自动驾驶5年后全面商用,城市拥堵将大大缓解,不再需要限购限行,且随着无人驾驶车辆逐渐普及,交通事故发生率也会大大降低,以车路协同为基础的智能交通基础设施建设,将提升15%-30%的通行效率,从而为GDP贡献2.4%-4.8%的绝对增长。

这样的商业期许也是有市场支撑的,RoboTaxi的商业前景已被众多业界人士和机构所看好。麦肯锡公司预测,中国将会是全球最大的自动驾驶市场,到2030年,自动驾驶汽车总销售额将达2300亿美元,基于自动驾驶的出行服务订单金额将达2600亿美元。

市场调研机构艾瑞咨询则预计,随着人工智能、大数据、云计算、5G等核心技术的日趋成熟,自动驾驶正迎来快速发展阶段。到2022年,全球自动驾驶渗透率将达到50%以上,2030年全球自动驾驶渗透率则将增加至70%。

没有人会怀疑自动驾驶的未来,Waymo用千亿估值告诉所有玩家,自动驾驶是一块巨大的蛋糕。但自动驾驶的漫漫征途需要资金、时间与技术,且由于门槛更高,它不像新势力造车般百花齐放,更是行业中真正高手之间的较量。

尽管在技术上存在长尾效应,相关政策法规仍不明确,大规模商业化年限模糊,但作为L4级自动驾驶最受关注、最得资本青睐的应用场景,RoboTaxi已成为热门赛道。

百度、Waymo、特斯拉、Cruise,谁将主导这场战争呢?

本文来源于汽车之家车家号作者,不代表汽车之家的观点立场。

发表评论

评论列表

  • 辙弃零栀(2022-06-14 09:09:58)回复取消回复

    志鹏说,在软硬件解耦、模块化管理后,再遇到问题,就不用整个系统都改,只改相对应的部分就行了。这样,软件的可复用程度就极大地提升了,同时,验证的工作量也会减少许多,整体开发效率也会因此提升。相反,没有中间件的话,应用层就得直接调用操作系统的接

  • 北槐北渚(2022-06-14 13:13:23)回复取消回复

    中间件),并提供统一的库、接口和配置方法,供上层去调用。这样的话,有一部分人专门去做中间件的,而做上层应用的人也不需要考虑跟底层交互的事情。举例说,如果要做一个自动泊车系统,它有各个模块或业务逻辑独立的不同软件,在进行通信、数据交互,或者调用底层资源时,只需要中间件的一个接口就可以实现,其他事情不需

  • 末屿橪书(2022-06-14 06:36:41)回复取消回复

    冯占军博士在《AUTOSAR对基础软件开发是喜还是忧?》一文中就提到了如下两点:底层软件工程师变成了工具人,“只要你去点点鼠标,用工具配合就可以了”,很多原本由自己做的测试也改由供应商来做,进而导致工程师的成就感严重降低;时间久了,工程师从0到1