主要内容

可视化传感器数据从虚幻引擎模拟环境

这个示例演示了如何在3D仿真环境中可视化从高保真雷达和激光雷达传感器获得的传感器覆盖和探测。在这个例子中,您将学习如何:

  1. 配置Simulink万博1manbetx®模型在3D环境中进行模拟。该环境使用Epic Games®的虚幻引擎®进行渲染。

  2. 读取地面真实数据和车辆轨迹驾驶场景设计师app,然后在Simulink模型中重新创建这个场景。万博1manbetx

  3. 添加雷达和激光雷达传感器到这些模型使用仿真三维概率雷达模拟3 d激光雷达块。

  4. 可视化的驾驶场景和生成的传感器数据鸟瞰的范围

您可以使用这些可视化和传感器数据来测试和改进您的自动驾驶算法。您还可以扩展此示例,以融合检测并可视化对象跟踪结果,如在Simulink中利用合成雷达和视觉数据进行传感器融合万博1manbetx的例子。

查看长方体驾驶场景

在这个例子中,地面真实值(道路、车道和参与者)和车辆轨迹来自于在驾驶场景设计师在这个应用程序中,车辆和其他角色被表示为简单的盒子形状,称为长方体.有关编写长方体场景的详细信息,请参见交互式创建驾驶场景,生成合成传感器数据的例子。

在app中打开长方体驾驶场景文件。

