高速公路车道后走鹃场景
这个例子展示了如何配置和使用一个场景模拟高速公路车道后应用程序中创建走鹃3 d场景编辑工具。这个例子密切遵循高速公路车道后的例子。
介绍
高速公路车道系统引导汽车旅行之后在一个车道。它还维护一组速度或安全距离前面的车辆在同一车道上。系统通常包括视觉处理、传感器融合决策逻辑,控制组件。确保安全功能和互操作性,这个系统需要测试在各种路况。例如,测试场景,不同的阴影,车道标记类型,和道路材料可以更容易识别边界情况。
走鹃是一个交互式编辑器,它使您能够设计3 d场景模拟和测试自动驾驶系统。你可以使用走鹃创建道路,车道标志,道路标志、植被和场景,在3 d环境中不同的复杂性。
的高速公路车道后例子,这个例子是基于显示了如何模拟场景连续弯曲和道路场景。这个案例展示了如何模拟场景与场景中创建走鹃。场景包含阴影变化,车道标记类型,和道路材料用来测试视觉处理系统功能的影响。在本例中,您将:
复习场景:探索中创建的场景和公路段走鹃。
场景融入驾驶场景:出口的道路网走鹃场景一个OpenDRIVE®文件,然后将该文件导入到一个驾驶场景。然后,添加一个车辆的场景和模拟的场景。
场景融入虚幻引擎的场景:走鹃场景导出到一个虚幻引擎®游戏并连接一个仿真软件®模型这一幕。万博1manbetx导入的驾驶场景指定车辆构成。添加传感器的车辆和模拟的场景。
集成场景到后巷的应用程序:使用前面几节中所述的技术,您走鹃的场景融入高速公路车道后的场景。然后,添加额外的目标车辆的场景,模拟系统在一个场景中,从没有阴影,阴影。
探索更多的场景:另外模拟场景车道标记和道路类型变化。将这些技术应用到自己的设计中。
您可以使用这个示例中使用的建模模式和技术导入自己的场景和测试你的算法。
在本例中,您启用系统级模拟通过与虚幻引擎从史诗游戏®集成。这种模拟环境需要一个Windows®64位平台。
如果~ ispc错误([“3 d模拟仅支持微软的万博1manbetxchar (174),…“窗口”char (174),“。”]);结束
保证仿真结果的再现性,设置随机种子。
rng (0);
本例中还需要您下载自动驾驶工具箱™接口为虚幻引擎4项目支持包。万博1manbetx
pathToUnrealExe = fullfile (…matlabshared.万博1manbetxsupportpkg.getSupportPackageRoot,…“工具箱”,“共享”,“sim3dprojects”,“开车”,“RoadRunnerScenes”,…。“WindowsPackage”,“RRScene.exe”);如果(~存在(pathToUnrealExe“文件”)错误(”这个例子需要你下载并安装自动驾驶工具箱为虚幻引擎接口4项目支持包的万博1manbetx);结束
检查现场
这个例子包括一个场景(RRHighway.rrscene
),目的是在走鹃。如果你安装了走鹃,你可以遵循的工作流程走鹃项目和现场系统(走鹃)话题打开RRHighway.rrscene
现场。
这个场景是为了对车道跟踪系统构成挑战。这张图片显示了道路网络分为六个部分。每个部分逐步增加了场景的变化如下:
第一节包含虚线车道没有护栏。
第二部分包含破灭道的护栏。
第三节增加了树木,阴影在车道标记。
第四节包含树不投射阴影车道标志。
第五节包含固体车道标记而不是虚线车道标记。
第六节道路材料更轻的质地与其他部分相比。
例如,下图展示了第三节之间的过渡(树不投射阴影车道标记)和第四节(用树做阴影车道标记)。
下图展示了第四节之间的过渡(虚线车道标记)和第5节(固体车道标记)。
下面的图片显示了之间的过渡(深色道路材料)和第六节第5节(轻道路材料)。
场景融入驾驶场景
常见的场景导入驾驶场景的动机是使车辆和轨迹,交互地或以编程方式。你可以走鹃的道路网络场景融入驾驶场景通过使用这些步骤:
出口OpenDRIVE文件从走鹃。
OpenDRIVE文件导入到驾驶场景。
增加车辆和轨道驾驶场景。
模拟驾驶的场景。
出口OpenDRIVE文件从走鹃
走鹃使您可以导出许多场景文件格式,包括OpenDRIVE®。了解更多关于OpenDRIVE出口流程,明白了出口到ASAM OpenDRIVE(走鹃)。这个例子包含一个OpenDRIVE文件(RRHighway.xodr
从走鹃场景)出口(RRHighway.rrscene
使用过程中所描述的主题)。
OpenDRIVE文件导入到驾驶场景
OpenDRIVE文件可以导入到长方体驾驶场景。了解更多关于这个工作流,明白了高速公路使用Frenet参考路径轨迹规划。
创建一个驾驶场景和导入OpenDRIVE道路网络。对于本示例中,关掉OpenDRIVE进口国的警告。
场景= drivingScenario;
例如关闭警告OpenDRIVE进口国的目的
警告(“关闭”,“开车:场景:OpenDRIVEWarnings”);roadNetwork(场景中,“OpenDrive”,“RRHighway.xodr”);
增加车辆和轨道驾驶场景
您可以添加车辆一个场景以编程方式或交互。这个例子显示了程序化的工作流程。添加车辆交互使用驾驶场景设计师应用程序。
添加一个车辆的道路网络使用一组预定义的锚点。这些锚点连接作为支持文件,万博1manbetxmanualwaypoints.mat
。
v =车辆(场景中,“ClassID”1);负载(“manualWaypoints.mat”,“锚点”);速度= 20;% m / s轨迹(v,锚点、速度);
驾驶模拟场景
情节驱动场景在世界坐标。还绘制场景从车辆的角度通过使用一个追逐情节。
hFigScenario =图;p1 = uipanel (“位置”0.5,[0 0 1]);h1 =轴(“父”,p1);情节(场景中,“锚点”,“上”,“父”、h1);p2 = uipanel (“位置”(0.5 0 0.5 - 1));h2 =轴(“父”,p2);chasePlot (v,“父”、h2);
将图的可见性。
集(hFigScenario,“可见”,“关闭”);
您可以选择继续探索、模拟和编辑中的场景驾驶场景设计师drivingScenarioDesigner(场景)
。
场景融入虚幻引擎的场景
一个常见的场景导入虚幻引擎的动机是与相机使仿真系统,雷达,激光雷达传感器模型。你可以用一个虚幻引擎集成走鹃现场驾驶模拟场景中使用这些步骤:
出口走鹃虚幻引擎的场景。
配置虚幻引擎的场景。
创建试验台模型。
模拟试验台模型。
出口走鹃虚幻引擎的场景
走鹃允许出口虚幻引擎的场景。了解更多关于这个工作流,明白了出口用Filmbox虚幻(.fbx)文件(走鹃)。工作流包括出口Filmbox (.fbx)和XML文件,可以导入到虚幻编辑器。之后你打开一个场景在虚幻引擎编辑器中,您可能需要调整其他场景照明等方面。
这个例子使用一个虚幻引擎的场景(RRHighway
从走鹃场景)出口(RRHighway.rrscene
)。
配置虚幻引擎的场景
虚幻引擎的场景可以用仿真软件使用co-simulate万博1manbetxMathWorksSimulation
插件的自动驾驶工具箱为虚幻引擎4项目界面万博1manbetx支持包。安装包的支持,遵循的步骤万博1manbetx安装支持包定制场万博1manbetx景。
虚幻引擎的场景(RRHighway
)本例中使用已编译的MathWorksSimulation
插件。
创建试验台模型
你可以连接一个仿真软件联合仿真模型对万博1manbetx虚幻引擎。了解更多关于这个工作流,明白了模拟简单的驾驶场景和传感器在虚幻引擎环境。开环试验台模型(RRHighwayTestBench.slx
)使用此工作流连接到虚幻引擎的场景(RRHighway
)。
打开试验台模型场景。
open_system (“RRHighwayTestBench”);
打开这个模型运行helperSLRRHighwaySetup
脚本。这个脚本配置仿真3 d场景配置块RRHighwayTestBench
模型。
这个模型包含块,使模拟驾驶场景与虚幻引擎。
可视化的模型还包含块相机和激光雷达传感器。您可以使用鸟瞰图范围可视化从鸟瞰雷达和视觉检测。学习如何配置这个范围,明白了想象从虚幻引擎模拟环境传感器数据。
模拟试验台模型
模拟模型。车辆驾驶场景中定义的轨迹。
sim卡(“RRHighwayTestBench”);
到后巷的应用程序集成场景
您可以重用前面几节中所述的技术来模拟和评估一个闭环系统,如高速公路车道后的应用程序。这部分重用模型、辅助函数和技术中描述高速公路车道后的例子。
探索试验台模型,打开一个工程实例文件的工作副本。MATLAB™复制文件到一个文件夹中,这样您就可以编辑它们。
目录(fullfile (matlabroot,“工具箱”,“开车”,“drivingdemos”));helperDrivingProjectSetup (“HighwayLaneFollowing.zip”,“workDir”pwd);
开放和配置系统级试验台模型。
open_system (“HighwayLaneFollowingTestBench”);scenarioFcnName =“scenario_RRHighway_01_NoShadowToShadow”;helperSLHighwayLaneFollowingSetup (“scenarioFcnName”,scenarioFcnName);
场景融入驾驶场景
的第一个参数helperSLHighwayLaneFollowingSetup
是一个函数的名称创建一个兼容的驾驶场景吗HighwayLaneFollowingTestBench
。的scenario_RRHighway_01_NoShadowToShadow
函数创建这开车的场景。进口的RRHighway.xodr
OpenDRIVE文件并添加车辆在道路段,从没有影子的影子。你可以探索这个函数创建场景。了解更多关于编程技术它利用一些辅助功能,您可以使用简化添加车辆和导入的道路网络的轨迹。探索scenario_RRHighway_01_NoShadowToShadow
更多地了解helper函数和它们的用法。
的helperSLHighwayLaneFollowingSetup
函数创建一个变量情况下的基本工作空间。情节这个场景和注意的区域场景模拟。
hFigScenario =图;p1 = uipanel (“位置”0.5,[0 0 1]);h1 =轴(“父”,p1);情节(场景中,“锚点”,“上”,“父”、h1);p2 = uipanel (“位置”(0.5 0 0.5 - 1));h2 =轴(“父”,p2);chasePlot (scenario.Actors (1),“父”h2)
将图的可见性。
集(hFigScenario,“可见”,“关闭”);
场景融入虚幻引擎的场景
的HighwayLaneFollowingTestBench
模型包含视觉检测算法组件,提出车辆传感器融合、和控制。仿真3 d场景子系统集成与驾驶场景模型和相应的虚幻引擎的游戏。
打开模拟3 d场景子系统。
open_system (“HighwayLaneFollowingTestBench /模拟3 d场景”)
注意,这个子系统重用的建模技术和块前面描述的这个例子。
主要的差别是:
闭环控制下的自我车辆。
目标车辆被添加到场景中。
后巷示例不使用激光雷达传感器。
模拟模型来看到自我车辆行为的场景。
sim卡(“HighwayLaneFollowingTestBench”);
系统能够探测和跟踪车道在阴影存在的条件。更多细节关于如何分析仿真结果,请参考高速公路车道后的例子。
关闭图。
关闭(hFigScenario);
探索更多的场景
这个示例提供了额外的场景,您可以用它来测试系统的行为。
scenario_RRHighway_02_DashedToSolidMarkings
功能配置测试场景,这样自我车辆导航从第四节到第五节的场景。这使得测试车道后申请从虚线车道标记过渡到固体车道标记。scenario_RRHighway_03_DarkToLightRoadMaterial
功能配置测试场景,自我从第五节车辆导航到第六节的场景。这使得测试车道后申请从深变形过渡道路材料轻纹理道路材料。
您可以配置模型和使用的工作区与这些场景helperSLHighwayLaneFollowingSetup
函数。例如,这个代码配置试验台模拟一个场景在该地区道路材料的变化。
helperSLHighwayLaneFollowingSetup (“scenarioFcnName”,…“scenario_RRHighway_03_DarkToLightRoadMaterial”);
启用警告OpenDRIVE进口国。
警告(“上”,“开车:场景:OpenDRIVEWarnings”);
可以将这些技术应用到走鹃场景融入驾驶场景仿真和测试你的系统。