Beispiel #1
0
    def get_gt_embs(self):
        asset_path = osp.join(osp.dirname(osp.realpath(__file__)),
                              'assets/stl')
        polys, _, _ = gen_polys(asset_path)
        all_types = list(set([p.ply for p in polys]))
        one_hots = {}
        for i, t in enumerate(all_types):
            one_hot = np.zeros(len(all_types))
            one_hot[i] = 1.0
            one_hots[t] = one_hot

        gt = []
        for p in polys:
            gt.append([p.scale, *p.angle, *one_hots[p.ply]])
        return torch.Tensor(gt)
Beispiel #2
0
    def __init__(self,
                 placement2d=False,
                 render_freq=25,
                 min_steps=10,
                 max_steps=100,
                 asset_path='assets/stl/',
                 episode_steps=EPISODE_STEPS,
                 default_extra_ratio=DEFAULT_EXTRA_RATIO):
        super().__init__()
        self.render_freq = render_freq
        self.min_steps = min_steps
        self.max_steps = max_steps

        self.max_episode_steps = episode_steps
        self.default_extra = max_steps * default_extra_ratio
        # Set to 0 in reset
        self.cur_episode_step = None
        self.num_penalty = 0
        self.prev_height = 0.0

        if not placement2d:
            self.take_action_dims = 2
        else:
            self.take_action_dims = 1
        self.placement2d = placement2d
        self.debug_log = False
        self.is_fig_mode = False

        self.asset_path = osp.join(osp.dirname(osp.realpath(__file__)),
                                   asset_path)

        self.all_polygons, self.shape_names, self.polygon_types = gen_polys(
            self.asset_path)
        self._log('with %i polygons' % len(self.all_polygons))

        self.placed_objs = []
        self.sim = None
        self.viewer = None
        self._init_scene(None)

        self.high_render = False
        self.high_render_dim = DEF_LARGE_RENDER_DIM
        self.observation_space = spaces.Box(low=0.0,
                                            high=255.0,
                                            shape=(SMALL_RENDER_DIM,
                                                   SMALL_RENDER_DIM, 3),
                                            dtype=np.float32)
Beispiel #3
0
    def __init__(self,
                 render_freq=25,
                 max_steps=100,
                 asset_path='assets/stl/',
                 episode_steps=EPISODE_STEPS):
        super().__init__()
        self.render_freq = render_freq
        self.max_steps = max_steps

        self.max_episode_steps = episode_steps
        # Set to 0 in reset
        self.cur_episode_step = None
        self.num_penalty = 0
        self.noop = 0
        self.prev_height = 0.0
        # The prev height to keep track of for the render that is not set to 0
        # with the episode reset.
        self.render_height = 0.0

        self.debug_log = False

        self.asset_path = osp.join(osp.dirname(osp.realpath(__file__)),
                                   asset_path)

        self.all_polygons, self.shape_names, self.polygon_types = gen_polys(
            self.asset_path)
        self._log('with %i polygons' % len(self.all_polygons))

        self.placed_objs = []
        self.sim = None
        self.viewer = None
        self.usable_objs = []

        self.high_render = False
        self.high_render_dim = DEF_LARGE_RENDER_DIM
        self.observation_space = spaces.Box(low=0.0,
                                            high=255.0,
                                            shape=(SMALL_RENDER_DIM,
                                                   SMALL_RENDER_DIM, 3),
                                            dtype=np.float32)
Beispiel #4
0
    def get_env_option_names(self):
        all_polygons, _, _ = gen_polys('envs/block_stack/assets/stl/')
        indv_labels = [p.type for p in all_polygons]
        label_list = sorted(list(set(indv_labels)))

        return indv_labels, label_list
Beispiel #5
0
 def __init__(self, asset_path='assets/stl'):
     self.asset_path = osp.join(osp.dirname(
         osp.realpath(__file__)), asset_path)
     self.all_polygons, self.shape_names, self.polygon_types = gen_polys(self.asset_path)
     self.observation_space = spaces.Box(low=0.0, high=255.0,
                                         shape=(SMALL_RENDER_DIM, SMALL_RENDER_DIM, 3), dtype=np.float32)