一、卡尔曼滤波基本原理

既然是滤波,那肯定就是一种提纯数据的东西。怎么理解呢,如果现在有一个任务,需要知道家里橘子树今年长了多少个橘子。你想到去年、前年、大前年这三年你把橘子吃到过年,按每天吃3个来算,大概知道每年橘子树产了多少橘子,今年的情况应该也差不多。这叫 数学模型预测法 ;不过你懒得去想去年吃了多少个,就打算给邻居家的小孩一把糖果让他去数,小孩三下五除二就数完了,但是他数的仔细不仔细和有没有摘几个回家吃就不知道了,这叫 传感器直接测量法 。很明显这两种方法都不那么靠谱,卡尔曼滤波就是将这两种方法测得的数据融合起来,得到一个靠谱的数据。

二、公式推导之前回顾一些知识

1、正态分布

曲线两头低,中间高,左右对称。

随机变量 X服从一个 数学期望 为μ、 方差 为σ^2的正态分布,记为N(μ,σ^2)。 期望值 μ决定了其位置,其 标准差 σ决定了分布的幅度。σ越大曲线越矮胖,σ越小则越瘦长。————来自百度百科

2、协方差

协方差用来描述两个变量在变化时的联系情况,是同向变化,还是反向变化?你变大,同时我也变大,说明两个变量是同向变化的,这时协方差就是正的。你变大,同时我变小,说明两个变量是反向变化的,这时协方差就是负的。

三、公式推导

这里有一篇很不错的文章讲解推导的先贴在这里

如何通俗并尽可能详细解释卡尔曼滤波? - 米开朗基罗赵的回答 - 知乎 https://www.zhihu.com/question/23971601/answer/375355599

数学模型估计数据

1、假设我们现在要获取一个系统中某些状态稍微精确的数据,比如是智能小车的速度、位置, \small x_{k}=\left [ p,v \right ]^{T} ,p是position小车位置。

那么由数学模型,k时刻状态估计值可以由k-1时刻大致推导出来

F:状态转移矩阵,通常由机理关系得到,比如 \small x_{t}=x_{t-1}+\Delta t\cdot \dot{x_{t-1}}

\small \check{x_{k}^{-}} :注意右边带有小斜杠,这是先验估计

\small \check{x_{k-1}^{}} :这是上一时刻的后验估计

先验估计是还没有结合传感器数据的纯模型估计值,后验估计是模型数据和传感器数据融合之后的也就是我们需要的精确数据。

当然在这些数据转移的时候,变量之间的关系(协方差)也会随着改变。 \small \check{P_{k}^{}} 为协方差

2、当然状态不可能只受上一时刻状态的影响,比如智能小车有来自电机驱动的动能,小车有时会获得一个加速度。那么状态还要加上这一 外部作用力的影响

3、出来已知的外部作用力,还有一些不确定性因素会影响系统的状态变化,比如地上坑坑洼洼,智能小车抖那么一下,状态都会发生改变。这就是 白噪声 的影响,假设白噪声服从方差 \small \sum =Q_{k} 正态分布。这一部分的影响要加到协方差中去。

4、以上模型所有要考虑的因素基本都囊括进去了,但是的模型数据要和传感器数据融合起来,量纲肯定要统一,假设通过矩阵 \small H_{k} 变化。还是据智能小车的例子,假如我们要利用编码器获取小车的速度,我们设计的数学模型关于速度的单位肯定是米每秒,但是编码器采集的数据有可能是一个脉冲数,它还要通过车轮转一米固定多少个脉冲这样一个间接方法才能获得小车的速度。

所以有:(数学模型估计正态分布的平均值和方差)

(敲公式太累了,偷懒!)

传感器数据

5、传感器的数据也符合正态分布,假设平均值是 \small \acute{z_{k}} ,方差是 \small R_{k}

现有两个高斯分布数据,卡尔曼老先生将这两个高斯斑直接相乘,得到了一个新的高斯斑,就是我们要的更加精确的数据。直接通过相乘就得到了满意的结果,果然是大道至简,牛皮。

暂停一下,吃饭去了,明天再改改。。。

第一重:初见Kalman假设我养了一只猪: 一周前,这只猪的体重是46±0.5kg。注意,在这里我用了±0.5,表示其实我对这只猪一周前的体重并不是那么确定的,也就是说,46kg这个体重有0.5kg的误差。现在,我又养了这只猪一个星期。那么我想要知道它一个星期之后多重,又大概有多少的误差? 为了得到一周后的体重,我有两种方法:一是根据我多年的养猪经验得到的猪体重 公式 推求出一个大概的值,另一个 卡尔曼滤波 与目标追踪示例见: https://blog.csdn.net/AdamShan/article/details/78248421?locationNum=5&fps=1 清晰的 推导 见: https://blog.csdn.net/he...... 一、引言在许多实际应用场景中,例如自动驾驶、机器人导航、目标跟踪等,都需要对移动物体进行实时定位和跟踪。由于传感器测量噪声、外界环境干扰等因素的存在,直接使用传感器测量数据往往难以获得准确的物体状态信息。因此,需要借助滤波技术来对测量数据进行处理,从而估计出物体的真实状态。 卡尔曼滤波 作为一种经典的滤波算法,以其优异的性能和广泛的应用范围,在移动物体定位跟踪领域得到了广泛应用。本文将以 卡尔曼滤波 为基础,探讨如何实现对匀速、匀加速、变加速移动物体的定位跟踪。 引用知乎中的一段话:“PID和 卡尔曼滤波 乃是 控制 工程师的两大法宝。几十年过去了 卡尔曼滤波 理论 研究上仍然保持着活跃,研究方向包括各种非线性的,噪声统计参数未知的自适应和鲁棒滤波。更重要的是现在计算机的发展将其推向了实用化,包括各种位姿估计,多传感器信息融合,车辆导航等。” 这足以看出 卡尔曼滤波 控制 领域中的重要性,而本篇博客就来简要地分析一下 卡尔曼滤波 器的 基本原理 卡尔曼滤波 器 首先,我们可以用... 在看本文章之前请先保证自己明白什么是协方差,它有什么含义,什么叫最小均方误差估计,什么是多元高斯分布,以及什么是最大似然估计。引言 1960年, 卡尔曼 发表了他著名的用递归方法解决离散数据线性滤波问题的论文。从那以后,得益于数字计算技术的进步, 卡尔曼滤波 器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。 卡尔曼滤波 器由一系列递归数学 公式 描述。它们提供了一种高效可计算的方法来估计过程的状态, xkx_{k}xk​ 是状态分量的 nnn维矢量 AAA 是 n∗nn * nn∗n 的状态转移矩阵,也就是对目标状态转换的猜想模型,是已知的 uk−1u_{k-1}uk−1​ 是新的,让系统可以接受外部 控制 BBB 是 n∗cn * cn∗c 矩阵,将输入转换为状态的矩阵 wk−1w_{k-1}wk−1​ 是预测过程的噪声,对应 xkx_{k}xk​中每个分量的噪声,期望为0,协方差为QQQ的高斯白噪声 二、观测方程 HHH 是 m∗nm * nm∗n矩阵,是状态变量(观测 详解 卡尔曼滤波 原理  在网上看了不少与 卡尔曼滤波 相关的博客、论文,要么是只谈 理论 、缺乏感性,或者有感性认识,缺乏 理论 推导 。能兼顾二者的少之又少,直到我看到了国外的一篇博文,真的惊艳到我了,不得不佩服作者这种细致入微的精神,翻译过来跟大家分享一下,