




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
任務(wù)一ROS整體架構(gòu)的介紹01任務(wù)二啟動(dòng)ROS第一個(gè)節(jié)點(diǎn)——小海龜仿真02任務(wù)三ROS的通信機(jī)制在小海龜中的應(yīng)用0324任務(wù)一
ROS整體架構(gòu)的介紹251.?了解ROS的架構(gòu)設(shè)計(jì)2.?掌握ROS的節(jié)點(diǎn)、話題、服務(wù)等相關(guān)概念3.?掌握ROS文件系統(tǒng)的組成任務(wù)目標(biāo)26一、ROS的架構(gòu)設(shè)計(jì)ROS的架構(gòu)可以分為三個(gè)層次:操作系統(tǒng)層、中間層和應(yīng)用層,如圖所示?;A(chǔ)知識(shí)27ROS的架構(gòu)281.?操作系統(tǒng)層ROS與傳統(tǒng)操作系統(tǒng)不同,它不是直接在機(jī)器硬件上運(yùn)行的操作系統(tǒng),而是需要依賴Linux系統(tǒng)才能正常工作。因此,可以選擇在ROS官方支持的桌面型Linux系統(tǒng)上運(yùn)行ROS(建議優(yōu)先考慮ROS官方支持的桌面型Linux系統(tǒng),特別是Ubuntu操作系統(tǒng),因?yàn)樗鼈兙哂懈玫募嫒菪院头€(wěn)定性)。此外,也可以在其他使用Linux內(nèi)核的操作系統(tǒng)上運(yùn)行ROS,如Arch、Debian等。這種依賴于Linux系統(tǒng)的設(shè)計(jì)使得ROS能夠充分利用Linux的穩(wěn)定性和強(qiáng)大的功能來支持機(jī)器人應(yīng)用。ROS在Linux系統(tǒng)上與操作系統(tǒng)內(nèi)核和硬件之間建立了聯(lián)系,提供了豐富的機(jī)器人開發(fā)和控制功能。292.?中間層Linux是一個(gè)通用的操作系統(tǒng),沒有專門為ROS開發(fā)設(shè)計(jì)的特殊中間件。因此,ROS在中間層面承擔(dān)了很多工作,以銜接網(wǎng)絡(luò)上的應(yīng)用系統(tǒng)和不同部分,實(shí)現(xiàn)資源和功能的共享。其中,ROS基于TCP/UDP進(jìn)行網(wǎng)絡(luò)封裝,并設(shè)計(jì)了一套基于TCPROS/UDPROS的通信系統(tǒng)。這個(gè)通信系統(tǒng)采用了發(fā)布/訂閱和客戶端/服務(wù)器等通信模型,實(shí)現(xiàn)了多種機(jī)制的數(shù)據(jù)傳輸。除了TCPROS/UDPROS通信系統(tǒng),ROS還提供了一種進(jìn)程內(nèi)的通信方式,即Nodelet。Nodelet是為了優(yōu)化多進(jìn)程通信而提供的數(shù)據(jù)傳輸方式,它能夠提高數(shù)據(jù)通信的實(shí)時(shí)性。303.?應(yīng)用層在應(yīng)用層,ROS的正常運(yùn)行需要一個(gè)管理器——ROSmaster。ROSmaster即節(jié)點(diǎn)管理器,負(fù)責(zé)管理整個(gè)系統(tǒng)的正常運(yùn)行。ROS社區(qū)中分享了豐富的機(jī)器人應(yīng)用功能包,這些功能包內(nèi)的模塊以節(jié)點(diǎn)為基本單元運(yùn)行,依照ROS標(biāo)準(zhǔn)的輸入、輸出接口進(jìn)行通信。開發(fā)者使用這些功能包時(shí),無須深入關(guān)注模塊內(nèi)部的細(xì)節(jié),只需熟悉接口規(guī)范即可輕松實(shí)現(xiàn)功能復(fù)用,有效提高了開發(fā)效率。二、ROS的相關(guān)概念ROS的功能模塊是以節(jié)點(diǎn)為單位單獨(dú)運(yùn)行的,可以分布在多個(gè)主機(jī)里,當(dāng)系統(tǒng)運(yùn)行時(shí)通過端對(duì)端的拓?fù)浣Y(jié)構(gòu)進(jìn)行連接。ROS的相關(guān)概念如下:1.節(jié)點(diǎn)(node):節(jié)點(diǎn)是ROS中最小的進(jìn)程單元,一個(gè)軟件包中可以有多個(gè)可執(zhí)行文件(可以由操作系統(tǒng)進(jìn)行加載、執(zhí)行的文件),可執(zhí)行文件在運(yùn)行后就成為一個(gè)進(jìn)程,這個(gè)進(jìn)程在ROS中稱為節(jié)點(diǎn)。2.消息(message):消息是一種數(shù)據(jù)結(jié)構(gòu),支持多種數(shù)據(jù)類型(整型、浮點(diǎn)型、布爾型、字符串型、數(shù)組型等),同時(shí)也支持消息的嵌套定義。31323.話題(topic):也稱為主題,是消息的載體。節(jié)點(diǎn)之間通過發(fā)布和訂閱話題來傳遞消息。4.服務(wù)(service):服務(wù)是應(yīng)答模式的信息交互方式,它基于客戶端/服務(wù)器模型。與話題的主要不同之處是,當(dāng)服務(wù)端接收到客戶端的請(qǐng)求時(shí),會(huì)對(duì)請(qǐng)求做出響應(yīng)。5.節(jié)點(diǎn)管理器:節(jié)點(diǎn)管理器是ROS運(yùn)行的核心,其主要功能是登記注冊(cè)節(jié)點(diǎn)、服務(wù)和話題的名稱。三、ROS的文件系統(tǒng)類似于操作系統(tǒng),ROS將所有文件按照一定的規(guī)則進(jìn)行組織,不同功能的文件被放置在不同文件夾下,工作空間(存放工程開發(fā)相關(guān)文件的文件夾)如圖所示。33工作空間34ROS系統(tǒng)通過工作空間為不同的項(xiàng)目配置獨(dú)立的環(huán)境和代碼。當(dāng)有多個(gè)項(xiàng)目時(shí),可以為每個(gè)項(xiàng)目建立專屬的工作空間,使用時(shí)只需要切換工作空間即可調(diào)用不同項(xiàng)目的功能包和程序。ROS默認(rèn)使用Catkin編譯系統(tǒng),編譯產(chǎn)生的工作空間文件結(jié)構(gòu)如下:1.src(代碼空間):儲(chǔ)存所有ROS功能包的源代碼。2.build(編譯空間):儲(chǔ)存工作空間編譯過程中產(chǎn)生的緩存信息和中間文件。3.devel(開發(fā)空間):儲(chǔ)存編譯生成的可執(zhí)行文件。4.功能包:功能包是ROS的基本單元,包含ROS節(jié)點(diǎn)、庫、配置文件等。355.功能包清單:一個(gè)名為“package.xml”的功能包清單文件,用“xml”的標(biāo)簽語言格式記錄了功能包的基本信息,如編譯標(biāo)志、依賴關(guān)系等,主要作用是使用戶和系統(tǒng)更容易地安裝和分發(fā)功能包。6.消息類型:消息是ROS中一個(gè)節(jié)點(diǎn)發(fā)布/訂閱到其他節(jié)點(diǎn)的通信信息,消息類型是消息的數(shù)據(jù)結(jié)構(gòu)。7.服務(wù)類型:服務(wù)是ROS中一個(gè)節(jié)點(diǎn)請(qǐng)求/響應(yīng)到其他節(jié)點(diǎn)的通信過程,服務(wù)類型定義了其通信的數(shù)據(jù)類型。8.代碼:儲(chǔ)存功能包節(jié)點(diǎn)代碼的文件夾,包括C++程序、Python腳本等。任務(wù)二
啟動(dòng)ROS第一個(gè)節(jié)點(diǎn)——小海龜仿真361.?通過小海龜仿真例程,初步了解ROS基礎(chǔ)知識(shí)2.?了解ROS中的節(jié)點(diǎn)控制原理3.?能啟動(dòng)小海龜仿真節(jié)點(diǎn)并用鍵盤控制小海龜?shù)倪\(yùn)動(dòng)任務(wù)目標(biāo)37一、小海龜仿真ROS提供了一個(gè)自帶的基礎(chǔ)教學(xué)功能包,名為turtlesim(小海龜仿真),可以通過該功能包的實(shí)例完成ROS相關(guān)基礎(chǔ)知識(shí)的學(xué)習(xí),包括節(jié)點(diǎn)、話題、服務(wù)、參數(shù)設(shè)置等。各版本ROS中turtlesim的圖標(biāo)見下表。基礎(chǔ)知識(shí)3839各版本ROS的turtlesim圖標(biāo)40各版本ROS的turtlesim圖標(biāo)二、節(jié)點(diǎn)控制原理可以通過鍵盤來控制小海龜?shù)倪\(yùn)動(dòng),使用節(jié)點(diǎn)控制的計(jì)算圖如圖所示。鍵盤控制節(jié)點(diǎn)/teleop_turtle通過話題與小海龜節(jié)點(diǎn)/turtlesim連接。當(dāng)按下鍵盤的指定按鍵時(shí),鍵盤控制節(jié)點(diǎn)向/turtle1/cmd_vel話題發(fā)布一個(gè)速度消息。小海龜節(jié)點(diǎn)獲取/turtle1/cmd_vel中的速度消息進(jìn)行移動(dòng)。41計(jì)算圖(節(jié)點(diǎn)控制)任務(wù)三
ROS的通信機(jī)制在小海龜中的應(yīng)用421.?了解ROS的話題通信機(jī)制2.?了解ROS的服務(wù)通信機(jī)制3.?了解ROS的參數(shù)管理機(jī)制4.?能使用話題通信機(jī)制和服務(wù)通信機(jī)制控制小海龜?shù)倪\(yùn)動(dòng)并修改其參數(shù)任務(wù)目標(biāo)43ROS的通信機(jī)制ROS的通信機(jī)制是其核心,它基于分布式通信技術(shù),ROS的所有功能和工具都構(gòu)建在這種分布式通信機(jī)制的基礎(chǔ)上。因此,ROS的通信機(jī)制可以被視為最基礎(chǔ)、最核心的技術(shù)。ROS的通信機(jī)制主要分為三大類:話題通信機(jī)制、服務(wù)通信機(jī)制和參數(shù)管理機(jī)制。這些機(jī)制使得ROS中的節(jié)點(diǎn)能夠相互交流和共享數(shù)據(jù),實(shí)現(xiàn)高效的協(xié)作和信息傳遞?;A(chǔ)知識(shí)441.?話題通信機(jī)制話題通信機(jī)制是ROS中使用最為頻繁的通信機(jī)制,ROS中的話題以發(fā)布/訂閱的方式傳輸數(shù)據(jù)。一個(gè)節(jié)點(diǎn)可以在特定的主題上發(fā)布消息,而另一個(gè)節(jié)點(diǎn)可以訂閱某個(gè)特定的主題類型的數(shù)據(jù),可以同時(shí)有多個(gè)節(jié)點(diǎn)發(fā)布或訂閱同一個(gè)主題的消息。話題通信機(jī)制為異步通信,發(fā)布者和訂閱者的節(jié)點(diǎn)啟動(dòng)順序沒有強(qiáng)制要求。如圖所示為話題通信機(jī)制的通信模型。4546話題通信機(jī)制的通信模型本任務(wù)將使用turtlesim功能包,啟動(dòng)turtlesim_node節(jié)點(diǎn)創(chuàng)建一個(gè)小海龜實(shí)例,小海龜節(jié)點(diǎn)相關(guān)的話題見下表。47turtlesim_node相關(guān)話題可以通過為小海龜訂閱的話題發(fā)布消息的方式來控制小海龜?shù)倪\(yùn)動(dòng),對(duì)應(yīng)的節(jié)點(diǎn)計(jì)算圖如圖所示。48節(jié)點(diǎn)計(jì)算圖(直接發(fā)布話題消息)2.?服務(wù)通信機(jī)制服務(wù)通信機(jī)制是基于C/S(客戶端/服務(wù)器)模式的雙向數(shù)據(jù)傳輸,是一種同步通信機(jī)制,它要求發(fā)送方接收到應(yīng)答后才能繼續(xù)進(jìn)行通信。在這種通信模式中,客戶端向服務(wù)器發(fā)送請(qǐng)求,并等待服務(wù)器的響應(yīng)。基于C/S模式的雙向數(shù)據(jù)傳輸意味著客戶端和服務(wù)器之間可以進(jìn)行雙向的數(shù)據(jù)交互,客戶端發(fā)送請(qǐng)求,服務(wù)器進(jìn)行處理并返回相應(yīng)的應(yīng)答,這種通信模式常用于需要實(shí)時(shí)響應(yīng)和數(shù)據(jù)交互的場景。4950服務(wù)通信機(jī)制的通信模型3.?參數(shù)管理機(jī)制ROS提供了參數(shù)管理機(jī)制用于節(jié)點(diǎn)的配置和參數(shù)的調(diào)整。參數(shù)管理機(jī)制允許節(jié)點(diǎn)之間共享和修改參數(shù)值,這使得節(jié)點(diǎn)的行為和配置更加靈活。在ROS中,參數(shù)值可以被存儲(chǔ)在參數(shù)服務(wù)器上。參數(shù)服務(wù)器是一個(gè)全局的參數(shù)存儲(chǔ)系統(tǒng),允許節(jié)點(diǎn)讀取和寫入?yún)?shù)值。參數(shù)服務(wù)器可以在ROS網(wǎng)絡(luò)中的任何節(jié)點(diǎn)上運(yùn)行,節(jié)點(diǎn)可以連接到參數(shù)服務(wù)器以獲取或設(shè)置參數(shù)值,也可以通過ROS客戶端庫(如rospy或roscpp)與參數(shù)服務(wù)器進(jìn)行交互。51參數(shù)管理機(jī)制的優(yōu)勢(shì)在于它可以提供一個(gè)集中的區(qū)域來管理
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 14811:2025 EN Ultra-low carbon high boron steel wire rod for copper cladded wire
- 承包出租屋合同協(xié)議書
- 三方物流運(yùn)輸合同
- 數(shù)據(jù)記錄表-產(chǎn)品性能評(píng)測
- 集體“建立”用地使用權(quán)出租合同8篇
- 2025年烏魯木齊貨運(yùn)從業(yè)資格證考試模擬試題及答案大全解析
- 單元房租賃合同書范本5篇
- 醫(yī)療器械運(yùn)輸合同
- 公司網(wǎng)絡(luò)線路維護(hù)合同8篇
- 委托運(yùn)輸合同樣本8篇
- 2024年家庭教育指導(dǎo)師考試(重點(diǎn))題庫及答案(含各題型)
- 2024年儀表工程師崗位職責(zé)(20篇)
- 直腸癌術(shù)后的康復(fù)護(hù)理
- 性商老師課程培訓(xùn)課件
- 拆除鍋爐可行性報(bào)告
- 二級(jí)精神病醫(yī)院評(píng)審標(biāo)準(zhǔn)實(shí)施細(xì)則
- 全套ISO45001職業(yè)健康安全管理體系文件(手冊(cè)及程序文件)
- tdp燙傷處理應(yīng)急預(yù)案
- MQL4命令中文詳解手冊(cè)
- 水利工程危險(xiǎn)源辨識(shí)清單全
- ISO20000:2018版標(biāo)準(zhǔn)培訓(xùn)教材
評(píng)論
0/150
提交評(píng)論