用于自动驾驶仿真系统的测试方法与流程

文档序号:14859809发布日期:2018-07-04 06:27阅读:142来源:国知局
用于自动驾驶仿真系统的测试方法与流程

本发明涉及自动驾驶领域,具体地,涉及一种用于自动驾驶仿真系统的测试方法。



背景技术:

自动驾驶系统的开发都遵从从仿真到实车测试的过程,仿真实验作为一种零风险、快速迭代、可复现的测试方法,为自动驾驶技术上路测试奠定了坚实的基础。仿真可以快速有效的对算法的正确性与性能进行测试。

目前的主要机器人系统的开发依赖于ros(robotoperatingsystem)。ros是一个开放的标准平台,它提供了一系列的软件框架和工具以帮助软件开发者创建机器人应用软件。ros主要依附于linux操作系统。若在linux下进行全流程的仿真,需要花费大量的时间和精力进行仿真相关的基础工作的搭建,例如:建立一个与真实环境相似的道路环境,建立相匹配的传感器,建立接近真实状况的汽车动力学模型。从无到有搭建满足要求的仿真系统需要花费大量的时间,延误了核心算法开发时间,是现在开发自动驾驶系统的重要障碍。由于自己开发需要花费大量的人力物力,使用一款成熟的商用解决方案是一条捷径。目前比较成熟的商用仿真环境是prescan和carsim,然而这两者都是在windows操作系统下的仿真软件,linux下并没有成熟的商用软件。正因为此限制,开发人员通常的解决方案是在windows下开发一套算法,在仿真环境中进行验证。一旦验证通过,重新再linux环境下基于ros的接口进行算法的移植。这样的开发方式大大增加了开发量,也很难保证在移植的过程中是不出现错误。



技术实现要素:

本发明的目的是提供一种用于自动驾驶仿真系统的测试方法,其可实现结合仿真软件直接进行仿真调试,确认待测试的仿真系统的可靠,以确保待测试仿真系统和真实系统可达到无缝切换。

本发明提供一种用于自动驾驶仿真系统的测试方法,该方法包括:在第一操作环境下的第一自动驾驶仿真系统的仿真环境生成模块生成车辆仿真环境,该车辆仿真环境包括虚拟车辆、虚拟传感器以及虚拟场景;该仿真环境生成模块根据该虚拟传感器生成的传感器数据和设定测试目标生成第一控制指令,并将该第一控制指令应用到所述虚拟车辆以使得该虚拟车辆在所述虚拟场景中运行;该第一自动驾驶仿真系统的数据转换接口读取所述传感器数据并将所述传感器数据转换成在第二操作环境下的第二自动驾驶仿真系统可识别的传感器数据;所述第二自动驾驶仿真系统接收该可识别的传感器数据,根据该可识别的传感器数据与所述设定测试目标生成第二控制指令,并将该第二控制指令发送到所述数据转换接口;所述数据转换接口接收该第二控制指令,并将该第二控制指令转换成所述仿真环境生成模块可识别的控制指令;所述仿真环境生成模块将该可识别的控制指令应用到所述虚拟车辆以使得该虚拟车辆在所述虚拟场景中运行。

可选地,该方法还包括:如果所述可识别的控制指令应用到所述虚拟车辆之后所述虚拟车辆在所述虚拟场景中运行的结果达到所述设定测试目标,则确认所述第二自动驾驶仿真系统针对该设定测试目标被验证成功。

可选地,该方法还包括:针对不同的设定测试目标确认所述第二自动驾驶仿真系统是否被验证成功。

可选地,该方法还包括:在针对所有的设定测试目标确认所述第二自动驾驶仿真系统被验证成功之后,将该第二自动驾驶仿真系统直接应用于实际车辆。

可选地,所述第一操作环境是windows操作环境,所述第二操作环境是linux操作环境。

可选地,所述仿真环境生成模块是基于prescan的,所述数据转换接口包括:prescan-matlab接口,用于读取所述虚拟传感器生成的传感器数据或接收基于prescan的所述仿真环境可识别的控制指令;以及matlab-ros接口,用于将所述传感器数据转换成在linux操作环境下的基于ros系统的所述第二自动驾驶仿真系统可识别的传感器数据并发送所述可识别的传感器数据或接收所述第二控制指令并将该第二控制指令转化为基于prescan的所述仿真环境可接收的控制指令。

通过上述技术方案,通过上述技术方案,第一自动驾驶系统的仿真环境生成模块生成车辆仿真环境,通过其数据转换接口将仿真环境中虚拟传感器的数据转换成第二自动驾驶仿真系统可识别的传感器数据并将该可识别的传感器数据传到第二自动驾驶仿真系统,第二自动驾驶仿真系统根据该可识别的传感器数据和设定测试目标生成控制指令并将该控制指令通过数据转换接口转化为仿真环境生成模块可识别的控制指令并将其应用到车辆仿真环境中的虚拟车以验证第二自动驾驶仿真系统的可靠性,以确保第二仿真系统和真车的真实系统的无缝切换。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据本发明的实施方式提供的用于自动驾驶仿真系统的测试系统的结构框图;

