主要内容

trackerJPDA

联合概率数据关联跟踪器

描述

trackerJPDASystem object™是一种跟踪器,能够处理来自多个传感器的多个目标的检测。跟踪器使用联合概率数据关联来分配检测到每个轨道。跟踪器应用软分配,其中多个检测可以贡献到每个跟踪。跟踪器初始化、确认、纠正、预测(执行滑行)和删除轨道。跟踪器的输入是由生成的检测报告<一个href="//www.tatmou.com/es/es/help/fusion/ref/objectdetection.html">objectDetection,<一个href="//www.tatmou.com/es/es/help/fusion/ref/fusionradarsensor-system-object.html">fusionRadarSensor,<一个href="//www.tatmou.com/es/es/help/fusion/ref/irsensor-system-object.html">irSensor,或<一个href="//www.tatmou.com/es/es/help/fusion/ref/sonarsensor-system-object.html">sonarSensor对象。跟踪器估计每个轨迹的状态向量和状态估计误差协方差矩阵。每个检测被分配到至少一个轨道。如果检测不能分配给任何现有的轨道,跟踪器创建一个新的轨道。

任何新的轨道开始于试探性的状态。如果有足够多的探测被分配给一个暂定轨道,它的状态将变为确认(见ConfirmationThreshold属性)。如果检测已经有一个已知的分类(即ObjectClassID返回轨道的字段为非零),则立即确认相应的轨道。当一个轨迹被确认时,跟踪器认为该轨迹代表一个物理对象。如果在指定数量的更新内未将检测分配给音轨,则删除音轨。

类型可以启用不同的JPDA跟踪模式<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">TrackLogic而且<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">MaxNumEvents属性。

  • 设置<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">TrackLogic财产“集成”启用联合集成数据关联(JIPDA)跟踪器,其中航迹确认和删除是基于航迹存在的概率。

  • 设置<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">MaxNumEvents属性为有限整数,以启用k-最佳联合集成数据关联(k-最佳JPDA)跟踪器,该跟踪器在每个集群中生成最多k个事件。

使用此对象跟踪目标。

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

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见<一个href="//www.tatmou.com/es/es/help/matlab/matlab_prog/what-are-system-objects.html" class="a">什么是系统对象?

创建

描述

跟踪器= trackerJPDA创建一个trackerJPDA具有默认属性值的系统对象。

例子

