主要内容

前方车辆传感器融合

本示例展示了如何在自动驾驶应用的3D仿真环境中模拟传感器融合和跟踪。该示例还展示了如何使用性能指标来评估开环环境中跟踪器的性能。

简介

自动驾驶汽车使用多个传感器,包括摄像头和雷达,来感知周围的环境。然而,每种传感器都有其局限性。融合来自各种传感器的信息可以使车辆的感知更加稳健。传感器融合和跟踪是各种系统决策过程的核心,包括高速公路车道跟踪和向前碰撞预警。通过使用本例中的传感器融合和跟踪模型,您可以在现实中难以实现的关键场景上运行测试。在本例中,执行以下步骤。

  1. 探索试验台模型-该模型包含传感器、传感器融合和跟踪算法,以及评估功能的指标。一个等效的虚幻引擎场景被用来模拟来自雷达传感器和视觉传感器的检测。

  2. 配置传感器和环境-设置一个驾驶场景,包括一辆带摄像头和雷达传感器的自我车辆。用鸟瞰瞄准镜绘制每个传感器的覆盖区域。

  3. 执行传感器融合和跟踪-使用联合概率数据关联(JPDA)多目标跟踪器组合来自两个传感器的信息,以跟踪自我车辆周围的物体。

  4. 评估跟踪器性能-使用广义最优子模式赋值(GOSPA)度量来评估跟踪器的性能。

  5. 对试验台模型进行仿真,并对结果进行分析—您可以根据不同的场景配置不同的测试台模型。在默认情况下,该模型配置了一个场景,即目标车辆在三个相邻车道的自我车辆前面彼此靠近,对跟踪系统构成挑战。模拟模型并分析GOSPA度量的组成部分,以了解跟踪器的性能。

本示例在3D模拟环境中测试传感器融合和跟踪算法,该环境使用Epic Games的虚幻引擎®。虚幻引擎驾驶模拟环境需要Windows®64位平台。

如果~ ispc错误([“3D模拟只支持微软”金宝appchar (174),“窗口”char (174),'.']);结束

探索试验台模型

要探索测试台架模型,请打开项目示例文件的工作副本。MATLAB®将文件复制到示例文件夹,以便您可以编辑它们。

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

打开试验台模型。

open_system (“ForwardVehicleSensorFusionTestBench”);

打开此模型将运行helperSLForwardVehicleSensorFusionSetup脚本,该脚本使用drivingScenario基本工作区中的对象。它还配置传感器融合和跟踪参数、车辆参数以及定义输入和输出所需的Simulink®总线信号金宝appForwardVehicleSensorFusionTestBench模型。测试台模型包含以下子系统:

  • 传感器和环境——这个子系统指定用于模拟的场景、车辆和传感器。

  • 前向车辆传感器融合——该子系统实现了雷达聚类、检测连接、融合和跟踪算法。

  • 评估跟踪指标-该子系统使用GOSPA指标在一组轨道和它们的地面真相之间评估跟踪指标的性能。

配置传感器和环境

传感器和环境子系统负责配置道路网络、放置车辆和合成传感器。有关使用类似子系统的示例,请参见高速公路车道跟踪.打开传感器和环境子系统。

open_system (《ForwardVehicleSensorFusionTestBench/传感器与环境》);

该分系统包括两个传感器模块:模拟三维概率雷达和模拟三维视觉检测生成器。这些模型的参数由helperSLForwardVehicleSensorFusionSetup脚本,当您打开测试台架模型时。这些块从3D模拟环境中生成检测。

  • 仿真三维概率雷达块生成基于统计模型的目标检测。该传感器安装在自我车辆上的偏移指定位置而且旋转参数说明雷达结构。

disp(雷达);
FieldOfView: [40 5] DetectionRanges: [1 100] Position: [3.7290 0 0.8000] PositionSim3d: [2.4240 0 0.8000] Rotation: [0 000]
  • 仿真3D视觉检测生成器块从安装在自我车辆上的视觉传感器在指定的偏移处所采集的摄像机测量中生成检测位置而且旋转参数说明相机结构。

disp(相机);
NumColumns: 1024 NumRows: 768 FieldOfView: [45 45] ImageSize: [768 1024] PrincipalPoint: [512 384] FocalLength: [512 512] Position: [1.8750 0 1.2000] PositionSim3d: [0.5700 0 1.2000] Rotation: [0 000] DetectionRanges: [6 50] LaneDetectionRanges: [6 30] measuentnoise: [3×3 double] MinObjectImageSize: [10 10]

鸟瞰瞄准镜通过使用长方体表示来显示传感器覆盖范围。雷达覆盖区域和探测结果显示为红色。视觉覆盖区域和检测是蓝色的。

执行传感器融合和跟踪

