1. 卡尔曼解决什么问题
比较经典的说法是,卡尔曼滤波适用于任何带有不确定性的系统中。那么我们怎么来理解这种不确定性呢?具体来讲,包含以下几种情况。
- 当前系统不存在完美的数学表达模型,即不能够通过一些数学方式来表达这个系统。
- 当前系统是不可控的,即其中的状态不能通过外部手段来实现精准控制;
- 当前系统的状态是不能通过外部手段来精准测量的。
总结一下,如果一个系统不可表达、不可测量也不可控制,那么可以考虑使用卡尔曼滤波来跟踪系统的状态。
2. 卡尔曼滤波的基础理论依据
卡尔曼本质上是一种递归算法,即当前状态可以通过估计下一时刻的状态,或者说当前时刻的状态与上一时刻的状态有关联,可以表达为如下的形态。
其中,为t时刻的估计状态,为t-1时刻的状态,k为某种定义的系数,为估计误差。
具体到卡尔曼滤波中来,可以用下面的公式来表达。
,
其中k为卡尔曼增益,为观测量与预测值的误差。
在后面的讲解中,我们会发现,参与卡尔曼最优估计计算的并不止形如的观测量与预测量的差,而是需要将状态空间投影到测量空间,在进行误差的计算。
举例来讲:
对于一个静止的目标,我们需要经过多次测量来获得距离值,那么我们的状态空间和测量空间是一致的,那么我们的误差就可以是观测值与预测值的差,这个时候就是形如的计算。
对于跟踪这个场景,观测点和目标一般是相对移动的,状态空间在设计时与观测空间并不一致,会引入一些运行类型的过程误差,那么我们在计算的时候,需要先进行状态空间与测量空间的转换,得到估计的测量量,然后再进行相应误差的计算。这个时候就是形如的计算。
这个误差很重要,实际上卡尔曼滤波是围绕这个误差在进行循环递推的计算。
3. 递推公式推导
举一个简单的例子,来演示递推公式的推导。
假如我们需要测量某一物体的长度,这时候我们可以采取多次测量取平均的方式进行,在这里我们要关注两点
(1)我们使用池子进行测量,尺子本身可能不准;
(2)平均值本身就是一种估计值。
假设是第k次的测量值,那么我们可以这样取平均。
我们令,得到如下的公式:
,K为卡尔曼增益。
我们称上述公式为最优估计公式,这一公式便是卡尔曼黄金五公式之一。