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

来源:互联网 发布:怎样学好js 编辑:程序博客网 时间:2024/06/10 04:40

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

#-*-encoding:UTF-8-*-import sysimport motionimport almathfrom naoqi import ALProxydef 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 sysimport motionimport almathfrom naoqi import ALProxydef 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)                              


0 0