百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比

百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比

参会请扫描图中二维码


四大自动驾驶软件开源平台分别是百度的阿波罗、Autoware基金会的Autoware、英伟达的Drive(主要是DriveWorks)和大陆汽车子公司Elektrobit的EB robinsand Predictor。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


上图是自动驾驶软件栈,以NXP的二代蓝盒子为硬件基础,除了英伟达的DriveWorks无法支持,大部分都支持。这四大自动驾驶软件开源平台最大的区别在于底层,最上层的应用模块差别不大。硬件系统方面,阿波罗和英伟达都推荐64位x86指令集的CPU加英伟达GPU架构。Autoware主要使用英伟达的AGX Xavier或PX2,也就是推荐ARM的V8指令集架构CPU。当然,也支持64位x86指令集的CPU加英伟达GPU架构。EB robins一开始就针对车载嵌入式系统,自然推荐使用ARM架构。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


毫无疑问,百度的阿波罗是热度最高的自动驾驶开源平台,139家合作伙伴几乎囊括全球各大车厂和Tier-1,39万行代码都在GitHub上。2017年4月推出的阿波罗平台,目前已经迭代到5.0版。

阿波罗最大改变是3.5版放弃传统的ROS,转用自己开发的CyberRT。自动驾驶系统的底层OS除英伟达有用QNX外,大部分都用Linux,中间件大部分都用ROS。ROS这个开源社区拥有众多丰富的经过验证的免费应用软件,避免了从头开发的天量工作量,大大缩短研发成本和时间。但是Linux 本身是一个通用系统,内核中的调度器对上面的算法业务逻辑并不清楚。它只是在尽量满足公平的情况下让大家都得到调度。所以,ROS Node运行顺序并无任何逻辑。但本质上自动驾驶是一个专用系统,任务应按照一定的业务逻辑执行。特别是传统车厂,对手工代码排斥,对逻辑结构异常重视,他们的研发人员有些甚至不会用Python,研发人员的任务就是设计安全合理的逻辑结构。逻辑结构是保证安全的最重要步骤,至于手工代码,bug是无法避免的,用模型生成代码才是最可靠的。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


ROS 的主要挑战之一是没有调度,为了解决 ROS 遇到的问题,Cyber RT 的核心设计将调度、任务从内核空间搬到了用户空间。调度可以和算法业务逻辑紧密结合。之所以能这么做,主要是“协程”的运用。线程分为内核态线程和用户态线程,用户态线程需要绑定内核态线程,CPU并不能感知用户态线程的存在,它只知道它在运行1个线程,这个线程实际是内核态线程。用户态线程实际还有个名字叫协程(co-routine),为了便于区分,我们使用协程指用户态线程,使用线程指内核态线程。协程跟线程是有区别的,线程由CPU调度是抢占式的,协程由用户态调度是协作式的,一个协程让出CPU后,才执行下一个协程。

协程是个好东西,不少语言支持了协程,比如:Lua、Erlang、Java(C++即将支持),还有库支持协程,比如C语言的coroutine、Kotlin的kotlinx.coroutines、Python的gevent。协程的有点是一是上下文(子程序)切换效率很高,因为切换对于内核来说是无感知的,不需陷入内核空间,其切换开销基本和函数调用差不多;线程越多,协程的优势越明显。二是协程的时间开销是确定的,汽车领域最注重的就是可确定性,深度学习和传统以太网就无法实现可确定性。三是能用同步的风格写异步的逻辑。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


协程和线程有3种映射关系:第一种,多个协程绑定1个线程,优点就是协程在用户态线程即完成切换,不会陷入到内核态,这种切换非常的轻量快速。但也有很大的缺点,1个进程的所有协程都绑定在1个线程上,一是某个程序用不了硬件的多核加速能力,二是一旦某协程阻塞,造成线程阻塞,本进程的其他协程都无法执行了,根本就没有并发的能力了。这种映射最好设计。

