RM新时代赚钱项目

CS機器人29999端口的使用

2024-11-06

 1. 端口介紹  

29999 端口支持大量的查詢(xún)、設置及控制命令,允許用戶(hù)或者高級開(kāi)發(fā)人員通過(guò) TcpSocket 發(fā)送字符串命令來(lái)對 EliRobot 機器人平臺進(jìn)行控制。命令默認需以“\n”作為結束輸入標識符,因此在發(fā)送命令時(shí)要以“\n”結尾,否則將被認為未完成輸入,不會(huì )被響應。  

2. 連接機器人  

以 socket 助手為例,只需要知道機器人的 ip,端口填寫(xiě) 29999。連接成功后機器人返回如下數據:

EliRobot dashboard shell, version 2.5.0.0.

These shell commands are defined internally. Type `help' to see this list.

Type `help name' to find out more about the function `name'.

3.  Socket助手使用29999端口

下圖是加載任務(wù)指令,例如我需要加載wdqw.task任務(wù),如下圖所示,切記需要加換行。


發(fā)送成功后,助手返回如下圖,并且機器人日志也會(huì )顯示加載任務(wù)wdqw



4. 端口指令  (python)

以下是使用python控制29999端口的所有指令(版本v1.0),關(guān)于命令詳解可查看 CS 手冊附件中的 EliRobot Dashboard 教程。技術(shù)資料_機器人技術(shù)-艾利特機器人用戶(hù)手冊附件


dict = {'上電': 'robotControl -on',

'釋放抱閘': 'brakeRelease',

'關(guān)閉正在顯示的安全模式彈出框并清除報警':'closeSafetyDialog',

'檢驗當前連接狀態(tài)':'echo',

'獲取 configuration和task 兩個(gè)命令的用法示例':'help configuration task',

'添加日志信息':'log -a CS系列',

'彈出消息框':'popup -s CS系列',

'關(guān)閉彈出框':'popup -c',

'斷開(kāi)連接':'quit',

'重啟':'reboot',

'下電':'robotControl -off',

'獲取機器人模式':'robotMode',

'獲取機器人類(lèi)型':'robot -t',

'關(guān)機':'shutdown',

'獲取機器人當前狀態(tài)信息':'status',

'解除機器人保護性停止':'unlockProtectiveStop',

'獲取popup命令的用法示例':'usage popup',

'獲取版本':'version',

'help configuration task':'help configuration task' ,

'暫停':'pause',

'運行當前任務(wù)':'play',

'安全狀態(tài)':'safety -s',

'安全模式':'safety -m',

'重啟安全系統':'safety -r',

'獲取速度':'speed',

'設置速度 50%':'speed -v 50',  【應用版本2.14.3之前,包括2.14.3】

'設置速度 50%':'speed -set 50',【應用版本2.14.3之后,包括2.14.3】

'停止':'stop',

'加載任務(wù)':'task -p 1.task',

'獲取任務(wù)狀態(tài)':'task -s',

'獲取任務(wù)是否在運行':'task -r',

'獲取任務(wù)保存狀態(tài)':'task -ss',

'加載配置文件':'configuration -p cs1.configuration',

'查看當前配置文件修改狀態(tài)':'configuration -s'


5. Python 連接示例  

import socket import time

while True:

sk = socket.socket()#建立socket通訊

sk.connect(('機器人ip',29999))#連接ip和端口       

send_data = input('>>>') # 輸入命令

send_data = str(send_data + '\n') # 命令轉字符串加換行

sk.sendall(bytes(send_data, "utf-8"))#發(fā)送給機器人

time.sleep(0.2)     

recvData = sk.recv ( 4096 )#接受機器人返回信息

recvData =str(recvData)

print ( recvData )#打印返回信息

sk.close()#通訊關(guān)閉  


6. 注意事項

6.1 時(shí)序依賴(lài)命令功能結果異常

dashboard shell 命令服務(wù)器在接收到命令請求進(jìn)行相關(guān)處理后,調用相關(guān)資源運行命令對應的功能,但是對應的功能執行通常不是瞬時(shí)執行完畢的,而 dashboard shell 命令服務(wù)器只負責執行對應的功能,不負責等待功能執行完畢,也不對執行結果負責,因此當時(shí)命令請求間隔時(shí)間較短同時(shí)又有時(shí)序上的依賴(lài),就會(huì )出現功能執行結果異常。

如 popup -s 是用于在 EliRobot 上彈出一個(gè)消息框,而 popup -c 則用于關(guān)閉最近由 popup 命令彈出的消息框,若在一個(gè)命令請求中組合使用多個(gè)命令請求(如下圖所示),其結果是難以保證是預期的結果。因為組合命令的預期是對應功能執行完成的先后順序同命令請求中的先后順序一致,然后實(shí)際中不同命令的功能大小,執行時(shí)長(cháng)不同,因此功能執行完成的先后順序同命令請求中的先后順序不是必然相同的。

因此不建議有時(shí)序依賴(lài)的多個(gè)命令請求寫(xiě)在一個(gè)命令請求中。  

6.2 狀態(tài)依賴(lài)命令功能結果異常

有些命令有狀態(tài)依賴(lài),即后者正常執行需要前者命令對應的功能正常執行后的結果如機器人釋放抱閘需要依賴(lài)機器人上電狀態(tài),未上電不能釋放抱閘。這類(lèi)有狀態(tài)依賴(lài)的命令若被寫(xiě)入到一個(gè)命令請求中,也會(huì )因為所依賴(lài)的狀態(tài)未能及時(shí)被滿(mǎn)足從而導致命令執行失敗。 如下圖所示將機器人下電、上電及釋放抱閘命令請求寫(xiě)在一個(gè)命令請求中,期望dashboard shell 服務(wù)器能夠一次給機器人下電、上電及釋放抱閘,然后實(shí)則三個(gè)命令請求近乎同時(shí)執行,因此釋放抱閘所依賴(lài)的機器人上電狀態(tài)時(shí)不能得到滿(mǎn)足的,因而導致執行結果并不能達到期望結果。



download-669.svg comicon14.svg

電話(huà)咨詢(xún)

download-397.svg comicon15.svg

免費試用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

準備好體驗輪式人形機器人帶來(lái)的效率飛躍了嗎?開(kāi)啟智能制造之旅
了解我們的機器人如何幫助您的業(yè)務(wù)增長(cháng)
歡迎下載艾利特機器人資料

我已閱讀并同意艾利特《隱私政策》和《法律聲明》

我已知曉并同意艾利特通過(guò)電子郵件發(fā)送相關(guān)資料

提交
RM新时代赚钱项目