参考书:概率机器人、Probabilistic Robotics
EKF定位实现步骤:
- 预测
- 修正(包括:测量预测、估计更新)
下面使用里程计测量机器人的运动输入,路标测量(距离、角度、编号),地图由路标点在世界坐标系下的位置构成。
1、预测步骤(Prediction Step)
1) KF模型和EKF模型
KF模型:
EKF模型:
线性化:
其中,
先验分布中(预测阶段),
状态变量的协方差由两部分构成:
- 初始位置估计的不确定性
- 运动噪声引起的不确定性
2) k-1时刻状态不确定性转移状态空间
在预测步骤中,通过下式将上一时刻状态不确定性转移到状态空间(协方差的传递律),
如果还有附加的运动噪声,还需要加上运动噪声到状态空间的转移,即:
3) 运动噪声转移到状态空间
对附加运动噪声
N(0,M),将控制空间的噪声协方差转换到状态空间( approximate mapping between the motion noise in control space to the motion noise in state space.),需要对里程计进行线性化。
由里程计测量得到运动控制 ,考虑附加白噪声,得真实测量 满足:
使用协方差传递律,通过 将运动噪声转移到状态空间,其中 一般通过线性化得到:
如下图所示,设定不同的运动噪声,让机器人运动同样的距离,最后产生的总的不确定性对应的椭圆大小不同。
2、测量预测(Measurement Prediction )
这一步对于EKF更新是非必要的,但是存在必有道理,它是为了去除错误匹配(outlier rejection)和未知匹配(unknown correspondences)情况。
对观测方程 ,其中,类似上面的k-1时刻状态不确定性转移状态空间的步骤,可得(详细推导参见概率机器人p156):
均值:,表示预测的测量值
协方差: ,表示该预测的不确定性度
如下图所示,白色箭头为更新向量(innovation vector):,它表示观测与预测的测量之间的差值,它是一个零均值、协方差为 的高斯分布。
3、估计更新(Estimation Update)
通过卡尔曼增益矩阵 将更新向量按比例映射到状态空间,实现更新。如果观察越确定,即 越小,卡尔曼增益就越高,因此产生的位置修正就越强大。
如图为EKF的修正效果,减小均值估计并减小位置不确定性的椭圆。
<完>
@leatherwang