主要内容

自动紧急制动和走鹃场景

这个例子展示了如何模拟一个自治紧急制动(AEB)系统,在仿真软件设计®,走鹃场景。金宝app

介绍

走鹃场景交互式编辑器,该编辑器允许您设计场景模拟和测试自动驾驶系统。您可以将车辆,定义的路径和交互场景,然后模拟场景编辑器中。走鹃场景支持in-editor回放场景可金宝app视化和连接到其他模拟器,cosimulation MATLAB®和仿真软件等。金宝app

AEB是一种先进的主动安全系统,帮助司机避免或减轻与其他车辆碰撞。这个例子展示了如何使用走鹃场景模拟AEB试验台模型中使用与传感器融合自动紧急制动的例子。

这个图显示的概述走鹃场景之间的信息交换,并自动紧急制动试验台模型在仿真软件。金宝app自动紧急制动模型读取所有演员从走鹃场景运行时,利用模拟的演员体式和自我信息。模型得到的愿景和雷达探测传感器,并使用这些信息来控制自我更新车辆和写回自我对走鹃场景。

在本例中,您:

  • 设置环境——配置MATLAB设置与走鹃场景进行交互。

  • 作者欧洲五星场景使用走鹃场景——作者走鹃场景和场景测试AEB系统使用欧洲新车评估项目(欧元NCAP)测试协议。

  • 探索AEB试验台——走鹃场景的试验台模型接口,传感器,传感器融合和跟踪,决策逻辑,一个AEB控制器,车辆动力学和指标评估。

  • 模拟与一辆车搬到另外一辆车,前面Turn-Across-Path场景——Cosimulate AEB试验台模型与一辆车搬到另外一辆车,前面走鹃场景turn-across-path (CCFtap)测试场景和情节仿真结果。

  • 模拟与情景变体——创建CCFtap场景的变体,速度变化的车辆被测试人(而属于)和全球汽车目标(GVT),评估AEB试验台每欧元NCAP规范。

  • 探索其他场景——在附加条件下测试系统。

设置环境

本节将展示如何设置环境与走鹃cosimulate AEB应用程序场景。

指定本地RoadRunner安装文件夹的路径。这个代码显示了默认的安装位置的路径在Windows®。

rrAppPath =“C: \ Program Files \走鹃”+ matlabRelease。释放+“\ bin \ win64”;

指定的路径走鹃项目。这个代码显示了一个示例项目文件夹在Windows。

rrProjectPath =“C: \ RR \ MyProjects”;

更新的路径走鹃安装文件夹,设置分层树内的根对象。有关更多信息,请参见SettingsGroup

s =设置;s.roadrunner.application.InstallationFolder。TemporaryValue = rrAppPath;

打开走鹃项目使用指定的路径。

rrApp =走鹃(rrProjectPath);

rrApp走鹃对象允许您从MATLAB与走鹃工作区。你可以打开场景和更新场景变量使用这个对象。这个对象的更多信息,请参阅走鹃

打开一个文件的工作副本的AEB走鹃场景项目。MATLAB将所有必需的文件复制到当前工作目录中,这样您就可以编辑它们。

helperDrivingProjectSetup (“AEBWithRRScenario.zip”,workDir = pwd)

减少输出命令窗口,关闭模型预测控制(MPC)更新消息。

mpcverbosity (“关闭”);

复制走鹃场景,场景中,和行为走鹃项目文件。

AEBWithRRScenarioProject = currentProject;projectPath = convertStringsToChars (AEBWithRRScenarioProject.RootFolder);projectRootFolder = projectPath(1:找到(projectPath = =“\”,1“最后一次”)1);拷贝文件(fullfile (projectRootFolder,“AEBTestScenarios /走鹃/场景”),fullfile (rrProjectPath,“场景”),“f”)复制文件(fullfile (projectRootFolder,“AEBTestScenarios /走鹃/场景”),fullfile (rrProjectPath,“场景”),“f”)复制文件(fullfile (projectRootFolder,“AEBWithRRScenario / TestBench / AEB.rrbehavior.rrmeta”),fullfile (rrProjectPath,“资产”,“行为”),“f”)

