朋友的妈妈4_朋友的姐姐韩国电影|HD中文字幕在线播放,娃娃脸1977年经典娃娃脸1中字,韩国朋友的妈妈在线观看,以爱为营电视剧在线观看免费

CS機(jī)器人二次開(kāi)發(fā)端口總結(jié)

2024-11-05

1.  簡(jiǎn)介

艾利特CS機(jī)器人為方便用戶二次開(kāi)發(fā)而開(kāi)放了一些機(jī)器人控制器端口,包括29999、30001、30004、30011、30020、40011等。本質(zhì)都是TCP/IP協(xié)議,29999連接上位機(jī)(示教器界面),30001、30004、30011、30020、40011主要連接A9,原理都是通過(guò)socket通訊發(fā)送指定字符串或其它指定格式控制機(jī)器人或接收特定的格式數(shù)據(jù)進(jìn)行解析,目前沒(méi)有動(dòng)態(tài)鏈接庫(kù)連接對(duì)應(yīng)的控制器端口,各通訊接口相互獨(dú)立,可以同時(shí)使用

2.  操作流程

2.0. 端口簡(jiǎn)介

2.1. 端口選擇

● 29999(Dashboard)端口,可用于機(jī)器人的上下電操作、切換機(jī)器人的任務(wù)或配置、運(yùn)行,停止,暫停程序等操作。

● 30001端口,可用于獲取機(jī)器人的各種狀態(tài)及數(shù)據(jù),機(jī)器人會(huì)以10HZ的頻率向30001端口發(fā)送機(jī)器人的狀態(tài)數(shù)據(jù),還可以往30001端口發(fā)送腳本命令,運(yùn)動(dòng)指令,控制機(jī)器人運(yùn)動(dòng)等。

● 30004(RTSI)端口,全稱為實(shí)時(shí)數(shù)據(jù)交互,可用于獲取機(jī)器人的各種狀態(tài)及數(shù)據(jù),以及設(shè)置輸入訂閱(改變一下IO變量的值,調(diào)整速度滑塊等)與30001端口不同的是可按指定頻率訂閱用戶指定的數(shù)據(jù)返回,在返回速率方面最快可達(dá)250HZ。

● 30020(解釋器)端口,可用于實(shí)現(xiàn)一些動(dòng)態(tài)的腳本排隊(duì)運(yùn)行,比如用戶在自己的上位機(jī)程序,實(shí)時(shí)計(jì)算出一些運(yùn)行點(diǎn)位,用戶在程序運(yùn)行的過(guò)程中,將一些實(shí)時(shí)計(jì)算的腳本排隊(duì)到當(dāng)前運(yùn)行的任務(wù)后。

● 40011(明文狀態(tài)請(qǐng)求)端口,可用于獲取機(jī)器人的各種狀態(tài)及數(shù)據(jù)或者設(shè)置機(jī)器人相應(yīng)的參數(shù)(運(yùn)動(dòng)指令和耗時(shí)指令除外),與其他獲取數(shù)據(jù)端口相比,屬于一問(wèn)一答式數(shù)據(jù)回復(fù)類型,上位機(jī)發(fā)送對(duì)應(yīng)的請(qǐng)求,機(jī)器人返回對(duì)應(yīng)的數(shù)據(jù)。

● 端口詳細(xì)使用說(shuō)明可查看對(duì)應(yīng)的端口使用手冊(cè)技術(shù)資料_機(jī)器人技術(shù)-艾利特機(jī)器人。

2.2. 端口介紹及作用

2.2.1 29999端口介紹及作用

介紹

29999端口描述的是 EliRobot 機(jī)器人平臺(tái)開(kāi)放的 dashboard shell,允許用戶或開(kāi)發(fā)者通過(guò) TcpSocket 連接 EliRobot 的29999端口并對(duì)其進(jìn)行訪問(wèn)控制,其中讓包括機(jī)器人的上下電操作、切換機(jī)器人的任務(wù)或配置、運(yùn)行,停止,暫停程序等操作。

作用

EliRobot dashboard shell 提供了大量的命令,以便與 EliRobot 機(jī)器人平臺(tái)進(jìn)行交互,創(chuàng)建 TcpSocket 客戶端并連接 dashboard shell 后,發(fā)送對(duì)應(yīng)格式的字符至 EliRobot,即可控制機(jī)器人做出相應(yīng)的命令 。(端口詳細(xì)使用教程請(qǐng)查看EliRobot Dashboard 手冊(cè)或29999端口使用文檔技術(shù)資料_機(jī)器人技術(shù)-艾利特機(jī)器人)

