python

超轻量级php框架startmvc

python实现nao机器人手臂动作控制

更新时间:2020-07-01 07:42 作者:startmvc
本文实例为大家分享了python实现nao机器人手臂动作的具体代码,供大家参考,具体内容如下

本文实例为大家分享了python实现nao机器人手臂动作的具体代码,供大家参考,具体内容如下

这些天依然在看nao公司文档的东西,把读过的代码顺手敲了出来。代码依然很简单,但是为什么我要写博客呢?这其中有很大的原因在于,代码是死的,可是读着读着就感觉代码活了,而且,每次读都会有不同的感受。咱就直接看正题吧。


#-*-encoding:UTF-8-*-
import sys
import motion
import almath
from naoqi import ALProxy
 
def StiffnessOn(proxy):
 #we use the body name to signify the collection of all jionts
 pName="Body"
 pStiffnessLists=1.0
 pTimeLists=1.0
 proxy.stiffnessInterpolation(pName,pStiffnessLists,pTimeLists)
 
def main(robotIP):
 ''' example showing a path of two position
 '''
 try:
 motionProxy=ALProxy("ALMotion",robotIP,9559)
 except Exception ,e:
 print"could not create a proxy to almotion"
 print str(e)
 
 try:
 postureProxy=ALProxy("ALRobotPosture",robotIP,9559)
 except Exception ,e:
 print"could not create a proxy to alRobotPosture"
 print str(e)
 #set the nao stiffness on
 StiffnessOn(motionProxy)
 
 #set the nao to standinit
 postureProxy.goToPosture("StandInit",0.5)
 
 effector="LArm"
 space=motion.FRAME_ROBOT
 # AXIS_MASK_VEL=7
 axisMask=almath.AXIS_MASK_VEL
 isAbsolute=False
 #since we are in relative, the current position is zero
 currentPos=[0.0,0.0,0.0,0.0,0.0,0.0]
 #define the changes in relative to the current position 
 dx=0.03 #translation axis x
 dy=0.03 #translation axis y
 dz=0.00 #translation axis z
 dwx=0.00 #rotation axis x
 dwy=0.00 #rotation axis x
 dwz=0.00 #rotation axis x
 
 targetPos=[dx,dy,dz,dwx,dwy,dwz]
 
 #go to the target and back again
 path=[targetPos,currentPos]
 times=[2.0,4.0]#seconds
 motionProxy.positionInterpolation(effector,space,path,axisMask,times,isAbsolute)
 
if __name__=="__main()__":
 robotIP="127.0.0.1"
 if len(sys.argv)<=1:
 print "use default :127.0.0.1"
 else:
 robotIP=sys.argv[1] 
main(robotIP)

接下来是另一个:


#-*-encoding:UTF-8-*-
''' Cartesian control :arm trajectory example'''
 
import sys
import motion
import almath
from naoqi import ALProxy
def StiffnessOn(proxy):
 pName="Body"
 pStiffnessLists=1.0
 pTimeLists=1.0
 proxy.stiffnessInterpolation(pName,pStiffnessLists,pTimeLists)
 
 
def main(robotIP):
 '''showing a hand ellipoid
 '''
 try:
 motionProxy=ALProxy("ALProxy",robotIP,9559)
 except Exception,e:
 print"could not create a proxy "
 print"error was ",e
 
 try:
 postureProxy=ALProxy("ALRobotProxy",robotIP,9559)
 except Exception ,e:
 print"could not create a proxy"
 print "error was",e
 
 #send nao in stiffness on
 setStiffnessOn(motionProxy)
 #send nao to pose init
 postureProxy.goToPosture("StandInit",0.5)
 
 effector="LArm"
 space=motion.FRAME_ROBOT
 path=[
 [0.0,-0.05,+0.00,0.0,0.0,0.0], #pose1
 [0.0,+0.00,+0.04,0.0,0.0,0.0], #pose2
 [0.0,+0.04,+0.00,0.0,0.0,0.0], #pose3
 [0.0,+0.00,-0.02,0.0,0.0,0.0], #pose4
 [0.0,-0.05,+0.00,0.0,0.0,0.0], #pose5
 [0.0,+0.00,+0.00,0.0,0.0,0.0]
 ] #pose6
 axisMask=7
 times=[0.5,1.0,2.0,3.0,4.0,4.5] #seconds 
 
 isAbsolute=False
 motionProxy.positionInterpolation(effector,space,path,axisMask,times,isAbsolute)
 
if __name__=="__main__":
 robotIP="127.0.0.1"
 if len(sys.argv)<=1:
 print "usage local ip "
 else:
 robotIP=sys.argv[1]
 main(robotIP) 

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