通过Python终端输入命令对NAO机器人进行实时控制
生活随笔
收集整理的這篇文章主要介紹了
通过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操作命令如下:
參考代碼如下:
#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机器人进行实时控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker网络模式与资源控制管理
- 下一篇: Java中的String为什么是不可变的