主要内容

高速公路车道后

此示例显示如何在具有视觉处理,传感器融合和控制器组件的应用程序之后模拟高速公路车道。这些组件在包括相机和雷达传感器模型的3D仿真环境中进行测试。

介绍

高速公路车道跟踪系统引导车辆在标明的车道内行驶。它还能与同一车道上的前车保持一定的速度或安全距离。该系统通常使用视觉处理算法从摄像机中检测车道和车辆。然后,摄像机的车辆检测与雷达检测融合,以提高感知的鲁棒性。控制器使用车道检测、车辆检测和设定速度来控制转向和加速。

这个例子演示了如何创建一个测试台架模型来测试3D仿真环境中的视觉处理、传感器融合和控制。试验台模型可以配置为不同的场景,以测试跟踪车道和避免与其他车辆碰撞的能力。在这个例子中,你:

  1. 分区算法和试验台- 该模型被划分为算法模型和测试台模型之后的车道。算法模型实现各个组件。测试台包括算法模型和虚拟测试框架的集成。

  2. 探索测试台模型- 试验台模型包含的测试框架,其中包括使用地面实况的情况下,自身车辆动力学模型和指标的评估。长方体方案定义车辆的轨迹,并指定地面实况。等效虚幻引擎®场景被用于从雷达传感器模型检测和图像从单眼照相机传感器。一种自行车模型用于自主车辆模型。

  3. 探索算法模型- 算法模型是实现视觉处理,传感器融合,决策逻辑的参考模型,并控制组件以构建应用程序后的主机。

  4. 可视化测试场景- 该方案包含多辆弯路。

  5. 模拟实验台模型—对模型进行仿真,测试视觉处理、传感器融合和控制组件的集成。

  6. 探索其他方案- 这些方案在额外的条件下测试系统。

测试控制器和感知算法的集成需要一个逼真的仿真环境。在本例中,您可以通过集成Epic Games®的虚幻引擎来实现系统级模拟。3D仿真环境需要Windows®64位平台。

如果~ ispc错误([“只有微软才支持3D模拟”金宝appchar (174),'Windows'char (174),“。”])结束

为保证仿真结果的再现性,设置随机种子。

rng (0)

分区算法和测试台

该模型分为算法模型和测试台模型。

  • 算法模型——算法模型是实现单个组件功能的参考模型。

  • 试验台模型 - 在高速公路车道追踪试验台指定的刺激和环境测试算法模型。

探索测试台模型

在这个例子中,你使用的系统级仿真测试平台模型探讨了以下系统车道控制和视觉处理算法的行为。打开系统级仿真测试平台模型。

