踢球程序
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()