broken_robot.goto(target_bot.x*size_multiplier, target_bot.y*size_multiplier-200) broken_robot.stamp() prediction.setheading(target_bot.heading*180/pi) prediction.goto(position_guess[0]*size_multiplier, position_guess[1]*size_multiplier-200) prediction.stamp() #End of Visualization return localized # This is a demo for what a strategy could look like. This one isn't very good. def naive_next_pos(measurement, OTHER = None): """This strategy records the first reported position of the target and assumes that eventually the target bot will eventually return to that position, so it always guesses that the first position will be the next.""" if not OTHER: # this is the first measurement OTHER = measurement xy_estimate = OTHER return xy_estimate, OTHER # This is how we create a target bot. Check the robot.py file to understand # How the robot class behaves. test_target = robot(2.1, 4.3, 0.5, 2*pi / 34.0, 1.5) measurement_noise = 0.05 * test_target.distance test_target.set_noise(0.0, 0.0, measurement_noise) demo_grading(estimate_next_pos, test_target)
#Visualize it measuredbroken_robot.setheading(target_bot.heading * 180 / pi) measuredbroken_robot.goto( target_measurement[0] * size_multiplier, target_measurement[1] * size_multiplier - 100) measuredbroken_robot.stamp() broken_robot.setheading(target_bot.heading * 180 / pi) broken_robot.goto(target_bot.x * size_multiplier, target_bot.y * size_multiplier - 100) chaser_robot.setheading(hunter_bot.heading * 180 / pi) chaser_robot.goto(hunter_bot.x * size_multiplier, hunter_bot.y * size_multiplier - 100) estimation_robot.goto(estimation[0] * size_multiplier, estimation[1] * size_multiplier - 100) #End of visualization ctr += 1 if ctr >= 1000: print "It took too many steps to catch the target." return caught target = robot(0.0, 10.0, 0.0, 2 * pi / 30, 1.5) # measurement_noise = 2.0*target.distance # VERY NOISY!! measurement_noise = .05 * target.distance # VERY NOISY!! target.set_noise(0.0, 0.0, measurement_noise) hunter = robot(-10.0, -10.0, 0.0) print demo_grading2(hunter, target, next_move)
#Visualize it measuredbroken_robot.setheading(target_bot.heading*180/pi) measuredbroken_robot.goto(target_measurement[0]*size_multiplier, target_measurement[1]*size_multiplier-100) measuredbroken_robot.stamp() broken_robot.setheading(target_bot.heading*180/pi) broken_robot.goto(target_bot.x*size_multiplier, target_bot.y*size_multiplier-100) chaser_robot.setheading(hunter_bot.heading*180/pi) chaser_robot.goto(hunter_bot.x*size_multiplier, hunter_bot.y*size_multiplier-100) if estimation: estimation_robot.goto(estimation[0]*size_multiplier, estimation[1]*size_multiplier-100) #End of visualization ctr += 1 if ctr >= 1000: print "It took too many steps to catch the target." return caught target = robot(0.0, 10.0, 0.0, 2*pi / 30, 1.5) # measurement_noise = 2.0*target.distance # VERY NOISY!! measurement_noise = .5*target.distance # VERY NOISY!! target.set_noise(0.0, 0.0, measurement_noise) hunter = robot(-10.0, -10.0, 0.0) print demo_grading2(hunter, target, next_move)