作者欧洲五星场景使用走鹃场景

从这个例子中重用AEB组件与传感器融合自动紧急制动的例子,但AEB应用程序向你展示了如何模拟欧洲五星场景编写使用走鹃场景。这个例子使用一个欧洲五星CCFtap场景编写使用结,JunctionWithConnectingLanes。打开场景。

openScene (rrApp“JunctionWithConnectingLanes.rrscene”)

欧洲五星规范指的是自我测试车辆的车辆人(而属于)和目标车辆作为全球车辆目标(GVT)。

scenario_01_CarToCar_FrontTAP.rrscenario文件是一个走鹃场景中兼容AEBWithRRTestBench模型。人在这个场景中,而属于把整个路径的迎面而来的GVT旅行以恒定速度,造成碰撞的额结构GVT袭击人的额结构而属于。人,而属于和GVT按照预定义的路径中指定的场景。开放的场景JunctionWithConnectingLanes现场。

openScenario (rrApp“scenario_01_CarToCar_FrontTAP.rrscenario”)

直线路径的GVT的旅行。人,而属于直接传播,使左拐,然后直走。人的初始和最终的直线轨迹而属于回旋曲线,在转,轨迹有一个固定半径的欧洲五星测试协议- AEB 3.0.1辆车搬到另外一辆车,系统版本。的scenario_01_CarToCar_FrontTAP人的场景有而属于测试10公里/小时的速度,或2.778 m / s。人,而属于轨迹参数,计算弧半径圆弧角分别是9米和48.76度。您还可以配置此场景人对其他而属于速度。有关详细信息,请与变异场景模拟部分的例子。

模拟AEB行为,使用AEB.rrbehavior.rrmeta自我车辆文件分配自定义行为。

连接到走鹃场景服务器cosimulation使用createSimulation功能,支持数据日志记录。

rrSim = rrApp.createSimulation;设置(rrSim日志=“上”)

rrSim是一个金宝appSimulink.ScenarioSimulation对象。使用这个对象设置变量和阅读场景和map-related信息。

AEB应用程序被设计为运行的步长0.05秒。走鹃场景的仿真步长设置为0.05秒。

t = 0.05;集(rrSim StepSize = Ts)

探索试验台

在本例中,您使用一个系统级仿真试验台的模型来模拟和测试的行为AEB走鹃场景模型。打开模型试验台。

modelName =“AEBWithRRTestBench”;open_system (modelName)

试验台模型包含块走鹃场景,配置,阅读,和写作要走鹃场景,以及这些模块:

  • 传感器子系统,指定了演员,相机,和雷达传感器用于模拟走鹃的场景。

  • 传感器融合和跟踪——算法模型,融合的车辆检测相机的雷达传感器。

  • AEB决策逻辑——算法模型,指定了横向和纵向的决策逻辑,它提供了最重要的对象(绪)相关信息和自我车辆控制器参考路径信息。

  • AEB控制器——算法模型,指定了转向角和加速度控制。

  • 车辆动力学子系统,指定自我车辆的动态模型。

  • 生成EgoReference路径——子系统计算参考路径属性使用路径信息从走鹃场景。

  • 包演员的姿势——MATLAB系统对象输出目标演员读的驾驶场景兼容的姿势走鹃场景。

  • 指标的评估——子系统评估系统级的行为。

传感器融合和跟踪,AEB决策逻辑,AEB控制器,车辆动力学,指标的评估重复使用的与传感器融合自动紧急制动的例子。

这个例子着重于走鹃块和场景传感器子系统。

走鹃场景块

