主要内容

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

此示例演示如何创建驾驶场景,并使用驾驶场景设计师应用程序。您可以使用这些合成数据来测试控制器或传感器融合算法。

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

创建驾驶场景

要打开应用程序,请在®在命令提示下,输入drivingScenarioDesigner

添加一个路

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

并排的图像。在第一幅图像中,一条虚线从画布的右下角延伸到左上角。在第二幅图像中,虚线被笔直的道路取代。

若要制作道路曲线,请添加道路中心绕着它弯曲。在道路中间单击鼠标右键,然后选择添加道路中心. 然后将添加的道路中心拖动到画布的一个空角。

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

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

添加通道

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

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

道路两侧的白色实心车道标记表示路肩。中间的黄色双实心车道标记表示该道路为双向道路。要检查或修改这些车道,请从车道标志列表中,选择一条车道并修改车道参数。

增加障碍

要沿弯曲道路的边缘添加路障,请使用应用程序工具条或道路关联菜单。在应用程序工具条上,单击添加演员>新泽西护栏. 将光标移动到道路的右边缘,然后单击以沿道路添加路障。这也打开了新的窗口障碍左窗格上的选项卡。若要在屏障段之间添加1m的间隙,请更改段差距(m)房地产障碍表1。

一条弯曲的道路,其右边缘有泽西栅栏

要使用“道路”关联菜单将护栏护栏添加到道路的左边缘,请在道路上单击鼠标右键,然后选择添加护栏>左边缘. 使用以下命令在护栏的护栏段之间指定1m的间隙:段差距(m)房地产障碍标签。

一条弯曲的道路,其右侧边缘有新泽西护栏,左侧边缘有护栏

添加车辆

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

增加自我的车辆

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

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

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

调整汽车的速度。在左侧窗格中的演员选项卡,设置恒速15米/秒。为了更好地控制汽车的速度,请在v(米/秒)航路点、速度、等待时间和偏航桌子

添加第二辆车

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

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

添加行人

再加上一个场景,一个行人横穿马路。放大道路中间,在道路一侧单击鼠标右键,然后单击添加行人. 然后,要设置行人的路径,请在道路的另一侧添加一个航路点。

增加到路边的行人

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

要测试汽车和行人的速度,请运行模拟。根据需要调整演员速度或其他属性,方法是从屏幕左侧窗格中选择演员演员标签。

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

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

默认情况下,模拟在第一个参与者完成其轨迹时结束。要仅在所有参与者完成其轨迹后结束模拟,请在app toolstrip上,首先单击设置.然后,设置停止条件最后一个演员停下来

添加传感器

向ego车辆添加摄像头、雷达和激光雷达传感器。使用这些传感器从场景生成检测和点云数据。

添加摄像头

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

传感器画布上带有摄像头,摄像头连接到ego车辆的前保险杠上。

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

默认情况下,摄影机仅检测演员,而不检测车道。要启用车道检测,请在传感器选项卡,展开左窗格中的检测参数节和集检测类型物体与车道. 然后展开车道的设置节,并根据需要更新设置。

添加雷达

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

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

雷达传感器旋转的动画

在右前轮上添加相同的雷达传感器。右键单击左前轮上的传感器,然后单击复制. 然后右键单击右前轮的预定义传感器位置,然后单击粘贴. 复制传感器的方向与对面车轮上传感器的方向一致。

传感器画布上的两个雷达传感器都朝前倾斜

添加激光雷达

将激光雷达传感器卡到车顶中心。在屋顶中心的预定义传感器位置上单击鼠标右键,然后选择添加激光雷达

将带有激光雷达传感器的传感器画布添加到屋顶中心

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

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

生成合成传感器数据

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

情节的鸟瞰图

这个自我中心观从自我载体的角度显示场景。

以自我为中心的情景观

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

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

默认情况下,场景在第一个参与者停止移动时结束。要在设定的时间内运行场景,请在app toolstrip上单击设置并改变停止条件。

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

  • 要将传感器数据导出到MATLAB工作区,请在app toolstrip上选择出口>导出传感器数据.命名工作区变量并单击好吧. 应用程序将传感器数据保存为包含传感器数据的结构,如演员姿势、对象检测和每个时间步的车道检测。

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

保存场景

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

您可以从应用程序重新打开此方案文件。或者,在MATLAB命令提示符下,可以使用此语法。

驱动场景设计器(场景文件名)
您还可以使用导出的脚本重新打开该场景驾驶场景对象在MATLAB命令提示下,使用以下语法,其中脚本是导出对象的名称。
驾驶场景设计师(场景)
要重新打开传感器,请使用以下语法传感器是传感器对象或此类对象的单元阵列。
驾驶场景设计器(场景、传感器)
如果你在Simulink中开发一个驾驶算法万博1manbetx®,你可以使用场景阅读器块从场景文件中读取道路和参与者,或驾驶场景对象插入到模型中。此块不直接读取传感器数据。要将您在应用程序中创建的传感器添加到Simulink模型,请通过选择生成包含您的场景和传感器的模万博1manbetx型出口>导出Simul万博1manbetxink模型.在模型中,生成的场景阅读器块读取场景,生成的传感器块定义传感器。

另见

应用程序

物体

相关的话题