nao机器人国际比赛程序 python编写

踢球程序

import datetime
import sys
import time
import math
import threading
from naoqi import ALProxy
import vision_definitions

fileHandle = open('KickBallRecording1.txt','a')
class ObstacleRun(threading.Thread):
    def __init__ (self, IP):
        threading.Thread.__init__(self)
        self.kickProxy = ALProxy("WitMotion", IP, 9559)
        self.memProxy = ALProxy("ALMemory",IP,9559)
        self.motionProxy = ALProxy("ALMotion",IP,9559)
        self.videoProxy = ALProxy("ALVideoDevice",IP,9559)
        self.postureProxy = ALProxy("ALRobotPosture",IP,9559)
        self.tts = ALProxy("ALTextToSpeech", IP, 9559)
        self.cx=-1
        self.cy=-1
        self.leftcx=-1
        self.rightcy=-1
        self.PI=3.141592654
        self.isFrontTouched=0
        self.isMiddleTouched=0
        self.isRearTouched=0
        self.x=-1
        self.MaxArea=0
        self.MaxFlagArea=0
        self.direction = True
        self.Maxcx=205
        self.Mincx=185
        self.center_x = 195
        self.Mincy=205
        self.Maxcy=220
        self.center_y = 210
        self.turn = True
        self.localx = 0.0
        self.count = 0
        self.timeBegin = ''
        self.timeEnd = ''
        self.record = ''
        self.turnCoun = 0
        global BALL
        global OUT

    def KickBall(self):
        self.motionProxy.stopMove()
        time.sleep(0.2)
        self.postureProxy.goToPosture("StandInit",0.5)
        self.kickProxy.KickBallWithAngle(3.65)
        self.timeEnd = datetime.datetime.now()
        print "Game Over KickBall!"
        print (self.timeEnd - self.timeBegin).seconds
        self.record = self.record + str(self.timeEnd)+"\nGame Over KickBall!\nUsing time == "+str((self.timeEnd - self.timeBegin).seconds)+" seconds\n\n\n\n"
        fileHandle.write(self.record)
        fileHandle.close()
        OUT.clear()
    def run(self):
        
        self.motionProxy.setStiffnesses ("Body",1)
        self.postureProxy.goToPosture("StandInit",0.5)
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.15, 0.3)
        time.sleep(0.3)
        while True:
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            self.isFrontTouched  = self.memProxy.getData("FrontTactilTouched")
            self.isRearTouched  = self.memProxy.getData("RearTactilTouched")
            if self.cx == -1:
                self.tts.say("I can not find the ball")
            elif self.cx < 60 or self.cx > 260:
                self.turn = False
            	
            if(self.isFrontTouched>0):          
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.15, 0.3)
                break
            if(self.isRearTouched>0):
                self.direction = False
                break
        self.timeBegin = datetime.datetime.now()
        self.record = str(self.timeBegin) + '\nfirst x == ' + str(self.cx) + '\nfirst y == ' + str(self.cy)+'\n'
        while True:
            self.cx = self.memProxy.getData("FindObstacle/cx")
            if self.cx == -1:
                self.tts.say("I can not find the ball")
                self.record = self.record + "\nI can not find the ball\n"
            else:
            
					
                if self.cx < 60:
                    if self.cx < 35:
                        self.localx = 1.0
                    else:
                        self.localx = 0.0
                    self.tts.say("turn left")
                    self.record = self.record + "\nturn left\n"
                    self.motionProxy.setWalkTargetVelocity(0.7,0.3,0.3,0.6)
                    time.sleep(3.5+self.localx)
                    self.motionProxy.setWalkTargetVelocity(0.7,0.3,-0.3,0.6)
                    time.sleep(2.7+self.localx/2.0) 
                    self.turn = False
                elif self.cx > 260:
                    if self.cx > 285:
                        self.localx = 1.0
                    else:
                        self.localx = 0.0
                    self.tts.say("turn right")
                    self.record = self.record + "\nturn right\n"
                    self.motionProxy.setWalkTargetVelocity(0.7,-0.3,-0.3,0.6)
                    time.sleep(3.5+self.localx)
                    self.motionProxy.setWalkTargetVelocity(0.7,-0.3,0.3,0.6)
                    time.sleep(2.7+self.localx/2.0) 
                    self.turn = False
                self.x = self.cx
                break
        time.sleep(0.2)
        print 'walk to the ball'
        self.record = self.record + '\nwalk to the ball\n'
        self.cx = self.memProxy.getData("FindObstacle/cx")
        self.cy = self.memProxy.getData("FindObstacle/cy")
        while(self.cy < 180):
            if self.cy > 90:
                self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
            if(self.cy == -1):
                self.motionProxy.setWalkTargetVelocity(0.1,0,0,0.5)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,0,1.0)
            else:
                self.mytheta = math.atan(1.0 * (160 - self.cx)/160*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta,0.7)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,self.mytheta,1.0)
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if self.count == 0:
                print 'cx == ', self.cx, '   cy == ', self.cy
                self.record = self.record + 'cx == ' + str(self.cx) + '   cy == ' + str(self.cy)+'\n'
            else:
                self.count = self.count + 1
                if self.count == 80:
                    self.count = 0
        self.count = 0
        self.motionProxy.setWalkTargetVelocity(0.1,0,0.0,0.6)
        
        if self.direction:
            self.leftKick()
        else:
            self.rightKick()
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.38, 0.3)
        BALL.set()
        self.approachBall()
        self.KickBall()
    def leftKick(self):
        BALL.clear()
        print "LeftKick"
        self.record = self.record + 'Left Kick\n'
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.20, 0.3)
        if self.turn:
            self.motionProxy.setWalkTargetVelocity(0.1,-0.3, 0.2,0.4)
            time.sleep(self.x/60*1.0)
            print "Turn Left default"
            self.record = self.record + "Turn Left default\n"
        else:
            self.rightcx = self.memProxy.getData("FindObstacle/rightcx")
            while( self.rightcx > 100 or self.rightcx == -1):
                if self.rightcx == -1:
                    self.motionProxy.setWalkTargetVelocity(0.1,0.1, -0.01,0.6)
                else:
                    self.motionProxy.setWalkTargetVelocity(0.1,0.2, -0.1,0.6)
                self.rightcx = self.memProxy.getData("FindObstacle/rightcx")
                print "Turn :: rightcx == ",self.rightcx
                self.record = self.record + 'Turn :: rightcx == ' + str(self.rightcx)+'\n'
        #self.cx = self.memProxy.getData("FindObstacle/cx")
        self.rightcx = self.memProxy.getData("FindObstacle/rightcx")
        while(self.rightcx < 70 or self.rightcx >140) and self.turn:
            if self.rightcx == -1:
                self.motionProxy.setWalkTargetVelocity(0.0,-0.1, 0.15,0.6)
                self.turnCoun = self.turnCoun + 1
                if self.turnCoun == 20:
                        break
            elif self.rightcx <70:
                self.motionProxy.setWalkTargetVelocity(-0.1,-0.25, 0.15,0.6)
            else:
                self.motionProxy.setWalkTargetVelocity(-0.1,-0.25, -0.15,0.6)
            #self.cx = self.memProxy.getData("FindObstacle/cx")
            self.rightcx = self.memProxy.getData("FindObstacle/rightcx")
            
            if self.count == 0:
                print 'Turn :: rightcx == ', self.rightcx, '   cy == ', self.cy 
                self.record = self.record + 'Turn :: rightcx == ' + str(self.rightcx) + '\n'
            else:
                self.count = self.count + 1
                if self.count == 60:
                    self.count = 0
        self.turnCoun = 0
        self.record = self.record + 'Turn :: rightcx == ' + str(self.rightcx) + '\n'
        self.motionProxy.setWalkTargetVelocity(0.01,0.0, 0.02,0.5)
        
    def rightKick(self):
        BALL.clear()
        print "RightKick"
        self.record = self.record + 'Right Kick'
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.20, 0.3)
        if self.turn:      
            self.motionProxy.setWalkTargetVelocity(0.1,0.3, -0.2,0.6)
            time.sleep((320-self.x)/60 * 1.0)
            print "Turn Right default"
            self.record = self.record + "Turn Right default\n"
        else:
            self.leftcx = self.memProxy.getData("FindObstacle/leftcx")
            while( self.leftcx < 200):
                if self.leftcx == -1:
                    self.motionProxy.setWalkTargetVelocity(-0.1,0.1, -0.15,0.6)
                else:
                    self.motionProxy.setWalkTargetVelocity(-0.1,0.2, 0.15,0.6)
                self.leftcx = self.memProxy.getData("FindObstacle/leftcx")
                print "Turn :: leftcx == ",self.leftcx
                self.record = self.record + 'Turn :: leftcx == ' + str(self.leftcx) + '\n'
            
        #self.cx = self.memProxy.getData("FindObstacle/cx")
       	self.leftcx = self.memProxy.getData("FindObstacle/leftcx")
        print 'Turn :: leftcx == ', self.leftcx
        while(self.leftcx < 180  or self.leftcx > 250) and self.turn:
            if self.leftcx == -1:
                self.motionProxy.setWalkTargetVelocity(0.1,0.0,-0.15,0.6)
                self.turnCoun = self.turnCoun + 1
                if self.turnCoun == 20:
                        break
            elif self.leftcx < 180:
                self.motionProxy.setWalkTargetVelocity(-0.1,0.1, 0.15,0.6)
            elif self.leftcx > 250:
                self.motionProxy.setWalkTargetVelocity(0,0,-0.15,0.6)
            #self.cx = self.memProxy.getData("FindObstacle/cx")
            self.leftcx = self.memProxy.getData("FindObstacle/leftcx")
            
            
            if self.count == 0:
                print 'Turn :: leftcx == ', self.leftcx, '   cy == ', self.cy
                self.record = self.record + 'Turn :: leftcx == ' + str(self.leftcx) + '\n'
            else:
                self.count = self.count + 1
                if self.count == 60:
                    self.count = 0
        self.turnCoun = 0
        self.record = self.record + 'Turn :: leftcx == ' + str(self.leftcx) + '\n'
        self.motionProxy.setWalkTargetVelocity(0.01,0.0, 0.0,0.3)
    def approachBall(self):
    	print "approachball"
        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if( self.cx == self.center_x):
                self.y = 0
            elif( self.cy == self.center_y ):
                self.x = 0
            elif( self.cx == -1 or self.cy == -1):
                self.x = 0
                self.y = -0.1
            else:
                self.x = (self.center_y - self.cy)/abs(self.center_y - self.cy)*(0.35 - abs( self.cy/800.0))
                self.y = (self.center_x - self.cx)/abs(self.center_x - self.cx)*(0.40-( self.cx/1000.0))
            if self.count == 0:
                print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
                self.record = self.record + " ( " + str(self.cx) + " " + str(self.cy) + " ) \n"
            else:
                self.count = self.count + 1
                if self.count == 70:
                    self.count = 0
            
            self.motionProxy.setWalkTargetVelocity(self.x, self.y , 0.03,0.6)
            
    def __del__(self):
        self.motionProxy.stopMove()
class naoVision(threading.Thread):
    def __init__ (self, IP):
        threading.Thread.__init__(self)
        self.visionProxy = ALProxy("WitVision", IP, 9559)
        self.videoProxy = ALProxy("ALVideoDevice",IP,9559)
        global BALL
        global OUT
    def BallCameraConfig(self):
        self.videoProxy.setParam(18,1)#Bottom Camera
        self.videoProxy.setParam(11,0)#AutoExposure
        self.videoProxy.setParam(17,41)#Exposure
        self.videoProxy.setParam(0,119)#Brightness
    def PoleCameraConfig(self):
    	self.videoProxy.setParam(17,57)#Exposure
    def run(self):
        try:
            self.visionProxy.registerToVideoDevice(1,13)
        except Exception, e:
            #print e
            pass
        
        while  OUT.isSet():
            if BALL.isSet():
            	self.BallCameraConfig()
                #print "Find Ball"
                self.visionProxy.FindObstacle(BUMax, BUMin, BVMax,  BVMin,  BIMax,  BIMin )
                time.sleep(0.2)
            else:
            	self.PoleCameraConfig()
                #print "Find Pole"
                self.visionProxy.FindObstacle(PUMax, PUMin, PVMax,  PVMin,  PIMax,  PIMin )
                time.sleep(0.2)
    def __del__(self):
        self.visionProxy.unRegisterFromVideoDevice()

