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实现的防DDoS脚本
Feb 08 Python
videocapture库制作python视频高速传输程序
Dec 23 Python
Python实现简单登录验证
Apr 13 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
pytorch 输出中间层特征的实例
Aug 17 Python
python将dict中的unicode打印成中文实例
May 11 Python
jupyter notebook的安装与使用详解
May 18 Python
python查看矩阵的行列号以及维数方式
May 22 Python
django restframework serializer 增加自定义字段操作
Jul 15 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
在 Python 中利用 Pool 进行多线程
Apr 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
php中将一个对象保存到Session中的方法
2015/03/13 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
js实现右键菜单功能
2016/11/28 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
对python Tkinter Text的用法详解
2018/10/11 Python
详解Python的三种可变参数
2019/05/08 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python ATM功能实现代码实例
2020/03/19 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
python 发送邮件的示例代码(Python2/3都可以直接使用)
2020/12/03 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
应届护士推荐信
2013/11/16 职场文书
仓库主管岗位职责
2014/03/02 职场文书
工伤私了协议书范本
2014/11/24 职场文书
秋季运动会开幕词
2015/01/28 职场文书
个人工作决心书
2015/09/22 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书