예제 #1
0
    def get_observation(self, env: ManipulaTHOREnvironment, task: Task,
                        *args: Any, **kwargs: Any) -> Any:
        object_source_location = task.task_info["initial_object_location"]
        target_state = task.task_info["target_location"]
        agent_state = task.task_info["agent_initial_state"]

        relative_current_obj = world_coords_to_agent_coords(
            object_source_location, agent_state)
        relative_goal_state = world_coords_to_agent_coords(
            target_state, agent_state)
        relative_distance = diff_position(relative_current_obj,
                                          relative_goal_state)
        result = state_dict_to_tensor(dict(position=relative_distance))
        return result
예제 #2
0
    def get_observation(self, env: ManipulaTHOREnvironment, task: Task,
                        *args: Any, **kwargs: Any) -> Any:
        goal_obj_id = task.task_info["objectId"]
        object_info = env.get_object_by_id(goal_obj_id)
        hand_state = env.get_absolute_hand_state()

        relative_goal_obj = world_coords_to_agent_coords(
            object_info, env.controller.last_event.metadata["agent"])
        relative_hand_state = world_coords_to_agent_coords(
            hand_state, env.controller.last_event.metadata["agent"])
        relative_distance = diff_position(relative_goal_obj,
                                          relative_hand_state)
        result = state_dict_to_tensor(dict(position=relative_distance))

        result = ((result**2).sum()**0.5).view(1)
        return result
예제 #3
0
    def get_observation(self, env: ManipulaTHOREnvironment, task: Task,
                        *args: Any, **kwargs: Any) -> Any:

        object_source_location = task.task_info["initial_object_location"]
        initial_hand_state = task.task_info["initial_hand_state"]

        relative_goal_obj = world_coords_to_agent_coords(
            object_source_location,
            env.controller.last_event.metadata["agent"])
        relative_hand_state = world_coords_to_agent_coords(
            initial_hand_state, env.controller.last_event.metadata["agent"])
        relative_distance = diff_position(relative_goal_obj,
                                          relative_hand_state)
        result = state_dict_to_tensor(dict(position=relative_distance))

        return result
예제 #4
0
    def get_observation(self, env: ManipulaTHOREnvironment, task: Task,
                        *args: Any, **kwargs: Any) -> Any:
        goal_obj_id = task.task_info["objectId"]
        object_info = env.get_object_by_id(goal_obj_id)
        hand_state = env.get_absolute_hand_state()

        relative_goal_obj = world_coords_to_agent_coords(
            object_info, env.controller.last_event.metadata["agent"])
        relative_hand_state = world_coords_to_agent_coords(
            hand_state, env.controller.last_event.metadata["agent"])
        relative_distance = diff_position(
            relative_goal_obj,
            relative_hand_state,
            absolute=False,
        )
        result = coord_system_transform(relative_distance, self.coord_system)
        return result