主要内容

高速公路车道后

这个例子展示了如何模拟高速公路车道后应用视觉处理,传感器融合和控制器组件。这些组件在3 d仿真环境下进行测试,包括摄像机和雷达传感器模型。

介绍

高速公路车道系统引导汽车旅行之后在一个车道。它还维护一组速度或安全距离前面的车辆在同一车道上。系统通常使用视觉处理算法来检测车道和车辆从一个相机。车辆检测从相机然后融合检测雷达提高知觉的鲁棒性。控制器使用车道检测、车辆检测、并设置速度控制操舵和加速度。

这个案例展示了如何创建一个试验台模型测试视觉处理、传感器融合,控制在3 d仿真环境中。试验台模型可以配置不同的场景来测试遵循道的能力,避免与其他车辆碰撞。在本例中,您:

  1. 分区算法和测试台上——模型划分车道下面算法模型和模型试验台。该算法模型实现单个组件。该试验台包括算法的集成模型,和虚拟测试框架。

  2. 探索试验台模型——试验台模型包含测试框架,包括场景、自我车辆动力学模型和指标评估使用地面实况。一个长方体的场景定义车辆轨迹和指定地面真理。一个等价的虚幻引擎®场景用于模型检测雷达传感器和单眼相机传感器的图片。一辆自行车模型用于自我车辆模型。

  3. 探索算法模型——算法模型是实现愿景的参考模型处理,传感器融合、决策逻辑,控制组件来构建应用程序后巷。

  4. 想象一个测试场景——场景包含一个弯曲的道路与多个车辆。

  5. 模拟试验台模型的模型是模拟测试集成视觉处理,传感器融合和控制组件。

  6. 探索更多的场景在附加条件下,这些场景测试系统。

测试控制器的集成和感知算法需要一个逼真的模拟环境。在本例中,您启用系统级模拟通过与虚幻引擎从史诗游戏®集成。3 d仿真环境需要一个Windows®64位平台。

如果~ ispc错误([“微软只支持3 d仿真”金宝appchar (174),“窗口”char (174),“。”])结束

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

rng (0)

分区算法和试验台

模型划分为单独的算法和模型试验台。

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

  • 试验台模型——高速公路车道后试验台指定了刺激和环境来测试该算法模型。

探索试验台模型

在本例中,您使用一个系统级仿真试验台模型探索的行为控制和视觉处理算法的系统后巷。

探索试验台模型,打开一个工程实例文件的工作副本。MATLAB®将文件复制到一个文件夹中,这样您就可以编辑它们。

目录(fullfile (matlabroot,“工具箱”,“开车”,“drivingdemos”));helperDrivingProjectSetup (“HighwayLaneFollowing.zip”workDir = pwd);

打开系统级仿真试验台模型。

open_system (“HighwayLaneFollowingTestBench”)

试验台模型包含这些模块:

  • 模拟3 d场景子系统,指定的道路,车辆,相机传感器,用于模拟和雷达传感器。

  • 车道标记探测器-算法模型来检测车道边界框架被相机传感器。

  • 车辆检测器,算法模型来检测车辆帧被相机传感器。

  • 提出车辆传感器融合算法模式融合摄像头和雷达传感器的车辆检测。

  • 车道后决策逻辑——算法模型来指定横向和纵向的决策逻辑,提供相关信息的最重要的对象(绪)和车道中心控制器。

  • 车道控制器后,算法模型,指定了转向角和加速度控制。

  • 车辆动力学子系统,指定自我车辆的动态模型。

  • ——子系统评估指标评估系统级的行为。

模拟3 d场景子系统配置道路网络,车辆,和综合传感器。打开模拟3 d场景子系统。

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

指定的场景和道路网络是这些地区的子系统:

  • 模拟3 d场景配置(自动驾驶工具箱)块的SceneName参数设置为弯曲的道路

  • 场景的读者(自动驾驶工具箱)块被配置为使用一个驾驶场景,包含一个道路网络,密切匹配部分的道路网络弯曲的道路现场。

指定的车辆位置都是这些地区的子系统:

  • 自我输入端口控制自我车辆的位置,由仿真3 d指定车辆与地面以下1块。

  • 汽车世界(自动驾驶工具箱)阻止将演员构成自我车辆到世界坐标系的坐标。

  • 场景的读者(自动驾驶工具箱)块输出演员构成,控制目标车辆的位置。这些指定的其他车辆模拟3 d车辆与地面(自动驾驶工具箱)块。

  • 长方体3 d仿真(自动驾驶工具箱)块将自我构成坐标系(关于下面的中心车辆后桥)的3 d仿真坐标系(关于以下车辆中心)。