走鹃场景模块包括:

  • 走鹃场景——定义了一个演员的接口模型。

  • 自我演员运行时读者——走鹃场景块读取读者自我演员运行时信息。

  • 所有演员运行时——走鹃场景读者块读取所有车辆的运行时信息。

  • 路径操作——走鹃场景读者块读的参考路径的自我。

  • 自我演员运行时的作家——走鹃场景作家块写自我车辆运行时走鹃场景。

传感器

传感器子系统综合视觉和雷达传感器,连接到自我。

打开传感器子系统。

open_system (“AEBWithRRTestBench /传感器”)

传感器子系统包含这些块:

与CCFtap场景模拟

下面的例子使用了helperSLAEBWithRRSetuphelper函数建立自我形象,演员和目标概要文件,以及传感器参数基于自我车辆速度。这些值是场景的依赖,可以改变基于所选择的场景。配置的模型scenario_01_CarToCar_FrontTAP场景。

helperSLAEBWithRRSetup (rrApp rrSim scenarioFileName =“scenario_01_CarToCar_FrontTAP”)

这个模型可能需要几秒钟才能第一次编译时更新图。在运行模拟之前更新模型。

set_param (modelName SimulationCommand = "更新")

模拟场景和观察AEB系统避免碰撞。

设置(rrSim SimulationCommand =“开始”)比较字符串(rrSim.get (“SimulationStatus”),“运行”)暂停(1)结束

注意,传感器融合和跟踪算法跟踪目标车辆和决策逻辑算法发现目标的绪,这AEB系统适用于刹车减轻碰撞。

仿真结果通过helperPlotAEBResultshelper函数。

helperPlotAEBResults (logsout“scenario_01_CarToCar_FrontTAP”)

  • TTC和停止时间——比较time-to-collision和停止时间正向碰撞警告(结合),第一阶段部分制动,第二阶段部分制动,分别和全制动。关于多级部分制动的更多信息,请参阅与传感器融合自动紧急制动

  • 结合和AEB状态——显示结合和AEB激活状态根据比较结果从第一个情节。

  • 自我汽车加速度——显示自我车辆的加速度。

  • 自我汽车偏航和偏航率——显示了偏航和偏航率的自我。

  • 自我的车速度——显示自我的车辆的速度。

  • 进展——展示了自我的车辆之间的进展和绪。

在最初的几秒钟里,自我汽车旅行的指定速度2.778米/秒。传感器检测到目标车辆在十字路口。后立即检测,结合自动化系统激活。

AEB系统然后应用的第一阶段部分制动,和自我车辆开始慢下来。

自我车辆降低它的速度来减轻碰撞在这个场景中。

模拟与情景变体

测试CCFtap场景,这个例子可以改变人的速度而属于和GVT的欧洲五星测试协议- AEB 3.0.1辆车搬到另外一辆车,系统版本。您可以生成9不同的人通过使用这些场景变化速度值而属于和GVT:

  • VUT - 10、15或20 km / h

  • GVT - 30、45岁或55公里/小时

保持相同的碰撞点对所有这些变化,示例修改GVT的等待时间。人的例子也更新的轨迹而属于其测试速度的变化,如这个表所示。

这个示例使用CCFTapVariationData.mat文件,它包含人的而属于轨迹参数和预先计算的GVT等待时间为所有九个场景变化。

文件加载垫。

负载(“CCFtapVariationData.mat”)disp (CCFTapVariationData)
vutSpeed gvtSpeed vutAlpha vutBeta vutRadius gvtWaitTime ________说____ ____ ___________ 10 30 6.1779 20.62 48.76 9 10 45 7.4019 20.62 48.76 9 10 55 15 30 20.93 48.14 11.75 2.2 7.847 20.62 48.76 9 15 45 15 55 20.93 48.14 11.75 20.93 48.14 11.75 3.5 3.9728 20 30 0 21.79 46.42 14.75 20 45 20 55 21.79 46.42 14.75 21.79 46.42 14.75 1.3668 1.8728

