主要内容

drivingRadarDataGenerator

从驾驶场景生成雷达传感器检测和轨迹

描述

drivingRadarDataGenerator系统对象™从汽车雷达传感器模型生成目标的检测或跟踪报告。使用此对象可从包含参与者和轨迹的驾驶场景生成传感器数据,您可以使用drivingScenario对象。创建场景时使用驾驶场景设计师App中,安装在自我车上的雷达传感器输出为drivingRadarDataGenerator对象。

drivingRadarDataGenerator对象可以在添加随机噪声的情况下模拟聚类或非聚类检测,还可以生成虚警检测。可以将生成的检测与其他传感器数据融合,并使用multiObjectTracker对象。也可以直接从drivingRadarDataGenerator对象。属性将目标输出为群集检测、非群集检测还是跟踪TargetReportFormat财产。

生成雷达探测或跟踪报告:

  1. 创建drivingRadarDataGenerator对象并设置其属性。

  2. 调用带有参数的对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

rdr= drivingRadarDataGenerator创建一个雷达传感器,该传感器报告群集探测并使用默认属性值。

rdr= drivingRadarDataGenerator (id设置SensorIndex财产id

例子

rdr= drivingRadarDataGenerator (___名称,值属性使用一个或多个名值对。将每个属性名用引号括起来。例如,drivingRadarDataGenerator(“TargetReportFormat”、“跟踪”、“FilterInitializationFcn”,@initcvkf)创建一个雷达传感器,通过使用一个由恒速线性卡尔曼滤波器初始化的跟踪器来生成跟踪报告。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放函数解锁它们。

如果属性是可调,您可以随时更改其值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统

传感器识别

唯一传感器标识符,指定为正整数。使用此属性可以在多传感器系统中区分来自不同传感器的检测或跟踪。为每个传感器指定一个唯一的值。如果不更新SensorIndex的默认值0,则雷达在模拟开始时返回一个错误。

数据类型:

传感器更新速率,以赫兹为单位,指定为正实标量。更新速率的倒数必须是模拟时间间隔的整数倍。雷达按此互反值定义的间隔生成新的报告。更新间隔之间请求的任何传感器更新都不包含检测或跟踪。

数据类型:

传感器安装

自我车身框架上的传感器位置,以米为单位,指定为形式为[的1 × 3实值向量]xyz].此属性定义传感器沿x设在,y设在,z-轴相对于自我载具原点,其中:

  • x-轴指向车辆前方。

  • y-轴指向车辆的左侧。

  • z-轴指向地面。

默认值对应于安装在轿车前格栅中心的雷达。

有关自我车辆坐标系统的更多细节,请参见自动驾驶工具箱中的坐标系统

数据类型:

雷达的安装旋转角度,以度为单位,指定为形式[的1 × 3实值向量]z偏航y球场x].此属性定义了传感器围绕的固有欧拉角旋转z设在,y设在,x-轴相对于自我车辆车身框架,其中:

  • z偏航,或偏航角,将传感器绕z自我载体的-轴。

  • y球场,或螺旋角,将传感器绕y自我载体的-轴。这个旋转是相对于传感器位置的结果z偏航旋转。

  • x,或横摇角,将传感器绕x自我载体的-轴。这个旋转是相对于传感器位置的结果z偏航而且y球场旋转。

这些角是顺时针正的,当往前方看时z设在,y设在,x分别设在。如果从鸟瞰视角可视化传感器数据,则偏航角为逆时针正,因为您是在反向方向查看数据z-轴,从地面向上指向。

有关这个坐标系的更多细节,请参见自动驾驶工具箱中的坐标系统

数据类型:

检测报告

使雷达测量目标仰角,指定为逻辑0)或1真正的).将此属性设置为真正的为一个可以估计目标高度的雷达传感器建模。

数据类型:逻辑

使雷达能够测量目标距离率,指定为逻辑1真正的)或0).将此属性设置为真正的模拟一个雷达传感器,可以测量从目标探测到的距离率。

数据类型:逻辑