第二种是1个协程绑定1个线程,协程的创建、删除和切换的代价都由CPU完成,代价太高。第三种是多个协程绑定多个线程,这样可以发挥多核CPU的性能,也对CPU利用效率很高,多个线程之间的调度还是要进入到内核态,不过相比一般的纯多线程还是要好很多。第三种的复杂程度很高,编译起来很难。

Linux中是多对多的模型,用户态线程通过LWP和内核线程绑在一块,LWP是个轻量级的东东,实际执行就是LWP要决定这次带哪个绑在自己身上的用户态进程执行,也就是局部调度。然后CPU再决定让哪个内核线程执行,也就是全局调度。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


上图为英伟达整个自动驾驶领域的软件分布,DriveWorks实际只是其中的最上层,关键的底层DriveOS,英伟达并未开源,因为DriveOS有相当多QNX的贡献,而QNX肯定是要收费的。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


DRIVE AR主要是增强现实,将车载系统所进行的环境感知、路线规划等环节直接映射到车辆显示界面(HUD或中控屏)中。DRIVE IX主要是车内人机交互,包括手势识别,语音识别和唇语读出,头部姿态追踪,眼球追踪。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


上图为DriveWorks高级架构。

英伟达不仅抛弃了ROS,连Ubuntu也抛弃了,英伟达使用了微内核的QNX来代替Ubuntu。QNX的微内核结构与阿波罗的CyberRT 异曲同工,同样也是在用户空间做类似于协程的调度。

关于微内核与宏内核,如同RISC和CISC一样长期有争论,也有人认为纯粹的微内核或宏内核(应该叫Monolithic Kernel单内核更准确)不存在,大家都是混合内核。不过QNX应该是非常纯的微内核。众所周知,微内核非常难做,全球成功的微内核只有QNX一家(华为的鸿蒙还未确定能否成功,诺基亚的Symbian已经失败),其余都可以说是宏内核。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


微内核最大特色就是安全性高,因为用户服务是独立于内核服务的,因此任何用户服务崩溃都不会影响到内核服务,内核很大程度上只是转发信息。应用程序调用操作系统的系统调用,或者内核调用其他组件(比如文件系统,驱动程序)的功能都是通过IPC的方式。逻辑越清晰简单,安全性就越高。

其次,微内核具备实时性,其实实时性并非是几乎没有时间延迟,而是有时间可确定。内核空间里,微内核非常精简(QNX内核据说代码仅4000行,12kb),自然延迟很低。但是其他模块和系统功能全部作为独立模块放到用户态空间中运行,功能分散了以后增加了通信的成本,降低了效率。

再次,微内核的扩展性强。添加一个功能,只需要建立一个新的服务到用户空间当中,而内核空间不需要任何的修改。因此,微内核可移植性强、安全并且易于扩展。最后,微内核对虚拟化支持度很高,隔离和再现很容易做。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


英伟达的DriveOS集成了黑莓的64位QNX系统,据称可以达到最高的汽车安全等级,即ASIL-D级。在2019年11月,现代也选择了黑莓的QNX系统做ADAS和自动驾驶的软件平台。英伟达的DriveOS还集成了TTTech的Motion Wise。

TTTech是一家奥地利公司,擅长飞机和汽车的特殊以太网,上汽荣威MarvelX,奥迪A8,NASA猎户座号宇航飞船、波音787等项目,都成功地运用了TTTech核心技术。MotionWise安全软件平台是包含MotionWise服务和第三方软件stack的集成解决方案。Motion Wise运行在多主机环境,其中一个Safety Host通常运行Classic AUTOSAR, 一个或多个Performance Host运行POSIX操作系统。MotionWise支持的Safety Host安全等级可以达到ASIL-D。MotionWise提供了三大核心服务:


1、调度服务(Scheduling Services):时间触发调度和混合策略调度,保证实时性和抗干扰性,达到ASIL-D级标准。


2、通信服务(Communication Services):RTE层,数据同步层,Middleware 层,主干网通信层之间的通信,MotionWise中间层抽象了多核环境的管理。该层不仅实现生产者和消费者之间的零拷贝,并且buffer的实现符合ISO 26262的ASIL-D要求。Middleware 层与以太网传输层一起工作,处理所有设备之间的通信。确定性以太网主干网用于ECU内部通信。


