版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
華南理工大學自動化科學與工程學院《移動機器人學》
華南理工大學自動化科學與工程學院第四章ROS系統(tǒng)
4.1什么是ROSROS的起源在ROS誕生之前,機器人軟件開發(fā)非常困難,主要原因是機器人的硬件和軟件都非常復雜,且缺乏一個統(tǒng)一的軟件開發(fā)平臺。ROS的目標是使得機器人的軟件系統(tǒng)能夠更容易地編寫、測試和部署,同時也能夠更好地支持機器人應(yīng)用的開發(fā)和研究。ROS是一個機器人軟件開發(fā)平臺,最初由斯坦福人工智能實驗室(StanfordAILab)于2007年發(fā)起。它為機器人研究提供了一個開放的、靈活的軟件平臺。圖中展現(xiàn)了基于該系統(tǒng)的機器人PR2的一些功能,如做飯、疊衣服等,當初這款機器人的面世掀起了轟動,引起了巨大的關(guān)注。
PR2的應(yīng)用功能ROS的發(fā)展史
4.1什么是ROS開發(fā)者能夠按照自己的需求選擇使用各種軟件庫和工具并能夠快速適應(yīng)新的硬件平臺和機器人任務(wù)ROS的設(shè)計目標它在設(shè)計的時候基于以下一些目標:
4.1什么是ROS靈活性通過提供現(xiàn)成的庫和工具,以及對組件化軟件開發(fā)的支持,使得代碼的重用變得更加容易可重復性用戶輕松地添加新的功能和算法,同時也允許更好地管理和維護大型軟件系統(tǒng)可擴展性ROS的代碼基于開放源代碼,可以在多種操作系統(tǒng)和硬件平臺上運行可移植性多臺計算機通過網(wǎng)絡(luò)能夠連接在一起,實現(xiàn)分布式計算,以便實現(xiàn)更高效的計算和控制分布式4.2ROS安裝ROS的版本選擇本書采用的是ROSKineticKame版本,是ROS機器人操作系統(tǒng)的一個穩(wěn)定版本于2016年5月23日發(fā)布。它是為Ubuntu16.04TS(XenialXerus)操作系統(tǒng)設(shè)計的,支持Python2.7和C++11。ROSKinetic在ROS社區(qū)得到廣泛使用,并且被視為當前最穩(wěn)定和可靠的ROS版本之一。
配制系統(tǒng)軟件源以Ubuntu系統(tǒng)軟件源安裝ROS為例,為了允許系統(tǒng)從軟件源中下載和安裝ROS需要配置系統(tǒng)軟件源,包括restricted、universe、multiverse三種軟件源。如果系統(tǒng)未被修改過,則默認已開啟這三種軟件源。為避免配置錯誤建議査看Ubuntu軟件中心的軟件源配置頁面,確認是否與圖中的選項相同。
Ubuntu系統(tǒng)軟件源的設(shè)置4.2ROS安裝添加ROS軟件源在Ubuntu系統(tǒng)中,軟件源地址保存在/etc/apt日錄下的sources.list文件中,在安裝ROS過程中,需要將ROS的軟件源地址添加到該文件中,以確保能夠正確找到ROS相關(guān)軟件的下載地址。在終端中輸人下面的命令添加ROS官方的軟件源鏡像:
為提高下載速度,建議使用以下任意一個國內(nèi)的鏡像源1)中國科學技術(shù)大學鏡像源2)中山大學鏡像源3)易科機器人實驗室4.2ROS安裝添加密鑰使用如下命令添加密鑰:
安裝ROS現(xiàn)在可以進行ROS的安裝。為了確保前面軟件源的修改得以更新,輸入以下命令來更新系統(tǒng)軟件源:
1)推薦安裝ROS的桌面完整版(Desktop-full),它包含了ROS的所有核心組件和庫。它是最完整、最全面的ROS版本,適用于需要使用ROS所有功能和工具的用戶。安裝桌面完整版,只需輸入以下命令
2)若只需要ROS的基礎(chǔ)功能,同時還希望使用RVIZ可視化工具,那么可以選擇桌面版(Desktop)安裝。
4.2ROS安裝3)基礎(chǔ)版(ROS-base)是ROS的一個版本,它被簡化為僅包含基礎(chǔ)功能,如核心功能包、構(gòu)建工具和通信機制,并去掉了GUI、機器人通用函數(shù)庫、功能包和工具。
4)獨立功能包(IndividualPackage)安裝。
初始化rosdepROS提供了rosdep工具,用于安裝功能包的系統(tǒng)依賴項,同時也是某些ROS核心功能包必須用到的工具。在完成ROS的安裝后,需要使用以下兩條命令進行rosdep的初始化和更新
設(shè)置環(huán)境變量在Ubuntu中,默認的終端為bash,因此在bash終端中,設(shè)置ROS環(huán)境變量的命令如下
4.2ROS安裝完成安裝在安裝ROS的最后階段,終于要驗證一下是否安裝成功了!現(xiàn)在打開終端,輸入roscore命令,如果看到類似下圖的信息,那么ROS已經(jīng)成功地安裝并可以運行了!
roscore成功啟動后的日志消息4.3ROS節(jié)點ROS架構(gòu)設(shè)計1)ROS的架構(gòu)可以分為三個層次,分別是OS層、中間層和應(yīng)用層
ROS架構(gòu)12)ROS還有另外的分層方法,即從系統(tǒng)實現(xiàn)的視角看,ROS可以看作由文件系統(tǒng)、計算圖和開源社區(qū)等部分組成
ROS架構(gòu)24.3ROS節(jié)點計算圖從計算圖的角度來看,ROS系統(tǒng)軟件的功能模塊以節(jié)點為單位獨立運行,可以分布于多個相同或不同的主機中,在系統(tǒng)運行時通過端對端的拓撲結(jié)構(gòu)進行連接。(1)ROS是一個基于節(jié)點的系統(tǒng),其核心概念是節(jié)點(Node)。節(jié)點是執(zhí)行運算任務(wù)的進程,一個系統(tǒng)通常包含多個節(jié)點。節(jié)點之間的通信通過端對端的連接實現(xiàn),而這些連接關(guān)系可以形象地表示為節(jié)點關(guān)系圖
ROS中的節(jié)點關(guān)系圖4.3ROS節(jié)點(2)在ROS中,節(jié)點之間主要是通過發(fā)布/訂閱模型進行消息通信的。每個消息都是一個嚴格的數(shù)據(jù)結(jié)構(gòu),支持多種標準數(shù)據(jù)類型,包括整型、浮點型、布爾型等,并且還支持嵌套結(jié)構(gòu)和數(shù)組類型。開發(fā)者可以根據(jù)自己的需求自定義數(shù)據(jù)結(jié)構(gòu),以便更好地適應(yīng)各種應(yīng)用場景。
(3)消息通過發(fā)布/訂閱的方式進行傳遞,如圖所示。發(fā)布者和訂閱者分別注冊所關(guān)注的話題(Topic),然后系統(tǒng)自動將消息從發(fā)布者傳遞到訂閱者。
ROS中基于發(fā)布/訂閱模型的話題通信(4)在ROS中,除了基于話題的發(fā)布/訂閱模型外,還有一種同步傳輸模式稱為服務(wù)(Service),該模型是基于客戶端/服務(wù)器(Client/Server)模型的。4.3ROS節(jié)點文件系統(tǒng)與操作系統(tǒng)類似,ROS按照特定的規(guī)則對所有文件進行組織和管理,以便不同功能的文件能夠放置在各自對應(yīng)的文件夾下,方便進行更加高效的管理和使用,具體的組織形式可見圖
ROS中的文件系統(tǒng)結(jié)構(gòu)功能包:功能包是ROS軟件中的基本單元,包含ROS節(jié)點、庫、配置文件等。
功能包清單:是一個名為package.xml的XML文件,包含ROS功能包的基本信息,如功能包的名稱、版本、作者、許可證、其他依賴選項、編譯標志等。
元功能包:是一種組織多個功能包的方式。它將多個用于同一目的的功能包集成在一起,并提供一個簡單的接口,使用戶能夠輕松地安裝和使用這些功能包。
4.3ROS節(jié)點元功能包清單:在ROS中,元功能包清單是指一個XML文件,其中包含多個功能包的信息和依賴關(guān)系,以及一些元功能包級別的參數(shù)。
消息類型:是指用于節(jié)點間發(fā)布和訂閱通信信息的數(shù)據(jù)格式,可以使用ROS系統(tǒng)提供的標準消息類型,也可以在自定義功能包的msg文件夾下定義所需的消息類型。
服務(wù)類型:定義了ROS客戶端/服務(wù)器通信模型下的請求與應(yīng)答數(shù)據(jù)類型。一個服務(wù)類型包含兩個部分:一個請求類型和一個應(yīng)答類型,分別對應(yīng)了客戶端請求服務(wù)器和服務(wù)器向客戶端返回響應(yīng)所使用的數(shù)據(jù)類型。
開源社區(qū)ROS的開源社區(qū)擁有著豐富的共享資源,可以在其中找到以下一些資源
ROS社區(qū)資源的組織形式4.4ROS通信話題通信機制在ROS中,話題(Topic)是最為常用的通信方式之一,其通信模型也比較復雜。通過話題,ROS的不同節(jié)點可以實現(xiàn)發(fā)布和訂閱消息的功能,以完成各種機器人應(yīng)用的任務(wù)。假設(shè)有兩個節(jié)點:發(fā)布者
Talker和訂閱者
Listener,它們分別發(fā)布和訂閱同一個話題。節(jié)點的啟動順序沒有強制要求,發(fā)布者和訂閱者建立通信的過程可以分成以下幾個步驟,
基于發(fā)布/訂閱模型的話題通信機制4.4ROS通信服務(wù)通信機制服務(wù)是ROS中一種帶有請求和應(yīng)答的通信方式,其通信原理與話題不同。服務(wù)通信機制主要包含5個部分:
Talker注冊、Listener注冊、ROSMaster進行信息匹配、Listener與Talker建立網(wǎng)絡(luò)連接、Talker向Listener發(fā)布服務(wù)應(yīng)答數(shù)據(jù)。原理如圖所示
基于服務(wù)器/客戶端的服務(wù)通信機制4.4ROS通信參數(shù)管理機制參數(shù)和ROS中的全局變量類似,是用來存儲程序運行過程中需要使用的數(shù)據(jù),ROSMaster對其進行管理,其通信機制相較于服務(wù)機制更加簡單,不需要使用TCP/UDP進行通信,具體通信機制如圖
基于RPC的參數(shù)管理機制4.4ROS通信話題與服務(wù)的區(qū)別話題和服務(wù)是ROS中最基礎(chǔ)也是使用最多的通信方法,從前面介紹的ROS通信機制中可以看到這兩者有明確的區(qū)別,具體總結(jié)見表
話題與服務(wù)的區(qū)別總的來說,ROS中的通信模型主要有兩種:基于發(fā)布/訂閱模型的異步通信模型和基于客戶端/服務(wù)器模型的同步通信模型。發(fā)布/訂閱模型中,消息的產(chǎn)生方將消息發(fā)布到特定話題,而消息的使用方則訂閱該話題以接收消息;而在客戶端/服務(wù)器模型中,客戶端會向服務(wù)端發(fā)送請求,等待服務(wù)端返回結(jié)果后再繼續(xù)執(zhí)行后續(xù)的操作。4.5ROS工具QT工具箱ROS提供了rqt_common_plugins這個Qt架構(gòu)的工具套件,旨在方便用戶進行可視化調(diào)試和顯示操作。這個工具套件中有很多實用的工具,可供用戶靈活選擇和使用。
日志輸出工具—rqt_console計算圖可視化工具—rqt_graph數(shù)據(jù)繪圖工具—rqt_plot圖像渲染工具—rqt_image_view4.5ROS工具RVIZ三維可視化平臺RVIZ是ROS中的一個可視化工具,用于可視化ROS系統(tǒng)中的傳感器數(shù)據(jù)、機器
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款合同服務(wù)協(xié)議書(2篇)
- 吉林長春外國語學校2025屆高三上學期期中考試化學試卷試題及答案解析
- 豐田汽車租賃合同
- 債權(quán)融資服務(wù)合同
- 停車場地出租合同
- 八年級語文上冊第四單元寫作語言要連貫教案新人教版1
- 六年級數(shù)學上冊5圓綜合與實踐確定起跑線教案新人教版
- 2024年金融科技公司應(yīng)收賬款質(zhì)押業(yè)務(wù)合作協(xié)議3篇
- 2025年硫代硫酸鹽項目發(fā)展計劃
- 第2課 第二次鴉片戰(zhàn)爭(解析版)
- 《駱駝祥子》1-24章每章練習題及答案
- 《伊利乳業(yè)集團盈利能力研究》文獻綜述3000字
- 國際金融課后習題答案(吳志明第五版)第1-9章
- 《基于杜邦分析法周大福珠寶企業(yè)盈利能力分析報告(6400字)》
- 全國英語等級考試三級全真模擬試題二-2023修改整理
- 02R112 拱頂油罐圖集
- 減鹽防控高血壓培訓課件
- 英語課presentation中國麻將-Chinese-mahjong
- GB/T 8571-2008復混肥料實驗室樣品制備
- GB/T 25344-2010中華人民共和國鐵路線路名稱代碼
- GB/T 1885-1998石油計量表
評論
0/150
提交評論