2.2.2 30001端口介紹及作用

介紹:

30001端口描述的是 EliRobot 機(jī)器人平臺(tái)開(kāi)放的數(shù)據(jù)獲取端口,控制器會(huì)提供機(jī)器人的數(shù)據(jù)狀態(tài),例如關(guān)節(jié)角、溫度等等,這些數(shù)據(jù)都會(huì)通過(guò) socket 打包以10HZ的頻率發(fā)送至連接的客戶端。

除了獲取機(jī)器人的狀態(tài)信息外,還可以通過(guò)30001端口發(fā)送腳本來(lái)控制機(jī)器人的各種操作。

作用:

EliRobot 提供了大量狀態(tài)獲取數(shù)據(jù),以便與 EliRobot 機(jī)器人平臺(tái)進(jìn)行監(jiān)測(cè),創(chuàng)建 TcpSocket 客戶端并連接 30001端口后,系統(tǒng)會(huì)自動(dòng)返回的對(duì)應(yīng)格式的報(bào)文,可查詢機(jī)器人狀態(tài)報(bào)文表(30001端口詳細(xì)使用教程請(qǐng)查看機(jī)器人狀態(tài)報(bào)文示例或30001端口使用文檔技術(shù)資料_機(jī)器人技術(shù)-艾利特機(jī)器人)。

2.2.3 30004端口介紹及作用

介紹:

通過(guò)socket鏈接機(jī)器人的30004端口,可以按指定頻率訂閱用戶指定的數(shù)據(jù),例如,用戶程序socket鏈接30004端口后告訴控制器,需要訂閱”payload”變量,以125HZ發(fā)送,然后控制器就開(kāi)始按125HZ向用戶程序發(fā)送”payload”的值。這個(gè)功能叫做RTSI 全稱為實(shí)時(shí)數(shù)據(jù)交互(Real-Time Synchronization Interface), 該協(xié)議提供了標(biāo)準(zhǔn)的TCP/IP鏈接, 用于與外部程序進(jìn)行實(shí)時(shí)的數(shù)據(jù)交互。

- 輸出:機(jī)器人輸出整型寄存器的值、末端負(fù)載等

- 輸入:機(jī)器人浮點(diǎn)輸入寄存器、數(shù)字輸入IO的狀態(tài)設(shè)置  

作用:

- 輸出訂閱:客戶端向 RTSI 服務(wù)端發(fā)送輸出訂閱項(xiàng)并發(fā)送開(kāi)始信號(hào)后,服務(wù)端將按照客戶端所指定的頻率周期性發(fā)送所訂閱的數(shù)據(jù)。

- 輸入訂閱:客戶端向 RTSI 服務(wù)端發(fā)送輸出訂閱項(xiàng)并發(fā)送開(kāi)始信號(hào)后,客戶端可以向服務(wù)端發(fā)送訂閱的變量的值,服務(wù)端將會(huì)把這些值設(shè)置到機(jī)器人中。

- 消息傳輸:任何時(shí)刻,RTSI 的客戶端和服務(wù)端都可以向?qū)Ψ桨l(fā)送普通消息、警告消息、異常消息、錯(cuò)誤消息。

- 客戶端運(yùn)行環(huán)境:可以為任意的外部鏈接程序。

● 30004端口詳細(xì)使用教程請(qǐng)查看機(jī)器人RTSI使用說(shuō)明或30004端口使用文檔技術(shù)資料_機(jī)器人技術(shù)-艾利特機(jī)器人。

2.2.4 30011端口介紹及作用

介紹:

30011端口描述的是 EliRobot 機(jī)器人平臺(tái)開(kāi)放的數(shù)據(jù)獲取端口,控制器會(huì)提供機(jī)器人的數(shù)據(jù)狀態(tài),例如關(guān)節(jié)角、溫度等等,這些數(shù)據(jù)都會(huì)通過(guò) socket 打包以10HZ的頻率發(fā)送至連接的客戶端,與30001不同的是不受機(jī)器人模式影響,無(wú)法向端口發(fā)送腳本。

作用:

EliRobot 提供了大量狀態(tài)獲取數(shù)據(jù),以便與 EliRobot 機(jī)器人平臺(tái)進(jìn)行監(jiān)測(cè),創(chuàng)建 TcpSocket 客戶端并連接 30011端口后,系統(tǒng)會(huì)自動(dòng)返回的對(duì)應(yīng)格式的報(bào)文,可查詢機(jī)器人狀態(tài)報(bào)文表,可以在機(jī)器人任何模式下獲取對(duì)應(yīng)的數(shù)據(jù)。

