trackingKF

线性卡尔曼滤波器用于跟踪对象

描述

一个trackingKF对象是一个离散时间线性卡尔曼滤波器用于跟踪位置和速度自动驾驶场景中可能遇到的对象。这些物体包括汽车、行人、自行车和固定的结构物或障碍物。

卡尔曼滤波是一种递归算法,用于在对过程进行测量时估计过程的演化状态。当状态的演化遵循线性运动模型且测量值是状态的线性函数时,滤波器是线性的。过滤器假设过程和测量都有附加噪声。当过程噪声和测量噪声均为高斯分布时,卡尔曼滤波器是线性过程的最优最小均方误差状态估计器。

您可以使用在这些方面,这对象:

  • 明确设置运动模式。将运动模型属性,MotionModel, 至习惯,然后用StateTransitionModel属性来设置状态转移矩阵。

  • 设置MotionModel属性设置为预定义的状态转换模型:

    运动模型
    “1D等速”
    “1D恒定加速度”
    “2D等速”
    “二维恒定加速度”
    “3D等速”
    三维加速度恒定的

创建

描述

过滤器= trackingKF创建一个线性卡尔曼滤波对象离散时间,二维,匀速运动的对象。的默认值StateTransitionModelMeasurementModel,ControlModel属性。该函数还设置了MotionModel属性“2D等速”

