Esempio n. 1
0
def readParamsFromSrdf(robot, SRDF_PATH, verbose):
    rmodel = robot.model

    pinocchio.loadRotorParameters(rmodel, SRDF_PATH, verbose)
    rmodel.armature = np.multiply(rmodel.rotorInertia.flat,
                                  np.square(rmodel.rotorGearRatio.flat))
    pinocchio.loadReferenceConfigurations(rmodel, SRDF_PATH, verbose)
    robot.q0.flat[:] = rmodel.referenceConfigurations["half_sitting"].copy()
    return
Esempio n. 2
0
def readParamsFromSrdf(model, SRDF_PATH, verbose=False, has_rotor_parameters=True, referencePose='half_sitting'):
    if has_rotor_parameters:
        pin.loadRotorParameters(model, SRDF_PATH, verbose)
    model.armature = np.multiply(model.rotorInertia.flat, np.square(model.rotorGearRatio.flat))
    pin.loadReferenceConfigurations(model, SRDF_PATH, verbose)
    q0 = pin.neutral(model)
    if referencePose is not None:
        q0 = model.referenceConfigurations[referencePose].copy()
    return q0
def readParamsFromSrdf(robot,
                       SRDF_PATH,
                       verbose,
                       has_rotor_parameters=True,
                       referencePose='half_sitting'):
    rmodel = robot.model

    if has_rotor_parameters:
        pinocchio.loadRotorParameters(rmodel, SRDF_PATH, verbose)
    rmodel.armature = np.multiply(rmodel.rotorInertia.flat,
                                  np.square(rmodel.rotorGearRatio.flat))
    pinocchio.loadReferenceConfigurations(rmodel, SRDF_PATH, verbose)
    if referencePose is not None:
        robot.q0.flat[:] = rmodel.referenceConfigurations[referencePose].copy()
    return
Esempio n. 4
0
def loadTalos(modelPath='/opt/openrobots/share'):
    URDF_FILENAME = "talos_reduced_v2.urdf"
    SRDF_FILENAME = "talos.srdf"
    SRDF_SUBPATH = "/talos_data/srdf/" + SRDF_FILENAME
    URDF_SUBPATH = "/talos_data/urdf/" + URDF_FILENAME
    robot = RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath],
                                       pinocchio.JointModelFreeFlyer())
    # Load SRDF file
    rmodel = robot.model
    pinocchio.getNeutralConfiguration(rmodel, modelPath + SRDF_SUBPATH, False)
    pinocchio.loadRotorParameters(rmodel, modelPath + SRDF_SUBPATH, False)
    rmodel.armature = \
              np.multiply(rmodel.rotorInertia.flat, np.square(rmodel.rotorGearRatio.flat))
    assert ((rmodel.armature[:6] == 0.).all())

    robot.q0.flat[:] = rmodel.neutralConfiguration
    """
    robot.q0.flat[:] =  [0,0,1.0192720229567027,0,0,0,1,0.0,0.0,-0.411354,0.859395,-0.448041,-0.001708,0.0,0.0,-0.411354,0.859395,-0.448041,-0.001708,0,0.006761,0.25847,0.173046,-0.0002,-0.525366,0,0,0.1,0.5,-0.25847,-0.173046,0.0002,-0.525366,0,0,0.1,0.5,0,0]
    """
    return robot
Esempio n. 5
0
def loadTalosLegs(modelPath='/opt/openrobots/share/example-robot-data'):
    from pinocchio import JointModelFreeFlyer, JointModelRX, JointModelRY, JointModelRZ
    robot = loadTalos(modelPath=modelPath)
    SRDF_FILENAME = "talos.srdf"
    SRDF_SUBPATH = "/talos_data/srdf/" + SRDF_FILENAME
    legMaxId = 14

    m1 = robot.model
    m2 = pinocchio.Model()
    for j, M, name, parent, Y in zip(m1.joints, m1.jointPlacements, m1.names,
                                     m1.parents, m1.inertias):
        if j.id < legMaxId:
            jid = m2.addJoint(parent, locals()[j.shortname()](), M, name)
            assert (jid == j.id)
            m2.appendBodyToJoint(jid, Y, pinocchio.SE3.Identity())
    m2.upperPositionLimit = np.matrix([1.] * 19).T
    m2.lowerPositionLimit = np.matrix([-1.] * 19).T
    #q2 = robot.q0[:19]
    for f in m1.frames:
        if f.parent < legMaxId:
            m2.addFrame(f)

    g2 = pinocchio.GeometryModel()
    for g in robot.visual_model.geometryObjects:
        if g.parentJoint < 14:
            g2.addGeometryObject(g)

    robot.model = m2
    robot.data = m2.createData()
    robot.visual_model = g2
    # robot.q0=q2
    robot.visual_data = pinocchio.GeometryData(g2)

    # Load SRDF file
    pinocchio.getNeutralConfiguration(m2, modelPath + SRDF_SUBPATH, False)
    pinocchio.loadRotorParameters(m2, modelPath + SRDF_SUBPATH, False)
    m2.armature = \
        np.multiply(m2.rotorInertia.flat, np.square(m2.rotorGearRatio.flat))
    assert ((m2.armature[:6] == 0.).all())
    robot.q0 = m2.neutralConfiguration.copy()
    return robot