def __setup_map_interface__(self): params = ParameterServer() # we are creating a dummy scenario to get the map interface from it scenario = Scenario(map_file_name=self._map_filename, json_params=params.ConvertToDict()) world = scenario.GetWorldState() map_interface = world.map return map_interface
def create_map_interface(map_file_name, road_ids): params = ParameterServer() # we are creating a dummy scenario to get the map interface from it scenario = Scenario(map_file_name=map_file_name, json_params=params.ConvertToDict()) world = scenario.GetWorldState() map_interface = world.map map_interface.GenerateRoadCorridor(road_ids, XodrDrivingDirection.forward) return map_interface
def create_single_scenario(self): scenario = Scenario(map_file_name=self._map_file_name, json_params=self._params.ConvertToDict()) world = scenario.GetWorldState() collected_sources_sinks_agent_states_geometries = [] collected_sources_sinks_default_param_configs = [] # Loop through each source sink config and first only create state # and geometry information road_corridors = [] kwargs_agent_states_geometry = [] sink_source_default_params = [] for idx, sink_source_config in enumerate(self._sinks_sources): road_corridor = self.get_road_corridor_from_source_sink(sink_source_config, world.map) road_corridors.append(road_corridor) #1) create agent states and geometries for this source args = [road_corridor] agent_states, agent_geometries, kwargs_dict, default_params_state_geometry = \ self.eval_configuration( sink_source_config, "ConfigAgentStatesGeometries", args, {}) kwargs_agent_states_geometry.append(kwargs_dict) # collect default parameters of this config sink_source_default_params.append(sink_source_config) sink_source_default_params[idx]["ConfigAgentStatesGeometries"] = default_params_state_geometry.ConvertToDict() collected_sources_sinks_agent_states_geometries.append((agent_states, agent_geometries)) #2 remove overlapping agent states from different sources and sinks collected_sources_sinks_agent_states_geometries = \ self.resolve_overlaps_in_sources_sinks_agents(collected_sources_sinks_agent_states_geometries) agent_list = [] controlled_agent_ids_all = [] for idx, agent_states_geometries in enumerate( collected_sources_sinks_agent_states_geometries): sink_source_config = self._sinks_sources[idx] agent_states = agent_states_geometries[0] agent_geometries = agent_states_geometries[1] road_corridor = road_corridors[idx] if(len(agent_states)== 0): continue #3) create behavior, execution and dynamic models args_list = [road_corridor, agent_states ] kwargs_dict = {**kwargs_agent_states_geometry[idx]} config_return, kwargs_dict_tmp, default_params_behavior = \ self.eval_configuration( sink_source_config, "ConfigBehaviorModels", args_list, kwargs_dict) behavior_models = config_return sink_source_default_params[idx]["ConfigBehaviorModels"] = default_params_behavior.ConvertToDict() kwargs_dict = {**kwargs_dict, **kwargs_dict_tmp} config_return, kwargs_dict_tmp, default_params_execution = \ self.eval_configuration( sink_source_config, "ConfigExecutionModels", args_list, kwargs_dict) execution_models = config_return sink_source_default_params[idx]["ConfigExecutionModels"] = default_params_execution.ConvertToDict() kwargs_dict = {**kwargs_dict, **kwargs_dict_tmp} config_return, kwargs_dict_tmp, default_params_dynamic = \ self.eval_configuration( sink_source_config, "ConfigDynamicModels", args_list, kwargs_dict) dynamic_models = config_return sink_source_default_params[idx]["ConfigDynamicModels"] = default_params_dynamic.ConvertToDict() kwargs_dict = {**kwargs_dict, **kwargs_dict_tmp} #4 create goal definitions and controlled agents config_return, kwargs_dict_tmp, default_params_controlled_agents = \ self.eval_configuration( sink_source_config, "ConfigControlledAgents", args_list, kwargs_dict) controlled_agent_ids = config_return controlled_agent_ids_all.extend(controlled_agent_ids) sink_source_default_params[idx]["ConfigControlledAgents"] = default_params_controlled_agents.ConvertToDict() kwargs_dict = {**kwargs_dict, **kwargs_dict_tmp} args_list = [*args_list, controlled_agent_ids] config_return, kwargs_dict_tmp, default_params_goals = \ self.eval_configuration( sink_source_config, "ConfigGoalDefinitions", args_list, kwargs_dict) goal_definitions = config_return sink_source_default_params[idx]["ConfigGoalDefinitions"] = default_params_goals.ConvertToDict() #5 Build all agents for this source config kwargs_dict = {**kwargs_dict, **kwargs_dict_tmp} agent_params = ParameterServer(json = sink_source_config["AgentParams"]) sink_source_agents, controlled_ids = self.create_source_config_agents(agent_states, agent_geometries, behavior_models, execution_models, dynamic_models, goal_definitions, controlled_agent_ids, world, agent_params) sink_source_default_params[idx]["AgentParams"] = agent_params.ConvertToDict() self.update_road_corridors(sink_source_agents, road_corridor) agent_list.extend(sink_source_agents) collected_sources_sinks_default_param_configs.append(sink_source_config) self._sink_source_default_params = sink_source_default_params scenario._eval_agent_ids = controlled_ids scenario._agent_list = agent_list return scenario