ROS機器人開發(fā)項目實戰(zhàn) 課件 第1、2章 ROS概述、ROS架構(gòu)_第1頁
ROS機器人開發(fā)項目實戰(zhàn) 課件 第1、2章 ROS概述、ROS架構(gòu)_第2頁
ROS機器人開發(fā)項目實戰(zhàn) 課件 第1、2章 ROS概述、ROS架構(gòu)_第3頁
ROS機器人開發(fā)項目實戰(zhàn) 課件 第1、2章 ROS概述、ROS架構(gòu)_第4頁
ROS機器人開發(fā)項目實戰(zhàn) 課件 第1、2章 ROS概述、ROS架構(gòu)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章機器人操作系統(tǒng)(ROS)概述目錄contentsUbuntu系統(tǒng)及常用指令ROS發(fā)展與現(xiàn)狀安裝ROS認(rèn)識ROSROS開發(fā)環(huán)境搭建Ubuntu系統(tǒng)及常用指令01CATALOGUEUbuntu系統(tǒng)安裝1.下載軟件安裝包(ubuntu-20.04.4)/ubuntu-releases/20.04/2.下載U盤系統(tǒng)制作軟件(UltraISO)/3.安裝方法/video/BV1WZ4y167me?p=7注意:分區(qū)(Swap、Logic、Main)Ubuntu系統(tǒng)界面Ubuntu系統(tǒng)使用介紹1.點擊圖標(biāo)進(jìn)行打開2.使用按鍵“Ctrl+Alt+T”進(jìn)行打開打開終端常用指令ls-顯示文件及文件夾cd-修改工作目錄pwd-打印當(dāng)前工作目錄cp-復(fù)制文件或文件夾mv-移動文件或文件夾rm-刪除文件或文件夾kill-強制關(guān)閉進(jìn)程mkdir-創(chuàng)建目錄/文件夾touch-創(chuàng)建文件gedit-創(chuàng)建文件(文件已存在,則打開)sudo-執(zhí)行指令ROS發(fā)展與現(xiàn)狀02CATALOGUEROS發(fā)展與現(xiàn)狀機器人開發(fā)不可或缺的工具,已經(jīng)應(yīng)用于各類機器人開發(fā)安裝ROS03CATALOGUEROS安裝步驟ROS官網(wǎng)安裝步驟:/noetic/Installation/Ubuntu一鍵安裝方式:/ROS安裝步驟安裝目錄:/opt/rosROS安裝步驟啟動rosmaster節(jié)點ROS安裝步驟啟動master啟動Turtlesim啟動鍵盤控制節(jié)點$roscore$rosrunturtlesimturtlesim_node$rosrunturtlesimturtle_teleop_key以下哪個指令可以查看當(dāng)前工作目錄(

)lspwdcdgeditABCD提交單選題1分認(rèn)識ROS04CATALOGUEROS的定義與核心概念

ROS-RobotOperatingSystem,機器人操作系統(tǒng)=+++通信機制開發(fā)工具應(yīng)用功能生態(tài)系統(tǒng)ROS的定義與核心概念ROS的定義與核心概念ROS通信機制介紹話題(Topic)——異步通信機制節(jié)點間用來傳輸數(shù)據(jù)的重要總線;使用發(fā)布/訂閱模型,數(shù)據(jù)由發(fā)布者傳輸?shù)接嗛喺?,同一個話題的訂閱者或發(fā)布者可以不唯一。消息(Message)——話題數(shù)據(jù)具有一定的類型和數(shù)據(jù)結(jié)構(gòu),包括ROS提供的標(biāo)準(zhǔn)類型和用戶自定義類型;使用編程語言無關(guān)的.msg文件定義,編譯過程中生成對應(yīng)的代碼文件。ROS通信機制介紹服務(wù)(Service)——同步通信機制使用客戶端/服務(wù)器(C/S)模型,客戶端發(fā)送請求數(shù)據(jù),服務(wù)器完成處理后返回應(yīng)答數(shù)據(jù);使用編程語言無關(guān)的.srv文件定義請求和應(yīng)答數(shù)據(jù)結(jié)構(gòu),編譯過程中生成對應(yīng)的代碼文件。ROS通信機制介紹話題與服務(wù)的區(qū)別ROS通信機制介紹參數(shù)(Parameter)——全局共享字典可通過網(wǎng)絡(luò)訪問的共享、多變量字典;節(jié)點使用此服務(wù)器來存儲和檢索運行時的參數(shù);適合存儲靜態(tài)、非二進(jìn)制的配置參數(shù),不適合存儲動態(tài)配置的數(shù)據(jù)。ROS通信機制介紹功能包(Package)ROS軟件中的基本單元,包含節(jié)點源碼、配置文件、數(shù)據(jù)定義等。功能包清單(Packagemanifest)

