赤と緑のグリッドセルの2Dワールドでのロボットのローカライズには、次のコードで苦労しています。私は基本的に、そのリストのインデックスが範囲外であるというエラーを取得しています。ルーチン意味で2D世界でのローカライゼーション
p=[.2,.2,.2,.2,.2]# Initial cell probability
w=[['R','G','G','R','R'],
['R','R','G','R','R'],
['R','R','G','G','R'],
['R','R','R','R','R']]# World
meas = ['G','G','G','G','G'] # measurements
mov = [[0,0],[0,1],[1,0],[1,0],[0,1]] # motion
phit = .6 # Probability to measure: R->0.6
pmiss = .2 # Probability to measure: R->0.2
pExact = .8 # Prob. exact motion
pOver = .1 # Prob. overshoot
pUnder = .1 # Prob. undershoot
def entropy (p):
s = [p[i]*log(p[i]) for i in range(len(p))]
return round(-sum(s), 2)
def sense(p, z):
q = []
for i in range(len(p)):
hit = w[i]==z
q.append(p[i]*(phit*hit + pmiss*(1-hit)))
s = sum(q)
q = [i/s for i in q]
return q
#Moving u cells
def move(p, u):
q = []
for i in range(len(p)):
motion = pExact * p[(i-u)%len(p)]
motion += pOver * p[(i-u-1)%len(p)]
motion += pUnder * p[(i-u+1)%len(p)]
q.append(motion)
return q
for i in range(len(meas)):
p = sense(p, meas[i])
r = [format(j,'.3f') for j in p]
print "Sense %i:"%(i),
print r, entropy(p)
p = move(p, mov[i])
r = [format(j,'.3f') for j in p]
print "Move %i:"%(i),
print r, entropy(p)
print
用語についてニックピッチ:*ローカリゼーションという用語は、何かを見つける方法を意味するものではありません。代わりに、プログラムがドイツのコンピュータで実行されている場合は、文字列をドイツ語に変換するなど、さまざまな*ロケール*の出力をどのように変換するかについてです。 [その件についての詳細はこちら](https://en.wikipedia.org/wiki/Language_localisation) –
こんにちは@JoachimPileborg、ロボット工学では、ローカリゼーションは、 "世界の自分の位置を決定する"を意味するために使用されます。 [Robot Mapping](https://en.m.wikipedia.org/wiki/Robotic_mapping)を参照してください。 –