Пример #1
0
def main(args):

    record = False
    if rospy.get_param("gummi/recording") == 1:
        record = True
        fileNameBase = rospy.get_param("gummi/name_base_recording")
        print("WARNING: Will record in files with base: " + fileNameBase + ".")

    rospy.init_node("GummiArm", anonymous=True)
    r = rospy.Rate(100)

    gummi = Gummi()

    gummi.setMaxLoads(10, 10, 10, 10, 10)

    print("WARNING: Moving joints sequentially to equilibrium positions.")
    gummi.doGradualStartup()

    print("WARNING: Moving to resting pose, hold arm!")
    rospy.sleep(3)

    for i in range(0, 400):
        gummi.goRestingPose()
        r.sleep()

    print("GummiArm is live!")

    if record:
        print("Recording!")
        gummi.prepareRecording(fileNameBase)
        gummi.startRecording()

    while not rospy.is_shutdown():
        gummi.publishJointState()
        r.sleep()
Пример #2
0
def main(args):
    
    rospy.init_node('GummiIdentify', anonymous=True)
    r = rospy.Rate(60)  

    gummi = Gummi()

    gummi.setMaxLoads(100, 100, 100, 100, 100)
    gummi.setStiffness(0.5, 0.5, 0.5, 0.5, 0.5)

    print('WARNING: Moving joints sequentially to equilibrium positions.')
    gummi.doGradualStartup()
    
    print('WARNING: Moving to resting pose, hold arm!')
    rospy.sleep(3)

    for i in range(0, 400):
        gummi.goRestingPose()
        r.sleep()

    print("GummiArm is live!")

    velocities = [0, 0, 0, 0, 0, 0, 0]
    start = rospy.Time.now()
    ask = True
    while not rospy.is_shutdown():

        if ask:
            indexes = [int(x) for x in raw_input("Enter index of joint to identify (1-7):  ").split()]
            velocities = [0, 0, 0, 0, 0, 0, 0]
            index = indexes[0] - 1
            start = rospy.Time.now()
            ask = False

        angles = gummi.getJointAngles()
        angles = radToDeg(angles)

        duration = rospy.Time.now() - start
        secondsSinceStart = duration.to_sec()
            
        if secondsSinceStart > 20:
            ask = True
        else:
            if secondsSinceStart > 15:
                print("Done, moving to resting pose.")
                gummi.goRestingPose()
            else:
                vel = 0.0
                if secondsSinceStart > 5:
                    vel = -0.01
                else:
                    vel = 0.01

                print('At angle: ' + str(angles[index]) + ' degrees, sending velocity: ' + str(vel) + '.')
                velocities[index] = vel
                gummi.setVelocity(velocities)
                gummi.doUpdate()

        r.sleep()