def render( self, mode: str = "human", *args, **kwargs ) -> Union[np.ndarray, None]: r"""Render observations from all environments in a tiled image.""" for write_fn in self._connection_write_fns: write_fn((RENDER_COMMAND, (args, {"mode": "rgb", **kwargs}))) images = [read_fn() for read_fn in self._connection_read_fns] tile = tile_images(images) if mode == "human": from habitat.core.utils import try_cv2_import cv2 = try_cv2_import() cv2.imshow("vecenv", tile[:, :, ::-1]) cv2.waitKey(1) return None elif mode == "rgb_array": return tile else: raise NotImplementedError
Simulator, ) from habitat.core.utils import not_none_validator, try_cv2_import from habitat.sims.habitat_simulator.actions import HabitatSimActions from habitat.tasks.utils import cartesian_to_polar from habitat.utils.geometry_utils import ( quaternion_from_coeff, quaternion_rotate_vector, ) from habitat.utils.visualizations import fog_of_war, maps try: from habitat.sims.habitat_simulator.habitat_simulator import HabitatSim except ImportError: pass cv2 = try_cv2_import() MAP_THICKNESS_SCALAR: int = 128 def merge_sim_episode_config(sim_config: Config, episode: Episode) -> Any: sim_config.defrost() sim_config.SCENE = episode.scene_id sim_config.freeze() if (episode.start_position is not None and episode.start_rotation is not None): agent_name = sim_config.AGENTS[sim_config.DEFAULT_AGENT_ID] agent_cfg = getattr(sim_config, agent_name) agent_cfg.defrost() agent_cfg.START_POSITION = episode.start_position agent_cfg.START_ROTATION = episode.start_rotation