欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多機(jī)器人間實(shí)時(shí)消息傳遞方法

文檔序號(hào):9670671閱讀:773來源:國(guó)知局
一種多機(jī)器人間實(shí)時(shí)消息傳遞方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件構(gòu)造技術(shù)領(lǐng)域,具體涉及一種在多機(jī)器人分布式應(yīng)用中,通過在軟件中間件層引入具備實(shí)時(shí)性保證能力的網(wǎng)絡(luò)消息傳遞協(xié)議,實(shí)現(xiàn)多機(jī)器人之間的實(shí)時(shí)消息傳遞的方法。
【背景技術(shù)】
[0002]多機(jī)器人分布式應(yīng)用是指由多個(gè)機(jī)器人所組成的軟件系統(tǒng),在這一系統(tǒng)中多個(gè)機(jī)器人互相協(xié)同,共同完成指定的任務(wù)。多機(jī)器人分布式應(yīng)用的典型實(shí)例包括無人機(jī)群軟件系統(tǒng)、機(jī)器人足球隊(duì)軟件系統(tǒng)等。機(jī)器人中間件是支撐多機(jī)器人分布式應(yīng)用的軟件基礎(chǔ)設(shè)施,它封裝了多機(jī)器人分布式應(yīng)用共性問題(如數(shù)據(jù)通信、事務(wù)等)的解決方案,從而可以大幅簡(jiǎn)化此類應(yīng)用的開發(fā)過程。R0S(Robot Operating System)是目前主流的、成熟的機(jī)器人中間件,被工業(yè)界和學(xué)術(shù)界所廣泛使用。它運(yùn)行于Ubuntu等操作系統(tǒng)之上,提供基于消息的多機(jī)器人交互能力。在R0S中,消息傳遞采用的是基于主題(Topic)的發(fā)布/訂閱機(jī)制,即消息按照主題進(jìn)行分類,消息的發(fā)布者在某一主題上發(fā)布消息,所有訂閱了這個(gè)主題的消息訂閱者將收到該消息。R0S消息發(fā)布者發(fā)布消息時(shí)先將消息放入發(fā)送緩沖區(qū),再由R0S的消息發(fā)送模塊發(fā)送消息;接收消息時(shí),先由R0S消息接收模塊接收消息,再將該消息放入消息接收緩沖區(qū),消息訂閱者從緩沖區(qū)中獲取消息。
[0003]機(jī)器人直接感知和作用于物理世界,多機(jī)器人分布式應(yīng)用通常也與物理世界緊密結(jié)合。物理世界中的時(shí)間約束會(huì)直接映射到多機(jī)器人分布式應(yīng)用中,使得此類應(yīng)用中多個(gè)機(jī)器人之間的消息傳遞必須滿足一定的時(shí)間約束(例如優(yōu)先級(jí)或者傳遞時(shí)延上限),也即需要保證其實(shí)時(shí)性。例如,用于地面勘察的無人機(jī)系統(tǒng)通常由無人機(jī)、地面控制站和配套網(wǎng)絡(luò)通信設(shè)施組成,無人機(jī)需要向控制站傳輸飛行狀態(tài)數(shù)據(jù)、實(shí)時(shí)圖像信息等多種類型數(shù)據(jù),這些數(shù)據(jù)有不同的優(yōu)先級(jí)和預(yù)期傳輸時(shí)延:飛行狀態(tài)數(shù)據(jù)雖然數(shù)據(jù)量較少,但必須高優(yōu)先級(jí)、低延時(shí)傳送,而高分辨率的地面圖像信息需要占用很大的帶寬,但可以以低先級(jí)傳遞,必要時(shí)可以通過丟幀等方式來減少帶寬占用。
[0004]在企業(yè)計(jì)算和互聯(lián)網(wǎng)計(jì)算等領(lǐng)域,對(duì)網(wǎng)絡(luò)消息實(shí)時(shí)傳遞的研究已經(jīng)非常深入,其中較為主流的研究成果是實(shí)時(shí)消息傳輸規(guī)范DDS(Data Distributed Service for Real-time Systems) aDDS規(guī)范是0MG(0bject Management Group)組織為了滿足分布式實(shí)時(shí)系統(tǒng)中數(shù)據(jù)的實(shí)時(shí)交換的需求而發(fā)布的實(shí)時(shí)消息傳輸協(xié)議規(guī)范。DDS規(guī)范定義了以數(shù)據(jù)為中心的基于主題的發(fā)布/訂閱機(jī)制,提供了強(qiáng)大的數(shù)據(jù)服務(wù)質(zhì)量QoS(Quality of Service)控制策略,例如消息的傳輸優(yōu)先級(jí)、消息自動(dòng)夭折、傳輸延遲控制、基于時(shí)間過濾消息等等。因而DDS規(guī)范能夠很好的支持分布式實(shí)時(shí)系統(tǒng)中數(shù)據(jù)高效、實(shí)時(shí)、可靠的發(fā)送。目前,DDS規(guī)范已在國(guó)防、電信、航空、分布控制、工業(yè)自動(dòng)化等領(lǐng)域得到廣泛的運(yùn)用。
[0005]但是,在機(jī)器人中間件領(lǐng)域,目前尚無公開的技術(shù)資料涉及網(wǎng)絡(luò)實(shí)時(shí)消息傳遞成果或成熟技術(shù)方案。以R0S為例,其基于主題的消息發(fā)布/訂閱機(jī)制只能提供普通的消息交互能力,不能對(duì)消息提供時(shí)間約束方面的服務(wù)質(zhì)量參數(shù)的設(shè)置。如何在機(jī)器人中間件層面增加對(duì)網(wǎng)絡(luò)消息實(shí)時(shí)性保證的支持,以此來實(shí)現(xiàn)機(jī)器人分布式應(yīng)用網(wǎng)絡(luò)消息傳輸?shù)膶?shí)時(shí)性,是軟件構(gòu)造技術(shù)領(lǐng)域需要解決的技術(shù)問題。

