nao機器人使用

nao編程控制方式:

使用Choregraphe編程 在電腦上運行python(C++)文件遠程控制 在nao上運行python(C++)文件本地控制


一.使用Choregraphe

此方法是建立指令盒(參考手冊),舉例說明建立一個設置關節角度(控制關節移動)的指令盒,新建腳本指令盒,編輯名字,提示,輸入輸出點,還有參數

輸入點:可添加多個輸入點,每個輸入點都會在腳本文件中創建相應的方法,腳本文件中方法的名字和設置輸入點時的Name相對應,如默認輸入點名字onStart,在腳本文件中對應的會產生 如下方法:當此輸入點被激活是,會執行此方法中的語句

def onInput_onStart(self):

當此輸入點被激活是,會執行此方法中的語句


輸出點:輸出點我理解的輸出點就是設置一個輸出點的名字,然後在腳本中可編程實現輸出,如設置輸出點的名字Output,在腳本中可使用

self.Output(datetime.datetime.now())

來輸出,此輸出內容可直觀的看到,也可傳送到下一級的輸入端,到此,兩個指令盒就可以連在一起了


參數:此參數可在作爲一種輸入方式,操作指令盒是會在指令盒左下角顯示一個‘扳手’小圖標,點開之後可以選擇要輸入的參數,此參數有整數和浮點數型(可調整最大值與最小值),還有一種參數類型——附加文件,此類型可傳入一個文件類型的數據,比如保存有角度數據的txt文件,音樂文件等,參數使用方式:

整型、浮點型:

self.getParameter("設置的參數名字")
得到的就是想要的整數或者浮點數
附件文件:
ALFrameManager.getBehaviorPath(self.behaviorId) + self.getParameter("設置的參數名字")
這一行語句可得到文件的路徑,然後使用python中的open函數打開即可操作

輸入輸出點都有多種形式:數字、字符串、激活、動態,其中動態我理解的是無論輸入的是什麼信號,都能接收到,可動態匹配,至於激活就好像是脈衝一樣,來一個輸入就能用,但是具體能不能接收數子和字符串我也沒做實驗,數字和字符串就很好理解了,做指令盒連接時,輸入輸出最好相對應

具體操作過程如下:

1.在Flow diagram Panel中右鍵,添加一個新指令盒

2.輸入名稱、提示、選擇輸入點,輸出點,以及參數

3.雙擊指令盒打開腳本編輯器,程序編寫:

加載naoqi模塊:

    def onLoad(self):
        self.dcm = ALProxy("DCM")
        self.tts=ALProxy('ALTextToSpeech')
        self.motionProxy=ALProxy("ALMotion")
        #~ puts code for box initialization here
        pass
在onLoad方法中加載模塊

加載python模塊:

import time
import almath
import datetime
class MyClass(GeneratedClass):
在腳本編輯最開始的地方,類之外導入python帶的模塊


功能實現:

    def onInput_onStart(self):
        self.tts.say('Hello')
        self.motionProxy.setStiffnesses('RShoulderPitch',1)
        self.motionProxy.setAngles('RShoulderPitch',-100*almath.TO_RAD,10*almath.TO_RAD/8.267973899841309)
在onInput_onStart方法中添加實現功能的代碼

讀取參數的方法如上設置

輸出參數的方法如上設置

4.保存指令盒,可直接拖動指令盒到指令盒庫進行保存,此處可新建一個自己的指令盒庫,新建方法:點擊工具欄中的‘指令盒庫’選項進行新建保存即可

5.連接指令盒,從系統onStart點(Flow diagram Panel左上角,黑色的小三角)連線到指令盒的輸入點,指令盒的輸出點連或者不連下一級設備都可執行

6.點擊播放即可執行相應的動作

7.可將此行爲裝載機器人中,具體操作可參考使用手冊中行爲管理的使用方法


二、遠程控制

在本地編輯python程序,使用遠程控制方式,具體的編程方法手冊中說的很詳細

三、本地模式

編程方式和遠程控制相同,只是要把文件放到nao中,並把IP地址改成‘127.0.0.1’

將文件拷入nao中,終端使用命令:

scp '本地電腦文件路徑' nao@IP:/home      前面是本地文件的路徑,後面是要放入nao中的路徑
拷出時將路徑交換位置即可,若執行不了可使用scp -r  命令執行

登錄naoqi:

ssh nao@IP

以上基本都是在初學是使用過的,還有許多功能尚未使用,也可能有不對的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章