用于开发无人驾驶车辆应用的方法和装置与流程

文档序号:15115546发布日期:2018-08-07 19:58阅读:303来源:国知局

本申请涉及计算机技术领域,具体涉及无人驾驶车辆技术领域,尤其涉及用于开发无人驾驶车辆应用的方法和装置。



背景技术:

在无人驾驶车辆的发展中,模拟器起到的作用至关重要,模拟器为无人车的各个模块提供一个离线的集成测试环境。为无人驾驶车辆采集到的场景数据是非常关键的信息,而这些数据要被使用,必须依赖模拟器。

然而,现有技术中的模拟器是在线版或离线版,有时离线版仅是一个云端模拟器的客户端。无论哪一种方式,很难兼顾研发与测试人员快速开发的需要和快速云端大规模模拟的需要。此外,将本地的环境精确的推送到云端也比较复杂,几乎不可能达到。



技术实现要素:

本申请的目的在于提出一种用于开发无人驾驶车辆应用的方法和装置,来解决以上背景技术部分提到的技术问题。

第一方面,本申请提供了一种用于开发无人驾驶车辆应用的方法,所述方法包括:获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果;使用测试结果出现问题的测试场景的测试场景数据,对所述无人驾驶车辆应用执行修复操作,所述容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的镜像层以及用于部署无人驾驶车辆应用的应用代码以及所述无人驾驶车辆应用的运行环境的镜像层;其中,所述修复操作包括:将测试场景数据推入所述容器镜像形成待修复容器镜像并下发至研发或测试终端,以供所述研发或测试终端启动;接收所述研发或测试终端上传的已修复容器镜像,其中,所述已修复容器镜像是研发或测试人员通过所启动的待修复容器镜像对所述无人驾驶车辆应用的应用代码进行修复所生成的镜像。

在一些实施例中,所述方法还包括:在所述多个测试场景上对所述已修复容器镜像中的无人驾驶车辆应用执行回归测试。

在一些实施例中,所述方法还包括:若回归测试发生问题,则继续执行所述修复操作。

在一些实施例中,所述获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果,包括:启动所述容器镜像,对所述无人驾驶车辆应用在模拟器所模拟的多个测试场景下分别进行线下测试;获取多个测试场景下线下测试的测试结果。

在一些实施例中,所述获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果,包括:获取部署有所述无人驾驶车辆应用的无人驾驶车辆在多个测试场景下进行路上测试的测试结果。

在一些实施例中,所述容器镜像为docker镜像。

第二方面,本申请提供了又一种用于开发无人驾驶车辆应用的方法,所述方法包括:接收云端服务器下发的待修复容器镜像,其中,所述云端服务器预先建立有容器镜像,所述容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的容器镜像的镜像层以及用于部署无人驾驶车辆应用的应用代码以及所述无人驾驶车辆应用的运行环境的镜像层,所述待修复容器镜像是所述云端服务器获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果后、将测试时发生问题的测试场景的测试场景数据推入所述容器镜像形成的镜像;启动所述待修复容器镜像;响应于研发或测试人员通过所启动的待修复容器镜像对所述无人驾驶车辆应用的应用代码的修复操作,生成修复后的已修复容器镜像;将所述已修复容器镜像上传至所述云端服务器。

第三方面,本申请提供了一种用于开发无人驾驶车辆应用的装置,所述装置包括:获取单元,用于获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果;修复单元,用于使用测试结果出现问题的测试场景的测试场景数据,对所述无人驾驶车辆应用执行修复操作,所述容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的镜像层以及用于部署无人驾驶车辆应用的应用代码以及所述无人驾驶车辆应用的运行环境的镜像层;其中,所述修复操作包括:将测试场景数据推入所述容器镜像形成待修复容器镜像并下发至研发或测试终端,以供所述研发或测试终端启动;接收所述研发或测试终端上传的已修复容器镜像,其中,所述已修复容器镜像是研发或测试人员通过所启动的待修复容器镜像对所述无人驾驶车辆应用的应用代码进行修复所生成的镜像。

在一些实施例中,所述装置还包括:回归测试单元,用于在所述多个测试场景上对所述已修复容器镜像中的无人驾驶车辆应用执行回归测试。

在一些实施例中,所述装置还包括:继续修复单元,用于若回归测试发生问题,则继续执行所述修复操作。

在一些实施例中,所述获取单元进一步用于:启动所述容器镜像,对所述无人驾驶车辆应用在模拟器所模拟的多个测试场景下分别进行线下测试;获取多个测试场景下线下测试的测试结果。