允许将噪声添加到雷达传感器测量中,指定为逻辑1真正的)或0).将此属性设置为真正的给雷达测量增加噪音。否则,测量没有噪声。即使你设置了HasNoise的测量噪声协方差矩阵MeasurementNoise属性的生成对象检测输出,依据,表示时添加的测量噪声HasNoise真正的

数据类型:逻辑

启用创建虚警雷达测量,指定为逻辑1真正的)或0).将此属性设置为真正的报告误报。否则,雷达只能报告实际探测到的信号。

数据类型:逻辑

启用视线遮挡,指定为逻辑1真正的)或0).若要仅从雷达有直接视线的物体生成探测,请将此属性设置为真正的.例如,启用此属性后,雷达不会对位于另一辆车后面且被遮挡的车辆进行探测。

数据类型:逻辑

检测或跟踪报告数量的最大值的来源,指定为以下选项之一:

  • “汽车”-传感器报告所有检测或轨迹。

  • “属性”—传感器报告第一个N有效的检测或跟踪,其中N等于MaxNumReports属性值。

传感器报告的最大检测或跟踪数,指定为正整数。传感器报告检测的顺序是增加与传感器的距离,直到达到这个最大值。

依赖关系

要启用此属性,请设置MaxNumReportsSource财产“属性”

数据类型:

生成的目标报告的格式,指定为以下选项之一:

  • “集群检测”—传感器生成目标报告为集群检测,其中每个目标报告为单个检测,该检测是非聚类目标检测的质心。的数组返回聚类检测objectDetection对象,如中所述依据输出参数。

  • “跟踪”—传感器生成目标报告为跟踪,它们是经过跟踪过滤器处理的聚类检测。传感器返回轨道作为一个数组objectTrack对象,如中所述跟踪输出参数。

  • “检测”—传感器生成目标报告为未聚集的检测,其中每个目标可以有多次检测。的数组返回未聚类的检测objectDetection对象,如中所述依据输出参数。

报告检测的坐标系统,指定为以下选项之一:

  • “身体”-检测报告在自我车辆的矩形体系统。

  • 传感器矩形的-检测报告在雷达传感器的矩形体系统。

  • “球形传感器”-探测报告在以雷达传感器为中心的球坐标系中,并与自我车辆上雷达的方向对齐。

测量分辨率

雷达的方位角分辨率,以度为单位,指定为一个正标量。的方位分辨率定义雷达能区分两个目标的方位角上的最小距离。方位角分辨率通常是雷达方位角波束宽度的3分贝下点。

数据类型:

雷达的仰角分辨率,以度为单位,指定为正实标量。的海拔决议定义雷达能区分两个目标的最小仰角距离。高程分辨率通常是雷达高程角波束宽度的半功率波束宽度。

依赖关系

要启用此属性,请设置HasElevation财产真正的

数据类型:

雷达的距离分辨率,以米为单位,指定为正实标量。的距离分辨率定义雷达能区分两个目标的距离上的最小距离。

数据类型:

雷达的距离速率分辨率,以米每秒为单位,指定为正实标量。的距离速率分辨率定义雷达能区分两个目标的最小距离。

依赖关系

要启用此属性,请设置HasRangeRate财产真正的

数据类型:

测量偏差

雷达的方位偏置分数,指定为非负标量。方位偏差中指定的方位角分辨率的分数表示AzimuthResolution财产。该值设置了雷达方位精度的下界,并且是无量纲的。

数据类型:

雷达的仰角偏置分数,指定为非负标量。高程偏差表示为?指定的高度分辨率的分数ElevationResolution财产。该值设置了雷达的高程精度的下界,并且是无量纲的。

依赖关系

要启用此属性,请设置HasElevation财产真正的

数据类型:

雷达的距离偏置分数,指定为非负标量。偏差范围表示为?指定的范围分辨率的分数RangeResolution财产。该属性设置了雷达距离精度的下界,并且是无量纲的。

数据类型:

雷达的距离率偏置分数,指定为非负标量。数据与偏见表示为?指定的距离速率分辨率的分数RangeRateResolution财产。该属性设置了雷达距离速率精度的下界,并且是无量纲的。