if __name__ == '__main__':
    if len(sys.argv) <= 1:
        IP = "127.0.0.1"
    else:
        IP = sys.argv[1]
 ##########################   
    BUMax= 236
    BUMin = 154
    BVMax =133
    BVMin = 73
    BIMax = 255
    BIMin = 170
 ##########################   
    PUMax= 135
    PUMin = 122
    PVMax = 76
    PVMin = 42
    PIMax = 255
    PIMin = 184
 ##########################   
 
    #BALL = threading.Event()
    #BALL.set()
    #OUT = threading.Event()
    #OUT.set()
    #kick = ObstacleRun(IP)
    #vision = naoVision(IP)
    #kick.isDaemon()
    #vision.isDaemon()
    #kick .start()
    #vision.start()
    
    #vision.join()

    #kick.join()

    print "begin!"
    BALL = threading.Event()
    print "begin1!"
    BALL.set()
    OUT = threading.Event()
    print "begin2!"
    OUT.set()
    kick = ObstacleRun(IP)
    print "begin3!"
    vision = naoVision(IP)
    print "begin4!"
    kick.isDaemon()
    print "begin5!"
    vision.isDaemon()
    print "begin6!"
    kick .start()
    print "begin7!"
    vision.start()
    print "begin8!"
    vision.join()

    kick.join()
    run()


点球程序2

from datetime import *
import threading
import sys
import time
import math
import pickUp
import hand
from naoqi import ALProxy
import vision_definitions

class CarryTray():
    def __init__ (self,IP,PORT):
        self.kickProxy = ALProxy("WitMotion", IP, PORT)
        self.memProxy = ALProxy("ALMemory",IP,PORT)
        self.motionProxy = ALProxy("ALMotion",IP,PORT)
        self.postureProxy = ALProxy("ALRobotPosture",IP,PORT)
        self.videoProxy = ALProxy("ALVideoDevice",IP,PORT)
        self.tts = ALProxy("ALTextToSpeech", IP, PORT)
        self.isFrontTouched=0
        self.isMiddleTouched=0
        self.isRearTouched=0
        self.PI = 3.1415926
        self.Maxcx=194
        self.Mincx=174
        self.center_x = 184
        self.Mincy=165
        self.Maxcy=175
        self.center_y = 170
        self.x = 0
        self.y = 0
        self.theta1 = 0.0
        self.theta2 = 0.0
        self.memProxy.insertData("FindObstacle/UMax",114)
        self.memProxy.insertData("FindObstacle/UMin",102)
        self.memProxy.insertData("FindObstacle/VMax",148)
        self.memProxy.insertData("FindObstacle/VMin",135)
        self.memProxy.insertData("FindObstacle/IMax",255)
        self.memProxy.insertData("FindObstacle/IMin",141)
        self.cx = -1
        self.cy = -1
        self.area = 0
        self.signal = True
        self.count = 0
    def SwitchTheta(self,nao):
        if nao == 1:
            self.theta = -0.02
            self.theta2 = -0.01
        if nao == 2:
            self.theta = self.theta_nao2_1
            self.theta2 = self.theta_nao2_2
        if nao == 3:
            self.theta = self.theta_nao3_1
            self.theta2 = self.theta_nao3_2
        if nao == 4:
            self.theta = -0.03
            self.theta2 = -0.02
    def Camera(self):
		self.videoProxy.setParam(18,1)#Bottom Camera
		self.videoProxy.setParam(11,1)#AutoExposure
		#self.videoProxy.setParam(0,119)#Brightness
		#self.videoProxy.setParam(17,100)
    def approachRubbish(self):
        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if( self.cx == self.center_x):
                self.y = 0
            elif( self.cy == self.center_y ):
                self.x = 0
            elif( self.cx == -1 or self.cy == -1):
                self.x = 0
                self.y = 0
                if self.count == 0 or self.count%100 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
            else:
                self.x = (self.center_y - self.cy)/abs(self.center_y - self.cy)*(0.3 - abs( self.cy/800.0))
                self.y = (self.center_x - self.cx)/abs(self.center_x - self.cx)*(0.4-( self.cx/1000.0))
            print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
            self.motionProxy.setWalkTargetVelocity(self.x, self.y ,self.theta2,0.35)
            
            
####################################################################################################
            self.isRearTouched  = self.memProxy.getData("RearTactilTouched")
            self.isMiddleTouched  = self.memProxy.getData("MiddleTactilTouched")
            if(self.isRearTouched>0):
                self.motionProxy.stopMove()
                break
            if(self.isMiddleTouched>0):
                self.motionProxy.stopMove()
                break
####################################################################################################
    def approachRubbish_1(self):
        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if self.cx == -1 and self.cy == -1:
                self.tts.say("I can not find the ball")
            elif( self.cx < self.Mincx):
                self.motionProxy.setWalkTargetVelocity(0, 0.2 ,self.theta2, 0.35)
            elif( self.cx > self.Maxcx ):
                self.motionProxy.setWalkTargetVelocity(0, -0.2 ,self.theta2, 0.35)
            else:
                if( self.cy < self.Mincy):
                    self.motionProxy.setWalkTargetVelocity(0.2 ,0, self.theta2, 0.35)
                elif( self.cy > self.Maxcy ):
                    self.motionProxy.setWalkTargetVelocity(-0.2 ,0, self.theta2, 0.35)
            time.sleep(0.4)
            print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
            
####################################################################################################
            self.isRearTouched  = self.memProxy.getData("RearTactilTouched")
            self.isMiddleTouched  = self.memProxy.getData("MiddleTactilTouched")
            if(self.isRearTouched>0):
                self.motionProxy.stopMove()
                break
            if(self.isMiddleTouched>0):
                self.motionProxy.stopMove()
                break
####################################################################################################

    def run(self):
        self.SwitchTheta(nao)
        self.Camera()
        while True:
            self.isFrontTouched  = self.memProxy.getData("FrontTactilTouched")
            if(self.isFrontTouched>0):
                self.motionProxy.setStiffnesses ("Body",1)
                self.postureProxy.goToPosture("StandInit",0.5)
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.15, 0.3)
                break
        time.sleep(0.2)

        print 'walk'
        self.cx = self.memProxy.getData("FindObstacle/cx")
        self.cy = self.memProxy.getData("FindObstacle/cy")
        self.area = self.memProxy.getData("FindArea/MaxArea")
        while(self.area > 2000 or self.area == 0):
            if(self.cy == -1):
                self.motionProxy.setWalkTargetVelocity(0.0,0,0,0.5)
                if self.count == 0 or self.count%30 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
                #self.motionProxy.setWalkTargetVelocity(1.0,0,0,1.0)
            else:
                self.mytheta = math.atan(1.0 * (160 - self.cx)/160*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta+self.theta1,0.7)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,self.mytheta,1.0)
            if self.cy > 140 and self.signal:
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
                self.signal = False
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            self.area = self.memProxy.getData("FindArea/MaxArea")
        while(self.area > 1000 or self.area == 0):
            if(self.area == -1):
                self.motionProxy.setWalkTargetVelocity(0.0,0,0,0.5)
                if self.count == 0 or self.count%30 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
                #self.motionProxy.setWalkTargetVelocity(1.0,0,0,1.0)
            else:
                self.mytheta = math.atan(1.0 * (160 - self.cx)/160*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta+self.theta1,0.7)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,self.mytheta,1.0)
            if self.cy > 140 and self.signal:
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
                self.signal = False
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            self.area = self.memProxy.getData("FindArea/MaxArea")
        self.count = 0
        self.signal = True
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.38, 0.3)
        self.motionProxy.setWalkTargetVelocity(0.3,0,self.theta1,0.6)
        time.sleep(1.0)
        
        self.approachRubbish()
        self.approachRubbish_1()
        self.motionProxy.stopMove()

        print "find the rubbish"
        self.count = 0
        #self.motionProxy.setWalkTargetVelocity(0.0, 0,0,0)
        self.tts.say("find the tray")
        time.sleep(0.5)

        self.motionProxy.setWalkArmsEnabled(False,False)


        self.memProxy.insertData("FindObstacle/UMax",158)
        self.memProxy.insertData("FindObstacle/UMin",134)
        self.memProxy.insertData("FindObstacle/VMax",110)
        self.memProxy.insertData("FindObstacle/VMin",64)
        self.memProxy.insertData("FindObstacle/IMax",230)
        self.memProxy.insertData("FindObstacle/IMin",114)
        #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.15, 0.3)
        self.motionProxy.setWalkTargetVelocity(-0.7,0,-0.01,0.7)
        time.sleep(4.0)
        self.motionProxy.setWalkTargetVelocity(-0.1,0,-0.5,0.5)
        time.sleep(3.0)
        self.cx = self.memProxy.getData("FindObstacle/cx")
        self.cy = self.memProxy.getData("FindObstacle/cy")
        self.area = self.memProxy.getData("FindArea/MaxArea")
        while(self.area > 2000 or self.area == 0):
            if(self.cy == -1):
                self.motionProxy.setWalkTargetVelocity(0.0,0,0,0.5)
                if self.count == 0 or self.count%30 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
                #self.motionProxy.setWalkTargetVelocity(1.0,0,0,1.0)
            else:
                self.mytheta = math.atan(1.0 * (160 - self.cx)/160*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta+self.theta1,0.7)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,self.mytheta,1.0)
            if self.cy > 140 and self.signal:
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
                self.signal = False
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            self.area = self.memProxy.getData("FindArea/MaxArea")
        while(self.area > 1000 or self.area == 0):
            if(self.area == -1):
                self.motionProxy.setWalkTargetVelocity(0.0,0,0,0.5)
                if self.count == 0 or self.count%30 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
                #self.motionProxy.setWalkTargetVelocity(1.0,0,0,1.0)
            else:
                self.mytheta = math.atan(1.0 * (160 - self.cx)/160*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta+self.theta1,0.7)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,self.mytheta,1.0)
            if self.cy > 140 and self.signal:
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
                self.signal = False
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            self.area = self.memProxy.getData("FindArea/MaxArea")
        
        self.motionProxy.setWalkTargetVelocity(-0.7,0,-0.01,0.7)
        time.sleep(3.0)
        self.postureProxy.goToPosture("StandInit",0.5)
        

    def __del__(self):
        self.tts.say("Game over")
        self.motionProxy.stopMove()

if __name__ == "__main__":

    PORT = 9559
    if(len(sys.argv)<2):
        IP = '192.168.1.182'
        nao = 4
    elif(len(sys.argv)<3):
        IP = sys.argv[1]
        nao = 1
    else:
        IP = sys.argv[1]
        nao = sys.argv[2]
        
        
    robot = CarryTray(IP,PORT)
    robot.run()
    



上台阶程序

# Choregraphe bezier export in Python.
from naoqi import ALProxy
namesfirst = list()
timesfirst = list()
keysfirst = list()

