




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