3、时间服务(Time Services):MotionWise时间服务遵循时间感知架构设计。MotionWise的不同实体(例如应用程序和运行这些应用程序的芯片)被同步到同一个时间基准。这是实现ECU全局时间触发调度的前提。

DRIVEOS还全面支持汽车界的自适应Autosar。不过使用英伟达DriveWorks的绝大部分用户还是用传统的Ubuntu。


百度的阿波罗和英伟达的DRIVE都无法摆脱商业化气息,尤其英伟达,必须使用英伟达的GPU。真正的开源且独立是Autoware。

名古屋大学客座副教授,东京大学副教授Shinpei Kato(加藤真平)在2015年首次提出开源算法Autoware。2018年12月,自动驾驶软件公司 Apex.AI、Tier IV(Shinpei Kato是CTO,目前已获得1.3亿美元融资,是自动驾驶软件行业融资额最高的)和开源协作组织 Linaro 96Boards 共同宣布成立 Autoware 基金会。第一届董事会成员包括Shinpei Kato、Jan Becker(Apex)、Zhangyang(中科院AI研究所与Linaro/96Boards)。Linaro 96Boards就是 ARM 联合 Linaro 定义的一个以 Cortex-A 系列处理器开发板为主的 ARM 开放平台规范,取名 96Boards,意在说明囊括了“32 位+64 位”的板卡。

Autoware基金会分三个等级,第一级是Premium,每年会费为5万美元,目前有16家,包括华为/海思,Velodyne,ARM,Linaro 96Boards,LG(提供模拟仿真器),Apex、、Autonomoustuff、Kalray(多核加速器初创厂家)、Parkopedia(停车大数据服务公司)、南京润和软件、streetdrone(英国无人车初创公司)、TierIV、ITD-LAB(双目专家)、esol(日本实时嵌入式系统开发商,全球第三大汽车部件厂家电装持有其20%股份,丰田的视觉系统底层软件平台由其提供,达到ASIL-D级)、MACNICA(日本主要电子产品分销商)、TRI-AD(丰田先进研究院)。Autoware的线控车由丰田提供,为Lexus的LS450H。

Autoware基金会第二级的工业与机构,每年会费1万美元,目前是19家,包括英特尔、爱信科技(丰田关联公司)、中国台湾广达(全球第一大笔记本电脑代工厂)、日立、Xilinx、Cadence、速腾聚创、镭神、禾赛和美国高速公路管理局。最后是非营利组织或大学,每年2000美元会费,包括名古屋大学、open robotics、日本琦玉大学、法国UTBM大学、SEMI和中国台湾工研院IT IS。

毫无疑问,Autoware是ARM鼎力支持的。Linaro背后也主要是ARM,还包括NXP、谷歌、海思、三星、意法半导体、富士通、Cypress、Marvell、索喜、德州仪器和高通。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


Autoware的主要模块,在V2X领域对CAM和DENM已经支持。

目前Autoware是基于ROS2.0的,1.0的主要问题(实时性、master节点、跑不了嵌入式等)基本都解决了。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


ROS1的通讯系统基于TCPROS/UDPROS,强依赖于master节点的处理,可以想像master失效,整个系统崩溃。但是从右边ROS2的架构中我们可以发现,之前让人耿耿于怀的master终于消失了,ROS2的通讯系统是基于DDS的。DDS的全称是Data Distribution Service,即数据分发服务。它是对象管理组织OMG(ObjectManagement Group)在2004年正式发布的一个专门为实时系统设计的数据分发/订阅标准,最早应用于美国海军和星际网络,解决舰船复杂网络环境中大量软件升级的兼容性问题,目前已经成为美国国防部的强制标准,同时广泛应用于国防、民航、工业控制等领域,成为分布式实时系统中数据发布/订阅的标准解决方案。它特别适合通信环境不佳,经常中断,但又要求绝不能出错的场合。ROS2.0删除了master机制,用自动发现机制代替,这个通信组网机制和汽车网络CAN完全一致。当 CAN 总线上的一个节点(站)发送数据时,它以报文的形式广播给网络中所有节点,对每个节点来说,无论数据是否是发给自己的,都对其接收。每个节点都会周期性发广播。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


