def init_environment()

in interaction_exploration/tools/calculate_max_interactions.py [0:0]


    def init_environment(self):

        scene, episode = self.config.test_episode
        print (f'INIT: {scene} episode {episode}')

        self.init_scene_and_agent(scene=scene, episode=episode)

        # store all reachable x, z for snapping to grid
        self.reachable_x = list(set([pos[0] for pos in self.reachable_positions]))
        self.reachable_z = list(set([pos[2] for pos in self.reachable_positions]))

        # get a list of every possible interaction that can be done (by object)
        # go to the closest object and cycle through these
        # actions = ['open', 'close', 'toggle-on', 'toggle-off', 'take', 'put', 'slice']
        interaction_candidates = []
        for obj in self.state.metadata['objects']:

            ints = []
            if obj['openable']:
                ints += ['open', 'close']
            if obj['toggleable']:
                ints += ['toggle-on', 'toggle-off']
            if obj['pickupable']:
                ints += ['take', 'put']
            if obj['sliceable']:
                ints += ['slice']

            obj = copy.deepcopy(obj)
            obj['ints'] = ints
            obj['objId'] = obj['objectId']

            if len(ints)>0:
                interaction_candidates.append(obj)
        self.interaction_candidates = interaction_candidates