예제 #1
0
def particleFilter(parameters, state, dtext):
    prediction = (0, 0, 0)
    if state == 'init':
        # Place initial particles
        parameters['pfObject'] = alg.ParticleFilter(parameters)
        dtext.append(
            ("Place particles", True))  # Display to console and overlay
        (done, nump, avgw, keep, prediction) = parameters['pfObject'].pfData()
    else:
        (done, nump, avgw, keep,
         prediction) = parameters['pfObject'].update(parameters, dtext)
        dtext.append(("p=%d,%d" % (nump, keep), True))
        dtext.append(("wavg=%2f" % avgw, True))
        if prediction[2] > 0:
            dtext.append(("L=%d,%d" % (prediction[0], prediction[1]), True))
    return prediction