依赖关系

要启用此属性,请设置HasRangeRate财产真正的

数据类型:

检测设置

探测到目标的概率,指定为范围(0,1)中的标量。这个属性定义了雷达横截面(RCS)探测到目标的概率,ReferenceRCS,在参考检测范围,ReferenceRange

数据类型:

给定探测概率和给定参考雷达截面(RCS)的参考范围,以米为单位,指定为正实标量。的参考范围具有雷达横截面的目标的距离是否由ReferenceRCS属性指定的检测概率来检测DetectionProbability财产。

数据类型:

给定探测概率和参考范围的参考雷达截面(RCS),以分贝平方米为单位,指定为一个真实标量。的参考RCS是探测到目标时的RCS值,其概率由DetectionProbability在指定的ReferenceRange价值。

数据类型:

每个雷达分辨率单元内的虚警报告率,指定为范围[10 .]内的一个正实标量7, 103].单位是无量纲的。对象从控件确定分辨率单元格AzimuthResolution而且RangeResolution属性,如果启用,则从ElevationResolution而且RangeRateResolution属性。

数据类型:

雷达波段的中心频率,以赫兹为单位,指定为一个正标量。

数据类型:

雷达的角视场,以度为单位,指定为1 × 2正实值向量的形式[azfov elfov].视场定义了传感器所跨越的总角度范围。方位视场,azfov,必须在(0,360)的区间内。仰角视场,elfov,必须在区间(0,180)内。

数据类型:

雷达的最小和最大距离,以米为单位,指定为1 × 2形式的非负实值向量(最小最大).雷达不会探测到这个范围以外的目标。最大范围,马克斯,必须大于最小范围,最小值

雷达的最小和最大距离速率,单位为米每秒,指定为形式的1 × 2实值向量(最小最大).雷达不会探测到超出这个距离的目标。最大幅度,马克斯,必须大于最小量程速率,最小值

依赖关系

要启用此属性,请设置HasRangeRate财产真正的

此属性是只读的。

雷达环路增益,指定为一个实标量。RadarLoopGain的值DetectionProbabilityReferenceRangeReferenceRCS,FalseAlarmRate属性。雷达环路增益是雷达报告信噪比的函数,信噪比,目标雷达横截面,RCS,目标范围,R,由以下等式描述:

信噪比RadarLoopGain+RCS- 40日志10R

信噪比而且RCS分别是分贝和分贝平方米,R单位是米,和RadarLoopGain单位是分贝。

数据类型:

跟踪设置

卡尔曼滤波初始化函数,指定为函数句柄或有效卡尔曼滤波初始化函数名称的字符向量或字符串标量。

该表显示了可以用于指定的初始化函数FilterInitializationFcn

初始化函数 函数定义
initcaabf 初始化定加速度卡尔曼滤波器
initcvabf 初始化恒速- -卡尔曼滤波器
initcakf 初始化定加速线性卡尔曼滤波器。
initcvkf 初始化等速线性卡尔曼滤波器。
initcaekf 初始化定加速扩展卡尔曼滤波器。
initctekf 初始化常转化率扩展卡尔曼滤波器。
initcvekf 初始化恒速扩展卡尔曼滤波器。
initcaukf 初始化恒加速无气味卡尔曼滤波器。
initctukf 初始化常转化率无气味卡尔曼滤波器。
initcvukf 初始化恒速无气味卡尔曼滤波器。

你也可以写自己的初始化函数。函数必须具有以下语法:

filter = filterInitializationFcn(检测)
函数的输入是一个检测报告,类似于类创建的报告objectDetection对象。此函数的输出必须是跟踪筛选器对象,例如trackingKFtrackingEKFtrackingUKF,或trackingABF

为了指导您编写这个函数,您可以查看MATLAB中提供的函数的详细信息®.例如:

类型initcvekf

依赖关系

要启用此属性,请设置TargetReportFormat财产“跟踪”

数据类型:function_handle|字符|字符串