namesfirst.append("HeadPitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.03217, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.03217, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.03217, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.03217, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.05365, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.04751, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04751, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ 0.03677, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04291, [ 3, -0.24444, -0.00427], [ 3, 0.31111, 0.00544]], [ 0.06592, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.04751, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.05365, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.04751, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("HeadYaw")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.00925, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00303, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00303, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00303, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.00771, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.00618, [ 3, -0.20000, -0.00115], [ 3, 0.24444, 0.00141]], [ -0.00004, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ -0.00618, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.00311, [ 3, -0.24444, -0.00225], [ 3, 0.31111, 0.00286]], [ 0.00916, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.00158, [ 3, -0.31111, 0.00165], [ 3, 0.28889, -0.00153]], [ -0.00311, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00149, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LAnklePitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.35133, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18944, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.18944, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.18944, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18944, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.18944, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18944, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ -1.18944, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18429, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18889, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18889, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.90357, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.10299, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LAnkleRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00004, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.03226, [ 3, -0.31111, -0.01349], [ 3, 0.26667, 0.01156]], [ 0.07521, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.07521, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.07521, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.01683, [ 3, -0.20000, 0.01381], [ 3, 0.24444, -0.01687]], [ -0.03371, [ 3, -0.24444, 0.00943], [ 3, 0.44444, -0.01715]], [ -0.09660, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.02604, [ 3, -0.24444, -0.00964], [ 3, 0.31111, 0.01227]], [ -0.01376, [ 3, -0.31111, -0.01074], [ 3, 0.31111, 0.01074]], [ 0.03839, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.02297, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.10742, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LElbowRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -1.04001, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.03694, [ 3, -0.31111, -0.00138], [ 3, 0.26667, 0.00118]], [ -1.03234, [ 3, -0.26667, -0.00167], [ 3, 0.22222, 0.00139]], [ -1.02774, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -1.02620, [ 3, -0.22222, -0.00077], [ 3, 0.22222, 0.00077]], [ -1.02314, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.02314, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.01700, [ 3, -0.24444, -0.00169], [ 3, 0.20000, 0.00138]], [ -1.01393, [ 3, -0.20000, -0.00115], [ 3, 0.24444, 0.00141]], [ -1.00933, [ 3, -0.24444, -0.00109], [ 3, 0.44444, 0.00198]], [ -1.00473, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.00626, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.99246, [ 3, -0.31111, -0.00281], [ 3, 0.31111, 0.00281]], [ -0.98939, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.99399, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.98939, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LElbowYaw")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -1.37757, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.37757, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.38985, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.38524, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -1.38371, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.40365, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.40365, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.39138, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.39445, [ 3, -0.20000, 0.00138], [ 3, 0.24444, -0.00169]], [ -1.40058, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ -1.39291, [ 3, -0.44444, -0.00231], [ 3, 0.24444, 0.00127]], [ -1.38985, [ 3, -0.24444, -0.00247], [ 3, 0.31111, 0.00315]], [ -1.37604, [ 3, -0.31111, -0.00486], [ 3, 0.31111, 0.00486]], [ -1.36070, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.37757, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.36377, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LHand")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00084, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00117, [ 3, -0.31111, -0.00002], [ 3, 0.26667, 0.00002]], [ 0.00119, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00118, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00118, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00120, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00120, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00118, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00118, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00119, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ 0.00114, [ 3, -0.44444, 0.00001], [ 3, 0.24444, -0.00001]], [ 0.00114, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00114, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00114, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.00114, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00114, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LHipPitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.43561, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.93263, [ 3, -0.31111, 0.00537], [ 3, 0.26667, -0.00460]], [ -0.93723, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93570, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93570, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93723, [ 3, -0.22222, 0.00057], [ 3, 0.17778, -0.00045]], [ -0.93877, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.93416, [ 3, -0.24444, -0.00460], [ 3, 0.20000, 0.00376]], [ -0.78537, [ 3, -0.20000, -0.14880], [ 3, 0.24444, 0.18186]], [ 0.19026, [ 3, -0.24444, -0.15014], [ 3, 0.44444, 0.27298]], [ 0.48398, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.32065, [ 3, -0.24444, 0.10968], [ 3, 0.31111, -0.13959]], [ -0.26381, [ 3, -0.31111, 0.22090], [ 3, 0.31111, -0.22090]], [ -1.00473, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.95871, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.09370, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LHipRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00004, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.03064, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.44183, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.44183, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.44183, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.29610, [ 3, -0.20000, 0.02830], [ 3, 0.24444, -0.03459]], [ 0.25315, [ 3, -0.24444, 0.04295], [ 3, 0.44444, -0.07810]], [ -0.30062, [ 3, -0.44444, 0.01394], [ 3, 0.24444, -0.00767]], [ -0.30829, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02459, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.37886, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.31903, [ 3, -0.28889, -0.03815], [ 3, 0.22222, 0.02935]], [ -0.17637, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LHipYawPitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00004, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00311, [ 3, -0.31111, -0.00193], [ 3, 0.26667, 0.00165]], [ 0.01078, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00925, [ 3, -0.17778, 0.00043], [ 3, 0.24444, -0.00059]], [ 0.00771, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00925, [ 3, -0.20000, -0.00153], [ 3, 0.24444, 0.00187]], [ 0.02152, [ 3, -0.24444, -0.00290], [ 3, 0.44444, 0.00528]], [ 0.03379, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.03226, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.03379, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02612, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.03379, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.02765, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LKneePitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.69639, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 2.11255, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 2.11255, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.92360, [ 3, -0.20000, 0.14132], [ 3, 0.24444, -0.17273]], [ 1.17040, [ 3, -0.24444, 0.14787], [ 3, 0.44444, -0.26886]], [ 0.67338, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.98802, [ 3, -0.24444, -0.09763], [ 3, 0.31111, 0.12425]], [ 2.11227, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.00950, [ 3, -0.31111, 0.05647], [ 3, 0.28889, -0.05244]], [ 1.78554, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LShoulderPitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 1.43118, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.46800, [ 3, -0.31111, -0.00826], [ 3, 0.26667, 0.00708]], [ 1.47720, [ 3, -0.26667, -0.00446], [ 3, 0.22222, 0.00372]], [ 1.49254, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.49254, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.49101, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.49254, [ 3, -0.17778, -0.00151], [ 3, 0.24444, 0.00207]], [ 1.50174, [ 3, -0.24444, -0.00281], [ 3, 0.20000, 0.00230]], [ 1.50788, [ 3, -0.20000, -0.00207], [ 3, 0.24444, 0.00253]], [ 1.51555, [ 3, -0.24444, -0.00254], [ 3, 0.44444, 0.00462]], [ 1.52936, [ 3, -0.44444, -0.00363], [ 3, 0.24444, 0.00200]], [ 1.53242, [ 3, -0.24444, -0.00135], [ 3, 0.31111, 0.00172]], [ 1.53856, [ 3, -0.31111, -0.00562], [ 3, 0.31111, 0.00562]], [ 1.56617, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.54776, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.56004, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LShoulderRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.32977, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.32670, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.34818, [ 3, -0.26667, -0.00641], [ 3, 0.22222, 0.00535]], [ 0.36198, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.35124, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.35738, [ 3, -0.22222, -0.00142], [ 3, 0.17778, 0.00114]], [ 0.35891, [ 3, -0.17778, -0.00153], [ 3, 0.24444, 0.00211]], [ 0.37272, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.36812, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.37425, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ 0.35431, [ 3, -0.44444, 0.00561], [ 3, 0.24444, -0.00308]], [ 0.34818, [ 3, -0.24444, 0.00360], [ 3, 0.31111, -0.00458]], [ 0.32977, [ 3, -0.31111, 0.00844], [ 3, 0.31111, -0.00844]], [ 0.29755, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.32210, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.30676, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("LWristYaw")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.02450, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02450, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00609, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00916, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00763, [ 3, -0.22222, 0.00153], [ 3, 0.22222, -0.00153]], [ -0.00618, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.00618, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00303, [ 3, -0.24444, -0.00253], [ 3, 0.20000, 0.00207]], [ 0.00763, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00763, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ -1.13827, [ 3, -0.44444, 0.00279], [ 3, 0.24444, -0.00153]], [ -1.13980, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.13980, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.14134, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.14134, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.13980, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RAnklePitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.34664, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18630, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.88047, [ 3, -0.26667, -0.00184], [ 3, 0.22222, 0.00153]], [ -0.87894, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.87894, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.23313, [ 3, -0.22222, -0.20482], [ 3, 0.17778, 0.16385]], [ 0.22707, [ 3, -0.17778, -0.08418], [ 3, 0.24444, 0.11575]], [ 0.36667, [ 3, -0.24444, -0.03487], [ 3, 0.20000, 0.02853]], [ 0.41729, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.17790, [ 3, -0.24444, 0.16602], [ 3, 0.44444, -0.30185]], [ -0.98632, [ 3, -0.44444, 0.00558], [ 3, 0.24444, -0.00307]], [ -0.98939, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.98939, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.99706, [ 3, -0.31111, 0.00424], [ 3, 0.28889, -0.00394]], [ -1.01393, [ 3, -0.28889, 0.01687], [ 3, 0.22222, -0.01298]], [ -1.08756, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RAnkleRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00004, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00925, [ 3, -0.31111, -0.00920], [ 3, 0.26667, 0.00789]], [ 0.14884, [ 3, -0.26667, -0.00736], [ 3, 0.22222, 0.00614]], [ 0.15498, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.15949, [ 3, -0.22222, 0.10022], [ 3, 0.22222, -0.10022]], [ -0.44635, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.20858, [ 3, -0.17778, -0.09043], [ 3, 0.24444, 0.12433]], [ 0.19793, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.06447, [ 3, -0.20000, 0.02008], [ 3, 0.24444, -0.02454]], [ 0.03993, [ 3, -0.24444, 0.02087], [ 3, 0.44444, -0.03794]], [ -0.11194, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.11194, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.10734, [ 3, -0.31111, -0.00307], [ 3, 0.31111, 0.00307]], [ -0.09353, [ 3, -0.31111, -0.00583], [ 3, 0.28889, 0.00542]], [ -0.07359, [ 3, -0.28889, -0.01994], [ 3, 0.22222, 0.01534]], [ 0.08901, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RElbowRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 1.02322, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.90357, [ 3, -0.31111, 0.00716], [ 3, 0.26667, -0.00613]], [ 0.89743, [ 3, -0.26667, 0.00223], [ 3, 0.22222, -0.00186]], [ 0.89130, [ 3, -0.22222, 0.00128], [ 3, 0.22222, -0.00128]], [ 0.88976, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.29781, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.29781, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.27326, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.27326, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.27326, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ 1.26713, [ 3, -0.44444, 0.00264], [ 3, 0.24444, -0.00145]], [ 1.26099, [ 3, -0.24444, 0.00315], [ 3, 0.31111, -0.00401]], [ 1.24565, [ 3, -0.31111, 0.00307], [ 3, 0.31111, -0.00307]], [ 1.24258, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.25332, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.24258, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RElbowYaw")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 1.37596, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.37596, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.35141, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.35141, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.34528, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.47106, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.47106, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.43885, [ 3, -0.24444, 0.00188], [ 3, 0.20000, -0.00153]], [ 1.43732, [ 3, -0.20000, 0.00069], [ 3, 0.24444, -0.00084]], [ 1.43425, [ 3, -0.24444, 0.00127], [ 3, 0.44444, -0.00231]], [ 1.42658, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.42811, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.42504, [ 3, -0.31111, 0.00281], [ 3, 0.31111, -0.00281]], [ 1.41124, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.43425, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.42504, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RHand")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00019, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00025, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00025, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00026, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00025, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00027, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00027, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00024, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00025, [ 3, -0.20000, -0.00000], [ 3, 0.24444, 0.00000]], [ 0.00026, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ 0.00021, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00021, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00021, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00020, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.00021, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00021, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RHipPitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.43570, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.91737, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.67807, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.87442, [ 3, -0.22222, 0.05753], [ 3, 0.22222, -0.05753]], [ -1.02322, [ 3, -0.22222, 0.11735], [ 3, 0.22222, -0.11735]], [ -1.57853, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.07691, [ 3, -0.17778, -0.09064], [ 3, 0.24444, 0.12463]], [ -0.93271, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.95879, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.68421, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ -1.17815, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.17815, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.17815, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.17815, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.17815, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.14747, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RHipRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.00311, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.00303, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.35900, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.28690, [ 3, -0.22222, 0.05241], [ 3, 0.22222, -0.05241]], [ 0.04453, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07828, [ 3, -0.22222, -0.03375], [ 3, 0.17778, 0.02700]], [ 0.27156, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.26542, [ 3, -0.24444, 0.00613], [ 3, 0.20000, -0.00502]], [ 0.19179, [ 3, -0.20000, 0.01450], [ 3, 0.24444, -0.01772]], [ 0.16878, [ 3, -0.24444, 0.02301], [ 3, 0.44444, -0.04184]], [ -0.35585, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.35585, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.35585, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.35585, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.35585, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.11961, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RKneePitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 0.69801, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11235, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.56319, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.00345, [ 3, -0.22222, 0.07238], [ 3, 0.22222, -0.07238]], [ 1.67824, [ 3, -0.22222, 0.26646], [ 3, 0.17778, -0.21317]], [ 0.56455, [ 3, -0.17778, 0.07140], [ 3, 0.24444, -0.09818]], [ 0.46638, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.47865, [ 3, -0.20000, -0.01227], [ 3, 0.24444, 0.01500]], [ 0.97413, [ 3, -0.24444, -0.19326], [ 3, 0.44444, 0.35138]], [ 2.11255, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 2.11255, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RShoulderPitch")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ 1.43893, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.43587, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.45888, [ 3, -0.26667, -0.00641], [ 3, 0.22222, 0.00535]], [ 1.47115, [ 3, -0.22222, -0.00332], [ 3, 0.22222, 0.00332]], [ 1.47882, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.34996, [ 3, -0.22222, 0.00192], [ 3, 0.17778, -0.00153]], [ 1.34843, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.39445, [ 3, -0.24444, -0.00563], [ 3, 0.20000, 0.00460]], [ 1.39905, [ 3, -0.20000, -0.00138], [ 3, 0.24444, 0.00169]], [ 1.40365, [ 3, -0.24444, -0.00200], [ 3, 0.44444, 0.00363]], [ 1.41592, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.41286, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.43893, [ 3, -0.31111, -0.00690], [ 3, 0.31111, 0.00690]], [ 1.45427, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.43587, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.44967, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RShoulderRoll")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.32678, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.29150, [ 3, -0.31111, -0.03528], [ 3, 0.26667, 0.03024]], [ -0.11049, [ 3, -0.26667, -0.00736], [ 3, 0.22222, 0.00614]], [ -0.10435, [ 3, -0.22222, -0.00205], [ 3, 0.22222, 0.00205]], [ -0.09822, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.54154, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.54154, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.49706, [ 3, -0.24444, -0.00563], [ 3, 0.20000, 0.00460]], [ -0.49246, [ 3, -0.20000, -0.00092], [ 3, 0.24444, 0.00112]], [ -0.49092, [ 3, -0.24444, -0.00073], [ 3, 0.44444, 0.00132]], [ -0.48632, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.49399, [ 3, -0.24444, 0.00247], [ 3, 0.31111, -0.00315]], [ -0.50319, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.49092, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.50626, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.50319, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])

namesfirst.append("RWristYaw")
timesfirst.append([ 1.00000, 1.93333, 2.73333, 3.40000, 4.06667, 4.73333, 5.26667, 6.00000, 6.60000, 7.33333, 8.66667, 9.40000, 10.33333, 11.26667, 12.13333, 12.80000])
keysfirst.append([ [ -0.01692, [ 3, -0.33333, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.01231, [ 3, -0.31111, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.01845, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.01692, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -0.01231, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.04299, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.04299, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03226, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.03226, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03532, [ 3, -0.24444, 0.00000], [ 3, 0.44444, 0.00000]], [ -0.03379, [ 3, -0.44444, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03686, [ 3, -0.24444, 0.00090], [ 3, 0.31111, -0.00115]], [ -0.03993, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.03532, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.03532, [ 3, -0.28889, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.03839, [ 3, -0.22222, 0.00000], [ 3, 0.00000, 0.00000]]])



namessecond = list()
timessecond = list()
keyssecond = list()

namessecond.append("HeadPitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.03217, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.03217, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.03217, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.05365, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.04751, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04751, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.03677, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04291, [ 3, -0.24444, -0.00427], [ 3, 0.31111, 0.00544]], [ 0.06592, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.04751, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.05365, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04751, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("HeadYaw")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.00303, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00303, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00303, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.00771, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.00618, [ 3, -0.20000, -0.00115], [ 3, 0.24444, 0.00141]], [ -0.00004, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -0.00618, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.00311, [ 3, -0.24444, -0.00225], [ 3, 0.31111, 0.00286]], [ 0.00916, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.00158, [ 3, -0.31111, 0.00165], [ 3, 0.28889, -0.00153]], [ -0.00311, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00149, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LAnklePitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -1.18944, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.18944, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.18944, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18944, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.18944, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18944, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.18944, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18429, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18889, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18889, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.90357, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.10299, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LAnkleRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.03226, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.07521, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.07521, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.07521, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.01683, [ 3, -0.20000, 0.01381], [ 3, 0.24444, -0.01687]], [ -0.03371, [ 3, -0.24444, 0.00914], [ 3, 0.46667, -0.01745]], [ -0.09660, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.02604, [ 3, -0.24444, -0.00964], [ 3, 0.31111, 0.01227]], [ -0.01376, [ 3, -0.31111, -0.01074], [ 3, 0.31111, 0.01074]], [ 0.03839, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.02297, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.10742, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LElbowRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -1.03694, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.03234, [ 3, -0.26667, -0.00167], [ 3, 0.22222, 0.00139]], [ -1.02774, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -1.02620, [ 3, -0.22222, -0.00077], [ 3, 0.22222, 0.00077]], [ -1.02314, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.02314, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.01700, [ 3, -0.24444, -0.00169], [ 3, 0.20000, 0.00138]], [ -1.01393, [ 3, -0.20000, -0.00115], [ 3, 0.24444, 0.00141]], [ -1.00933, [ 3, -0.24444, -0.00105], [ 3, 0.46667, 0.00201]], [ -1.00473, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.00626, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.99246, [ 3, -0.31111, -0.00281], [ 3, 0.31111, 0.00281]], [ -0.98939, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.99399, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.98939, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LElbowYaw")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -1.37757, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.38985, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.38524, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -1.38371, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.40365, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.40365, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.39138, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.39445, [ 3, -0.20000, 0.00138], [ 3, 0.24444, -0.00169]], [ -1.40058, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.39291, [ 3, -0.46667, -0.00235], [ 3, 0.24444, 0.00123]], [ -1.38985, [ 3, -0.24444, -0.00247], [ 3, 0.31111, 0.00315]], [ -1.37604, [ 3, -0.31111, -0.00486], [ 3, 0.31111, 0.00486]], [ -1.36070, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.37757, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.36377, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LHand")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.00117, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00119, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00118, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00118, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00120, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00120, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00118, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00118, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00119, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.00114, [ 3, -0.46667, 0.00001], [ 3, 0.24444, -0.00001]], [ 0.00114, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00114, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00114, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.00114, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00114, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LHipPitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -0.93263, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.93723, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93570, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93570, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93723, [ 3, -0.22222, 0.00057], [ 3, 0.17778, -0.00045]], [ -0.93877, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.93416, [ 3, -0.24444, -0.00460], [ 3, 0.20000, 0.00376]], [ -0.78537, [ 3, -0.20000, -0.14880], [ 3, 0.24444, 0.18186]], [ 0.19026, [ 3, -0.24444, -0.14545], [ 3, 0.46667, 0.27767]], [ 0.48398, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.32065, [ 3, -0.24444, 0.10968], [ 3, 0.31111, -0.13959]], [ -0.26381, [ 3, -0.31111, 0.22090], [ 3, 0.31111, -0.22090]], [ -1.00473, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.95871, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.09370, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LHipRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -0.03064, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.44183, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.44183, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.44183, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.29610, [ 3, -0.20000, 0.02830], [ 3, 0.24444, -0.03459]], [ 0.25315, [ 3, -0.24444, 0.04295], [ 3, 0.46667, -0.08200]], [ -0.30062, [ 3, -0.46667, 0.01464], [ 3, 0.24444, -0.00767]], [ -0.30829, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02459, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.37886, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.31903, [ 3, -0.28889, -0.03656], [ 3, 0.24444, 0.03094]], [ -0.17637, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LHipYawPitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.00311, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.01078, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00925, [ 3, -0.17778, 0.00043], [ 3, 0.24444, -0.00059]], [ 0.00771, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00925, [ 3, -0.20000, -0.00153], [ 3, 0.24444, 0.00187]], [ 0.02152, [ 3, -0.24444, -0.00281], [ 3, 0.46667, 0.00537]], [ 0.03379, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.03226, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.03379, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02612, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.03379, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.02765, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LKneePitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 2.11255, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 2.11255, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 2.11255, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.92360, [ 3, -0.20000, 0.14132], [ 3, 0.24444, -0.17273]], [ 1.17040, [ 3, -0.24444, 0.14325], [ 3, 0.46667, -0.27348]], [ 0.67338, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.98802, [ 3, -0.24444, -0.09763], [ 3, 0.31111, 0.12425]], [ 2.11227, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.00950, [ 3, -0.31111, 0.05647], [ 3, 0.28889, -0.05244]], [ 1.78554, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LShoulderPitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 1.46800, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.47720, [ 3, -0.26667, -0.00446], [ 3, 0.22222, 0.00372]], [ 1.49254, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.49254, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.49101, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.49254, [ 3, -0.17778, -0.00151], [ 3, 0.24444, 0.00207]], [ 1.50174, [ 3, -0.24444, -0.00281], [ 3, 0.20000, 0.00230]], [ 1.50788, [ 3, -0.20000, -0.00207], [ 3, 0.24444, 0.00253]], [ 1.51555, [ 3, -0.24444, -0.00246], [ 3, 0.46667, 0.00470]], [ 1.52936, [ 3, -0.46667, -0.00369], [ 3, 0.24444, 0.00193]], [ 1.53242, [ 3, -0.24444, -0.00135], [ 3, 0.31111, 0.00172]], [ 1.53856, [ 3, -0.31111, -0.00562], [ 3, 0.31111, 0.00562]], [ 1.56617, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.54776, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.56004, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LShoulderRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.32670, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.34818, [ 3, -0.26667, -0.00641], [ 3, 0.22222, 0.00535]], [ 0.36198, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.35124, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.35738, [ 3, -0.22222, -0.00142], [ 3, 0.17778, 0.00114]], [ 0.35891, [ 3, -0.17778, -0.00153], [ 3, 0.24444, 0.00211]], [ 0.37272, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.36812, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.37425, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.35431, [ 3, -0.46667, 0.00570], [ 3, 0.24444, -0.00299]], [ 0.34818, [ 3, -0.24444, 0.00360], [ 3, 0.31111, -0.00458]], [ 0.32977, [ 3, -0.31111, 0.00844], [ 3, 0.31111, -0.00844]], [ 0.29755, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.32210, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.30676, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("LWristYaw")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.02450, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00609, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00916, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00763, [ 3, -0.22222, 0.00153], [ 3, 0.22222, -0.00153]], [ -0.00618, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.00618, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00303, [ 3, -0.24444, -0.00253], [ 3, 0.20000, 0.00207]], [ 0.00763, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00763, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.13827, [ 3, -0.46667, 0.00293], [ 3, 0.24444, -0.00153]], [ -1.13980, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.13980, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.14134, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.14134, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.13980, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RAnklePitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -1.18630, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.88047, [ 3, -0.26667, -0.00184], [ 3, 0.22222, 0.00153]], [ -0.87894, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.87894, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.23313, [ 3, -0.22222, -0.20482], [ 3, 0.17778, 0.16385]], [ 0.22707, [ 3, -0.17778, -0.08418], [ 3, 0.24444, 0.11575]], [ 0.36667, [ 3, -0.24444, -0.03487], [ 3, 0.20000, 0.02853]], [ 0.41729, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.17790, [ 3, -0.24444, 0.16083], [ 3, 0.46667, -0.30704]], [ -0.98632, [ 3, -0.46667, 0.00586], [ 3, 0.24444, -0.00307]], [ -0.98939, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.98939, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.99706, [ 3, -0.31111, 0.00424], [ 3, 0.28889, -0.00394]], [ -1.01393, [ 3, -0.28889, 0.01634], [ 3, 0.24444, -0.01383]], [ -1.08756, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RAnkleRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.00925, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.14884, [ 3, -0.26667, -0.00736], [ 3, 0.22222, 0.00614]], [ 0.15498, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.15949, [ 3, -0.22222, 0.10022], [ 3, 0.22222, -0.10022]], [ -0.44635, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.20858, [ 3, -0.17778, -0.09043], [ 3, 0.24444, 0.12433]], [ 0.19793, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.06447, [ 3, -0.20000, 0.02008], [ 3, 0.24444, -0.02454]], [ 0.03993, [ 3, -0.24444, 0.02021], [ 3, 0.46667, -0.03859]], [ -0.11194, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.11194, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.10734, [ 3, -0.31111, -0.00307], [ 3, 0.31111, 0.00307]], [ -0.09353, [ 3, -0.31111, -0.00583], [ 3, 0.28889, 0.00542]], [ -0.07359, [ 3, -0.28889, -0.01994], [ 3, 0.24444, 0.01687]], [ 0.08901, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RElbowRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.90357, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.89743, [ 3, -0.26667, 0.00223], [ 3, 0.22222, -0.00186]], [ 0.89130, [ 3, -0.22222, 0.00128], [ 3, 0.22222, -0.00128]], [ 0.88976, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.29781, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.29781, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.27326, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.27326, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.27326, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 1.26713, [ 3, -0.46667, 0.00268], [ 3, 0.24444, -0.00141]], [ 1.26099, [ 3, -0.24444, 0.00315], [ 3, 0.31111, -0.00401]], [ 1.24565, [ 3, -0.31111, 0.00307], [ 3, 0.31111, -0.00307]], [ 1.24258, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.25332, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.24258, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RElbowYaw")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 1.37596, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.35141, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.35141, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.34528, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.47106, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.47106, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.43885, [ 3, -0.24444, 0.00188], [ 3, 0.20000, -0.00153]], [ 1.43732, [ 3, -0.20000, 0.00069], [ 3, 0.24444, -0.00084]], [ 1.43425, [ 3, -0.24444, 0.00123], [ 3, 0.46667, -0.00235]], [ 1.42658, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.42811, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.42504, [ 3, -0.31111, 0.00281], [ 3, 0.31111, -0.00281]], [ 1.41124, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.43425, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.42504, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RHand")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 0.00025, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00025, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00026, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00025, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00027, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00027, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00024, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00025, [ 3, -0.20000, -0.00000], [ 3, 0.24444, 0.00000]], [ 0.00026, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.00021, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00021, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00021, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00020, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.00021, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00021, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RHipPitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -0.91737, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.67807, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.87442, [ 3, -0.22222, 0.05753], [ 3, 0.22222, -0.05753]], [ -1.02322, [ 3, -0.22222, 0.11735], [ 3, 0.22222, -0.11735]], [ -1.57853, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.07691, [ 3, -0.17778, -0.09064], [ 3, 0.24444, 0.12463]], [ -0.93271, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.95879, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.68421, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.17815, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.17815, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.17815, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.17815, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.17815, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.14747, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RHipRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -0.00303, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.35900, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.28690, [ 3, -0.22222, 0.05241], [ 3, 0.22222, -0.05241]], [ 0.04453, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07828, [ 3, -0.22222, -0.03375], [ 3, 0.17778, 0.02700]], [ 0.27156, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.26542, [ 3, -0.24444, 0.00613], [ 3, 0.20000, -0.00502]], [ 0.19179, [ 3, -0.20000, 0.01450], [ 3, 0.24444, -0.01772]], [ 0.16878, [ 3, -0.24444, 0.02301], [ 3, 0.46667, -0.04393]], [ -0.35585, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.35585, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.35585, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.35585, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.35585, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.11961, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RKneePitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 2.11235, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.56319, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.00345, [ 3, -0.22222, 0.07238], [ 3, 0.22222, -0.07238]], [ 1.67824, [ 3, -0.22222, 0.26646], [ 3, 0.17778, -0.21317]], [ 0.56455, [ 3, -0.17778, 0.07140], [ 3, 0.24444, -0.09818]], [ 0.46638, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.47865, [ 3, -0.20000, -0.01227], [ 3, 0.24444, 0.01500]], [ 0.97413, [ 3, -0.24444, -0.18722], [ 3, 0.46667, 0.35741]], [ 2.11255, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 2.11255, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RShoulderPitch")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ 1.43587, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.45888, [ 3, -0.26667, -0.00641], [ 3, 0.22222, 0.00535]], [ 1.47115, [ 3, -0.22222, -0.00332], [ 3, 0.22222, 0.00332]], [ 1.47882, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.34996, [ 3, -0.22222, 0.00192], [ 3, 0.17778, -0.00153]], [ 1.34843, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.39445, [ 3, -0.24444, -0.00563], [ 3, 0.20000, 0.00460]], [ 1.39905, [ 3, -0.20000, -0.00138], [ 3, 0.24444, 0.00169]], [ 1.40365, [ 3, -0.24444, -0.00193], [ 3, 0.46667, 0.00369]], [ 1.41592, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.41286, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.43893, [ 3, -0.31111, -0.00690], [ 3, 0.31111, 0.00690]], [ 1.45427, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.43587, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.44967, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RShoulderRoll")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -0.29150, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.11049, [ 3, -0.26667, -0.00736], [ 3, 0.22222, 0.00614]], [ -0.10435, [ 3, -0.22222, -0.00205], [ 3, 0.22222, 0.00205]], [ -0.09822, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.54154, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.54154, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.49706, [ 3, -0.24444, -0.00563], [ 3, 0.20000, 0.00460]], [ -0.49246, [ 3, -0.20000, -0.00092], [ 3, 0.24444, 0.00112]], [ -0.49092, [ 3, -0.24444, -0.00070], [ 3, 0.46667, 0.00134]], [ -0.48632, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.49399, [ 3, -0.24444, 0.00247], [ 3, 0.31111, -0.00315]], [ -0.50319, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.49092, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.50626, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.50319, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namessecond.append("RWristYaw")
timessecond.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keyssecond.append([ [ -0.01231, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.01845, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.01692, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -0.01231, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.04299, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.04299, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03226, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.03226, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03532, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -0.03379, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03686, [ 3, -0.24444, 0.00090], [ 3, 0.31111, -0.00115]], [ -0.03993, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.03532, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.03532, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03839, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])


namesthird = list()
timesthird = list()
keysthird = list()

namesthird.append("HeadPitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.03217, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.03217, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.03217, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.03217, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.05365, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.04751, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04751, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.03677, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04291, [ 3, -0.24444, -0.00427], [ 3, 0.31111, 0.00544]], [ 0.06592, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.04751, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.05365, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.04751, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("HeadYaw")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.00303, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00303, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00303, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00303, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.00771, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.00618, [ 3, -0.20000, -0.00115], [ 3, 0.24444, 0.00141]], [ -0.00004, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -0.00618, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.00311, [ 3, -0.24444, -0.00225], [ 3, 0.31111, 0.00286]], [ 0.00916, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.00158, [ 3, -0.31111, 0.00165], [ 3, 0.28889, -0.00153]], [ -0.00311, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00149, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LAnklePitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -1.18944, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.18944, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.18944, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.18944, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18944, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.18944, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18944, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.18944, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.18429, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18889, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.18889, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.90357, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.10299, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LAnkleRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.03226, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.07521, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07521, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.07521, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.07521, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.01683, [ 3, -0.20000, 0.01381], [ 3, 0.24444, -0.01687]], [ -0.03371, [ 3, -0.24444, 0.00914], [ 3, 0.46667, -0.01745]], [ -0.09660, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.02604, [ 3, -0.24444, -0.00964], [ 3, 0.31111, 0.01227]], [ -0.01376, [ 3, -0.31111, -0.01074], [ 3, 0.31111, 0.01074]], [ 0.03839, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.02297, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.10742, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LElbowRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -1.03694, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.03234, [ 3, -0.26667, -0.00167], [ 3, 0.22222, 0.00139]], [ -1.02774, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -1.02620, [ 3, -0.22222, -0.00077], [ 3, 0.22222, 0.00077]], [ -1.02314, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.02314, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.01700, [ 3, -0.24444, -0.00169], [ 3, 0.20000, 0.00138]], [ -1.01393, [ 3, -0.20000, -0.00115], [ 3, 0.24444, 0.00141]], [ -1.00933, [ 3, -0.24444, -0.00105], [ 3, 0.46667, 0.00201]], [ -1.00473, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.00626, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.99246, [ 3, -0.31111, -0.00281], [ 3, 0.31111, 0.00281]], [ -0.98939, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.99399, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.98939, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LElbowYaw")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -1.37757, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -1.38985, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.38524, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -1.38371, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -1.40365, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.40365, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.39138, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.39445, [ 3, -0.20000, 0.00138], [ 3, 0.24444, -0.00169]], [ -1.40058, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.39291, [ 3, -0.46667, -0.00235], [ 3, 0.24444, 0.00123]], [ -1.38985, [ 3, -0.24444, -0.00247], [ 3, 0.31111, 0.00315]], [ -1.37604, [ 3, -0.31111, -0.00486], [ 3, 0.31111, 0.00486]], [ -1.36070, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.37757, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.36377, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LHand")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.00117, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00119, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00118, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00118, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00120, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00120, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00118, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00118, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00119, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.00114, [ 3, -0.46667, 0.00001], [ 3, 0.24444, -0.00001]], [ 0.00114, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00114, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00114, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.00114, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00114, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LHipPitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -0.93263, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.93723, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93570, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93570, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.93723, [ 3, -0.22222, 0.00057], [ 3, 0.17778, -0.00045]], [ -0.93877, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.93416, [ 3, -0.24444, -0.00460], [ 3, 0.20000, 0.00376]], [ -0.78537, [ 3, -0.20000, -0.14880], [ 3, 0.24444, 0.18186]], [ 0.19026, [ 3, -0.24444, -0.14545], [ 3, 0.46667, 0.27767]], [ 0.48398, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.32065, [ 3, -0.24444, 0.10968], [ 3, 0.31111, -0.13959]], [ -0.26381, [ 3, -0.31111, 0.22090], [ 3, 0.31111, -0.22090]], [ -1.00473, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.95871, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.09370, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LHipRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -0.03064, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.44183, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.44183, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.44183, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.44183, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.29610, [ 3, -0.20000, 0.02830], [ 3, 0.24444, -0.03459]], [ 0.25315, [ 3, -0.24444, 0.04295], [ 3, 0.46667, -0.08200]], [ -0.30062, [ 3, -0.46667, 0.01464], [ 3, 0.24444, -0.00767]], [ -0.30829, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02459, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.37886, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.31903, [ 3, -0.28889, -0.03656], [ 3, 0.24444, 0.03094]], [ -0.17637, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LHipYawPitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.00311, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.01078, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.01078, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00925, [ 3, -0.17778, 0.00043], [ 3, 0.24444, -0.00059]], [ 0.00771, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00925, [ 3, -0.20000, -0.00153], [ 3, 0.24444, 0.00187]], [ 0.02152, [ 3, -0.24444, -0.00281], [ 3, 0.46667, 0.00537]], [ 0.03379, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.03226, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.03379, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.02612, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.03379, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.02765, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LKneePitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 2.11255, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 2.11255, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 2.11255, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.92360, [ 3, -0.20000, 0.14132], [ 3, 0.24444, -0.17273]], [ 1.17040, [ 3, -0.24444, 0.14325], [ 3, 0.46667, -0.27348]], [ 0.67338, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.98802, [ 3, -0.24444, -0.09763], [ 3, 0.31111, 0.12425]], [ 2.11227, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.00950, [ 3, -0.31111, 0.05647], [ 3, 0.28889, -0.05244]], [ 1.78554, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LShoulderPitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 1.46800, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.47720, [ 3, -0.26667, -0.00446], [ 3, 0.22222, 0.00372]], [ 1.49254, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.49254, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.49101, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.49254, [ 3, -0.17778, -0.00151], [ 3, 0.24444, 0.00207]], [ 1.50174, [ 3, -0.24444, -0.00281], [ 3, 0.20000, 0.00230]], [ 1.50788, [ 3, -0.20000, -0.00207], [ 3, 0.24444, 0.00253]], [ 1.51555, [ 3, -0.24444, -0.00246], [ 3, 0.46667, 0.00470]], [ 1.52936, [ 3, -0.46667, -0.00369], [ 3, 0.24444, 0.00193]], [ 1.53242, [ 3, -0.24444, -0.00135], [ 3, 0.31111, 0.00172]], [ 1.53856, [ 3, -0.31111, -0.00562], [ 3, 0.31111, 0.00562]], [ 1.56617, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.54776, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.56004, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LShoulderRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.32670, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.34818, [ 3, -0.26667, -0.00641], [ 3, 0.22222, 0.00535]], [ 0.36198, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.35124, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.35738, [ 3, -0.22222, -0.00142], [ 3, 0.17778, 0.00114]], [ 0.35891, [ 3, -0.17778, -0.00153], [ 3, 0.24444, 0.00211]], [ 0.37272, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.36812, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.37425, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.35431, [ 3, -0.46667, 0.00570], [ 3, 0.24444, -0.00299]], [ 0.34818, [ 3, -0.24444, 0.00360], [ 3, 0.31111, -0.00458]], [ 0.32977, [ 3, -0.31111, 0.00844], [ 3, 0.31111, -0.00844]], [ 0.29755, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.32210, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.30676, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("LWristYaw")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.02450, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00609, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00916, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00763, [ 3, -0.22222, 0.00153], [ 3, 0.22222, -0.00153]], [ -0.00618, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.00618, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00303, [ 3, -0.24444, -0.00253], [ 3, 0.20000, 0.00207]], [ 0.00763, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00763, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.13827, [ 3, -0.46667, 0.00293], [ 3, 0.24444, -0.00153]], [ -1.13980, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.13980, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.14134, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.14134, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.13980, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RAnklePitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -1.18630, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.88047, [ 3, -0.26667, -0.00184], [ 3, 0.22222, 0.00153]], [ -0.87894, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.87894, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.23313, [ 3, -0.22222, -0.20482], [ 3, 0.17778, 0.16385]], [ 0.22707, [ 3, -0.17778, -0.08418], [ 3, 0.24444, 0.11575]], [ 0.36667, [ 3, -0.24444, -0.03487], [ 3, 0.20000, 0.02853]], [ 0.41729, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.17790, [ 3, -0.24444, 0.16083], [ 3, 0.46667, -0.30704]], [ -0.98632, [ 3, -0.46667, 0.00586], [ 3, 0.24444, -0.00307]], [ -0.98939, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.98939, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.99706, [ 3, -0.31111, 0.00424], [ 3, 0.28889, -0.00394]], [ -1.01393, [ 3, -0.28889, 0.01634], [ 3, 0.24444, -0.01383]], [ -1.08756, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RAnkleRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.00925, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.14884, [ 3, -0.26667, -0.00736], [ 3, 0.22222, 0.00614]], [ 0.15498, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.15949, [ 3, -0.22222, 0.10022], [ 3, 0.22222, -0.10022]], [ -0.44635, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.20858, [ 3, -0.17778, -0.09043], [ 3, 0.24444, 0.12433]], [ 0.19793, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.06447, [ 3, -0.20000, 0.02008], [ 3, 0.24444, -0.02454]], [ 0.03993, [ 3, -0.24444, 0.02021], [ 3, 0.46667, -0.03859]], [ -0.11194, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.11194, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.10734, [ 3, -0.31111, -0.00307], [ 3, 0.31111, 0.00307]], [ -0.09353, [ 3, -0.31111, -0.00583], [ 3, 0.28889, 0.00542]], [ -0.07359, [ 3, -0.28889, -0.01994], [ 3, 0.24444, 0.01687]], [ 0.08901, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RElbowRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.90357, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.89743, [ 3, -0.26667, 0.00223], [ 3, 0.22222, -0.00186]], [ 0.89130, [ 3, -0.22222, 0.00128], [ 3, 0.22222, -0.00128]], [ 0.88976, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.29781, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.29781, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.27326, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.27326, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.27326, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 1.26713, [ 3, -0.46667, 0.00268], [ 3, 0.24444, -0.00141]], [ 1.26099, [ 3, -0.24444, 0.00315], [ 3, 0.31111, -0.00401]], [ 1.24565, [ 3, -0.31111, 0.00307], [ 3, 0.31111, -0.00307]], [ 1.24258, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.25332, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.24258, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RElbowYaw")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 1.37596, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.35141, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.35141, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.34528, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.47106, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 1.47106, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.43885, [ 3, -0.24444, 0.00188], [ 3, 0.20000, -0.00153]], [ 1.43732, [ 3, -0.20000, 0.00069], [ 3, 0.24444, -0.00084]], [ 1.43425, [ 3, -0.24444, 0.00123], [ 3, 0.46667, -0.00235]], [ 1.42658, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.42811, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.42504, [ 3, -0.31111, 0.00281], [ 3, 0.31111, -0.00281]], [ 1.41124, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.43425, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.42504, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RHand")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 0.00025, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00025, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00026, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00025, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.00027, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ 0.00027, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00024, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00025, [ 3, -0.20000, -0.00000], [ 3, 0.24444, 0.00000]], [ 0.00026, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ 0.00021, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00021, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00021, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 0.00020, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 0.00021, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.00021, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RHipPitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -0.91737, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.67807, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.87442, [ 3, -0.22222, 0.05753], [ 3, 0.22222, -0.05753]], [ -1.02322, [ 3, -0.22222, 0.11735], [ 3, 0.22222, -0.11735]], [ -1.57853, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -1.07691, [ 3, -0.17778, -0.09064], [ 3, 0.24444, 0.12463]], [ -0.93271, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.95879, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.68421, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -1.17815, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.17815, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.17815, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -1.17815, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -1.17815, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -1.14747, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RHipRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -0.00303, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.35900, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.28690, [ 3, -0.22222, 0.05241], [ 3, 0.22222, -0.05241]], [ 0.04453, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 0.07828, [ 3, -0.22222, -0.03375], [ 3, 0.17778, 0.02700]], [ 0.27156, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 0.26542, [ 3, -0.24444, 0.00613], [ 3, 0.20000, -0.00502]], [ 0.19179, [ 3, -0.20000, 0.01450], [ 3, 0.24444, -0.01772]], [ 0.16878, [ 3, -0.24444, 0.02301], [ 3, 0.46667, -0.04393]], [ -0.35585, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.35585, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.35585, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.35585, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.35585, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.11961, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RKneePitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 2.11235, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.56319, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.11255, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 2.00345, [ 3, -0.22222, 0.07238], [ 3, 0.22222, -0.07238]], [ 1.67824, [ 3, -0.22222, 0.26646], [ 3, 0.17778, -0.21317]], [ 0.56455, [ 3, -0.17778, 0.07140], [ 3, 0.24444, -0.09818]], [ 0.46638, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.47865, [ 3, -0.20000, -0.01227], [ 3, 0.24444, 0.01500]], [ 0.97413, [ 3, -0.24444, -0.18722], [ 3, 0.46667, 0.35741]], [ 2.11255, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ 2.11255, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 2.11255, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 2.11255, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RShoulderPitch")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ 1.43587, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ 1.45888, [ 3, -0.26667, -0.00641], [ 3, 0.22222, 0.00535]], [ 1.47115, [ 3, -0.22222, -0.00332], [ 3, 0.22222, 0.00332]], [ 1.47882, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ 1.34996, [ 3, -0.22222, 0.00192], [ 3, 0.17778, -0.00153]], [ 1.34843, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.39445, [ 3, -0.24444, -0.00563], [ 3, 0.20000, 0.00460]], [ 1.39905, [ 3, -0.20000, -0.00138], [ 3, 0.24444, 0.00169]], [ 1.40365, [ 3, -0.24444, -0.00193], [ 3, 0.46667, 0.00369]], [ 1.41592, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.41286, [ 3, -0.24444, 0.00000], [ 3, 0.31111, 0.00000]], [ 1.43893, [ 3, -0.31111, -0.00690], [ 3, 0.31111, 0.00690]], [ 1.45427, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ 1.43587, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ 1.44967, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RShoulderRoll")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -0.29150, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.11049, [ 3, -0.26667, -0.00736], [ 3, 0.22222, 0.00614]], [ -0.10435, [ 3, -0.22222, -0.00205], [ 3, 0.22222, 0.00205]], [ -0.09822, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.54154, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.54154, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.49706, [ 3, -0.24444, -0.00563], [ 3, 0.20000, 0.00460]], [ -0.49246, [ 3, -0.20000, -0.00092], [ 3, 0.24444, 0.00112]], [ -0.49092, [ 3, -0.24444, -0.00070], [ 3, 0.46667, 0.00134]], [ -0.48632, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.49399, [ 3, -0.24444, 0.00247], [ 3, 0.31111, -0.00315]], [ -0.50319, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.49092, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.50626, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.50319, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

namesthird.append("RWristYaw")
timesthird.append([ 1.00000, 1.80000, 2.46667, 3.13333, 3.80000, 4.33333, 5.06667, 5.66667, 6.40000, 7.80000, 8.53333, 9.46667, 10.40000, 11.26667, 12.00000])
keysthird.append([ [ -0.01231, [ 3, -0.33333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.01845, [ 3, -0.26667, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.01692, [ 3, -0.22222, -0.00102], [ 3, 0.22222, 0.00102]], [ -0.01231, [ 3, -0.22222, 0.00000], [ 3, 0.22222, 0.00000]], [ -0.04299, [ 3, -0.22222, 0.00000], [ 3, 0.17778, 0.00000]], [ -0.04299, [ 3, -0.17778, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03226, [ 3, -0.24444, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.03226, [ 3, -0.20000, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03532, [ 3, -0.24444, 0.00000], [ 3, 0.46667, 0.00000]], [ -0.03379, [ 3, -0.46667, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03686, [ 3, -0.24444, 0.00090], [ 3, 0.31111, -0.00115]], [ -0.03993, [ 3, -0.31111, 0.00000], [ 3, 0.31111, 0.00000]], [ -0.03532, [ 3, -0.31111, 0.00000], [ 3, 0.28889, 0.00000]], [ -0.03532, [ 3, -0.28889, 0.00000], [ 3, 0.24444, 0.00000]], [ -0.03839, [ 3, -0.24444, 0.00000], [ 3, 0.00000, 0.00000]]])

def first(IP):
	motion = ALProxy("ALMotion", IP, 9559)
	motion.angleInterpolationBezier(namesfirst, timesfirst, keysfirst);
def second(IP):
	motion = ALProxy("ALMotion", IP, 9559)
	motion.angleInterpolationBezier(namessecond, timessecond, keyssecond);
def third(IP):
	motion = ALProxy("ALMotion", IP, 9559)
	motion.angleInterpolationBezier(namesthird, timesthird, keysthird);


nao机器人蹲下程序

# Choregraphe bezier export in Python.
from naoqi import ALProxy
names = list()
times = list()
keys = list()

names.append("HeadPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.01998, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.01998, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("HeadYaw")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.01078, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.00925, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LAnklePitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.34979, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.16588, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LAnkleRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.00004, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.00149, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LElbowRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.98632, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.71173, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LElbowYaw")
times.append([ 0.60000, 1.20000])
keys.append([ [ -1.36223, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.16128, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LHand")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.00460, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00460, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LHipPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.44942, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.90348, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LHipRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.00004, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.01837, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LHipYawPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.00303, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.11961, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LKneePitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.69946, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 2.11255, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LShoulderPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ 1.41124, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.57077, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LShoulderRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.26074, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.30062, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("LWristYaw")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.01990, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.53541, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RAnklePitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.34971, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -1.18630, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RAnkleRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.00004, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.00916, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RElbowRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ 1.01402, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.95266, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RElbowYaw")
times.append([ 0.60000, 1.20000])
keys.append([ [ 1.36215, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.90502, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RHand")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.00453, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00454, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RHipPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.45871, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.85141, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RHipRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.00149, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.01078, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RHipYawPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.00303, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.11961, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RKneePitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.70108, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 2.11255, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RShoulderPitch")
times.append([ 0.60000, 1.20000])
keys.append([ [ 1.44967, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 1.56932, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RShoulderRoll")
times.append([ 0.60000, 1.20000])
keys.append([ [ -0.26389, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ -0.37587, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

names.append("RWristYaw")
times.append([ 0.60000, 1.20000])
keys.append([ [ 0.01070, [ 3, -0.20000, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.36198, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

def run(IP):
	motion = ALProxy("ALMotion", IP, 9559)
	motion.angleInterpolationBezier(names, times, keys);

拾球程序

import time
from naoqi import ALProxy
names = list()
times = list()
keys = list()


def myhand(IP,strength = 8.0):
    
    if strength < 0.0:
        strength = -4.0
    elif strength > 20.0:
        strength = 16.0
    else:
        strength = strength*1.0 - 4.0
    
    names.append("RElbowRoll")
    times.append([ 0.40000, 1.20000, 2.50000])
    keys.append([ [ 0.98640, [ 3, -0.13333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.35081, [ 3, -0.26667, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.57072, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

    names.append("RElbowYaw")
    times.append([ 0.40000])
    keys.append([ [ 1.38669, [ 3, -0.13333, 0.00000], [ 3, 0.00000, 0.00000]]])

    names.append("RHand")
    times.append([ 0.40000, 1.20000, 2.50000])
    keys.append([ [ 0.00450, [ 3, -0.13333, 0.00000], [ 3, 0.26667, 0.00000]], [ 0.00489, [ 3, -0.26667, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.00454, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

    names.append("RShoulderPitch")
    times.append([ 0.40000, 0.80000, 1.20000, 2.50000])
    keys.append([ [ 1.41439, [ 3, -0.13333, 0.00000], [ 3, 0.13333, 0.00000]], [ 0.87790, [ 3, -0.13333, 0.20461], [ 3, 0.13333, -0.20461]], [ 0.18675, [ 3, -0.13333, 0.00000], [ 3, 0.20000, 0.00000]], [ 0.33161, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

    names.append("RShoulderRoll")
    times.append([ 0.40000, 0.80000, 1.20000, 3.00000])
    keys.append([ [ -0.05236, [ 3, -0.13333, 0.00000], [ 3, 0.13333, 0.00000]], [ -0.96866, [ 3, -0.13333, 0.00000], [ 3, 0.13333, 0.00000]], [ -0.68591, [ 3, -0.13333, -0.12566], [ 3, 0.09333, 0.08796]], [ strength, [ 3, strength/2, 0.00000], [ 3, 0.00000, 0.00000]]])

    names.append("RWristYaw")
    times.append([ 0.40000, 1.20000, 3.00000])
    keys.append([ [ -0.00925, [ 3, -0.13333, 0.00000], [ 3, 0.26667, 0.00000]], [ -0.69639, [ 3, -0.26667, 0.21931], [ 3, 0.20000, -0.16449]], [ -1.16064, [ 3, -0.20000, 0.00000], [ 3, 0.00000, 0.00000]]])

    motion = ALProxy("ALMotion", IP, 9559)
    postureProxy = ALProxy("ALRobotPosture",IP,9559)
    postureProxy.goToPosture("StandInit",0.5)

    motion.angleInterpolationBezier(names, times, keys);
    motion.openHand("RHand")
    time.sleep(1.0)
    postureProxy.goToPosture("StandInit",0.5)
    
'''
IP = '192.168.1.109'
myhand(IP,20)

motion1 = ALProxy("ALMotion", IP, 9559)
postureProxy1 = ALProxy("ALRobotPosture",IP,9559)
postureProxy1.goToPosture("StandInit",0.5)
handLeft(IP)
'''


转动头程序

# -*- coding: cp936 -*-
import sys
import time
import math
import head
from naoqi import ALProxy
import vision_definitions
if len(sys.argv) < 2:
	IP = '192.168.1.109'
else:
	IP = sys.argv[1]
PORT = 9559
motionProxy = ALProxy("ALMotion",IP,PORT)
postureProxy = ALProxy("ALRobotPosture",IP,PORT)
motionProxy.setStiffnesses ("Body",1)
#postureProxy.goToPosture("StandInit",0.5)
motionProxy.angleInterpolationWithSpeed("HeadYaw",20.0,0.3)
#hand.handLeft(IP)

阶梯跑程序

# -*- coding: cp936 -*-
from datetime import *
import sys
import time
import math
import upstair
import downstair
from naoqi import ALProxy
import vision_definitions

class ObstacleRun():
    def __init__ (self,IP,PORT):
        
        self.motionProxy = ALProxy("ALMotion",IP,PORT)
        self.memProxy = ALProxy("ALMemory",IP,PORT)
        self.postureProxy = ALProxy("ALRobotPosture",IP,PORT)
        self.tts = ALProxy("ALTextToSpeech", IP, PORT)
        self.visionProxy = ALProxy("WitVision", IP,PORT)
        self.videoProxy = ALProxy("ALVideoDevice",IP,PORT)
        self.isFrontTouched=0
        self.cy = -1
        self.theta = 91.0
    def BallCameraConfig(self):
        self.videoProxy.setParam(18,1)#Bottom Camera
        self.videoProxy.setParam(11,0)#AutoExposure
        self.videoProxy.setParam(17,90)#Exposure
        self.videoProxy.setParam(0,119)#Brightness
    def run(self):
        
        try:
            self.visionProxy.registerToVideoDevice(1,13)
        except Exception, e:
            #print e
            pass
        self.BallCameraConfig()
        
        self.motionProxy.setStiffnesses ("Body",1)
        self.postureProxy.goToPosture("Stand", 0.75)
        
        while True:
            self.isFrontTouched  = self.memProxy.getData("FrontTactilTouched")
            if(self.isFrontTouched>0):
                break
        
        self.motionProxy.setWalkTargetVelocity(0.6,0,-0.02,0.1,[['MaxStepX',1.0],['StepHeight',0.005]],[['MaxStepX',1.0],['StepHeight',0.005]])
        time.sleep(10.5)
        
        ###############  first up  ##############
        while True:
            self.left = self.memProxy.getData("LeftBumperPressed")
            if self.left == 1:
                self.motionProxy.stopMove()
                upstair.run(IP)
                break
            self.motionProxy.setWalkTargetVelocity(0.1,0,0.0,0.7,[['MaxStepX',1.0],['StepHeight',0.005]],[['MaxStepX',1.0],['StepHeight',0.005]])
        #self.postureProxy.goToPosture("Stand", 0.75)
        self.postureProxy.goToPosture("StandInit",0.5)
        ############################################
        
        ###############  second up  ################
        while True:
            self.left = self.memProxy.getData("LeftBumperPressed")
            if self.left == 1:
                self.motionProxy.stopMove()
                upstair.run(IP)
                break
            self.motionProxy.setWalkTargetVelocity(0.08,-0.05,-0.002,0.7,[['MaxStepX',0.05],['StepHeight',0.005]],[['MaxStepX',0.05],['StepHeight',0.005]])
        #self.postureProxy.goToPosture("Stand", 0.75)
        self.postureProxy.goToPosture("StandInit",0.5)
        ##############################################
        
        ################  third up ###################
        while True:
            self.left = self.memProxy.getData("LeftBumperPressed")
            if self.left == 1:
                self.motionProxy.stopMove()
                upstair.run(IP)
                break
            self.motionProxy.setWalkTargetVelocity(0.1,-0.008,-0.002,0.7,[['MaxStepX',0.05],['StepHeight',0.005]],[['MaxStepX',0.05],['StepHeight',0.005]])
        #self.postureProxy.goToPosture("Stand", 0.75)
        self.postureProxy.goToPosture("StandInit",0.5)
        ##############################################
        
        self.motionProxy.setWalkTargetVelocity(0.8,0.0,0.0,0.7,[['MaxStepX',0.05],['StepHeight',0.005]],[['MaxStepX',0.05],['StepHeight',0.005]])
        time.sleep(1.5)
        self.motionProxy.setWalkTargetVelocity(0.05,0.0,0.0,0.7,[['MaxStepX',0.05],['StepHeight',0.005]],[['MaxStepX',0.05],['StepHeight',0.005]])
        time.sleep(0.5)
        self.motionProxy.setWalkTargetVelocity(0,0,0,0)
        
        
        ############ Close the edage  ################
        while True:
            self.visionProxy.FindLine(BUMax, BUMin, BVMax,  BVMin,  BIMax,  BIMin )
            #self.cy = self.memProxy.getData("FindObstacle/cy")
            
            self.theta = self.memProxy.getData("FindLine/theta")
            print self.theta
            if self.theta < 5 and self.theta > -5:
                self.motionProxy.stopMove()
                break
            elif self.theta == 91.0:
                self.motionProxy.stopMove()
            else:
                self.motionProxy.setWalkTargetVelocity(0,0,-self.theta/120,0.4)
                
        self.cy = self.memProxy.getData("FindObstacle/cy")
        while self.cy < 205:
            self.motionProxy.setWalkTargetVelocity(0.1, 0, 0.02, 0.4)
            self.visionProxy.FindLine(BUMax, BUMin, BVMax,  BVMin,  BIMax,  BIMin )
            self.cy = self.memProxy.getData("FindObstacle/cy")
            print self.theta," " ,  self.cy
        self.motionProxy.stopMove()
        ##############################################
        
        ###########  Down stair #################
        downstair.first(IP)  
        downstair.second(IP)
        downstair.third(IP)    
        ##########################################
        
        self.motionProxy.setWalkTargetVelocity(1.0,0.0,-0.02,0.7,[['MaxStepX',0.05],['StepHeight',0.005]],[['MaxStepX',0.05],['StepHeight',0.005]])
        time.sleep(15)
        self.motionProxy.stopMove()
    def __del__(self):
        self.visionProxy.unRegisterFromVideoDevice()
        self.tts.say("Game Over")
    	        
if __name__ == "__main__": 

    if len(sys.argv) <= 1:
        IP = "127.0.0.1"
    else:
        IP = sys.argv[1]
    PORT = 9559
#################################
    BUMax = 140
    BUMin = 119
    BVMax = 87
    BVMin = 47
    BIMax = 255
    BIMin = 250
#################################  
    
    root = ObstacleRun(IP,PORT)
    root.run()
    



踢球程序

# -*- coding: cp936 -*-
from datetime import *
import threading
import sys
import time
import math
from naoqi import ALProxy
import vision_definitions

class ObstacleRun(threading.Thread):
    def __init__ (self,IP,PORT):
        threading.Thread.__init__(self)
        self.kickProxy = ALProxy("WitMotion", IP, PORT)
        self.memProxy = ALProxy("ALMemory",IP,PORT)
        self.motionProxy = ALProxy("ALMotion",IP,PORT)
        self.postureProxy = ALProxy("ALRobotPosture",IP,PORT)
        self.tts = ALProxy("ALTextToSpeech", IP, 9559)
        self.isFrontTouched=0
        self.isMiddleTouched=0
        self.isRearTouched=0
        self.Maxcx=230
        self.Mincx=170
        self.center_x = 200
        self.Mincy=213
        self.Maxcy=225
        self.center_y = 220
        self.cx = -1
        self.cy = -1
        self.PI = 3.1415926
        self.theta = -0.04
        self.theta2 = -0.02
        global BALL
    
    def run(self):
        #self.motionProxy.setStiffnesses ("Body",1)
        #self.postureProxy.goToPosture("StandInit",0.5)
        while True:
            self.isFrontTouched  = self.memProxy.getData("FrontTactilTouched")
            if(self.isFrontTouched>0):
                self.motionProxy.setStiffnesses ("Body",1)
                self.postureProxy.goToPosture("StandInit",0.5)
                break
        self.cy = self.memProxy.getData("FindObstacle/cy")
        while(self.cy < 220):
            if(self.cy == -1):
                self.motionProxy.setWalkTargetVelocity(0.1,0,0,0.5)
                self.tts.say("I can't find the ball")
                    
            else:
                self.mytheta = math.atan(1.0 * (190 - self.cx)/190*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.4+(240-self.cy)/400.0,0,self.mytheta-0.02,0.7)
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.38, 0.3)
        self.motionProxy.setWalkTargetVelocity(0.3,0,0.0,0.6)
        
        
        ############ Close the ball ################
        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if( self.cx == self.center_x):
                self.y = 0
            elif( self.cy == self.center_y ):
                self.x = 0
            elif( self.cx == -1 or self.cy == -1):
                self.x = 0
                self.y = 0
                if self.count == 0 or self.count%100 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
            else:
                self.x = (self.center_y - self.cy)/abs(self.center_y - self.cy)*(0.4 - abs( self.cy/800.0))
                self.y = (self.center_x - self.cx)/abs(self.center_x - self.cx)*(0.5-( self.cx/1000.0))
            print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
            self.motionProxy.setWalkTargetVelocity(self.x, self.y ,-0.02,0.5)

        self.motionProxy.stopMove()
        self.kickProxy.KickBallWithAngle(3.7)  
        BALL.clear()      
    def __del__(self):
        self.tts.say("Game Over")
class naoVision(threading.Thread):
    def __init__ (self, IP,PORT):
        threading.Thread.__init__(self)
        self.visionProxy = ALProxy("WitVision", IP,PORT)
        self.videoProxy = ALProxy("ALVideoDevice",IP,PORT)
        global BALL
    def BallCameraConfig(self):
        self.videoProxy.setParam(18,1)#Bottom Camera
        self.videoProxy.setParam(11,0)#AutoExposure
        self.videoProxy.setParam(17,41)#Exposure
        self.videoProxy.setParam(0,119)#Brightness
    def run(self):
        
        try:
            self.visionProxy.registerToVideoDevice(1,13)
        except Exception, e:
            #print e
            pass
        self.BallCameraConfig()
        while BALL.isSet():
                self.visionProxy.FindObstacle(BUMax, BUMin, BVMax,  BVMin,  BIMax,  BIMin )
                time.sleep(0.2)
    def __del__(self):
        self.visionProxy.unRegisterFromVideoDevice()      

if __name__ == "__main__":

#################################
    BUMax = 131
    BUMin =112
    BVMax = 104
    BVMin = 56
    BIMax = 197
    BIMin = 101
#################################
    BALL = threading.Event()
    BALL.set()
    
    IP = '192.168.1.178'
    PORT = 9559
    
    vision = naoVision(IP,PORT)
    root = ObstacleRun(IP,PORT)
    vision.start()
    root.start()
    



捡垃圾程序


import datetime
import threading
import sys
import time
import math
import pickUp
import hand
from naoqi import ALProxy
import vision_definitions

class ObstacleRun(threading.Thread):
    def __init__ (self,IP):
        threading.Thread.__init__(self)
        self.kickProxy = ALProxy("WitMotion", IP, 9559)
        self.memProxy = ALProxy("ALMemory",IP,9559)
        self.motionProxy = ALProxy("ALMotion",IP,9559)
        self.postureProxy = ALProxy("ALRobotPosture",IP,9559)
        self.videoProxy = ALProxy("ALVideoDevice",IP,9559)
        self.tts = ALProxy("ALTextToSpeech", IP, 9559)
        self.motionProxy.setWalkArmsEnabled(True,True)
        self.isFrontTouched=0
        self.isMiddleTouched=0
        self.isRearTouched=0
        self.PI = 3.1415926
        self.Maxcx=178
        self.Mincx=168
        self.center_x = 173
        self.Mincy=170
        self.Maxcy=180
        self.center_y = 175
        self.x = 0
        self.y = 0
        self.theta1 = 0.0
        self.theta2 = 0.0
        self.cx = -1
        self.cy = -1
        self.signal = True
        self.count = 0
        self.timeBegin = ''
        global BALL
    def SwitchTheta(self,nao):
        if nao == 1:
            self.theta = -0.02
            self.theta2 = -0.01
        if nao == 2:
            self.theta = -0.02
            self.theta2 = -0.01
        if nao == 3:
            self.theta = self.theta_nao3_1
            self.theta2 = self.theta_nao3_2
        if nao == 4:
            self.theta = -0.03
            self.theta2 = -0.02
    def Camera(self):
		self.videoProxy.setParam(18,1)#Bottom Camera
		self.videoProxy.setParam(11,0)#AutoExposure
		#self.videoProxy.setParam(0,119)#Brightness
		self.videoProxy.setParam(17,60)
    def approachRubbish(self):
        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if( self.cx == self.center_x):
                self.y = 0
            elif( self.cy == self.center_y ):
                self.x = 0
            elif( self.cx == -1 or self.cy == -1):
                self.x = 0
                self.y = 0
                if self.count == 0 or self.count%100 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
            else:
                self.x = (self.center_y - self.cy)/abs(self.center_y - self.cy)*(0.3 - abs( self.cy/800.0))
                self.y = (self.center_x - self.cx)/abs(self.center_x - self.cx)*(0.4-( self.cx/1000.0))
            print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
            self.motionProxy.setWalkTargetVelocity(self.x, self.y ,self.theta2,0.35)
            
            
####################################################################################################
            self.isRearTouched  = self.memProxy.getData("RearTactilTouched")
            self.isMiddleTouched  = self.memProxy.getData("MiddleTactilTouched")
            if(self.isRearTouched>0):
                self.motionProxy.stopMove()
                break
            if(self.isMiddleTouched>0):
                self.motionProxy.stopMove()
                break
####################################################################################################
    def approachRubbish_1(self):
        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
            if self.cx == -1 and self.cy == -1:
                self.tts.say("I can not find the ball")
            elif( self.cx < self.Mincx):
                self.motionProxy.setWalkTargetVelocity(0, 0.2 ,self.theta2, 0.35)
            elif( self.cx > self.Maxcx ):
                self.motionProxy.setWalkTargetVelocity(0, -0.2 ,self.theta2, 0.35)
            else:
                if( self.cy < self.Mincy):
                    self.motionProxy.setWalkTargetVelocity(0.2 ,0, self.theta2, 0.35)
                elif( self.cy > self.Maxcy ):
                    self.motionProxy.setWalkTargetVelocity(-0.2 ,0, self.theta2, 0.35)
            time.sleep(0.4)
            print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
            
####################################################################################################
            self.isRearTouched  = self.memProxy.getData("RearTactilTouched")
            self.isMiddleTouched  = self.memProxy.getData("MiddleTactilTouched")
            if(self.isRearTouched>0):
                self.motionProxy.stopMove()
                break
            if(self.isMiddleTouched>0):
                self.motionProxy.stopMove()
                break
####################################################################################################

    def run(self):
        self.SwitchTheta(nao)
        self.Camera()
        self.motionProxy.setStiffnesses ("Body",1)
        self.postureProxy.goToPosture("StandInit",0.5)
        while True:
            self.isFrontTouched  = self.memProxy.getData("FrontTactilTouched")
            if(self.isFrontTouched>0):
                #self.motionProxy.setStiffnesses ("Body",1)
                #self.postureProxy.goToPosture("StandInit",0.5)
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.15, 0.3)
                break
        self.timeBegin = datetime.datetime.now()
        time.sleep(0.2)
        self.motionProxy.setWalkTargetVelocity(0.7,0,-0.04,0.7)
        time.sleep(8.0)
        print 'walk'
        self.cx = self.memProxy.getData("FindObstacle/cx")
        self.cy = self.memProxy.getData("FindObstacle/cy")
        while(self.cy < 190):
            if(self.cy == -1):
                self.motionProxy.setWalkTargetVelocity(0.0,0,0,0.5)
                if self.count == 0 or self.count%100 == 0:
                    self.tts.say("I can not find the ball")
                    self.count = self.count + 1
                #self.motionProxy.setWalkTargetVelocity(1.0,0,0,1.0)
            else:
                self.mytheta = math.atan(1.0 * (160 - self.cx)/160*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta+self.theta1,0.7)
                #self.motionProxy.setWalkTargetVelocity(1.0,0,self.mytheta,1.0)
            if self.cy > 140 and self.signal:
                #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
                self.signal = False
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
        self.count = 0
        self.signal = True
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.38, 0.3)
        self.motionProxy.setWalkTargetVelocity(0.3,0,self.theta1,0.6)
        time.sleep(1.0)
        
        self.approachRubbish()
        self.approachRubbish_1()
        self.motionProxy.stopMove()

        print "find the rubbish"
        self.count = 0
        #self.motionProxy.setWalkTargetVelocity(0.0, 0,0,0)
        self.tts.say("Next, I will pick up the rubbish")
        time.sleep(0.5)
        #self.kickProxy.KickBallWithAngle(3.7)
        pickUp.run(IP)
        self.motionProxy.setWalkArmsEnabled(True,False)
        BALL.clear()
        #self.motionProxy.angleInterpolationWithSpeed("HeadPitch",-0.15, 0.3)
        self.motionProxy.setWalkTargetVelocity(0.7,0,-0.14,0.7)
        time.sleep(4.0)
        self.cx = self.memProxy.getData("FindObstacle/cx")
        self.cy = self.memProxy.getData("FindObstacle/cy")
        while(self.cy < 140):
            if(self.cy == -1):
                self.motionProxy.setWalkTargetVelocity(0.0,0,0,0.5)
                if self.count == 0 or self.count%100 == 0:
                    self.tts.say("I can not find the dustbin")
                    self.count = self.count + 1
            else:
                self.mytheta = math.atan(1.0 * (150 - self.cx)/150*math.tan(47.8/2*self.PI/180))
                self.motionProxy.setWalkTargetVelocity(0.7,0,self.mytheta + self.theta1,0.7)
            if self.cy > 110 and self.signal:
                self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.0, 0.3)
                self.signal = False
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/cy")
        self.signal = True
        self.count = 0
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.38, 0.3)
        self.motionProxy.setWalkTargetVelocity(0.3,0,self.theta1,0.6)
        time.sleep(1.0)

        self.center_x = 220
        self.center_y = 32 
        self.Maxcx = 251
        self.Mincx = 232
        self.Maxcy = 40
        self.Mincy = 30

        while( self.cx < self.Mincx or self.cx > self.Maxcx or self.cy < self.Mincy or self.cy > self.Maxcy):
            self.cx = self.memProxy.getData("FindObstacle/cx")
            self.cy = self.memProxy.getData("FindObstacle/MinY")
            if( self.cx == self.center_x):
                self.y = 0
            elif( self.cy == self.center_y ):
                self.x = 0
            elif( self.cx == -1 or self.cy == -1):
				self.x = 0
				self.y = 0
				if self.count == 0 or self.count%100 == 0:
				    self.tts.say("I can not find the dustbin")
    				self.count = self.count + 1
            else:
                self.x = (self.center_y - self.cy)/abs(self.center_y - self.cy)*(0.3-abs( self.cy/800.0))
                self.y = (self.center_x - self.cx)/abs(self.center_x - self.cx)*(0.5-( self.cx/1000.0))
            print "( ",self.cx," ",self.cy," )","x == ",self.x,"y ==",self.y
            self.motionProxy.setWalkTargetVelocity(self.x, self.y ,self.theta2,0.35)
            
            self.isRearTouched  = self.memProxy.getData("RearTactilTouched")
            self.isMiddleTouched  = self.memProxy.getData("MiddleTactilTouched")
            if(self.isRearTouched>0):
                self.motionProxy.stopMove()
                break
            if(self.isMiddleTouched>0):
                self.motionProxy.stopMove()
                break
        print "Over"
        self.motionProxy.stopMove()
        #self.postureProxy.goToPosture("StandInit",0.5)
        self.motionProxy.angleInterpolationWithSpeed("HeadPitch",0.38, 0.3)
        time.sleep(0.2)
        self.cx = self.memProxy.getData("FindObstacle/cx")
        #self.cy = self.memProxy.getData("FindObstacle/cy")
        print 'cx == ',self.cx,'cy == ',self.cy
        if self.cx == -1:
            hand.myhand(IP,8)
        else:
            hand.myhand(IP,254-self.cx)
        time.sleep(0.2)
        self.timeEnd = datetime.datetime.now()
        print (self.timeEnd - self.timeBegin).seconds," seconds"
        self.postureProxy.goToPosture("StandInit",0.5)
        self.motionProxy.setWalkArmsEnabled(True,True)
        

    def __del__(self):
        self.tts.say("Game over")
        self.motionProxy.stopMove()
class naoVision(threading.Thread):
    def __init__ (self, IP):
        threading.Thread.__init__(self)
        self.visionProxy = ALProxy("WitVision", IP, 9559)
        self.videoProxy = ALProxy("ALVideoDevice",IP,9559)
        global BALL
    def BallCameraConfig(self):
        self.videoProxy.setParam(18,1)#Bottom Camera
        self.videoProxy.setParam(11,0)#AutoExposure
        self.videoProxy.setParam(17,95)#Exposure
        self.videoProxy.setParam(0,119)#Brightness
    def run(self):
        
        try:
            self.visionProxy.registerToVideoDevice(1,13)
        except Exception, e:
            #print e
            pass
        self.BallCameraConfig()
        while True:
            if BALL.isSet():
                #print "Find Ball"
                self.visionProxy.FindObstacle(BUMax, BUMin, BVMax,  BVMin,  BIMax,  BIMin )
                time.sleep(0.2)
            else:
                #print "Find Pole"
                self.visionProxy.FindObstacle(UMax, UMin, VMax,  VMin,  IMax,  IMin )
                time.sleep(0.2)
    def __del__(self):
        self.visionProxy.unRegisterFromVideoDevice()
        

if __name__ == "__main__":

    if(len(sys.argv)<2):
        IP = '192.168.1.182'
        nao = 4
    elif(len(sys.argv)<3):
        IP = sys.argv[1]
        nao = 1
    else:
        IP = sys.argv[1]
        nao = sys.argv[2]
    BALL = threading.Event()

    BALL.set()
##############################
    BUMax = 126
    BUMin =107
    BVMax = 138
    BVMin = 128
    BIMax = 255
    BIMin = 204
###############################
##############################
    UMax = 167
    UMin = 134
    VMax = 91
    VMin = 41
    IMax = 255
    IMin = 148
###############################

    robot = ObstacleRun(IP)
    robot.start()
    vision = naoVision(IP)
    vision.start()








猜你喜欢

转载自blog.csdn.net/zouroot/article/details/50618051