trackerPHD代码生成的问题,并使用Matlab trackingSensorConfiguration编码器

11视图(30天)
你好,
我试图为以下功能codegenTracker生成c++。经过仔细研究的扩展功能部分trackerPHD文档和大量的实验,我能够成功地生成代码。
然而,我发现,我必须设置传感器的数量,这是 n 在下面的代码expectily (3, mycase),所以它不给我的错误:“ 循环展开失败是因为迭代次数是未知的 在“检查运行时问题”。从应用程序的角度来看,我更喜欢 n 在配置文件中指定,这样我可以负载n tempConfig 结构在下面的代码,而不是将其设置为expectily数量。例如,如果我想改变 ClutterDensity trackingSensorConfiguration财产,我可以改变它在我的配置文件,而不需要改变它在我的matlab代码并重新生成整个代码。
同样,对于trackerPHD,我必须指定expectily属性。如果我试图设置一个属性trackerPHD,说, 出生率 通过配置文件,我得到了以下错误: 未能计算定值nontunable产权“出生率”。在代码生成,nontunable属性只能指定常量值 ”。
我如何修改我的代码,这样我不需要指定的所有参数expectily和它仍然支持代码生成?万博1manbetx提前谢谢。我附上我的代码的代码生成,基于matlab项目“异步Angle-only跟踪与GM-PHD追踪”。
函数跟踪= codegenTracker(检测、配置、时间)% # codegen
跟踪= repmat (DummyTracks (), 0, 1);
coder.varsize (“跟踪”[正无穷,1],[1,0]);
持续的追踪者;
如果isempty(跟踪)
%从配置文件中读取参数,tempConfig是一个结构体
%包含这些参数。
tempConfig = config.readSensorConfig ();
n %喜欢负载从一个配置文件,而不是将其设置为一个数字
% expectily
%
n = 3;
sensorConfigs =细胞(n, 1);
i = 1: n
sensorConfigs{我1}= trackingSensorConfiguration (“SensorIndex”、单(我),
“IsValidTime”,真的,
“SensorLimits”tempConfig.SensorLimits,
“SensorResolution”tempConfig.SensorReso万博 尤文图斯lutions,
“SensorTransformFcn”,“cvmeas”,
“SensorTransformParameters”、DummyMps ()
“ClutterDensity”tempConfig.ClutterDensity,
“MinDetectionProbability”tempConfig.MinDetectionProbability,
“FilterInitializationFcn”,“initcvAngleOnlyGMPHD”,
“MaxNumDetsPerObject”uint32 (1)
“MaxNumDetections”uint32 (100));
结束
追踪= trackerPHD (SensorConfigurations = sensorConfigs,
出生率= 0.1,
死亡率= 1 e-6,
AssignmentThreshold = 25,
ExtractionThreshold = 0.85,
ConfirmationThreshold = 0.95,
DeletionThreshold = 1 e - 3,
MergingThreshold = 25,
LabelingThresholds = 0.8 (1.1 - 1),
HasSensorConfigurationsInput = true,
MaxNumSensors = 20,
MaxNumTracks = uint32 (1000),
MaxNumComponents = uint32 (5000));
结束
如果tracker.isLocked () | | ~ isempty(检测)
跟踪=追踪(检测、配置、双(时间);
结束
结束
循环展开失败是因为数量的迭代是未知的。

答案(1)

Prashant Arora
Prashant Arora 2023年5月19日20:58
嗨Lechi,
跟踪器将这些属性定义为“nontunable”,这意味着你不能改变他们在C / c++代码生成。您将需要重新生成代码与新设置的值。
可能有一些属性,使“可调”。例如,出生率、死亡率等,但他们不像R2023b。然而,一些属性控制大小,数据类型和数据类型的内存分配C / c++。例如,它将很难支持“MaxNumTracks”、“MaxNumSensor万博1manbetxs”等可调特性。我将创建一个增强请求支持代码生成后改变其中的一些属性。万博1manbetx
关于SensorConfigurations:
传感器的数量和属性配置可以动态调整的方式。你可以预定义Nmax最大传感器。你可以用Nmax构造跟踪配置。然而,只有n的nMax传感器可以活跃在跑步。要做到这一点,您可以使用配置跟踪器的输入。通过设置IsValidTime传感器的“活动”在这个运行是错误的,你只能表明这些追踪器n传感器运行期间使用。
希望这个有帮助。
谢谢,
Prashant

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!