此示例显示了如何以编程方式创建使用驾驶场景的变体,这些方案驾驶场景设计师应用程序。以编程方式创建场景的变体使您可以在多个条件下快速测试驱动算法。
要创建驾驶场景的程序化变体,请遵循以下步骤:
通过使用互动地构建驾驶场景驾驶场景设计师应用程序。
导出MATLAB®函数,该函数生成相当于此方案的MATLAB代码。
在MATLAB编辑器中,修改导出的函数以创建原始方案的变体。
调用函数生成一个drivingScenario
对象,该对象表示场景。
将方案对象导入应用程序以模拟修改的方案或生成其他方案。或者,要模拟Simulink®中的修改方案,请使用A将对象导入Simulink模型中金宝app场景的读者块。
该图表显示了该工作流的可视化表示。
使用驾驶场景设计师交互式地构建一个驾驶场景,在此基础上测试你的算法。有关构建场景的更多细节,请参见交互式创建驾驶场景,生成合成传感器数据.
这个示例使用了一个基于预构建场景的驱动场景,您可以从驾驶场景设计师应用程序。
在应用程序中打开场景文件。
Drivingscenariodesigner('leftturnscenarionosensors.mat')
点击运行来模拟这个场景。在这个场景中,自我汽车向北行驶,径直穿过一个十字路口。与此同时,一辆从十字路口左侧驶来的车辆向左转弯,最终停在邻近车道的小我车前面。
为简单起见,这种情况不包括安装在自助式车辆上的传感器。
在查看和模拟场景之后,可以将场景导出到MATLAB命令行。从驾驶场景设计师应用程序将来发布,选择导出> MATLAB函数.导出的函数包含用于生成应用程序中创建的场景的MATLAB代码。打开导出的功能。
开放LeftTurnScenarioNoSensors.m;
调用此函数返回驱动方案的这些方面。
场景
- 方案的道路和演员,作为一个返回drivingScenario
目的。
egoVehicle
- 在场景中定义的自我车辆,作为一个返回车辆
目的。有关详细信息,请参阅车辆
函数。
如果场景包含传感器,则返回的函数包含用于生成传感器的额外代码。如果您模拟了包含这些传感器的场景,那么该函数还可以生成由这些传感器产生的检测。
通过修改导出的MATLAB函数中的代码,可以生成单个场景的多个变体。一个常见的变化是测试自我汽车在不同的速度。在导出的MATLAB函数中,将ego车辆的速度设置为10米/秒(速度= 10.
).要生成不同的自我车辆速度,您可以将速度变量转换为函数的输入参数。打开包含导出函数的修改版本的脚本。
开放左静脉索里康菌病毒司司索病;
在这个修改过的函数中:
egoSpeed
包含作为输入参数。
速度
,删除常量变量。
为了计算自我飞行器的轨迹,egoSpeed
用而不是速度
.
这个图显示了这些脚本修改。
要产生额外的变化,请考虑:
修改道路和车道参数,以查看对车道检测的影响
修改车辆的轨迹或起始位置
修改车辆的尺寸
使用修改后的功能,生成一个自我汽车以每秒20米的恒定速度行驶的场景的变化。
场景=左旋柔性肺血清囊晶体化(20)% m / s
方案=带有属性的驱动程序:Sampletime:0.0400停止时间:INF模拟时间:0 isrunning:1 actor:[1x2驾驶。驾驶。vscenario.vehicle]障碍:[0x0 driver.scenario.barrier]停车场:[0x0 driver.scenario.parkinglot]
将修改的车辆导入应用程序中的修改方案,使用Drivingscenariodesigner.
函数。指定drivingScenario
对象作为输入参数。
驱动器CenarioDesigner(方案)
之前,另一辆车先通过十字路口。现在,随着“自我”车的速度从每秒10米增加到每秒20米,“自我”车首先通过了十字路口。
在使用时drivingScenario
对象,记住这些要点。
要尝试不同的自我车速,请再次调用导出的函数,然后导入新功能drivingScenario
对象使用Drivingscenariodesigner.
函数。该应用程序不包括导入这些对象的菜单选项。
如果您的方案包含传感器,则可以使用此语法重新打开方案和传感器:drivingScenarioDesigner(场景、传感器)
.
如果您对参与者的维度进行了重大更改,请确保ClassID
演员的财产对应于a类ID例如,在应用程序中,汽车有一个类ID的1
卡车有一个类ID的2
.如果您以编程方式更改汽车以具有卡车的尺寸,请更新ClassID
那辆车的财产1
(汽车)2
(卡车)。
要将修改的方案导入Simulink模型,请使用a金宝app场景的读者块。此块从应用程序中保存的方案文件或从应用程序中保存的方案文件读取道路和演员drivingScenario
变量保存到MATLAB工作区或模型工作区。将方案阅读器块添加到您的模型并设置这些参数。
集驾驶场景的来源来从工作空间
.
集matlab或modelspace变量名称到了这个名字drivingScenario
您工作区中的变量。
在使用时drivingScenario
在Simulink中的金宝app对象,请记住这些点。
什么时候自我载体的来源被设定为场景
,模型使用在您的drivingScenario
目的。该块根据指定的方式确定哪个演员是自我车辆ActorID
行为人的财产。这个行动者必须是车辆
对象(参见车辆
).要更改指定的自我车辆,请更新自我车辆ActorID参数。
将输出actor连接到传感器块时,确认在传感器块中,用于指定演员配置文件源的参数设置为从场景读取器块
.选择此选项后,传感器块直接从您的drivingScenario
目的。