传感器连接到这些部分自我指定车辆的子系统:

  • 模拟3 d相机(自动驾驶工具箱)块连接到自我车辆捕获它的前视图。这个块的输出图像处理的车道标志探测器块检测车道和车辆检测器块检测车辆。

  • 模拟3 d概率雷达配置(自动驾驶工具箱)块连接到自我车辆检测车辆在3 d仿真环境。

  • 测量偏差中心后桥块的坐标系统转换模拟3 d概率雷达配置(自动驾驶工具箱)块(对以下车辆中心)自我姿态坐标(关于下面车辆后桥)的中心。

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

open_system (“HighwayLaneFollowingTestBench /车辆动力学”);

自行车模型刚性块实现了两轴单轨车辆的身体模型计算纵向,横向和偏航运动。块占身体质量、空气动力阻力和重量分布之间由于加速度和转向轴。更多细节,请参阅自行车模型(自动驾驶工具箱)

度量评估子系统使得系统级指标评价使用地面实况信息的场景。打开指标评估子系统。

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

在这个例子中,四个指标用于评估lane-following系统。

  • 验证横向偏差——这块验证外侧车道偏离中心线是在规定的阈值对应的场景。作者定义的阈值,当你测试场景。

  • 验证在莱恩-这个块验证自我路上车辆的车道后整个模拟。

  • 验证时间差距——这块验证自我车辆之间的时间差距,导致车辆超过0.8秒。两辆车之间的时间间隔定义为距离的比值计算进展自我车辆速度。

  • 验证没有碰撞——这个块验证自我车辆不碰撞的汽车在任何时候在模拟。更多细节关于如何整合这些指标与仿真软件测试™启用自动回归测试,看看金宝app自动化测试高速公路车道(自动驾驶工具箱)

探索算法模型

系统集成开发的后巷巷标记探测器,车辆检测器,提出车辆传感器融合、决策逻辑后巷,和车道控制器组件。

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

open_system (“LaneMarkerDetector”);

车道标记探测器需要帧捕捉到一个单眼相机传感器作为输入。它还需要在摄像机内参数的面具。它检测到胡同间边界和输出信息和每个车道通过标记的类型LaneSensor公共汽车。更多细节关于如何设计和评估一个车道标记探测器,明白了设计车道标记探测器使用虚幻引擎模拟环境(自动驾驶工具箱)为车道标记检测器生成代码(自动驾驶工具箱)

车辆检测器算法模型检测车辆的驾驶场景。打开车辆检测器算法模型。

open_system (“VisionVehicleDetector”);

车辆检测器的框架被相机传感器作为输入。它还需要在摄像机内参数的面具。它检测到车辆和输出边界框的车辆信息。更多细节关于如何设计和评估车辆检测器,明白了为视觉车辆检测器生成代码(自动驾驶工具箱)

提出车辆传感器融合组件融合从摄像头和雷达传感器车辆检测和跟踪检测到车辆使用中央级别跟踪方法。向前打开车辆传感器融合算法模型。

open_system (“ForwardVehicleSensorFusion”);

提出车辆传感器融合模型在视觉的车辆检测和雷达传感器作为输入。雷达探测与视觉检测集群,然后连接。然后连接车辆检测跟踪使用联合概率数据关联跟踪。这个组件输出跟踪确认。对车辆传感器融合,更多的细节提出车辆传感器融合(自动驾驶工具箱)

后巷决策逻辑算法模型指定了横向和纵向的决定基于车道检测和跟踪。打开后巷决策逻辑算法模型。

open_system (“LaneFollowingDecisionLogic”);

后巷决策逻辑模型需要的检测车道车道标记探测器和向前的确认跟踪车辆传感器融合模块作为输入。巷中心估计,也决定了绪引导车在同一车道自我旅行工具。它输出之间的相对距离和相对速度绪和自我。

后的车道控制器指定纵向和横向控制。打开控制器算法模型后巷。

open_system (“LaneFollowingController”);

控制器需要设定速度,车道中心,绪信息作为输入。它使用一个路径跟踪控制器来控制自我车辆的转向角和加速度。它还使用一个监督机构制动控制器应用刹车故障安全模式。控制器输出转向角和加速度命令来决定是否要加速,减速,刹车或应用。车辆动态块使用这些输出的横向和纵向控制自我。

可视化测试场景

辅助函数scenario_LFACC_03_Curve_StopnGo生成一个长方体场景是兼容的HighwayLaneFollowingTestBench模型。这是一个开环情况下包含多个目标车辆在弯曲的道路。马路中心、路面标志和车辆在这个长方体场景中匹配一段弯曲的道路场景提供的3 d仿真环境。在这种情况下,使车辆减速的自我在相邻车道车辆而其他车辆。

绘制开环场景的交互自我车辆和目标车辆。

hFigScenario = helperPlotLFScenario (“scenario_LFACC_03_Curve_StopnGo”);