跟踪确认的阈值,指定为形式的1乘2正整数向量(mn).如果一个轨道至少接收到,则它被确认最后的侦查N更新。必须小于或等于N

  • 当设置,考虑了传感器检测到目标的概率。被发现的概率取决于遮挡或杂波等因素。你可以减少当航迹无法确认或增加时当太多的错误检测被分配到轨道。

  • 当设置N,考虑您希望跟踪器在做出确认决定之前更新的次数。例如,如果跟踪器每0.05秒更新一次,而您希望允许0.5秒的时间来做出确认决策,则设置N = 10

例子:[3 - 5]

依赖关系

要启用此属性,请设置TargetReportFormat财产“跟踪”

数据类型:

音轨删除的阈值,指定为形式的1乘2正整数向量[P R].如果确认的航迹没有分配给任何检测P最后的时间R跟踪器更新,然后删除跟踪。P必须小于或等于R

  • 若要减少雷达维持航迹的时间,请减少R或增加P

  • 若要长时间保持轨迹,请增加R或减少P

例子:[3 - 5]

依赖关系

要启用此属性,请设置TargetReportFormat财产“跟踪”

数据类型:

报告的航迹坐标系统,指定为下列选项之一:

  • “身体”-轨道报告在自我车辆的矩形体系统。

  • “传感器”-雷达传感器的矩形体系统报告航迹。

依赖关系

要启用此属性,请设置TargetReportFormat财产“跟踪”

目标概要文件

参与者配置文件,指定为结构或结构数组。每个结构都包含一个参与者的物理和雷达特征。

  • 如果ActorProfiles是不是一个单一的结构,所有的参与者都传递到drivingRadarDataGenerator对象使用此配置文件。

  • 如果ActorProfiles是一个数组,传入对象的每个参与者必须具有唯一的参与者配置文件。

要为您的驾驶场景生成结构数组,请使用actorProfiles函数。该表显示了有效的结构字段。如果您不指定一个字段,该字段将被设置为其默认值。如果没有将参与者传递到对象中,则ActorID字段不包括在内。

描述
ActorID 场景定义的参与者标识符,指定为正整数。
ClassID 分类标识符,指定为非负整数。0为未知或未赋值类的对象保留。
长度 actor的长度,指定为正实标量。默认为4.7.单位是米。
宽度 actor的宽度,指定为正实标量。默认为1.8.单位是米。
高度 actor的高度,指定为正实标量。默认为1.4.单位是米。
OriginOffset

