def measure():
    global blind_steps
    blind_steps = 0
    measurement = make_measurement(bot, grid, variance=1)
    particle_filter.measure(measurement, measurement_likelihood)
    ui.draw_bots(canvas, bot, particle_filter.particles)
    ui.draw_measurement(canvas, bot, measurement)
def move():
    ui.clear_measurement(canvas)
    global bot, blind_steps, should_filter_reset
    blind_steps += 1
    direction = vote()
    bot = movement_model(bot, direction, .1, 0)
    particle_filter.move(direction, movement_model)
    ui.draw_bots(canvas, bot, particle_filter.particles)
    measurement = make_measurement(bot, grid, variance=1)
    if min(measurement) <= SAFETY_BUFFER:
        instructions_text.set("I'm awfully close to a wall. Lemme reset the filter.")
        should_filter_reset = True
def reset_filter(event):
    global particle_filter
    particle_filter = pf.ParticleFilter(prior_distribution, particle_count=1000)
    ui.draw_bots(canvas, bot, particle_filter.particles)