主要内容

交互式创建驾驶场景,生成合成传感器数据

这个示例展示了如何创建一个驾驶场景,并通过使用驾驶场景设计师你可以使用这些合成数据来测试控制器或传感器融合算法。

这个示例展示了创建场景和生成合成传感器数据的整个工作流。或者,您可以从预构建的场景生成传感器数据。看到驾驶场景设计器中的预构建驾驶场景

创建驾驶场景

打开应用程序,在MATLAB®命令提示符,输入drivingScenarioDesigner

添加一个路

在场景画布上添加一条弯曲的道路。在应用程序工具条上,单击增加道路.然后单击画布的一个角,将道路扩展到另一个角,然后双击画布创建道路。

的图像。在第一张图片中,一条虚线从画布的右下角延伸到左上角。在第二幅图中,虚线被一条直线代替。

要使道路转弯,就加一个道路中心绕着它弯曲。右键单击道路中间并选择增加道路中心.然后拖动添加的道路中心到画布的一个空角落。

并排道路图像。在第一幅图中,中间道路的中心被轻微地向下拖动。在第二幅图中,中间道路的中心被拖下更多,形成一个弯曲的道路。

要进一步调整道路,可以单击并拖动任何道路中心。为了创造更复杂的曲线,添加更多的道路中心。

添加通道

默认情况下,这条路是单行道,没有车道标记。为了使场景更真实,将道路转换成双车道高速公路。在左侧窗格中道路选项卡中,扩大车道部分。设置数量的车道[1].应用程序设置车道宽度参数3.6米,这是典型的公路车道宽度。

有双实线的弯曲的道路,表示分开的公路。

道路两边的白色实线标志表示路肩。中间的黄色双实线标志表示这是一条双向道路。检查或修改这些车道,从车道标志列表,选择一个车道并修改车道参数。

添加障碍

要在弯曲道路的边缘添加障碍,请使用应用程序工具条或道路上下文菜单。在应用程序工具条上,单击添加演员>泽西岛的障碍.将光标移动到道路的右边缘,并单击在道路上添加障碍物。这也打开了障碍选项卡在左侧窗格上。如果在屏障段之间增加1m的间隙,则改变的值段差距(m)财产的障碍标签1。

右缘有泽西屏障的弯曲道路

要使用道路上下文菜单在道路的左边缘添加护栏,右键单击道路并选择添加护栏>左边缘.在护栏段之间指定1米的间距,使用段差距(m)财产的障碍选项卡。

一条弯曲的道路,右边缘有泽西屏障,左边缘有护栏

增加车辆

默认情况下,添加到场景中的第一辆车是自我的车辆它是驾驶场景中的主要车辆。自我车辆包含传感器,可以检测车道标记、行人或场景中的其他车辆。添加ego车辆,然后再添加另一辆车供ego车辆检测。

增加自我的车辆

要添加自我车辆,右键单击道路的一端,然后选择添加汽车.要指定汽车的轨迹,右键单击汽车,选择添加锚点,并在道路上增加车辆通过的路点。在你沿着道路添加最后一个路点之后,按输入.汽车自动转向第一个路标的方向。为了更精确的轨迹,你可以调整路径点。您也可以右键单击路径来添加新的路径点。

一辆蓝色汽车的轨迹一直延伸到车道的尽头。车上有个三角形指向轨迹的方向。

三角形表示车辆的姿态,原点位于车辆后轴的中心。

调整车速。在左侧窗格中演员选项卡,设置恒速15m / s。为更多的控制汽车的速度,设置之间的速度路径点v(米/秒)列的航路点、速度、等待时间和偏航表格

添加第二辆车

增加一辆车,让自我车辆传感器检测。在应用程序工具条上,单击添加演员并选择.增加另一辆带有路点的车,行驶在车道的对面,并且在道路的另一端。保持车速和其他设置不变。

一辆橙色的车开到对面的车道和路的另一头

添加一个行人

在这个场景中,一个行人正在过马路。放大道路中间,右键单击道路的一边,然后单击增加行人.然后,为了设置行人的路径,在道路的另一边添加一个路点。

路边的行人

默认情况下,行人的颜色几乎与车道标记的颜色匹配。使行人更加脱颖而出,从演员选项卡中,单击行人对应的色块可修改其颜色。

为了测试汽车和行人的速度,运行模拟。控件的左侧窗格中选择角色,根据需要调整角色速度或其他属性演员选项卡。

从下拉列表中选择“汽车(ego vehicle)”选项

例如,如果汽车与行人相撞,在v(米/秒)列的航路点、速度、等待时间和偏航表,调整汽车或行人的速度。另外,在等待(年代)列表中,设置行人过马路前的路点车辆等待时间。

