def __init__( self, task_config: Config, sim: Simulator, dataset: Optional[Dataset] = None, ) -> None: task_measurements = [] for measurement_name in task_config.MEASUREMENTS: measurement_cfg = getattr(task_config, measurement_name) measure_type = registry.get_measure(measurement_cfg.TYPE) assert (measure_type is not None), "invalid measurement type {}".format( measurement_cfg.TYPE) task_measurements.append(measure_type(sim, measurement_cfg)) self.measurements = Measurements(task_measurements) task_sensors = [] for sensor_name in task_config.SENSORS: sensor_cfg = getattr(task_config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE) task_sensors.append(sensor_type(sim, sensor_cfg)) self.sensor_suite = SensorSuite(task_sensors) super().__init__(config=task_config, sim=sim, dataset=dataset)
def __init__(self, config: Config) -> None: self.habitat_config = config agent_config = self._get_agent_config() sim_sensors = [] for sensor_name in agent_config.SENSORS: #print("AGENT CONFIG SENSORS : {}".format(agent_config.SENSORS), flush=True) sensor_cfg = getattr(self.habitat_config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE) sim_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(sim_sensors) self.sim_config = self.create_sim_config(self._sensor_suite) self._current_scene = self.sim_config.sim_cfg.scene_id super().__init__(self.sim_config) self._action_space = spaces.Discrete( len(self.sim_config.agents[0].action_space)) self._prev_sim_obs: Optional[Observations] = None # NavMesh related settings : self.navmesh_settings = NavMeshSettings() self.navmesh_settings.set_defaults() self.navmesh_settings.agent_radius = agent_config.RADIUS self.navmesh_settings.agent_height = agent_config.HEIGHT
def __init__(self, config: Config) -> None: self._config = config robot_sensors = [] for sensor_name in self._config.SENSORS: sensor_cfg = getattr(self._config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE) robot_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(robot_sensors) config_pyrobot = { "base_controller": self._config.BASE_CONTROLLER, "base_planner": self._config.BASE_PLANNER, } assert (self._config.ROBOT in self._config.ROBOTS), "Invalid robot type {}".format( self._config.ROBOT) self._robot_config = getattr(self._config, self._config.ROBOT.upper()) action_spaces_dict = {} self._action_space = self._robot_action_space(self._config.ROBOT, self._robot_config) self._robot = pyrobot.Robot(self._config.ROBOT, base_config=config_pyrobot)
def __init__(self, config: Config) -> None: self.config = config agent_config = self._get_agent_config() #print("AGENT_CONFIGS") #print(agent_config) #print(self.config.AGENTS) #print("END_AGENT_CONFIGS") sim_sensors = [] for sensor_name in agent_config.SENSORS: sensor_cfg = getattr(self.config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE) sim_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(sim_sensors) self.sim_config = self.create_sim_config(self._sensor_suite) self._current_scene = self.sim_config.sim_cfg.scene.id self._sim = habitat_sim.Simulator(self.sim_config) self._action_space = spaces.Discrete( len(self.sim_config.agents[0].action_space)) self._is_episode_active = False
def __init__(self, config: Config) -> None: self.config = config agent_config = self._get_agent_config() sim_sensors = [] for sensor_name in agent_config.SENSORS: sensor_cfg = getattr(self.config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE ) sim_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(sim_sensors) self.sim_config = self.create_sim_config(self._sensor_suite) self._current_scene = self.sim_config.sim_cfg.scene_id self._action_space = spaces.Discrete( len(self.sim_config.agents[0].action_space) ) self._prev_sim_obs = None self._source_position_index = None self._receiver_position_index = None self._rotation_angle = None self._current_sound = None self._offset = None self._duration = None self._audio_index = None self._audio_length = None self._source_sound_dict = dict() self._sampling_rate = None self._node2index = None self._frame_cache = dict() self._audiogoal_cache = dict() self._spectrogram_cache = dict() self._egomap_cache = defaultdict(dict) self._scene_observations = None self._episode_step_count = None self._is_episode_active = None self._position_to_index_mapping = dict() self._previous_step_collided = False self._instance2label_mapping = None self._house_readers = dict() self._use_oracle_planner = True self._oracle_actions = list() self.points, self.graph = load_metadata(self.metadata_dir) for node in self.graph.nodes(): self._position_to_index_mapping[self.position_encoding(self.graph.nodes()[node]['point'])] = node if self.config.AUDIO.HAS_DISTRACTOR_SOUND: self._distractor_position_index = None self._current_distractor_sound = None if self.config.USE_RENDERED_OBSERVATIONS: self._sim = DummySimulator() with open(self.current_scene_observation_file, 'rb') as fo: self._frame_cache = pickle.load(fo) else: self._sim = habitat_sim.Simulator(config=self.sim_config)
def __init__(self, config: Config) -> None: self.config = config agent_config = self._get_agent_config() sim_sensors = [] for sensor_name in agent_config.SENSORS: sensor_cfg = getattr(self.config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE) sim_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(sim_sensors) # self.sim_config = self.create_sim_config(self._sensor_suite) # self._current_scene = self.sim_config.sim_cfg.scene.id self._current_scene = '../habitat-api/data/scene_datasets/gibson/Pablo.glb' self._action_space = spaces.Discrete( 4) # 0 stop, 1 fwd, 2 turn left, 3 turn right, 4 do nothing self._last_obs = None self.origin_xy_yaw = np.array([0., 0., 0.], np.float32) # Supports navigation in 80x80m area, goal at most 40m away. self._coord_min = -40. self._coord_max = 40. self.socket = None atexit.register( self.cleanup ) # this is to close connection when the object is cleaned up # self.origin_agent_state = self.xy_yaw_to_agent_state(0., 0., 0.) ans = "" while ans != "ping": try: ans = self.reconnect_and_send("ping") except Exception as e: # pdb.set_trace() print("Failed to connect, retry.") time.sleep(2.0) continue if ans == "ping": print("Server is alive") msg = self.reconnect_and_send("obs") # obs = json.loads(msg) # print (obs.keys()) # pdb.set_trace() obs = self.decode_spot_message(msg) self.show_robot_obs(obs) else: print( "Server sent an unexpected response to ping. Response: " + str(ans)) pdb.set_trace()
def __init__(self, config: Config) -> None: self.config = config agent_config = self.get_agent_config() sim_sensors = [] for sensor_name in agent_config.SENSORS: sensor_cfg = getattr(self.config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE ) sim_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(sim_sensors) self.sim_config = self.create_sim_config(self._sensor_suite) self._current_scene = self.sim_config.sim_cfg.scene.id self._sim = habitat_sim.Simulator(self.sim_config) self._action_space = spaces.Discrete( len(self.sim_config.agents[0].action_space) ) self._prev_sim_obs = None self._source_position_index = None self._receiver_position_index = None self._rotation_angle = None self._current_sound = None self._source_sound_dict = dict() self._sampling_rate = None self._node2index = None self._frame_cache = dict() self._audiogoal_cache = dict() self._spectrogram_cache = dict() self._egomap_cache = defaultdict(dict) self._scene_observations = None self._episode_step_count = None self._is_episode_active = None self._position_to_index_mapping = dict() self._previous_step_collided = False self.points, self.graph = load_metadata(self.metadata_dir) for node in self.graph.nodes(): self._position_to_index_mapping[self.position_encoding(self.graph.nodes()[node]['point'])] = node self._load_source_sounds() logging.info('Current scene: {} and sound: {}'.format(self.current_scene_name, self._current_sound)) if self.config.USE_RENDERED_OBSERVATIONS: self._sim.close() del self._sim self._sim = DummySimulator() with open(self.current_scene_observation_file, 'rb') as fo: self._frame_cache = pickle.load(fo)
def __init__(self, config: Config) -> None: self.habitat_config = config agent_config = self._get_agent_config() sim_sensors = [] for sensor_name in agent_config.SENSORS: sensor_cfg = getattr(self.habitat_config, sensor_name) sensor_type = registry.get_sensor(sensor_cfg.TYPE) assert sensor_type is not None, "invalid sensor type {}".format( sensor_cfg.TYPE) sim_sensors.append(sensor_type(sensor_cfg)) self._sensor_suite = SensorSuite(sim_sensors) self.sim_config = self.create_sim_config(self._sensor_suite) self._current_scene = self.sim_config.sim_cfg.scene.id super().__init__(self.sim_config) self._action_space = spaces.Discrete( len(self.sim_config.agents[0].action_space)) self._prev_sim_obs = None