动作者的旋转中心与几何中心的偏移量,用[表示xyz实值向量。旋转中心,或原点,位于演员的底部中心。对于车辆来说,旋转中心是后轴中心下方的地面点。默认为[0 0 0].单位是米。

RCSPattern 行动者的雷达横截面图,指定为元素个数(RCSElevationAngles)——- - - - - -元素个数(RCSAzimuthAngles)实值矩阵。默认为[10 10;10 10].单位为分贝每平方米。
RCSAzimuthAngles 方位角对应行RCSPattern,指定为范围为[-180,180]的实数向量。默认为(-180 180).单位以度为单位。
RCSElevationAngles 仰角对应行RCSPattern,指定为范围为[- 90,90]的实值向量。默认为(-90 90).单位以度为单位。

有关结构字段的完整定义,请参见演员而且车辆功能。

数据类型:结构体

使用

描述

生成检测

的时候应用这些语法TargetReportFormat财产“集群检测”“检测”

依据= rdr (目标simTime创建雷达探测,依据,从目标姿态的传感器测量,目标,相对于当前模拟时刻的自我载具,simTime.该对象可以同时为多个参与者生成传感器检测。

依据numReports= rdr(目标simTime也返回已报告的有效检测数,numReports

例子

依据numReportsisValidTime= rdr(目标simTime也返回一个逻辑值,isValidTime,表示是否simTime生成检测的有效时间。如果simTime是的倒数的整数倍吗UpdateRate那么,财产价值isValidTime1真正的).

生成跟踪

的时候应用这些语法TargetReportFormat财产“跟踪”

跟踪= rdr (目标simTime创建雷达轨迹,跟踪,从目标姿态的传感器测量,目标,相对于当前模拟时刻的自我载具,simTime.该对象可以同时为多个参与者生成传感器轨迹。

跟踪numReports= rdr(目标simTime也返回已报告的有效轨道的数量,numReports

例子

跟踪numReportsisValidTime= rdr(目标simTime也返回一个逻辑值,isValidTime,表示是否simTime是生成轨迹的有效时间。如果simTime是的倒数的整数倍吗UpdateRate那么,财产价值isValidTime1真正的).

输入参数

全部展开

目标参与者姿势,指定为结构或结构数组。每个结构都对应于一个目标演员相对于自我载体的姿势。要生成这些结构,请使用targetPoses函数。您也可以手动创建这些结构。不要在结构数组中包含自我载具的姿态。

该表显示了结构的必需字段。

描述
ActorID

场景定义的参与者标识符,指定为正整数。

ClassID 分类标识符,指定为非负整数。0表示未知或未赋值类的对象。
位置

行为人的位置,指定为形式为[的实值向量xyz].单位是米。

速度

速度(v)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量vxvyvz].单位是米每秒。

actor的滚动角度,指定为实标量。单位以度为单位。

球场

演员的俯仰角,指定为实标量。单位以度为单位。

偏航

actor的偏航角,指定为实标量。单位以度为单位。

AngularVelocity

角速度(ω)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量ωxωyωz].单位是以度/秒为单位。

当前模拟时间,以秒为单位,指定为非负实标量。

例子:10.5

数据类型:

输出参数

全部展开

生成的检测,作为单元格数组返回objectDetection对象。每个对象都包含以下属性:

财产 定义
时间 测量时间
测量 对象的测量
MeasurementNoise 测量噪声协方差矩阵
SensorIndex 传感器的唯一ID
ObjectClassID 对象分类
ObjectAttributes 传递给跟踪器的附加信息
MeasurementParameters 非线性卡尔曼跟踪滤波器初始化函数所用的参数

对于直角坐标,测量而且MeasurementNoise在矩形坐标系中报告DetectionCoordinates的属性drivingRadarDataGenerator对象。

对于球坐标,测量而且MeasurementNoise都是在球坐标系中报告的,这是基于传感器的直角坐标系。

测量而且MeasurementNoise

DetectionCoordinates价值 测量而且MeasurementNoise坐标
“身体”

坐标依赖HasRangeRate

HasRangeRate 坐标
真正的 [x, y, z, vx; v; vz]
[x, y, z]
传感器矩形的
“球形传感器”

坐标依赖HasRangeRate而且HasElevation

HasRangeRate HasElevation 坐标
真正的 真正的 (阿兹;el rng; rr)
真正的 (阿兹;提高;rr)
真正的 (阿兹;el rng)
(阿兹;rng)

ObjectAttributes,此表描述用于跟踪的附加信息。

ObjectAttributes

属性 定义
TargetIndex 行为人的标识符,ActorID,从而产生了检测结果。对于误报,该值为负。
信噪比 检测信噪比,单位为dB。

MeasurementParameters,测量值相对于父帧。当你设置DetectionCoordinates财产“身体”,父框架就是自我载体体。当你设置DetectionCoordinates传感器矩形的“球形传感器”,父帧为传感器。

MeasurementParameters

参数 定义
框架 枚举类型,指示用于报告度量的帧。当框架设置为“矩形”在美国,检测以直角坐标报告。当框架设置为“球”在美国,检测是以球坐标报告的。
OriginPosition 传感器原点与父帧原点的三维矢量偏移量。
取向 雷达传感器坐标系相对于父坐标系的方向。
HasVelocity 指示测量是否包含速度或距离率组件。
HasElevation 指示测量是否包含高程分量。

生成的轨道,作为objectTrack和生成代码中的结构数组。在生成的代码中,返回结构的字段名与objectTrack对象。

传感器只返回确认跟踪中指定的确认阈值的跟踪ConfirmationThreshold财产。对于这些轨迹,IsConfirmed对象或结构字段的属性是真正的

数据类型:结构体|对象

报告的检测或跟踪数,作为非负整数返回。numReports等于的长度依据当生成检测和跟踪当生成轨道。

数据类型:

生成报告的有效时间,作为逻辑返回0)或1真正的).

如果isValidTime0),然后返回的报告依据(对于生成的检测)或跟踪(对于生成的轨迹)无效,因为传感器在与传感器更新速率不一致的时间生成了它们。

