def test_analzyer_on_field_model(): """ Create a model of the field, then ask the laser to compute the range for sweep. Then move the robot and ask again. """ robot = Robot() field = FieldModel() tower_range = field.tower_range_from_origin() rotation = FakeRotation(field, robot) heading, sweep_range = Analyzer.range_at_heading(rotation.polar_data(), (-10,11)) # closest point should be dead ahead assert heading == 0 assert sweep_range == tower_range movement = 100 robot.move(movement) rotation = FakeRotation(field, robot) heading, sweep_range = Analyzer.range_at_heading(rotation.polar_data(), (-10,11)) # closest point should be dead ahead assert heading == 0 assert sweep_range == (tower_range - movement)
print("Robot is at ({:f}, {:f} turned {:d} degrees".format(x, y, r.heading)) elif cmd == "s": update_all_results(lidar_viewer, field_model, robot, factor) elif cmd == "r": try: cmd,cmd_arg = text.split(" ") factor = int(cmd_arg) update_all_results(lidar_viewer, field_model, robot, factor) except ValueError: print "Please specify distance in whole inches." elif cmd == "m": try: cmd,cmd_arg = text.split(" ") distance = int(cmd_arg) robot.move(distance) update_all_results(lidar_viewer, field_model, robot, factor) except ValueError: print "Please specify distance in whole inches." elif cmd == "t": try: cmd,cmd_arg = text.split(" ") heading = int(cmd_arg) robot.turn(heading) update_all_results(lidar_viewer, field_model, robot, factor) except ValueError: print "Please specify turn in whole degrees." elif cmd == "w": lidar_viewer.write_to_file("Lidar.dat", rotation.polar_data()) elif cmd == "h":