新闻资讯

软件定义汽车的时代,汽车行业软件工程师发展前景如何?我们需要哪些软件能力
2020-05-11 16:20:47来源:100唯尔

  汽车软件工程师在英国是归类在政府紧俏人才列表上的。这个意味着什么?当年偶然机会看到外媒开始捕捉到一些关于智能汽车,无人驾驶,车联网等于我来说新世界的新芽,突然觉得,汽车制造业这条大船好像要开始转移航向并且加速了。后来通过各种途径了解到了国外各大车企确实开始对汽车实现网络化电子化智能化。

  2019年,全球范围内先后至少有6起特斯拉汽车自燃事件,其中最轰动的是发生在上海的那起:4月21日,在上海的地下车库停放的Model S无征兆自燃事件将特斯拉送上舆论热点。在初步判断为电池短路问题后,特斯拉官方也做出了最快的应对:于5月开展了旨在“保护电池,改善电池耐用度”的2019.16.1和2019.16.2版软件升级。随后至今的数月当中,Model S自燃的事故数量大大降低,软件升级起到了立杆见影的效果。

  没有召回汽车,甚至没有提醒车主注意事项,特斯拉只进行了一次例行公事的OTA升级就很好地渡过了这次危机,软硬件协调能力令人侧目。

  特斯拉所展现的软件能力,已经成为广大主机厂们普遍的追求;而塑造自身软件能力的行动,则正在汽车产业内广泛地落地。

  汽车产业井喷的软件工程师需求

  根据美国电气和电子工程师协会与IHS咨询公司报告,上世纪80年代初,一辆轿车的电子系统只有5万行代码,而现在高端豪华汽车的电子系统就有6500万行程序代码,提升了1300倍。即便已到达近亿的数量级,大陆汽车集团总裁仍然认为在未来的数年中,这个数字还将翻数倍甚至十倍!

  汽车软件如此重要,汽车产业上下游也理所当然地将软件能力提升到战略地位:大众集团计划在未来的五年当中,不惜花费研发投入的50%来“生产”整辆汽车代码中的60%,为此需要将其软件团队数量扩容到5000人;而在3年前,零部件巨头博世就制定了面向未来的3S战略,Software便是3大核心之一;大陆汽车CEO则认为,面向未来,大陆集团的整个工程师团队都应该具备软件背景。

  那么目前的汽车产业需要工程师们具备怎样的软件能力呢?产业变局中的每条赛道究竟是个怎样的现状呢?下文将试图针对以上问题做出回答。目前最热门的汽车创新领域都在软件部分或者是由软件控制的系统。从细节来说,在欧洲每年不同公司内部,公司与公司之间,和学校之间,还有政府投资的,关于软件的非商业研发项目就已经不计其数。在硬件高度同质化的今天,不同厂商之间主要拼的其实就是软件和系统集成效果。

  而一个小小的硬件改动,无论是添加一个传感器,控制阀,或者其他执行机构,在控制软件上都有无限改进的可能:比如从简单的开环控制到闭环,从简单的闭环到具有深度的自学习。 最新汽车软件相关的流程,规范,例如ASpice,ISO 26262 以及 Autosar 的推进,也让汽车软件在未来从软件质量和研发效率上具有巨大的改进空间。

  1. 硅谷科技巨头主宰的自动驾驶软件能力

  自动驾驶系统需要在感知周边环境、明确自身道路位置之后即刻做出操作决策,前者涉及传感器的物理特性,而后者则是车辆的机械驱动行为,实现两者之间的高效联动,就需要软件能力。 实现这一高效联接在实际工作中极其复杂。对于软件工程师而言,无论是要对现有车辆进行自动驾驶改装还是从头开始建造自动驾驶汽车,都需要做很多工作。他们不仅需要对车辆硬件上数亿行代码进行编程,而且还需要明确使用哪种语言,哪种工具和平台来开发,部署,优化和管理自动驾驶汽车软件和硬件。

  为了探寻上述几个问题的答案,我的日常分析所梳理了陈列在28家自动驾驶汽车公司官网的招聘信息,将其中包括类似于自动驾驶汽车“engineer”或“development”的内容做了筛选,发现几乎所有的岗位都需要具备C++面向对象编程、Linux开源操作系统和Python高级编程语言三种关键能力,除此之外,掌握诸如Simulink、matlab以及git等工具的使用也是很大的加分项。

  硅谷的科技企业掌握了自动驾驶软件领域的关键人力资源,与传统汽车巨头们相比,这些科技企业拥有着在在人工智能算法及软件实现领域的竞争优势,存在着先天不足的硬件能力。然而汽车产业严重的产能过剩使得硬件能力的获得变得足够廉价,互联网科技巨头们得以更加容易地开展自动驾驶领域的研究:Waymo如火如荼地在加州进行着商业化运作的尝试,无时无刻地威慑着汽车巨头们。

  与Waymo竞争,汽车巨头们需要着力提升的就是自动驾驶算法与软件的开发、集成、优化与测试验证。一个满足这一需求的自动驾驶工程师需要在感知传感器融合、环境建模、轨迹规划及行为预测当中的一个或多个领域有相关建树。而具备这种条件的人才大多数集中在硅谷,也促使各大汽车厂商纷纷在硅谷安营扎寨,招兵买马,如下图所示:

  2. 互联网与OEM争夺最激烈的车联网

  相比于自动驾驶的极端技术密集、资金密集性而言,车联网(Connected Car)的可实现性要强很多。仔细分析车联网领域众多解决方案,可以将其大致分为三种类型:

  1. 简单一些如腾讯AI in car、百度DuerOS将智能导航、语音交互、云服务等功能做成类似手机app的形式,在应用层通过调用系统已有的车辆服务接口实现相关功能;

  2. 深入一些像吉利GKUI、比亚迪DiLike等基于自身需求对应用层、框架层和汽车服务层进行定制,更下层则沿用裁剪后的Android组件,是希望自研操作系统,而不被互联网绑架的汽车企业的首选;

  3. 最深入的要属阿里巴巴的AliOS那样,基于Android系统,对其内核、硬件驱动、系统服务等底层进行重构。重写硬件抽象层和相关的资源调度模块,并根据不同的底层硬件,对系统进行有针对性的优化,形成一个整体的打包解决方案。

  正如第二点所说,大型的汽车制造商都不会坐视被外界互联网科技企业绑架,不同程度地自研车联网操作系统可能是其软件转型战略的重要组成部分。比如大众汽车斥巨资正在开发的全新操作系统vw.OS,其中很重要的一个目标就是基于自身需求对应用层、框架层和汽车服务层进行定制,以确保实现全新电子架构、满足OTA升级需求以及并掌握核心的数据资源。

  与自动驾驶钟爱C++与Python不同的是,车联网更倾向于使用Java作为其实现手段。作为整个物联网技术领域最流行的编程语言,从后端编程到Android的移动应用,从IoT网关到IoT云平台,java都是当之无愧的第一选择。 使用Java进行物联网开发的一个主要好处是便携性,Java没有任何硬件限制,这意味着软件工程师们可以在计算机上编写和调试Java代码,并将其部署到几乎任何运行Java虚拟机的设备上。出于这个原因,许多公司选择聘请Java开发人员进行车联网项目。

  3. 分布式汽车电子系统的集成化演进

  正常的一部高尔夫轿车,需要将200多个供应商参与完成的70个控制单元装配到全车各处以实现其发动机热效率、安全功能以及娱乐功能等等;更加高端的汽车需要上百个这样的控制单元。这么复杂的电子系统显然不适合于OTA的普及。例如原先计划在9月法兰克福发布的高尔夫第八代产品因电子模块升级、系统协同工作、售后网络的配套等问题促使大众决定将这款产品的发布推迟到了明年2月,大众的OTA难产也侧面显示了复杂分布式的弊端与集成式发展的必要性。

  将多个ECU功能集中到单个超强ECU上,打造高性能ECU成为解决上述复杂性的关键办法。例如大陆集团通过把原先分散在雷达、摄像头等传感器小系统中的AEB、ACC、LKA等算法整合到新开发的辅助及自动驾驶控制单元ADCU中,降低电子架构复杂性的同时实现了L3级别自动驾驶对更精确全面定位和环境感知的需求。

  在大陆集团内部,甚至整个汽车电子领域中,着力推动汽车电子集成化的关键角色要属全球知名汽车软件公司Elektrobit了(2015年大陆集团斥资6.6亿美元收购) ,该公司有一项核心业务就是基于面向未来的自适应AUTOSAR和新的汽车电子电气架构,帮助车企打造高性能ECU。如上图所示便是汽车电子大厂恩智浦正在打造的基于域的全新汽车电子架构,而承载这一架构的便是采用了Elektrobit自适应Autosar开发的S32高性能ECU。

  上图显示了几乎汽车全身的ECU都一个个嵌入到汽车内部的专用计算机系统。这些嵌入式系统由嵌入式处理器、嵌入式操作系统及相关软件等几部分组成。如计算机、智能手机等的操作系统一样,汽车上的嵌入式操作系统所有的内核几乎都是C语言编写,而嵌入式开发是在操作系统内部做开发的,这就使得C语言成为天然的选择; 除此之外,C语言具有简洁紧凑、使用灵活的语法机制,很高的运行效率,并能直接访问硬件,这些优点都使得C语言成为嵌入式软件开发的首选语言。

  写在最后:

  自动驾驶、车联网、汽车电子架构,通往汽车工业未来的这三条赛道都在亟待软件能力的注入,而来自硅谷的、互联网圈的、汽车电子的厂商们凭借其在软件领域的竞争优势极力抢占这些赛道的主导权。身为赛道原来主人的主机厂们如果不能及时转身转型,其在汽车价值链中的利润将像当年的PC制造商们一样被软件制造商们无情地吞噬掉。

  文章源于微信公号:我的日常分析所,欢迎关注、交流!