drivingRadarDataGenerator
从驾驶场景生成雷达传感器检测和轨迹
描述
的drivingRadarDataGenerator
系统对象™从汽车雷达传感器模型生成目标的检测或跟踪报告。使用此对象可从包含参与者和轨迹的驾驶场景生成传感器数据,您可以使用drivingScenario
对象。创建场景时使用驾驶场景设计师App中,安装在自我车上的雷达传感器输出为drivingRadarDataGenerator
对象。
的drivingRadarDataGenerator
对象可以在添加随机噪声的情况下模拟聚类或非聚类检测,还可以生成虚警检测。可以将生成的检测与其他传感器数据融合,并使用multiObjectTracker
对象。也可以直接从drivingRadarDataGenerator
对象。属性将目标输出为群集检测、非群集检测还是跟踪TargetReportFormat
财产。
生成雷达探测或跟踪报告:
创建
drivingRadarDataGenerator
对象并设置其属性。调用带有参数的对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?
创建
语法
描述
创建一个雷达传感器,该传感器报告群集探测并使用默认属性值。rdr
= drivingRadarDataGenerator
设置rdr
= drivingRadarDataGenerator (id
)SensorIndex
财产id
.
属性
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
函数解锁它们。
如果属性是可调,您可以随时更改其值。
有关更改属性值的更多信息,请参见在MATLAB中使用系统对象设计系统.
传感器识别
SensorIndex
- - - - - -唯一传感器识别器
0
(默认)|正整数
唯一传感器标识符,指定为正整数。使用此属性可以在多传感器系统中区分来自不同传感器的检测或跟踪。为每个传感器指定一个唯一的值。如果不更新SensorIndex
的默认值0
,则雷达在模拟开始时返回一个错误。
数据类型:双
UpdateRate
- - - - - -传感器更新速率(Hz)
10
(默认)|正实标量
传感器更新速率,以赫兹为单位,指定为正实标量。更新速率的倒数必须是模拟时间间隔的整数倍。雷达按此互反值定义的间隔生成新的报告。更新间隔之间请求的任何传感器更新都不包含检测或跟踪。
数据类型:双
MountingLocation
- - - - - -自我载具上的传感器位置(m)
[3.4 0 0.2]
(默认)|形式为[的1 × 3实值向量xyz]
自我车身框架上的传感器位置,以米为单位,指定为形式为[的1 × 3实值向量]xyz].此属性定义传感器沿x设在,y设在,z-轴相对于自我载具原点,其中:
的x-轴指向车辆前方。
的y-轴指向车辆的左侧。
的z-轴指向地面。
默认值对应于安装在轿车前格栅中心的雷达。
有关自我车辆坐标系统的更多细节,请参见自动驾驶工具箱中的坐标系统.
数据类型:双
MountingAngles
- - - - - -雷达安装旋转角度(deg)
[0 0 0]
(默认)|形式为[的1 × 3实值向量z偏航y球场x卷]
雷达的安装旋转角度,以度为单位,指定为形式[的1 × 3实值向量]z偏航y球场x卷].此属性定义了传感器围绕的固有欧拉角旋转z设在,y设在,x-轴相对于自我车辆车身框架,其中:
z偏航,或偏航角,将传感器绕z自我载体的-轴。
y球场,或螺旋角,将传感器绕y自我载体的-轴。这个旋转是相对于传感器位置的结果z偏航旋转。
x卷,或横摇角,将传感器绕x自我载体的-轴。这个旋转是相对于传感器位置的结果z偏航而且y球场旋转。
这些角是顺时针正的,当往前方看时z设在,y设在,x分别设在。如果从鸟瞰视角可视化传感器数据,则偏航角为逆时针正,因为您是在反向方向查看数据z-轴,从地面向上指向。
有关这个坐标系的更多细节,请参见自动驾驶工具箱中的坐标系统.
数据类型:双
HasElevation
- - - - - -使雷达测量目标仰角
假
或0
(默认)|真正的
或1
使雷达测量目标仰角,指定为逻辑0
(假
)或1
(真正的
).将此属性设置为真正的
为一个可以估计目标高度的雷达传感器建模。
数据类型:逻辑
HasRangeRate
- - - - - -使雷达测量目标距离率
真正的
或1
(默认)|假
或0
使雷达能够测量目标距离率,指定为逻辑1
(真正的
)或0
(假
).将此属性设置为真正的
模拟一个雷达传感器,可以测量从目标探测到的距离率。
数据类型:逻辑
HasNoise
- - - - - -能够添加噪声到雷达传感器测量
真正的
或1
(默认)|假
或0
允许将噪声添加到雷达传感器测量中,指定为逻辑1
(真正的
)或0
(假
).将此属性设置为真正的
给雷达测量增加噪音。否则,测量没有噪声。即使你设置了HasNoise
来假
的测量噪声协方差矩阵MeasurementNoise
属性的生成对象检测输出,依据
,表示时添加的测量噪声HasNoise
是真正的
.
数据类型:逻辑
HasFalseAlarms
- - - - - -启用创建虚警雷达探测功能
真正的
或1
(默认)|假
或0
启用创建虚警雷达测量,指定为逻辑1
(真正的
)或0
(假
).将此属性设置为真正的
报告误报。否则,雷达只能报告实际探测到的信号。
数据类型:逻辑
HasOcclusion
- - - - - -启用视线闭塞
真正的
或1
(默认)|假
或0
启用视线遮挡,指定为逻辑1
(真正的
)或0
(假
).若要仅从雷达有直接视线的物体生成探测,请将此属性设置为真正的
.例如,启用此属性后,雷达不会对位于另一辆车后面且被遮挡的车辆进行探测。
数据类型:逻辑
MaxNumReportsSource
- - - - - -检测或跟踪报告数量最大值的来源
“汽车”
(默认)|“属性”
检测或跟踪报告数量的最大值的来源,指定为以下选项之一:
“汽车”
-传感器报告所有检测或轨迹。“属性”
—传感器报告第一个N有效的检测或跟踪,其中N等于MaxNumReports
属性值。
MaxNumReports
- - - - - -检测或轨迹的最大数量
50
(默认)|正整数
传感器报告的最大检测或跟踪数,指定为正整数。传感器报告检测的顺序是增加与传感器的距离,直到达到这个最大值。
依赖关系
要启用此属性,请设置MaxNumReportsSource
财产“属性”
.
数据类型:双
TargetReportFormat
- - - - - -生成的目标报告的格式
“集群检测”
(默认)|“跟踪”
|“检测”
生成的目标报告的格式,指定为以下选项之一:
“集群检测”
—传感器生成目标报告为集群检测,其中每个目标报告为单个检测,该检测是非聚类目标检测的质心。的数组返回聚类检测objectDetection
对象,如中所述依据
输出参数。“跟踪”
—传感器生成目标报告为跟踪,它们是经过跟踪过滤器处理的聚类检测。传感器返回轨道作为一个数组objectTrack
对象,如中所述跟踪
输出参数。“检测”
—传感器生成目标报告为未聚集的检测,其中每个目标可以有多次检测。的数组返回未聚类的检测objectDetection
对象,如中所述依据
输出参数。
DetectionCoordinates
- - - - - -报告检测的坐标系统
“身体”
(默认)|传感器矩形的
|“球形传感器”
报告检测的坐标系统,指定为以下选项之一:
“身体”
-检测报告在自我车辆的矩形体系统。传感器矩形的
-检测报告在雷达传感器的矩形体系统。“球形传感器”
-探测报告在以雷达传感器为中心的球坐标系中,并与自我车辆上雷达的方向对齐。
AzimuthResolution
- - - - - -雷达方位分辨率(度)
4
(默认)|正实标量
雷达的方位角分辨率,以度为单位,指定为一个正标量。的方位分辨率定义雷达能区分两个目标的方位角上的最小距离。方位角分辨率通常是雷达方位角波束宽度的3分贝下点。
数据类型:双
ElevationResolution
- - - - - -雷达高程分辨率(deg)
5
(默认)|正实标量
雷达的仰角分辨率,以度为单位,指定为正实标量。的海拔决议定义雷达能区分两个目标的最小仰角距离。高程分辨率通常是雷达高程角波束宽度的半功率波束宽度。
依赖关系
要启用此属性,请设置HasElevation
财产真正的
.
数据类型:双
RangeResolution
- - - - - -雷达距离分辨率(m)
2.5
(默认)|正实标量
雷达的距离分辨率,以米为单位,指定为正实标量。的距离分辨率定义雷达能区分两个目标的距离上的最小距离。
数据类型:双
RangeRateResolution
- - - - - -雷达距离速率分辨率(m/s)
0.5
(默认)|正实标量
雷达的距离速率分辨率,以米每秒为单位,指定为正实标量。的距离速率分辨率定义雷达能区分两个目标的最小距离。
依赖关系
要启用此属性,请设置HasRangeRate
财产真正的
.
数据类型:双
AzimuthBiasFraction
- - - - - -雷达的方位偏压分数
0.1
(默认)|负的标量
雷达的方位偏置分数,指定为非负标量。方位偏差中指定的方位角分辨率的分数表示AzimuthResolution
财产。该值设置了雷达方位精度的下界,并且是无量纲的。
数据类型:双
ElevationBiasFraction
- - - - - -雷达的仰角偏压分数
0.1
(默认)|负的标量
雷达的仰角偏置分数,指定为非负标量。高程偏差表示为?指定的高度分辨率的分数ElevationResolution
财产。该值设置了雷达的高程精度的下界,并且是无量纲的。
依赖关系
要启用此属性,请设置HasElevation
财产真正的
.
数据类型:双
RangeBiasFraction
- - - - - -距离偏差分数
0.05
(默认)|负的标量
雷达的距离偏置分数,指定为非负标量。偏差范围表示为?指定的范围分辨率的分数RangeResolution
财产。该属性设置了雷达距离精度的下界,并且是无量纲的。
数据类型:双
RangeRateBiasFraction
- - - - - -距离速率偏差分数
0.05
(默认)|负的标量
雷达的距离率偏置分数,指定为非负标量。数据与偏见表示为?指定的距离速率分辨率的分数RangeRateResolution
财产。该属性设置了雷达距离速率精度的下界,并且是无量纲的。
依赖关系
要启用此属性,请设置HasRangeRate
财产真正的
.
数据类型:双
DetectionProbability
- - - - - -发现目标概率
0.9
(默认)|(0,1)范围内的标量
探测到目标的概率,指定为范围(0,1)中的标量。这个属性定义了雷达横截面(RCS)探测到目标的概率,ReferenceRCS
,在参考检测范围,ReferenceRange
.
数据类型:双
ReferenceRange
- - - - - -给定探测概率的参考范围(m)
One hundred.
(默认)|正实标量
给定探测概率和给定参考雷达截面(RCS)的参考范围,以米为单位,指定为正实标量。的参考范围具有雷达横截面的目标的距离是否由ReferenceRCS
属性指定的检测概率来检测DetectionProbability
财产。
数据类型:双
ReferenceRCS
- - - - - -给定探测概率的参考雷达横截面
0
(默认)|真正的标量
给定探测概率和参考范围的参考雷达截面(RCS),以分贝平方米为单位,指定为一个真实标量。的参考RCS是探测到目标时的RCS值,其概率由DetectionProbability
在指定的ReferenceRange
价值。
数据类型:双
FalseAlarmRate
- - - - - -误报率
1 e-6
(默认)|[10]范围内的正实标量7, 103]
每个雷达分辨率单元内的虚警报告率,指定为范围[10 .]内的一个正实标量7, 103].单位是无量纲的。对象从控件确定分辨率单元格AzimuthResolution
而且RangeResolution
属性,如果启用,则从ElevationResolution
而且RangeRateResolution
属性。
数据类型:双
CenterFrequency
- - - - - -雷达波段中心频率(Hz)
77年e9
(默认)|正实标量
雷达波段的中心频率,以赫兹为单位,指定为一个正标量。
数据类型:双
FieldOfView
- - - - - -雷达角视场(deg)
20 [5]
|1 × 2正实值向量的形式[azfov elfov]
雷达的角视场,以度为单位,指定为1 × 2正实值向量的形式[azfov elfov]
.视场定义了传感器所跨越的总角度范围。方位视场,azfov
,必须在(0,360)的区间内。仰角视场,elfov
,必须在区间(0,180)内。
数据类型:双
RangeLimits
- - - - - -雷达最小和最大距离(m)
150年[0]
(默认)|1 × 2非负实值向量的形式(最小最大)
雷达的最小和最大距离,以米为单位,指定为1 × 2形式的非负实值向量(最小最大)
.雷达不会探测到这个范围以外的目标。最大范围,马克斯
,必须大于最小范围,最小值
.
RangeRateLimits
- - - - - -雷达最小和最大距离速率(m/s)
(-100 100)
(默认)|1 × 2实值向量的形式(最小最大)
雷达的最小和最大距离速率,单位为米每秒,指定为形式的1 × 2实值向量(最小最大)
.雷达不会探测到超出这个距离的目标。最大幅度,马克斯
,必须大于最小量程速率,最小值
.
依赖关系
要启用此属性,请设置HasRangeRate
财产真正的
.
RadarLoopGain
- - - - - -雷达环路增益
真正的标量
此属性是只读的。
雷达环路增益,指定为一个实标量。RadarLoopGain
的值DetectionProbability
,ReferenceRange
,ReferenceRCS
,FalseAlarmRate
属性。雷达环路增益是雷达报告信噪比的函数,信噪比,目标雷达横截面,RCS,目标范围,R,由以下等式描述:
信噪比=RadarLoopGain
+RCS- 40日志10(R)
信噪比而且RCS分别是分贝和分贝平方米,R单位是米,和RadarLoopGain
单位是分贝。
数据类型:双
FilterInitializationFcn
- - - - - -卡尔曼滤波初始化函数
@initcvekf
(默认)|函数处理|特征向量|字符串标量
卡尔曼滤波初始化函数,指定为函数句柄或有效卡尔曼滤波初始化函数名称的字符向量或字符串标量。
该表显示了可以用于指定的初始化函数FilterInitializationFcn
.
初始化函数 | 函数定义 |
---|---|
initcaabf |
初始化定加速度卡尔曼滤波器 |
initcvabf |
初始化恒速- -卡尔曼滤波器 |
initcakf |
初始化定加速线性卡尔曼滤波器。 |
initcvkf |
初始化等速线性卡尔曼滤波器。 |
initcaekf |
初始化定加速扩展卡尔曼滤波器。 |
initctekf |
初始化常转化率扩展卡尔曼滤波器。 |
initcvekf |
初始化恒速扩展卡尔曼滤波器。 |
initcaukf |
初始化恒加速无气味卡尔曼滤波器。 |
initctukf |
初始化常转化率无气味卡尔曼滤波器。 |
initcvukf |
初始化恒速无气味卡尔曼滤波器。 |
你也可以写自己的初始化函数。函数必须具有以下语法:
filter = filterInitializationFcn(检测)
objectDetection
对象。此函数的输出必须是跟踪筛选器对象,例如trackingKF
,trackingEKF
,trackingUKF
,或trackingABF
.
为了指导您编写这个函数,您可以查看MATLAB中提供的函数的详细信息®.例如:
类型initcvekf
依赖关系
要启用此属性,请设置TargetReportFormat
财产“跟踪”
.
数据类型:function_handle
|字符
|字符串
ConfirmationThreshold
- - - - - -航迹确认阈值
3 [2]
(默认)|1 × 2的正整数向量
跟踪确认的阈值,指定为形式的1乘2正整数向量(mn)
.如果一个轨道至少接收到,则它被确认米
最后的侦查N
更新。米
必须小于或等于N
.
当设置
米
,考虑了传感器检测到目标的概率。被发现的概率取决于遮挡或杂波等因素。你可以减少米
当航迹无法确认或增加时米
当太多的错误检测被分配到轨道。当设置
N
,考虑您希望跟踪器在做出确认决定之前更新的次数。例如,如果跟踪器每0.05秒更新一次,而您希望允许0.5秒的时间来做出确认决策,则设置N = 10
.
例子:[3 - 5]
依赖关系
要启用此属性,请设置TargetReportFormat
财产“跟踪”
.
数据类型:双
DeletionThreshold
- - - - - -删除履带阈值
5 [5]
(默认)|1 × 2的正整数向量
音轨删除的阈值,指定为形式的1乘2正整数向量[P R]
.如果确认的航迹没有分配给任何检测P
最后的时间R
跟踪器更新,然后删除跟踪。P
必须小于或等于R
.
若要减少雷达维持航迹的时间,请减少
R
或增加P
.若要长时间保持轨迹,请增加
R
或减少P
.
例子:[3 - 5]
依赖关系
要启用此属性,请设置TargetReportFormat
财产“跟踪”
.
数据类型:双
TrackCoordinates
- - - - - -报告航迹的坐标系统
“身体”
(默认)|“传感器”
报告的航迹坐标系统,指定为下列选项之一:
“身体”
-轨道报告在自我车辆的矩形体系统。“传感器”
-雷达传感器的矩形体系统报告航迹。
依赖关系
要启用此属性,请设置TargetReportFormat
财产“跟踪”
.
配置文件
- - - - - -演员简介
结构|结构数组
参与者配置文件,指定为结构或结构数组。每个结构都包含一个参与者的物理和雷达特征。
如果
ActorProfiles
是不是一个单一的结构,所有的参与者都传递到drivingRadarDataGenerator
对象使用此配置文件。如果
ActorProfiles
是一个数组,传入对象的每个参与者必须具有唯一的参与者配置文件。
要为您的驾驶场景生成结构数组,请使用actorProfiles
函数。该表显示了有效的结构字段。如果您不指定一个字段,该字段将被设置为其默认值。如果没有将参与者传递到对象中,则ActorID
字段不包括在内。
场 | 描述 |
---|---|
ActorID |
场景定义的参与者标识符,指定为正整数。 |
ClassID |
分类标识符,指定为非负整数。0 为未知或未赋值类的对象保留。 |
长度 |
actor的长度,指定为正实标量。默认为4.7 .单位是米。 |
宽度 |
actor的宽度,指定为正实标量。默认为1.8 .单位是米。 |
高度 |
actor的高度,指定为正实标量。默认为1.4 .单位是米。 |
OriginOffset |
动作者的旋转中心与几何中心的偏移量,用[表示xyz实值向量。旋转中心,或原点,位于演员的底部中心。对于车辆来说,旋转中心是后轴中心下方的地面点。默认为 |
RCSPattern |
行动者的雷达横截面图,指定为元素个数(RCSElevationAngles) ——- - - - - -元素个数(RCSAzimuthAngles) 实值矩阵。默认为[10 10;10 10] .单位为分贝每平方米。 |
RCSAzimuthAngles |
方位角对应行RCSPattern ,指定为范围为[-180,180]的实数向量。默认为(-180 180) .单位以度为单位。 |
RCSElevationAngles |
仰角对应行RCSPattern ,指定为范围为[- 90,90]的实值向量。默认为(-90 90) .单位以度为单位。 |
数据类型:结构体
使用
语法
描述
生成检测
的时候应用这些语法TargetReportFormat
财产“集群检测”
或“检测”
.
[
也返回已报告的有效检测数,依据
,numReports
= rdr(目标
,simTime
)numReports
.
[
也返回一个逻辑值,依据
,numReports
,isValidTime
= rdr(目标
,simTime
)isValidTime
,表示是否simTime
生成检测的有效时间。如果simTime
是的倒数的整数倍吗UpdateRate
那么,财产价值isValidTime
是1
(真正的
).
生成跟踪
的时候应用这些语法TargetReportFormat
财产“跟踪”
.
[
也返回已报告的有效轨道的数量,跟踪
,numReports
= rdr(目标
,simTime
)numReports
.
[
也返回一个逻辑值,跟踪
,numReports
,isValidTime
= rdr(目标
,simTime
)isValidTime
,表示是否simTime
是生成轨迹的有效时间。如果simTime
是的倒数的整数倍吗UpdateRate
那么,财产价值isValidTime
是1
(真正的
).
输入参数
目标
- - - - - -目标演员姿势
结构|结构数组
目标参与者姿势,指定为结构或结构数组。每个结构都对应于一个目标演员相对于自我载体的姿势。要生成这些结构,请使用targetPoses
函数。您也可以手动创建这些结构。不要在结构数组中包含自我载具的姿态。
该表显示了结构的必需字段。
场 | 描述 |
---|---|
ActorID |
场景定义的参与者标识符,指定为正整数。 |
ClassID |
分类标识符,指定为非负整数。0 表示未知或未赋值类的对象。 |
位置 |
行为人的位置,指定为形式为[的实值向量xyz].单位是米。 |
速度 |
速度(v)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量vxvyvz].单位是米每秒。 |
卷 |
actor的滚动角度,指定为实标量。单位以度为单位。 |
球场 |
演员的俯仰角,指定为实标量。单位以度为单位。 |
偏航 |
actor的偏航角,指定为实标量。单位以度为单位。 |
AngularVelocity |
角速度(ω)的演员x-,y- - - - - -,z-directions,指定为形式为[的实值向量ωxωyωz].单位是以度/秒为单位。 |
simTime
- - - - - -当前模拟时间
非负实标量
当前模拟时间,以秒为单位,指定为非负实标量。
例子:10.5
数据类型:双
输出参数
依据
-生成的检测
单元阵列objectDetection
对象
生成的检测,作为单元格数组返回objectDetection
对象。每个对象都包含以下属性:
财产 | 定义 |
---|---|
时间 |
测量时间 |
测量 |
对象的测量 |
MeasurementNoise |
测量噪声协方差矩阵 |
SensorIndex |
传感器的唯一ID |
ObjectClassID |
对象分类 |
ObjectAttributes |
传递给跟踪器的附加信息 |
MeasurementParameters |
非线性卡尔曼跟踪滤波器初始化函数所用的参数 |
对于直角坐标,测量
而且MeasurementNoise
在矩形坐标系中报告DetectionCoordinates
的属性drivingRadarDataGenerator
对象。
对于球坐标,测量
而且MeasurementNoise
都是在球坐标系中报告的,这是基于传感器的直角坐标系。
测量
而且MeasurementNoise
DetectionCoordinates 价值 |
测量 而且MeasurementNoise 坐标 |
|||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
“身体” |
坐标依赖
|
|||||||||||||||
传感器矩形的 |
||||||||||||||||
“球形传感器” |
坐标依赖
|
为ObjectAttributes
,此表描述用于跟踪的附加信息。
ObjectAttributes
属性 | 定义 |
---|---|
TargetIndex |
行为人的标识符,ActorID ,从而产生了检测结果。对于误报,该值为负。 |
信噪比 |
检测信噪比,单位为dB。 |
为MeasurementParameters
,测量值相对于父帧。当你设置DetectionCoordinates
财产“身体”
,父框架就是自我载体体。当你设置DetectionCoordinates
来传感器矩形的
或“球形传感器”
,父帧为传感器。
MeasurementParameters
参数 | 定义 |
---|---|
框架 |
枚举类型,指示用于报告度量的帧。当框架 设置为“矩形” 在美国,检测以直角坐标报告。当框架 设置为“球” 在美国,检测是以球坐标报告的。 |
OriginPosition |
传感器原点与父帧原点的三维矢量偏移量。 |
取向 |
雷达传感器坐标系相对于父坐标系的方向。 |
HasVelocity |
指示测量是否包含速度或距离率组件。 |
HasElevation |
指示测量是否包含高程分量。 |
跟踪
-生成轨迹
objectTrack
数组|结构数组
生成的轨道,作为objectTrack
和生成代码中的结构数组。在生成的代码中,返回结构的字段名与objectTrack
对象。
传感器只返回确认跟踪中指定的确认阈值的跟踪ConfirmationThreshold
财产。对于这些轨迹,IsConfirmed
对象或结构字段的属性是真正的
.
数据类型:结构体
|对象
numReports
-报告的探测或轨迹数量
非负整数
报告的检测或跟踪数,作为非负整数返回。numReports
等于的长度依据
当生成检测和跟踪
当生成轨道。
数据类型:双
isValidTime
—生成报表的有效时间
0
|1
生成报告的有效时间,作为逻辑返回0
(假
)或1
(真正的
).
如果isValidTime
是0
(假
),然后返回的报告依据
(对于生成的检测)或跟踪
(对于生成的轨迹)无效,因为传感器在与传感器更新速率不一致的时间生成了它们。
传感器仅当当前模拟时间,simTime
,为传感器生成报告时间间隔的整数倍。这个时间间隔等于的倒数UpdateRate
属性值。
数据类型:逻辑
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj
,使用以下语法:
发行版(obj)
例子
生成多个车辆的雷达探测和轨迹
使用雷达传感器生成聚类检测、非聚类检测和驾驶场景中多辆车辆的轨迹。
创建驾驶场景
创建一个空的驾驶场景,添加一个双车道,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))结束
另请参阅
对象
objectDetection
|objectTrack
|drivingScenario
|multiObjectTracker
|visionDetectionGenerator
|lidarPointCloudGenerator
|insSensor
功能
块
应用程序
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。