예제 #1
0
    def handlePositionConstraint(self, c, fields):

        bodyId = self.bodyNameToId[c.linkName]
        pointInBodyFrame = np.asarray(c.pointInLink, dtype=float)
        referenceFrame = transformUtils.getNumpyFromTransform(c.referenceFrame)
        lowerBound = np.asarray(c.positionTarget, dtype=float) + c.lowerBound
        upperBound = np.asarray(c.positionTarget, dtype=float) + c.upperBound
        tspan = np.asarray(c.tspan, dtype=float)

        pc = pydrakeik.WorldPositionInFrameConstraint(self.rigidBodyTree, bodyId, pointInBodyFrame, referenceFrame, lowerBound, upperBound, tspan)

        return pc
예제 #2
0
    def handlePositionConstraint(self, c, fields):

        bodyId = self.bodyNameToId[c.linkName]
        pointInBodyFrame = np.asarray(c.pointInLink, dtype=float)
        referenceFrame = transformUtils.getNumpyFromTransform(c.referenceFrame)
        lowerBound = np.asarray(c.positionTarget, dtype=float) + c.lowerBound
        upperBound = np.asarray(c.positionTarget, dtype=float) + c.upperBound
        tspan = np.asarray(c.tspan, dtype=float)

        pc = pydrakeik.WorldPositionInFrameConstraint(self.rigidBodyTree, bodyId, pointInBodyFrame, referenceFrame, lowerBound, upperBound, tspan)

        return pc
예제 #3
0
def testEulerToFrame():
    '''
    Test some euler converions
    '''
    rpy = transformations.euler_from_quaternion(transformations.random_quaternion())

    frame = transformUtils.frameFromPositionAndRPY([0,0,0], np.degrees(rpy))
    mat = transformUtils.getNumpyFromTransform(frame)

    mat2 = transformations.euler_matrix(rpy[0], rpy[1], rpy[2])

    print mat
    print mat2
    assert np.allclose(mat, mat2)
예제 #4
0
    def handleQuatConstraint(self, c, fields):

        bodyId = self.bodyNameToId[c.linkName]
        tolerance = np.radians(c.angleToleranceInDegrees)
        tspan = np.asarray(c.tspan, dtype=float)

        if isinstance(c.quaternion, vtk.vtkTransform):
            quat = transformUtils.getNumpyFromTransform(c.quaternion)
        else:
            quat = np.asarray(c.quaternion, dtype=float)
        if quat.shape == (4,4):
            quat = transformUtils.transformations.quaternion_from_matrix(quat)

        qc = pydrakeik.WorldQuatConstraint(self.rigidBodyTree, bodyId, quat, tolerance, tspan)
        return qc
예제 #5
0
def testEuler():
    '''
    Test some euler conversions
    '''
    quat = transformations.random_quaternion()
    pos = np.random.rand(3)
    frame = transformUtils.transformFromPose(pos, quat)
    mat = transformUtils.getNumpyFromTransform(frame)

    rpy = transformUtils.rollPitchYawFromTransform(frame)
    rpy2 = transformations.euler_from_matrix(mat)

    print rpy
    print rpy2
    assert np.allclose(rpy, rpy2)
예제 #6
0
def testEulerToFrame():
    '''
    Test some euler converions
    '''
    rpy = transformations.euler_from_quaternion(
        transformations.random_quaternion())

    frame = transformUtils.frameFromPositionAndRPY([0, 0, 0], np.degrees(rpy))
    mat = transformUtils.getNumpyFromTransform(frame)

    mat2 = transformations.euler_matrix(rpy[0], rpy[1], rpy[2])

    print(mat)
    print(mat2)
    assert np.allclose(mat, mat2)
예제 #7
0
def testEuler():
    '''
    Test some euler conversions
    '''
    quat = transformations.random_quaternion()
    pos = np.random.rand(3)
    frame = transformUtils.transformFromPose(pos, quat)
    mat = transformUtils.getNumpyFromTransform(frame)

    rpy = transformUtils.rollPitchYawFromTransform(frame)
    rpy2 = transformations.euler_from_matrix(mat)

    print(rpy)
    print(rpy2)
    assert np.allclose(rpy, rpy2)
예제 #8
0
    def handleQuatConstraint(self, c, fields):

        bodyId = self.bodyNameToId[c.linkName]
        tolerance = np.radians(c.angleToleranceInDegrees)
        tspan = np.asarray(c.tspan, dtype=float)

        if isinstance(c.quaternion, vtk.vtkTransform):
            quat = transformUtils.getNumpyFromTransform(c.quaternion)
        else:
            quat = np.asarray(c.quaternion, dtype=float)
        if quat.shape == (4,4):
            quat = transformUtils.transformations.quaternion_from_matrix(quat)

        qc = pydrakeik.WorldQuatConstraint(self.rigidBodyTree, bodyId, quat, tolerance, tspan)
        return qc
예제 #9
0
def testTransform():
    '''
    test transformFromPose --> getAxesFromTransform is same as quat --> matrix
    '''

    quat = transformations.random_quaternion()
    pos = np.random.rand(3)

    frame = transformUtils.transformFromPose(pos, quat)
    axes = transformUtils.getAxesFromTransform(frame)
    mat = transformUtils.getNumpyFromTransform(frame)

    assert np.allclose(mat[:3,:3], np.array(axes).transpose())

    mat2 = transformations.quaternion_matrix(quat)
    mat2[:3,3] = pos

    print mat
    print mat2
    assert np.allclose(mat, mat2)
예제 #10
0
def testTransform():
    '''
    test transformFromPose --> getAxesFromTransform is same as quat --> matrix
    '''

    quat = transformations.random_quaternion()
    pos = np.random.rand(3)

    frame = transformUtils.transformFromPose(pos, quat)
    axes = transformUtils.getAxesFromTransform(frame)
    mat = transformUtils.getNumpyFromTransform(frame)

    assert np.allclose(mat[:3, :3], np.array(axes).transpose())

    mat2 = transformations.quaternion_matrix(quat)
    mat2[:3, 3] = pos

    print(mat)
    print(mat2)
    assert np.allclose(mat, mat2)