线性卡尔曼滤波器
的trackingKF
类创建一个离散时间线性卡尔曼滤波器,用于跟踪在自动驾驶场景中可能遇到的物体的位置和速度,如汽车、行人、自行车和静止结构或障碍物。卡尔曼滤波是在对过程进行测量时估计过程演化状态的递归算法。当状态的演化遵循线性运动模型,且测量值为状态的线性函数时,滤波器是线性的。过程和测量都可能有附加噪声。该过滤器还允许可选的控制或力量作用于车辆。当过程噪声和测量噪声均为高斯噪声时,卡尔曼滤波器是线性过程的最优最小均方误差状态估计器。
你可以用两种方式使用这个对象:
第一种方法是明确指定运动模型。设置运动模型属性,MotionModel
,自定义
然后使用StateTransitionModel
属性设置状态转移矩阵。
第二种方法是设置MotionModel
属性设置为预定义的状态转换模型:
运动模型 |
---|
“一维恒定速度” |
“一维恒定加速度” |
“二维恒定速度” |
“二维恒定加速度” |
“3 d恒定速度” |
三维加速度恒定的 |
过滤器= trackingKF
返回离散时间、二维等速运动对象的线性卡尔曼滤波对象。的卡尔曼滤波器使用默认值StateTransitionModel
,MeasurementModel
,ControlModel
属性。的MotionModel
属性设置为“二维恒定速度”
.
指定状态转换模型,过滤器
= trackingKF (F
,H
)F
,以及测量模型,H
.的MotionModel
属性设置为“自定义”
.
还指定了控制模型,过滤器
= trackingKF (F
,H
,G
)G
.的MotionModel
属性设置为“自定义”
.
设置运动模型属性,过滤器
= trackingKF (“MotionModel”
,模型
)MotionModel
,模型
.
)使用一个或多个参数配置卡尔曼滤波器的属性过滤器
= trackingKF (___,的名字
,价值
)的名字
,价值
对参数。任何未指定的属性都接受默认值。
卡尔曼滤波通过估计目标的状态来描述目标的运动。这种状态通常包括物体的位置和速度,也可能包括物体的加速度。这种状态可以跨越1、2或3个空间维度。最常见的是,使用卡尔曼滤波器来模拟恒定速度或恒定加速度的运动。线性卡尔曼滤波假设该过程由以下线性随机差分方程控制:
在卡尔曼滤波器中,测量值也是状态的线性函数,
在没有噪声的情况下,这些方程可以模拟物体的实际运动和实际测量结果。每一步的噪声贡献是未知的,无法建模。只有噪声协方差矩阵是已知的。仅利用噪声协方差知识对状态协方差矩阵进行更新。
您可以阅读线性卡尔曼滤波算法的简要描述线性卡尔曼滤波器.
[1]布朗,R.G.,王p.y.c。《随机信号分析与应用卡尔曼滤波导论》第三版。纽约:约翰·威利父子公司,1997年。
R. E.卡尔曼线性滤波和预测问题的新方法asme基础工程学报,第82卷,D系列,1960年3月,第35-45页。
[3] Blackman,撒母耳。雷达应用的多目标跟踪,Artech House, 1986。