图2是根据本发明的另一实施方式提供的用于自动驾驶仿真系统的测试系统的结构框图;

图3是根据本发明的另一实施方式提供的用于自动驾驶仿真系统的测试系统的结构框图;

图4是根据本发明的实施方式提供的用于自动驾驶仿真系统的测试方法的流程图;

图5是根据本发明的另一实施方式提供的用于自动驾驶仿真系统的测试方法的流程图;以及

图6是根据本发明的实施方式提供的自动驾驶仿真系统的测试与应用示意图。

附图标记说明

1第一自动驾驶仿真系统2仿真环境生成模块

3数据转换接口4第二自动驾驶仿真系统

5prescan-matlab接口6matlab-ros接口

7真实车辆

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据本发明的实施方式提供的用于自动驾驶仿真系统的测试系统的结构框图。如图1所示,该测试系统包括在第一操作环境下的第一自动驾驶仿真系统1,其能够对被测试车辆进行仿真操作。该第一自动驾驶仿真系统1包括仿真环境生成模块2和数据转换接口3。仿真环境生成模块2可以生成车辆仿真环境,该车辆仿真环境包括虚拟车辆、虚拟传感器以及虚拟场景,并可根据虚拟传感器生成的传感器数据和设定的测试目标生成第一控制指令并将该第一控制指令应用到仿真环境中的虚拟车辆以使得该虚拟车辆在虚拟场景中运行。数据转换接口3可用于读取仿真环境中虚拟传感器的传感器数据并将其转换成在第二操作环境下的第二自动驾驶仿真系统可识别的传感器数据。第二自动驾驶仿真系统接收该可识别的传感器数据,并根据该可识别的传感器数据和设定的测试目标生成第二控制指令并将该第二控制指令发送到数据转换接口3,数据转换接口3接收该第二控制指令并将其转化为仿真环境生成模块2可识别的控制指令,仿真环境生成模块2将其可识别的控制指令应用到虚拟车辆以使得该虚拟车辆可以在虚拟场景中运行。

在根据本发明提供的实施方式中,如果仿真环境生成模块将其可识别的控制指令应用到虚拟车辆之后,虚拟车辆在虚拟场景中运行的结果达到设定的测试目标,则第二自动驾驶仿真系统针对该测试目标被验证成功。除此之外,还可设定不同的测试目标,将第二自动驾驶仿真系统针对不同的测试目标进行测试。

此外,在根据本发明提供的实施方式中,该测试系统还可包括第二自动驾驶仿真系统,如图2所示。图2是根据本发明的另一实施方式提供的用于自动驾驶仿真系统的测试系统的结构框图。图2所示的测试系统与图1所示的测试系统的不同之处在于,包括第二自动驾驶仿真系统。

在根据本发明提供的实施方式中,第一操作环境可以是windows操作环境,第二操作环境可以是linux操作环境。仿真环境生成模块可以是基于prescan的,也可以是基于carsim的,prescan和carsim是比较成熟的商用仿真软件。若仿真环境生成模块是基于prescan的,数据转换接口包括prescan-matlab接口和matlab-ros接口。prescan-matlab接口为prescan和matlab之间交互的接口,matlab-ros接口为matlab和ros之间交互的接口,接口是一种应用程序编程接口。prescan系统与ros系统之间不能直接进行信息的传输,但是prescan系统和ros系统都可以与matlab对接,因此可以考虑使用matlab作为它们之间的信息中转站,即可以使用prescan-matlab接口和matlab-ros接口在prescan与ros之间传输信息。prescan-matlab接口和matlab-ros接口可以是使用所属领域技术人员所知的方法(例如编程方法)来实现的,本文对此不多做赘述。

