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标准日志模块logging的使用方法
Nov 01 Python
Python基于select实现的socket服务器
Apr 13 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Python多层装饰器用法实例分析
Feb 09 Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
Dec 05 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
python框架django项目部署相关知识详解
Nov 04 Python
Python持续监听文件变化代码实例
Jul 22 Python
Python list去重且保持原顺序不变的方法
Apr 03 Python
Python包argparse模块常用方法
Jun 04 Python
图神经网络GNN算法
May 11 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 miniBB中文乱码问题解决方法
2008/11/25 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
seajs学习教程之基础篇
2016/10/20 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
Django REST framework 分页的实现代码
2019/06/19 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
linux系统都有哪些运行级别
2012/04/15 面试题
诉讼授权委托书
2014/10/15 职场文书
大学生党员个人总结
2015/02/13 职场文书
入党培养人考察意见
2015/06/08 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
深入理解python多线程编程
2021/04/18 Python
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android