def build_experiments(self): """ Creates the whole set of experiment objects, The experiments created depend on the selected Town. """ # We set the RGB, seg cameras if self.rgb: camera = Camera('rgb') camera.set(FOV=100) camera.set_image_size(800, 600) camera.set_position(2.0, 0.0, 1.4) camera.set_rotation(-15.0, 0, 0) if self.seg: seg = Camera('seg', PostProcessing='SemanticSegmentation') seg.set(FOV=100) seg.set_image_size(800, 600) seg.set_position(2.0, 0.0, 1.4) seg.set_rotation(-15.0, 0, 0) poses_tasks = self._poses() vehicles_tasks = [20] pedestrians_tasks = [50] task_names = ['normal'] experiments_vector = [] for weather in self.weathers: for iteration in range(len(poses_tasks)): poses = poses_tasks[iteration] vehicles = vehicles_tasks[iteration] pedestrians = pedestrians_tasks[iteration] conditions = CarlaSettings() conditions.set( SendNonPlayerAgentsInfo=True, NumberOfVehicles=vehicles, NumberOfPedestrians=pedestrians, WeatherId=weather ) conditions.set(DisableTwoWheeledVehicles=True) # Add all the cameras that were set for this experiments if self.rgb: conditions.add_sensor(camera) if self.seg: conditions.add_sensor(seg) experiment = Experiment() experiment.set( Conditions=conditions, Poses=poses, Task=iteration, TaskName=task_names[iteration], Repetitions=1 ) experiments_vector.append(experiment) return experiments_vector
def build_experiments(self): """ Creates the whole set of experiment objects, The experiments created depend on the selected Town. """ # We set the camera # This single RGB camera is used on every experiment camera = Camera('rgb') camera.set(FOV=100) camera.set_image_size(800, 600) camera.set_position(2.0, 0.0, 1.4) camera.set_rotation(-15.0, 0, 0) poses_tasks = self._poses() vehicles_tasks = [0, 15, 70] pedestrians_tasks = [0, 50, 150] vehicles_tasks = [70] pedestrians_tasks = [150] task_names = ['empty', 'normal', 'cluttered'] task_names = ['cuttered'] experiments_vector = [] for weather in self.weathers: for iteration in range(len(poses_tasks)): poses = poses_tasks[iteration] vehicles = vehicles_tasks[iteration] pedestrians = pedestrians_tasks[iteration] conditions = CarlaSettings() conditions.set(SendNonPlayerAgentsInfo=True, NumberOfVehicles=vehicles, NumberOfPedestrians=pedestrians, WeatherId=weather) conditions.set(DisableTwoWheeledVehicles=True) # Add all the cameras that were set for this experiments conditions.add_sensor(camera) experiment = Experiment() experiment.set(Conditions=conditions, Poses=poses, Task=iteration, TaskName=task_names[iteration], Repetitions=1) experiments_vector.append(experiment) return experiments_vector
def game_loop(args, agent): pygame.init() pygame.font.init() world = None total_images = 0 if args.output_folder is not None: os.makedirs(args.output_folder) try: with make_carla_client(args.host, args.port) as client: # Hack to fix for the issue 310, we force a reset, so it does not get # the positions on first server reset. client.load_settings(CarlaSettings()) client.start_episode(0) display = pygame.display.set_mode( (args.width, args.height), pygame.HWSURFACE | pygame.DOUBLEBUF) hud = HUD(args.width, args.height) world = World(client, hud) controller = KeyboardControl(world, False) #spawn_point = world.world.get_map().get_spawn_points()[0] objective = world.get_objective() clock = pygame.time.Clock() while True: if controller.parse_events(world, clock): return world.tick(clock) measurements, sensor_data = world.get_agent_sensor() world.render(display) pygame.display.flip() print(controller.get_command()) control = agent.run_step( measurements, sensor_data, controller.get_command(), (objective.location.x, objective.location.y, objective.location.z)) world.camera_manager.set_sensor(sensor_data['hudcamera'].data) attentions = agent.get_attentions() world.camera_manager.show_image_mini(agent.latest_image, attentions[0], attentions[1], attentions[2]) print(control) world.apply_control(control) if args.output_folder is not None: scipy.misc.imsave( os.path.join(args.output_folder, 'image' + str(total_images) + '.png'), agent.latest_image) scipy.misc.imsave( os.path.join(args.output_folder, 'layer1_' + str(total_images) + '.png'), attentions[0]) scipy.misc.imsave( os.path.join(args.output_folder, 'layer2_' + str(total_images) + '.png'), attentions[1]) scipy.misc.imsave( os.path.join(args.output_folder, 'layer3_' + str(total_images) + '.png'), attentions[2]) total_images += 1 finally: pygame.quit()
def make_carla_settings(benchmark=None, task=None): """Make a CarlaSettings object with the settings we need.""" settings = CarlaSettings() settings.set(SendNonPlayerAgentsInfo=True, SynchronousMode=True, NumberOfVehicles=30, NumberOfPedestrians=50, WeatherId=1) settings.set(DisableTwoWheeledVehicles=True) settings.randomize_seeds() # IMPORTANT TO RANDOMIZE THE SEEDS EVERY TIME camera0 = sensor.Camera('rgb') camera0.set_image_size(WINDOW_WIDTH, WINDOW_HEIGHT) camera0.set(FOV=100) camera0.set_image_size(800, 600) camera0.set_position(2.0, 0.0, 1.4) camera0.set_rotation(-15.0, 0, 0) settings.add_sensor(camera0) camera0 = sensor.Camera('hudcamera') camera0.set_image_size(WINDOW_WIDTH, WINDOW_HEIGHT) camera0.set(FOV=100) camera0.set_image_size(1280, 730) camera0.set_position(-5.5, 0.0, 2.8) camera0.set_rotation(-15.0, 0, 0) settings.add_sensor(camera0) return settings