from: 优达学城 Artificial Intelligence for Robotics

p=[0.2, 0.2, 0.2, 0.2, 0.2]
world=['green', 'red', 'red', 'green', 'green']
pHit = 0.6
pMiss = 0.2
pExact = 0.8
pOvershoot = 0.1
pUndershoot = 0.1
'''
当前观测为 Z 时估计当前位置的概率分布
'''
def 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] / s
return q
'''
运动后所在位置的概率分布
'''
def move(p, U):
q = []
for i in range(len(p)):
s = pExact * p[(i-U) % len(p)]
s = s + pOvershoot * p[(i-U-1) % len(p)]
s = s + pUndershoot * p[(i-U+1) % len(p)]
q.append(s)
return q
'''
两次观测,两次移动
'''
measurements = ['red', 'red']
motions = [1,1] # 1 表示右移1格
for k in range(len(measurements)):
p = sense(p, measurements[k])
p = move(p, motions[k])
print p
[0.07882352941176471, 0.07529411764705884, 0.22470588235294123, 0.4329411764705882, 0.18823529411764706]
机器人定位的过程在 “感知” 与 “移动” 中交替进行,感知增加信息量,移动减少信息量(增加了不确定性)


博客源自优达学城,介绍机器人定位过程。该过程在“感知”与“移动”中交替,感知可增加信息量,而移动会减少信息量,增加不确定性。
1137

被折叠的 条评论
为什么被折叠?