过滤= trackingKF(FH指定的状态转移模型,F和测量模型,H。有了这个语法,功能也设置MotionModel属性“自定义”

过滤= trackingKF(FHG还指定控制模型,G。有了这个语法,功能也设置MotionModel属性“自定义”

过滤= trackingKF('MotionModel'模型设定运动模型属性,MotionModel, 至模型

过滤= trackingKF(___的名字价值通过使用一个或多个配置卡尔曼滤波器的特性的名字价值自变量对任何以前的语法。任何未指定的属性取默认值。

属性

展开全部

卡尔曼滤波状态,指定为实值中号元向量。中号是状态矢量的大小。典型状态向量的大小的描述MotionModel财产。当初始状态被确定为一个标量,状态被扩展成一个中号元向量。

在这些情况下,你可以设置一个标量的状态:

  • 当。。。的时候MotionModel属性设置为“自定义”中号是由状态转移模型的大小决定的。

  • 当。。。的时候MotionModel属性设置为“2D等速”“3D等速”“二维恒定加速度”,或三维加速度恒定的,则必须首先将状态指定为中号元向量。您可以对状态向量的所有后续规范使用标量。

例:[200; 0.2; -40; -0.01]

数据类型:

状态误差协方差,指定为正标量或正定实值中号-通过-中号矩阵,其中中号是状态的大小。指定的值作为标量产生的多中号-通过-中号单位矩阵。这个矩阵代表了状态的不确定性。

例:[20 0.1;0.1 1]

数据类型:

卡尔曼滤波运动模型,指定为“自定义”或者这些预定义的模型之一。在这种情况下,状态向量和状态转换矩阵采用表中指定的形式。

运动模型 状态向量的形式 形成状态转移模型
“1D等速”

[x, vx)

[1 dt;0 1]

“2D等速”

[X; VX; Y; ​​VY]

块对角矩阵[1 dt;0 1]Xÿ空间尺寸

“3D等速”

[X; VX; Y; ​​VY; Z; VZ]

块对角矩阵[1 dt;0 1]Xÿ,ž空间尺寸。

“1D恒定加速度”

[X; VX;斧]

[1 dt的0.5 * dt的^ 2;0 1 DT;0 0 1]

“二维恒定加速度”

[x, vx;斧子;y v,唉)

块对角矩阵[1 dt的0.5 * dt的^ 2;0 1 DT;0 0 1]块重复Xÿ空间尺寸

三维加速度恒定的

[X; VX,斧; Y; ​​VY; AY; Z; VZ; AZ]

块对角矩阵[1 dt的0.5 * dt的^ 2;0 1 DT;0 0 1]Xÿ,ž空间尺寸

当。。。的时候ControlModel属性定义后,状态转换模型的每个非零元素将被替换为DT

什么时候MotionModel“自定义”时,必须指定一个状态转变模型矩阵,测量模型矩阵,以及任选地,一个控制模型矩阵作为输入参数传递给卡尔曼滤波器。

数据类型:烧焦

时间步长之间的状态转换模型,指定为实值中号-通过-中号矩阵。中号是状态矢量的大小。在不存在的控制和噪声,状态转移模型在在前面的步骤的任何时间步的状态涉及的状态。状态转移模型是滤波器的时间步长的函数。

例:[1 0;1 2]

依赖关系

要启用这个特性,集MotionModel“自定义”

数据类型:

控件模型,指定为中号-通过-大号矩阵。中号是状态矢量的维数和大号是控制或力的数量。控制模型增加了控制对状态演化的影响。

例:(。010.2]

数据类型:

过程噪声的协方差,指定为正标量或中号-通过-中号矩阵中号是状态的尺寸。如果将此属性指定为标量,则筛选器将该值用作中号-通过-中号单位矩阵。过程噪音表现在动态模型的不确定性和假设是零均值高斯白噪声。

例:[1.0 - 0.05;0.05 - 2]

数据类型:

测量模型由状态向量,指定为实值ñ-通过-中号矩阵,其中ñ是测量矢量的大小和中号是状态矢量的大小。该测量模型是确定从所预测的状态的预测测量值的线性矩阵。

例:[1 0.5 0.01;1.0 1 0]

数据类型:

测量噪声,指定为正标量或正定协方差,实值ñ-通过-ñ矩阵,其中ñ为测量向量的大小。如果将此属性指定为标量,则筛选器将该值用作ñ-通过-ñ单位矩阵。测量噪声表示测量的不确定度,假设为零均值高斯白噪声。

例:0.2

数据类型:

对象函数

预测 预测的线性卡尔曼滤波器状态和状态估计误差协方差
正确 正确的状态和状态估计误差协方差使用跟踪滤波器
correctjpda 正确的状态和状态估计误差协方差使用跟踪滤波器和JPDA
距离 跟踪滤波器的电流和预测测量值之间的距离
可能性 从跟踪滤波器测量的可能性
克隆 创建重复跟踪滤波器
剩余的 测量跟踪滤波器的残差和残差噪声
初始化 初始化跟踪滤波器的状态和协方差

例子

全部收缩

创建一个使用线性卡尔曼滤波器2D等速运动模型。假设测量由对象的X-Y位置。

指定初始状态估计为具有零速度。

X = 5.3;Y = 3.6;初始化状态= [X 0; Y; ​​0];KF = trackingKF('MotionModel'“2D等速”'州',initialState);

创建从等速轨迹的测量位置。

vx = 0.2;v = 0.1;T = 0.5;pos = [0: vx * T: 2; 5: v * T: 6] ';

预测和纠正对象的状态。

对于k = 1:size(pos,1) pstates(k,:) = predict(KF,T);cstates (k) =正确(KF, pos (k,:));结束

画出轨道。

情节(pos (: 1), pos (:, 2),“k”。,pstates(:,1),pstates(:,3),'+'cstates (: 1), cstates (:, 3),'O')包含(“x [m]”)ylabel ('Y [M]') grid xt = [x-2 pos(1,1)+0.1 pos(end,1)+0.1];yt = [y pos(1,2) pos(end,2)];文本(xt,欧美,{“第一测量”“第一位置”的最后一个位置})(传说“目标位置”“预测位置”“修正后的位置”

更多关于

展开全部

算法

卡尔曼滤波器通过估计其状态描述一个对象的运动。的状态通常由对象的位置和速度以及可能的其加速度的。的状态可以跨越一个,两个或三个空间维度。最常见的,可以使用卡尔曼滤波器模型恒速或恒加速运动。线性卡尔曼滤波器假定过程服从下面的线性随机差分方程:

X ķ + 1 = F ķ X ķ + G ķ ü ķ + v ķ

Xķ在步骤的状态ķFķ是状态转换模型矩阵。Gķ是控制模型矩阵。üķ表示作用在物体上已知的广义的控制。除了运动的指定的方程,所述运动可以通过随机噪声扰动的影响,vķ。的状态下,状态转移矩阵,和对照一起提供足够的信息,以确定所述物体的在不存在噪声的未来运动。

在卡尔曼滤波中,测量值也是状态的线性函数,

ž ķ = H ķ X ķ + w ^ ķ

在哪里Hķ是测量模型矩阵。这种模式表达了测量作为国家的职能。的测量可以由一个对象的位置,位置和速度,或它的位置,速度,和加速度,或这些量的一些功能。测量结果还可以包括噪声扰动w ^ķ

这些等式中,在不存在噪声的,建模对象的实际运动与实际的测量。在每一步的噪声贡献是未知的,无法模仿。只有噪声协方差矩阵是已知的。国家协方差矩阵只与噪声协方差的知识更新。

对于线性卡尔曼滤波器算法的简短描述,请参见线性卡尔曼滤波器

参考

[1]棕色,R.G.和P.Y.C.王某。简介随机信号分析与应用卡尔曼滤波。第3版。纽约:John Wiley和Sons,1997年。

[2]卡尔曼,r。“线性滤波和预测问题的新方法。”在ASME-中医基础工程交易卷。82,系列d,1960年3月,第35-45。

[3]布莱克曼,塞缪尔。雷达多目标跟踪。艺达大厦。1986年。

扩展功能

介绍了在R2017a