scenario_01_CarToCar_FrontTAP人包含变量,使您能够改变而属于轨迹参数和GVT等待时间,如图片所示。

您可以使用setScenarioVariable函数来修改这些变量。

遵循以下步骤来模拟AEB试验台与场景变体:

1。选择变种人并设置而属于和GVT的速度运行。这个例子展示了第九变异,这人指定而属于20公里/小时的速度和GVT 55公里/小时的速度。

variantID = 9;vutSpeed = table2array (CCFTapVariationData (variantID 1));gvtSpeed = table2array (CCFTapVariationData (variantID 2));vutSpeed = vutSpeed * 0.2778;人%转换而属于从公里/小时m / s的速度gvtSpeed = gvtSpeed * 0.2778;%转换GVT从公里/小时m / s的速度rrApp.setScenarioVariable (“VUT_Speed”num2str (vutSpeed)) rrApp.setScenarioVariable (“GVT_Speed”num2str (gvtSpeed))

2。从获得的GVT等待时间的价值CCFtapVariationData

gvtWaitTime = table2array (CCFTapVariationData (variantID 6));

更新GVT_WaitTime走鹃场景的变量。

rrApp.setScenarioVariable (“GVT_WaitTime”num2str (gvtWaitTime))

人的基础上,而属于速度,设置欧洲五星路径参数走鹃的场景。

rrApp.setScenarioVariable (“CCFtap_Alpha”,num2str (table2array (CCFTapVariationData (variantID 3)))) rrApp.setScenarioVariable (“CCFtap_Beta”,num2str (table2array (CCFTapVariationData (variantID 4)))) rrApp.setScenarioVariable (“CCFtap_Radius”,num2str (table2array (CCFTapVariationData (variantID 5))))

3所示。运行安装脚本初始化试验台所需的变量。

helperSLAEBWithRRSetup (rrApp rrSim scenarioFileName =“scenario_01_CarToCar_FrontTAP”)

4所示。模拟模型和阴谋的结果。

设置(rrSim SimulationCommand =“开始”)比较字符串(rrSim.get (“SimulationStatus”),“运行”)暂停(1)结束

仿真结果通过helperPlotAEBResultshelper函数。

helperPlotAEBResults (logsout“scenario_01_CarToCar_FrontTAP”)

探索其他场景

在这个例子中,你有探索的行为scenario_01_CarToCar_FrontTAP.rrscenario情况下,它使用JunctionWithConnectingLanes.rrscene现场。您可以使用相同的试验台模型探索其他场景。这个示例提供了这些额外的兼容的场景AEBWithRRTestBench模型。

  • scenario_02_CarToCar_RearStationary.rrscenario人——在这种情况下,而属于碰撞的GVT静止的人,而属于巷。

  • scenario_03_CarToPedestrian_NearSide_Adult.rrscenario——在这种情况下,自我车辆撞向行人是谁从路的右边,而欧洲五星测试协议称为近侧。

使用这些测试场景,您可以验证是否AEB系统成功地应用刹车,避免或减轻碰撞与目标。

这些场景使用HighwayStraightRoad.rrscene场景,其中包含一个双向四车道,直公路道路。你可以探索走鹃场景中这些场景。例如,打开scenario_02_CarToCar_RearStationary.rrscenario场景中,输入这个命令。

openScenario (rrApp“scenario_02_CarToCar_RearStationary.rrscenario”)

您可以配置AEBWithRRTestBench通过使用模型来模拟这个场景helperSLAEBWithRRSetup函数。运行配置模型scenario_02_CarToCar_RearStationary.rrscenario场景中,输入这个命令。

helperSLAEBWithRRSetup (rrApp rrSim scenarioFileName =“scenario_02_CarToCar_RearStationary”)

当你完成这个示例中,启用MPC更新消息。

mpcverbosity (“上”);

另请参阅

相关的话题