Kalman 滤波一维移动目标追踪
在前一篇文章中对Kalman滤波简要介绍了一下。本文使用Kalman 滤波对一维的移动目标进行追踪。
在问题1中,在已知目标是大致匀速运动且已知速度的情况下,对目标进行追踪。当然,这样的场景过于理想化,因此在问题2中,环境将会更加贴近真实的场景,在仅有对目标的位移、速度有一个初始的大致猜测的情况下追踪目标。
1. 问题描述1
假设一目标在一维坐标上沿着正方向移动。由于存在环境噪声的影响,目标的移动并不是完全匀速的。且有一传感器用于测量该目标的位移,但该传感器也不是完全准确的,存在一定的测量误差。下面将使用Kalman滤波对该目标进行追踪。
1.1 问题建模
首先,假设目标是匀速运动的,每单位时间移动一个距离单位,并且受环境的影响,其每个单位时间的位移存在一个随机的偏移。设前一个时间 t − 1 t-1 t−1的位移为 x t − 1 x_{t-1} xt−1,则当前理想情况下,当前时间 t t t的位移为 x t = x t − 1 + v e l o c i t y × Δ t x_{t}=x_{t-1}+velocity\times \Delta t xt=xt−1+velocity×Δt,但是收到环境的影响,并假设环境噪声服从高斯分布,则当前时间 t t t的位移 x t = x t − 1 + v e l o c i t y × Δ t + ϵ x_{t}=x_{t-1}+velocity\times \Delta t + \epsilon xt=xt−1+velocity×Δt+ϵ, ϵ \epsilon ϵ是从 N ( x t − 1 + v e l o c i t y × Δ t , σ m o v e m e n t 2 ) \mathcal{N}(x_{t-1}+velocity\times \Delta t,\sigma^2_{movement}) N(xt−1+velocity×Δt,σmovement2)中得到的。
同时,对于该目标的有一个传感器测量其位移。但是该传感器不是完全准确的,存在一定的误差。假设该误差也是服从高斯分布的。那么该传感器测量时刻 t t t的目标的位移 x t m e a s u r e = x t + ϵ m e a s u r e x_{t_{measure}}=x_{t}+\epsilon_{measure} xtmeasure=xt+ϵmeasure,其中 ϵ m e a s u r e m e n t \epsilon_{measurement} ϵmeasurement与上面类似,是从高斯分布中得到的一个随机值。
算法的每轮迭代中包含预测与更新两个步骤。预测步骤是根据预设的目标的的移动模型得到一个关于目标位移的一个高斯分布。更新步骤根据传感器的测量值与预测步骤的位移分布计算得到新的预测值。其中预测步骤是对两个高斯分布相加得到 N ( μ 1 + μ 2 , σ 1 2 + σ 2 2 ) \mathcal{N}(\mu_1+\mu_2,\sigma_1^2+\sigma_2^2) N(μ1+