首页 > 编程 > Python > 正文

python程序控制NAO机器人行走

2019-11-25 12:58:19
字体:
来源:转载
供稿:网友

最近重新学习nao的官方文档,写点简单的程序回顾一下。主要是用python调用api,写下来保存着。

'''Walk:small example to make nao walk'''import sysimport motionimport timefrom naoqi import ALProxydef StiffnessOn(proxy): #we use the 'body' to signify the collection of all joints pName="Body" pStiffnessLists=1.0 pTimeLists=1.0 proxy.stiffnessInterpolation(pName,pStiffnessLists,pTimeLists)  def main(robotIP):  #init proxies  try:   motionProxy=ALProxy("ALMotion",robotIP,9559)  except Exception,e:   print "could not create proxy to ALMotion"   print"error was",e   try:   postureProxy=ALProxy("ALRobotPosture",robotIP,9559)  except Exception,e:   print"could not create proxy to ALRobotPosture"   print "error is ",e    #set nao in stiffness on   StiffnessOn(motionProxy)    #send nao to pose init   postureProxy.goToPosture("StandInit",0.5);    #eable arms control by walk algorithm   motionProxy.setWalkArmsEable(True,True)   #foot contact protection   motionProxy.setMotionConfig([["ENABLE_FOOT_CONTACT_PROTECTION",True]])    #target velocity   X=-0.5 #backward   Y=0.0   Theta=0.0   Frequency=0.0#low speed   motionProxy.setWalkTargetVelocity(X,Y.Theta,Frequency)   time.sleep(4.0)    #target velocity   X=0.9   Y=0.0   Theta=0.0   Frenqency=1.0#max speed   motionProxy.setWalkTargetVelocity(X,Y,Theta,Frenquency)   time.sleep(2.0)    #arms user motion   #arms motion from user have alwalys priority than walk arms motion   JoinNames=["LShouderPitch","LShouderRoll","LElbowYaw","LElbowRoll"]   Arm1=[-40,25,0,-40]   Arm1=[x*motion.TO_RAD for x in Aram1]      Arm2=[-40,50,0,-80]   Arm2=[x*motion.TO_RAD for x in Aram2]    pFractionMaxSpeed=0.6    motionProxy.angleInterpolationWithSpeed(JoinNames,Arms1,pFractionMaxSpeed)   motionProxy.angleInterpolationWithSpeed(JoinNames,Arms2,pFractionMaxSpeed)   motionProxy.angleInterpolationWithSpeed(JoinNames,Arms1,pFractionMaxSpeed)    #end walk   X=0.0   Y=0.0   Theta=0.0   motionProxy.setWalkTargetVelocity(X,Y,Theta,Frequency) if __name__=="__main__": robotIP="192.168.1.155" if len(sys.argv)<=1:  print "useage pyhton motion_walk.py robotIP,default is 127.0.0.1" else:   robotIp=sys.argv[1] main(robotIP) 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表