Exemple #1
0
 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)
Exemple #2
0
 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__()
Exemple #4
0
    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