主要内容

自动化测试高速公路车道

这个例子展示了如何评估lane-following应用程序通过定义场景的功能需求的基础上,自动化测试的组件,这些组件生成的代码。组件包括lane-detection、传感器融合、决策逻辑,和控制。这个例子构建的高速公路车道后(自动驾驶工具箱)的例子。

介绍

高速公路lane-following系统引导车辆旅行在一个车道。它还维护一组速度或安全距离前面的车辆在同一车道上。系统通常包括车道检测、传感器融合、决策逻辑,控制组件。系统级仿真是一种常见的技术评估的功能集成组件。模拟配置测试场景基于系统需求。自动运行这些模拟支持回归测试来验证系统级的功能。

高速公路车道后(自动驾驶工具箱)的例子展示了如何为lane-following模拟系统级模型。这个例子展示了如何使用仿真软件自动化测试模型对多个场景测试™。万博1manbetx场景是基于系统级需求。在本例中,您将:

  1. 审核要求:需求描述系统级测试条件。模拟测试场景创建代表这些条件。

  2. 检查试验台模型:检查系统级lane-following试验台模型,该模型包含指标评估。这些指标评估试验台模型与仿真软件集成测试的自动化测试。万博1manbetx

  3. 禁用运行时可视化:运行时可视化禁用减少自动化测试执行时间。

  4. 自动化测试:测试管理器配置为每个测试场景模拟,评估成功的标准,并报告结果。结果探讨了动态测试经理和出口到审稿人的PDF。

  5. 自动化测试生成的代码:车道检测、传感器融合、决策逻辑,和控制组件配置为生成c++代码。自动化测试是运行在生成的代码来验证预期行为。

  6. 自动化测试并行:总执行时间为运行测试降低多核计算机上使用并行计算。

测试系统级模型需要一个逼真的模拟环境。在本例中,您启用系统级模拟通过与虚幻引擎从史诗游戏®集成。3 d仿真环境需要一个Windows®64位平台。

如果~ ispc错误(“3 d仿真环境需要一个Windows 64位平台”);结束

保证仿真结果的再现性,设置随机种子。

rng (0);

评审需求

要求工具箱™让你作者,在仿真软件分析和管理需求。万博1manbetx这个例子包含十个测试场景,与高级测试需求定义为每个场景。开放的要求。

探索测试需求和试验台模型,打开一个工程实例文件的工作副本。MATLAB复制文件到一个文件夹中,这样您就可以编辑它们。的TestAutomation文件夹包含的文件,使得自动化测试。

目录(fullfile (matlabroot,“工具箱”,“开车”,“drivingdemos”));helperDrivingProjectSetup (“HighwayLaneFollowing.zip”,“workDir”pwd);
打开(“HighwayLaneFollowingTestRequirements.slreqx”)

或者,你也可以打开文件的需求选项卡的需求管理器在仿真软件应用。万博1manbetx

在这个文件中指定了每一行文本和图形格式的要求进行测试lane-following系统测试场景。的场景scenario_LF_前缀使您能够测试lane-detection和lane-following算法不妨碍其他车辆。的场景scenario_LFACC_前缀使您能够测试lane-detection lane-following, ACC行为与其他车辆在路上。

  1. scenario_LF_01_Straight_RightLane——直路场景与自我在右车道车辆。

  2. scenario_LF_02_Straight_LeftLane——直路场景与自我在左车道车辆。

  3. scenario_LF_03_Curve_LeftLane——弯曲的道路场景与自我在左车道车辆。

  4. scenario_LF_04_Curve_RightLane——弯曲的道路场景与自我在右车道车辆。

  5. scenario_LFACC_01_Curve_DecelTarget——弯曲的道路场景与减速导致车辆在自我的车道。

  6. scenario_LFACC_02_Curve_AutoRetarget——弯曲的道路场景变化导致自我车道的车辆。这个场景测试的能力自我车辆,无需新领导开车时车辆沿着曲线。

  7. scenario_LFACC_03_Curve_StopnGo——弯曲的道路场景在自我领导车辆减速车道。

  8. scenario_LFACC_04_Curve_CutInOut——弯曲的道路场景快速移动的汽车在相邻车道上削减削减到自我巷,从自我的车道。

  9. scenario_LFACC_05_Curve_CutInOut_TooClose——弯曲的道路场景快速移动的汽车在相邻车道上削减到自我巷和削减从自我积极巷。

  10. scenario_LFACC_06_Straight_StopandGoLeadCar——直路场景领先汽车在自我巷分解。

