亚洲 欧美 国产 精品 麻豆,歪歪漫画登录页面入口阅读,歪歪漫画看秋蝉登录页面免费漫画,青苹果未删减

通用無人機網(wǎng)-無人機行業(yè)一站式綜合服務(wù)平臺

上海硅步ROS連載系列50期——ROSLink ——ROS與物聯(lián)網(wǎng)之間的橋梁 ...

2021-5-31 11:14| 發(fā)布者:硅步科學儀器| 查看:281| 評論:0

摘要:??ROSLink是由沙特蘇丹王子大學教授,同時也是硅步機器人研發(fā)總監(jiān)的Anis Koubaa博士首先提出來的。為了使大家了解ROSLink,從本期開始,我們將分三期對ROSLink進行介紹。 ??本期為第一期,主要介紹ROSLink的基本 ...

??ROSLink是由沙特蘇丹王子大學教授,同時也是硅步機器人研發(fā)總監(jiān)的Anis Koubaa博士首先提出來的。為了使大家了解ROSLink,從本期開始,我們將分三期對ROSLink進行介紹。

??本期為第一期,主要介紹ROSLink的基本概念及ROSLink提出的背景和要解決的問題。

??作為物聯(lián)網(wǎng)(IoT)的一種新形式,機器人與互聯(lián)網(wǎng)的融合現(xiàn)在正成為一種新興趨勢。這種結(jié)合對于推動通過互聯(lián)網(wǎng)虛擬化、控制和監(jiān)控的新型云機器人應用至關(guān)重要。ROSLink是一種將應用機器人操作系統(tǒng)(ROS)的機器人與物聯(lián)網(wǎng)相結(jié)合的新協(xié)議。提出ROSLink背后的動機正是由于通過互聯(lián)網(wǎng)監(jiān)控和控制機器人的ROS功能的欠缺。盡管ROS允許使用相同ROS主控器從工作站控制機器人,但這種解決方案不具有可擴展性,且僅僅局限于局域網(wǎng)。近期工作中提出的解決方案依賴于集中式ROS主控器或機器人端Web服務(wù)器,同樣具有類似的限制性。受到MAVLink協(xié)議的啟發(fā),本文提出的ROSLink協(xié)議通過云定義了機器人和終端用戶之間的輕量級異步通信協(xié)議。ROSLink利用代理云服務(wù)器將使用了ROS的機器人與用戶相連接,并允許他們之間的互連。ROSLink性能已在云上進行測試,顯示較為高效可靠。

??1.簡介

??云機器人是機器人領(lǐng)域的一個新興趨勢,旨在通過物聯(lián)網(wǎng)(IoT)和云計算技術(shù)來從兩個角度推廣機器人的應用:(i)虛擬化:通過Web和Web服務(wù)技術(shù)提供對機器人的無縫鏈接,(ii)遠程大腦:將密集型計算從機器人卸載到云資源,以克服機器人的計算、存儲及能量限制。

??如今,機器人操作系統(tǒng)(ROS)代表了開發(fā)機器人應用的一個事實上的標準。ROS作為中間件,除了重復使用開源項目庫之外,還為硬件和機器人資源(如傳感器和執(zhí)行器)提供了幾個級別的軟件抽象。它的設(shè)計目的是降低開發(fā)大型服務(wù)機器人的難度,降低機器人軟件構(gòu)建的復雜性。盡管ROS廣泛使用于開發(fā)服務(wù)機器人應用程序,但它缺乏通過互聯(lián)網(wǎng)對機器人進行控制和監(jiān)視的原生支持。在同一局域網(wǎng)(LAN)上的遠程工作站中編寫ROS節(jié)點(即程序)是可行的,機器人機器和工作站都使用ROS主站統(tǒng)一資源標識符(URI),但是控制來自遠程位置的ROS節(jié)點具有挑戰(zhàn)性。為解決這個局限性,已經(jīng)有許多研究工作提出了對基于客戶端-服務(wù)器架構(gòu)的關(guān)注。

??解決該問題的一項里程碑式的工作是ROSBridge協(xié)議。它基于安裝在機器人端的Websockets服務(wù)器,該服務(wù)器允許根據(jù)ROS主題和服務(wù)發(fā)送機器人的內(nèi)部狀態(tài),并接收命令到Websockets客戶端來進行處理。這種方法實現(xiàn)了ROS與互聯(lián)網(wǎng)的有效結(jié)合; 然而,事實上Websockets服務(wù)器在機器人機器上的運行要求機器人擁有一個公共IP地址以供Websockets客戶端訪問,并不對所有機器人可行,或者在同一局域網(wǎng)上。當機器人位于網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)域后面時,也可以使用NAT,但這種選擇在實際部署中可能會很麻煩。在文獻中作者提出了一種Web服務(wù)ROS,它可以在機器人中定義一個Web服務(wù)服務(wù)器,可通過網(wǎng)絡(luò)進行訪問。但是這個方法具有與ROSBridge一樣的局限性,即服務(wù)器位于機器人端。

