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)