在一些实施例中,所述获取单元进一步用于:获取部署有所述无人驾驶车辆应用的无人驾驶车辆在多个测试场景下进行路上测试的测试结果。

在一些实施例中,所述容器镜像为docker镜像。

第四方面,本申请提供了又一种用于开发无人驾驶车辆应用的装置,所述装置包括:接收单元,用于接收云端服务器下发的待修复容器镜像,其中,所述云端服务器预先建立有容器镜像,所述容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的容器镜像的镜像层以及用于部署无人驾驶车辆应用的应用代码以及所述无人驾驶车辆应用的运行环境的镜像层,所述待修复容器镜像是所述云端服务器获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果后、将测试时发生问题的测试场景的测试场景数据推入所述容器镜像形成的镜像;启动单元,用于启动所述待修复容器镜像;生成单元,用于响应于研发或测试人员通过所启动的待修复容器镜像对所述无人驾驶车辆应用的应用代码的修复操作,生成修复后的已修复容器镜像;上传单元,用于将所述已修复容器镜像上传至所述云端服务器。

本申请提供的用于开发无人驾驶车辆应用的方法和装置,在云端服务器上获取多个测试场景下对无人驾驶车辆应用进行测试的测试结果,而通过容器镜像实现终端与云端服务器中环境的一致性,从而可以在终端上使用出现问题的测试场景对无人驾驶车辆应用进行修复,从而可以显著加快开发效率。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的用于开发无人驾驶车辆应用的方法的一个实施例的流程图;

图3是根据本申请的用于开发无人驾驶车辆应用的方法的又一个实施例的流程图;

图4是根据本申请的用于开发无人驾驶车辆应用的装置的一个实施例的结构示意图;

图5是根据本申请的用于开发无人驾驶车辆应用的装置的又一个实施例的结构示意图;

图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1示出了可以应用本申请的用于开发无人驾驶车辆应用的方法或装置的实施例的示例性系统架构100。

如图1所示,系统架构100可以包括终端设备101、102,网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

终端设备101可以是具有显示屏的各种电子设备,包括但不限于膝上型便携计算机和台式计算机等等。用户可以使用终端设备101、102对应用程序进行开发或测试。终端设备还可以通过网络103与服务器104交互,以接收或发送消息等。

服务器104可以是提供各种服务的服务器,例如对终端设备101、102上加载的信息提供支持的云端服务器。云端服务器可以向终端设备101、102下发数据(例如容器镜像),也可以接收终端设备101、102上传的信息。

需要说明的是,本申请图2对应实施例所提供的用于开发无人驾驶车辆应用的方法一般由云端服务器104执行,相应地,图4对应实施例提供的用于开发无人驾驶车辆应用的装置一般设置于云端服务器104中;图3对应实施例所提供的用于开发无人驾驶车辆应用的方法一般由终端101、102执行,相应地,图5对应实施例提供的用于开发无人驾驶车辆应用的装置一般设置于终端101、102中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

继续参考图2,示出了根据本申请的用于开发无人驾驶车辆应用的方法的一个实施例的流程200。所述的用于开发无人驾驶车辆应用的方法,包括以下步骤:

步骤201,获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果。

在本实施例中,用于开发无人驾驶车辆应用的方法运行于其上的电子设备(例如图1所示的终端)可以在本地或远程获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果。

在本实施例的一些可选实现方式中,步骤201包括:启动上述容器镜像,对无人驾驶车辆应用在模拟器所模拟的多个测试场景下分别进行线下测试;获取多个测试场景下线下测试的测试结果。

在本实施例的一些可选实现方式中,步骤202包括:启动容器镜像,对无人驾驶车辆应用在模拟器所模拟的多个测试场景下分别进行线下测试;获取多个测试场景下线下测试的测试结果。

在本实施例的一些可选实现方式中,步骤201包括:获取部署有无人驾驶车辆应用的无人驾驶车辆在多个测试场景下进行路上测试的测试结果。

步骤202,使用测试结果出现问题的测试场景的测试场景数据,对无人驾驶车辆应用执行修复操作。

在本实施例中,基于步骤201中得到的测试结果,上述电子设备(例如图1所示的云端服务器)可以首先分析测试结果,确定测试时出现问题的测试场景。之后,电子设备可以获取该出现问题的测试场景数据,并利用测试场景数据对无人驾驶车辆应用执行修复操作。

