主要内容

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

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

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

  2. 方法编写的场景中读取地面实况数据和载具轨迹驾驶场景设计师app,然后在Simulink模型中重新创建这个场景。

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

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

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

检查长方体驱动场景

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

在app中打开长方体驱动场景文件。

drivingScenarioDesigner (“StraightRoadScenario.mat”

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

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

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

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

  • 相邻行车线车辆- - - - - -肌肉车车辆维

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

要将车辆更改为不同的显示类型,请在演员选项卡在应用程序的左窗格,更新3 d显示类型该车辆的参数。要更改车辆的颜色,请选择所选车辆旁边的颜色补丁,并选择新的颜色。

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

开放式三维仿真模型

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

open_system (“Visualize3DSimulationSensorCoveragesDetections”

检查现场配置

仿真3D场景配置块将模型配置为在3D环境中进行模拟。

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

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

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

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

检查车辆配置

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

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

车辆原点的位置在长方体和3D场景中是不同的。

  • 在长方体场景中,车辆原点在地面上,在后桥的中心。

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

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

每个立方体到3D模拟块输出XY,偏航直接输入相应的车辆块的值。在三维仿真环境中,三维场景的地面地形决定了Z-车辆的位置(仰角)、横摇角度和俯仰角。

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

检查传感器配置

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

  • 模拟三维概率雷达传感器块根据统计模型生成目标检测。这个传感器安装在自我车辆的前保险杠上。

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

中指定传感器驾驶场景设计师导出的块与3D仿真环境不兼容。必须在模型中直接指定3D模拟传感器。

模拟和可视化场景

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

首先,打开作用域。在Simulink工具条上,下面审查结果,点击鸟瞰的范围.然后,单击,查找作用域可以显示的信号找到信号

要运行模拟,请单击运行在模型或作用域中。当模拟开始时,初始化3D模拟窗口可能需要几秒钟的时间,特别是当您第一次在Simulink会话中运行它时。当这个窗口打开时,它将显示高保真图形的场景,但不显示检测或传感器覆盖范围。

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

该模型以每挂钟秒0.5秒的速度运行模拟。要调整节奏,请在Simulink工具条中选择执行>模拟起搏命令,然后移动滑块来增加或减少模拟的速度。

修改驾驶场景

修改驾驶场景时,可能需要更新驾驶场景设计师app, Simulink模型,或者两者都有,这取决于你改变了什么。

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

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

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

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

  • 设置一个新的自我载体-在应用里,在演员选项卡,选择你想设置为自我车辆,并单击作为自我的载体.在模型中,在长方体到3D仿真块中,更新ActorID用于转换说明哪辆车是新的自我车的参数。在传感器块中,设置父母的名字将传感器安装在新的自我飞行器上。

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

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

另请参阅

应用程序

相关的话题

Baidu
map