交互式创建驾驶场景并生成合成传感器数据
该示例演示如何创建一个驾驶场景,并从该场景生成视觉和雷达传感器检测驾驶场景设计师你可以使用这些合成数据来测试你的控制器或传感器融合算法。
这个示例展示了创建场景和生成合成传感器数据的整个工作流。另外,您也可以从预构建的场景中生成传感器数据。看到在驾驶场景设计器中预构建驾驶场景.
创建驾驶场景
打开应用程序,在MATLAB®命令提示符,输入drivingScenarioDesigner
.
添加一个路
在场景画布上添加一条曲线道路。在应用程序工具条上,单击增加道路.然后单击画布的一个角,将道路延伸到对面的角,双击画布创建道路。
要使这条路弯曲,就加一条道路中心绕它弯曲。右击道路中间并选择增加道路中心.然后拖动添加的道路中心到画布的一个空角。
要进一步调整道路,您可以单击和拖动任何道路中心。要创建更复杂的弯道,添加更多的道路中心。
添加通道
默认情况下,道路是单车道,没有车道标识。为了使场景更加真实,把这条路变成一条双车道的高速公路。在左边窗格,在道路选项卡中,扩大车道部分。设置数量的车道来[1]
.应用程序设置车道宽度参数3.6
米,这是典型的高速公路车道宽度。
道路两侧的白色实线标志表示路肩。中间的黄色双实心车道标志表示该路为双向道路。要检查或修改这些车道,请从车道标志列表,选择其中一个车道并修改车道参数。
添加障碍
要在弯曲道路的边缘添加障碍,请使用应用程序工具条或道路上下文菜单。在应用程序工具条上,单击添加演员>泽西岛的障碍.将光标移动到道路的右边缘,然后单击,沿着道路添加一个障碍物。这也打开了障碍选项卡。要在屏障段之间增加1m的间隙,请更改的值段差距(m)财产的障碍标签1。
若要使用道路上下文菜单在道路左侧边缘添加护栏,请在道路上右键单击并选择添加护栏>左边缘.为护栏指定护栏段之间1m的间隙,使用段差距(m)财产的障碍选项卡。
增加车辆
默认情况下,添加到场景中的第一辆汽车是自我的车辆,这是驾驶场景中的主要汽车。自我车辆包含传感器,用于检测该场景中的车道标记、行人或其他汽车。添加自我载具,然后添加第二辆车让自我载具去检测。
增加自我的车辆
要添加自我车辆,右键单击道路的一端,然后选择添加汽车.要指定汽车的轨迹,右键单击汽车,选择添加锚点,并在道路上添加路径点,让汽车通过。在沿途添加最后一个路标后,按输入.汽车向第一个航路点的方向自动旋转。为了获得更精确的轨迹,你可以调整路径点。您还可以右键单击该路径以添加新的路径点。
三角形表示车辆的姿态,原点位于车辆后桥的中心。
调整汽车的速度。在左边窗格,在演员选项卡,设置恒速来15
m / s。要更多地控制汽车的速度,请设置路径点之间的速度v(米/秒)列的航路点,速度,等待时间和偏航表格
添加第二辆车
添加一辆汽车,以供自我车辆传感器检测。在应用程序工具条上,单击添加演员并选择车.添加第二辆车的路径点,行驶在自我车辆对面的车道上,在道路的另一端。保持汽车的速度和其他设置不变。
添加一个行人
再加上一个行人过马路的场景。放大道路中间,右键单击道路一侧,然后单击增加行人.然后,为了设置行人的路径,在道路的另一边添加一个路径点。
默认情况下,行人的颜色几乎与车道标记的颜色匹配。使行人更加突出,从演员选项卡,单击行人对应的颜色补丁,可修改其颜色。
要测试汽车和行人的速度,运行模拟。控件的左窗格中选择参与者,根据需要调整参与者的速度或其他属性演员选项卡。
例如,如果汽车与行人相撞,在v(米/秒)列的航路点,速度,等待时间和偏航表,调整汽车或行人的速度。另外,在等待(年代)列表,设置行人过马路前,车辆在路径点的等待时间。
默认情况下,模拟在第一个参与者完成其轨迹时结束。要在所有参与者完成其轨迹后才结束模拟,首先在应用程序工具条上单击设置.然后,设置停止条件来最后男主角停止
.
添加传感器
为自我车辆添加相机、雷达和激光雷达传感器。使用这些传感器从场景中生成检测和点云数据。
添加相机
在应用程序工具条上,单击添加相机.传感器画布显示放置传感器的标准位置。点击最前面的预定义传感器位置,在自我车辆的前保险杠上添加一个摄像头传感器。
为了更精确地放置传感器,可以禁用捕捉选项。在传感器画布的左下角,单击Configure the sensor canvas按钮.
默认情况下,摄像头只检测演员,不检测车道。上启用车道检测传感器选项卡中,展开检测参数节和设置检测类型来对象和车道
.然后扩大车道的设置部分并根据需要更新设置。
添加雷达
在左前轮安装一个雷达传感器。右键单击车轮的预定义传感器位置并选择添加雷达.默认情况下,添加到车轮上的传感器是近程传感器。
将雷达传感器向汽车前方倾斜。将光标移到覆盖区域上,然后单击并拖动角度标记。
在右前轮上增加一个相同的雷达传感器。右键单击左前轮上的传感器,单击复制.然后右键单击用于右前轮的预定义传感器位置并单击粘贴.所述复制传感器的方向反映对面车轮上传感器的方向。
增加激光雷达
在车顶中心安装一个激光雷达传感器。右键单击屋顶中心的预定义传感器位置并选择增加激光雷达.
激光雷达传感器显示为黑色。车辆周围的灰色区域是传感器的覆盖区域。缩小以查看不同传感器覆盖区域的完整视图。
生成合成传感器数据
要从传感器生成数据,请单击运行.随着场景的运行,the鸟瞰的情节显示检测和点云数据。
的自我中心视图从自我载体的角度显示场景。
因为你指定了激光雷达传感器,所以自我中心视图而且鸟瞰的情节显示actor的网格表示,而不是长方体表示。激光雷达传感器使用这些更详细的参与者表示来生成点云数据。的场景帆布仍然只显示长方体表示。雷达和视觉传感器的检测基于长方体的表示。
要关闭参与者网格、某些类型的检测或显示的其他方面,请使用下面的属性显示在应用工具条上。
默认情况下,当第一个参与者停止移动时,场景结束。要在设定的时间内运行场景,请在应用程序工具条上单击设置并改变停止条件。
接下来,导出传感器检测:
要将传感器数据导出到MATLAB工作区,请在app工具条上选择出口>出口传感器数据.命名工作空间变量并单击好吧.该应用程序将传感器数据保存为一个结构,其中包含每个时间步的传感器数据,如演员姿势、物体检测和车道检测。
要导出生成场景及其传感器数据的MATLAB函数,请选择出口>出口MATLAB函数.该函数将传感器数据作为结构返回,将场景作为
drivingScenario
对象,传感器模型作为系统对象。通过修改此函数,您可以创建原始场景的变体。有关此过程的示例,请参见以编程方式创建驾驶场景变化.
保存场景
生成检测之后,单击保存保存场景文件。您还可以将传感器模型保存为单独的文件,并将道路和角色模型一起保存为单独的场景文件。
您可以从应用程序中重新打开该场景文件。或者,在MATLAB命令提示符中,您可以使用此语法。
drivingScenarioDesigner (scenarioFileName)
drivingScenario
对象。在MATLAB命令提示符处,使用此语法,其中场景
导出对象的名称。drivingScenarioDesigner(场景)
传感器
是传感器对象或此类对象的单元格数组。drivingScenarioDesigner(场景、传感器)
drivingScenario
对象放入模型中。该块不直接读取传感器数据。要将您在应用程序中创建的传感器添加到Simulink模型中,请通过选择生成包含您的场景和传感器的模型出口>出口仿真软件模型.在模型中,生成的场景的读者块读取场景,生成的传感器块定义传感器。
另请参阅
应用程序
块
对象
drivingScenario
|drivingRadarDataGenerator
|visionDetectionGenerator
|lidarPointCloudGenerator
|insSensor