def __init__(self, *args):
        super(FiveBlocks, self).__init__(*args)
        connect(use_gui=self.experiment_dict['render'])

        if (self.detailed_gmp):
            self.robot = p.loadURDF(
                DRAKE_IIWA_URDF, useFixedBase=True,
                globalScaling=1.2)  # KUKA_IIWA_URDF | DRAKE_IIWA_URDF
        else:
            self.robot = None

        # Construct camera
        set_default_camera()

        # Load in the objects
        self.floor = p.loadURDF('models/short_floor.urdf', useFixedBase=True)
        self.green_block = p.loadURDF("models/box_green.urdf",
                                      useFixedBase=False)
        self.red_block = p.loadURDF("models/box_red.urdf", useFixedBase=False)
        self.blue_block = p.loadURDF("models/box_blue.urdf",
                                     useFixedBase=False)
        self.purple_block = p.loadURDF("models/box_purple.urdf",
                                       useFixedBase=False)
        self.cyan_block = p.loadURDF("models/box_yellow.urdf",
                                     useFixedBase=False)

        self.objects = [
            self.green_block, self.red_block, self.blue_block,
            self.purple_block, self.cyan_block
        ]
        self.static_objects = []

        # Only used for some curiosity types
        self.perspectives = [(0, -90)]

        # In this environment, if it times out, we know an object fell off the screen
        self.break_on_timeout = True

        # Set up macro-actions
        self.macroaction = MacroAction(
            macroaction_list=[
                PickPlace(objects=self.objects,
                          robot=self.robot,
                          fixed=self.fixed,
                          gmp=self.detailed_gmp),
                # AddLink(objects = self.objects, robot=self.robot, fixed=self.fixed, gmp=self.detailed_gmp),
            ],
            experiment_dict=self.experiment_dict)

        # Config state attributes
        self.config_state_attrs()

        p.setGravity(0, 0, -10)
        p.stepSimulation(physicsClientId=0)
Exemple #2
0
    def __init__(self, *args):
        super(TwoBlocks, self).__init__(*args)
        connect(use_gui=self.experiment_dict['render'])

        if (self.detailed_gmp):
            self.robot = p.loadURDF(
                DRAKE_IIWA_URDF, useFixedBase=True,
                globalScaling=1.2)  # KUKA_IIWA_URDF | DRAKE_IIWA_URDF
        else:
            self.robot = None

        # Construct camera
        set_default_camera()

        # Set up objects
        self.floor = p.loadURDF('models/short_floor.urdf', useFixedBase=True)
        self.green_block = p.loadURDF("models/box_green.urdf",
                                      useFixedBase=False)
        self.red_block = p.loadURDF("models/box_red.urdf", useFixedBase=False)

        self.objects = [self.green_block, self.red_block]
        self.static_objects = []

        # Only used for some curiosity types
        self.perspectives = [(0, -90)]

        # Set up the state space and action space for this task
        self.break_on_timeout = True
        self.macroaction = MacroAction(
            macroaction_list=[
                PickPlace(objects=self.objects,
                          robot=self.robot,
                          fixed=self.fixed,
                          gmp=self.detailed_gmp),
                # AddLink(objects = self.objects, robot=self.robot, fixed=self.fixed, gmp=self.detailed_gmp),
            ],
            experiment_dict=self.experiment_dict)

        # Config state attributes
        self.config_state_attrs()

        # Start the simulation
        p.setGravity(0, 0, -10)
        p.stepSimulation(physicsClientId=0)
    def __init__(self, *args):
        super(BookShelf, self).__init__(*args)
        connect(use_gui=self.experiment_dict['render'])

        self.arm_size = 1
        if (self.detailed_gmp):
            self.robot = p.loadURDF(
                DRAKE_IIWA_URDF, useFixedBase=True,
                globalScaling=1)  # KUKA_IIWA_URDF | DRAKE_IIWA_URDF
        else:
            self.robot = None

        self.current_constraint_id = None
        self.default_links = [0]
        self.y_offset = 0.5
        self.floor = p.loadURDF('models/short_floor.urdf', useFixedBase=True)
        self.ARM_LEN = 0.8
        set_default_camera()

        self.shelf = p.loadURDF("models/kiva_shelf/bookcase.urdf",
                                globalScaling=3.0,
                                useFixedBase=True)
        set_pose(
            self.shelf,
            Pose(Point(x=-0.2, y=-1.6, z=-0.010),
                 Euler(yaw=0, pitch=0, roll=math.pi / 2)))

        self.book = p.loadURDF("models/book/book.urdf",
                               globalScaling=0.15,
                               useFixedBase=False)
        self.book_pos = [0.06, -1.43, 0.488]
        self.book_rot = [math.pi / 2, 0, 0]
        set_pose(
            self.book,
            Pose(
                Point(x=self.book_pos[0],
                      y=self.book_pos[1],
                      z=self.book_pos[2]),
                Euler(roll=self.book_rot[0],
                      pitch=self.book_rot[1],
                      yaw=self.book_rot[2])))

        self.blue_rod_1 = p.loadURDF("models/blue_rod.urdf",
                                     globalScaling=2.0,
                                     useFixedBase=False)
        set_pose(self.blue_rod_1,
                 Pose(Point(x=0.7, y=0, z=1.2), Euler(yaw=0, pitch=0, roll=0)))

        self.blue_rod_2 = p.loadURDF("models/blue_rod.urdf",
                                     globalScaling=2.0,
                                     useFixedBase=False)
        set_pose(
            self.blue_rod_2,
            Pose(Point(x=-0.7, y=0, z=1.2), Euler(yaw=0, pitch=0, roll=0)))

        self.objects = [self.blue_rod_1, self.blue_rod_2]
        self.static_objects = [self.book]

        self.perspectives = [(0, -90)]
        self.break_on_timeout = False

        self.macroaction = MacroAction(macroaction_list=[
            PickPlace(objects=self.objects,
                      robot=self.robot,
                      fixed=self.fixed,
                      gmp=self.detailed_gmp),
            AddLink(objects=self.objects,
                    robot=self.robot,
                    fixed=self.fixed,
                    gmp=self.detailed_gmp),
        ],
                                       experiment_dict=self.experiment_dict)

        # Config state attributes
        self.config_state_attrs(linking=True)

        p.setGravity(0, 0, -10, physicsClientId=0)

        self.break_on_timeout = True

        self.actor_critic = opt_cuda(
            Policy([self.config_size],
                   self.action_space,
                   base_kwargs={'recurrent': False}))