一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

驾驶系统及其构建方法、车辆、存储介质与流程

2022-12-07 03:25:04 来源:中国专利 TAG:


1.本技术涉及用于车辆的驾驶系统,具体而言,涉及驾驶系统及其构建方法、车辆、存储介质。


背景技术:

2.目前,在自动驾驶领域,越来越多的厂商希望使用linux系统作为承载自动驾驶模块的操作系统,这是因为linux系统上存在大量的开源生态资源可以使用。例如,深度学习框架、视觉识别开源模块等等。但由于linux系统本身达不到高可靠等级,这也导致不少厂商仍然使用商用的微内核操作系统,例如,qnx系统。所以,如何既能使用linux系统的开源生态资源又能达到较高的可靠性成为业内研究的一个方向。
3.有鉴于此,需要提出一种改进的系统架构。


技术实现要素:

4.本技术的实施例提供了一种驾驶系统及其构建方法、车辆、存储介质,用于以可靠的方式构建用于自动驾驶等的设备驱动。
5.根据本技术的一方面,提供一种驾驶系统。所述系统包括:部署于处理器之上的安全基座;虚拟机,其部署于所述安全基座上;驾驶模块,其部署于所述虚拟机上;以及设备驱动模块,其部署于所述安全基座上,其中,所述驾驶模块通过所述设备驱动模块实现对外设的访问。
6.在本技术的一些实施例中,可选地,所述安全基座基于微内核系统。
7.在本技术的一些实施例中,可选地,所述安全基座基于sel4系统或者qnx系统。
8.在本技术的一些实施例中,可选地,所述虚拟机基于linux系统。
9.在本技术的一些实施例中,可选地,所述驾驶模块用于执行自动/辅助驾驶任务。
10.在本技术的一些实施例中,可选地,所述系统还包括部署于所述虚拟机上的功能性框架,并且所述驾驶模块能够调取所述功能性框架。
11.根据本技术的另一方面,提供一种车辆,所述车辆包括如上文所述的任意一种驾驶系统。
12.根据本技术的另一方面,提供一种构建驾驶系统的方法,所述方法包括如下步骤:在处理器之上部署安全基座;在所述安全基座上部署虚拟机和设备驱动模块;以及在所述虚拟机上部署驾驶模块,其中,所述驾驶模块通过所述设备驱动模块实现对外设的访问。
13.在本技术的一些实施例中,可选地,所述安全基座基于微内核系统。
14.在本技术的一些实施例中,可选地,所述安全基座基于sel4系统或者qnx系统。
15.在本技术的一些实施例中,可选地,所述虚拟机基于linux系统。
16.在本技术的一些实施例中,可选地,所述驾驶模块用于执行自动/辅助驾驶任务。
17.在本技术的一些实施例中,可选地,所述方法还包括:在所述虚拟机上部署功能性框架,并且所述驾驶模块能够调取所述功能性框架。
18.根据本技术的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令由处理器执行时,使得所述处理器执行如上文所述的任意一种方法。
19.本技术的一些实施例提供的驾驶系统及其构建方法、车辆、存储介质能够以可靠的方式构建用于自动驾驶等的设备驱动,避免了由于单一模块故障导致整个系统退服,从而提升了车辆的安全性。
附图说明
20.从结合附图的以下详细说明中,将会使本技术的上述和其他目的及优点更加完整清楚,其中,相同或相似的要素采用相同的标号表示。
21.图1示出了根据本技术的一个实施例的驾驶系统;图2示出了根据本技术的一个实施例的构建驾驶系统的方法;图3示出了根据一些实施例的驾驶系统。
具体实施方式
22.出于简洁和说明性目的,本文主要参考其示范实施例来描述本技术的原理。但是,本领域技术人员将容易地认识到相同的原理可等效地应用于所有类型的驾驶系统及其构建方法、车辆、存储介质,并且可以在其中实施这些相同或相似的原理,任何此类变化不背离本技术的真实精神和范围。
23.图3示出了一种基于linux系统的(自动)驾驶系统30的架构图,出于清晰示出本发明原理的角度考虑,图中还示出了处理器和外设等周边模块。如图所示,驾驶系统30基于处理器20(例如,system on chip(soc))部署了一个安全基座(hypervisor)301;在安全基座(hypervisor)301之上部署linux 虚拟机302;设备驱动模块304部署在linux内核303空间内,而驾驶模块305也部署于linux 虚拟机302之上。如图所示,驾驶模块305可以通过设备驱动模块304访问外设40。但是,这种架构存在一个问题:如果设备驱动模块304中的某个设备驱动出现故障,可能导致整个linux 虚拟机302崩溃,也会殃及到用户空间的(自动)驾驶模块305。这对于对安全性要求很高的车辆驾驶应用而言是难以想象的。
24.有鉴于此,以下将提出一种可以用于自动驾驶应用的驾驶系统架构,该架构既可以使用linux作为操作系统内核从而可以使用基于linux的广泛开源生态资源,同时又满足高可靠的需求。
25.根据本技术的一方面,提供一种驾驶系统。如图1所示,除了驾驶系统10(以下简称系统10)之外,图中还示出了处理器20和外设40等周边模块。其中,系统10包括如下层次架构:部署于处理器20之上的安全基座(hypervisor)101,部署于安全基座101上的虚拟机102(其包括内核103)和设备驱动模块104,部署于虚拟机102上的驾驶模块105。其中,驾驶模块105通过设备驱动模块104实现对外设的访问。根据系统10的结构,设备驱动模块104将不再部署于虚拟机102之上,从而防止单一驱动故障导致整个虚拟机102不能正常工作。
26.在本技术的一些实施例中,安全基座101基于微内核系统具体而言,安全基座101可以基于sel4系统或者qnx系统。
27.安全基座(hypervisor)类似于操作系统的操作系统,其可以用于协调多个虚拟
机。在汽车领域,有观察认为hypervisor未来可能全面接管车辆的各种硬件资源,并把他们抽象成逻辑资源池,并按需分配给每个虚拟机。
28.此外,微内核(micro kernel)系统是提供操作系统核心功能的内核的精简版本系统,是一种能够提供必要服务的操作系统内核。其中,这些必要的服务包括任务、线程、交互进程通信(ipc,inter-process communication)以及内存管理等等。而所有服务将在用户模式下运行,处理这些服务同处理其他的任何一个程序一样。因为每个服务只是在自己的地址空间运行。所以这些服务之间彼此之间都受到了保护。
29.正是由于微内核这种构造,使得其具有如下有点,特别适用于实现车辆的自动驾驶功能:其能够使得不同的api、文件系统,甚至不同的操作系统的特性在一个系统中共存。微内核系统非常灵活,当运行一个应用程序时,只需把选定的系统服务加载到系统中即可。而修改了服务以后可以通过联机进行测试;并不需要重新构建或者启动一个新的内核,他们并不影响系统的运行。
30.另一方面,sel4系统或者qnx系统都具有一般微内核系统的优点,因而适用于自动驾驶等场景。其中,sel4 是 l4 微内核家族的成员,它为系统中运行的应用之间的隔离提供了最高级别保障,可以遏制系统某一部分的危害,并防止损害系统中其它可能更关键的部分。sel4 是世界上第一个通过数学方法被证明安全的操作系统内核,并且在安全的基础上还强调高性能。qnx操作系统是一种分布式实时操作系统。该操作系统既能运行于以intel x86、pentium等cpu为核心硬件环境下,也能运行于以powerpc、mips等cpu为核心的硬件环境。qnx操作系统符合posix基本标准和实时标准,使其应用可以方便的进行移植。
31.在本技术的一些实施例中,虚拟机102基于linux系统。在本技术的一些实施例中,系统还包括部署于虚拟机102上的功能性框架,并且驾驶模块105能够调取功能性框架。目前,诸如深度学习框架(例如pytorch)、视觉识别开源模块等可用于自动/辅助驾驶的功能性框架一般都基于linux系统开发。因而为了利用现成的开源资源,本技术的虚拟机102可以为一种linux虚拟机,这将显著降低车辆自动/辅助驾驶的开发成本和开发周期。当然,这里的linux虚拟机也可以是部分功能剪裁后的linux系统。
32.在本技术的一些实施例中,驾驶模块105用于执行自动/辅助驾驶任务。由于系统10如上所述的这些优点,当驾驶模块105在执行自动/辅助驾驶任务时可以调用驱动模块104中具体驱动,以便实现对外设40的访问。即便驱动模块104中的某些驱动出现了故障,整个系统的流程运行并不受到影响。
33.此外,尽管图上没有示出,用于自动驾驶/辅助驾驶的外设40可以为摄像头、激光lidar等各类环境探测传感器。此外,外设40还可以为触摸屏等能够实现人机交互的输入设备,用于实现声音输出的音响系统,用于执行转向、制动、加速的各类机械部件等等。
34.根据本技术的另一方面,提供一种车辆,车辆包括如上文所述的任意一种驾驶系统。本技术中并不限制车辆的布局(例如,轮式车、履带式车等),也不限制车辆的驱动力(例如,电机驱动、汽油机驱动等),本技术的车辆涵盖了各种为本领域当前所知的车辆以及未来开发的车辆。驾驶系统可以承载在车机平台上或者实现为车机平台本身,可以利用车机平台提供的算力和硬件资源进行系统的各个模块的搭建。
35.根据本技术的另一方面,提供一种构建驾驶系统的方法。如图2所示,构建驾驶系统的方法20(以下简称方法20)包括如下步骤:在步骤s202中,在处理器之上部署安全基座;
在步骤s204中,在安全基座上部署虚拟机和设备驱动模块;以及在步骤s206中,在虚拟机上部署驾驶模块,其中,驾驶模块通过设备驱动模块实现对外设的访问。在根据方法20构建的驾驶系统中,设备驱动模块将不再部署于虚拟机之上,从而防止单一驱动故障导致整个虚拟机不能正常工作。
36.需要说明的是,图2中所示的步骤顺序仅是示意性地。在通过方法20构建驾驶系统的过程中可能这些过程是几乎同时实现的,并不存在明显的先后顺序。
37.在本技术的一些实施例中,安全基座基于微内核系统。具体而言,安全基座基于sel4系统或者qnx系统。微内核(micro kernel)系统是提供操作系统核心功能的内核的精简版本,是一种能够提供必要服务的操作系统内核;其中,这些必要的服务包括任务,线程,交互进程通信(ipc,inter-process communication)以及内存管理等等。sel4系统或者qnx系统都具有一般微内核系统的优点,因而适用于自动驾驶等场景。其中,sel4 是 l4 微内核家族的成员,它为系统中运行的应用之间的隔离提供了最高级别保障,可以遏制系统某一部分的危害,并防止损害系统中其它可能更关键的部分。sel4 是世界上第一个通过数学方法被证明安全的操作系统内核,并且在安全的基础上还强调高性能。qnx操作系统是一种分布式实时操作系统。该操作系统既能运行于以intel x86、pentium等cpu为核心硬件环境下,也能运行于以powerpc、mips等cpu为核心的硬件环境。qnx操作系统符合posix基本标准和实时标准,使其应用可以方便的进行移植。
38.在本技术的一些实施例中,继续参见图2,方法20还包括如下步骤:在虚拟机上部署功能性框架,并且驾驶模块能够调取功能性框架。在本技术的一些实施例中,虚拟机基于linux系统。目前,诸如深度学习框架、视觉识别开源模块等可用于自动/辅助驾驶的功能性框架一般都基于linux系统开发。因而为了利用现场的开源资源,本技术的虚拟机102可以为一种linux虚拟机。当然,这里的linux虚拟机也可以是部分功能剪裁后的系统。
39.在本技术的一些实施例中,驾驶模块用于执行自动/辅助驾驶任务。由于通过方法20构建的驾驶系统具有如上所述的这些优点,当驾驶模块在执行自动/辅助驾驶任务时可以调用驱动模块中具体驱动,以便实现对外设的访问。即便驱动模块中的某些驱动出现了故障,整个系统的流程运行并不受到影响。
40.方法20的其他方面可以参照上文描述的系统10的相应内容开展,相关内容一并引用于此,限于篇幅本文在此不再赘述。
41.根据本技术的另一方面,提供一种计算机可读存储介质,其中存储有指令,当所述指令由处理器执行时,使得所述处理器执行如上文所述的任意一种构建驾驶系统的方法。本技术中所称的计算机可读介质包括各种类型的计算机存储介质,可以是通用或专用计算机能够存取的任何可用介质。举例而言,计算机可读介质可以包括ram、rom、eprom、e2prom、寄存器、硬盘、可移动盘、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码单元并能够由通用或专用计算机、或者通用或专用处理器进行存取的任何其他临时性或者非临时性介质。如本文所使用的盘通常磁性地复制数据,而碟则用激光来光学地复制数据。上述的组合也应当包括在计算机可读介质的保护范围之内。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立
组件驻留在用户终端中。
42.如上文所介绍的,目前业内普遍的方案是把设备驱动放到linux 的内核空间,这样如果其中一个设备驱动出现故障就可能导致整个系统瘫痪。根据以上一些实施例,驾驶系统可以基于soc部署一个sel4作为hypervisor,而sel4是经过形式化验证没有bug的微内核。此外,还在sel4上上部署linux 虚拟机,设备驱动部署在sel4用户进程。如果某个设备驱动故障,只是部署该设备驱动的用户进程崩溃,而不能导致整个系统崩溃,从而达到故障隔离的效果,极大提升整个系统的可靠性。自动驾驶软件通过sel4上device driver访问外设。
43.以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此。本领域的技术人员可以根据本技术所披露的技术范围想到其他可行的变化或替换,此等变化或替换皆涵盖于本技术的保护范围之中。在不冲突的情况下,本技术的实施方式及实施方式中的特征还可以相互组合。本技术的保护范围以权利要求的记载为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献