python程序控制NAO机器人行走
最近重新学习nao的官方文档,写点简单的程序回顾一下。主要是用python调用api,写下来保存着。
'''Walk:smallexampletomakenaowalk''' importsys importmotion importtime fromnaoqiimportALProxy defStiffnessOn(proxy): #weusethe'body'tosignifythecollectionofalljoints pName="Body" pStiffnessLists=1.0 pTimeLists=1.0 proxy.stiffnessInterpolation(pName,pStiffnessLists,pTimeLists) defmain(robotIP): #initproxies try: motionProxy=ALProxy("ALMotion",robotIP,9559) exceptException,e: print"couldnotcreateproxytoALMotion" print"errorwas",e try: postureProxy=ALProxy("ALRobotPosture",robotIP,9559) exceptException,e: print"couldnotcreateproxytoALRobotPosture" print"erroris",e #setnaoinstiffnesson StiffnessOn(motionProxy) #sendnaotoposeinit postureProxy.goToPosture("StandInit",0.5); #eablearmscontrolbywalkalgorithm motionProxy.setWalkArmsEable(True,True) #footcontactprotection motionProxy.setMotionConfig([["ENABLE_FOOT_CONTACT_PROTECTION",True]]) #targetvelocity X=-0.5#backward Y=0.0 Theta=0.0 Frequency=0.0#lowspeed motionProxy.setWalkTargetVelocity(X,Y.Theta,Frequency) time.sleep(4.0) #targetvelocity X=0.9 Y=0.0 Theta=0.0 Frenqency=1.0#maxspeed motionProxy.setWalkTargetVelocity(X,Y,Theta,Frenquency) time.sleep(2.0) #armsusermotion #armsmotionfromuserhavealwalysprioritythanwalkarmsmotion JoinNames=["LShouderPitch","LShouderRoll","LElbowYaw","LElbowRoll"] Arm1=[-40,25,0,-40] Arm1=[x*motion.TO_RADforxinAram1] Arm2=[-40,50,0,-80] Arm2=[x*motion.TO_RADforxinAram2] pFractionMaxSpeed=0.6 motionProxy.angleInterpolationWithSpeed(JoinNames,Arms1,pFractionMaxSpeed) motionProxy.angleInterpolationWithSpeed(JoinNames,Arms2,pFractionMaxSpeed) motionProxy.angleInterpolationWithSpeed(JoinNames,Arms1,pFractionMaxSpeed) #endwalk X=0.0 Y=0.0 Theta=0.0 motionProxy.setWalkTargetVelocity(X,Y,Theta,Frequency) if__name__=="__main__": robotIP="192.168.1.155" iflen(sys.argv)<=1: print"useagepyhtonmotion_walk.pyrobotIP,defaultis127.0.0.1" else: robotIp=sys.argv[1] main(robotIP)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。