上述修复操作具体包括以下具体步骤:首先,电子设备可以将测试场景数据推入容器镜像形成待修复容器镜像;其次,电子设备可以将待修复容器镜像下发至研发或测试终端,以供研发或测试终端启动;之后,电子设备接收述研发或测试终端上传的已修复容器镜像,其中,已修复容器镜像是研发或测试人员通过所启动的待修复容器镜像对无人驾驶车辆应用进行修复所生成的镜像。

实践中,在研发或测试终端启动待修复容器镜像时,研发或测试终端可以利用测试场景数据重现出问题的测试场景,研发或测试人员可以在该测试场景下对无人驾驶车辆应用进行调试和编译,从而修复无人驾驶应用的应用代码。之后,研发或测试终端可以使用修复后的应用代码替换出现问题的代码,形成已修复容器镜像。最后,研发或测试终端可以将已修复容器镜像上传至云端服务器,从而云端服务器即可获取到该已修复容器镜像。

在本实施例的一些可选的实现方式中,在步骤202之后,上述方法还包括以下步骤:在多个测试场景上对已修复容器镜像中的无人驾驶车辆应用执行回归测试。该实现方式可以通过回归测试对修复后的无人驾驶车辆应用是否会出现新问题进行验证。

在上一实现方式的一些可选实现方式中,上述方法还包括:若回归测试发生问题,则继续执行修复操作。在该实现方式中,电子设备可以针对已修复容器镜像中的无人驾驶车辆应用,在多个测试场景上执行回归测试;当回归测试出现问题时,则继续执行上述修复操作。该实现方式在回归测试出现问题时,可以反复将测试时产生问题的测试场景推入容器镜像并下发至终端,从而可以使用出现问题的测试场景不断对无人驾驶车辆应用进行调试与编译,最终可以修复问题。

本申请的上述实施例提供的方法,在云端服务器上获取多个测试场景下对无人驾驶车辆应用进行测试的测试结果,而通过容器镜像实现终端与云端服务器中环境的一致性,从而可以在终端上使用出现问题的测试场景对无人驾驶车辆应用进行修复,从而可以显著加快开发效率。

进一步参考图3,其示出了用于开发无人驾驶车辆应用的方法的又一个实施例的流程300。该用于开发无人驾驶车辆应用的方法的流程300,包括以下步骤:

步骤301,接收云端服务器下发的待修复容器镜像。

在本实施例中,云端服务器预先建立有容器镜像,该容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的容器镜像的镜像层以及用于部署无人驾驶车辆应用的应用代码以及无人驾驶车辆应用的运行环境的镜像层。云端服务器可以首先获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果。之后,云端服务器可以将测试时发生问题的测试场景的测试场景数据推入容器镜像形成待修复镜像,并下发至终端。如此,用于开发无人驾驶车辆应用的方法执行于其上的电子设备(例如图1中的终端设备)即可接收到云端服务器下发的待修复容器镜像。

步骤302,启动上述待修复容器镜像。

在本实施例中,基于步骤301所接收到的待修复容器镜像,电子设备可以启动该待修复容器镜像。

步骤303,响应于研发或测试人员通过所启动的待修复容器镜像对无人驾驶车辆应用的应用代码的修复操作,生成修复后的已修复容器镜像。

在本实施例中,步骤302启动待修复容器镜像后,研发或测试人员通过所启动的待修复容器镜像对无人驾驶车辆应用的应用代码进行修复。具体的,启动待修复容器镜像后,电子设备即可在待修复容器镜像生成的容器中使用测试数据重现上述测试过程中出现问题的测试场景,研发或测试人员可以借助该测试场景对无人驾驶车辆应用进行调试与编译,进而修复出现的问题。因此,电子设备可以检测研发或测试人员通过所启动的待修复容器镜像对无人驾驶车辆应用的应用代码的修复操作,从而在被执行修复操作后生成修复后的已修复容器镜像。

步骤304,将已修复容器镜像上传至云端服务器。

在本实施例中,基于步骤304所生成的已修复容器镜像,电子设备可以将已修复容器镜像上传至云端服务器,从而完成对对无人驾驶车辆应用的应用代码的修复。本申请的上述实施例提供的方法,在云端服务器上获取多个测试场景下对无人驾驶车辆应用进行测试的测试结果,而通过容器镜像实现终端与云端服务器中环境的一致性,从而可以在终端上使用出现问题的测试场景对无人驾驶车辆应用进行修复,从而可以显著加快开发效率。