2.2.4 30020端口介紹及作用

介紹:

系統(tǒng)進(jìn)入解釋器模式后,允許編程人員在任務(wù)運(yùn)行時(shí)發(fā)送并排隊(duì)運(yùn)行腳本語(yǔ)句,只需要腳本語(yǔ)句為有效的python語(yǔ)句即可,用戶可以將腳本語(yǔ)句通過(guò)30020端口,發(fā)送到控制器,控制器解收之后,會(huì)根據(jù)當(dāng)前的狀態(tài),對(duì)語(yǔ)句進(jìn)行編譯運(yùn)行。發(fā)送到30020端口的腳本語(yǔ)句,會(huì)以隊(duì)列的方式存儲(chǔ)在控制軟件內(nèi)部,并按順序執(zhí)行。

腳本語(yǔ)句必須為單行語(yǔ)句,并以\n作為結(jié)束符,如 set_tcp([0,0,0,0,0,0])\n。

● 30020端口詳細(xì)使用教程請(qǐng)查看機(jī)器人解釋器模式使用說(shuō)明或30020端口使用文檔技術(shù)資料_機(jī)器人技術(shù)-艾利特機(jī)器人。

作用:

用于實(shí)現(xiàn)一些動(dòng)態(tài)的腳本插隊(duì)運(yùn)行,比如用戶在自己的上位機(jī)程序,實(shí)時(shí)計(jì)算出一些運(yùn)行點(diǎn)位,用戶在程序運(yùn)行的過(guò)程中,將一些實(shí)時(shí)計(jì)算的腳本插隊(duì)到當(dāng)前運(yùn)行的任務(wù)當(dāng)中,腳本語(yǔ)句為有效的python語(yǔ)句且必須為單行語(yǔ)句。

2.2.5 40011端口介紹及作用

介紹:

用于實(shí)現(xiàn)明文TCPIP狀態(tài)請(qǐng)求,客戶端可以連接到系統(tǒng)的40011端口,通過(guò)下發(fā)固定格式的請(qǐng)求報(bào)文,獲取機(jī)器人的各種狀態(tài)及數(shù)據(jù)或者設(shè)置機(jī)器人相應(yīng)的參數(shù),屬于一問(wèn)一答式數(shù)據(jù)回復(fù)類型,上位機(jī)發(fā)送對(duì)應(yīng)的請(qǐng)求,機(jī)器人返回對(duì)應(yīng)的數(shù)據(jù)。該端口與SEC命令相同,不支持運(yùn)動(dòng)指令、延時(shí)指令等耗時(shí)指令,僅支持不耗時(shí)指令執(zhí)行。

作用:

目前CS軟件目前30001端口無(wú)返回值,用戶有較多的獲取返回值的需求(比如請(qǐng)求逆解結(jié)果)實(shí)現(xiàn)起來(lái)不夠方便。根據(jù)該需求,系統(tǒng)增加40011端口,用于實(shí)現(xiàn)快速的明文數(shù)據(jù)請(qǐng)求功能。

40011端口類似于一問(wèn)一答式與機(jī)器人交互。

2.3. 端口比較(獲取數(shù)據(jù)信息)

30001、30004、30011、40011端口對(duì)比(獲取數(shù)據(jù)信息)

● 30001和30011端口全數(shù)據(jù)獲取,頻率均為10HZ,區(qū)別30001可以響應(yīng)外部腳本輸入,30011僅用于外部監(jiān)測(cè)機(jī)器人狀態(tài),可在任意機(jī)器人模式下獲取。

● 30001和30004端口,30001為全數(shù)據(jù)獲取,頻率為10HZ,30004可訂閱輸出,最高頻率250HZ,例如客戶只想獲取機(jī)器人的力值,可通過(guò)30004端口訂閱,只接收力值,相對(duì)于30001更簡(jiǎn)便,無(wú)需考慮或者解析其他數(shù)據(jù)。

● 40011實(shí)現(xiàn)明文TCPIP狀態(tài)請(qǐng)求,下發(fā)固定格式的請(qǐng)求報(bào)文,可直接獲取機(jī)器人的各種狀態(tài)及數(shù)據(jù),無(wú)需復(fù)雜的轉(zhuǎn)化解析,30001目前無(wú)返回值,相對(duì)于用戶有較多的獲取返回值的需求(比如請(qǐng)求逆解結(jié)果),30001實(shí)現(xiàn)起來(lái)不夠方便。

