本實用新型涉及機器人領(lǐng)域,具體而言,涉及一種機器人及機器人通信系統(tǒng)。
背景技術(shù):
機器人技術(shù)的發(fā)展是一個國家高科技水平和工業(yè)自動化程度的重要標(biāo)志和體現(xiàn)。機器人在當(dāng)前生產(chǎn)生活中的應(yīng)用越來越廣泛,正在替代人發(fā)揮著日益重要的作用。機器人技術(shù)是綜合了計算機、控制論、機構(gòu)學(xué)、信息和傳感技術(shù)、人工智能、仿生學(xué)等多學(xué)科而形成的高新技術(shù),集成了多學(xué)科的發(fā)展成果,代表高技術(shù)的發(fā)展前沿,是當(dāng)前科技研究的熱點方向。
智能機器人是第三代機器人,這種機器人帶有多種傳感器,能夠?qū)⒍喾N傳感器得到的信息進(jìn)行融合,能夠有效的適應(yīng)變化的環(huán)境,具有很強的自適應(yīng)能力、學(xué)習(xí)能力和自治功能。
目前研制中的智能機器人智能水平并不高,只能說是智能機器人的初級階段,在工業(yè)生產(chǎn)中,智能機器人在外部的通信較為簡單的,傳輸?shù)臄?shù)據(jù)比較單一,通信效果差。
針對上述機器人的下位機與上位機之間通信效果差的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本實用新型實施例提供了一種機器人及機器人通信系統(tǒng),以至少解決現(xiàn)有技術(shù)中機器人的下位機與上位機之間通信效果差的技術(shù)問題。
根據(jù)本實用新型實施例的一個方面,提供了一種機器人,包括:下位機,所述下位機中包括第一節(jié)點,其中,所述第一節(jié)點內(nèi)集成有第一消息隊列處理單元,其中,所述第一消息隊列處理單元利用消息與所述上位機通信,所述消息中攜帶有來自所述上位機或所述機器人的待傳輸數(shù)據(jù)。
進(jìn)一步地,所述機器人還包括:用于檢測所述機器人的運行參數(shù)的傳感器裝置;所述下位機還包括:用于將所述運行參數(shù)上傳至所述第一節(jié)點的第二節(jié)點。
進(jìn)一步地,所述機器人還包括:用于輸出所述第二節(jié)點接收的來自上位機的控制指令的輸出接口;用于在所述控制指令的控制下運動的執(zhí)行機構(gòu)。
進(jìn)一步地,所述傳感器裝置包括:用于檢測機器人狀態(tài)的內(nèi)部傳感器;用于檢測機器人所處環(huán)境的外部傳感器。
進(jìn)一步地,所述內(nèi)部傳感器包括:用于檢測機器人關(guān)節(jié)運行角度的角度傳感器;用于檢測機器人運動距離的位置傳感器;用于檢測機器人運動速度和加速度的速度和加速度傳感器;用于檢測機器人夾持某一物體所產(chǎn)生夾持力的力覺傳感器;以及用于檢測機器人關(guān)節(jié)轉(zhuǎn)動所產(chǎn)生扭轉(zhuǎn)力的扭力傳感器和扭矩傳感器;所述外部傳感器包括:用于檢測機器人在運動過程中與障礙物的距離,以及檢測機器人在運動過程中與目標(biāo)物體之間距離的距離傳感器;用于檢測機器人在工作環(huán)境中空氣環(huán)境的溫度傳感器或濕度傳感器;用于檢測物體的位置、角度、距離的位置覺傳感器;用于檢測機器人與待夾持物體是否接觸,以及接觸位置的接觸覺傳感器;用于檢測待機器人抓取的物體形狀的形狀覺傳感器;以及用于檢測機器人抓取的物體在垂直握持面方向的位移的滑覺傳感器。
進(jìn)一步地,所述第一消息隊列處理單元包括:用于向第二消息隊列處理單元發(fā)送機器人的運行參數(shù)和/或訂閱信息的第一子單元;用于接收所述第二消息隊列處理單元發(fā)送的控制指令和/或與所述訂閱信息相對應(yīng)的發(fā)布信息的第二子單元,其中,所述控制指令為所述上位機基于所述運行參數(shù)而生成,所述第二消息隊列處理單元處于所述上位機中。
進(jìn)一步地,所述第一消息隊列處理單元為ZeroMQ單元。
根據(jù)本實用新型實施例的另一個方面,提供了一種機器人通信系統(tǒng),包括:上位機,包括第二消息隊列處理單元;機器人,其中,第一消息隊列處理單元與所述第二消息隊列處理單元利用消息建立所述上位機與所述機器人之間的通信。
進(jìn)一步地,所述第二消息隊列處理單元包括:用于接收所述第一消息隊列處理單元發(fā)送的機器人的運行參數(shù)和/或訂閱信息的第三子單元;用于向所述第一消息隊列處理單元發(fā)送控制指令和/或與所述訂閱信息相對應(yīng)的發(fā)布信息的第四子單元,其中,所述控制指令為所述上位機基于所述運行參數(shù)而生成。
進(jìn)一步地,所述第二消息隊列處理單元為ZeroMQ單元。
在本實用新型實施例中,在機器人的下位機中設(shè)置有第一節(jié)點,并在該第一節(jié)點內(nèi)設(shè)置第一消息隊列處理單元,使機器人可以通過該第一消息隊列處理單元在機器人的下位機和上位機之間傳遞消息,實現(xiàn)機器人的下位機和上位機之間的通信,接收來自機器人上位機的待傳輸數(shù)據(jù),以及向上位機發(fā)送帶傳輸數(shù)據(jù),從而通過獨立設(shè)置的第一消息隊列處理單元,處理以及傳輸機器人上位機和下位機的消息,實現(xiàn)機器人的下位機和上位機之間的通信,解決現(xiàn)有技術(shù)中機器人的下位機與上位機之間通信效果差的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本實用新型的進(jìn)一步理解,構(gòu)成本申請的一部分,本實用新型的示意性實施例及其說明用于解釋本實用新型,并不構(gòu)成對本實用新型的不當(dāng)限定。在附圖中:
圖1是根據(jù)本實用新型實施例的一種機器人的示意圖;
圖2是根據(jù)本實用新型實施例的一種機器人通信系統(tǒng)的示意圖;
圖3是根據(jù)本實用新型實施例的一種可選的機器人通信系統(tǒng)的示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本實用新型方案,下面將結(jié)合本實用新型實施例中的附圖,對本實用新型實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本實用新型一部分的實施例,而不是全部的實施例?;诒緦嵱眯滦椭械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本實用新型保護(hù)的范圍。
需要說明的是,本實用新型的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本實用新型的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列單元的系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些產(chǎn)品或設(shè)備固有的其它單元。
圖1是根據(jù)本實用新型實施例的一種機器人的示意圖,包括:下位機13,下位機中包括第一節(jié)點1301,其中,第一節(jié)點內(nèi)集成有第一消息隊列處理單元1303,其中,第一消息隊列處理單元利用消息與上位機通信,消息中攜帶有來自上位機或機器人的待傳輸數(shù)據(jù)。
在上述實施例中,機器人的下位機中設(shè)置有第一節(jié)點,并在該第一節(jié)點內(nèi)設(shè)置第一消息隊列處理單元,使機器人可以通過該第一消息隊列處理單元在機器人的下位機和上位機之間傳遞消息,實現(xiàn)機器人的下位機和上位機之間的通信,接收來自機器人上位機的待傳輸數(shù)據(jù),以及向上位機發(fā)送帶傳輸數(shù)據(jù),從而通過獨立設(shè)置的第一消息隊列處理單元,處理以及傳輸機器人上位機和下位機的消息,實現(xiàn)機器人的下位機和上位機之間的通信,解決現(xiàn)有技術(shù)中機器人的下位機與上位機之間通信效果差的技術(shù)問題。
需要說明的是,下位機是直接控制機設(shè)備,獲取設(shè)備狀況的計算機,通??梢圆捎脝纹瑱C這一類裝置。
可選地,下位機與上位機之間的通信利用消息進(jìn)行,其中,該消息在下位機與上位機之間傳輸可以采用ZeroMQ實現(xiàn)。
需要說明的是,ZeroMQ,即Zero Message Queue,中文名稱是零消息隊列,是一個簡單好用的傳輸層,像框架一樣的一個套接字庫,他使得套接字的編程更加簡單、簡潔和性能更高。是一個消息處理隊列庫,可在多個線程、內(nèi)核和主機盒之間彈性伸縮。ZeroMQ是網(wǎng)絡(luò)協(xié)議棧中新的一層,是個可伸縮層,分散在分布式系統(tǒng)間,可支持任意大的應(yīng)用程序,并且ZeroMQ定義了分布式系統(tǒng)的全局拓?fù)?,還可以在多個線程、內(nèi)核和主機盒之間彈性伸縮。
與其他消息中間件相比,ZeroMQ并不像是一個傳統(tǒng)意義上的消息隊列服務(wù)器,事實上,它也根本不是一個服務(wù)器,它更像是一個底層的網(wǎng)絡(luò)通訊庫,在套接字接口之上做了一層封裝,將網(wǎng)絡(luò)通訊、進(jìn)程通訊和線程通訊抽象為統(tǒng)一的接口。
需要進(jìn)一步說明的是,ZeroMQ將消息通信分成多種模型,包括一對一結(jié)對模型 (Exclusive-Pair)、請求回應(yīng)模型(Request-Reply)、發(fā)布訂閱模型 (Publish-Subscribe)、以及推拉模型(Push-Pull),在實際中的可以根據(jù)應(yīng)用需要,組合其中的多種模型形成自己的解決方案。
可選地,一對一結(jié)對模型(Exclusive-Pair),是最簡單的1:1消息通信模型,可以認(rèn)為是一個TCP連接,但是TCP服務(wù)器智能接收一個連接,其中,連接內(nèi)的數(shù)據(jù)可以雙向流動。
可選地,請求回應(yīng)模型(Request-Reply),是由請求端發(fā)起請求,然后等待回應(yīng)端應(yīng)答。一個請求必須對應(yīng)一個回應(yīng),從請求端的角度來看是發(fā)-收配對。從回應(yīng)端的角度是收-發(fā)配對。跟一對一結(jié)對模型的區(qū)別在于請求端可以是一個或多個,其中,該模型主要用于遠(yuǎn)程調(diào)用及任務(wù)分配等。
可選地,發(fā)布訂閱模型(Publish-Subscribe),是發(fā)布端單向分發(fā)數(shù)據(jù),且不關(guān)心是否把全部信息發(fā)送給訂閱端。如果發(fā)布端開始發(fā)布信息時,訂閱端尚未連接上來,則這些信息會被直接丟棄,由于訂閱端未連接導(dǎo)致信息丟失的問題,可以通過與請求回應(yīng)模型組合來解決,但是訂閱端只負(fù)責(zé)接收而不能反抗,且在訂閱端消費速度慢于發(fā)布端的情況下,會在訂閱端堆積數(shù)據(jù),其中,該模型主要用于數(shù)據(jù)分發(fā)。
在上述實施例中,發(fā)布端可以是上位機,訂閱端可以是下位機。
可選地,推拉模型(Push-Pull),可以將服務(wù)端(Server端)作為推送(Push) 端,將客戶端(Client端)作為拉取(Pull)端,若有多個客戶端同時連接到一個服務(wù)端,則服務(wù)端會在內(nèi)部做一個負(fù)載均衡,可以采用平均分配的算法,將所有消息均衡發(fā)布到客戶端上,與發(fā)布訂閱模型相比,推拉模型在沒有消費者的情況下,發(fā)布的信息不會被消耗掉,在消費能力不足的情況下,能夠提供多消費者并行消費解決方案,其中,該模型主要用于多任務(wù)并行。
在上述實施例中,服務(wù)端可以是下位機,客戶端可以是上位機。
在一個可選的實施例中,待傳輸數(shù)據(jù)包括下述至少之一:來自下位機的機器人的運行參數(shù);來自上位機的發(fā)布信息,其中,發(fā)布信息為下位機訂閱的信息;以及來自上位機的控制指令。
具體地,在機器人中進(jìn)行通信的消息中包括待傳輸數(shù)據(jù),并且,待傳輸數(shù)據(jù)可以包括一個或多個類型,各類型的數(shù)據(jù)可以在待傳輸數(shù)據(jù)中共同傳輸,還可以在待傳輸數(shù)據(jù)中單獨傳輸,其中,一個或多個類型的待傳輸數(shù)據(jù),可以是通過下位機采集的機器人的運行參數(shù);可以是由上位機發(fā)布并由下位機訂閱的消息信息;還可以是通過上位機發(fā)出的用于控制機器人運動或工作的控制指令。在機器人中通過上述待傳輸數(shù)據(jù),將各類型的數(shù)據(jù)在機器人的下位機和上位機之間傳遞,實現(xiàn)機器人的下位機與上位機之間的通信。
作為一個可選的實施例,機器人還包括:用于檢測機器人的運行參數(shù)的傳感器裝置;下位機還包括:用于將運行參數(shù)上傳至第一節(jié)點的第二節(jié)點。
具體地,在機器人中還設(shè)置有傳感器裝置,以及第二節(jié)點,其中,第二節(jié)點設(shè)置在下位機上,并且該第二節(jié)點設(shè)置在第一節(jié)點與傳感器裝置之間,可以獲取傳感器裝置檢測的消息,再將該消息通過包裝等方式處理,將包裝后的消息上傳至第一節(jié)點內(nèi),讓機器人可以在后續(xù)處理中,從而完成機器人的上位機與傳感器裝置的通信。
可選地,機器人通過傳感器裝置檢測自身的運行參數(shù),可以使上位機或其他可以分析機器人運行狀態(tài)的裝置對該運行參數(shù)的分析,得知機器人的運行狀態(tài),以便根據(jù)該運行狀態(tài)發(fā)出準(zhǔn)確的控制指令;并且,通過傳感器裝置檢測機器人的運行參數(shù),可以將機器人的運行狀態(tài)準(zhǔn)確地用數(shù)據(jù)形式表示,便于將機器人的運行狀態(tài)傳輸至上位機或其他可以分析或控制機器人運行狀態(tài)的裝置內(nèi)。
可選地,在機器人的下位機中還設(shè)置有第二節(jié)點,該第二節(jié)點接收從機器人的傳感器裝置中檢測到的機器人的運行參數(shù),并將該運行參數(shù)上傳至第一節(jié)點,可以為第一節(jié)點與上位機之間的通信提供基礎(chǔ)來源的數(shù)據(jù),從而使上位機可以接收到通過第一節(jié)點和第二節(jié)點傳輸?shù)臋C器人的運行狀態(tài)參數(shù),便于上位機準(zhǔn)確獲知機器人的運行狀態(tài)。
可選地,機器人的下位機中的第二節(jié)點還可以接收來自上位機的控制指令,控制機器人可以按照該控制指令的指示進(jìn)行工作。
一個可選的實施例,機器人還包括:用于輸出第二節(jié)點接收的來自上位機的控制指令的輸出接口;用于在控制指令的控制下運動的執(zhí)行機構(gòu)。
具體地,在機器人中還設(shè)置有輸出接口,機器人通過輸出接口將第二節(jié)點接收到的來自上位機的控制指令輸出至執(zhí)行機構(gòu)中,使執(zhí)行機構(gòu)能夠執(zhí)行控制指令,控制機器人按照控制指令動作,其中,執(zhí)行機構(gòu)是機器人中執(zhí)行控制指令的動作機構(gòu),執(zhí)行機構(gòu)在控制指令的控制下執(zhí)行規(guī)定的動作,從而使機器人在控制指令的控制下動作。
可選地,在機器人的下位機中,第二節(jié)點與末端的傳感器裝置和執(zhí)行機構(gòu)之間可以采用ROS。
需要說明的是,ROS,全稱是Robot Operating System,中文名稱是機器人操作系統(tǒng),是一個開源的機器人軟件平臺,它能為異質(zhì)計算機集群提供類似操作系統(tǒng)的功能。
ROS是一種得到廣泛使用的機器人操作與控制系統(tǒng)軟件框架,該框架使用了當(dāng)前最流行的面向服務(wù)(SOA)的軟件技術(shù),通過網(wǎng)絡(luò)協(xié)議將節(jié)點間數(shù)據(jù)通信解耦。這樣就能夠輕松地集成不同語言不同功能的代碼?;谏鲜龇桨?,可以在不同的機器人上分享和復(fù)用已經(jīng)實現(xiàn)的功能,而不需要做太多重復(fù)工作,避免了重復(fù)勞動。
ROS可以不斷的從社區(qū)維護(hù)中進(jìn)行升級,包括從其他的軟件庫、應(yīng)用補丁中升級 ROS的源代碼。ROS可以最大程度的適合使用者對其進(jìn)行開發(fā)及應(yīng)用。
可選地,在機器人的下位機中,第二節(jié)點與末端的傳感器裝置和執(zhí)行機構(gòu)之間的通信可以采用發(fā)布訂閱模型來實現(xiàn)
作為一個可選的實施例,傳感器裝置包括:用于檢測機器人狀態(tài)的內(nèi)部傳感器;用于檢測機器人所處環(huán)境的外部傳感器。
具體地,傳感器裝置是用于根據(jù)機器人的運動狀態(tài)檢測機器人運行參數(shù)的裝置,其中,傳感器裝置包括內(nèi)部傳感器和外部傳感器,機器人的內(nèi)部傳感器用于檢測的運行參數(shù)中包括記錄機器人自身運動狀態(tài)的運行參數(shù);機器人的外部傳感器用于檢測機器人進(jìn)行運動的環(huán)境信息和機器人在運動過程中的狀態(tài),通過內(nèi)部傳感器和外部傳感器分別檢測機器人的運動狀態(tài),能夠使傳感器裝置檢測的機器人的運行參數(shù)更準(zhǔn)確。
一個可選地實施例,用于檢測機器人本身狀態(tài)的內(nèi)部傳感器包括:用于檢測機器人關(guān)節(jié)運行角度的角度傳感器;用于檢測機器人運動距離的位置傳感器;用于檢測機器人運動速度和加速度的速度和加速度傳感器;用于檢測機器人夾持某一物體所產(chǎn)生夾持力的力覺傳感器;用于檢測機器人關(guān)節(jié)轉(zhuǎn)動所產(chǎn)生扭轉(zhuǎn)力的扭力傳感器和扭矩傳感器。通過內(nèi)部傳感器檢測機器人自身的運行參數(shù),可以準(zhǔn)確獲知機器人自身的運動狀態(tài),便于準(zhǔn)確控制機器人。
可選地,機器人是由計算機控制的復(fù)雜機器,具有類似人的肢體機感官功能,在實際應(yīng)用過程中,通過在機器人上設(shè)置外部傳感器,檢測機器人所處環(huán)境及狀況,可以在機器人在運動過程中自動進(jìn)行識別,使機器人可以充分地完成復(fù)雜的工作,減少對人的依賴。
作為一個可選的實施例,用于檢測機器人所處環(huán)境的外部傳感器包括:用于檢測機器人在運動過程中與障礙物的距離,以及檢測機器人在運動過程中與目標(biāo)物體之間距離的距離傳感器;用于檢測機器人在工作環(huán)境中空氣環(huán)境的溫度傳感器或濕度傳感器;用于檢測物體的位置、角度、距離的位置覺傳感器;用于檢測機器人與待夾持物體是否接觸,以及接觸位置的接觸覺傳感器;用于檢測待機器人抓取的物體形狀的形狀覺傳感器;以及用于檢測機器人抓取的物體在垂直握持面方向的位移的滑覺傳感器。
在一個可選的實施例中,第一消息隊列處理單元包括:用于向第二消息隊列處理單元發(fā)送機器人的運行參數(shù)和/或訂閱信息的第一子單元;用于接收第二消息隊列處理單元發(fā)送的控制指令和/或與訂閱信息相對應(yīng)的發(fā)布信息的第二子單元,其中,控制指令為上位機基于運行參數(shù)而生成,第二消息隊列處理單元處于上位機中。
具體地,在下位機的第一消息隊列處理單元中設(shè)置第一子單元和第二子單元,在上位機中設(shè)置第二消息隊列處理單元,其中,第一子單元將表示機器人運動狀態(tài)的運行參數(shù)發(fā)送至上位機的第二消息隊列處理單元中,上位機的處理器基于該運行參數(shù)生成控制機器人運動的控制指令,并通過第二消息隊列處理單元將該控制指令發(fā)送,再由第一消息隊列處理單元中的第二子單元接收,從而實現(xiàn)了機器人下位機與上位機之間通信。
作為一個可選的實施例,第一消息隊列處理單元包括:用于向第二消息隊列處理單元發(fā)送訂閱信息的第一子單元;用于接收第二消息隊列處理單元發(fā)送的發(fā)布信息的第二子單元,其中,發(fā)布信息與訂閱信息相對應(yīng),第二消息隊列處理單元處于上位機中。
具體地,在下位機的第一消息隊列處理單元中設(shè)置第一子單元和第二子單元,在上位機中設(shè)置第二消息隊列處理單元,其中,第一子單元將表示機器人運動狀態(tài)的訂閱信息發(fā)送至上位機的第二消息隊列處理單元中,上位機的處理器基于該運行參數(shù)生成控制機器人運動的控制指令,并通過第二消息隊列處理單元發(fā)送該控制指令的發(fā)布信息,再由第一消息隊列處理單元中的第二子單元訂閱,從而實現(xiàn)了機器人下位機與上位機之間通信。
可選地,在下位機的第一消息隊列處理單元中設(shè)置第一子單元和第二子單元,在上位機中設(shè)置第二消息隊列處理單元,其中,第一子單元將表示機器人運動狀態(tài)的運行參數(shù)通過推送至上位機的第二消息隊列處理單元中,上位機的處理器基于該運行參數(shù)生成控制機器人運動的控制指令,并通過第二消息隊列處理單元發(fā)送該控制指令的發(fā)布信息,再由第一消息隊列處理單元中的第二子單元訂閱,從而實現(xiàn)了機器人下位機與上位機之間通信。
一個可選的實施例,第一消息隊列處理單元為ZeroMQ單元。
圖2是根據(jù)本實用新型實施例的一種機器人通信系統(tǒng)的示意圖,如圖2所示,包括:上位機21,包括第二消息隊列處理單元2101;上述任意一個實施例的機器人23,其中,第一消息隊列處理單元2301與第二消息隊列處理單元利用消息建立上位機與機器人之間的通信。
在上述實施例中,機器人的通信系統(tǒng)中包括上位機和機器人,在機器人的下位機中設(shè)置有第一節(jié)點,并在該第一節(jié)點內(nèi)設(shè)置第一消息隊列處理單元,使機器人可以通過該第一消息隊列處理單元在機器人的下位機和上位機之間傳遞消息,實現(xiàn)機器人的下位機和上位機之間的通信,接收來自機器人上位機的待傳輸數(shù)據(jù),以及向上位機發(fā)送帶傳輸數(shù)據(jù),從而通過獨立設(shè)置的第一消息隊列處理單元,處理以及傳輸機器人上位機和下位機的消息,實現(xiàn)機器人的下位機和上位機之間的通信,解決現(xiàn)有技術(shù)中機器人的下位機與上位機之間通信效果差的技術(shù)問題。
在一個可選的實施例中,第二消息隊列處理單元包括:用于接收第一消息隊列處理單元發(fā)送的機器人的運行參數(shù)和/或訂閱信息的第三子單元;用于向第一消息隊列處理單元發(fā)送控制指令和/或與訂閱信息相對應(yīng)的發(fā)布信息的第四子單元,其中,控制指令為上位機基于運行參數(shù)而生成。
具體地,在上位機的第二消息隊列處理單元中設(shè)置第三子單元和第四子單元,在下位機中設(shè)置第一消息隊列處理單元,其中,第三子單元接收由下位機的第一消息隊列處理單元發(fā)送的機器人的運行參數(shù),使上位機的處理器基于該運行參數(shù)生成控制機器人運動的控制指令,并通過第四子單元將控制指令發(fā)送至第一消息隊列處理單元,從而實現(xiàn)了機器人下位機與上位機之間通信。
作為一個可選的實施例中,第二消息隊列處理單元包括:用于接收第一消息隊列處理單元發(fā)送的訂閱信息的第三子單元;用于向第一消息隊列處理單元發(fā)送發(fā)布信息的第四子單元,其中,發(fā)布信息與訂閱信息相對應(yīng)。
可選地,在上位機的第二消息隊列處理單元中設(shè)置第三子單元和第四子單元,在下位機中設(shè)置第一消息隊列處理單元,其中,第三子單元接收由下位機的第一消息隊列處理單元發(fā)送的機器人的訂閱信息,使上位機的處理器基于該運行參數(shù)生成控制機器人運動的控制指令,并通過第四子單元通過發(fā)布信息的形式,將控制指令發(fā)送至第一消息隊列處理單元,從而實現(xiàn)了機器人下位機與上位機之間通信。
一個可選的實施例,第二消息隊列處理單元為ZeroMQ單元。
圖3是根據(jù)本實用新型實施例的一種可選的機器人通信系統(tǒng)的示意圖,如圖3所示,包括:上位機31、下位機33、執(zhí)行機構(gòu)35、以及傳感器裝置37,其中,在上位機內(nèi)設(shè)有第二消息隊列處理單元3101,并在第二消息隊列處理單元中設(shè)置第三子單元 3105和第四子單元3103;在下位機中設(shè)置有第一節(jié)點3311和第二節(jié)點3313,在第一節(jié)點內(nèi)還設(shè)有第一消息隊列處理單元3301,并且在該第一消息隊列處理單元內(nèi)還設(shè)有第一子單元3305和第二子單元3303。
一個可選的實施例,第二節(jié)點可以接收傳感器裝置檢測的運行參數(shù),還可以向執(zhí)行機構(gòu)發(fā)送來自上位機的控制指令。
另一個可選的實施例,第二節(jié)點可以將來自傳感器裝置的運行參數(shù)打包成消息發(fā)布給第一節(jié)點,還可以訂閱來自第一節(jié)點的攜帶有上位機控制指令的消息,從而可以通過第二節(jié)點實現(xiàn)底端的傳感器和執(zhí)行機構(gòu)與下位機中第一節(jié)點的通信。
需要說明的是,在第一節(jié)點的第一消息隊列處理單元中包括第一子單元和第二子單元,其中,第一子單元訂閱來自第二節(jié)點的包含運行參數(shù)的消息,第二子單元將上位機的控制指令解釋成消息發(fā)布。
可選地,第一節(jié)點與第二節(jié)點之間的通信在ROS平臺進(jìn)行。
作為一個可選的實施例,上位機與下位機的通信,可以通過上位機內(nèi)的第二消息隊列處理單元與下位機第一節(jié)點中的第一消息隊列處理單元的通信完成。
具體地,第一消息隊列處理單元中的第一子單元訂閱來自傳感器裝置的消息,并將該消息打包成ZeroMQ數(shù)據(jù)包推送至第三子單元中;第二子單元訂閱來自上位機發(fā)布的控制指令,并將該控制指令解釋成消息發(fā)布。
需要說明的是,上位機與下位機的通信可以通過ZeroMQ實現(xiàn),其中,第一子單元與第三子單元之間可以通過PUSH-PULL模型完成通信;第二子單元與第四子單元之間可以通過PUB-SUB模型完成通信。
上述本實用新型實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本實用新型的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本實用新型各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
以上所述僅是本實用新型的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本實用新型原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本實用新型的保護(hù)范圍。