[ProbR]概率机器人之基于贝叶斯网络的探索机器人Orazio!

基于贝叶斯网络的探索机器人Orazio


一、环境背景

在这里插入图片描述

在网格地图中,我们的移动机器人 Orazio 要探索地图。

  • 红色移动机器人Orazio

  • 蓝色是四个保险杠(bumpers???我以为不知道为什么??)来感知环境

  • 黑色格子是墙,不能走

  • 白色格子是可以走的路

  • 在每个时间点可以给 Orazio 一个向上下左右走的命令

二、原理

1. 动态系统

在这里插入图片描述
进一步,transition函数 f 和observation函数 h 详细写成下图:

在这里插入图片描述

由初始状态分布 x 0 x_{0} x0 u 0 u_{0} u0 , transation model p ( x t ∣ x t − 1 , u t − 1 ) p(x_{t}|x_{t-1}, u_{t-1}) p(xtxt1,ut1) 根据先前的状态和控制
来计算当前状态 x t x_{t} xt 的概率。

由此延伸出 贝叶斯动态网络(DBN):

  • 随机动态过程的图形表示
  • 具有周期性结构的特征
    在这里插入图片描述

在DBN中,通常我们知道:

  • 观测值 z 1 : T z_{1:T} z1:T,因为可以被观测到
  • 控制 u 0 : T − 1 u_{0:T-1} u0:T1,因为控制命令就是人为发布的

以下是一些经典的DBN推断:

在这里插入图片描述

2. 原理公式

对于 filtering 公式,经过各种推导(此处省略。。太长了。。) 最后得:

p ( X t ∣ u 0 : t − 1 , z 1 : t ) = η t p ( z t ∣ X t ) ∑ X t − 1 p ( X t ∣ X t − 1 , u t − 1 ) p ( X t − 1 ∣ u 0 : t − 2 , z 1 : t − 1 ) p(X_{t}|u_{0:t-1}, z_{1:t})=\eta_{t}p(z_{t}|X_{t})\sum_{X_{t-1}}p(X_{t}|X_{t-1}, u_{t-1})p(X_{t-1}|u_{0:t-2}, z_{1:t-1}) p(Xtu0:t1,z1:t)=ηtp(ztXt)Xt1p(XtXt1,ut1)p(Xt1u0:t2,z1:t1)

其中 η \eta η 是常数:

η = 1 p ( z t ∣ u 0 : t − 1 , z 1 : t − 1 ) \eta = \frac{1}{p(z_{t}| u_{0:t-1}, z_{1:t-1})} η=p(ztu0:t1,z1:t1)1

最后再简写替代一下:

b ( X t ) = p ( X t ∣ u 0 : t − 1 , z 1 : t ) b(X_{t}) = p(X_{t}|u_{0:t-1}, z_{1:t}) b(Xt)=p(Xtu0:t1,z1:t)

则最终公式为:

b ( X t ) = η t p ( z t ∣ X t ) ∑ X t − 1 p ( X t ∣ X t − 1 , u t − 1 ) b ( X t − 1 ) b(X_{t})=\eta_{t}p(z_{t}|X_{t})\sum_{X_{t-1}}p(X_{t}|X_{t-1}, u_{t-1})b(X_{t-1}) b(Xt)=ηtp(ztXt)Xt1p(XtXt1,ut1)b(Xt1)

三、代码

公式推导完毕,这是实现代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是土豆大叔啊!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值