版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
機(jī)器人操作系統(tǒng)(ROS)機(jī)器人操作系統(tǒng)(ROS)ROS-2簡介11機(jī)器人操作系統(tǒng)(ROS)11.ROS-2簡介在過去的十多年時間里,ROS-1已經(jīng)發(fā)展壯大,其擁有龐大的功能包列表,通過幾個小規(guī)模的功能包,用戶就可以創(chuàng)建一個全新的復(fù)雜系統(tǒng)。然而,ROS-1仍然存在以下幾個問題,雖然很多開發(fā)者對其中一些問題提出了針對性的解決方案,但仍然無法解決ROS-1中的根本問題。1)多機(jī)器人系統(tǒng)。多機(jī)器人系統(tǒng)是機(jī)器人領(lǐng)域研究的一個重點問題,可以解決單機(jī)器人性能不足、無法應(yīng)用等問題,但是ROS-1中并沒有構(gòu)建多機(jī)器人系統(tǒng)的標(biāo)準(zhǔn)方法。2)跨平臺。ROS-1基于Linux系統(tǒng),在Windows、macOS、RTOS等系統(tǒng)上無法應(yīng)用或者功能有限,這對機(jī)器人開發(fā)者和開發(fā)工具提出了較高要求,也有很大的局限性。3)實時性。很多應(yīng)用場景下的機(jī)器人對實時性要求較高,尤其是工業(yè)領(lǐng)域,系統(tǒng)需要做到硬實時的性能指標(biāo),但是ROS-1缺少實時性方面的設(shè)計,所以在很多應(yīng)用中捉襟見肘。4)網(wǎng)絡(luò)連接。ROS-1的分布式機(jī)制需要良好的網(wǎng)絡(luò)環(huán)境才能保證數(shù)據(jù)的完整性,而且網(wǎng)絡(luò)不具備數(shù)據(jù)加密、安全防護(hù)等功能,網(wǎng)絡(luò)中的任意主機(jī)都可以獲得節(jié)點發(fā)布或接收的消息數(shù)據(jù)。5)產(chǎn)品化。ROS-1的穩(wěn)定性欠佳,ROSMaster、節(jié)點等重要環(huán)節(jié)在很多情況下會莫名宕機(jī),這就導(dǎo)致很多機(jī)器人從研究開發(fā)到消費產(chǎn)品的過渡非常艱難。ROS-2的開發(fā)主要就是解決上述情形中遇到的問題。機(jī)器人操作系統(tǒng)(ROS)11.1ROS-2概述相比ROS-1,ROS-2的設(shè)計目標(biāo)更加豐富,旨在改進(jìn)可用于實時系統(tǒng)和產(chǎn)品階段解決方案的通信網(wǎng)絡(luò)架構(gòu)。ROS-2的主要設(shè)計目標(biāo)是:1)支持多機(jī)器人系統(tǒng)2)實時通信能力3)直接在硬件層面上提供ROS層4)軟件版本更新(主要是客戶端庫)ROS-2簡化了發(fā)布-訂閱的基礎(chǔ)結(jié)構(gòu),并使其在不同的硬件和軟件組件之間更加可靠,以確保用戶可以更專注與功能和生態(tài)系統(tǒng)。經(jīng)過幾年的alpha和beta版本的發(fā)布,ROS-2于2017年12月推出第一個發(fā)行版——ArdentApalone。截至本書稿撰寫期間,最新的ROS-2版本是GalacticGeochelone,于2021年5月23日發(fā)布.具體的ROS-2發(fā)行版如表11-1所示。機(jī)器人操作系統(tǒng)(ROS)11.1ROS-2概述機(jī)器人操作系統(tǒng)(ROS)11.2ROS-2基礎(chǔ)ROS-2重新設(shè)計了系統(tǒng)架構(gòu),可以從圖11-1中看到兩代ROS之間架構(gòu)的變化。在ROS-1中,用戶代碼將連接到ROS客戶端庫(如rospy和roscpp),它們直接與網(wǎng)絡(luò)中的其他節(jié)點通信;而在ROS-2中,ROS客戶端就像一個抽象層,使用其他節(jié)點通過DDS實現(xiàn)連接到網(wǎng)絡(luò)中進(jìn)行通信的另一層。在ROS-2中,操作系統(tǒng)層與底層硬件層的通信是通過DDS實現(xiàn)完成的。圖中的DDS組件有供應(yīng)商實現(xiàn),供應(yīng)商不同則具體實現(xiàn)不同。抽象DDS層與ROS-2客戶端庫連接,并通過DDS實現(xiàn)幫助用戶連接代碼。通過這樣的分層抽象,用戶無須感知DDSAPI的存在就可以與操作系統(tǒng)連接。機(jī)器人操作系統(tǒng)(ROS)11.2.1DDSDDS(DataDistributionService,數(shù)據(jù)分發(fā)服務(wù)),2004年由對象管理組織(ObjectManagementGroup,OMG)發(fā)布,是一種專門為實時系統(tǒng)設(shè)計的數(shù)據(jù)分發(fā)/訂閱標(biāo)準(zhǔn)。DDS最早應(yīng)用于美國海軍,用于解決艦船復(fù)雜網(wǎng)絡(luò)環(huán)境中大量軟件升級的兼容性問題,目前已經(jīng)成為美國國防部的強(qiáng)制標(biāo)準(zhǔn),同時廣泛應(yīng)用于國防、民航、工業(yè)控制等領(lǐng)域,成為分布式實時系統(tǒng)中數(shù)據(jù)發(fā)布/訂閱的標(biāo)準(zhǔn)解決方案。其技術(shù)關(guān)鍵是以數(shù)據(jù)為核心的發(fā)布/訂閱(Data-CentricPublish-Subscribe,DCPS)模型,可以幫助兩個或多個DDS程序在不使用master的情況下相互通訊。這種DCPS模型創(chuàng)建了一個“全局?jǐn)?shù)據(jù)空間”(GlobalDataSpace)的概念,所有獨立的應(yīng)用都可以訪問。機(jī)器人操作系統(tǒng)(ROS)11.2.2計算圖ROS-2遵循與ROS-1相同的計算圖概念,但有一些變化:節(jié)點:在ROS-2中,節(jié)點被稱為參與者。除了可以像ROS-1一樣在計算圖中定義節(jié)點之外,在ROS-2中一個進(jìn)程還可以初始化多個節(jié)點,它們可能位于同一進(jìn)程、不同進(jìn)程或不同機(jī)器中。發(fā)現(xiàn)(discovery):ROS-1中有一個master的概念可以幫助節(jié)點互相進(jìn)行通信,而ROS-2中則沒有master的概念,而是通過一種稱為“發(fā)現(xiàn)”的機(jī)制實現(xiàn)通信。在默認(rèn)情況下,ROS-2中的DDS標(biāo)準(zhǔn)實現(xiàn)提供了一種分布式發(fā)現(xiàn)方法,節(jié)點能夠在網(wǎng)絡(luò)中自動發(fā)現(xiàn)彼此。此機(jī)制有助于實現(xiàn)不同類型的多個機(jī)器人之間的可靠通信。除此之外,我們在前面章節(jié)中看到的其他概念,如消息、話題、參數(shù)服務(wù)器、服務(wù)和數(shù)據(jù)包,對于ROS-2來說都是一樣的。機(jī)器人操作系統(tǒng)(ROS)11.2.3社區(qū)層級與ROS-1成熟活躍的社區(qū)氛圍不同,ROS-2社區(qū)目前還在發(fā)展之中。一些研究機(jī)構(gòu)和企業(yè)都做出了很好的貢獻(xiàn)。由于ROS-2在2014年才開始開發(fā),因此關(guān)于ROS-2的研究和工具還有很多需要關(guān)注的問題,這是因為通過開源社區(qū)實現(xiàn)實時系統(tǒng)需要克服巨大的困難。OSRF與提供DDS實現(xiàn)并為社區(qū)做出貢獻(xiàn)的供應(yīng)商進(jìn)行了很好的溝通。目前ROS-1在其倉庫中有2000多個功能包,而ROS-2還只有100多個。最新的ROS-2頁面的網(wǎng)址為/doc/ros2/。機(jī)器人操作系統(tǒng)(ROS)11.3ROS-2中的通信前面我們所學(xué)習(xí)的是ROS-1通信模型,也就是話題、服務(wù)等通信機(jī)制。ROS-2的通信模型會稍顯復(fù)雜,加入了很多DDS的通信機(jī)制,如圖11-2所示?;贒DS的ROS-2通信模型包含以下幾個關(guān)鍵概念。參與者(Participant)在DDS中,每一個發(fā)布者或者訂閱者都稱為參與者,對應(yīng)于一個使用DDS的用戶,可以使用某種定義好的數(shù)據(jù)類型來讀/寫全局?jǐn)?shù)據(jù)空間。發(fā)布者(Publisher)數(shù)據(jù)發(fā)布的執(zhí)行者,支持多種數(shù)據(jù)類型的發(fā)布,可以與多個數(shù)據(jù)寫入器(DataWriter)相連,發(fā)布一種或多種話題(Topic)的消息。訂閱者(Subscriber)數(shù)據(jù)訂閱的執(zhí)行者,支持多種數(shù)據(jù)類型的訂閱,可以與多個數(shù)據(jù)讀取器(DataReader)相連,訂閱一種或多種話題(Topic)的消息。數(shù)據(jù)寫入器(DataWriter)上層應(yīng)用向發(fā)布者更新數(shù)據(jù)的對象,每個數(shù)據(jù)寫入器對應(yīng)一個特定的話題(Topic),類似于ROS-1中的一個消息發(fā)布者。數(shù)據(jù)讀取器(DataReader)上層應(yīng)用從訂閱者讀取數(shù)據(jù)的對象,每個數(shù)據(jù)讀取器對應(yīng)一個特定的話題(Topic),類似于ROS-1中的一個消息訂閱者。話題(Topic)與ROS-1中的概念類似,話題需要定義一個名稱和一種數(shù)據(jù)結(jié)構(gòu),但ROS2中的每個話題都是一個實例,可以存儲該話題中的歷史消息數(shù)據(jù)。質(zhì)量服務(wù)原則(QualityofServicePolicy)質(zhì)量服務(wù)原則簡稱QoSPolicy,這是ROS-2中新增的、也是非常重要的一個概念,控制各方面與底層的通信機(jī)制,主要從時間限制、可靠性、持續(xù)性、歷史記錄這幾個方面滿足用戶針對不同場景的數(shù)據(jù)需求。機(jī)器人操作系統(tǒng)(ROS)11.3ROS-2中的通信基于DDS的ROS-2通信模型包含以下幾個關(guān)鍵概念。參與者(Participant)在DDS中,每一個發(fā)布者或者訂閱者都稱為參與者,對應(yīng)于一個使用DDS的用戶,可以使用某種定義好的數(shù)據(jù)類型來讀/寫全局?jǐn)?shù)據(jù)空間。發(fā)布者(Publisher)數(shù)據(jù)發(fā)布的執(zhí)行者,支持多種數(shù)據(jù)類型的發(fā)布,可以與多個數(shù)據(jù)寫入器(DataWriter)相連,發(fā)布一種或多種話題(Topic)的消息。訂閱者(Subscriber)數(shù)據(jù)訂閱的執(zhí)行者,支持多種數(shù)據(jù)類型的訂閱,可以與多個數(shù)據(jù)讀取器(DataReader)相連,訂閱一種或多種話題(Topic)的消息。數(shù)據(jù)寫入器(DataWriter)上層應(yīng)用向發(fā)布者更新數(shù)據(jù)的對象,每個數(shù)據(jù)寫入器對應(yīng)一個特定的話題(Topic),類似于ROS-1中的一個消息發(fā)布者。數(shù)據(jù)讀取器(DataReader)上層應(yīng)用從訂閱者讀取數(shù)據(jù)的對象,每個數(shù)據(jù)讀取器對應(yīng)一個特定的話題(Topic),類似于ROS-1中的一個消息訂閱者。話題(Topic)與ROS-1中的概念類似,話題需要定義一個名稱和一種數(shù)據(jù)結(jié)構(gòu),但ROS2中的每個話題都是一個實例,可以存儲該話題中的歷史消息數(shù)據(jù)。質(zhì)量服務(wù)原則(QualityofServicePolicy)質(zhì)量服務(wù)原則簡稱QoSPolicy,這是ROS-2中新增的、也是非常重要的一個概念,控制各方面與底層的通信機(jī)制,主要從時間限制、可靠性、持續(xù)性、歷史記錄這幾個方面滿足用戶針對不同場景的數(shù)據(jù)需求。機(jī)器人操作系統(tǒng)(ROS)11.4安裝ROS-21.添加軟件源$sudoaptupdate&&sudoaptinstallcurl
$curl/repos.key|sudoapt-keyadd–
$sudosh-c'echo"deb[arch=amd64,arm64]/ubuntu/mainxenialmain">/etc/apt/sources.list.d/ros2-latest.list'2.安裝ROS-2$sudoapt-getupdate
$sudoaptinstall`aptlistros-ardent-*2>/dev/null|grep"/"|awk-F/'{print$1}'|grep-v-eros-ardent-ros1-bridge-eros-ardent-turtlebot2-|tr"\n"""`3.設(shè)置環(huán)境變量$source/opt/ros/ardent/setup.bash如果安裝了Python包——argcomplete,還需要設(shè)置以下環(huán)境變量:$source/opt/ros/ardent/share/ros2cli/environment/ros2-argcomplete.bash4.配置ROSMiddleware(RMW)DDS是ROS-2中的重要部分,ROS-2默認(rèn)使用的RMW是FastRPTS,我們也可以通過以下環(huán)境變量將默認(rèn)的RMW修改為OpenSplice:RMW_IMPLEMENTATION=rmw_opensplice_cpp5.安裝依賴ROS1的功能包ROS2在很長一段時間內(nèi)會與ROS1并存,所以目前很多ROS2中的功能包需要依賴ROS1中的功能包,ROS2也提供了與ROS1之間通信的橋梁——ros1_bridge。在安裝這些與ROS1有依賴關(guān)系的功能包之前,需要系統(tǒng)已經(jīng)成功安裝有ROS1,然后才能通過以下命令安裝ROS2的功能包:$sudoaptupdate
$sudoaptinstallros-ardent-ros1-bridgeros-ardent-turtlebot2-*按照以上方法安裝完成后,就可以使用ROS2的命令了。ROS2的默認(rèn)安裝路徑依然是在Ubuntu系統(tǒng)的/opt/ros路徑下。機(jī)器人操作系統(tǒng)(ROS)11.5本章小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版鋁合金模板工程安裝與環(huán)保評估合同4篇
- 2025年盆景市場推廣與銷售合作合同范本4篇
- 二零二五年度綠色建筑節(jié)能改造項目設(shè)計咨詢服務(wù)合同4篇
- 2025年移動通信網(wǎng)絡(luò)優(yōu)化服務(wù)合同范本
- 2025年度鋁扣板吊頂施工與維護(hù)一體化服務(wù)合同協(xié)議
- 2025游泳館會員卡年度健康體檢及運動康復(fù)服務(wù)協(xié)議3篇
- 2025年度凈身出戶離婚協(xié)議書模板與婚姻律師團(tuán)隊全程支持服務(wù)協(xié)議3篇
- 上海建筑工地勞務(wù)合作協(xié)議樣書
- 2025年度個人物流運輸承包合同范本2篇
- 2025年度私立學(xué)校教師聘用合同范本(創(chuàng)新教育版)
- 眼的解剖結(jié)構(gòu)與生理功能課件
- 小學(xué)網(wǎng)管的工作總結(jié)
- 2024年銀行考試-興業(yè)銀行筆試參考題庫含答案
- 泵站運行管理現(xiàn)狀改善措施
- 2024屆武漢市部分學(xué)校中考一模數(shù)學(xué)試題含解析
- SYT 0447-2014《 埋地鋼制管道環(huán)氧煤瀝青防腐層技術(shù)標(biāo)準(zhǔn)》
- 浙教版七年級下冊科學(xué)全冊課件
- 弧度制及弧度制與角度制的換算
- 瓦楞紙箱計算公式測量方法
- DB32-T 4004-2021水質(zhì) 17種全氟化合物的測定 高效液相色譜串聯(lián)質(zhì)譜法-(高清現(xiàn)行)
- DB15T 2724-2022 羊糞污收集處理技術(shù)規(guī)范
評論
0/150
提交評論