記錄功能包的基本信息,保護作者信息、許可信息、依賴選項、編譯標(biāo)志等。元功能包(MetaPackage)

組織多個用于同一目的的功能包。ROS開發(fā)環(huán)境搭建05CATALOGUE安裝終端

ROS中需要頻繁使用終端,經(jīng)常需要同時開啟多個窗口,推薦使用Terminator。在終端中,執(zhí)行如下指令,進(jìn)行Terminator的安裝。$sudoaptinstallterminator終端工具Terminator使用效果安裝VSCodeVSCode的全稱是VisualStudioCode,是微軟公司研發(fā)的一款輕量級代碼編輯器,免費,但功能強大。VSCode支持Windows、MacOS、Linux等多種平臺。(1)下載VSCode。下載地址:/docs?start=true(2)安裝VSCode。方式1:雙擊安裝即可(或右擊選擇安裝)。方式2:在所在文件夾下打開終端,輸入如下命令進(jìn)行安裝:打開VSCode后的界面$sudodpkg-ixxxx.debTHANKS感謝觀看第2章機器人操作系統(tǒng)(ROS)架構(gòu)目錄contentsROS架構(gòu)簡介ROS文件系統(tǒng)ROS計算圖ROS架構(gòu)簡介01CATALOGUEROS架構(gòu)簡介ROS的架構(gòu)可以分為三個層次:操作系統(tǒng)層、中間層和應(yīng)用層,如圖所示。ROS的架構(gòu)ROS架構(gòu)簡介1.操作系統(tǒng)層(OS層)ROS并不是一個傳統(tǒng)意義上的操作系統(tǒng),而只是一個元操作系統(tǒng),無法像Windows、Linux一樣直接運行在計算機硬件之上,而是需要依托真正意義的操作系統(tǒng)。所以在OS層,可以直接使用ROS官方支持度最好的Ubuntu操作系統(tǒng),也可以使用MacOS、Arch、Debian等操作系統(tǒng),Windows也支持ROS2.0的版本。2.中間層

Linux是一個通用系統(tǒng),并沒有針對機器人開發(fā)提供特殊的中間件,所以ROS在中間層做了大量的工作,其中最為重要的就是基于TCPROS/UDPROS的通信系統(tǒng)。ROS的通信系統(tǒng)基于TCP/UDP網(wǎng)絡(luò),在此基礎(chǔ)之上進(jìn)行了二次封裝,也就是TCPROS/UDPROS。通信系統(tǒng)使用發(fā)布/訂閱、客戶端/服務(wù)器等模式,實現(xiàn)多種通信機制的數(shù)據(jù)傳輸。

除了TCPROS/UDPROS的通信機制外,ROS還提供一種進(jìn)程內(nèi)的通信方法——Nodelet,它可以為多進(jìn)程通信提供一種更優(yōu)化的數(shù)據(jù)傳輸方式,為數(shù)據(jù)的實時性傳輸提供支持。ROS架構(gòu)簡介3.應(yīng)用層

在應(yīng)用層中,ROS需要運行一個管理者——Master,負(fù)責(zé)管理整個系統(tǒng)的正常運行。ROS社區(qū)內(nèi)共享了大量的機器人應(yīng)用功能包,這些功能包內(nèi)的模塊以節(jié)點為單位運行,以ROS標(biāo)準(zhǔn)的輸入輸出作為接口,開發(fā)者不需要關(guān)注模塊的內(nèi)部實現(xiàn)機制,只需要了解接口規(guī)則即可實現(xiàn)復(fù)用,極大地提高了代碼開發(fā)效率。作為一種“次級操作系統(tǒng)”,常見的ROS系統(tǒng)架構(gòu)一般有三個部分:ROS架構(gòu)簡介

