本申请涉及自动驾驶控制,特别是涉及一种自动驾驶仿真测试方法、系统、计算机设备、可读存储介质和程序产品。
背景技术:
1、软件在环(software in-the-loop,sil)是基于仿真和模拟的软件仿真,通过在软件系统里仿真模拟出真实的道路环境如光照、天气等自然环境,自动驾驶代码开发完毕后在仿真系统内运行,测试是否可以实现既定目标。
2、相关技术中,主要是通过真实数据仿真(log simulation,logsim)和模拟数据仿真(world simulation,worldsim)的方式进行测试,其中,logsim通过采集实车数据进行回放,更为真实地模拟智驾系统在实际道路上的行驶状态,降低在实际道路上的测试风险和成本,并最终提高智驾系统的性能和可靠。worldsim通过对人为预设的障碍物行为和交通灯状态构成的场景进行仿真回测,测试场景配置灵活,场景覆盖率高。通过worldsim和logsim的虚实结合的软件在环仿真测试,无需实车直接通过软件进行仿真测试便可达到对自动驾驶系统及算法的测试验证目的。
3、然而,由于所有待仿真测试的算法模块,对运行环境的要求必须保持一致,若待仿真测试的算法模块有多个,难以保证每个算法模块能够适配统一的运行环境,导致对硬件资源的需求增大。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够满足多种算法需求的自动驾驶仿真测试方法、系统、计算机设备、可读存储介质和程序产品。
2、第一方面,本申请提供了一种自动驾驶仿真测试方法,包括:
3、针对当前待测试算法,获取与当前待测试算法相匹配的待仿真路采数据包,将待仿真路采数据包转换成预设消息格式的目标路采数据包;
4、通过目标接口将目标路采数据包以ros消息的形式在ros节点中广播;ros节点包括与待测试算法的数量相同的桥接器节点;
5、在通过与当前待测试算法对应的桥接器节点监听到ros消息的情况下,通过桥接器节点将ros消息转换为与当前待测试算法相匹配的目标消息;
6、在目标容器中运行当前待测试算法,以对当前待测试算法进行仿真测试。
7、在其中一个实施例中,在目标容器中运行当前待测试算法,以对当前待测试算法进行仿真测试的步骤,包括:
8、获取当前待测试算法的输出数据;
9、根据输出数据更新待仿真路采数据包,返回通过目标接口将目标路采数据包以ros消息的形式在ros节点中广播的步骤,并继续执行,直至目标路采数据包广播完成。
10、在其中一个实施例中,该方法还包括:
11、更新当前待测试算法,返回获取与当前待测试算法相匹配的待仿真路采数据包的步骤,并继续执行,直至所有待测试算法测试完成。
12、在其中一个实施例中,该方法还包括:
13、根据在对当前待测试算法进行仿真测试过程中的所有测试数据,生成仿真记录文件;
14、根据所有待测试算法相应的仿真记录文件,生成多算法模块仿真文件。
15、第二方面,本申请还提供了一种自动驾驶仿真测试系统,包括:
16、播包模块,用于针对当前待测试算法,获取与当前待测试算法相匹配的待仿真路采数据包;通过目标接口将目标路采数据包以ros消息的形式在ros节点中广播;
17、转包模块,用于将待仿真路采数据包转换成预设消息格式的目标路采数据包;
18、桥接器模块,每一桥接器模块对应一个桥接器节点,用于在监听到ros消息的情况下,将ros消息转换为与当前待测试算法相匹配的目标消息;
19、待测试算法模块,用于存储待测试算法;
20、算法运行模块,用于在目标容器中通过待测试算法模块运行当前待测试算法,以对当前待测试算法进行仿真测试。
21、在其中一个实施例中,每一待测试算法模块用于存储一个待测试算法;播包模块的数量、转包模块的数量、桥接器模块的数量、算法运行模块的数量与待测试算法的数量相同。
22、在其中一个实施例中,播包模块、转包模块、桥接器模块和算法运行模块通过目标容器进行隔离;目标容器用于提供独立的运行环境。
23、第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现第一方面中任意一项的方法步骤。
24、第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面中任意一项的方法步骤。
25、第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任意一项的方法步骤。
26、上述自动驾驶仿真测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,通过针对当前待测试算法,获取与当前待测试算法相匹配的待仿真路采数据包,将待仿真路采数据包转换成预设消息格式的目标路采数据包,通过目标接口将目标路采数据包以ros消息的形式在ros节点中广播,在通过与当前待测试算法对应的桥接器节点监听到ros消息的情况下,通过桥接器节点将ros消息转换为与当前待测试算法相匹配的目标消息,在目标容器中运行当前待测试算法,以对当前待测试算法进行仿真测试,由于采用与需求的消息格式一致的待仿真路采数据包,能够适配多种待测试算法,通过在独立的目标容器中运行当前待测试算法,能够为待测试算法提供独立的运行环境,可以同时满足多种待测试算法的测试需求,减少硬件资源消耗。
1.一种自动驾驶仿真测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在目标容器中运行所述当前待测试算法,以对所述当前待测试算法进行仿真测试,包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.一种自动驾驶仿真测试系统,其特征在于,所述系统包括:
6.根据权利要求5所述的系统,其特征在于,每一所述待测试算法模块用于存储一个待测试算法;所述播包模块的数量、所述转包模块的数量、所述桥接器模块的数量、所述算法运行模块的数量与所述待测试算法的数量相同。
7.根据权利要求5所述的系统,其特征在于,所述播包模块、所述转包模块、所述桥接器模块和所述算法运行模块通过所述目标容器进行隔离;所述目标容器用于提供独立的运行环境。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。