跟踪器= trackerJPDA (名称,值使用一个或多个名称-值对设置跟踪器的属性。例如,trackerJPDA (FilterInitializationFcn, @initcvukf MaxNumTracks, 100)创建一个多目标跟踪器,使用恒定速度,无味卡尔曼滤波器,并允许最多100个轨道。将每个属性名用引号括起来。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而<一个href="//www.tatmou.com/es/es/help/matlab/ref/releasesystemobject.html">释放功能解锁它们。

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

有关更改属性值的详细信息,请参见<一个href="//www.tatmou.com/es/es/help/matlab/matlab_prog/system-design-in-matlab-using-system-objects.html" class="a">使用系统对象的MATLAB系统设计.

唯一跟踪器标识符,指定为非负整数。属性用作SourceIndex在跟踪器输出中,并区分来自多跟踪器系统中不同跟踪器的跟踪。必须将此属性指定为正整数,才能将音轨输出用作音轨熔断器的输入。

例子:1

过滤器初始化函数,指定为函数句柄或包含有效过滤器初始化函数名称的字符向量。跟踪器在创建新轨道时使用过滤器初始化函数。

传感器融合和跟踪工具箱™提供了许多初始化函数,您可以使用它们进行指定FilterInitializationFcn对于一个trackerJPDA对象。

初始化函数 函数定义
initcvkf 初始化等速线性卡尔曼滤波器。
initcakf 初始化恒加速度线性卡尔曼滤波器。
initcvabf 初始化等速alpha-beta滤波器
initcaabf 初始化恒加速度alpha-beta滤波器
initcvekf 初始化等速扩展卡尔曼滤波器。
initcaekf 初始化常加速度扩展卡尔曼滤波器。
initrpekf 初始化等速范围参数化扩展卡尔曼滤波器。
initapekf 初始化等速角参数化扩展卡尔曼滤波器。
initctekf 初始化常转率扩展卡尔曼滤波器。
initcackf 初始化恒加速度容积滤波器。
initctckf 初始化常转率容积过滤器。
initcvckf 初始化等速容积滤波器。
initcvukf 初始化等速无气味卡尔曼滤波器。
initcaukf 初始化恒加速度无味卡尔曼滤波器。
initctukf 初始化常转率无气味卡尔曼滤波器。
initcvmscekf 在修正球坐标系下初始化等速扩展卡尔曼滤波器。
initekfimm 初始化跟踪IMM过滤器。

你也可以使用以下语法编写自己的初始化函数:

filter = filterInitializationFcn(检测)
该函数的输入是一个检测报告,类似于由<一个href="//www.tatmou.com/es/es/help/fusion/ref/objectdetection.html">objectDetection.该函数的输出必须是一个过滤器对象:<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingkf.html">trackingKF,<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingekf.html">trackingEKF,<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingukf.html">trackingUKF,<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingckf.html">trackingCKF,<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackinggsf.html">trackingGSF,<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingimm.html">trackingIMM,<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingmscekf.html">trackingMSCEKF,或<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingabf.html">trackingABF

作为编写此函数的指导,请使用类型命令来检查内置MATLAB的细节®功能。例如:

类型initcvekf

请注意

trackerJPDA不接受传感器融合和跟踪工具箱中的所有滤波器初始化函数。传感器融合和跟踪工具箱中可用的滤波器初始化函数的完整列表在初始化的部分<一个href="//www.tatmou.com/es/es/help/fusion/estimation-filters.html" class="a">估计过滤器.

数据类型:function_handle|字符

k-best JPDA的k值,指定为正整数。此属性定义了每个聚类的跟踪和检测关联的最大可行联合事件数。将此属性设置为有限值使您能够运行k-best JPDA跟踪器,它会为每个集群生成最多k个事件。

数据类型:|

可行联合事件生成函数,指定为函数句柄或包含可行联合事件生成函数名称的字符向量。生成函数从场景的可接受事件(通常由验证矩阵或似然矩阵给出)生成可行联合事件矩阵。详细信息请参见<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda.jpdaevents.html">jpadEvents

你也可以写自己的生成函数。

  • 如果MaxNumEvents属性设置为,该函数必须有如下语法:

    FJE = myfunction(ValidationMatrix)
    函数的输入和输出必须完全遵循中使用的格式<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda.jpdaevents.html">jpdaEvents

  • 如果MaxNumEvents属性设置为有限值时,函数必须具有以下语法:

    [FJE,FJEProbs] = myfunction(似然矩阵,k)
    函数的输入和输出必须完全遵循中使用的格式<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda.jpdaevents.html">jpdaEvents

作为编写此函数的指导,请使用类型命令来检查的细节jpdaEvents

类型jpdaEvents

例子:@myfunction“myfunction”

数据类型:function_handle|字符

跟踪器可以维护的最大轨道数,指定为正整数。

数据类型:|

可连接到跟踪器的最大传感器数量,指定为正整数。MaxNumSensors必须大于或等于的最大值SensorIndex用于更新追踪器的所有检测中都有。SensorIndex是的属性吗<一个href="//www.tatmou.com/es/es/help/fusion/ref/objectdetection.html">objectDetection对象。的MaxNumSensors属性决定有多少组ObjectAttributes每个轨道都可以有。

数据类型:|

跟踪器可以作为输入的最大检测数,指定为正整数。

数据类型:|

处理无序测量(OOSM),指定为“终止”“忽略”.每次检测都有一个相关的时间戳,td,跟踪器有自己的时间戳,tt,在每次调用中都会更新。跟踪器将测量结果视为OOSM,如果td<tt

当属性指定为时

  • “终止”-跟踪器在遇到任何不符合顺序的测量时停止运行。

  • “忽略”-跟踪器忽略任何无序测量并继续运行。

请注意

跟踪器需要所有输入<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">检测都是一样的SensorIndex有自己的时间以<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda-system-object.html" class="intrnllnk">TimeTolerance财产。当你设置OOSMHandling财产“忽略”,您必须确保在运行跟踪器时,乱序检测的时间戳严格小于前一个时间戳。

可调:是的

轨迹状态参考系的参数,指定为结构或结构数组。追踪者通过它StateParameters属性值。StateParameters属性。您可以使用这些参数来定义报告航迹的参考框架或生成航迹的其他所需属性。

例如,您可以使用以下结构来定义一个矩形参考系,其原点位置为[10 10 0]米,它的起始速度是[2 -2 0]米/秒。

字段名 价值
框架 “矩形”
位置 [10 10 0]
速度 [2 -2 0]

可调:是的

数据类型:结构体

检测分配阈值(或门控阈值),指定为[的正标量或1 × 2向量]C1C2),C1C2.如果指定为标量,则指定的值瓦尔,展开为[瓦尔].

