资料和方法
- <<计算机视觉 模型、学习与推理>>。讲的比较详细。
- <<学习OpenCV3>>仅仅讲述了OpenCV3的kalman滤波的源码,没有EKF或UKF的内容。
- <<概率机器人>>原理推导的非常详细。
- <<卡尔曼滤波原理及应用-MATLAB仿真>>目标跟踪的数学建模有一定的价值。
2019年下半年曾经对位置预测调研过一个阶段,调研了许多资料,还是无法理解卡尔曼滤波的内容。最近感觉需要结合源码对卡尔曼滤波进行一个理解,似乎是一个好的学习方法。
总体流程
其主要包括两部分:通过实际测量数据Zi+1修正预测器X,预测数据,两个模块。在<<图像处理、分析与机器视觉(第四版)>>的16.6,有详细论述。
卡尔曼滤波的时间间隔问题
卡尔曼滤波
以书籍<<概率机器人>>为参考说明这个问题。只有前后的状态转换有可能涉及到时间间隔问题。状态转换方程为。
$$
\overline {{\mu {\rm{t}}}} {\rm{ = }}{{\rm{A}}{\rm{t}}}{\mu _{t - 1}} + {B_t}{u_t}
$$
其他的步骤,都无法体现时间间隔这个概念。在博士论文<<Predictive Tracking for
扩展卡尔曼滤波
在扩展kalman滤波中,与时间相关的几个点为:
- 与kalman滤波一样,状态更新方程。 μ t ‾ = g ( u t , μ t − 1 ) \overline {{\mu _{\rm{t}}}} {\rm{ = }}g({u_t},{\mu _{t - 1}}) μt=g(ut,μt−1)
- 矩阵 G t G_t Gt 。其 g ( u t , u t − 1 ) g(u_t,u_{t-1}) g(ut,ut−1)为 在t-1时刻测试更新值的偏导矩阵。
- 矩阵 H t H_t Ht 。其为测量函数h(x)在t时刻预测值处的偏导矩阵。
时间间隔kalman矩阵的流程
Augmented Reality>>中,在状态转换部分,以微分方程的形式,体现了时间间隔的概念。其具体分三步进行。
1、 初始化。对EKF中所有值赋初值。
2、 时间更新。针对下一个测量时间点进行预测更新。
3、 策略更新。根据测量数据进行更新。
4、 预测。对此所需的时间点进行预测。
注意,其中第2和3是,标准的EKF滤波过程。第4步不是,其为根据实际需求而列出的步骤。