贝叶斯滤波与matlab实现小机器人定位

本文介绍了贝叶斯滤波的基本概念,包括概率基础、贝叶斯公式及其计算,并详细阐述了如何将动作融入贝叶斯滤波模型。通过一个一维空间中小机器人定位的案例,展示了贝叶斯滤波在处理动态环境中的应用,同时提供了MATLAB程序实现的概要。
摘要由CSDN通过智能技术生成

贝叶斯滤波

1. 概率基础回顾

条件概率:
p ( x ∣ y ) = p ( x , y ) / p ( y )   p ( x , y ) = p ( x ∣ y ) p ( y ) = p ( y ∣ x ) p ( x ) p(x|y)=p(x,y)/p(y) \\ \ \\ p(x,y)=p(x|y)p(y)=p(y|x)p(x) p(xy)=p(x,y)/p(y) p(x,y)=p(xy)p(y)=p(yx)p(x)
全概率公式:
p ( x ) = ∑ y p ( x , y ) = ∑ y p ( x ∣ y ) p ( y ) p(x) = \sum\limits_y {p(x,y)}=\sum\limits_y {p(x|y)p(y)} p(x)=yp(x,y)=yp(xy)p(y)
全概率公式的意义在于,当某一事件的概率难以求得时,可转化为在一系列条件下发生概率的和。

2. 贝叶斯公式

2.1 贝叶斯公式

基于条件概率公式和全概率公式,我们可以导出贝叶斯公式:
$$
\begin{array}{c} P(x,y) = P(x|y)P(y) = P(y|x)P(x)\
\Rightarrow \

\end{array}
$$

P ( x   ∣   y ) = P ( y ∣ x )    P ( x ) P ( y ) = P ( y ∣ x )    P ( x ) ∑ y p ( x ∣ y ) p ( y ) P(x\,\left| {\,y} \right.) = \frac{ {P(y|x)\,\,P(x)}}{ {P(y)}} = \frac { {P(y|x)\,\,P(x)}} { { \sum\limits_y {p(x|y)p(y)} }} P(xy)=P(y)P(yx)P(x)=yp(xy)p(y)P(yx)P(x)

  • 这里x是某种状态,y 是某种预观测。下面例子中 x 代表门开关,y 代表距离z
  • 我们称P(y|x)为causal knowledge(因果知识),意即由x的已知情况,就可以推算y发生的概率,例如在图2的例子中,已知如果门开着,则z=0.5m的概率为0.6;如果门关着,则z=0.5m的的概率为0.3。
  • P(x) 为prior knowledge,先验概率。可以设开关概率都是 0.5。
  • P(x|y) 是基于观测对状态的诊断或推断。贝叶斯公式的本质就是利用causal knowledge和prior knowledge来进行状态推断或推理

image-20201001103413801

2.2 贝叶斯公式的计算

可以把分母项看成归一化系数 η \eta η
P ( x   ∣   y ) = P ( y ∣ x )    P ( x ) P ( y ) = η    P ( y ∣ x )   P ( x ) η = P ( y ) − 1 = 1 ∑ x P ( y ∣ x ) P ( x ) \begin{array}{l} P(x\,\left| {\,y} \right.) = \frac{ {P(y|x)\,\,P(x)}}{ {P(y)}} = \eta \;P(y|x)\,P(x)\\ \eta = P{(y)^{ - 1}} = \frac{1}{ {\sum\limits_x {P(y|x)} P(x)}} \end{array} P(xy)=P(y)P(yx)P(x)=ηP(yx)P(x)η=P(y)1=xP(yx)P(x)1
Algorithm:
∀ x : a u x x ∣ y = P ( y ∣ x )    P ( x ) η = 1 ∑ x a u x x ∣ y

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值