kalman算法
kalman滤波器论文《A New Approach to Linear Filtering and Prediction Problems》,有时间可以看一下。
kalman滤波的定义:
卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。在很多工程应用(如雷达、计算机视觉)中都可以找到它的身影。同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要课题。例如,对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。
我目前应用到的是对一个时间观测序列进行平滑。也就是对过去位置的估计。用于目标物体轨迹的跟踪。
因为最基础的kalman filter是线性滤波器,并且使用的参数有些提前的设置,所以kalman filter是有使用条件的。还有一些kalman filter的变种。我只用到了基础的就可以满足我的应用场景。
kalman的最中心的思想是,使用系统内部预测值,和实际观测值来计算出一个最优的值(这些值在已有的参数设置下是最少噪声的,因为难以做到完全去除。)
那么如何使用两个已经有的值去计算最优值,一般想到的就是这两个值得加权平均。这个权,表示哪个更加重要,哪个貌似噪音更少,就对最优结果更有贡献力。
下面是kalman的5个公式,可以分为两部分:
看不下去