??本文填補了這一空白,并提出了一種通信協(xié)議ROSLink,該協(xié)議克服了上述的限制,(i)實現(xiàn)了機器人端客戶端的規(guī)范,(ii)用了一個云服務(wù)器,即位于公共IP服務(wù)器機器上的代理服務(wù)器。這個想法受到MAVLink協(xié)議的啟發(fā),機器人通過網(wǎng)絡(luò)客戶端將其數(shù)據(jù)以序列化的消息發(fā)送到作為服務(wù)器的地面站,地面站接收這些消息、對其進行處理并將控制命令發(fā)送給機器人。這樣,機器人就不再需要一個公共的IP地址,仍然可以在代理服務(wù)器后訪問。

??本文主要完成了兩項工作。首先,我們提出ROSLink這種新的通信協(xié)議,它定義了一種三層架構(gòu)。ROSLink Bridge客戶端在機器人端運行;ROSLink Proxy作為地面站的服務(wù)器,以及通過ROSLink協(xié)議與機器人進行交互的用戶端的客戶端應用程序。其次,通過對地面Turtlebot機器人和AR.Parrot無人機進行實驗研究,驗證了我們提出的ROSLink協(xié)議。我們展示了ROSLink的有效性和可行性。

??2 背景和目標

??2.1 背景

??本文研究的動機是為了將ROS與物聯(lián)網(wǎng)進行整合。ROS本身不支持通過互聯(lián)網(wǎng)監(jiān)控和控制機器人。事實上,如圖1(a)所示,ROS允許使用相同的ROS主控器從工作站控制機器人,但該解決方案不具有可擴展性,而局限于在局域網(wǎng)使用。典型的情況是每個機器人啟動自己的ROS主控節(jié)點,如果用戶將自己的ROS網(wǎng)絡(luò)設(shè)置配置為使用機器人正在運行的同一ROS主控,則用戶可以從他們的工作站控制機器人。這種標準方法本身不允許通過互聯(lián)網(wǎng)控制機器人,因為機器人通常沒有公共IP地址。在某些情況下可以考慮在NAT后面使用端口轉(zhuǎn)發(fā),但在其他情況下可能無法實現(xiàn),例如通過3G / 4G進行連接。

??一種可能的解決方案如圖1(b)所示,是對所有機器人使用一個ROS主節(jié)點,主節(jié)點在具有互聯(lián)網(wǎng)公共IP地址的中央服務(wù)器上運行。所有用戶都將連接到相同的ROS 主控器,并通過發(fā)布和訂閱它們的主題和服務(wù)來訪問任何一臺機器人。然而這個解決方法也有幾項局限。第一,一些ROS主題、服務(wù)和節(jié)點可能因具有相同名稱而互相沖突。這就需要我們在設(shè)計ROS節(jié)點、服務(wù)和主題的命名空間(namespace)時小心謹慎,避免沖突。機器人數(shù)量較多時,這個方法會變得很復雜。第二個問題是缺乏可擴展性,當給定時間綁定了多個機器人時,ROS主控器可能會過載。除了考慮到一些ROS主題太占帶寬這個已知的網(wǎng)絡(luò)問題外,還沒有一個可行的解決方案能將個人用戶映射到他們的機器人,因為所有主題對所有用戶都是可見的。

??我們的方法是設(shè)計ROSLink,一種輕量級通信協(xié)議,靈感來自MAVLink ,允許ROS機器人與其用戶進行基于云的交互,如圖1(c)所示。我們的想法是在ROS頂部為每一個機器人添加一個ROSLink Bridge(橋),這樣該橋可以使用JSON序列化消息發(fā)送機器人的所有狀態(tài)。ROSLink Bridge是一個ROS節(jié)點,用于訪問ROS中所有感興趣的主題和服務(wù),并將選定的信息發(fā)送到使用JSON格式序列化的ROSLink消息中。這些消息被發(fā)送到ROSLink云代理服務(wù)器,該服務(wù)器處理消息并將消息轉(zhuǎn)發(fā)給機器人的單個用戶和/或多個用戶。另外,用戶通過使用ROSLink JSON消息的ROSLink云代理向機器人發(fā)送命令,命令由ROSLink Bridge進行處理,從而執(zhí)行相應的ROS操作?;谠频腞OSLink方法具有三個主要優(yōu)點:(1)獨立于機器人的ROS主控器節(jié)點,(2)確保用戶和機器人之間通過云無縫通信,(3)提供對機器人、用戶和底層服務(wù)的有效管理。

