python控制nao机器人身体动作实例

          今天读的代码,顺便写了出来,与文档的对比,差不多。
import sys
import motion
import almath
import naoqi from ALProxy

def StiffnessOn(proxy):
               pName="Body"
               pStiffnessLists
               pTime=1.0
               proxy.stiffnessInterpolation(pName,pStiffnessLists,pTime)

def main(robotIP):
               try:
                              motionProxy=ALProxy("ALMotion",robotIP,9559)
               except Exception,e:
                              print:"could not create a proxy!"
                              print:"error is ",e
                              
               try:
                              postureProxy=ALProxy("ALRobotPosture",robotIP,9559)
               except Exception,e:
                              print:"could not create a proxy!"
                              print:"error is ",e

               StiffnessOn(motionProxy)
               postureProxy.goToPosture("StandInit",0.5)

               space=motion.FRAME_ROBOT
               coef=0.5
               times=[coef,2.0*coef,3.0*coef,4.0*coef]
               isAbsolute=False
               dy=+0.06
               dz=-0.03
               dwx==+0.30

               effector="Torso"
               path=[
                              [0.0,-dy,dz,-dwx,0.0,0.0],
                              [0.0,0.0,0.0,0.0,0.0,0.0],
                              [0.0,+dy,dz,+dwx,0.0,0.0],
                              [0.0,0.0,0.0,0.0,0.0,0.0]
                            ]

               axisMask=almath.AXIS_MASK_ALL
               motionProxy.post.postionInterpolation(effector,space,path,times,isAbsolute)

               #motion of arms with block process
               axisMask=almath.AXIS_MASK_VEL
               times=[1.0*coef,2.0*coef]
               dy=+0.03
               effecor="RArm"
               path=[
                              [0.0,dy,0.0,0.0,0.0,0.0],
                              [0.0,0.0,0.0,0.0,0.0,0.0]
                           ]
               motionProxy.positionInterpolation(effector,space,path,axisMask,times,inAbsolute)

if __name__=="__main__":
               robotIP="127.0.0.1"

               if len(sys.argv)<=1:
                              print"useage default robotIP"
               else:
                              robotIP=sys.arv[1]
               main(robotIP)











               
               













               






               
               
               

实例二,控制左右胳膊


#-*-encoding:UTF-8 -*-

import sys
import motion
import almath
form naoqi import ALProxy

def StiffnessOn(proxy):
               pName="Body"
               pStiffnessLists=1.0
               pTimeLists=1.0
               proxy.stiffnessInterpolation(pName,pStiffnessLists,pTimeLists)

def main(robotIP):

               #create a proxy to almtion
               try:
                              motionProxy=ALProxy("ALMotion",robotIP,9559)
               except Exception,e:
                              print "could not create a proxy"
                              print "error is ",e

               #create a proxy to alrobotposture
               try:
                              postureProxy=ALProxy("ALRobotPosture",robotIP,9559)
               except Exception,e:
                              print "could not create a proxy"
                              print "error is ",e


               StiffnessOn(motionProxy)
               postureProxy.goToPosture("StandInit",0.5)
               space=motion.FRAME_ROBOT
               isAbsolute=False

               effectorList=["LArm","RArm"]
               #motion of arms with block process
               axisMaskList=[almath.AXIS_MASK_VEL,almath.AXIS_MASK_VEL]
               timeLists=[[1.0],[1.0]]
               pathList=[     
                                   [
                                       [0.0,-0.04,0.0,0.0,0.0,0.0]],
                                   [ 
                                       [0.0,0.04,0.0,0.0,0.0,0.0]]
                                ]
               motionProxy.positionInterpolation(effectorLists,space,pahtLists,axisMaskList,timeLists,isAbsolute)

               effectorLists=["LArm","RArm","Torso"]
               axisMaskLists=[
                              almath.AXIS_MASK_VEL,
                              almath.AXIS_MASK_VEL,
                              almath.AXIS_MASK_ALL
                              ]
               timeLists=[
                              [[0.0,0.0,0.0,0.0,0.0,0.0]],
                              [[0.0,0.0,0.0,0.0,0.0,0.0]],
                              [0.0,+dy,0.0,0.0,0.0,0.0],
                              [0.0,-dy,0.0,0.0,0.0,0.0],
                              [0.0,0.0,0.0,0.0,0.0,0.0]
                              ]
               motionProxy.positionInterpolations(effectorList,space,pathList,axisMaskList,timeList,isAbsolute)

if __name__=="__main__":
               robotIP="127.0.0.1"
               if(sys.argv<1):
                              print"usege default ip"
               else:
                              robotIP=sys.arv[1]
               main(robotIP)




                              





















               









                              

感受:

这些小的程序最不好处理的就是path中的数据了。这些数据是怎么获得的?最大的可能就是在choregraph中3D视图中测试得到,当然还有一种可能就是将choregraph与实体机连接,将机器人置于practice状态,这样操作来获得数据。后者操作性更强,但由于实际原因,用前者的可能性是最大的。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值