● 獲取數(shù)據(jù)各個(gè)端口選擇使用,可根據(jù)客戶現(xiàn)場(chǎng)實(shí)際應(yīng)用來(lái)選擇對(duì)應(yīng)端口。

2.4. 端口比較(控制運(yùn)動(dòng))

● 30001端口無(wú)法實(shí)現(xiàn)一些動(dòng)態(tài)的腳本排隊(duì)運(yùn)行,只能保持當(dāng)前的腳本運(yùn)行,若第一個(gè)移動(dòng)腳本沒(méi)有執(zhí)行完,下一個(gè)移動(dòng)腳本已經(jīng)下發(fā),第一個(gè)移動(dòng)會(huì)直接停止,執(zhí)行下一個(gè)移動(dòng)。

● 30020端口用于在一定的條件下,實(shí)現(xiàn)用戶腳本的排隊(duì)運(yùn)行,比如用戶在自己的上位機(jī)程序,實(shí)時(shí)計(jì)算出一些運(yùn)行點(diǎn)位腳本,第一個(gè)任務(wù)在運(yùn)行的過(guò)程中,將一些實(shí)時(shí)計(jì)算的腳本排隊(duì)到當(dāng)前運(yùn)行的任務(wù)后。不會(huì)打斷第一個(gè)任務(wù)的執(zhí)行。

3.  常見(jiàn)問(wèn)題解答

● CS系列支持Python腳本運(yùn)行,并且腳本分為sec腳本與def腳本,def腳本為主程序腳本,一次僅支持一個(gè)def腳本運(yùn)行,如果在第一個(gè)def腳本運(yùn)行過(guò)程中,下發(fā)第二個(gè)def腳本,則會(huì)強(qiáng)制停止第一個(gè)運(yùn)行中的def腳本,去執(zhí)行新收到的def腳本,sec腳本可以與def腳本同時(shí)運(yùn)行,不會(huì)導(dǎo)致def腳本停止,但sec腳本不支持運(yùn)動(dòng)指令,并且不允許運(yùn)行耗時(shí)指令(如sleep、串口、socket的超時(shí)操作等),存在一定的限制。

3.1. 29999端口相關(guān)問(wèn)題

●  29999端口 EliRobot dashboard shell 的控制指令在執(zhí)行時(shí),需要注意機(jī)器人的狀態(tài)是否是處于遠(yuǎn)程模式,因?yàn)橛幸恍┲噶钚枰獧C(jī)器人在遠(yuǎn)程模式下才生效。

● dashboard命令以”\n”為結(jié)束輸入標(biāo)志,但某些第三方Socket工具設(shè)計(jì)使用鼠標(biāo)點(diǎn)擊按鍵提交輸入(不支持物理鍵盤(pán)的Enter提交),因此不會(huì)自動(dòng)在輸入末尾添加”\n”,導(dǎo)致dashboard認(rèn)為輸入未完成而不予響應(yīng),因此此類情況需在輸入末尾自行添加結(jié)束輸入標(biāo)志”\n”。

3.2. 30001端口相關(guān)問(wèn)題

● 遠(yuǎn)程模式:此時(shí)機(jī)器人僅能通過(guò)外部控制源對(duì)機(jī)器人進(jìn)行控制(比如外部連接30001后,發(fā)送控制腳本),示教器上,會(huì)鎖定,任務(wù)欄

● 本地模式:此時(shí)機(jī)器人僅能通過(guò)示教器對(duì)其進(jìn)行控制,外部的控制源連接會(huì)被強(qiáng)制斷開(kāi)(即連接到30001的服務(wù)均會(huì)被強(qiáng)制斷開(kāi)),防止發(fā)生危險(xiǎn)。

● 普通模式(非遠(yuǎn)程與本地模式):如在系統(tǒng)設(shè)置中,禁用遠(yuǎn)程控制模式,則此時(shí)系統(tǒng)會(huì)處于普通模式,該模式下不會(huì)對(duì)通過(guò)30001進(jìn)行的外部控制源進(jìn)行限制,可以理解為是遠(yuǎn)程模式+本地模式的狀態(tài),但此時(shí)無(wú)法執(zhí)行IO的啟動(dòng)程序的功能,并且無(wú)法執(zhí)行29999 Dashboard中的遠(yuǎn)程模式生效的指令。

