def get_constraint_ids(): """ getConstraintUniqueId will take a serial index in range 0..getNumConstraints, and reports the constraint unique id. Note that the constraint unique ids may not be contiguous, since you may remove constraints. """ return sorted( [p.getConstraintUniqueId(i) for i in range(p.getNumConstraints())])
def get_constraints(): """ getConstraintUniqueId will take a serial index in range 0..getNumConstraints, and reports the constraint unique id. Note that the constraint unique ids may not be contiguous, since you may remove constraints. """ return [p.getConstraintUniqueId(i, physicsClientId=CLIENT) for i in range(p.getNumConstraints(physicsClientId=CLIENT))]
import pybullet as p import time import math from pbsbtest.utils import res_pkg_path p.connect(p.GUI) p.loadURDF(res_pkg_path("package://pbsbtest/urdf/plane.urdf")) cubeId = p.loadURDF(res_pkg_path("package://pbsbtest/urdf/cube_small.urdf"), 0, 0, 1) p.setGravity(0, 0, -10) p.setRealTimeSimulation(1) cid = p.createConstraint(cubeId, -1, -1, -1, p.JOINT_FIXED, [0, 0, 0], [0, 0, 0], [0, 0, 1]) print cid print p.getConstraintUniqueId(0) prev = [0, 0, 1] a = -math.pi while 1: a = a + 0.01 if (a > math.pi): a = -math.pi time.sleep(.01) p.setGravity(0, 0, -10) pivot = [a, 0, 1] orn = p.getQuaternionFromEuler([a, 0, 0]) p.changeConstraint(cid, pivot, jointChildFrameOrientation=orn, maxForce=50) p.removeConstraint(cid)
import pybullet as p import time import math p.connect(p.GUI) p.loadURDF("plane.urdf") cubeId = p.loadURDF("cube_small.urdf",0,0,1) p.setGravity(0,0,-10) p.setRealTimeSimulation(1) cid = p.createConstraint(cubeId,-1,-1,-1,p.JOINT_FIXED,[0,0,0],[0,0,0],[0,0,1]) print (cid) print (p.getConstraintUniqueId(0)) prev=[0,0,1] a=-math.pi while 1: a=a+0.01 if (a>math.pi): a=-math.pi time.sleep(.01) p.setGravity(0,0,-10) pivot=[a,0,1] orn = p.getQuaternionFromEuler([a,0,0]) p.changeConstraint(cid,pivot,jointChildFrameOrientation=orn, maxForce=50) p.removeConstraint(cid)
import pybullet as p import time import math p.connect(p.GUI) p.loadURDF("plane.urdf") cubeId = p.loadURDF("cube_small.urdf", 0, 0, 1) p.setGravity(0, 0, -10) p.setRealTimeSimulation(1) cid = p.createConstraint(cubeId, -1, -1, -1, p.JOINT_FIXED, [0, 0, 0], [0, 0, 0], [0, 0, 1]) print(cid) print(p.getConstraintUniqueId(0)) prev = [0, 0, 1] a = -math.pi while 1: a = a + 0.01 if (a > math.pi): a = -math.pi time.sleep(.01) p.setGravity(0, 0, -10) pivot = [a, 0, 1] orn = p.getQuaternionFromEuler([a, 0, 0]) p.changeConstraint(cid, pivot, jointChildFrameOrientation=orn, maxForce=50) p.removeConstraint(cid)
import pybullet as p import time import math p.connect(p.GUI) p.loadURDF("plane.urdf") cubeId = p.loadURDF("cube_small.urdf",0,0,1) p.setGravity(0,0,-10) p.setRealTimeSimulation(1) cid = p.createConstraint(cubeId,-1,-1,-1,p.JOINT_FIXED,[0,0,0],[0,0,0],[0,0,1]) print cid print p.getConstraintUniqueId(0) prev=[0,0,1] a=-math.pi while 1: a=a+0.01 if (a>math.pi): a=-math.pi time.sleep(.01) p.setGravity(0,0,-10) pivot=[a,0,1] orn = p.getQuaternionFromEuler([a,0,0]) p.changeConstraint(cid,pivot,jointChildFrameOrientation=orn, maxForce=50) p.removeConstraint(cid)
def getConstraintUniqueId(self, serialIndex): return p.getConstraintUniqueId(self.kukaUid, serialIndex)