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


Posted in Python onApril 29, 2019

本文实例为大家分享了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状态,这样操作来获得数据。后者操作性更强,但由于实际原因,用前者的可能性是最大的。

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

Python 相关文章推荐
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
简单介绍Python中的JSON模块
Apr 08 Python
python3实现暴力穷举博客园密码
Jun 19 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
python实现批量nii文件转换为png图像
Jul 18 Python
python 判断三个数字中的最大值实例代码
Jul 24 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python产生模拟数据faker库的使用详解
Nov 04 Python
python中对列表的删除和添加方法详解
Feb 24 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 #Python
解决Python找不到ssl模块问题 No module named _ssl的方法
Apr 29 #Python
GitHub 热门:Python 算法大全,Star 超过 2 万
Apr 29 #Python
python实现nao机器人手臂动作控制
Apr 29 #Python
python机器人运动范围问题的解答
Apr 29 #Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 #Python
Python 实现微信防撤回功能
Apr 29 #Python
You might like
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python版学生管理系统
2018/01/10 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
室内设计实习自我鉴定
2013/09/25 职场文书
仓库组长岗位职责
2014/01/29 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
效能风暴心得体会
2014/09/04 职场文书
大学生实训报告总结
2014/11/05 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
甲午大海战观后感
2015/06/02 职场文书
在Django中使用MQTT的方法
2021/05/10 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android