本文主要是介绍机器人概率定位学习笔记第二篇_使用python建立机器人感知函数(sense fuction),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本笔记学习于优达学城 Artificial Intelligence for Robotics课程
1,用python实现一个Uniform Probability 均衡概率数组,五个概率。
answer:
p=[]
n=5
for i in range(0,n):p.append(1.0/n)
print p
2,先看下图 假设世界有5个方格,机器人在哪个方格的概率是一样的,所以在每个方格为概率是0.2。接下来,让每个方格有不同的颜色,三个绿色,两个红色。
ok,下一步机器人开始感知了,机器人感知到的颜色是红色,这个是条件,所以明显的看出,在x2,x3位置处的概率应该变大,而在x1,x3,x4位置处的概率应该变小。
所以我们让正确的位置处乘以0.6,即红色位置处乘以0.6,绿色位置乘以0.2,这个两个数是随机的,但是很明显0.6是0.2的三倍。
最后计算,机器人感知之后带来的概率影响,计算每个方格的概率?
answer:0.04,0.04,0.12,0.12,0.04
3,但是上面的结果总和并不是1,所以我们要计算他们总和,并normalize distribution 标准化概率。简单的python代码可以如下
p=[]
n=5
for i in range(0,n):p.append(1.0/n)
p[0]=p[0]*0.2
p[1]=p[1]*0.6
p[2]=p[2]*0.6
p[3]=p[3]*0.2
p[4]=p[4]*0.2
sum1=sum(p)
for i in range(0,5):p[i]=p[i]/sum1
print p
4,感知方程 sense fuction ,现在我们就是要做一个感知方程,并均值化感知后的概率,python代码如下
p=[0.2, 0.2, 0.2, 0.2, 0.2]
world=['green', 'red', 'red', 'green', 'green']
Z = 'red'
pHit = 0.6
pMiss = 0.2def sense(p, Z):q=[]for i in range(len(p)):hit = (Z == world[i])q.append(p[i] * (hit * pHit + (1-hit) * pMiss))a =sum(q)for i in range(len(q)):q[i]=q[i]/areturn q
print sense(p,Z)
5,多次感知,假设现在机器人第一次感知到红色,第二次又感知到绿色,求出最后的概率
answer:
p=[0.2, 0.2, 0.2, 0.2, 0.2]
world=['green', 'red', 'red', 'green', 'green']
measurements = ['red', 'green']
pHit = 0.6
pMiss = 0.2def sense(p, Z):q=[]for i in range(len(p)):hit = (Z == world[i])q.append(p[i] * (hit * pHit + (1-hit) * pMiss))s = sum(q)for i in range(len(q)):q[i] = q[i] / sreturn q
#
#ADD YOUR CODE H
for i in range(len(measurements)):p=sense(p,measurements[i])print p
这篇关于机器人概率定位学习笔记第二篇_使用python建立机器人感知函数(sense fuction)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!