这个例子展示了创建场景和生成合成传感器数据的整个工作流程。另外,还可以从预建场景中生成传感器数据。
要打开应用程序,在MATLAB命令提示符下,输入
drivingScenarioDesigner
在场景画布上添加一条弯曲的道路。在应用工具条上,单击 "添加道路"。然后单击画布的一个角,将道路延伸到另一个角,并双击画布以创建路。
要使道路成为曲线,请在其周围添加一个道路中心,使其成为曲线。右击道路中间,选择添加道路中心。然后将添加的道路中心拖到画布的一个空角上。
要进一步调整道路,可以点击并拖动任何一个道路中心。要创建更复杂的曲线,请添加更多的道路中心。
3 添加车道
默认情况下,道路是单车道,没有车道标记。为了使场景更逼真,请将道路转换为双车道公路。在左窗格中,在 "道路 "选项卡上,展开 "车道 "部分。将 "车道数 "设置为[1 1]。应用程序将车道宽度参数设置为3.6米,这是一个典型的高速公路车道宽度。
道路两边的白色实心车道标线表示是路肩。中间的黄色双实线标记表示该道路为双向道路。要检查或修改这些车道,可从车道标记列表中选择其中一条车道并修改车道参数。
默认情况下,添加到场景中的第一辆车是被控车辆,它是驾驶场景中的主车。车辆包含探测车道标记、行人或场景中其他车辆的传感器。添加被控车辆后,再添加第二辆车供被控车辆探测。
4.1 添加被控车辆
要添加被控车辆,右击道路一端,选择添加汽车。要指定小汽车的跟踪,右击小汽车,选择添加航点,沿路添加小汽车要经过的航点。在添加沿路的最后一个航点后,按 Enter。汽车会按照第一个航点的方向自动旋转。为了在跟踪上获得更高的精度, 可以调整航点。
也可以右键单击路径来添加新的航点。
三角形表示车辆的姿势,原点位于车辆后轴中心。
调整汽车的速度。在左侧窗格的 "执行器"选项卡上,将 "恒定速度 "设置为15米/秒。要想更多地控制汽车的速度,可在航点、速度、等待时间和偏航表的v (m/s)列中设置航点之间的速度。
4.2添加第二辆车
为被控车辆传感器探测添加车辆。在应用工具条上,点击 "添加执行器",选择 "汽车"。添加第二辆带有航点的汽车,在与被控车辆相反的车道上行驶,并在道路的另一端。保持汽车的速度和其他设置不变。
5增加一个行人
在场景中添加一个过马路的行人。放大马路中间,右键点击马路一侧,然后点击添加行人。然后,为了设置行人的路径,在道路的另一侧添加一个航点。
默认情况下,行人的颜色几乎与车道标线的颜色一致。为了使行人更加突出,在 "执行器 "选项卡中,点击行人对应的颜色补丁,修改其颜色。
要测试汽车和行人的速度,请运行仿真。从"执行器 "选项卡的左侧窗格中选择执行器,根据需要调整执行器的速度或其他属性。
例如,如果汽车与行人相撞,在航点、速度、等待时间和航向角的v(m/s)栏中,调整汽车或行人的速度。另外,在表中的等待(s)栏中,设置行人过街前汽车在航点的等待时间。
默认情况下,当第一个执行器完成其跟踪时,仿真就会结束。要在所有执行器完成其跟踪后才结束仿真,在应用程序工具条上,首先单击 "设置"。然后,将 "停止条件 "设置为 "最后一个执行器停止"。
给被控车辆添加摄像头、雷达和激光雷达传感器。使用这些传感器来生成场景中的探测和点云数据。
6.1 添加摄像头
在应用程序工具条上,单击 "添加相机"。传感器画布显示了放置传感器的标准位置。点击最前面的预定义传感器位置,将摄像头传感器添加到被控车辆的前保险杠上。
为了更精确地放置传感器,可以禁用捕捉选项。在传感器画布的左下角,单击配置传感器画布按钮 。
默认情况下,摄像机只探测执行器,不探测车道。要启用车道探测,请在左侧窗格的传感器选项卡上,展开 "探测参数 "部分并将 "探测类型 "设置为 "对象和车道"。然后展开车道设置部分,并根据需要更新设置。
6.2 添加雷达
将雷达传感器卡在前左轮上。右键单击车轮的预定义传感器位置,然后选择添加雷达。默认情况下,添加到车轮上的传感器是短程传感器。
将雷达传感器向车头倾斜。将光标移动到覆盖区域,然后单击并拖动角度标记。
在前右轮上添加一个相同的雷达传感器。右键单击前左轮上的传感器,然后单击复制。然后右键单击前右轮的预定义传感器位置,并单击粘贴。复制的传感器的方向与对面轮子上传感器的方向一致。
6.3 添加激光雷达
将激光雷达传感器卡在车顶中心。右键单击车顶中心预定义的传感器位置,选择添加激光雷达。
激光雷达传感器显示为黑色。车辆周围的灰色是传感器的覆盖区域。放大可查看不同传感器覆盖区域的全貌。
7生成合成传感器数据
要从传感器生成数据,请单击 "运行"。随着方案的运行,"鸟瞰图 "将显示探测到的数据和点云数据。
以被控为中心的视图从被控车辆的角度显示场景。
由于指定了激光雷达传感器,"被控中心视图 "和 "鸟瞰图 "都显示了执行器的网格表示,而不是立方体表示。激光雷达传感器使用这些更详细的执行器表示来生成点云数据。场景画布仍然只显示立方体表征。雷达和视觉传感器的探测基于立方体表示。
要关闭执行器网格、某些类型的探测或显示的其他方面,请使用应用程序工具条上显示下的属性。
默认情况下,当第一个执行器停止移动时,场景就会结束。若要在设定的时间内运行场景,在应用工具条上,点击设置并更改停止条件。
接下来,导出传感器探测。
- 要将传感器数据导出到MATLAB工作区,在应用程序工具条上,选择导出>导出传感器数据。命名工作区变量,然后单击 "确定"。应用程序将传感器数据保存为包含传感器数据的结构,如执行器姿势、物体探测和车道探测,在每个时间步骤。
- 要导出生成场景及其传感器数据的 MATLAB 函数,请选择导出 > 导出 MATLAB 函数。该函数将传感器数据作为结构返回,将场景作为驾驶场景对象返回,将传感器模型作为视觉探测生成器返回。
radarDetectionGenerator和lidarPointCloudGenerator系统对象。通过修改该函数, 可以创建原始场景的变体。
生成探测后,单击 "保存 "保存场景文件。也可以将传感器模型保存为单独的文件,并将道路和执行器模型一起保存为单独的场景文件。
可以从应用程序中重新打开这个场景文件。另外,在MATLAB命令提示符下, 可以使用这个语法。
drivingScenarioDesigner(scenarioFileName)
还可以通过使用导出的drivingScenario对象重新打开场景。在 MATLAB 命令提示符下,使用以下语法,其中 scenario 是导出对象的名称。
drivingScenarioDesigner(scenario)
要重新打开传感器,请使用这个语法,其中sensor是一个传感器对象或这种对象的单元格阵列。
drivingScenarioDesigner(scenario,sensors)
如果 在Simulink中开发驾驶算法,可以使用Scenario Reader块从场景文件或drivingScenario对象中读取道路和执行器到 的模型中。该块不直接读取传感器数据。要将在应用程序中创建的传感器添加到Simulink模型中。
通过选择 Export > Export Simulink Model 生成包含的场景和传感器的模型。在模型中,生成的场景阅读器块读取场景,生成的传感器块定义传感器。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删