这些需求被实现为测试场景与场景中使用相同的名称HighwayLaneFollowingTestBench模型。

回顾试验台模型

这个例子中重用HighwayLaneFollowingTestBench模型的高速公路车道后(自动驾驶工具箱)的例子。打开模型试验台。

open_system (“HighwayLaneFollowingTestBench”);

该试验台模型模拟3 d场景,车道标记探测器,车辆检测器,提出车辆传感器融合,后巷决策逻辑后巷控制器车辆动力学组件。

该试验台模型配置使用helperSLHighwayLaneFollowingSetup脚本。这个设置脚本scenarioName作为输入。scenarioName可以是任何之前的测试场景。运行安装脚本,使用代码:

scenarioName =“scenario_LFACC_03_Curve_StopnGo”;helperSLHighwayLaneFollowingSetup (“scenarioFcnName”,scenarioName);

你现在可以模拟模型和可视化结果。更多细节分析的仿真结果和实验台模型中各个组件的设计,看到高速公路车道后(自动驾驶工具箱)的例子。

在这个例子中,更多的关注于自动化试验台模型使用模型的模拟运行不同的测试场景的测试。万博1manbetx的指标的评估子系统支持集成的系统级仿真软件测试度量评估。万博1manbetx打开指标的评估子系统。

open_system (“HighwayLaneFollowingTestBench /指标评估”);

使用这个示例中,您可以使用四个系统级指标评价系统级的行为。另外,你也可以计算组件级度量来分析单个组件及其对系统整体性能的影响。

系统级指标

  • 验证横向偏差——这块验证外侧车道偏离中心线是在规定的阈值对应的场景。作者定义的阈值,当你测试场景。

  • 验证在莱恩-这个块验证自我路上车辆的车道后整个模拟。

  • 验证时间差距——这块验证自我车辆之间的时间差距,导致车辆超过0.8秒。两辆车之间的时间间隔定义为距离的比值计算进展自我车辆速度。

  • 验证没有碰撞——这个块验证自我车辆不碰撞的汽车在任何时候在模拟。

级指标

  • 巷指标——这块验证检测车道边界之间的距离和地面实况数据是在一个测试场景中指定的阈值。

  • 车辆检测器指标——这个块计算和日志真阳性,检测的假阴性和假阳性。

  • 传感器融合&跟踪指标——这个子系统计算广义优化子模式分配(GOSPA)度量,定位错误,错过了目标错误,错误的跟踪误差。在这些指标上的更多信息,请参阅提出车辆传感器融合(自动驾驶工具箱)的例子。

禁用运行可视化

系统级试验台模型可视化中间输出在不同组件的仿真分析模型。这些可视化测试时不需要自动化。自动化测试可以减少执行时间通过禁用它们。

禁用运行时的可视化车道标记探测器子系统。

load_system (“LaneMarkerDetector”);黑色=“LaneMarkerDetector /车道标记探测器”;set_param(黑色,“EnableDisplays”,“关闭”);

禁用运行时的可视化车辆检测器子系统。

load_system (“VisionVehicleDetector”);黑色=“VisionVehicleDetector /包检测/包车辆检测”;set_param(黑色,“EnableDisplay”,“关闭”);

配置模拟3 d场景配置(自动驾驶工具箱)块在headless模式下运行虚幻引擎,在3 d仿真窗口是禁用的。

黑色= [“HighwayLaneFollowingTestBench /模拟3 d场景/”,“模拟3 d场景配置”];set_param(黑色,“EnableWindow”,“关闭”);

自动化测试

测试经理配置lane-following应用程序的自动化测试。打开HighwayLaneFollowingTestAssessments.mldatx测试经理的测试文件。

sltestmgr;测试文件= sltest.testmanager.load (“HighwayLaneFollowingTestAssessments.mldatx”);

观察的密集的测试用例撰写之前在这个文件中。每个测试用例与需求编辑器中相应的要求的可追溯性。每个测试用例使用POST-LOAD回调以适当的输入和运行安装脚本配置输出视频文件名。仿真后的测试用例,它调用helperTMTestCasePostProcessing清理回调评估整个系统性能和单个组件生成的情节解释说高速公路车道后(自动驾驶工具箱)的例子。

