主要内容

initcvkf

根据检测报告创建等速线性卡尔曼滤波器

描述

例子

过滤器= initcvkf (检测创建和初始化一个恒定速度的线性卡尔曼过滤器从包含的信息检测报告。有关线性卡尔曼滤波器的更多信息,请参见trackingKF

函数初始化一个恒定速度状态,其约定与constvelcvmeas, (xvxyvyzvz].

例子

全部折叠

从初始检测报告中创建并初始化一个二维线性卡尔曼滤波器对象。

根据物体位置的初始二维测量(10,20)创建检测报告。

检测= objectDetection(0(10、20)“MeasurementNoise”, 0.2;0.2 - 2),...“SensorIndex”,1,“ObjectClassID”,1,“ObjectAttributes”,{“黄色的车”, 5});

从检测报告中创建新的轨道。

过滤器= initcvkf(检测)
filter = trackingKF with properties: State: [4x1 double] StateCovariance: [4x4 double] MotionModel: '2D Constant Velocity' ControlModel: [] ProcessNoise: [4x4 double] MeasurementModel: [2x4 double] MeasurementNoise: [2x2 double] MaxNumOOSMSteps: 0 EnableSmoothing: 0

显示状态。

过滤器。状态
ans =4×110 0 20 0

显示状态转移模型。

过滤器。状态TransitionModel
ans =4×41 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1)

从初始检测报告中创建并初始化一个三维线性卡尔曼滤波对象。

根据物体位置的初始三维测量(10,20,−5)创建检测报告。

检测= objectDetection(0(10、20;5)“MeasurementNoise”眼睛(3),...“SensorIndex”, 1“ObjectClassID”,1,“ObjectAttributes”,{“绿色汽车”, 5});

从检测报告中创建新的筛选器并显示其属性。

过滤器= initcvkf(检测)
filter = trackingKF with properties: State: [6x1 double] StateCovariance: [6x6 double] MotionModel: '3D Constant Velocity' ControlModel: [] ProcessNoise: [6x6 double] MeasurementModel: [3x6 double] MeasurementNoise: [3x3 double] MaxNumOOSMSteps: 0 EnableSmoothing: 0

显示状态。

过滤器。状态
ans =6×110 0 20 0 -5 0

显示状态转移模型。

过滤器。状态TransitionModel
ans =6×61 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1

输入参数

全部折叠

检测报告,指定为objectDetection对象。

例子:检测= objectDetection(0,[1;4.5;3],'MeasurementNoise', [1.0 0 0;2.0 0 0;0 0 1.5])

输出参数

全部折叠

线性卡尔曼滤波器,返回为trackingKF对象。

算法

  • 该函数计算过程噪声矩阵,假设时间步长为1秒,加速度标准差为1m /s2

  • 你可以使用这个函数作为FilterInitializationFcn财产的multiObjectTracker对象。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。

介绍了R2017a