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高手之路python处理excel文件(方法汇总)
Jan 07 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python实现的凯撒密码算法示例
Apr 12 Python
对python中raw_input()和input()的用法详解
Apr 22 Python
python使用webdriver爬取微信公众号
Aug 31 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
python清空命令行方式
Jan 13 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
什么是python类属性
Jun 10 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
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python开发之str.format()用法实例分析
2016/02/22 Python
Python+django实现简单的文件上传
2016/08/17 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
Python常见工厂函数用法示例
2018/03/21 Python
聊聊python中的异常嵌套
2020/09/01 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
武汉东之林科技有限公司机试
2013/09/17 面试题
进程的查看和调度分别使用什么命令
2013/12/14 面试题
繁星春水读书笔记
2015/06/30 职场文书
2015年除四害工作总结
2015/07/23 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
学习心得体会
2019/06/20 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python