python程序控制NAO机器人行走

yipeiwu_com5年前Python基础

最近重新学习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设计】。

相关文章

python实现复制整个目录的方法

本文实例讲述了python实现复制整个目录的方法。分享给大家供大家参考。具体分析如下: python有一个非常好用的目录操作类库shutil,通过这个库可以很简单的复制整个目录及目录下的...

Python中字符串的常见操作技巧总结

本文实例总结了Python中字符串的常见操作技巧。分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >&...

详解Python list 与 NumPy.ndarry 切片之间的对比

详解Python list 与 NumPy.ndarry 切片之间的区别 实例代码: # list 切片返回的是不原数据,对新数据的修改不会影响原数据 In [45]: list1...

跟老齐学Python之玩转字符串(1)

如果对自然语言分类,有很多中分法,比如英语、法语、汉语等,这种分法是最常见的。在语言学里面,也有对语言的分类方法,比如什么什么语系之类的。我这里提出一种分法,这种分法尚未得到广大人民群众...

pyinstaller参数介绍以及总结详解

pyinstaller参数介绍以及总结详解

最近利用tkinter+python+pyinstaller实现了小工具的项目,在此记录下pyinstaller相关参数以及爬过的坑。 一、pyinstaller相关参数...