创建和管理多个对象的轨迹
自动驾驶工具箱
这个多目标跟踪块初始化、确认、预测、纠正和删除移动对象的轨迹。输入到多目标跟踪器的是由驱动雷达数据发生器和视觉检测发电机块。多目标跟踪器接受来自多个传感器的检测,并使用全局最近邻(GNN)准则将其分配到跟踪对象。每个检测被分配到一个单独的轨道。如果检测不能被分配到任何轨道,多目标跟踪器创建一个新的轨道。
一条新的赛道在一个小时内开始试探性的状态。如果将足够多的检测分配给暂定轨迹,其状态将更改为确认.当轨迹被确定时,多目标跟踪器认为该轨迹代表一个物理对象。如果在指定数量的更新中未将检测添加到轨道中,则轨道将被删除。
多目标跟踪器还利用卡尔曼滤波估计每个航迹的状态向量和状态向量协方差矩阵。这些状态向量用于预测轨道在每一帧中的位置,并确定分配给每个轨道的每个检测的可能性。
探测
-检测列表检测列表,指定为包含MATLAB结构的Simulink总线。看金宝app见将信号线组合成虚拟总线(金宝appSimulink).该结构有以下形式:
领域 | 描述 | 类型 |
---|---|---|
NumDetections |
数量的检测 | 整数 |
IsValidTime |
在块调用间隔之间请求更新时为False | 布尔 |
探测 |
目标检测 | 对象检测结构阵列。第一个NumDetections 这些探测都是实际的探测。 |
目标检测结构的定义见探测的输出端口说明驱动雷达数据发生器和视觉检测发电机块。
笔记
对象检测结构包含时间
字段。每个对象检测的时间标记必须小于或等于当前调用块的时间。时间标记也必须大于上次调用块时指定的更新时间。
预测的时间
-跟踪更新时间轨迹更新时间,指定为实标量。多对象跟踪器将所有轨迹更新到此时间。更新时间必须始终随块的每次调用而增加。单位为秒。
笔记
对象检测结构包含时间
字段。每个对象检测的时间标记必须小于或等于当前调用块的时间。time标记也必须大于上次调用块时的更新时间。
要启用此端口,请设置预测时间源来输入端口
.
成本矩阵
——成本矩阵成本矩阵,指定为实值NT——- - - - - -ND矩阵,NT是现有轨道和轨道的数量ND是当前检测的次数。
代价矩阵的行对应于现有轨道。列对应于检测。的轨道列表中显示的轨道被排序所有轨道块的前一次调用的输出端口。
在多对象跟踪器的第一次更新中,或者如果该轨迹没有以前的轨迹,请将成本矩阵的大小指定为[0,ND].必须计算代价,以便较低的代价表明多目标跟踪器将检测分配给轨迹的可能性较高。为了防止某些检测被分配到某些轨道,使用正
.
要启用该端口,请选择启用成本矩阵输入.
可检测追踪id
-可检测航迹ID可检测的轨迹ID,指定为实值M1的向量或M2矩阵。可探测的轨迹是传感器希望探测到的轨迹。矩阵的第一列包含传感器报告为可检测的轨道id列表。可选的第二列包含轨道的检测概率。
其标识符未包含在中的磁道可检测追踪id被认为是无法觉察的。轨迹删除逻辑并不将缺少检测计算为用于轨迹删除目的的“遗漏检测”。
如果该端口未启用,跟踪器将假定在每次调用块时都能检测到所有跟踪。
要启用此端口,请在端口设置选项卡,选择启用可检测的轨道id输入.
状态参数
-轨道状态参数轨迹状态参数,指定为Simulink总线包含MATLAB结构。金宝app该结构有以下形式:
领域 | 描述 |
---|---|
NumParameters |
非默认状态参数的数量,指定为非负整数 |
参数 |
状态参数结构数组 |
块使用参数
场地StateParameters
生成轨迹的字段。您可以使用这些参数定义报告轨迹的参考帧或生成轨迹的其他所需属性。
例如,您可以使用以下结构来定义原点位置为的矩形参考系[10 10 0]
米,原点速度是(2 2 0)
相对于场景帧的每秒米数。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
[10 10 0] |
速度 |
(2 2 0) |
要启用此端口,请在跟踪器配置选项卡上,选择随时间更新轨道状态参数参数。
确认跟踪
——确认跟踪确认轨道,返回为包含MATLAB结构的Simulink总线。金宝app看到创建非虚拟总线(金宝appSimulink).
此表显示了结构字段。
领域 | 描述 |
---|---|
NumTracks |
轨道数 |
跟踪 |
所设置的长度的轨道结构阵列最大航迹数参数。只有第一个NumTracks 这些都是真实的轨迹。 |
此表显示了每个轨迹结构的字段。
领域 | 定义 |
---|---|
曲目识别 |
用于区分多个轨道的唯一轨道标识符。 |
布兰奇德 |
用于区分多个轨道分支的唯一轨道分支标识符。 |
源索引 |
用于在多跟踪器环境中区分跟踪源的唯一源索引。 |
UpdateTime |
轨道更新的时间。单位是秒。 |
年龄 |
轨道被更新的次数。 |
状态 |
更新时状态向量的值。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
表示对象分类的整数值。的值0 表示未知的分类。非零分类仅适用于已确认的轨道。 |
TrackLogic |
确认和删除逻辑类型。此值始终为“历史” 对于雷达传感器,指示基于历史的逻辑。 |
TrackLogicState |
轨道逻辑类型的当前状态,返回为1-by-K逻辑阵列。K是记录的最新轨道逻辑状态的个数。数组中, |
证实 |
确认状态。这个字段是真正的 如果轨迹被确认为真实目标。 |
IsCoasted |
滑行状态。这个领域是真正的 如果在没有新检测的情况下更新轨迹。 |
自我报告 |
指示跟踪器是否报告该轨迹。该领域用于轨道融合环境。它被返回为 |
ObjectAttributes |
关于轨道的附加信息。 |
有关这些字段的详细信息,请参阅objectTrack
.
如果:
至少M检测分配到轨道在第一次N跟踪初始化后更新。指定值的步骤M和N,使用M和N用于N取M确认参数。
启动轨道的探测有ObjectClassID
大于零。
试探性轨道
-试探性轨道暂定轨迹,作为包含MATLAB结构的Simulink总线返回。请金宝app参阅创建非虚拟总线(金宝appSimulink).一条跑道在确定之前是试探性的。
此表显示了结构字段。
领域 | 描述 |
---|---|
NumTracks |
轨道数 |
跟踪 |
所设置的长度的轨道结构阵列最大航迹数参数。只有第一个NumTracks 这些都是真实的轨迹。 |
此表显示了每个轨迹结构的字段。
领域 | 定义 |
---|---|
曲目识别 |
用于区分多个轨道的唯一轨道标识符。 |
布兰奇德 |
用于区分多个轨道分支的唯一轨道分支标识符。 |
源索引 |
用于在多跟踪器环境中区分跟踪源的唯一源索引。 |
UpdateTime |
轨道更新的时间。单位是秒。 |
年龄 |
轨道被更新的次数。 |
状态 |
更新时状态向量的值。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
表示对象分类的整数值。的值0 表示未知的分类。非零分类仅适用于已确认的轨道。 |
TrackLogic |
确认和删除逻辑类型。此值始终为“历史” 对于雷达传感器,指示基于历史的逻辑。 |
TrackLogicState |
轨道逻辑类型的当前状态,返回为1-by-K逻辑阵列。K是记录的最新轨道逻辑状态的个数。数组中, |
证实 |
确认状态。这个字段是真正的 如果轨迹被确认为真实目标。 |
IsCoasted |
滑行状态。这个领域是真正的 如果在没有新检测的情况下更新轨迹。 |
自我报告 |
指示跟踪器是否报告该轨迹。该领域用于轨道融合环境。它被返回为 |
ObjectAttributes |
关于轨道的附加信息。 |
有关这些字段的详细信息,请参阅objectTrack
.
要启用该端口,请选择启用试运行轨道输出.
所有轨道
——所有的跟踪确定和试探性轨道的组合列表,返回为包含MATLAB结构的Simulink总线。金宝app看到创建非虚拟总线(金宝appSimulink).
此表显示了结构字段。
领域 | 描述 |
---|---|
NumTracks |
轨道数 |
跟踪 |
所设置的长度的轨道结构阵列最大航迹数参数。只有第一个NumTracks 这些都是真实的轨迹。 |
此表显示了每个轨迹结构的字段。
领域 | 定义 |
---|---|
曲目识别 |
用于区分多个轨道的唯一轨道标识符。 |
布兰奇德 |
用于区分多个轨道分支的唯一轨道分支标识符。 |
源索引 |
用于在多跟踪器环境中区分跟踪源的唯一源索引。 |
UpdateTime |
轨道更新的时间。单位是秒。 |
年龄 |
轨道被更新的次数。 |
状态 |
更新时状态向量的值。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
表示对象分类的整数值。的值0 表示未知的分类。非零分类仅适用于已确认的轨道。 |
TrackLogic |
确认和删除逻辑类型。此值始终为“历史” 对于雷达传感器,指示基于历史的逻辑。 |
TrackLogicState |
轨道逻辑类型的当前状态,返回为1-by-K逻辑阵列。K是记录的最新轨道逻辑状态的个数。数组中, |
证实 |
确认状态。这个字段是真正的 如果轨迹被确认为真实目标。 |
IsCoasted |
滑行状态。这个领域是真正的 如果在没有新检测的情况下更新轨迹。 |
自我报告 |
指示跟踪器是否报告该轨迹。该领域用于轨道融合环境。它被返回为 |
ObjectAttributes |
关于轨道的附加信息。 |
有关这些字段的详细信息,请参阅objectTrack
.
要启用该端口,请选择启用所有轨道输出.
跟踪器标识符
-唯一跟踪器标识符0
(默认值)|非负整数唯一的跟踪器标识符,指定为非负整数。该参数用作源索引
,并在多跟踪系统中区分来自不同跟踪器的跟踪。必须将此属性指定为正整数,才能将轨道输出用作轨道fuser的输入。
例子:1.
过滤器初始化函数名
-卡尔曼滤波初始化功能initcvkf
(默认)|函数名卡尔曼滤波初始化函数,指定为函数名。工具箱提供了几个初始化函数。有关初始化函数的示例,请参见initcvekf
.
为跟踪分配检测的阈值
—检测分配阈值30
(默认)|正实标量检测分配阈值,指定为正实标量。要将一个检测分配给一个轨道,检测到轨道的归一化距离必须小于分配阈值。如果一些检测仍然未分配到您希望分配到的跟踪,则增加阈值。如果一些检测被分配到不正确的轨道,降低阈值。
M和N用于N取M确认
—确认轨道创建参数[2,3]
(默认)|正整数的两个元素向量轨道创建的确认参数,指定为正整数的二元向量,(M, N)
.一个轨道被确认时,至少M
检测分配到轨道在第一次N
跟踪初始化后的更新。M
必须小于或等于N
.
设置时N
,考虑你希望跟踪器在确认轨迹之前更新的次数。例如,如果跟踪器每0.05秒更新一次,而您允许0.5秒做出确认决定,则设置N
= 10.
设置时M
,考虑了传感器检测目标的概率。检测的概率取决于遮挡或杂波等因素。你可以减少M
当轨迹无法确认或增加时M
当给跟踪分配了太多的错误检测时。
例子:[3,5]
P和R用于P-out-of-R删除
-轨迹删除阈值[5 5]
(默认)|实值1 × 2正整数向量历史逻辑的轨迹删除阈值,指定为正整数的实值1乘2向量[P R]
. 如果确认的轨迹未分配给任何检测P
过去几次R
跟踪器更新,然后删除跟踪。
最大航迹数
—最大轨道数200
(默认)|正整数块可以处理的最大轨道数,指定为正整数。
最大传感器数
—最大传感器个数块可以处理的最大传感器数,指定为正整数。此值应大于或等于最大值传感器指数
的值。探测输入端口。
按顺序测量数据处理
-无序测量处理终止
(默认)|疏于照顾
无序测量处理,指定为终止
或疏于照顾
.每个检测都有一个相关的时间戳,TD,并且跟踪器块有自己的时间戳,TT,在每次调用中更新。跟踪器块将测量视为OOSM,如果TD<TT.
当参数指定为:
终止
—当遇到任何顺序错误的测量时,块停止运行。
忽视
-该块忽略任何无序测量,并继续运行。
跟踪状态参数
-轨道状态参考帧的参数将轨道状态参考帧的参数指定为结构或结构数组。块将此参数的值传递给StateParameters
生成轨迹的字段。您可以使用这些参数定义报告轨迹的参考帧或生成轨迹的其他所需属性。
例如,您可以使用以下结构来定义原点位置为的矩形参考系[10 10 0]
米,原点速度是(2 2 0)
相对于场景帧的每秒米数。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
[10 10 0] |
速度 |
(2 2 0) |
属性可以更新轨道状态参数状态参数通过选择随时间更新轨道状态参数参数。
数据类型:结构
随时间更新轨道状态参数
-随时间更新轨迹状态参数从
(默认)|在
选择此参数可通过启用轨道状态参数的输入端口状态参数输入端口。
预测时间源
-预测时间的来源输入端口
(默认)|汽车
预测时间来源,指定为输入端口
或汽车
.选择输入端口
方法输入更新时间预测的时间输入端口。否则,由Simulink管理的仿真时钟决定更新时间。金宝app
例子:汽车
启用成本矩阵输入
-启用成本矩阵的输入端口从
(默认)|在
选择此复选框以启用成本矩阵的输入成本矩阵输入端口。
启用可检测的轨道id输入
-启用可检测的轨迹ID输入从
(默认)|在
选中此复选框以启用可检测追踪id输入端口。
输出总线名称的源
-输出总线名称的源汽车
(默认)|财产
输出总线名称的源,指定为汽车
或财产
.
如果您选择汽车
时,块自动创建一个总线名称。
如果您选择财产
,使用指定输出总线名称参数。
指定输出总线名称
-输出总线名称要启用该参数,请设置输出总线名称的源参数财产
.
启用试运行轨道输出
-为临时磁道启用输出端口从
(默认)|在
选择此复选框可通过使用试探性轨道输出端口。
启用所有轨道输出
—开启所有轨道的输出端口从
(默认)|在
选中此复选框可通过使用启用所有轨迹的输出所有轨道输出端口。
模拟使用
-要运行的模拟类型解释执行
(默认)|代码生成
解释执行
-使用MATLAB解释器模拟模型。这个选项缩短了启动时间。在解释执行
模式下,可以调试块的源代码。
代码生成
-使用生成的C/ c++代码模拟模型。当你第一次运行一个模拟时,Simulink会为代码块生成C/ c++代码。金宝app只要模型不改变,C代码就会在后续模拟中重用。这个选项需要额外的启动时间。
当块中指定的过滤器初始化函数返回trackingEKF
或trackingUKF
(传感器融合与跟踪工具箱)对象时,块支持静态内存分配代码生成。金宝app
在代码生成中,如果在双
精度,那么NumTracks
轨迹输出的字段作为双
变量。如果检测输入为单
精度,那么NumTracks
轨迹输出的字段作为uint32
变量。
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。