概率机器人——贝叶斯滤波

上篇在介绍机器人环境交互中:https://blog.csdn.net/jcsm__/article/details/106516512,提到了机器人通过内部的置信度来确定当前的状态,本篇及后续将介绍求取置信度的几种方法。

 

1、贝叶斯滤波原理

贝叶斯滤波通过控制测量数据计算置信度分布bel()。是一种递归算法,通过t-1时刻的置信度计算t时刻的置信度。每一次的迭代更新包括两方面:控制更新测量更新。

  • 控制更新(预测):

控制更新或者称之为预测,是利用当前时刻的控制信息前一时刻状态的置信度,计算当前时刻状态的置信度

推倒过程如下:

 

:表示上一状态所有可能的取值,为连续变量的表述方式。

上述为连续变量表达式,离散表达式如下:

概率机器人——贝叶斯滤波_第1张图片


  • 测量更新 :

测量更新通过已经测量得到的当前时刻的测量值zt控制更新得到的当前时刻状态的置信度,得到基于测量信息的后验估计

测量更新的表达式是经过归一化的表述,不便于理解,推倒过程如下:

概率机器人——贝叶斯滤波_第2张图片

根据上篇提到的条件独立,知道当前的状态,可以完成当前时刻下的测量,不需要过去的状态和测量信息。据此进行简化:


 

2、贝叶斯滤波的局限性

贝叶斯算法的实现需要预先指定3个概率分布:

  • 初始置信度:
  • 测量概率:
  • 状态转移概率:

 

3、贝叶斯滤波总结

  • 在概率机器人中,机器人及其环境的动态以两种概率法则,即状态转移分布和测量分布的形式为特点。状态转移分布描述状态如何随时间变化的特征,测量分布描述测量如何由状态控制的特征。两种法则都是概率性的,从而导致状态演变和检测的固有不确定性。
  • 贝叶斯滤波做了一个马尔可夫假设,根据这个假设,状态是过去的完整总结。这个假设意味着置信度足以表示机器人的过去历史。在机器人研究中,马尔可夫通常仅是一种近似。
  • 贝叶斯滤波不是一个实际的算法,不能用数字计算机实现,所以概率算法使用可处理的近似。这样的近似可根据不同的标准对它们的精确性、效率和易于实现进行评估。高斯滤波(代表:卡尔曼滤波)和非参数滤波是两种通用的由贝叶斯导出的递归状态估计技术。

 


 

4、应用贝叶斯滤波

以《概率机器人》上的一个例子,说明贝叶斯滤波的使用。

一个用于估计门状态的移动机器人,门在某一时刻的状态只有两种,open or close。机器人携带一种可以检测门状态的传感器,但是检测结果不一定准确。

概率机器人——贝叶斯滤波_第3张图片

根据上述的理论分析,需给定初始置信度、测量概率、状态转移概率:

  • 初始置信度

  • 测量概率 

  • 状态转移概率

机器人身上带有操作器,能够把门打开(就是控制量了)。假定有两种动作:push or do_nothing

概率机器人——贝叶斯滤波_第4张图片

概率机器人——贝叶斯滤波_第5张图片


 

在给定初始信息后,假定在t=1时刻,机器人没有采取任何控制动作,但是检测到门是开着的。所以:

  • 控制更新(预测)

概率机器人——贝叶斯滤波_第6张图片

状态变量X1=open:

状态变量X1=close:


  • 测量更新

状态变量X1=open:

概率机器人——贝叶斯滤波_第7张图片

状态变量X1=close:

概率机器人——贝叶斯滤波_第8张图片


 

计算归一化因子:

得出结果:

 

你可能感兴趣的:(robotics)