● tcp通信的連包現(xiàn)象(包含30011端口),這個(gè)不是咱們的特性,所有的tcp通信都可能有這個(gè)現(xiàn)象。(接收到的是不是完整報(bào)文,那是根據(jù)報(bào)文長(zhǎng)度判斷的,比如報(bào)文長(zhǎng)度是100,本次他直接收到了80,那就要等另外20上來(lái)一起解析)。

3.3. 30004端口相關(guān)問(wèn)題

● RTSI 分為協(xié)議檢查、設(shè)置、同步循環(huán)三個(gè)步驟,當(dāng) RTSI客戶端接入時(shí)需要首先進(jìn)行協(xié)議版本的校驗(yàn),以確定是否可以繼續(xù)進(jìn)行通信

● 數(shù)據(jù)包都有統(tǒng)一的結(jié)構(gòu),都為報(bào)文頭+報(bào)文內(nèi)容的形式(有的數(shù)據(jù)包不需要報(bào)文內(nèi)容)

● 不同變量類型所占字節(jié)數(shù)不同

● 協(xié)議數(shù)據(jù)采用大端模式

● 訂閱輸入輸出需要注意(客戶搞反)

3.4. 30020端口相關(guān)問(wèn)題

● 目前解釋中運(yùn)行非運(yùn)動(dòng)類的耗時(shí)腳本(如sleep指令),會(huì)完整的等待sleep命令執(zhí)行結(jié)束后,才可以自動(dòng)退出,中途即使調(diào)用了end_interpreter()命令,也不會(huì)強(qiáng)制停止耗時(shí)腳本運(yùn)行。

● 任務(wù)運(yùn)行狀態(tài)的控制,比如暫停、繼續(xù)、停止等,對(duì)解釋器模式同樣生效。

● 解釋器腳本隊(duì)列數(shù)量上限目前為8500條,腳本隊(duì)列數(shù)量超過(guò)該數(shù)量時(shí),再次添加新的解釋器腳本,會(huì)返回discard信息,并拋棄新添加的腳本。

● 解釋器模式中目前不支持start_thread函數(shù)調(diào)用,下發(fā)的腳本中,如果包含了start_thread函數(shù)調(diào)用,會(huì)觸發(fā)對(duì)應(yīng)的discard。

● V2版本的解釋器模式,如果運(yùn)動(dòng)指令后有轉(zhuǎn)接半徑設(shè)置,并且沒(méi)有在規(guī)定時(shí)間內(nèi),下發(fā)后續(xù)的運(yùn)動(dòng)指令,會(huì)出現(xiàn)咯噔急停的情況,該現(xiàn)象目前認(rèn)為是正常情況。

● 請(qǐng)關(guān)注長(zhǎng)時(shí)間運(yùn)行,大量腳本隊(duì)列運(yùn)行,內(nèi)存是否存在異常的持續(xù)增加,并且通過(guò)停止運(yùn)行任務(wù)等操作無(wú)法降低的情況。

● clear_interpreter()函數(shù)ack后,會(huì)停止新的腳本ack,此時(shí)新的腳本會(huì)處于等待狀態(tài),只有當(dāng)clear_interpreter()執(zhí)行后,才會(huì)將等待狀態(tài)的腳本進(jìn)行ack。

3.5. 40011端口相關(guān)問(wèn)題

● 下發(fā)的id盡量每次不同,這樣便于管理,同時(shí)在一些同時(shí)請(qǐng)求的情況,可以區(qū)分返回值與請(qǐng)求之間的匹配關(guān)系,(如果沒(méi)有同時(shí)請(qǐng)求的情況,理論上來(lái)說(shuō)id不變也沒(méi)問(wèn)題,但并非一個(gè)好的請(qǐng)求習(xí)慣)。

● 該請(qǐng)求的調(diào)用函數(shù)規(guī)則與SEC函數(shù)相同,即不可以執(zhí)行運(yùn)動(dòng)指令(如movej命令)、不可以執(zhí)行耗時(shí)指令(如sleep等),不可以執(zhí)行無(wú)法退出的命令(如死循環(huán)等)。

● 與SEC命令類似,請(qǐng)求命令并不會(huì)打斷正在執(zhí)行的主函數(shù)(即def函數(shù))。


download-669.svg comicon14.svg

電話咨詢

download-397.svg comicon15.svg

免費(fèi)試用

Vector.svg Frame.svg

微信小程序

img1.jpg

微信小程序

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

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

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

提交