作為一種“次級操作系統(tǒng)”,常見的ROS系統(tǒng)架構(gòu)一般有三個部分:(1)文件系統(tǒng)級——描述了程序文件在硬盤上是如何組織的,ROS的內(nèi)部結(jié)構(gòu)、文件結(jié)構(gòu)和核心文件都在這一層;(2)計算圖級——說明了程序的運行方式,即進(jìn)程與進(jìn)程,進(jìn)程與系統(tǒng)之間的通信;(3)開源社區(qū)級——描述了開發(fā)者之間是如何共享知識,算法和代碼的。從系統(tǒng)實現(xiàn)角度來劃分ROS的架構(gòu)ROS文件系統(tǒng)02CATALOGUEROS文件系統(tǒng)ROS文件系統(tǒng)主要包括了功能包集、功能包、功能包清單、消息類型、服務(wù)類型和代碼等。ROS文件系統(tǒng)示意圖ROS文件系統(tǒng)1)功能包集(Metapackage)2)功能包(Package)

功能包是ROS系統(tǒng)中軟件組織的主要形式,一個功能包包含了創(chuàng)建ROS程序的最小結(jié)構(gòu)和最小內(nèi)容,如ROS運行的進(jìn)程。3)功能包清單(PackageManifest)

功能包清單是一個package.xml文件,它提供了功能包的相關(guān)信息。4)消息類型(Messagetype)

ROS通過消息進(jìn)行信息傳遞,ROS中提供了大量的標(biāo)準(zhǔn)類型,.msg的文件存儲在功能包的msg文件夾下。5)服務(wù)類型(Serviectype)

在ROS中,擴展名為.srv的服務(wù)描述文件定義了ROS中的請求和回應(yīng)的數(shù)據(jù)結(jié)構(gòu),存儲在功能包的srv文件夾下。6)代碼(Code)

功能包的源程序存儲在src文件夾。ROS文件系統(tǒng)一、工作空間

工作空間主要用于存儲ROS功能包工作空間典型結(jié)構(gòu)示意圖ROS文件系統(tǒng)1)源文件空間(默認(rèn)為src文件夾)2)編譯空間(默認(rèn)為build文件夾)3)開發(fā)空間(默認(rèn)為devel文件夾)常用的catkin命令如下:catkin_init_workspace:把指定的工作目錄初始化為ROS的工作空間。catkin_create_pkg:創(chuàng)建功能包。catkin_make:編譯功能包。catkin_find:搜索工作目錄。ROS文件系統(tǒng)二、功能包

功能包是ROS軟件的基本組織形式,一個功能包可以包含多個可執(zhí)行文件。功能包主要包含以下文件夾和文件:1)include:

此文件夾包含了所需庫的頭文件2)msg:

此文件夾存儲消息文件3)srv:

此文件夾存儲服務(wù)文件4)src:

此文件夾存儲程序源文件5)scripts:

此文件夾存儲Python可執(zhí)行腳本文件6)CMakeLists.txt:

規(guī)定了catkin編譯的規(guī)則,如catkin的最低版本,編譯時需要的依賴項和指定生成庫文件/可執(zhí)行文件等7)package.xml:

功能包清單,是package不可缺少的成分。主要記錄了該功能包的名稱、版本號、信息描述、作者信息和許可信息。ROS文件系統(tǒng)二、功能包

8)models:

存放機器人或仿真場景的3D模型(.sda,.stl,.dae等)9)urdf:

存放機器人的模型描述文件(.urdf或.xacro)10)launch:

存放launch文件(.launch或.xml)ROS文件系統(tǒng)三、功能包集(Metapackage)

功能包集是不含源代碼且只有一個package.xml文件的特定包,它用于引用其他功能特性類似的功能包。在ROS中有各種不同用途的功能包集,如導(dǎo)航包navigation,機器人功能包集turtlebot等。

與功能包的CMakeLists.txt不同,功能包集的CMakeLists.txt文件加入了catkin_metapackage()宏,用于指定本軟件包為一個功能包集。同時,功能包集的package.xml文件中也需添加標(biāo)簽聲明是一個功能包集。Metapackage名稱描述鏈接navigation導(dǎo)航相關(guān)的功能包集/ros-planning/navigationmoveit運動規(guī)劃相關(guān)的(主要是機械

臂)功能包集/ros-planning/moveitvision_opencvROS與OpenCV交互的功能包集/ros-perception/vision_opencvimage_pipeline圖像獲取、處理相關(guān)的功能包集/ros-perception/image_commonturtlebotTurtlebot機器人相關(guān)的功能包集/turtlebot/turtlebot..................ROS里常見的MetapackageROS計算圖03CATALOGUEROS計算圖

