主体内容

initcvmscekf

恒定速度跟踪MSCEKF初始化

描述性

示例类

mscekfinitcvmscekf检测)初始化a跟踪MSCEKF类(扩展卡尔曼滤波跟踪修改球坐标)基于信息提供对象检测对象详解检测.函数假设目标范围3e4单位和区间差差为1e10单元2.

上头跟踪MSCEKF对象可用跟踪器跟踪目标,从单个观察者点测角

示例类

mscekfinitcvmscekf检测,范围估计)允许指定区域信息到滤波器上头范围估计变量二分向量,第一个元素指向目标范围,第二个元素指向标准偏差范围

实例

全部崩溃

创建单角检测

检测=对象检测0,[30;20]'MeasurementParameters',.struct(sruct)Frame语言,球形,哈斯兰false))

使用initcvmscekf创建跟踪MSCEKF过滤器初始化使用单角检测

过滤器= initcvmscekf
filter =    trackingMSCEKF with properties:                            State: [6x1 double]                 StateCovariance: [6x6 double]               StateTransitionFcn: @constvelmsc      StateTransitionJacobianFcn: @constvelmscjac                    ProcessNoise: [3x3 double]         HasAdditiveProcessNoise: 0                   ObserverInput: [3x1 double]                   MeasurementFcn: @cvmeasmsc          MeasurementJacobianFcn: @cvmeasmscjac          HasMeasurementWrapping: 1                MeasurementNoise: [2x2 double]     HasAdditiveMeasurementNoise: 1

创建测量参数供后续旋转

masParam传感器ToPlatFrame语言,球形,哈斯兰虚构.方向化rotmat(四舍五入[030]rotved)框架)
masParam传感器ToPlat构造字段 :框架 : 球形HasRange:0方向 : [3x3双
masParamPlatSscripeFrame语言,矩形,哈斯兰虚构.方向化rotmat(对接([3000] ),rotved)框架)
asParamPlat-Scrie构造字段 :框架 : 矩形HasRange:0方向 : [3x3双
measParam = [measParamSensorToPlat;measParamPlatToScenario]!检测=对象检测0,[30;20]'MeasurementParameters'masParam);

初始化过滤器

过滤器= initcvmscekf

检查过滤器测量和检测相同

cvmeasmsc(filter.State,measParam)
ss=2xl3020

假设目标以恒定速度移动 观察者以恒定加速移动定义目标初始状态使用恒定速度模型

tgtstate=[2000;3;500;5;0;0];

定义观察者初始状态使用恒定加速模型

观察国=[0;2;0;490;10;0.2;0;0;0

创建跟踪器GNN对象使用initcvmscekf带点前差和差差差相容性信息

范围=1000范围StdDev=1e3范围估计=[范围StdDev]跟踪器=跟踪器GNN'FilterInitializationFcn',@(det)initcvmscekf(det,rangeEstimate));

使用测量模型模拟合成数据获取阿兹el市信息使用smeas语言函数.

合成Params = structFrame语言,球形,哈斯兰虚构.'OriginPosition',observerState(1:3:end))!mas =cvmeas

创建单角对象检测模拟合成检测

检测=对象检测'MeasurementParameters',.struct(sruct)Frame语言,球形,哈斯兰false)'MeasurementNoise'0.033*Eye(2)

创建轨迹绘图器和平台绘图器可视化假想

tp=戏剧PlotXimits.......Yimits大赛,[0 1000])!目标Plotter=平台PlotterDisplayName,目标,'MarkerFaceColor',k)!观察者Plotter=平台PlotterDisplayName,旁观者,'MarkerFaceColor','r')!trkPlotter = trackPlotterDisplayName,轨迹,'MarkerFaceColor',g,历史剖面5万元tgttrajPlotter=轨迹定位器DisplayName,目标轨迹,色调,k)!obstrajPlotter=轨迹绘图器DisplayName,观察轨迹,色调,'r');

图中包含轴对象轴对象xlabel Xm,ylabelYm包含6类型线对象数行显示值仅使用标记

运行跟踪器

时间=0DT=0.1tgtposes =opsoses=[时段时间 < 50[conttracts,tenttracs,alltracs]=跟踪器(检测时间);Fori = 1:Numel(全跟踪器)setTrackFilterProperties旁观者输入,observerState(3:3:end));结束更新合成检测观察国=constacctgtstate=custvelsyntheticParams.OriginPosition = observerState(1:3:end)!detection.Measurement = cvmeas(tgtState,syntheticParams)!时间+dT检测时间=时间百分比更新图tgposes = [tgposes;tgtstatekobsPoses = [obsPoses;observerState(1:3:end)'];ktargetPlotter.plotPlatform(tgtState(1:2:end)')!observerPlotter.plotPlatform(observerState(1:3:end)')!tgtTrajPlotter.plotTrajectory({tgtPoses})!obsTrajPlotter.plotTrajectory({obsPoses});%绘制首轨,因为没有假报警器,这应该是百分数目标从MSC轨迹状态获取位置state=cvmeassc矩形+观察国trkPlotter.plotTrack(cartState');结束

图中包含轴对象轴对象xlabel Xm,ylabelYm包含6类型线对象数行显示值仅使用标记

输入参数

全部崩溃

检测报告,指向对象检测对象.

示例:检测=对象检测0,[1;4.5;3],'计量噪声',[1.000!02.000O1.5]

区域信息二分向量表示第一分量表示目标范围,第二分量表示范围标准偏差

数据类型单片|双倍

输出参数

全部崩溃

恒定速度跟踪卡尔曼扩展过滤器跟踪MSCEKF对象.

算法

  • 函数配置滤波过程噪声假设单元目标加速标准偏差

  • 函数配置康斯坦斯框架状态共变法,使用笛卡尔框架共变法线性变换法

  • 可使用此函数FilterInitializationFcn属性跟踪器TOMHT跟踪器GNN系统对象

  • 函数初始化观察输入排成一行跟踪MSCEKF类零观察者加速所有方向您必须使用setTrackFilterProperties函数跟踪器更新观察输入.

扩展能力

C/C++代码生成
C++代码生成

版本历史

R2018b介绍