def __init__(self, planner, limb, collider=None): RobotCSpace.__init__(self, planner.robot, collider=None) self.planner = planner self.limb = limb self.robot = planner.robot id_to_index = dict([(self.robot.link(i).getID(),i) for i in range(self.robot.numLinks())]) if limb=='left': self.limb_indices = [id_to_index[i.getID()] for i in planner.left_arm_links] else: self.limb_indices = [id_to_index[i.getID()] for i in planner.right_arm_links] qmin,qmax = self.robot.getJointLimits() self.bound = [(qmin[i]-1e-6,qmax[i]+1e-6) for i in self.limb_indices] self.eps = 1e-1
def feasible(self,q): if not RobotCSpace.feasible(self,q): print "LimbCSpace.feasible: Configuration is out of bounds" return False if not self.planner.check_limb_collision_free(self.limb,q): print "LimbCSpace.feasible: Configuration is in collision" return False return True