drivingScenarioDesigner (“StraightRoadScenario.mat”

在应用程序中,运行场景模拟。在这个场景中,自我汽车(一辆蓝色的汽车)以恒定的速度沿着一条直线向北行驶。在相邻的车道上,一辆橙色的车以稍高的匀速向北行驶。在对面的车道上,一辆黄色卡车匀速向南行驶。

在编写稍后在3D模拟环境中重新创建的驾驶场景时,必须使用与默认3D场景相同的道路网络。否则,在重新创建的场景中,车辆和传感器的位置不准确。这个驱动场景使用了直路现场。要选择3D场景的不同长方体版本,请在应用程序工具条上选择打开>预建场景> Simulation3D并从可供选择的场景中进行选择。并不是所有的3D场景都有相应的版本。

长方体场景中的车辆尺寸也必须与预定义的3D仿真车辆类型之一的尺寸相匹配。在应用程序的工具条,下面3 d显示,使用3D模拟演员尺寸选择将每个长方体车辆设置为3D车辆类型的尺寸。在这个场景中,车辆有这些3D显示类型和相应的车辆尺寸。

  • 自我的车辆- - - - - -轿车车辆维

  • 相邻车道车辆- - - - - -肌肉车车辆维

  • 对面车道车辆- - - - - -箱车车辆维

将车辆改变为不同的显示类型,在演员选项卡的左边窗格,更新3 d显示类型那辆车的参数。要改变车辆的颜色,选择选定车辆旁边的色块,并选择一个新的颜色。

要预览车辆在3D环境中如何显示,请使用应用程序提供的3D显示窗口。在应用程序工具条上,选择3D显示>在3D显示中的视图模拟然后重新运行模拟。

开放三维仿真模型

本例中使用的模型重新创建了长方体驾驶场景。该模型还定义了高保真传感器,从环境中生成合成检测。打开模型。

open_system (“Visualize3DSimulationSensorCoveragesDetections”

检查现场配置

模拟3D场景配置块配置模型以在3D环境中模拟。

  • 场景名称参数设置为默认值直路现场。这个场景对应于app场景文件中定义的长方体版本。

  • 场景视图参数设置为自我的车辆.在仿真过程中,3D仿真窗口显示从ego车辆后面的场景。

场景的读者Block从应用程序场景文件中读取地面真实数据(道路边界、车道标记和演员姿势)。的鸟瞰的范围可视化这个地面真实数据,而不是3D仿真环境的地面真实数据。为了在长方体和三维仿真环境中使用相同的场景,两个环境的地面真实数据必须匹配。如果您正在创建一个新的场景,那么您可以生成一个scenario Reader块来从您的场景文件中读取数据。首先,在驾驶场景设计师然后,在app工具栏上选择导出Simulink模型万博1manbetx.如果更新场景,则不需要生成新的scenario Reader块。

模拟3D场景配置块和场景读取块都有它们的样品时间参数设置为0.1.此外,所有其他3D仿真车辆和传感器块都继承了仿真3D场景配置块的采样时间。通过在整个模型中设置单个样本时间,鸟瞰的范围以恒定速率显示来自所有块的数据。如果地面真实数据和传感器数据有不同的采样时间,那么scope就会在不同的时间间隔对它们进行可视化。这个过程导致地面真实和传感器数据可视化闪烁。

检查车辆配置

模拟3D车辆与地面跟踪块指定了车辆在三维仿真环境中的外观和轨迹。每一辆车都直接对应于在驾驶场景设计师应用场景文件。

在3D环境中,车辆位置是世界坐标。然而,Scenario Reader块以自我载体坐标输出非自我行为者的姿态。一个汽车世界布洛克将这些非自我的演员姿势转换成世界坐标。因为自我载体是在世界坐标中输出的,这个转换对于自我载体是不必要的。有关车辆和世界坐标系统的更多细节,请参阅自动驾驶工具箱中的坐标系统

在长方体和3D场景中,车辆起源的位置不同。

  • 在长方体的情况下,车辆的原点是在地面上,在后轴的中心。

  • 在3D场景中,车辆的原点在地面上,在车辆的几何中心。

长方体到三维仿真块将长方体原点位置转换为三维仿真原点位置。在用于转换的ActorID这些块的参数ActorID每辆车的属性决定了要转换哪辆车的来源。Scenario Reader块输出ActorID值的演员输出端口。在驾驶场景设计师App,你可以找到相应的ActorID值的演员选项卡,在角色选择列表中。的ActorID对于每个车辆,冒号前面的值。

每个长方体到三维仿真块输出XY,偏航值直接提供给它们相应的车辆块。在三维仿真环境中,三维场景的地面地形决定了三维场景Z-位置(仰角)、横摇角和俯仰角。

在每个模拟3D车辆地面跟踪块,类型参数对应于3 d显示类型在应用程序中为该车辆选择颜色参数对应于应用程序中指定的车辆颜色鸟瞰的范围与3D仿真窗口,指定的类型和颜色必须匹配。要在应用程序中改变车辆的颜色,在演员选项卡中,单击演员选择列表中演员名称右侧的颜色贴片。选择最接近的颜色匹配的颜色颜色仿真三维车辆地面跟随块的参数。

检查传感器配置

该模型包括两个传感器模块,具有默认参数设置。这些块从3D仿真环境中生成检测。

  • 仿真三维概率雷达传感器块基于统计模型生成目标检测。这个传感器安装在ego汽车的前保险杠上。

  • 模拟3 d激光雷达传感器块以点云的形式产生检测。这个传感器安装在ego汽车顶部的中心。

尽管你可以在驾驶场景设计师app导出到Simulink,导出的块与3D仿万博1manbetx真环境不兼容。您必须在模型中直接指定3D仿真传感器。

模拟和可视化场景

在模拟过程中,您可以在3D模拟窗口和鸟瞰的范围

首先,打开scope。在Simuli万博1manbetxnk工具条上,在审查结果,点击鸟瞰的范围.然后,单击该示波器可以显示的信号找到信号

要运行模拟,请单击运行在模型或范围中。当模拟开始时,3D模拟窗口可能需要几秒钟来初始化,特别是当你在Simulink会话中第一次运行它时。万博1manbetx当此窗口打开时,它将以高保真图形显示场景,但不显示检测或传感器覆盖。

鸟瞰的范围使用长方体表示显示检测和传感器覆盖。雷达覆盖区域和探测结果显示为红色。激光雷达覆盖区域为灰色,点云探测显示为parula彩图。

该模型以每挂钟秒0.5秒的速度运行模拟。要调整节奏,请从Simulink工具条中选择万博1manbetx运行>模拟节奏,然后移动滑块来增加或减少模拟的速度。

修改驾驶场景

当修改您的驾驶场景时,您可能需要更新驾驶场景设计师应用程序,Simu万博1manbetxlink模型,或者两者都有,这取决于你改变什么。

  • 修改道路网-在应用程序中,选择一个新的预构建场景Simulation3D文件夹中。不要修改这些道路网络,否则道路将与选定的3D场景中的道路不匹配。在模型中,在仿真3D场景配置块中,选择对应的场景场景名称参数。

  • 修改车辆轨迹—在app中修改车辆轨迹并保存场景。在模型中,您不需要更新任何内容来解释此更改。Scenario Reader块自动获取这些更改。

  • 修改车辆出场-在应用程序中,更新颜色和3 d显示类型车辆参数。还要确保3D显示>使用3D模拟演员尺寸选项被选中。在模型中,更新颜色类型参数对应的仿真三维车辆地面跟随块。

  • 增加一辆新车-在应用程序中,创建一个新的车辆,并指定轨道,颜色和3D显示类型。在模型中添加一个新的带有地面跟随块和相应长方体的仿真三维车辆到三维仿真块。设置这些模块的方式类似于现有的非自我车辆的设置方式。在“长方体到3D模拟”模块中,设置ActorID这辆新车。

  • 设置一个新的自我载体-在应用里,在演员选项卡,选择要设置为自我车辆的车辆,然后单击作为自我载体.在模型中,在长方体到三维仿真块中,更新用于转换的ActorID参数说明哪辆车是新的自我车。在传感器块中,设置父母的名字这样的参数,传感器安装到新的自我汽车。

  • 修改或添加传感器-在应用程序中,您不需要做任何更改。在模型中,修改或添加传感器块。添加传感器块时,设置父母的名字所有对自我飞行器的传感器。

来可视化任何更新的场景鸟瞰的范围,你必须按找到信号一次。如果修改场景或只对传感器数据可视化感兴趣,可以考虑在模拟期间关闭3D窗口。在仿真3D场景配置块中,清除显示三维仿真窗口参数。

另请参阅

应用程序

相关的话题