亚洲无码三级大黄_两个男生开车哭声声音_美女裸体无遮挡扒开尿囗_欧美毛多水多肥妇

CS機(jī)器人29999端口的使用

2024-11-06

 1. 端口介紹  

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

2. 連接機(jī)器人  

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

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ā)送成功后,助手返回如下圖,并且機(jī)器人日志也會顯示加載任務(wù)wdqw



4. 端口指令  (python)

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


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

'釋放抱閘': 'brakeRelease',

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

'檢驗(yàn)當(dāng)前連接狀態(tài)':'echo',

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

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

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

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

'斷開連接':'quit',

'重啟':'reboot',

'下電':'robotControl -off',

'獲取機(jī)器人模式':'robotMode',

'獲取機(jī)器人類型':'robot -t',

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

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

'解除機(jī)器人保護(hù)性停止':'unlockProtectiveStop',

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

'獲取版本':'version',

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

'暫停':'pause',

'運(yùn)行當(dāng)前任務(wù)':'play',

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

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

'重啟安全系統(tǒng)':'safety -r',

'獲取速度':'speed',

'設(shè)置速度 50%':'speed -v 50',

'停止':'stop',

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

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

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

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

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

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


5. Python 連接示例  

import socket import time

while True:

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

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

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

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

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

time.sleep(0.2)     

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

recvData =str(recvData)

print ( recvData )#打印返回信息

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


6. 注意事項(xiàng)

6.1 時(shí)序依賴命令功能結(jié)果異常

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

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

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

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

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



download-669.svg comicon14.svg

電話咨詢

download-397.svg comicon15.svg

免費(fèi)試用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

準(zhǔn)備好突破增長瓶頸,開啟智能制造了嗎?
了解我們的機(jī)器人如何幫助您的業(yè)務(wù)增長
歡迎下載艾利特機(jī)器人資料

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

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

提交