通过Python终端输入命令对NAO机器人进行实时控制
功能简述
通过运行python文件,可以对NAOv6机器人的动作进行控制,实现基本的前进后退转弯等动作,只需要在终端输入对应命令即可
环境配置及运行说明:
前提:ubuntu18.04 系统
安装
Python2.7
,程序仅能在该版本中运行。将
pynaoqi-python2.7-2.8.6.23-linux64
解压放到主目录中。设置环境变量。
在终端输入:
gedit ~/.bashrc
在行尾添加以下语句,具体路径根据本地电脑情况进行更改:
export PYTHONPATH=${PYTHONPATH}:/home/leo/pynaoqi-python2.7-2.8.6.23-linux64/lib/python2.7/site-packages
输入命令使环境变量生效:
source ~/.bashrc
用网线连接NAO机器人(确保此时是Naoqi系统,否则需要刷机重置),按压胸口,在浏览器中输入相应的ip地址,此时会要求输入账户和密码,默认都为
nao
,按照指示勾选一些条款后,会进入NAO机器人的WIFI页面,此时,可以手动修改机器人连接的WIFI,确保与电脑在同一局域网下,为了保证通信流畅,最好使用单独的路由器。修改完成后重启机器人。此时,机器人和电脑端就在同一局域网下了,断开网线,按压机器人胸口,获得此时的ip地址,将得到的ip地址填入代码指定位置,具体见注释。
在
moveControl.py
文件路径下运行:python2.7 moveControl.py
操作命令如下:
W 前进一大步w 前进S/s 后退A/a 左移D/d 右移Q/q 左转E/e 右转B/b 站起R/r 坐下
参考代码如下:
#coding=UTF-8import sys
import time
import almath
import threading
from naoqi import ALProxyip="" #机器人ip地址,务必保证此时机器人和电脑端在同一局域网下,按胸口获得地址,如 ip="192.168.1.100"zero_pi=3.1415 #圆周率πdef lookAround():toward=1.0tts=ALProxy("ALMotion",ip,9559)while True:tts.setStiffnesses("Head",1.0)names="HeadYaw"angles =30.0*almath.TO_RAD*towardfractionMaxSpeed=0.3tts.setAngles(names,angles,fractionMaxSpeed)time.sleep(1)tts.setStiffnesses("Head",0.0)toward=-towarddef excute(operate):tts=ALProxy("ALMotion",ip,9559)if operate == "r" or operate == "R": #机器人坐下tts.rest()if operate == "b" or operate == "B": #机器人站立tts.wakeUp()if operate == "w": #前进 tts.moveTo(0.1,0.0,0.0)tts.waitUntilMoveIsFinished()if operate == "W": #前进一大步tts.moveTo(0.5,0.0,0.0,_async=True)if operate == "s" or operate == "S": #后退tts.moveTo(-0.1,0.0,0.0)tts.waitUntilMoveIsFinished()if operate == "a" or operate == "A": #向左移动tts.moveTo(0.0,0.05,0.0)tts.waitUntilMoveIsFinished()if operate == "d" or operate == "D": #向右移动tts.moveTo(0.0,-0.05,0.0)tts.waitUntilMoveIsFinished()if operate == "q" or operate == "Q": #向左转tts.moveTo(0.0,0.0,zero_pi/8)tts.waitUntilMoveIsFinished()if operate == "e" or operate == "E": #向右转tts.moveTo(0.0,0.0,-zero_pi/8)tts.waitUntilMoveIsFinished()if __name__ == "__main__":t1=threading.Thread(target=lookAround,name="lookAround") #将转头的操作函数放入进程,持续运行t1.start()time.sleep(1)while True:operate=raw_input("输入操作:")excute(operate)time.sleep(1.0)
通过Python终端输入命令对NAO机器人进行实时控制相关推荐
- python 终端执行命令
python 终端执行命令 os的system原理 system函数可以将字符串转化成命令在服务器上运行:其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无 ...
- IT开发人员如何解决在使用终端输入命令时候 中英文频繁切换?
我们的痛点: IT开发或者测试,在使用终端输入命令的时候,特别是vi的时候,由于shift按键是高频按键,我们想要切换为英文,却一度切换到中文,很烦,有没有什么解决办法可以降低这种烦恼?跟着我的步骤, ...
- 在终端输入命令打开mac自带的python工具IDLE
mac 默认是python2版本打开终端 输入IDLE 自动弹出IDLE,完成 python3版本在终端输入IDLE3 就ok了
- 解决Ubuntu Linux终端输入命令没有颜色提示的设置方法
1.打开终端,输入 sudo vim /etc/bash.bashrc 2. 找到PS1,替换成如下代码: PS1='${debian_chroot:+($debian_chroot)}\[\03 ...
- 苹果电脑macOS的各种问题(安装包;系统升级软件闪退解决方法;VSCode终端输入找不到命令、删除依赖报错)
目录 安装homebrew包管理工具 nvm安装 MacOS系统升级到12.4版本出现大波软件闪退 Mac的VSCode里终端里输入命令会出现 zsh: command not found 删除nod ...
- 干货-运行Python脚本的命令行操作(2)
本文用到的数据,可以加QQ跟群主获取: 群名称:PYTHONERS-数据 群 号:663468799 学习python和数据分析推荐地方: www.lynda.com 获取lynda官网会员的 ...
- python怎样执行curl命令_如何使用python执行curl命令
如何使用python执行curl命令 我想在python中执行curl命令. 通常,我只需要在终端输入命令并按回车键. 但是,我不知道它在python中是如何工作的. 该命令如下所示: curl -d ...
- linux 怎么用命令行运行python文件_Linux命令行常用命令及python应用
通常用户和电脑交互是通过图形用户界面(GUI), 更快捷的方式是通过命令行界面(Command line interface), 通过在终端输入命令来实现文件夹和程序间的切换.Linux 和OS X都 ...
- Mac 终端——常用命令语
mac系统如何显示和隐藏文件 苹果Mac OS X操作系统下,隐藏文件是否显示有很多种设置方法,最简单的要算在Mac终端输入命令.显示/隐藏Mac隐藏文件命令如下(注意其中的空格并且区分大小写): 显 ...
最新文章
- 记一次CPU飙升的问题分析解决思路(转)
- PHP之GD函数的使用
- tostring、(string)和 String.valueOf()
- 单调队列优化的背包问题
- 在win10在使用cmder代替Linux是怎样的体验
- 贪心算法(各种贪心题目)
- node.js与python_Node.js与Python
- jvm参数-verbose:gc和-XX:+PrintGC有区别?
- c语言实验报告字符数组,C语言实验报告《数组》
- TP-LINK-TL-WR703N刷Breed用Openwrt固件挂MP288打印机服务共享手机打印服务
- H5第三方专业支付接口、安全稳定、费率优惠
- java 定时为每月10号_Java定时器的cron设置详解Quartz
- PCIE 转 spi 总线
- 苹果电脑双系统安装及使用心得
- 显ip图片签名php,简单几步,教你制作自己的显IP签名档
- 网页版本模拟linux,Firefox OS 模拟器
- 第三届强网杯线上赛记录
- 大学生活该如何度过?思维导图告诉你
- Jmeter javax.swing.text.BadLocationException: Position not represented by view 解决方法
- java识别图片中文字技术