自我车辆没有闭环控制,所以与移动较慢,导致车辆发生碰撞。闭环系统的目标是按照车道,导致车辆保持安全距离。在HighwayLaneFollowingTestBench模型中,自我车辆具有相同的初始速度和初始位置开环的场景。

关闭图。

关上(hFigScenario)

模拟试验台模型

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

mpcverbosity (“关闭”);

配置试验台模型使用相同的场景。

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

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

hFigLatResults = helperPlotLFLateralResults (logsout);

关闭图。

关上(hFigLatResults)

分析仿真结果。

  • 检测出车道边界横向偏移量图显示了侧向偏移的检测到左车道和右车道边界的中心线的车道。发现值贴近地面真理巷,但少量的偏离。

  • 横向偏差情节展示了自我车辆的横向偏差的中心线的车道。理想情况下,横向偏差为0米,这意味着自我车辆完全遵循中心线。小偏差时车辆正在改变速度,以避免与另一辆车相撞。

  • 相对偏航角情节展示了自我的车辆之间的相对偏航角和中心线的车道上。相对偏航角非常接近于零的弧度,这意味着自我的航向角车辆中心线的偏航角密切匹配。

  • 转向角情节展示了自我车辆的转向角。转向角轨迹平滑。

情节纵向控制器性能结果。

hFigLongResults = helperPlotLFLongitudinalResults (logsout time_gap,default_spacing);

关闭图。

关上(hFigLongResults)

分析仿真结果。

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

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

  • 绝对加速度图显示控制器命令车辆减速时太接近绪。

  • 绝对速度图显示了自我车辆最初设定速度,但是当绪放缓,以避免碰撞,自我车辆也会减缓。

在仿真过程中,信号基本工作空间模型日志logsout相机传感器的输出和记录forwardFacingCamera.mp4。您可以使用helperPlotLFDetectionResults函数可视化模拟检测类似于如何探索的记录数据向前碰撞警告使用传感器融合(自动驾驶工具箱)的例子。还可以记录可视化检测的视频文件,使评审人没有访问MATLAB。

情节的检测结果记录数据,生成一个视频,并打开视频查看器(图像处理工具箱)应用程序。

hVideoViewer = helperPlotLFDetectionResults (logsout,“forwardFacingCamera.mp4”场景中,摄像头、雷达、scenarioFcnName,“RecordVideo”,真的,“RecordVideoFileName”scenarioFcnName +“_VPA”,“OpenRecordedVideoInVideoViewer”,真的,“VideoViewerJumpToTime”,10.6);

生成的视频。

  • 前置摄像头显示了相机传感器返回的图像。左边的车道边界用红色和右车道边界用绿色。这些车道车道标记返回的探测器模型。跟踪检测也覆盖在视频。

  • 鸟瞰的情节显示真实的车辆位置,传感器覆盖地区,概率检测和跟踪输出。情节标题包含仿真时间,以便您可以关联事件之间的视频和以前的静态图。

关闭图。

关上(hVideoViewer)

探索更多的场景

前面的模拟测试scenario_LFACC_03_Curve_StopnGo场景。这个示例提供了额外的场景兼容的HighwayLaneFollowingTestBench模型:

scenario_LF_01_Straight_RightLane scenario_LF_02_Straight_LeftLane scenario_LF_03_Curve_LeftLane scenario_LF_04_Curve_RightLane scenario_LFACC_01_Curve_DecelTarget scenario_LFACC_02_Curve_AutoRetarget scenario_LFACC_03_Curve_StopnGo scenario_LFACC_04_Curve_CutInOut scenario_LFACC_05_Curve_CutInOut_TooClose scenario_LFACC_06_Straight_StopandGoLeadCar

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

  • 使用场景scenario_LF_前缀测试lane-detection和lane-following算法不妨碍其他车辆。场景中的车辆定位,这样他们不被自我。

  • 使用场景scenario_LFACC_前缀测试lane-detection和lane-following算法与其他车辆的传感器覆盖范围内的自我。

检查每个文件的评论更详细的几何道路和车辆的每个场景。您可以配置HighwayLaneFollowingTestBench模型和模拟这些场景使用工作区helperSLHighwayLaneFollowingSetup函数。

例如,尽管评估基于成像的影响车道检测算法闭环控制,可以有助于从一个场景,有一条道路,但没有汽车。配置模型和空间对于这样一个场景,使用以下代码。

helperSLHighwayLaneFollowingSetup (“scenarioFcnName”,“scenario_LF_04_Curve_RightLane”);

使货币政策委员会再次更新消息。

mpcverbosity (“上”);

结论

这个例子展示了如何整合视觉处理、传感器融合和控制器组件模拟高速公路车道后系统闭环3 d仿真环境。示例还演示了各种评价指标来验证设计的系统的性能。如果你有许可证仿真软件编码器™和嵌入式编码™可以生金宝app成愿与嵌入式实时目标部署代码(ERT)。

另请参阅

相关的话题