图3是根据本发明的另一实施方式提供的用于自动驾驶仿真系统的测试系统的结构框图。如图3所示,该测试系统包括第一自动驾驶仿真系统1和第二自动驾驶仿真系统4,第一自动驾驶系统1包括仿真环境生成模块2和数据转换接口3,数据转换接口3包括prescan-matlab接口5和matlab-ros接口6。在该实施方式中,第一自动驾驶仿真系统1是在windows操作环境下的,第二自动驾驶仿真系统4是在linux操作环境下的,仿真环境生成模块2是基于prescan的。在该实施方式中,基于prescan的仿真环境生成模块2搭建车辆仿真环境,该车辆仿真环境包括虚拟车辆、虚拟传感器以及虚拟场景;prescan-matlab接口5读取虚拟传感器生成的传感器数据,matlab-ros接口6将传感器数据转换成linux操作环境下的基于ros系统的第二自动驾驶仿真系统4可识别的传感器数据并发送该可识别的传感器数据到第二自动驾驶仿真系统4;第二自动驾驶仿真系统4接收该可识别的传感器数据,根据该可识别的传感器数据与设定的测试目标生成第二控制指令,并将该第二控制指令发送到matlab-ros接口6;matlab-ros接口6接收该第二控制指令并将该第二控制指令转化为基于prescan的仿真环境可接收的控制指令;prescan-matlab接口5接收基于prescan的仿真环境可识别的控制指令并将其传送到仿真环境生成模块2;仿真环境生成模块2将该可识别的控制指令应用到虚拟车辆以使得该虚拟车辆在虚拟场景中运行。如果该可识别的控制指令应用到虚拟车辆之后虚拟车辆在虚拟场景中运行的结果达到设定的测试目标,则第二自动驾驶仿真系统4针对该设定测试目标被验证成功。如此,实现了结合第一自动驾驶仿真系统验证第二自动驾驶仿真系统,以使第二自动驾驶仿真系统可以实现与真实的车辆之间的无缝对接。

图4是根据本发明的实施方式提供的用于自动驾驶仿真系统的测试方法的流程图。如图4所示,该测试方法包括以下步骤:

步骤s41:生成车辆仿真环境,即,在第一操作环境下的第一自动驾驶仿真系统的仿真环境生成模块生成车辆仿真环境,该车辆仿真环境包括虚拟车辆、虚拟传感器以及虚拟场景;该仿真环境生成模块可根据该虚拟传感器生成的传感器数据和设定测试目标生成第一控制指令,并将该第一控制指令应用到虚拟车辆以使得该虚拟车辆在虚拟场景中运行;

步骤s42:转换传感器数据,即,该第一自动驾驶仿真系统的数据转换接口读取传感器数据并将该传感器数据转换成在第二操作环境下的第二自动驾驶仿真系统可识别的传感器数据;

步骤s43:生成第二控制指令,即,第二自动驾驶仿真系统接收该可识别的传感器数据,根据该可识别的传感器数据与设定测试目标生成第二控制指令,并将该第二控制指令发送到数据转换接口;

步骤s44:转换第二控制指令为可识别的控制指令,即,数据接口接收该第二控制指令,并将该第二控制指令转换成仿真环境生成模块可识别的控制指令;

步骤s45:应用该可识别的控制指令,即,仿真环境生成模块将该可识别的控制指令应用到虚拟车辆以使得该虚拟车辆在虚拟场景中运行。

如此,通过在第一操作环境下的第一自动驾驶仿真系统中搭建仿真环境,通过数据转换接口使第一自动驾驶仿真系统与在第二操作环境下的第二自动驾驶仿真系统之间进行的数据和控制指令的传输,实现了第二自动驾驶仿真系统控制仿真环境中车辆行驶的过程。

此外,在根据本发明提供的实施方式中,该测试方法还可包括如果可识别的控制指令应用到虚拟车辆之后虚拟车辆在虚拟场景中运行的结果达到设定测试目标,则确认第二自动驾驶仿真系统针对该设定测试目标被验证成功。如此,实现了对第二自动驾驶仿真系统的验证。在根据本发明提供的实施方式中,还可设定不同的测试目标,如路口转弯、保持直行、遇红灯停车、遇障碍物停车等,确认第二自动驾驶仿真系统是否能被验证成功。当设定不同的测试目标,第二自动驾驶仿真系统被验证成功后,可将该第二自动驾驶仿真系统直接应用到实际车辆。

图5是根据本发明的另一实施方式提供的用于自动驾驶仿真系统的测试方法的流程图。图5所示的流程图与图4所示的流程图的不同之处在于,在该实施方式中,测试方法在步骤s55(图4中的步骤s45)后,还包括了以下步骤:

步骤s56:判断是否验证成功,即,判断可识别的控制指令应用到虚拟车辆之后虚拟车辆在虚拟场景中运行的结果是否达到设定的测试目标,若达到设定的测试目标则确认第二自动驾驶仿真系统针对该设定测试目标被验证成功,若达不到设定的测试目标则确认第二自动驾驶仿真系统针对该设定测试目标没有被验证成功;若验证成功则执行步骤s57,若否则执行步骤s58;

步骤s57:判断是否针对所有的测试目标验证完毕,即可以设定不同的测试目标,如路口转弯、保持直行、遇红灯停车、遇障碍物停车等,判断第二自动驾驶仿真系统能否被验证成功,若是则执行步骤s60,若否则执行步骤s59;