传感器仅当当前模拟时间,simTime,为传感器生成报告时间间隔的整数倍。这个时间间隔等于的倒数UpdateRate属性值。

数据类型:逻辑

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj,使用以下语法:

发行版(obj)

全部展开

isLocked 确定系统对象正在使用中
克隆 创建重复的系统对象
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 的内部状态重置系统对象

例子

全部折叠

使用雷达传感器生成聚类检测、非聚类检测和驾驶场景中多辆车辆的轨迹。

创建驾驶场景

创建一个空的驾驶场景,添加一个双车道,100米的路段。用虚线标记分开车道。

场景:“SampleTime”, 0.02);roadCenters = [0 0 0;100 00];标记= [laneMarking(“固体”) laneMarking (“冲”) laneMarking (“固体”));laneSpecification = lanespec([1 1],“标记”,标志着);路(场景、roadCenters“道”, laneSpecification);

加上自我载体。车辆在右车道上以每秒20米的恒定速度行驶90米。

自我=载体(场景,“ClassID”, 1“位置”,[5 -1.8 0]);egoWaypoints =[自我.位置;...(自我.位置(1)+ 90)自我.位置(2:3)];egoSpeed = 20;% m / ssmoothTrajectory(自我,egoWaypoints egoSpeed)

添加雷达可以产生探测和跟踪的目标车辆。

  • 第一辆车在自我车前面10米处启动,以每秒30米的恒定速度在车道上行驶。

  • 第二辆车是卡车,在左侧车道上以每秒30米的恒定速度行驶。

Car = vehicle(场景,“ClassID”, 1“位置”,[ego.Position(1)+10 -1.8 0]);carWaypoints = [car.位置;...(car.Position(1) + 75) car.Position(2:3)];carSpeed = 30;% m / s平滑轨迹(car,carWaypoints,carSpeed)卡车=车辆(场景,“ClassID”,2,“位置”,[5 1.8 0],...“长度”, 8.2,“宽度”, 2.5,“高度”, 3.5);truckWaypoints =[卡车.位置;...(卡车。位置(1)+ 90)卡车。位置(2:3)];truckSpeed = 30;% m / ssmoothTrajectory(卡车,truckWaypoints, truckSpeed)

绘制驾驶场景,并暂停以便有时间更新。

情节(场景)推进(场景)暂停(scenario.SampleTime)结束

创建雷达传感器

创建一个最大距离为100米的雷达传感器,并将其安装在自我车辆的前镜上。配置传感器以与场景的采样时间相同的速度更新。指定雷达使用汽车和卡车的目标轮廓来生成数据。

close(gcf) maxRange = 100;% mfrontMirror =[自我]。FrontOverhang 0 (ego.Height-0.1)];profiles = actorProfiles(场景);targetProfiles = profiles(2:end);Id = 1;rdr = drivingRadarDataGenerator(id,“UpdateRate”1 /场景。SampleTime,...“MountingLocation”frontMirror,...“RangeLimits”[0 maxRange],...“配置文件”targetProfiles)
rdr = drivingRadarDataGenerator with properties: SensorIndex: 1 UpdateRate: 50 MountingLocation: [0.9000 0 1.3000] MountingAngles: [0 00] FieldOfView: [20 5] RangeLimits: [0 100] RangeRateLimits: [-100 100] DetectionProbability: 0.9000 FalseAlarmRate: 1.0000e-06使用get显示所有属性

创建鸟瞰情节

创建一个鸟瞰图,以可视化传感器数据。添加绘图器,以可视化车道标记、车辆轮廓和雷达覆盖区域。使用helperPlotScenario功能来绘制场景的这些方面。这个helper函数在示例的最后定义。

