震惊!虚拟场景仿真测试还能这么玩
前言
智能驾驶场景仿真软件难以实现复杂场景的ADAS测试?
用场景仿真软件编写ADAS测试用例效率太低?
不知如何将编写的ADAS测试用例链接到需求?
来自德国的PikeTec公司潜心研发的TPT测试工具已经完美地解决了上述问题。
借助TPT,结合市面上主流的场景仿真软件VTD、DYNA4、CarMaker和PreScan等,我们便可以快速构建复杂的测试场景,并实现从场景设计、三维重构、测试执行管理、结果评估、报告生成的自动化。下面我们就分别介绍下TPT如何与众多场景工具实现强强联合。
与TPT已有内嵌接口的场景仿真软件
如果你使用VTD进行ADAS场景仿真,那么恭喜你,TPT已经内置了和VTD的接口,你可以直接在TPT中调用VTD的数据接口及控制接口,进行基于场景的测试用例编写,并最终联合VTD完成不同场景下的仿真测试。
如果你的场景仿真软件支持FMU Export(如DYNA4 R5),由于TPT支持FMU Import,所以你可以很方便地实现其与TPT的数据交互,FMI与FUSION平台之间的通信原理如图所示:
图1 FMI与FUSION平台之间的通信
当你想在TPT中读写DYNA4的信号,你需要修改DYNA4的模型,定义整个模型的输入输出接口,生成并导入FMU文件到TPT,TPT就可以读取这些接口,基于这些信号接口进行测试用例的编写。
如果你用的场景仿真软件不支持FMU Export(如CarMaker,PreScan),你同样可以使用TPT中Fusion平台的用户自定义节点(Custom Node),来构建与场景仿真软件的数据接口。Custom Node中提供了更加开放的API接口,因此你可以完成更多定制化的场景测试功能。
换句话说,无论你使用何种场景仿真软件,基于TPT提供的Fusion平台,你都可以实现对该场景仿真软件中搭建的场景进行测试。
下面我们就以CarMaker为例,介绍一下如何通过TPT提供的Fusion平台连接场景仿真软件,实现基于TPT的智能驾驶场景测试。
此外,对于PreScan,由于其与TPT集成的方法与CarMaker类似,我们放在最后进行简略地介绍。
TPT Fusion平台简介
连接到Fusion平台的模块称为节点,每个节点都通过API连接到Fusion。每个节点读取输入信号,计算一个时间步长的输出,然后将其写入Fusion。TPT运行时按顺序依次执行工程所添加的各个节点,这样可以实现更复杂的节点调度和函数调用。
图2. Fusion 平台示意图
TPT的Fusion平台中已经内置了很多用于和第三方软件进行通信的节点,如AUTOSAR节点、CANape节点、CAN节点、CANoe节点、FMI节点、dSPACE节点等,还包括自定义节点Custom节点。
TPT Fusion与CarMaker集成方案
TPT和CarMaker的集成就使用Custom节点,该节点需要一个用于TPT与CarMaker数据交互的DLL文件,具体结构图如下:
图3.基于fusion平台的TPT与CarMaker集成结构图
由上图我们可以看出,TPT与CarMaker的集成代码可以分为四部分:
- Node.c——使用fusion平台提供的API接口实现节点启动、节点初始化、功能执行、信号读写等功能
- CarMaker_Socket.cpp——与CarMaker建立TCP通信、启动CarMaker并加载相应的TestRun工程、注册DVA变量、读写DVA变量、关闭TCP通信等
- API.h——用户信号存储的变量的声明、相关函数的声明;
- Socket.h——定义用于和CarMaker进行数据交互的类,包含与CarMaker进行TCP连接的方法、基本TCP数据接收与发送方法、DVA数据注册与读写等方法等。
在完成了上述源文件的编辑之后,通过g++编译器进行编译并生成为一个DLL文件即可。
在TPT的Custom Node中将生成的DLL文件加载进来,TPT就可以将Node.c中定义的信号导入到测试工程中,信号数值通过CarMaker_Socket.cpp从运行过程中的CarMaker工程进行读写。
这样,我们就完成了TPT与CarMaker之间的数据交互,可以在TPT中编写场景仿真的测试用例,来控制场景仿真软件中被测车辆的运行状态,实现对应场景的测试。
PreScan如何与TPT Fusion集成。
PreScan从2019.3版本开始提供了Prescan C ++ API,利用该API,我们同样可以通过编写C++程序,实现对PreScan的远程控制与数据交互的功能。因此TPT Fusion平台与PreScan之间的集成方案与CarMaker类似,在此不做过多赘述。
图4. Prescan C ++ API结构
如何在TPT中搭建场景仿真测试用例
在搭建测试用例过程中,如何逻辑清晰地把握场景中信号间的相互关系和激励时段往往是复杂模型的测试难点所在。TPT作为PikeTec公司研发的嵌入式系统模型动态测试验证工具,针对场景测试采用分时段逻辑路径、参数variants、测试用例并行执行、图形化的方式搭建测试用例,使得场景构建灵活便捷,下面我们将结合AEB场景对这些搭建特点进行说明。
在TPT中搭建场景仿真的测试用例具体方法,可以参考往期文章《如何符合E-NCAP测试规范?TPT让AEB场景测试更简单》。
PickTec公司介绍
PikeTec公司是全球知名的基于模型的嵌入式系统测试工具TPT的软件供应商,总部位于德国柏林,其创始人均在戴姆勒公司拥有十多年的软件测试经验。TPT作为针对嵌入式系统的基于模型的动态测试工具,支持众多业内主流的工具平台和测试环境,可应用于整个嵌入式软件开发周期,实现各种异构环境下的自动化测试。无论是在测试建模,测试环境还是测试评估,测试报告方面,都占据强大优势。
北汇信息作为PikeTec的中国合作伙伴,将为中国客户提供有关TPT技术以及工具链集成方面的支持。
注:
工具是否支持FMU Export,可点击链接https://fmi-standard.org/tools/确认
部分图片来自于《Prescan C++ API》、《TPT User Guide》、pexels网站
本文来自博客园,作者:{北汇信息},转载请注明原文链接:{https://www.cnblogs.com/polelink/}