python

超轻量级php框架startmvc

python程序控制NAO机器人行走

更新时间:2020-07-01 08:12:01 作者:startmvc
最近重新学习nao的官方文档,写点简单的程序回顾一下。主要是用python调用api,写下来保存

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


'''Walk:small example to make nao walk'''
import sys
import motion
import time
from naoqi import ALProxy
def 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) 

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

python控制NAO机器人行走 python机器人行走 python机器人