def check_legal(self, x): grasp_ratio, rel_x, rel_y, dangle, cw1, ch1, cw2, ch2 = x print(x) dangle *= np.sign(rel_x) settings[0]['do_gui'] = self.do_gui kitchen = Kitchen2D(**settings[0]) gripper = Gripper(kitchen, (5, 8), 0) cup1 = ks.make_cup(kitchen, (0, 0), 0, cw1, ch1, 0.5) cup2 = ks.make_cup(kitchen, (-15, 0), 0, cw2, ch2, 0.5, user_data='cup2') gripper.set_grasped(cup2, grasp_ratio, (-15, 0), 0) gripper.set_position((rel_x, rel_y), 0) if not kitchen.planning: g2 = gripper.simulate_itself() _, collision = g2.check_path_collision((rel_x, rel_y), 0, (rel_x, rel_y), dangle) if collision: return False self.kitchen = kitchen self.gripper = gripper self.cup1 = cup1 self.cup2 = cup2 return True
def check_legal(self, x): grasp_ratio, rel_x, rel_y, dangle, \ cw1, ch1, cw2, ch2, cw3, ch3, \ pos_x1, pos_x2, pos_x3 = x dangle *= np.sign(rel_x) settings[0]['do_gui'] = self.do_gui kitchen = Kitchen2D(**settings[0]) kitchen.gui_world.colors['water'] = self.water_color gripper = Gripper(kitchen, (5,8), 0) cup1 = ks.make_cup(kitchen, (pos_x1, 0), 0, cw1, ch1, 0.5, user_data=self.base_cup_type) cup2 = ks.make_cup(kitchen, (pos_x2, 0), 0, cw2, ch2, 0.5, user_data='cup2') cup3 = ks.make_cup(kitchen, (pos_x3, 0), 0, cw3, ch3, 0.5, user_data=self.base_cup_type) gripper.set_grasped(cup2, grasp_ratio, (pos_x2, 0), 0) gripper.set_position((rel_x, rel_y), 0) if not kitchen.planning: g2 = gripper.simulate_itself() _, collision = g2.check_path_collision((rel_x, rel_y), 0, (rel_x, rel_y), dangle) if collision: return False self.kitchen = kitchen self.gripper = gripper self.cup1 = cup1 self.cup2 = cup2 self.cup3 = cup3 self.properties = x[4:10] return True