基于MATLAB&SIMULINK开发自动驾驶系统第十二讲驾驶场景设计器中的预设的驾驶场景

驾驶场景设计APP提供了一个代表常见驾驶动作的预设场景库。该应用还包括代表欧洲新车评估计划(Euro NCAP)测试协议的场景,以及3D仿真环境中使用的预设场景的3维版本。

选择一个预建场景

要开始,请打开 Driving Scenario Designer 应用程序。在 MATLAB 命令提示符下,输入:

drivingScenarioDesigner

在应用程序中,预设场景以MAT文件的形式存储,并存储到文件夹中。要打开预设场景文件,请从应用程序工具栏中选择打开 > 预设场景。然后从其中一个文件夹中选择一个预设场景。

12.1 欧洲NCAP

这些场景代表了欧洲NCAP测试协议。该应用程序包括测试自动紧急制动、紧急车道保持和车道保持辅助系统的场景。更多详细信息,后期会持续更新,欢迎关注、转发与点赞。

12.2 交叉口

这些方案涉及四向交叉口和环岛的常见交通模式。

文件名称
描述
EgoVehicleGoesStraight_BicycleFromLeftGoesStraight_Collision.mat
被控车辆向北行驶,直行经过过程一个十字路口。一辆自行车从十字路口左侧驶来,直行与被控车辆相撞。
EgoVehicleGoesStraight_VehicleFromLeftGoesStraight.mat
被控车辆向北行驶,直行通过一个十字路口。从十字路口左侧驶来的车辆也直行。被控车辆从另一辆车前穿过。
EgoVehicleGoesStraight_VehicleFromRightGoesStraight.mat
被控车辆向北行驶,直行通过一个十字路口。从十字路口右侧驶来的车辆也直行,先通过十字路口。
Roundabout.mat
被控车辆向北行驶,在进入环岛时越过行人的路径。然后,当两辆车都驶过环岛时,该被控车辆又穿过另一辆车的路径。

12.3 3D仿真

这些场景是3D仿真环境中几个预设场景的3D版本。可以将车辆和跟踪添加到这些场景中。然后,可以将这些车辆和跟踪包含在Simulink模型中,以便在3D环境中对它们进行仿真。这个环境是使用Epic Games的虚幻引擎渲染的。有关这些场景的详细信息,后期会持续更新,欢迎关注、转发与点赞。

12.4 转弯

这些方案涉及到四向交叉口的转弯。

文件名称
描述
EgoVehicleGoesStraight_VehicleFromLeftTurnsLeft.mat
被控车辆向北行驶,直行通过一个十字路口。一辆从路口左侧驶来的车辆向左转弯,最终挡在被控车辆前面。
EgoVehicleGoesStraight_VehicleFromRightTurnsRight.mat
被控车辆向北行驶,直行通过一个十字路口。从十字路口右侧驶来的一辆车右转,最后挡在被控车辆前面。
EgoVehicleGoesStraight_VehicleInFrontTurnsLeft.mat
被控车辆向北行驶,直行通过一个十字路口。被控车辆前方的车辆在十字路口左转。
EgoVehicleGoesStraight_VehicleInFrontTurnsRight.mat
被控车辆向北行驶,直行通过一个十字路口。被控车辆前方的车辆在十字路口右转。
EgoVehicleTurnsLeft_PedestrianFromLeftGoesStraight.mat
被控车辆向北行驶,在一个十字路口左转。从十字路口左侧来的行人直行。被控车辆在行人完成穿越路口前完成转弯。
EgoVehicleTurnsLeft_PedestrianInOppLaneGoesStraight.mat
被控车辆向北行驶,在一个十字路口左转。对向车道上的行人直行通过路口。被控车辆在行人完成穿越路口前完成转弯。
EgoVehicleTurnsLeft_VehicleInFrontGoesStraight.mat
被控车辆向北行驶,在一个十字路口左转。被控车辆前方的车辆直行通过十字路口。
EgoVehicleTurnsRight_VehicleInFrontGoesStraight.mat
被控车辆向北行驶,在一个十字路口右转。被控车辆前方的车辆直行通过十字路口。

12.5 U型转弯

这些方案涉及到四向交叉口的U型转弯。

