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基础之函数用法实例详解
Sep 10 Python
Python中os.path用法分析
Jan 15 Python
Python实现的简单算术游戏实例
May 26 Python
Python定时器实例代码
Nov 01 Python
关于Python的一些学习总结
May 25 Python
创建Django项目图文实例详解
Jun 06 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
pip install 使用国内镜像的方法示例
Apr 03 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
Python内置函数及功能简介汇总
Oct 13 Python
Django drf请求模块源码解析
Jun 08 Python
详解Python为什么不用设计模式
Jun 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学习资源和链接.
2006/12/05 PHP
简单的PHP图片上传程序
2008/03/27 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
使用jquery mobile做幻灯播放效果实现步骤
2013/01/04 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
Node.js使用Express创建Web项目详细教程
2017/03/31 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
Vue实现购物车实例代码两则
2020/05/30 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python的装饰器模式与面向切面编程详解
2015/06/21 Python
Python基于select实现的socket服务器
2016/04/13 Python
Python文件的读写和异常代码示例
2017/10/31 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
乡镇保密工作承诺书
2015/05/04 职场文书
对学校的意见和建议
2015/06/04 职场文书
初一语文教学反思
2016/03/03 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
MySQL优化之慢日志查询
2022/06/10 MySQL
Linux中sftp常用命令整理
2022/06/28 Servers