默认情况下,当第一个参与者完成它的轨迹时,模拟结束。要在所有参与者完成他们的轨迹后才结束模拟,在应用程序工具条上,首先单击设置.然后,设置停止条件最后男主角停止

添加传感器

在ego车上增加摄像机、雷达和激光雷达传感器。使用这些传感器从场景中生成检测和点云数据。

添加相机

在应用程序工具条上,单击添加相机.传感器画布显示了放置传感器的标准位置。单击最前面预定义的传感器位置,将摄像机传感器添加到ego车辆的前保险杠。

传感器帆布与一个摄像头连接到自我汽车的前保险杠。

为了更精确地放置传感器,您可以禁用捕捉选项。在传感器画布的左下角,单击“配置传感器画布”按钮

默认情况下,相机只检测演员而不检测车道。启用车道检测,在传感器选项卡中,展开检测参数节和设置检测类型对象和车道.然后扩大车道的设置节并根据需要更新设置。

添加雷达

在左前轮安装一个雷达传感器。右键单击车轮的预定义传感器位置并选择添加雷达.默认情况下,添加到车轮上的传感器是短程传感器。

将雷达传感器倾斜到汽车前部。将光标移动到覆盖区域,然后单击并拖动角度标记。

雷达传感器旋转的动画

在前右轮上加一个相同的雷达传感器。右击左前轮上的传感器,然后单击复制.然后右击预定义的传感器位置的前右轮并单击粘贴.所述复制传感器的方向反映了在相反轮子上的传感器的方向。

带有两个雷达传感器的传感器画布向前面倾斜

增加激光雷达

将激光雷达传感器对准车顶中央。右键单击屋顶中心的预定义传感器位置并选择增加激光雷达

传感器帆布与激光雷达传感器添加到屋顶中心

激光雷达传感器显示为黑色。车辆周围的灰色区域是传感器的覆盖区域。缩小以查看不同传感器覆盖区域的完整视图。

传感器的放大视图。激光雷达覆盖区域包围车辆和雷达和相机覆盖区域。

生成合成传感器数据

要从传感器产生数据,请单击运行.在该场景运行时鸟瞰的情节显示检测和点云数据。

鸟瞰图的情节

自我中心视图从自我载体的角度显示场景。

以自我为中心的观点

因为你指定了一个激光雷达传感器自我中心视图鸟瞰的情节显示角色的网格表示,而不是长方体表示。激光雷达传感器使用这些更详细的参与者表示来生成点云数据。的场景帆布仍然只显示长方体表示。雷达和视觉传感器的检测基于长方体表示。

要关闭角色网格、某些类型的检测或显示的其他方面,请使用下面的属性显示在应用程序工具条上。

默认情况下,当第一个参与者停止移动时,场景结束。要运行场景设定的时间,在应用程序工具条上,单击设置并改变停止条件。

接下来,导出传感器检测:

  • 要将传感器数据导出到MATLAB工作空间,请在应用程序工具条上选择出口>出口传感器数据.命名工作区变量并单击好吧.该应用程序将传感器数据保存为一个包含传感器数据的结构,如在每个时间步骤中的行动者姿态、物体检测和车道检测。

  • 要导出生成场景及其传感器数据的MATLAB函数,请选择出口>出口MATLAB函数.该函数将传感器数据作为结构返回,场景作为drivingScenario对象,传感器模型作为系统对象。通过修改这个函数,您可以创建原始场景的变体。有关此过程的示例,请参见以编程方式创建驾驶场景变化

保存场景

生成检测后,单击保存保存场景文件。您还可以将传感器模型保存为单独的文件,并将道路和角色模型一起保存为单独的场景文件。

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

drivingScenarioDesigner (scenarioFileName)
您还可以使用导出的脚本重新打开该场景drivingScenario对象。在MATLAB命令提示符中,使用下面的语法场景导出对象的名称。
drivingScenarioDesigner(场景)
要重新打开传感器,请使用以下语法传感器是传感器对象或此类对象的单元格数组。
drivingScenarioDesigner(场景、传感器)
如果你在Simulink中开发一个驾驶算法金宝app®,你可以用a场景的读者块读取道路和演员从场景文件或drivingScenario对象插入到模型中。此块不直接读取传感器数据。要将您在应用程序中创建的传感器添加到Simulink模型,请通过选择生成包含您的场景和传感器的模金宝app型出口>出口仿真软件模金宝app型.在模型中,生成的场景的读者块读取场景,生成的传感器块定义传感器。

另请参阅

应用程序

对象

相关的话题