卡尔曼滤波是什么:
只要存在不确定信息的动态系统,卡尔曼滤波就可以对系统下一步要做什么做出有根据的推测。即便有噪声信息干扰,卡尔曼滤波通常也能很好的找出现象间不易察觉的相关性。优点:内存占用较小(只需要保留前一个状态)、速度快,是实时问题和嵌入式系统的理想选择。
卡尔曼滤波可以做什么:
树林里面四处溜达的机器人,实现导航,机器人需要知道自己所处的位置。
机器人有一个包含位置信息和速度信息的状态。其中,
在这个问题里,状态是位置和速度。放在其他问题里,它也可以是水箱里的液体体积,汽车的引擎温度等。
机器人有装有GPS传感器,GPS为我们提供一些关于状态的信息,那是间接的、不准确的。
卡尔曼滤波眼里的机器人问题:
有一个状态,它和速度、位置有关:
我们不知道它们的实际值多少, 但掌握着一些速度和位置的可能组合,其中某些组合可能性更高。
卡尔曼滤波的目标: 从不确定信息中挤出尽可能多的信息。
为了捕获这种相关性,我们用的是协方差矩阵。
表示协方差矩阵, 矩阵的每个值是第i个变量和第j个变量之间的相关程度(由于矩阵是对称的, i和j的位置可以随便变换)。
用矩阵描述问题:
还需要k时的两个信息: 最佳估计 (均值, 也就是), 协方差矩阵
(虽然还是用了位置和速度两个变量, 但只要和问题相关,卡尔曼滤波可以包含任意数量的变量)
= , 我们要通过查看当前状态(k-1时)来预测下一个状态(k时)。可以用矩阵来表示这个预测步骤。
它从原始预测中取每一点,并将其移动到新的预测位置。如果原始预测是正确的,系统就会移动到新位置。
我们可以用矩阵来预测机器人下一刻的位置和速度?下面是个简单公式:
= t
=
换成矩阵形式:
这是一个预测矩阵, 它能给出机器人的下一个状态,目前还不知道协方差矩阵的更新方法。
对每个点进行矩阵A转换,它的协方差矩阵,会发生什么变化呢?
—
外界作用力:
系统状态的改变不只依靠上一个系统状态, 外界作用力可能会影响系统状态的变化。
跟踪一列火车的运动状态,火车驾驶员可能踩了油门使火车提速。
可以通过一个向量来描述这些信息,把它添加到预测方程作为一个修正。
通过发出的指令得到预期的加速度a, 上边的运动方程可以变化为:
矩阵形式:
称作控制矩阵, 称为控制向量。
参考链接: 米开朗基罗赵 – 知乎
文章出处登录后可见!