前向车辆传感器融合模型是处理视觉和雷达探测并生成相对于自我车辆的轨道位置和速度的参考模型。打开前方车辆传感器融合参考模型。

open_system (“ForwardVehicleSensorFusion”);

前方车辆传感器融合参考模型包含以下模块:

  • 检测聚类——聚类多个雷达检测,因为跟踪器期望每个传感器最多对每个对象进行一次检测。

  • 检测连接-结合视觉和雷达检测到一个单一的输出总线。

  • JPDA跟踪器-执行融合和管理静止和移动物体的轨道。

JPDA跟踪器块是前向车辆传感器融合参考模型的关键块。跟踪器将包含在串联探测中的信息融合,并跟踪自我车辆周围的物体。跟踪器输出一个已确认的轨道列表。这些轨迹在预测时间更新,由传感器和环境子系统中的数字时钟驱动。

评估跟踪器性能

评估跟踪器度量子系统计算各种度量来评估跟踪器的性能。打开评估跟踪指标子系统。

open_system (“ForwardVehicleSensorFusionTestBench/评估跟踪指标”);

为了评估跟踪器的性能,必须从地面真相信息中删除传感器覆盖区域之外的参与者。为此,子系统使用Filter Within Coverage块仅过滤传感器覆盖区域内的参与者。

子系统包含GOSPA度量块,用于计算这些度量:

  • GOSPA度量——该度量度量一组轨道和它们的地面真实值之间的距离,并将赋值和状态估计精度结合到一个单一的成本值中。

  • 定位错误-该错误表示状态估计精度。较高的值表明所分配的轨道没有正确地估计真理的状态。

  • 错过目标错误——此错误指示错过目标的存在。数值越高,表示没有跟踪目标。

  • 假音轨错误-此错误指示存在假音轨。

模拟试验台模型并分析结果

在模拟过程中,您可以在3D模拟窗口和使用鸟瞰瞄准镜中可视化场景。

要打开作用域,单击鸟瞰的范围在Simulink工具条的“审查结果”部分中。金宝app接下来,单击更新信号查找并更新作用域可以显示的信号。

配置ForwardVehicleSensorFusionTestBench模型来模拟scenario_LFACC_03_Curve_StopnGo场景。这个场景包含六辆载具,包括自我载具。场景函数也定义了它们的轨迹。在这种情况下,自我车辆的车道上有一辆领先车辆。在自我车辆右侧的车道上,绿色和蓝色指示的目标车辆正在同一方向行驶。在自我车辆左侧的车道上,黄色和紫色指示的目标车辆正朝相反的方向行驶。

helperSLForwardVehicleSensorFusionSetup (“scenarioFcnName”“scenario_LFACC_03_Curve_StopnGo”);

模拟试验台模型。

sim卡(“ForwardVehicleSensorFusionTestBench”);

“模拟”将打开“3D模拟”窗口,其中显示场景,但不显示检测或传感器覆盖范围。使用Bird's-Eye Scope窗口来可视化自我参与者、目标参与者、传感器覆盖和探测,以及确认的轨迹。若要仅可视化传感器数据,请在模拟过程中通过清除“3D仿真”窗口中的显示三维仿真窗口参数在模拟3D场景配置块。

在仿真过程中,模型输出GOSPA度量及其分量。该模型使用确认的轨迹和实际信息将度量记录到基本工作空间变量logsout.你可以把这些值画进去logsout通过使用helperPlotForwardVehicleSensorFusionResults函数。

helperPlotForwardVehicleSensorFusionResults (logsout);

图显示,定位误差占大部分的GOSPA度量值。注意,由于跟踪器的建立延迟,错过的目标组件从一个高值开始,并在一段时间后下降到零。偏离目标曲线中的其他峰值出现的原因是,由于前导车辆遮挡,最初对对面车辆没有检测到,而且一旦车辆以相反方向接近自我车辆,跟踪器存在一定的建立延迟,导致偏离目标曲线出现峰值。

探索其他场景

您可以使用本例中的过程来探索与ForwardVehicleSensorFusionTestBench

  • 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_FVSF_01_Curve_FourVehicles

  • scenario_FVSF_02_Straight_FourVehicles

  • scenario_FVSF_03_Curve_SixVehicles

使用这些附加场景进行分析ForwardVehicleSensorFusionTestBench在不同的条件下。

结论

本例展示了如何模拟和评估自动驾驶应用中的传感器融合和跟踪组件的性能。这个组件级模型允许您在开环虚拟环境中对设计进行压力测试,并通过评估GOSPA指标来帮助调整跟踪器参数。下一个合乎逻辑的步骤是将这个组件级模型集成到闭环系统中,如高速公路车道跟踪。

另请参阅

||||

相关的话题