进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种用于开发无人驾驶车辆应用的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图4所示,本实施例所述的用于开发无人驾驶车辆应用的装置400包括:获取单元401、修复单元402。其中,获取单元401用于获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果;修复单元402用于使用测试结果出现问题的测试场景的测试场景数据,对无人驾驶车辆应用执行修复操作,容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的镜像层以及用于部署无人驾驶车辆应用的应用代码以及无人驾驶车辆应用的运行环境的镜像层;其中,上述修复操作包括:将测试场景数据推入容器镜像形成待修复容器镜像并下发至研发或测试终端,以供研发或测试终端启动;接收研发或测试终端上传的已修复容器镜像,其中,已修复容器镜像是研发或测试人员通过所启动的待修复容器镜像对无人驾驶车辆应用的应用代码进行修复所生成的镜像。

在本实施例中,用于开发无人驾驶车辆应用的装置400的获取单元401、修复单元402的具体处理可以参考图2对应实施例中的步骤201、步骤202,这里不再赘述。

在本实施例的一些可选实现方式中,装置400还包括:回归测试单元403。其中,回归测试单元403用于:在多个测试场景上对已修复容器镜像中的无人驾驶车辆应用执行回归测试。该实现方式的具体处理可以参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,装置400还包括继续修复单元404。其中,继续修复单元404用于:若回归测试发生问题,则继续执行上述修复操作。该实现方式的具体处理可以参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,获取单元401进一步用于:启动容器镜像,对无人驾驶车辆应用在模拟器所模拟的多个测试场景下分别进行线下测试;获取多个测试场景下线下测试的测试结果。该实现方式的具体处理可以参考图2对应实施例中相应的实现方式。该实现方式的具体处理可以参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,获取单元401进一步用于:获取部署有无人驾驶车辆应用的无人驾驶车辆在多个测试场景下进行路上测试的测试结果。该实现方式的具体处理可以参考图2对应实施例中相应的实现方式。

在本实施例的一些可选实现方式中,上述容器镜像为docker镜像。该实现方式的具体处理可以参考图2对应实施例中相应的实现方式。

进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于开发无人驾驶车辆应用的装置的一个实施例,该装置实施例与图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。

如图5所示,本实施例所述的用于开发无人驾驶车辆应用的装置500包括:接收单元501、启动单元502、生成单元503和上传单元504。其中,接收单元501用于接收云端服务器下发的待修复容器镜像,其中,上述云端服务器预先建立有容器镜像,该容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的容器镜像的镜像层以及用于部署无人驾驶车辆应用的应用代码以及无人驾驶车辆应用的运行环境的镜像层,该待修复容器镜像是云端服务器获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果后、将测试时发生问题的测试场景的测试场景数据推入容器镜像形成的镜像;启动单元502用于启动待修复容器镜像合;生成单元503用于启动待修复容器镜像;而上传单元504用于将已修复容器镜像上传至云端服务器。

在本实施例中,步骤接收单元501、启动单元502、生成单元503和上传单元504的具体处理可以参考图3对应实施例中的步骤301、步骤302、步骤303和步骤304,这里不再赘述。

下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统600的结构示意图。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为、信息选取单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果的单元”。

作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果;使用测试结果出现问题的测试场景的测试场景数据,对所述无人驾驶车辆应用执行修复操作,所述容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的镜像层以及用于部署无人驾驶车辆应用的应用代码以及所述无人驾驶车辆应用的运行环境的镜像层;其中,所述修复操作包括:将测试场景数据推入所述容器镜像形成待修复容器镜像并下发至研发或测试终端,以供所述研发或测试终端启动;接收所述研发或测试终端上传的已修复容器镜像,其中,所述已修复容器镜像是研发或测试人员通过所启动的待修复容器镜像对所述无人驾驶车辆应用的应用代码进行修复所生成的镜像。或者,上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:接收云端服务器下发的待修复容器镜像,其中,所述云端服务器预先建立有容器镜像,所述容器镜像包括用于部署无人驾驶车辆组件运行所需要的操作系统级组件及第三方依赖库的容器镜像的镜像层以及用于部署无人驾驶车辆应用的应用代码以及所述无人驾驶车辆应用的运行环境的镜像层,所述待修复容器镜像是所述云端服务器获取在多个测试场景下分别对无人驾驶车辆应用执行测试操作的测试结果后、将测试时发生问题的测试场景的测试场景数据推入所述容器镜像形成的镜像;启动所述待修复容器镜像;响应于研发或测试人员通过所启动的待修复容器镜像对所述无人驾驶车辆应用的应用代码的修复操作,生成修复后的已修复容器镜像;将所述已修复容器镜像上传至所述云端服务器。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1