open_system (“HighwayLaneFollowingTestBench”

该试验台模型包括以下模块:

  • 模拟3D场景 - 指定用于仿真的道路,车辆,摄像机传感器和雷达传感器的子系统。

  • 车道标记探测器 - 模型算法,以检测由所述相机传感器俘获的帧中的车道边界。

  • 车辆检测器-算法模型,用于检测被摄像机传感器捕获的帧内车辆。

  • 前向车辆传感器融合-融合来自相机和雷达传感器的车辆检测的算法模型。

  • 车道下列判定逻辑 - 算法模型来指定横向和纵向的决策逻辑,其提供有关的最重要的对象(MIO)和车道中心向控制器的信息。

  • 车道跟踪控制器-指定转向角度和加速度控制的算法模型。

  • 车辆动力学 - 指定自助式车辆的动态模型的子系统。

  • 度量评估 - 子系​​统,评估系统级行为。

仿真3D场景子系统配置道路网络,位置车辆和合成传感器。打开模拟3D场景子系统。

open_system (“HighwayLaneFollowingTestBench /模拟3 d场景”

现场和道路网络是由子系统的这些部分规定:

  • 模拟3D场景配置块的SceneName参数设置为弯曲的道路

  • 场景的读者块被配置为使用一个驾驶场景,该场景包含一个道路网络,与道路网络的一部分紧密匹配弯曲的道路场景。

车辆位置由子系统的以下部分指定:

  • 自我输入端口控制自主车辆,这是由模拟3D车辆指定与地面以下的1块的位置。

  • 汽车世界块将行动者的姿态从自我载体的坐标转换为世界坐标。

  • 场景的读者块输出actor姿势,控制目标车辆的位置。这些车辆由另一个车辆指定模拟3D带地面的车辆块。

  • 长方体到三维仿真块将自我姿态坐标系统(相对于车辆后桥中心以下)转换为三维仿真坐标系统(相对于车辆中心以下)。

附着于自我车辆的传感器由子系统的这些部分指定:

  • 仿真3D相机块连接到自助式车辆中以捕获其正视图。来自该块的输出图像由车道标记检测器块处理,以检测车道和车辆检测器块以检测车辆。

  • 模拟三维概率雷达配置块附连到自身车辆以检测三维模拟环境的车辆。

  • 测量偏差中心后桥模块将坐标系统模拟三维概率雷达配置块(相对于车辆中心下方)到自我姿势坐标(相对于车辆后轴的中心下方)。

车辆动力学子系统使用自行车模型块来建模自我车辆。打开车辆动力学子系统。

open_system (“HighwayLaneAledingTestbench /车辆动态”);

自行车模型块实现刚性双轴单轨车身模型,以计算纵向,横向和偏航运动。由于加速和转向,块占主体质量,空气动力阻力和轴之间的重量分布。有关更多详细信息,请参阅自行车模型

度量标准评估子系统使系统级度量评估能够使用来自场景的地面真实信息。打开度量评估子系统。

open_system (“HighwayLaneFollowingTestBench /指标评估”);

在这个例子中,四个指标被用来评估车道跟踪系统。

  • 验证横向偏差-该区块验证车道中心线的横向偏差在相应场景的规定阈值内。在编写测试场景时定义阈值。

  • 验证车道-此块验证自我车辆在整个模拟过程中沿着道路上的一条车道行驶。

  • 验证时间间隙 - 此块验证自助式车辆和铅车辆之间的时间间隙大于0.8秒。两个车辆之间的时间间隙被定义为计算出的距离与自我车辆速度的距离的比率。

  • 验证无碰撞 - 该块验证自我车辆在模拟期间的任何时候不与铅车辆碰撞。有关如何使用Simulink Test™集成这些指标的更多详细信息,请参阅金宝app自动测试高速公路车道之后

探索算法模型

车道跟踪系统由车道标志检测器、车辆检测器、前向传感器融合、车道跟踪决策逻辑和车道跟踪控制器组成。

车道标记探测器算法模型实现了一种感知模块来分析道路的图像。打开车道标记检测器算法模型。

open_system (“LaneMarkerDetector”);

车道标记检测器采用由一单眼照相机传感器作为输入装置拍摄的帧。它还通过掩模采用相机内部参数。它检测到的车道边界,并通过输出每个车道的车道信息和标记类型LaneSensor公共汽车。有关如何设计和评估车道标记检测器的更多细节,请参阅使用虚幻引擎模拟环境设计车道标记检测器为车道标记检测器生成代码

车辆检测器算法模型检测行车场景中的车辆。打开车辆检测器算法模型。

open_system (“Visionvehicledetector”);

车辆检测器将由相机传感器捕获的帧作为输入。它还通过掩模采用相机内部参数。它检测车辆并将车辆信息输出为边界框。有关如何设计和评估车辆探测器的更多详细信息,请参阅为视觉车辆检测器生成代码

前车辆传感器融合组件熔断器检测来自相机和雷达传感器,并使用中央级跟踪方法跟踪检测到的车辆。打开前车辆传感器融合算法模型。

open_system (“转发囊卷发”);

前向车辆传感器融合模型以视觉和雷达传感器的车辆检测为输入。雷达检测被聚类,然后连接到视觉检测。然后使用联合概率数据关联跟踪器跟踪连接的车辆检测。这个组件输出确认的轨道。有关前方车辆传感器融合的更多细节,请参见前方车辆的传感器融合

基于检测到的车道和轨道车道以下判定逻辑算法模型指定的横向和纵向的决定。打开巷下列判定逻辑算法模型。

open_system (“lanefollowingdecisionlogic”);

车道跟随决策逻辑模型以车道标记检测器检测到的车道和前方车辆传感器融合模块确认的轨迹为输入。它估计车道中心,也决定了MIO的领先车在同一车道行驶的自我车辆。它输出了MIO和ego之间的相对距离和相对速度。

车道以下控制器指定的纵向和横向的控制。打开车道追踪控制器算法模型。

open_system (“LaneFollowingController”);

控制器以设定的速度、车道中心和MIO信息作为输入。它采用路径跟踪控制器控制自我车辆的转向角度和加速度。它还使用了一个看门狗制动控制器应用制动作为故障安全模式。控制器输出转向角度和加速命令,以决定是否加速、减速或应用刹车。车辆动力学块使用这些输出的横向和纵向控制自我车辆。

可视化测试方案

辅助功能scenario_LFACC_03_Curve_StopnGo生成一个长方体场景,它与HighwayLaneFollowingTestBench模型。这是一个开环场景,包含多辆目标车辆在弯曲的道路上。在这个长方体场景中,道路中心、车道标记和车辆与3D仿真环境提供的弯曲道路场景的一部分非常匹配。在这种情况下,当其他车辆在相邻车道行驶时,前车在自我车辆前面减速。

绘制开环场景,观察自我载体和目标载体之间的相互作用。

Hfigscenario = Helperplotlfscenario(“scenario_LFACC_03_Curve_StopnGo”);

EGO车辆在闭环控制下不在闭环控制下,因此较慢的移动引线车辆发生碰撞。闭环系统的目标是跟随车道并保持与铅车辆的安全距离。当HighwayLaneFollowingTestBench模型中,自身车辆具有相同的初始速度和初始位置在开环情况下。

关闭图。

关上(hFigScenario)

模拟实验台模型

在三维仿真环境中配置和测试算法的集成。要减少命令窗口输出,请关闭MPC更新消息。

mpcverbosity(“关”);

配置测试台模型以使用相同的方案。

helperSLHighwayLaneFollowingSetup(“scenarioFcnName”...“scenario_LFACC_03_Curve_StopnGo”);sim卡(“HighwayLaneFollowingTestBench”

绘制横向控制器性能结果。

hFigLatResults = helperPlotLFLateralResults (logsout);

关闭图。

关上(hFigLatResults)

检查仿真结果。

  • 检测到车道边界侧向偏移绘图显示了检测到的左道和右车道边界的横向偏移从通道的中心线。检测到的值接近通道的地面真实,但偏离少量。

  • 横向偏差该图显示了自驾驶车辆偏离车道中心线的横向偏离。理想情况下,横向偏差为零米,这意味着自我飞行器完全遵循中心线。当车辆为了避免与另一车辆相撞而改变速度时,会发生小偏差。

  • 相对偏航角绘图显示了自我车辆和车道的中心线之间的相对偏航角。相对横摆角非常靠近零弧度,这意味着自我车辆的标题与中心线的偏航角匹配。

  • 转向角度图中显示了自我车辆的转向角度。转向角轨迹平稳。

画出纵向控制器的性能的结果。

hFigLongResults = helperPlotLFLongitudinalResults (logsout time_gap,...default_spacing);

关闭图。

关闭(HFiglongresults)

检查仿真结果。

  • 相对纵向距离图显示了自我车辆与MIO之间的距离。在这种情况下,自我车辆接近MIO并在某些情况下接近它或超过安全距离。

  • 相对纵向速度图显示了自我载体和MIO之间的相对速度。在这个例子中,车辆检测器只检测位置,所以控制算法中的跟踪器估计速度。估计的速度滞后于实际的(地面真实)MIO相对速度。

  • 绝对加速度情节表明,该控制器命令车辆减速时,它变得太接近MIO。

  • 绝对速度图中显示了本车开始按程序设定的速度,但是当MIO减慢,以避免碰撞,自身车辆也减慢。

在模拟过程中,模型将信号记录到基本工作空间为logsout并记录摄像机传感器的输出到forwardFacingCamera.mp4.你可以使用plotLFDetectionResults功能形象化类似于如何记录的数据模拟的检测中进行了探索使用传感器融合的前向碰撞预警示例。您还可以将可视化检测记录到视频文件,以便由无法访问MATLAB的其他人进行审核。

根据记录的数据绘制检测结果,生成视频,并打开视频查看器应用程序。

Hvideoviewer = HelperplotlfdetectionResults(...logsout,“forwardFacingCamera.mp4”,情景,相机,雷达,...scenarioFcnName,...“RecordVideo”,真的,...“RecordVideoFileName”,scenarioFcnName +“_VPA”...“OpenRecordedVideoInvideoviewer”,真的,...“VideoViewerJumpToTime”, 10.6);

播放生成的视频。

  • 前置摄像头显示相机传感器返回的图像。左侧车道边界在红色绘制,右车道边界以绿色绘制。这些车道由车道标记探测器模型返回。追踪的检测也覆盖在视频上。

  • 鸟瞰的情节显示真正的车辆位置,传感器覆盖区域,概率检测和轨道输出。绘图标题包括模拟时间,以便您可以将视频与先前静态图之间的事件相关联。

关闭图。

关闭(Hvideoviewer)

探索其他方案

以前的模拟测试scenario_LFACC_03_Curve_StopnGo场景。此示例提供与兼容的其他方案HighwayLaneFollowingTestBench模型:

场景lf_01_straight _rightlane场景lf_02_straight _leftlane场景lf_03_curve_leftlane场景lf_04_curve_rightlane场景lfacc_01_curve_deceltarget场景lfacc_02_curve_autoretarget场景lfacc_03_curve_stopngo场景lfacc_04_curve_cutinout_tooclosescenario_LFACC_06_Straight_StopandGoLeadCar

这些场景代表了两种类型的测试。

  • 与使用场景scenario_LF_用于测试车道检测和车道之后的前缀,没有其他车辆的阻塞。方案中的车辆定位成使得自助载体没有看到它们。

  • 与使用场景scenario_LFACC_前缀,用于测试在自我车辆的传感器覆盖范围内的其他车辆的车道检测和车道跟随算法。

查看每个文件中的注释,了解关于每个场景中道路和车辆几何形状的更多细节。您可以配置HighwayLaneFollowingTestBench模型和工作区来模拟这些场景helperSLHighwayLaneFollowingSetup功能。

例如,在评估基于摄像头的车道检测算法对闭环控制的影响时,从一个有道路但没有车辆的场景开始是有帮助的。要为这样的场景配置模型和工作区,请使用以下代码。

helperSLHighwayLaneFollowingSetup(“scenarioFcnName”...“scenario_LF_04_Curve_RightLane”);

再次启用MPC更新消息。

mpcverbosity('开');

结论

此实施例表明如何整合视觉处理,传感器融合和控制器组件在闭环3D仿真环境来模拟公路车道以下系统。这个例子也显示各评价标准来验证设计的系统的性能。如果您有许可证的Simulink编码器™和嵌入金宝app式编码器™,您可以生成准备好部署算法模型的嵌入式实时目标(ERT)的代码。

2019-2020 The MathWorks, Inc.版权所有

另请参阅

相关主题