上图为Autoware的路线图,应该说是Apex的路线图,Apex计划在2020年用自己的产品化的OS取代ROS。另一方面,Autoware的Premium会员esol试图用自己的eMCOS(微内核)取代linux,并跑在嵌入式系统上(micro-ros)。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


不过微内核难度极高,这么多年成功的只有一个QNX,esol是一家年收入不到1亿美元的公司,做微内核资源恐怕不足。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


在瑞萨R-Car H3(4个A57和4个A53,40kDMIPs)上跑Autoware。

最后来看Elektrobit的EB robins and Predictor。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


Elektrobit是大陆汽车的子公司,也是全球最大汽车软件公司。其EB robins完全没考虑非车规级的底层系统。它是高度依赖Autosar的。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


EB robins架构,Elektrobit只做自己最擅长的模块。Elektrobit也有自己完整的自适应Autosar模块。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


EB robins对高精度实时升级地图、ADASIS V3和V2X考虑得最多。地图则来自TomTom的支持。ADASIS协会开发了EB robinos Provider & Reconstructor。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比


Elektrobit自然会继承母公司德国大陆汽车的电子地平线,所谓电子地平线基本可看做类似专用网的V2X。自动驾驶领域原型开发与HiL专家dSpace与Elektrobit关系密切,在其新型ADASIS v3 Horizon Reconstructor Blockset模块组中引入了Elektrobit的模块,EBrobinos Provider提供最新的基于SD和HD地图数据的电子地平线数据源,EB robinos Reconstructor重构并有效存储相关的电子地平线数据。


百度阿波罗、英伟达Drive、Autoware和EB robins四大开源平台对比

考虑到研发资源有限,同时也要考虑成本,EB robinos的目标似乎主要是高速公路的自动驾驶。

综合来看,阿波罗的势力最强,合作伙伴最多,但车规方面和嵌入式系统方面考虑还不够。英伟达在车规方面考虑最周全,但硬件有限制,有封闭性,也未考虑太多嵌入式应用。Autoware考虑嵌入式系统最多,车规方面较少。EB robinos未考虑底层的适配性,应用面窄。




【近期文章】

佐思汽研2020年多用户报告撰写计划表

《周彦武研究特辑:智能驾驶硬件指南》


「佐思研究年报及季报」

主机厂自动驾驶策略研究 | 汽车视觉产业研究 | 低速自动驾驶产业研究 | 商用车自动驾驶产业研究 | 新兴造车企业布局及智能网联功能对比分析 | 汽车MLCC研究报告 | 汽车分时租赁研究报告 | 5G自动驾驶专题研究 | 汽车仿真研究 | 高精度地图产业研究 | 域控制器研究 | 自动泊车与自主泊车研究 | 激光雷达研究 | 毫米波雷达研究 | 处理器和计算机芯片研究 | 红外技术及在夜视和DMS研究 | 中国毫米波雷达市场分析 | 汽车功率半导体研究 | HUD行业研究与供应商竞争力分析报告 | ADAS与自动驾驶Tier1研究 | 商用车自动驾驶研究 | 乘用车摄像头季报 | 自主车厂车联网产品分析 | T-Box市场研究报告 | 汽车网关产业研究 | 乘用车摄像头季报Q2 | 丰田汽车新四化布局 | 宝马集团新四化布局和战略研究 | 全球及中国车载语音行业 | 中国及全球汽车线束、连接器与线缆研究 | 戴姆勒新四化布局和战略研究 | 日产新四化研究 | 本田新四化研究 | 吉利新四化研究 | 大众集团新四化布局和战略研究


「佐思研究月报」

车联网月报 | ADAS/智能汽车月报 | 汽车座舱电子月报 | 汽车视觉和汽车雷达月报 | 电池、电机、电控月报

联系人: 廖棪 13718845418(同微信) 卞亚娟 18600021096(同微信


分享到:


相關文章: