python程序控制NAO机器人行走


Posted in Python onApril 29, 2019

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

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

Python 相关文章推荐
Python数组遍历的简单实现方法小结
Apr 27 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
安装好Pycharm后如何配置Python解释器简易教程
Jun 28 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 Python
Python实现的扫码工具居然这么好用!
Jun 07 Python
Python实现列表拼接和去重的三种方式
Jul 02 Python
Python 中 Shutil 模块详情
Nov 11 Python
Django web框架使用url path name详解
Apr 29 #Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 #Python
Django使用redis缓存服务器的实现代码示例
Apr 28 #Python
django的settings中设置中文支持的实现
Apr 28 #Python
Django数据库类库MySQLdb使用详解
Apr 28 #Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
Apr 28 #Python
​如何愉快地迁移到 Python 3
Apr 28 #Python
You might like
虫族 Zerg 魔法科技
2020/03/14 星际争霸
一个php Mysql类 可以参考学习熟悉下
2009/06/21 PHP
php分页函数示例代码分享
2014/02/24 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
php微信公众号开发之二级菜单
2018/10/20 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
网上抓的一个特效
2007/05/11 Javascript
js弹出的对话窗口永远保持居中显示
2012/12/15 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
举例讲解Python中装饰器的用法
2015/04/27 Python
python 性能优化方法小结
2017/03/31 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
python实现远程控制电脑
2019/05/23 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
xml有哪些解析技术?区别是什么
2016/04/26 面试题
高三语文复习计划
2015/01/19 职场文书
商务考察邀请函模板
2015/02/02 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
2015年库房工作总结
2015/04/30 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
Nginx的gzip相关介绍
2022/05/11 Servers