一文读懂自动驾驶软件系统

出处:网络 发布于:2022-07-30 14:07:43

    无人驾驶软件分为车辆端和云端2个部分,其中车辆端运行操作系统和无人驾驶系统,云端提供无人驾驶所需要的各种服务。操作系统主要负责无人车硬件资源(包括传感器、系统总线、网络等)的管理以及计算资源的调度。

    对无人驾驶来说,操作系统的实时性非常重要,操作系统要保证任务能够在规定的时间内得到响应。无人驾驶系统实现了无人驾驶所需要的各种算法,包括定位、环境感知、路径规划和控制等,无人驾驶系统是无人驾驶软件的部分。云平台提供了无人驾驶所需要的各种基础服务,共同构成了整个无人驾驶软件。

    图源 CSDN况祥彬博客
    自动驾驶操作系统
    构建自动驾驶汽车是一项挑战,构建自动驾驶汽车操作系统则更具挑战性。
    让汽车更智能、更安全比建造今天在我们的街道上行驶的任何汽车都要困难得多。自动驾驶汽车操作系统也是如此。选择汽车操作系统是一件大事,因为它需要控制汽车的功能,同时保证乘客和驾驶环境的安全。操作系统是指控制和管理整个计算系统的硬件和软件资源,并合理地组织调度计算机的工作和资源,以提供给用户和其它软件方便的接口和环境的程序集合。
    而自动驾驶的操作系统较之手机电脑的操作系统,显得更加地复杂,对安全性要求也更高。由于无人车的软件算法都运行在操作系统之上,对操作系统主要的要求是稳定性和实时性。稳定性体现在操作系统占用的资源少,出现故障之后系统不会奔溃,能够长时间运行。而实时性要求系统能够及时响应控制指令,工业设备、汽车电子、航空航天等领域都要求采用实时操作系统,因为在这些领域操作系统如果不能及时响应控制指令,会产生很严重的后果。试想一下在驾驶过程中发出了紧急刹车指令,而操作系统没有及时响应,会导致严重的交通事故。
    自动驾驶系统
    前面介绍了实时操作系统,在实时操作系统之上运行的就是无人驾驶中重要的算法实现。算法实现有2种不同的架构,一种是模块化的软件架构,这是目前无人驾驶系统的主流方案,世界上的2个无人驾驶开源社区Apollo和Autoware都是采用这种架构。
    另一种是端到端的软件架构,和模块化的思路不同,端到端的自动驾驶直接采用传感器(摄像头等)的数据作为输入,通过深度学习模型,直接输出控制信号(油门、刹车、方向转角)控制汽车的行驶。端到端的自动驾驶结构非常简单,但性能高效。由于深度学习模型不能安全硬编码,并且具有不可解释性,目前端到端的自动驾驶更多的只是作为研究手段。

    现如今自动驾驶系统一般将的算法模块化划分为感知层、定位层、预测层、决策规划层以及控制层,这一套系统的划分经历过大量的实验及时间检验,可以说是目前无人车中运用广泛的系统之一。模块化划分的好处就是各个模块各司其职,只用专心处理这一层所需要处理的数据,将输出尽可能稳定地传给下一层,使其完美完成自动驾驶操作的闭环,但同时,模块间的信息交互、接口制定、互相配合的难度也是极大的,也造成了目前自动驾驶领域中部分难题难以划定为某一模块的劣势。

    而端到端的自动驾驶方法和人类的驾驶方式很相似,结构简单高效,并不依赖高精度地图,但用于生产实践具有可解释性差的问题,由于自动驾驶过程中的感知、决策和规划都是通过深度学习模型完成的,出现故障后,没法分析具体的原因。并且也不能硬编码安全规则。在算法失控的时候,不能保证安全,而这一条足以使其无法应用于实际的工程应用之中。
    再根据无人车是否联网,可以将无人驾驶车分为单车智能和网联智能,单车智能强调车本身的智能,即使在没有网络的情况下,也具备完全自动驾驶能力。而网联车则强调车和车、车和环境的交互,通过整个车联网来实现更的智能,车本身可以具备自动驾驶能力,也可以只具备部分自动驾驶能力,通过网络获取更的智能。从目前的发展趋势来看,无人驾驶车要更快的落地,单车智能和网联智能二者需要互相融合,共同发展。
    自动驾驶云服务
    云服务是自动驾驶不可或缺的一环,自动驾驶相关的高精度地图、数据存储、模型训练、自动驾驶仿真等都依赖于云服务。目前已经宣布能提供自动驾驶服务的云平台有百度Apollo、亚马逊AWS和华为Octopus,提供的主要功能包括:数据采集和存储、数据Pipeline、模型训练部署以及自动驾驶仿真。
    讲到云服务,首先提到的是数据存储。数据存储首先需要的是一个分布式的文件系统,大数据时代已经被广泛证明了分布式文件系统的好处,主要的好处是容量可以水平扩展,而且可靠性高。自动驾驶每天产生的大量数据都可以通过分布式文件系统保存下来。
    其次是数据处理,深度学习模型训练、高精度地图生成以及自动驾驶仿真等都需要进行数据处理。自动驾驶的数据处理流程包括:收集、清洗、标注、训练和部署。用于自动驾驶模型训练的数据首先需要人工标注,然后再进行模型训练,才能得到能够识别车辆和行人的深度学习模型。数据的自动化标注是很大的挑战,通过工程的方法尽量减少人工标注,可以大幅度提高标注效率。数据处理的另一个挑战是大规模并行处理数据,由于数据量巨大,如何快速的处理数据是瓶颈。
    有很多的分布式计算框架,其中Apache Spark可以构建大规模集群并发执行多个任务,在大规模数据处理中有非常好的实践。能够快速高效的处理数据,是自动驾驶数据处理的竞争力。
    便是地图服务,云端应该实时提供自动驾驶所需要的地图服务。地图包括道路信息和动态信息,道路信息不用再过多介绍,就是传统的道路信息,动态信息是地图上出现堵车或交通管制等需要实时动态更新的信息。在这之中,高精度地图的维护是目前面临的问题,因为涉及到整个地图的采集、加工和标注,实时维护大体量的高精度地图目前来说成本高昂,一些高精度地图服务提供商提出采用众包的方式更新高精度地图。
    总结
    以上便是自动驾驶中软件系统整体框架的全部内容,可以看到,作为目前前沿、火热的技术,自动驾驶中囊括了太多目前的科技,也不难理解为何如此多的人才涌入进该行业中。而要实现真正的无人驾驶,显然也有很长的路需要走,也需要以上的各个方向,都能取得革命性的突破,才能使得自动驾驶不再有短板,也变得越来越安全。

关键词:自动驾驶

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!