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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。