步骤s58:修改算法,即若验证失败,则说明第二自动驾驶仿真系统中的算法不满足条件,需要对其进行修改,修改完算法后从步骤s53重新该测试方法的过程,若验证不能成功则需要持续修改算法,直到第二自动驾驶仿真系统被验证成功;

步骤s59:更换设定的测试目标,更换了设定的测试目标后从步骤s52循环执行,直到在设定的不同的测试目标的情况下,第二自动驾驶仿真系统均被验证成功;以及

步骤s60:应用到实际车辆,即将第二自动驾驶仿真系统应用到实际车辆。

如此,实现了在结合第一自动驾驶仿真系统对第二自动驾驶仿真系统进行验证的过程,确保第二自动驾驶仿真系统的可靠性,并在第二自动驾驶仿真系统被验证成功的情况下,直接将第二自动驾驶仿真系统与实际车辆对接以完成对实际车辆的驱动。在这个过程中,从仿真环境到真车环境不需要有额外的转换开发要求,高效、便捷。

在根据本发明提供的实施方式中,第一操作环境可以是windows操作环境,第二操作环境可以是linux操作环境;仿真环境生成模块可以是基于prescan的,也可以是基于carsim的,prescan和carsim是比较成熟的商用仿真软件。若仿真环境生成模块是基于prescan的,数据转换接口包括prescan-matlab接口和matlab-ros接口。prescan-matlab接口用于读取虚拟传感器生成的传感器数据或接收基于prescan的仿真环境可识别的控制指令;matlab-ros接口,用于将传感器数据转换成在linux操作环境下的基于ros系统的第二自动驾驶仿真系统可识别的传感器数据并发送可识别的传感器数据或接收第二控制指令并将该第二控制指令转化为基于prescan的所述仿真环境可接收的控制指令。

图6是根据本发明的实施方式提供的自动驾驶仿真系统的测试与应用示意图。在该实施方式中,第一自动驾驶系统1包括基于prescan的仿真环境生成模块2、prescan-matlab接口5和matlab-ros接口6;第一自动驾驶系统1是在windows操作环境下的,第一自动驾驶系统4是在linux操作环境下的;基于prescan的仿真环境生成模块2搭建车辆仿真环境,该车辆仿真环境包括虚拟车辆、虚拟传感器以及虚拟场景;prescan-matlab接口5读取虚拟传感器生成的传感器数据,matlab-ros接口6将传感器数据转换成linux操作环境下的基于ros系统的第二自动驾驶仿真系统4可识别的传感器数据并通过网络发送该可识别的传感器数据到第二自动驾驶仿真系统4;第二自动驾驶仿真系统4接收该可识别的传感器数据,根据该可识别的传感器数据与设定的测试目标生成第二控制指令,即,通过其包括的开发的算法进行障碍物检测、车道线识别、决策规划和控制模块等作用生成第二控制指令,并将该第二控制指令发送到matlab-ros接口6;matlab-ros接口6接收该第二控制指令并将该第二控制指令转化为基于prescan的仿真环境可接收的控制指令;prescan-matlab接口5接收基于prescan的仿真环境可识别的控制指令并将其传送到仿真环境生成模块2;仿真环境生成模块2将该可识别的控制指令应用到虚拟车辆以使得该虚拟车辆在虚拟场景中运行,即根据第二控制指令驱动虚拟车完成一次位置的更新,完成一次仿真循环。如果该可识别的控制指令应用到虚拟车辆之后虚拟车辆在虚拟场景中运行的结果达到设定的测试目标,则第二自动驾驶仿真系统4针对该设定测试目标被验证成功。更换不同的测试目标验证第二自动驾驶仿真系统4,若均被验证成功,即,完成了整个系统的闭环仿真,则将第二自动驾驶仿真系统4应用到真实车辆7,从真实车辆上获取传感器的数据通过第二自动驾驶仿真系统4中的算法的处理产生控制消息发送到真实车辆7,完成对真实车辆7的驱动。如此实现了第二自动驾驶仿真系统4通过第一自动驾驶仿真系统1进行仿真测试以验证第二自动驾驶仿真系统4的可靠性,并且在第二自动驾驶仿真系统4被验证可靠性的情况下将其应用到真实车辆7,无需额外的转换开发要求,高效、便捷。

综上所述,结合第一自动驾驶仿真系统对第二自动驾驶仿真系统进行验证,并在第二自动驾驶仿真系统被验证成功的情况下,直接将第二自动驾驶仿真系统与实际车辆对接以完成对实际车辆的驱动。如此,可确保第二自动驾驶仿真系统的可靠性以及仿真系统与真实车辆的真实系统的无缝对接,并且从仿真环境到真车环境不需要有额外的转换开发要求,节约成本、高效、便捷。

以上结合附图详细描述了本发明例的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施方式的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。

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