python程序控制NAO机器人行走

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

相关推荐

  • python实现nao机器人身体躯干和腿部动作操作

    本文实例为大家分享了python实现nao机器人身体躯干和腿部动作的具体代码,供大家参考,具体内容如下 跟上一篇类似,代码没什么难度,可以进行扩展. #-*-encoding:UTF-8-*- '''control nao's left foot, cartesian control:torso and foot trajectories ''' import sys import motion from naoqi import ALProxy def StiffnessOn(proxy):

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

    本文实例为大家分享了python实现nao机器人手臂动作的具体代码,供大家参考,具体内容如下 这些天依然在看nao公司文档的东西,把读过的代码顺手敲了出来.代码依然很简单,但是为什么我要写博客呢?这其中有很大的原因在于,代码是死的,可是读着读着就感觉代码活了,而且,每次读都会有不同的感受.咱就直接看正题吧. #-*-encoding:UTF-8-*- import sys import motion import almath from naoqi import ALProxy def Stif

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

    本文实例为大家分享了python控制nao机器人身体动作的具体代码,供大家参考,具体内容如下 今天读的代码,顺便写了出来,与文档的对比,差不多. import sys import motion import almath import naoqi from ALProxy def StiffnessOn(proxy): pName="Body" pStiffnessLists pTime=1.0 proxy.stiffnessInterpolation(pName,pStiffnes

  • python程序控制NAO机器人行走

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

  • python实现Nao机器人的单目测距

    本文实例为大家分享了python实现Nao机器人单目测距的具体代码,供大家参考,具体内容如下 此代码适于用做对Nao机器人做视觉识别和测距实验,只提供关键代码部分,尝试利用cv2去优化代码会更加简洁哟! 此代码的主要功能: 1.初始姿态下,通过更换摄像头和转头去寻找目标 2.通过颜色阈值识别目标,计算目标与Nao的距离和角度 可以扩展功能: 1.在运动过程中对方向和距离进行多次测量和校正,提高准确度 2.找到目标后,通过对目标的测量,选择使用哪个脚去踢目标 #!/usr/bin/python2.

  • python机器人行走步数问题的解决

    本文实例为大家分享了python机器人行走步数问题,供大家参考,具体内容如下 #! /usr/bin/env python3 # -*- coding: utf-8 -*- # fileName : robot_path.py # author : zoujiameng@aliyun.com.cn # 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. # 例如,当k为18时,机器人能够

  • python实现机器人行走效果

    本文实例为大家分享了python实现机器人行走效果的具体代码,供大家参考,具体内容如下 #! /usr/bin/env python3 # -*- coding: utf-8 -*- # fileName : robot_path.py # author : zoujiameng@aliyun.com.cn # 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. # 例如,当k为18时,

  • OpenCV NAO机器人辅助捡球丢球流程分析

    目录 1. 概述 2. 相关技术 2.1 NAO机器人 2.2 Choregraphe 3. 总体设计与详细设计 3.1 系统模块划分 3.2 主要功能模块 4 视频展示 1. 概述 NAO机器人身高58cm,体重5.4kg.主要硬件包括CPU.主板.扬声器.话筒.红外线.相机.超声波(声呐).传感器.电机.语音合成器.陀螺仪等.实验室中NAO机器人的型号为NAOH25,其构造如下: NAO机器人的操作系统为Gentoo Linux,它支持Windows.Linux.Mac OS等操作系统的远程

  • python实现微信机器人: 登录微信、消息接收、自动回复功能

    安装wxpy pip install -U wxpy 登录微信 # 导入模块 from wxpy import * # 初始化机器人,扫码登陆 bot = Bot() 运行以上代码,会生成一个二维码,通过图片扫描二维码即可登录微信. 如果是在服务器上运行代码,无法显示图片的时候, 可以选择通过终端显示二维码图片, 只需要将代码改成: from wxpy import * bot = Bot(console_qr=True) 运行的效果如下: 当然,为了安全,这个二维码做了模糊处理 如果你认为每次

  • 详解用python自制微信机器人,定时发送天气预报

    0 引言 前段时间找到了一个免费的天气预报API,费了好段时间把这个API解析并组装成自己想用的格式了,就想着如何实现每天发送天气信息给自己.最近无意中发现了wxpy库,用它来做再合适不过了.以下是wxpy库的简介: wxpy基于itchat,使用了 Web 微信的通讯协议,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展.实现了微信登录.收发消息.搜索好友.数据统计.微信公众号.微信好友.微信群基本信息获取等功能. 废话不多说,代码写起来. 1 环境 操作系统:Windows / Li

随机推荐