模拟测试用例后,仿真软件测试也调用这些函数万博1manbetx自定义标准回调得到额外的指标车道标记探测器和车辆检测器组件:

  • helperVerifyPrecisionAndSensitivity——验证精度和灵敏度指标的车道标志探测器组件在预定义的阈值限制。

  • helperVerifyPrecisionAndMissrate——验证车辆探测器组件的精度和错过率指标是在预定义的阈值限制。

运行和探索的结果一个测试场景:

减少输出命令窗口,关闭MPC更新消息。

mpcverbosity (“关闭”);

测试的系统级模型scenario_LFACC_03_Curve_StopnGo从仿真软件测试中,测试场景使用这段代码万博1manbetx:

testSuite = getTestSuiteByName(测试文件,测试场景的);testCase = getTestCaseByName (testSuite,“scenario_LFACC_03_Curve_StopnGo”);resultObj =运行(testCase);

在仿真后,生成一个报告使用这段代码:

sltest.testmanager.report (resultObj“Report.pdf”,,“标题”,“高速公路车道后”,“IncludeMATLABFigures”,真的,“IncludeErrorMessages”,真的,“IncludeTestResults”0,“LaunchReport”,真正的);

检查报告Report.pdf。观察到的测试环境节将展示的平台测试运行和MATLAB®版本用于测试。的总结部分显示的模拟测试的结果和持续时间以秒为单位。的结果部分显示了通过/失败结果的基础上评估标准。这一节还显示了情节的记录helperGenerateFilesForLaneFollowingReport函数。

运行所有测试场景和探索的结果:

你可以模拟系统对所有测试通过sltest.testmanager.run。另外,您可以通过点击模拟系统在测试管理器应用程序。

测试模拟完成后,所有的测试结果可以查看结果和工件测试经理的选项卡。为每个测试用例检查静态范围块模型中相关的测试经理可视化整体通过/失败结果。

你可以找到在当前工作目录中生成的报告。这份报告包含一个详细的总结通过/失败状态并为每个测试用例情节。

验证测试状态在编辑器的需求:

打开需求编辑和选择显示。然后,选择验证状态看到一个验证状态摘要为每一个需求。绿色和红色条指示的通过/失败状态仿真结果为每个测试。

自动化测试与生成的代码

HighwayLaneFollowingTestBench模型支持集成测试车道标记探测器,车辆检测器,提出车辆传感器融合,后巷决策逻辑,后巷控制器组件。通常有助于执行回归测试这些组件通过software-in-the-loop (SIL)验证。如果你有嵌入式编码器™仿真软件编码器™许可证,然后你可以万博1manbetx为这些组件生成代码。这个工作流可以验证生成的代码产生预期结果相匹配的系统级仿真需求。

车道标记探测器在Software-in-the-loop模式下运行。

模型=“HighwayLaneFollowingTestBench /车道标记探测器”;set_param(模型,“SimulationMode”,“Software-in-the-loop”);

车辆检测器在Software-in-the-loop模式下运行。

模型=“HighwayLaneFollowingTestBench /车辆检测器”;set_param(模型,“SimulationMode”,“Software-in-the-loop”);

提出车辆传感器融合在Software-in-the-loop模式下运行。

模型=“向前HighwayLaneFollowingTestBench /车辆传感器融合”;set_param(模型,“SimulationMode”,“Software-in-the-loop”);

后巷决策逻辑在Software-in-the-loop模式下运行。

模型=“HighwayLaneFollowingTestBench /后巷决策逻辑”;set_param(模型,“SimulationMode”,“Software-in-the-loop”);

后巷控制器在Software-in-the-loop模式下运行。

模型=“HighwayLaneFollowingTestBench /后巷控制器”;set_param(模型,“SimulationMode”,“Software-in-the-loop”);

现在,运行sltest.testmanager.run为所有的测试场景模拟系统。测试完成后,检查情节和结果在生成的报告。

使货币政策委员会再次更新消息。

mpcverbosity (“上”);

自动化测试并行

如果你有一个并行计算工具箱™许可证,然后您可以配置测试经理使用平行并行执行测试池。并行运行测试,禁用运行时使用可视化后保存模型save_system (“LaneMarkerDetector”),save_system (“VisionVehicleDetector”)save_system (“HighwayLaneFollowingTestBench”)。测试经理使用默认集群并行计算工具箱,只在本地机器上执行测试。并行运行测试可以加快执行和减少所花费的时间得到测试结果。有关如何配置的更多信息的并行测试的测试经理,看看运行测试使用并行执行