最初,跟踪器对所有轨道和检测之间的归一化距离执行粗略估计。跟踪器只计算粗归一化距离小于的组合的精确归一化距离C2.此外,跟踪器只能在它们之间的精确归一化距离小于时才会将检测分配给跟踪C1.看到距离与跟踪过滤器一起使用的函数(例如<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingckf.html">trackingCKF而且<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackingekf.html">trackingEKF),以解释计算距离的方法。

小贴士:

  • 增加价值C2如果有跟踪和检测组合,应该计算分配,但没有。如果成本计算花费太多时间,则减少此值。

  • 增加价值C1如果有检测,应该分配到轨道,但没有。如果有一些检测被分配到它们不应该被分配到的轨道(太远),则降低该值。

检测概率,指定为范围[0,1]中的标量。在初始化和更新航迹时,此属性用于计算关联的边际后验概率和航迹存在的概率。

例子:0.85

数据类型:|

初始化新轨道的概率阈值,指定为范围[0,1]中的标量。如果将一个探测与任何现有轨迹相关联的概率都小于InitializationThreshold,该检测将用于初始化一个新轨道。这允许检测在轨道的验证门内,但关联概率低于初始化阈值,以产生一个新轨道。

例子:0.1

数据类型:|

确认和删除逻辑类型,指定为:

  • “历史”-轨道确认和删除是基于轨道在最新跟踪器更新中被分配到检测的次数。

  • “集成”-航迹确认和删除基于航迹存在概率,并集成在赋值函数中。选择这个值可以启用联合集成数据关联(JIPDA)跟踪器。

轨迹确认的阈值,指定为标量或1 × 2向量。类设置的跟踪确认和删除逻辑类型取决于阈值TrackLogic属性:

  • “历史”-将确认阈值指定为1乘2向量[N].至少有录音的音轨被确认最后一击N更新。的trackerJPDA方法在音轨的历史逻辑上注册一个命中HitMissThrehold.默认值为3 [2]

  • “集成”—指定确认阈值为标量。当一个航迹存在的概率大于或等于确认阈值时,表示确认航迹。默认值为0.95

数据类型:|

轨道删除的阈值,指定为标量或1 × 2实值向量。类设置的跟踪确认和删除逻辑类型取决于阈值TrackLogic属性:

  • “历史”—指定确认阈值为[PR].如果在P最后一个R跟踪器更新时,已确认的跟踪不会分配给任何可能性大于的检测HitMissThreshold属性,则删除该跟踪。默认值为(5, 5)

  • “集成”—指定删除阈值为标量。当一个轨迹存在的概率低于阈值时,该轨迹将被删除。默认值为0.1

例子:0.2(5、6)

数据类型:|

记录命中或未命中的阈值,指定为范围[0,1]中的标量。如果分配的边际概率之和低于,轨道历史逻辑将记录一个失误,轨道将被滑行HitMissThreshold.否则,轨迹历史逻辑将记录一个命中。

例子:0.3

依赖关系

要启用此参数,请设置TrackLogic财产“历史”

数据类型:|

杂波测量的空间密度,指定为正标量。杂波密度描述了每单位体积的预期假阳性检测数量。它被用作泊松杂波模型的参数。当TrackLogic设置为“集成”ClutterDensity还用于计算初始航迹存在概率。

例子:1 e-5

数据类型:|

新目标的空间密度,指定为正标量。新的目标密度描述了测量空间中每单位体积的新轨道的预期数量。用于计算轨道初始化时的轨道存在概率。

例子:1 e - 3

依赖关系

要启用此参数,请设置TrackLogic财产“集成”

数据类型:|

目标死亡率的时间率,指定为范围[0,1]中的标量。死亡率描述真实目标消失的概率。它与轨道存在概率的传播有关(PTE):

P T E t + δ t 1 D e 一个 t h R 一个 t e δ t P T E t

