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使用cPickle模块序列化实例
Sep 25 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
python求解水仙花数的方法
May 11 Python
python实现统计代码行数的方法
May 22 Python
详解Python迭代和迭代器
Mar 28 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
Python面向对象之继承代码详解
Jan 29 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
python快速排序的实现及运行时间比较
Nov 22 Python
Python新手学习装饰器
Jun 04 Python
Django --Xadmin 判断登录者身份实例
Jul 03 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php中cookie的作用域
2008/03/27 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
PHP合并数组函数array_merge用法分析
2017/02/17 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
Python正则表达式常用函数总结
2017/06/24 Python
python安装教程
2018/02/28 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
Python类的动态绑定实现原理
2020/03/21 Python
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
物流管理专业应届生求职信
2013/11/21 职场文书
总经理助理职责
2014/02/04 职场文书
课内比教学心得体会
2014/09/09 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
国富论读书笔记
2015/06/26 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
深入探讨opencv图像矫正算法实战
2021/05/21 Python
Python Flask搭建yolov3目标检测系统详解流程
2021/11/07 Python
Golang并发工具Singleflight
2022/05/06 Golang