文件名称
描述
EgoVehicleGoesStraight_VehicleInOppLaneMakesUTurn.mat
被控车辆向北行驶,直行通过十字路口。对向车道上的车辆进行了掉头。被控车辆颠末后方车辆。
EgoVehicleMakesUTurn_PedestrianFromRightGoesStraight.mat
被控车辆向北行驶,在十字路口转了个U型弯。从十字路口右侧来的行人直行,穿过U型弯道。
EgoVehicleMakesUTurn_VehicleInOppLaneGoesStraight.mat
被控车辆向北行驶,在十字路口转了个U型弯。相反方向南行的车辆直行,最后落在被控车辆后面。
EgoVehicleTurnsLeft_Vehicle1MakesUTurn_Vehicle2GoesStraight.mat
被控车辆向北行驶,在十字路口左转。被控车辆前面的一辆车在路口掉头。第二辆车,一辆卡车,从路口右侧驶来。被控车辆最后停在卡车旁边的车道上。
EgoVehicleTurnsLeft_VehicleFromLeftMakesUTurn.mat
被控车辆向北行驶,在十字路口左转。从十字路口左侧驶来的车辆进行了掉头。这被控车辆最后停在了另一辆车旁边的车道上。
EgoVehicleTurnsRight_VehicleFromRightMakesUTurn.mat
被控车辆向北行驶,在一个十字路口右转。一辆从路口右侧驶来的车辆进行了掉头。被控车辆颠末该车后方相邻车道。

12.6 修改场景

在选择一个场景后,可以修改道路和执行器的参数。例如,从左边的 "执行器 "选项卡中, 可以更改被控车辆或其他执行器的位置或速度。从 "道路 "选项卡中,可以更改车道的宽度或车道标记的类型。

还可以添加或修改传感器。例如,从 "传感器 "选项卡,可以更改探测参数或传感器的位置。默认情况下,在欧洲NCAP方案中,控制车辆不包含传感器。所有其他预设场景至少有一个前置摄像头或雷达传感器,设置为探测车道和物体。

12.7 生成合成传感器数据

要从传感器生成探测,在应用程序工具条上,点击运行。当场景运行时,"被控中心视图 "被控车辆的角度显示场景。鸟瞰图显示探测结果。

5.3.8 导出传感器数据。

- 要将传感器数据导出到MATLAB工作区,请在应用程序工具条上,选择导出 > 导出传感器数据。命名工作区变量并单击 "确定"。应用程序将传感器数据保存为包含传感器数据的结构,如每个时间步的执行器姿势、对象探测和车道探测。

- 要导出生成场景及其传感器数据的 MATLAB 函数,请选择导出 > 导出 MATLAB 函数。该函数将传感器数据作为结构返回,将场景作为驾驶场景对象返回,将传感器模型作为视觉探测生成器返回。

radarDetectionGenerator和lidarPointCloudGenerator系统对象。通过修改该函数, 可以创建原始场景的变体。有关此过程的例子,请参见"以编程方式创建驾驶场景变体"。

5.3.9保存场景

因为预建场景是只读的,所以要将驾驶场景的副本保存到新文件夹中。要保存场景文件,在应用工具条上,选择保存 > 场景文件为。

可以从应用程序中重新打开该场景文件。另外,在MATLAB命令提示符下, 可以使用这个语法。

drivingScenarioDesigner(scenarioFileName)

还可以通过使用导出的drivingScenario对象重新打开场景。在 MATLAB 命令提示符下,使用以下语法,其中 scenario 是导出对象的名称。

drivingScenarioDesigner(scenario)

要重新打开传感器,请使用这个语法,其中sensor是一个传感器对象或这种对象的单元格阵列。

drivingScenarioDesigner(scenario,sensors)

如果在Simulink中开发驾驶算法,可以使用Scenario Reader块从场景文件或drivingScenario对象中读取道路和执行器到的模型中。该块不直接读取传感器数据。要将在应用程序中创建的传感器添加到Simulink模型中。通过选择 Export > Export Simulink Model 生成包含的场景和传感器的模型。在模型中,生成的场景阅读器块读取场景,生成的传感器块定义传感器。

(0)

相关推荐