在哪里δt是从上次更新时间开始的时间间隔吗t

依赖关系

要启用此参数,请设置TrackLogic财产“集成”

数据类型:|

此属性是只读的。

轨道存在的初始概率,指定为范围[0,1]中的标量,并计算为初始存在概率=新目标密度*检测概率/(杂波密度+新目标密度*检测概率)

依赖关系

属性可启用此属性TrackLogic财产“集成”.当TrackLogic属性设置为“历史”,此属性不可用。

数据类型:|

启用成本矩阵,指定为真正的.如果真正的,您可以在调用对象时提供赋值代价矩阵作为输入参数。

数据类型:逻辑

在每次对象更新时启用可检测轨道id的输入,指定为真正的.将此属性设置为真正的如果你想提供一个可检测的轨道id列表。该列表通知跟踪器传感器预计检测到的所有轨道,以及(可选地)检测到每个轨道的概率。

数据类型:逻辑

此属性是只读的。

跟踪器维护的轨道数,作为非负整数返回。

数据类型:|

此属性是只读的。

已确认的轨道数,以非负整数返回。如果IsConfirmed输出轨道结构的场为真正的,航迹已确认。

数据类型:|

同一传感器两次检测之间的绝对时间公差,指定为正标量。理想情况下,trackerJPDA期望来自传感器的检测具有相同的时间戳。但是,如果传感器检测之间的时间戳差异在指定的范围内TimeTolerance,这些检测将用于更新基于这些检测的平均时间的航迹估计。

数据类型:

使用

要处理检测和更新轨道,使用参数调用跟踪器,就好像它是一个函数一样(在这里描述)。

描述