【發(fā)明內(nèi)容】

[0006]本發(fā)明要解決的技術(shù)問題是基于R0S在機(jī)器人中間件層提供對(duì)網(wǎng)絡(luò)消息實(shí)時(shí)傳遞的支持能力,使得多機(jī)器人之間的消息傳遞過程能夠滿足優(yōu)先級(jí)、傳輸時(shí)延等時(shí)間約束。
[0007]本發(fā)明的技術(shù)方案是在R0S中引入具備實(shí)時(shí)性保證能力的網(wǎng)絡(luò)消息傳遞規(guī)范DDS。本發(fā)明首先搭建多機(jī)器人計(jì)算結(jié)點(diǎn)環(huán)境,此環(huán)境中構(gòu)建有操作系統(tǒng)Ubuntu、機(jī)器人中間件R0S、符合DDS規(guī)范的消息實(shí)時(shí)中間件和R0S/DDS協(xié)議插件,R0S/DDS協(xié)議插件支持R0S消息的實(shí)時(shí)屬性設(shè)置,并實(shí)現(xiàn)R0S消息和DDS消息的相互轉(zhuǎn)換,最后使用符合DDS規(guī)范的消息實(shí)時(shí)中間件傳遞消息,以此實(shí)現(xiàn)R0S消息傳遞地實(shí)時(shí)性。
[0008]本發(fā)明包括以下步驟:
[0009]第一步,搭建多機(jī)器人計(jì)算結(jié)點(diǎn)環(huán)境,它由m個(gè)機(jī)器人計(jì)算結(jié)點(diǎn)構(gòu)成(m2l,m是整數(shù))。機(jī)器人計(jì)算結(jié)點(diǎn)是可以運(yùn)行軟件程序的機(jī)器人硬件設(shè)備(如無人機(jī)、無人車、人形機(jī)器人等),機(jī)器人計(jì)算結(jié)點(diǎn)通過網(wǎng)絡(luò)設(shè)備互連。
[0010]每個(gè)機(jī)器人計(jì)算結(jié)點(diǎn)上除了裝有操作系統(tǒng)Ubuntu(例如14.04版本)、機(jī)器人中間件R0S(例如Indigo版本,由R0S消息發(fā)布者、R0S消息發(fā)送模塊、R0S消息發(fā)送緩沖區(qū)、R0S消息訂閱者、R0S消息接收模塊、R0S消息接收緩沖區(qū)以及R0S原有通信協(xié)議組成)、符合DDS規(guī)范的消息實(shí)時(shí)中間件(例如DDS規(guī)范的開源實(shí)現(xiàn)OpenSp 1 ice DDS,簡(jiǎn)稱DDS中間件)外,還有R0S/DDS協(xié)議插件。機(jī)器人中間件R0S提供基于發(fā)布/訂閱消息的多機(jī)器人交互能力,DDS中間件提供實(shí)時(shí)消息傳輸能力,R0S和DDS中間件均運(yùn)行于Ubuntu操作系統(tǒng)之上。R0S/DDS協(xié)議插件負(fù)責(zé)R0S消息和DDS消息的相互轉(zhuǎn)換,并使用DDS中間件進(jìn)行實(shí)時(shí)消息發(fā)送和接收。
[0011]R0S/DDS協(xié)議插件由實(shí)時(shí)性調(diào)用模塊、消息轉(zhuǎn)換模塊、主題映射模塊、出錯(cuò)處理模塊、消息發(fā)送代理模塊、消息接收代理模塊六個(gè)部分組成。
[0012]R0S消息發(fā)布者通過使用實(shí)時(shí)性調(diào)用模塊設(shè)置R0S某個(gè)主題需要滿足的實(shí)時(shí)屬性。R0S消息發(fā)布者將R0S主題名和實(shí)時(shí)屬性發(fā)送給實(shí)時(shí)性調(diào)用模塊。
[0013]由于實(shí)時(shí)屬性只能在創(chuàng)建新R0S主題時(shí)設(shè)置,實(shí)時(shí)性調(diào)用模塊從R0S消息發(fā)布者獲得R0S主題名和實(shí)時(shí)屬性后,先檢查該R0S主題名是否已經(jīng)設(shè)置實(shí)時(shí)屬性,然后再將R0S主題名和實(shí)時(shí)屬性發(fā)送給消息發(fā)送代理模塊。
[0014]R0S主題名唯一標(biāo)識(shí)了一類消息。R0S消息發(fā)布者基于某一主題發(fā)布消息,所有訂閱了這個(gè)主題的R0S消息訂閱者將收到該消息。
[0015]實(shí)時(shí)屬性描述了發(fā)布的消息需要滿足的實(shí)時(shí)約束。實(shí)時(shí)屬性包括消息優(yōu)先級(jí)、預(yù)期傳輸延遲、自動(dòng)夭折時(shí)限、時(shí)間過濾周期。實(shí)時(shí)屬性可以設(shè)置一個(gè)或多個(gè),如果實(shí)時(shí)屬性為空,意味著與該R0S主題相關(guān)的消息不需要滿足實(shí)時(shí)要求,普通發(fā)送即可。
[0016]消息優(yōu)先級(jí)屬性(transport_pr1rity)用來設(shè)置在主題上發(fā)布的消息的優(yōu)先級(jí),主要分為Extreme lyLow、VeryLow、Low、Normal、High、VeryHigh、Extreme lyHigh7個(gè)等級(jí),這7個(gè)等級(jí)由低到高,ExtremelyLow表示消息發(fā)送的優(yōu)先級(jí)極低、VeryLow表示消息發(fā)送的優(yōu)先級(jí)很低、Low表示消息發(fā)送的優(yōu)先級(jí)低、Normal表示消息發(fā)送的優(yōu)先級(jí)正常、High表示消息發(fā)送的優(yōu)先級(jí)高、VeryHi gh表示消息發(fā)送的優(yōu)先級(jí)很高、Extreme 1 yHi gh表示消息發(fā)送的優(yōu)先級(jí)極高。優(yōu)先級(jí)高的消息優(yōu)先發(fā)送。
[0017]預(yù)期傳輸延遲屬性(latency_budget)用來設(shè)置發(fā)布的消息從消息發(fā)布者到達(dá)消息訂閱者的預(yù)期時(shí)間。例如預(yù)期時(shí)間5ms的消息比預(yù)期時(shí)間1 Oms的消息優(yōu)先發(fā)送。
[0018]自動(dòng)夭折時(shí)限屬性(time_filter_durat1n)用來設(shè)置發(fā)布消息的生命周期,如果消息在其生命周期內(nèi)沒有送達(dá)到消息訂閱者,ROS/DDS協(xié)議插件將丟棄該消息。例如發(fā)布消息的生命周期是10ms,如果在10ms內(nèi),消息沒有送達(dá)到消息訂閱者,ROS/DDS協(xié)議插件將丟棄該消息。
[00?9] 時(shí)間過濾周期屬性(meSsage_va 1 id_per1d)用來設(shè)置過濾消息的時(shí)間段,即在一段時(shí)間內(nèi)只送達(dá)一個(gè)消息,其他消息將被R0S/DDS協(xié)議插件丟棄。例如對(duì)于機(jī)器人每隔20ms發(fā)送一條自身狀態(tài)消息,過濾消息的時(shí)間段是ls,R0S/DDS協(xié)議插件在Is的間隔內(nèi)只送達(dá)一條機(jī)器人自身狀態(tài)消息。
[0020]消息轉(zhuǎn)換模塊實(shí)現(xiàn)R0S與DDS消息格式之間的相互轉(zhuǎn)換。DDS消息由消息頭、實(shí)時(shí)屬性域和消息體組成,實(shí)時(shí)屬性域指明了該DDS消息所要滿足的實(shí)時(shí)約束。R0S消息到DDS消息的轉(zhuǎn)換方式是將R0S消息直接填充到DDS消息體,并使用從實(shí)時(shí)性調(diào)用模塊接收的實(shí)時(shí)屬性填充DDS消息實(shí)時(shí)屬性域。DDS消息到R0S消息的轉(zhuǎn)換方式是直接從DDS消息體提取R0S消息。
[0021]主題映射模塊實(shí)現(xiàn)R0S主題名與DDS主題名的相互轉(zhuǎn)換,并生成“R0S與DDS主題名映射”表。R0S主題名由字母、數(shù)字和符號(hào)組成,并以字母開頭。DDS主題名由字母和數(shù)字組成,并以字母開頭。R0S主題名到DDS主題名的轉(zhuǎn)換規(guī)則是如果主題中含“/”,將其替換為“A9E0”,其它的字母和數(shù)字不變。DDS主題名到R0S主題名的轉(zhuǎn)換規(guī)則是如果主題中含“A9E0”,將其替換為,其它的字母和數(shù)字不變?!癆9E0”是一個(gè)特殊的標(biāo)識(shí)位,用來標(biāo)識(shí)字符?!癛0S與DDS主題名映射”表是一個(gè)二維表,該二維表有k行,每行包含兩個(gè)域,一個(gè)域是R0S中的主題名,另一個(gè)域是DDS中的主題名,k為R0S中的主題數(shù),k 2 0,k是整數(shù)。
[0022]出錯(cuò)處理模塊實(shí)現(xiàn)DDS異常到R0S異常的轉(zhuǎn)換。出錯(cuò)處理模塊根據(jù)預(yù)定義映射規(guī)貝1J,實(shí)現(xiàn)DDS錯(cuò)誤到R0S錯(cuò)誤的映射。例如DDS網(wǎng)絡(luò)中斷異常DDS::NetworkDisconnect1n映射為R0S網(wǎng)絡(luò)中斷異常ROS::NetworkDi
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
田林县| 桂平市| 南华县| 曲沃县| 保康县| 绍兴县| 九龙坡区| 安国市| 桃园市| 宣恩县| 噶尔县| 论坛| 福州市| 藁城市| 孟州市| 五大连池市| 栾城县| 固始县| 张家港市| 册亨县| 松江区| 乌鲁木齐县| 东丰县| 大连市| 常山县| 子洲县| 南昌市| 横峰县| 金秀| 将乐县| 阿鲁科尔沁旗| 衡阳市| 甘肃省| 临漳县| 黑水县| 密山市| 泉州市| 共和县| 白沙| 牟定县| 鄂托克旗|