nao机器人导入自己写的python程序_python程序控制NAO机器人行走

这篇博客介绍了如何通过Python程序调用NAO机器人的API,实现让NAO机器人进行行走和手臂动作的控制。首先启动僵直度,然后设置初始姿势,启用步行手臂控制并保护脚部接触。接着设定不同的行走速度,最后执行手臂用户运动,通过角度插值实现不同手臂动作。
摘要由CSDN通过智能技术生成

最近重新学习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)

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值