一文聊聊自动驾驶中间件量产落地关键技术
对于初入自动驾驶行业的人来说,各色各样的新型传感器、线控系统、芯片域控制器、算法软件似乎是自动驾驶未来实现的重中之重,对于中间件大多数人可能都不太熟悉,有些甚至从未听说过其存在。但中间件却也是极为重要的一环,它一定程度上决定了自动驾驶这件事能不能真正落地。尤其是随着自动驾驶产业化进程的深入,量产纷纷被各家企业提上日程,越来越多人意识到中间件的重要性和必要性。
何为自动驾驶中间件
中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务,衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。
自动驾驶的中间件,也属于广义上的操作系统,但是它和QNX、Linux这些底层系统并不一样。本质上它是介于上层应用和底层系统之间的一套软件框架,是对软硬件资源进行管理、分配和调度的平台,充当着软件和硬件解耦的关键角色。它为上层的应用软件提供开发和运行所需的环境,方便开发者快速、高效、灵活地开发和集成自动驾驶软件。
中间件的主要任务是负责各类应用软件模块之间的通信以及对系统资源的调度。它的优点,是可以大大降低应用层软件的开发难度,使研发工程师可以完全把注意力集中到功能算法的开发上。总的来说,中间件是整个软件架构的核心组成部分。
自动驾驶为什么需要中间件
中间件存在的最重要的功能便是通过对计算平台、传感器等资源进行抽象,对算法、子系统、功能采取模块化的管理,并提供统一接口,让开发人员能够专注于各自业务层面的开发,无需了解无关细节,从而极大提升算法开发效率。
对于软件开发者来说,智能驾驶中间件使开发者们无需考虑底层的OS内核是什么,也无需考虑硬件环境是什么,即不仅实现了应用软件与OS的解耦,也实现了应用软件与硬件的解耦;而后者则确保了数据能够安全实时地传输、资源进行合理的调度。
在自动驾驶领域,中间件的功能涉及到通信、模块升级、任务调度、执行管理,但其最主要的功能还是通信。通信中间件的引入整体上可以帮助开发人员提高工作效率。
通信中间件初探
通信中间件非常重要,也是目前各家智能驾驶企业非常关注与重视的方向。目前通信中间件主要有SOME/IP,DDS和MQTT。现阶段,SOME/IP和DDS是自动驾驶上用得最多的两类通信中间件。二者都是面向服务的通信协议,都采用了“以数据为中心”的发布-订阅模式。SOME/IP在汽车领域深耕的时间比较长,而DDS则是一个工业级别的强实时的通信标准。
应用在自动驾驶上,DDS具备了高度的灵活性和扩展性、实现软硬件解偶、多种QoS(质量服务策略)、丰富的应用场景等特点,也渐渐被行业人员所了解与接受。事实上,DDS和SOME/IP尽管存在竞争关系,但也是可以共存的。有的主机厂既用了DDS,也用了SOME/IP,只是使用的场景不一样——有时候是在一个核上的进程之间进行通信,有时候是核与核之间进行通信,有的时候是域控制器和其他的车载娱乐系统进行通信等等。
目前在多数企业中,由于SOME/IP本身就是为汽车行业制定的通信标准,因此SOME/IP在之前的使用率会稍微高一些,DDS也是近两年才慢慢被多家的造车新势力和传统主机厂所采纳。但从趋势来看,未来,DDS的市场占有率较于SOME/IP是具备明显优势的。
中间件在自动驾驶中的机会
开发自动驾驶的中间件,就像是修公路一样,如果修得宽、修得好,那它能通行的车也会越多,通行的速度也会更快。如果中间件能打下一个好的基础,那么整个自动驾驶方案开发和应用的质量、效率也都会有不错的保障。
自动驾驶需要接收不同的传感器信号,然后进行感知、规划和控制,并由转向、油门和制动这些硬件系统来完成整个过程。所以自动驾驶的中间件会涉及到ECU管理、传感器管理、车辆模型管理、通信管理、任务管理、数据管理、安全管理、诊断管理、OTA管理、可视化管理。
自动驾驶的应用有着高可靠、高性能、高并发以及模块化的需求特征,而实时、安全、开放的自动驾驶中间件平台是实现这些的关键之一,同时也是推动“软件定义汽车”的重要基础。
在现阶段,国外厂商和开源中间件占据了绝大部分的市场份额。但是未来国产第三方软件厂商的机会正在来临。由于中间件行业特殊,多数时候需要针对不同客户的不同需求进行针对性的改造与适配,这对于国外厂商来说技术支持很难跟上,往往只是提供一系列不可更改的整套解决方案,对于开发者非常不友好。国产厂商可以抓住这个痛点,来更好地服务好客户,从而打开国产化的大门。
总结
对于想要量产智能驾驶功能的主机厂来说,中间件是必不可缺的,而自研不仅耗时耗力,消费者也很难直观感受到其成果,因此最好的方法便是与第三方软件厂商合作,而自身专注于智能驾驶算法功能的实现上。而随着中间件标准的逐渐规范,客户的逐渐增多,中间件未来的前景也非常光明,作为自动驾驶落地的关键技术,将会引来越来越多厂家的关注。