confirmedTracks=跟踪器(<一个href="//www.tatmou.com/es/help/fusion/ref/#mw_81a916cd-b7ae-4e99-8ae2-e81a544adc01" class="intrnllnk">检测,<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_e1317a82-d69c-41a6-a73e-03809968aff8" class="intrnllnk">时间返回在更新时从检测列表更新的已确认音轨列表。已确认的航迹被修正并预测到更新时间,时间

confirmedTracks=跟踪器(<一个href="//www.tatmou.com/es/help/fusion/ref/#mw_81a916cd-b7ae-4e99-8ae2-e81a544adc01" class="intrnllnk">检测,<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_e1317a82-d69c-41a6-a73e-03809968aff8" class="intrnllnk">时间,<一个href="//www.tatmou.com/es/help/fusion/ref/#mw_7842d596-1c50-4759-9d6c-12c919b796d3" class="intrnllnk">costMatrix还指定一个成本矩阵。

要启用此语法,请设置HasCostMatrixInput财产真正的

confirmedTracks=跟踪器(___,<一个href="//www.tatmou.com/es/help/fusion/ref/#mw_4c24db32-8c06-499d-b3c9-a559956a32cb" class="intrnllnk">detectableTrackIDs还指定由所给出的预期可探测轨道的列表detectableTrackIDs.此参数可用于前面的任何输入语法。

要启用此语法,请设置HasDetectableTrackIDsInput财产真正的

[<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_50ddd73c-5a0e-4c3f-aeae-ae169b2a1ae4" class="intrnllnk">confirmedTracks,<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_53235a2d-4540-463a-b589-a5bf13dbc6c7" class="intrnllnk">tentativeTracks,<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_f8d81000-3499-493d-a597-c9f627ee803e" class="intrnllnk">allTracks=跟踪器(___还返回暂定曲目列表和所有曲目列表。您可以使用前面语法中的任何输入参数。

[<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_50ddd73c-5a0e-4c3f-aeae-ae169b2a1ae4" class="intrnllnk">confirmedTracks,<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_53235a2d-4540-463a-b589-a5bf13dbc6c7" class="intrnllnk">tentativeTracks,<一个href="//www.tatmou.com/es/help/fusion/ref/#sysobj_tracker_jpda_sep_mw_f8d81000-3499-493d-a597-c9f627ee803e" class="intrnllnk">allTracks,<一个href="//www.tatmou.com/es/help/fusion/ref/#mw_deb21687-bb96-4709-baa4-1ccd04a297ba" class="intrnllnk">analysisInformation=跟踪器(___还返回可用于跟踪分析的分析信息。您可以使用前面语法中的任何输入参数。

输入参数

全部展开

的单元格数组指定的检测列表<一个href="//www.tatmou.com/es/es/help/fusion/ref/objectdetection.html">objectDetection对象。的时间每个的属性值objectDetection对象必须小于或等于当前更新时间,时间,并且大于用于更新跟踪器的前一个时间值。此外,时间不同之间的差异objectDetection单元格数组中的对象不需要相等。

更新时间,指定为标量。跟踪器更新到此时间的所有轨道。单位是秒。

时间必须大于或等于最大值时间的属性值。<一个href="//www.tatmou.com/es/es/help/fusion/ref/objectdetection.html">objectDetection输入中的对象检测列表。时间必须随着跟踪器的每次更新而增加值。

数据类型:|

成本矩阵,指定为实值——- - - - - -N矩阵,在之前的更新中现有的轨道数量,和N是当前检测的数量。成本矩阵行必须与轨道列表的顺序相同,列必须与检测列表的顺序相同。从第三个输出参数中获得曲目列表的正确顺序,allTracks,当跟踪器更新时。

在跟踪器的第一次更新或跟踪器没有以前的轨道时,指定代价矩阵为空,大小为[0, numDetections].请注意,必须给出成本,以便成本越低表明将检测分配给轨道的可能性越高。为了防止将某些检测分配给某些轨道,可以将适当的成本矩阵项设置为

依赖关系

要启用此参数,请设置HasCostMatrixInput财产真正的

数据类型:|

可检测轨道id,指定为实值-by-1向量或2矩阵。可探测轨道是传感器期望探测到的轨道。矩阵的第一列包含传感器报告的可检测轨道id列表。可选的第二列允许您添加每个轨道的检测概率。

标识符未包含的跟踪detectableTrackIDs被认为是无法检测到的。在这种情况下,音轨删除逻辑不会将该音轨缺乏检测计算为用于删除音轨的漏检。

依赖关系

要启用此输入参数,请设置detectableTrackIDs财产真正的

数据类型:|

输出参数

全部展开

的数组返回<一个href="//www.tatmou.com/es/es/help/fusion/ref/objecttrack.html">objectTrack对象,并在代码生成中作为结构数组返回。在代码生成中,返回结构的字段名与的属性名相同objectTrack

属性中指定的确认阈值,则表示确认ConfirmationThreshold财产。在这种情况下,IsConfirmed结构的对象或字段的属性为真正的

数据类型:结构体|对象

的数组返回的暂定轨道<一个href="//www.tatmou.com/es/es/help/fusion/ref/objecttrack.html">objectTrack对象,并在代码生成中作为结构数组返回。在代码生成中,返回结构的字段名与的属性名相同objectTrack

属性中指定的确认阈值,则该轨道为暂定轨道ConfirmationThreshold财产。在这种情况下,IsConfirmed结构的对象或字段的属性为

数据类型:结构体|对象

的数组返回所有音轨<一个href="//www.tatmou.com/es/es/help/fusion/ref/objecttrack.html">objectTrack对象,并在代码生成中作为结构数组返回。在代码生成中,返回结构的字段名与的属性名相同objectTrack.所有轨道由确认轨道和暂定轨道组成。

数据类型:结构体|对象

用于分析曲目更新的附加信息,作为结构返回。该结构的字段为:

描述
OOSMDetectionIndices

无序测量指标

TrackIDsAtStepBeginning

跟踪步骤开始时的id。

CostMatrix

分配的成本矩阵。

UnassingedTracks

未分配曲目的id。

UnassingedDetections

中未分配检测的指数检测输入。

集群

集群报告的单元格数组。

InitiatedTrackIDs

步骤中初始化的轨道id。

DeletedTrackIDs

步骤中删除的音轨id。

TrackIDsAtStepEnd

跟踪步骤结束时的id。

集群字段可以包含多个集群报告。每个集群报告都是一个结构,包含:

描述
DetectionIndices

聚类检测指标。

TrackIDs

聚集的轨道id。

ValidationMatrix 聚类验证矩阵。看到<一个href="//www.tatmou.com/es/es/help/fusion/ref/trackerjpda.jpdaevents.html">jpadEvents欲知详情。
SensorIndex

聚类检测原始传感器的索引。

时间戳 集群检测的平均时间戳。
MarginalProbabilities 后缘关节关联概率矩阵。

数据类型:结构体

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

predictTracksToTime 预测航迹状态
getTrackFilterProperties 获取航迹过滤器属性
setTrackFilterProperties 设置航迹过滤器属性
initializeTrack 初始化新轨道
deleteTrack 删除现有轨道
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
isLocked 确定系统对象正在使用中
克隆 创建重复的系统对象
重置 重置的内部状态系统对象

例子

全部折叠

构造一个trackerJPDA对象具有默认的等速扩展卡尔曼滤波器和“历史”轨道逻辑。集AssignmentThreshold到100,允许音轨联合关联。

追踪器=追踪器“TrackLogic”“历史”“AssignmentThreshold”, 100,...“ConfirmationThreshold”, [4 5],...“DeletionThreshold”, [10 10]);

指定两个物体的初始位置和速度。

Pos_true = [0 0;40 -40;0 0];V_true = 5*[cosd(-30) cosd(30);Sind (-30);0 0];

创建一个戏剧情节,以可视化的轨道和探测。

tp = theaterPlot(“XLimits”150年[1],“YLimits”, 50 [-50]);trackP = trackPlotter(tp,“DisplayName的”“跟踪”“MarkerFaceColor”‘g’“HistoryDepth”, 0);detectionP = detectionPlotter(tp,“DisplayName的”“检测”“MarkerFaceColor”“r”);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表轨迹、探测。

要获得位置和速度,请创建位置和速度选择器。

positionSelector = [1 0 0 0 0 0 0;0 0 1 0 0 0;0 0 0 0 0 0];% [x, y, 0]velocitySelector = [0 1 0 0 0 0 0;0 0 0 1 0 0;0 0 0 0 0 0];% [vx, vy, 0]

使用检测更新跟踪器,显示关联信息的成本和边际概率,并将检测的轨迹可视化。

Dt = 0.2;时间= 0:dt:30更新对象的真实位置。pos_true = pos_true + V_true*dt;创建两个带有噪声的对象的检测。detection(1) = objectDetection(time,pos_true(:,1)+1*randn(3,1));detection(2) = objectDetection(time,pos_true(:,2)+1*randn(3,1));跟踪器随着时间的推移进行检测。[confirmed, temporarily,alltracks,info] =跟踪器(检测,时间);提取位置,速度和标签信息。[pos,cov] = getTrackPositions(confirmed,positionSelector);vel = gettrackvelocity (confirmed,velocitySelector);meas = cat(2,检测。测量);measCov = cat(3,detection.MeasurementNoise);%如果有任何轨道更新情节。如果编号>0标签= arrayfun(@(x)num2str([x. trackid]),确认,“UniformOutput”、假);trackP.plotTrack (pos、或者、浸、标签);结束measCov detectionP.plotDetection(量);drawnow;每8次显示一次成本和边际分布概率%秒。如果时间>0 && mod(时间,8)== 0在时间t =时num2str(时间)“秒”,]);disp (“分配的成本是:”) disp (info.CostMatrix);disp (['簇数:'num2str(元素个数(info.Clusters))));如果numel(info.Clusters) == 1 disp(“这两条轨迹在同一个集群中。”) disp (“关联的边际概率:”) disp (info.Clusters {1} .MarginalProbabilities)结束disp ('-----------------------------'结束结束
在时间t = 8秒时,
外派费用为:
1.1523 1.2277 0.0053
集群数:2个
-----------------------------
在时间t = 16秒时,
外派费用为:
1.3968 4.5123 2.0747 1.9558
集群数:1
这两条轨道在同一个集群中。
关联的边际概率:
0.8344 0.1656 0.1656 0.8344 0.0000 0.0000
-----------------------------
在时刻t = 24秒时,
外派费用为:
1.2962 1.2664 0.0013
集群数:2个
-----------------------------

图中包含一个轴对象。axis对象包含line、patch、text类型的6个对象。这些对象代表轨迹、探测。

算法

全部展开

参考文献

[1]福特曼,T., Y.巴-沙洛姆,M.谢弗。使用联合概率数据关联的多目标声纳跟踪。IEEE海洋工程杂志。第8卷,第3期,1983,第173-184页。

Musicki, D.和R. Evans。联合综合概率数据协会:JIPDAIEEE航空航天与电子系统汇刊。卷40,第3期,2004年,第1093-1099页。

扩展功能

在R2019a中引入