def __init__(self, env): self.env = env super(GatherViewer, self).__init__() green_ball_model = MjModel( osp.abspath(osp.join(MODEL_DIR, 'green_ball.xml'))) self.green_ball_renderer = EmbeddedViewer() self.green_ball_model = green_ball_model self.green_ball_renderer.set_model(green_ball_model) red_ball_model = MjModel( osp.abspath(osp.join(MODEL_DIR, 'red_ball.xml'))) self.red_ball_renderer = EmbeddedViewer() self.red_ball_model = red_ball_model self.red_ball_renderer.set_model(red_ball_model) #""" green_ball_highlighted_model = MjModel( osp.abspath(osp.join(MODEL_DIR, 'green_ball_highlighted.xml'))) self.green_ball_highlighted_renderer = EmbeddedViewer() self.green_ball_highlighted_model = green_ball_highlighted_model self.green_ball_highlighted_renderer.set_model( green_ball_highlighted_model) red_ball_highlighted_model = MjModel( osp.abspath(osp.join(MODEL_DIR, 'red_ball_highlighted.xml'))) self.red_ball_highlighted_renderer = EmbeddedViewer() self.red_ball_highlighted_model = red_ball_highlighted_model self.red_ball_highlighted_renderer.set_model( red_ball_highlighted_model)
def __init__(self, action_noise=0.0, file_path=None, template_args=None, **kwargs): # compile template if file_path is None: if self.__class__.FILE is None: raise "Mujoco file not specified" file_path = osp.join(MODEL_DIR, self.__class__.FILE) if file_path.endswith(".mako"): lookup = mako.lookup.TemplateLookup(directories=[MODEL_DIR]) with open(file_path) as template_file: template = mako.template.Template(template_file.read(), lookup=lookup) content = template.render( opts=template_args if template_args is not None else {}, ) tmp_f, file_path = tempfile.mkstemp(text=True) with open(file_path, 'w') as f: f.write(content) self.model = MjModel(file_path) os.close(tmp_f) else: try: self.model = MjModel(file_path) except rllab.mujoco_py.mjcore.MjError as err: rllab_path = rllab.__file__ if 'local' not in file_path: prefix = rllab_path[:rllab_path.index( 'rllab')] + 'rllab/vendor/local_mujoco_models/' suffix = file_path[file_path.index('mujoco_models') + 14:] #suffix = 'train_ensure_woodtable_distractor_pusher1.xml' #suffix = 'pusher98.xml' self.model = MjModel(prefix + suffix) self.data = self.model.data self.viewer = None self.init_qpos = self.model.data.qpos self.init_qvel = self.model.data.qvel self.init_qacc = self.model.data.qacc self.init_ctrl = self.model.data.ctrl self.qpos_dim = self.init_qpos.size self.qvel_dim = self.init_qvel.size self.ctrl_dim = self.init_ctrl.size self.action_noise = action_noise if "frame_skip" in self.model.numeric_names: frame_skip_id = self.model.numeric_names.index("frame_skip") addr = self.model.numeric_adr.flat[frame_skip_id] self.frame_skip = int(self.model.numeric_data.flat[addr]) else: self.frame_skip = 1 if "init_qpos" in self.model.numeric_names: init_qpos_id = self.model.numeric_names.index("init_qpos") addr = self.model.numeric_adr.flat[init_qpos_id] size = self.model.numeric_size.flat[init_qpos_id] init_qpos = self.model.numeric_data.flat[addr:addr + size] self.init_qpos = init_qpos self.dcom = None self.current_com = None self.reset() super(MujocoEnv, self).__init__()
def __init__( self, action_noise=0.0, file_path=None, template_args=None, random_init_state=False, ): #Haoran: even if random_init_state # compile template if file_path is None: if self.__class__.FILE is None: raise "Mujoco file not specified" file_path = osp.join(MODEL_DIR, self.__class__.FILE) if file_path.endswith(".mako"): lookup = mako.lookup.TemplateLookup(directories=[MODEL_DIR]) with open(file_path) as template_file: template = mako.template.Template(template_file.read(), lookup=lookup) content = template.render( opts=template_args if template_args is not None else {}, ) tmp_f, file_path = tempfile.mkstemp(text=True) with open(file_path, 'w') as f: f.write(content) self.model = MjModel(file_path) os.close(tmp_f) # os.remove(file_path) # TODO else: self.model = MjModel(file_path) self.data = self.model.data self.viewer = None self.init_qpos = self.model.data.qpos self.init_qvel = self.model.data.qvel self.init_qacc = self.model.data.qacc self.init_ctrl = self.model.data.ctrl self.init_damping = (self.model.dof_damping[:, 0]).copy() self.init_armature = (self.model.dof_armature[:, 0]).copy() self.init_frictionloss = (self.model.dof_frictionloss[:, 0]).copy() self.qpos_dim = self.init_qpos.size self.qvel_dim = self.init_qvel.size self.ctrl_dim = self.init_ctrl.size self.action_noise = action_noise self.random_init_state = random_init_state if "frame_skip" in self.model.numeric_names: frame_skip_id = self.model.numeric_names.index("frame_skip") addr = self.model.numeric_adr.flat[frame_skip_id] self.frame_skip = int(self.model.numeric_data.flat[addr]) else: self.frame_skip = 1 if "init_qpos" in self.model.numeric_names: init_qpos_id = self.model.numeric_names.index("init_qpos") addr = self.model.numeric_adr.flat[init_qpos_id] size = self.model.numeric_size.flat[init_qpos_id] init_qpos = self.model.numeric_data.flat[addr:addr + size] self.init_qpos = init_qpos self.dcom = None self.current_com = None self.reset() super(MujocoEnv, self).__init__()
def __init__(self, action_noise=0.0, file_path=None, template_args=None, envseed=None): # compile template self._seed(envseed) if file_path is None: if self.__class__.FILE is None: raise "Mujoco file not specified" file_path = osp.join(MODEL_DIR, self.__class__.FILE) # print("debug, new mujoco env, filepath", file_path) if file_path.endswith(".mako"): lookup = mako.lookup.TemplateLookup(directories=[MODEL_DIR]) with open(file_path) as template_file: template = mako.template.Template(template_file.read(), lookup=lookup) content = template.render( opts=template_args if template_args is not None else {}, ) tmp_f, file_path = tempfile.mkstemp(text=True) with open(file_path, 'w') as f: f.write(content) self.model = MjModel(file_path) os.close(tmp_f) else: self.model = MjModel(file_path) self.data = self.model.data self.viewer = None self.init_qpos = self.model.data.qpos self.init_qvel = self.model.data.qvel self.init_qacc = self.model.data.qacc self.init_ctrl = self.model.data.ctrl self.qpos_dim = self.init_qpos.size self.qvel_dim = self.init_qvel.size self.ctrl_dim = self.init_ctrl.size self.action_noise = action_noise if "frame_skip" in self.model.numeric_names: frame_skip_id = self.model.numeric_names.index("frame_skip") addr = self.model.numeric_adr.flat[frame_skip_id] self.frame_skip = int(self.model.numeric_data.flat[addr]) else: self.frame_skip = 1 if "init_qpos" in self.model.numeric_names: init_qpos_id = self.model.numeric_names.index("init_qpos") addr = self.model.numeric_adr.flat[init_qpos_id] size = self.model.numeric_size.flat[init_qpos_id] init_qpos = self.model.numeric_data.flat[addr:addr + size] self.init_qpos = init_qpos self.dcom = None self.current_com = None self.reset() super(MujocoEnv, self).__init__()
def __init__(self, **kwargs): super(HalfCheetahSimulator, self).__init__(**kwargs) self._imSz = 512 self._im = np.zeros((self._imSz, self._imSz, 3), dtype=np.uint8) self.model = MjModel( '../rlmaster/envs/mujoco_envs/xmls/half_cheetah.xml') self.viewer = None self._pos = {} self._pos['torso'] = np.zeros((3, )) self._range_min = -1 self._range_max = 1 self.body_comvel = 0 self.action = np.zeros((1, 2)) self.init_qpos = self.model.data.qpos self.init_qvel = self.model.data.qvel self.init_qacc = self.model.data.qacc self.init_ctrl = self.model.data.ctrl self.frame_skip = 1