bep = birdsEyePlot(“XLim”, 60 [0],“YLim”35 [-35]);lmPlotter = laneMarkingPlotter(bep,“标签”“lm”“DisplayName的”“车道标记”);olPlotter = outlinePlotter(bep,“标签”“ol”);caPlotter = coverageAreaPlotter(bep,...“标签”“ca”...“DisplayName的”“雷达覆盖范围”...“FaceColor”“红色”“EdgeColor”“红色”);helperPlotScenario (cep rdr自我)

生成聚类检测

使用雷达对目标车辆进行集群探测。在鸟瞰图上想象这些探测结果。在每个仿真时间步中,雷达只对每个目标产生一次探测。

clusterDetPlotter = detectionPlotter(bep,...“DisplayName的”“集群检测”...“MarkerEdgeColor”“红色”...“MarkerFaceColor”“红色”);重启(场景)advance(scenario) simTime = scenario. simulationtime;targets = targetpose(自我);[dets,numDets,isValidTime] = rdr(targets,simTime);helperPlotScenario (cep rdr自我)如果isValidTime && numDets > 0 detPos = cell2mat(cellfun(@(d)d. measurement (1:2),dets,...“UniformOutput”、假)“)”;plotDetection (clusterDetPlotter detPos)结束结束

生成非聚类检测

使用雷达对目标车辆进行非聚集探测。在鸟瞰图上想象这些探测结果。在每个模拟时间步,雷达产生多个探测每个目标。

clearData(clusterDetPlotter) release(rdr) rdr。TargetReportFormat =“检测”;detPlotter = detectionPlotter(bep,...“DisplayName的”“未聚集的检测”...“MarkerEdgeColor”“红色”);重启(场景)advance(scenario) simTime = scenario. simulationtime;targets = targetpose(自我);[dets,numDets,isValidTime] = rdr(targets,simTime);helperPlotScenario (cep rdr自我)如果isValidTime && numDets > 0 detPos = cell2mat(cellfun(@(d)d. measurement (1:2),dets,...“UniformOutput”、假)“)”;plotDetection (detPlotter detPos)结束结束

生成跟踪

使用雷达生成目标车辆的轨迹。在鸟瞰图上想象这些轨迹和轨迹历史。

clearData(detPlotter)释放(rdr) rdr。TargetReportFormat =“跟踪”;historyDepth = 20;tPlotter = trackPlotter(bep,“DisplayName的”“跟踪”...“HistoryDepth”, historyDepth);重启(场景)advance(scenario) simTime = scenario. simulationtime;targets = targetpose(自我);[tracks,numTracks,isValidTime] = rdr(targets,simTime);helperPlotScenario (cep rdr自我)如果isValidTime && numTracks > 0 trackPos = cell2mat(arrayfun(@(t)t. state (1:2:end),tracks,...“UniformOutput”、假)“)”;plotTrack (tPlotter trackPos (: 1:2))结束结束

关闭鸟瞰图,重新启动场景,释放雷达传感器。

关闭(gcf)重新启动(场景)释放(rdr)

金宝app支持功能

helperPlotScenario在鸟瞰图上绘制自我车辆的车道标记和车辆轮廓。它还绘制了雷达传感器的覆盖区域。

函数helperPlotScenario (cep、雷达、自我)% Plot车道标记lmPlotter = findPlotter(bep,“标签”“lm”);[lmv,lmf] = laneMarkingVertices(ego);plotLaneMarking (lmPlotter lmv lmf)绘制车辆轮廓图olPlotter = findPlotter(bep,“标签”“ol”);[位置,偏航,长度,宽度,originOffset,color] = targetoutline(自我);plotOutline (olPlotter、位置、偏航、长度、宽度、...“OriginOffset”originOffset,“颜色”、颜色)绘制雷达覆盖区域caPlotter = findPlotter(bep,“标签”“ca”);plotCoverageArea (caPlotter radar.MountingLocation (1:2),...radar.MountingAngles radar.RangeLimits (2) (1),...radar.FieldOfView (1))结束
在R2021a中引入