??(a) 標準方法:ROS機器人和ROS用戶之間的典型連接。

??用戶連接到機器人的ROS主控器,控制和監(jiān)視其狀態(tài),通常在一個局域網(wǎng)內(nèi)。

??(b) 中心方法:所有的機器人和用戶都連接到了一個中心ROS主控器。

??此方法不具有可擴展性,無法對機器人和用戶提供有效管理。

??(c) ROSLink方法:基于云的解決方法,ROS機器人和用戶通過云進行交互。

??ROSLink云給用戶和機器人提供管理、面向服務(wù)的接口和實時數(shù)據(jù)流服務(wù)。

??圖1:ROS操作方法

??2.2 綜述

??ROSLink的主要目標是通過互聯(lián)網(wǎng)控制和監(jiān)控使用ROS的機器人。 在文獻中,大多數(shù)相關(guān)工作集中在使用雙層客戶端/服務(wù)器方法上,服務(wù)器在機器人中實現(xiàn),客戶端在用戶應用程序中實現(xiàn)。事實上,這些研究大多是基于ROSBridge和ROSJS框架的實例來構(gòu)建遙控機器人。ROSBridge代表了ROS系統(tǒng)遠程控制機器人可以遠程控制的里程碑。然而,這種方法的缺點是:(1)以機器人為中心的方法,由于服務(wù)器集中在機器人本身,所以限制了系統(tǒng)的可擴展性;(2)在互聯(lián)網(wǎng)上部署非常困難,因為當機器人位于局域網(wǎng)內(nèi)時,需要擁有公共IP地址或通過NAT轉(zhuǎn)發(fā)端口訪問。

??為了克服這些局限性,我們提出采用三層客戶機/服務(wù)器模型的ROSLink,其中客戶端在機器人和用戶中實現(xiàn),而服務(wù)器位于公共領(lǐng)域并充當代理將機器人與其用戶相連。 ROSLink克服了上述的兩個問題。首先,機器人內(nèi)部不再設(shè)服務(wù)器,因此不再采用以機器人為中心的方法。相比之下,機器人通過ROSLink Bridge組件實現(xiàn)客戶端,ROSLink Bridge組件是一個ROS節(jié)點,一方面與ROS進行交互,另一方面通過網(wǎng)絡(luò)接口(UDP,TCP, 或Websockets)向外部發(fā)送ROS數(shù)據(jù)。此外,該模型的ROSLink服務(wù)器端在一個名為ROSLink 代理的公共服務(wù)器中實現(xiàn),該服務(wù)器充當機器人和用戶之間的中介。機器人和用戶向代理服務(wù)器發(fā)送消息,代理服務(wù)器相應地將其發(fā)送給另一端。

??ROSLink通過定義通信協(xié)議(受MAVLink協(xié)議啟發(fā))定義ROS的完整抽象,該協(xié)議通過ROS主題/服務(wù)提供有關(guān)機器人的所有信息,而不會將ROS生態(tài)系統(tǒng)暴露給用戶。用戶不需要熟悉ROS就能夠使用ROSLink為機器人發(fā)送命令。 ROSLink為用戶與機器人進行交互定義了一組界面,以及一組用在它們之間進行交換的消息。

??ROSLink消息是基于ROS主題/服務(wù)參數(shù)構(gòu)建的,用以獲取或提交數(shù)據(jù)來執(zhí)行操作。消息用JSON字符串表示。JSON格式可選用于數(shù)據(jù)交換,因為它是與平臺及語言無關(guān)的數(shù)據(jù)表示格式。此外,與XML相比,它是一個更輕量級的解決方案,更適合于資源受限和帶寬受限的平臺。這將允許客戶端應用程序開發(fā)人員選擇任何編程語言(C ++、Java、JavaScript、Python等)來開發(fā)與ROSLink交互的客戶端應用程序,來命令和監(jiān)視使用ROS的機器人。

??總之,ROSLink不同于以前的工作,特別是與ROSBridge在以下這些方面的區(qū)別:

??-ROSLink在機器人和用戶應用程序中實現(xiàn)客戶端,并在中間代理中實現(xiàn)服務(wù)器,而ROSBridge在機器人中實現(xiàn)Websocket服務(wù)器,在用戶應用程序中實現(xiàn)Websocket客戶端。

??-ROSBridge基于Websocket協(xié)議,而ROSLink可以使用任何傳輸層協(xié)議(TCP,UDP和Websockets)來實現(xiàn)。在本文中,我們使用UDP和Websockets接口來實現(xiàn)ROSLink。

??-ROSLink不像以前的研究那樣依賴于ROSBridge,而是在ROS和非ROS用戶之間定義自己的通信協(xié)議。

Powered by 順風耳 X3.4  © 2001-2024 ICP備案號: 蘇ICP備2021011750號-1