計算圖是由一些共同處理數(shù)據(jù)的ROS進(jìn)程形成的點對點網(wǎng)絡(luò),主要描述進(jìn)程和系統(tǒng)之間的通信。計算圖涉及以下幾個重要概念:節(jié)點(Node)、主題(Topic)、消息(Message)、服務(wù)(Service)、節(jié)點管理器(Master)、參數(shù)服務(wù)器(ParameterServer)和消息記錄包(Bag),這些概念都以各自的方式向計算圖提供數(shù)據(jù)。一、節(jié)點

節(jié)點可以通過主題、服務(wù)、參數(shù)服務(wù)器與其他節(jié)點通信,從而聯(lián)結(jié)成計算圖。ROS通過使用節(jié)點簡化了系統(tǒng),提高了系統(tǒng)容錯性和可維護性。同時,使用節(jié)點可以保證ROS系統(tǒng)能夠在多個機器上同時運行。節(jié)點可以使用不同的庫進(jìn)行編寫,如roscpp和rospy;其中roscpp基于C++,rospy基于Python。1)rosrun:

運行ROS節(jié)點2)rosnode:

顯示ROS節(jié)點的信息ROS計算圖二、消息

節(jié)點通過消息實現(xiàn)彼此之間的通信。消息從本質(zhì)上來說,是節(jié)點之間用于交換信息的數(shù)據(jù)結(jié)構(gòu)。ROS提高了多種標(biāo)準(zhǔn)數(shù)據(jù)類型(如整型,浮點型,布爾型等),用戶也可以基于標(biāo)準(zhǔn)消息自定義某種類型的消息。ROS提供了rosmsg命令行工具用于顯示消息信息。1)rosmsglist:

顯示所有消息2)rosmsgshow:

顯示消息3)rosmsgpackage:

顯示用于指定功能包的所有消息4)rosmsgpackages:

顯示使用消息的所有功能包ROS計算圖三、主題

主題是用于標(biāo)識消息內(nèi)容的名稱,消息可以通過一種發(fā)布/訂閱的方式傳遞,而節(jié)點可以向一個指定的主題發(fā)布消息。一個節(jié)點對特定類型的數(shù)據(jù)感興趣就訂閱相應(yīng)的主題。一個節(jié)點可以同時訂閱或者發(fā)布多個主題的消息,多個節(jié)點也發(fā)布或者訂閱同一個主題的消息。發(fā)布者和訂閱者彼此獨立,不互相影響。實際上,主題并不關(guān)注哪些節(jié)點發(fā)布或者訂閱消息,它只關(guān)注消息的類型是否匹配。需要主要的是:主題的名字必須具有唯一性。ROS提供了rostopic命令行工具用于對主題進(jìn)行操作:1)rostopiclist:

顯示當(dāng)前正在發(fā)送和接收的所有主題的列表2)rostopicecho:

實時顯示主題的消息內(nèi)容3)rostopicfind:

顯示使用指定類型的消息的主題4)rostopictype:

顯示指定主題的消息類型5)rostopicinfo:顯示指定主題的信息,包括類型、發(fā)布者,主題接收者等6)rostopicpub[主題名稱][消息類型][參數(shù)]:

向指定的主題發(fā)布消息ROS計算圖四、服務(wù)

當(dāng)節(jié)點之間需要請求/回應(yīng)交互時,主題無法滿足此需求,但可以通過服務(wù)來實現(xiàn)。ROS中的服務(wù)由一對消息來定義:一條消息用于請求(Request),一條消息用于回應(yīng)(Response)。當(dāng)某個ROS節(jié)點提供服務(wù)時,其他節(jié)點可以通過發(fā)送請求消息并等待回應(yīng)來調(diào)用服務(wù)。服務(wù)也必須有唯一的名字。自定義服務(wù)使用功能包中的.srv文件來定義。1)rosservice:

顯示活動的服務(wù)信息2)rossrv:

顯示靜態(tài)的服務(wù)信息ROS計算圖五、參數(shù)服務(wù)器

節(jié)點在運行時使用參數(shù)服務(wù)器存儲和檢索參數(shù),參數(shù)服務(wù)器是一個可通過網(wǎng)絡(luò)API訪問的共享多變量字典。參數(shù)服務(wù)器中的配置參數(shù)通常是全局可見的,這便于查看和更改系統(tǒng)的配置狀態(tài)。1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論