智能網(wǎng)聯(lián)汽車計(jì)算機(jī)基礎(chǔ) 課件 項(xiàng)目四任務(wù)3:ROS通信機(jī)制進(jìn)階_第1頁
智能網(wǎng)聯(lián)汽車計(jì)算機(jī)基礎(chǔ) 課件 項(xiàng)目四任務(wù)3:ROS通信機(jī)制進(jìn)階_第2頁
智能網(wǎng)聯(lián)汽車計(jì)算機(jī)基礎(chǔ) 課件 項(xiàng)目四任務(wù)3:ROS通信機(jī)制進(jìn)階_第3頁
智能網(wǎng)聯(lián)汽車計(jì)算機(jī)基礎(chǔ) 課件 項(xiàng)目四任務(wù)3:ROS通信機(jī)制進(jìn)階_第4頁
智能網(wǎng)聯(lián)汽車計(jì)算機(jī)基礎(chǔ) 課件 項(xiàng)目四任務(wù)3:ROS通信機(jī)制進(jìn)階_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ROS通信機(jī)制進(jìn)階汽車計(jì)算機(jī)基礎(chǔ)一、課程導(dǎo)入上一個(gè)任務(wù)主要介紹了ROS通信的實(shí)現(xiàn),內(nèi)容偏向于粗粒度的通信框架的講解,沒有詳細(xì)介紹涉及的API,也沒有封裝代碼??偨Y(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API一、課程導(dǎo)入ROS有哪些常用API?總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.1初始化(1)ROS初始化函數(shù)ROS初始化函數(shù)可以解析并使用節(jié)點(diǎn)啟動(dòng)時(shí)傳入的參數(shù)(通過參數(shù)設(shè)置節(jié)點(diǎn)名稱、命名空間...)。該函數(shù)有多個(gè)重載版本,如果使用NodeHandle建議調(diào)用該版本。函數(shù)原型:(2)函數(shù)參數(shù)參數(shù)說明paramargc參數(shù)個(gè)數(shù)paramargv參數(shù)列表paramname節(jié)點(diǎn)名稱,需要保證其唯一性,不允許包含命名空間paramoptions節(jié)點(diǎn)啟動(dòng)選項(xiàng),被封裝進(jìn)了ros::init_options總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.2話題與服務(wù)相關(guān)對象(1)發(fā)布對象話題發(fā)布對象是ROS的話題通信中的發(fā)布方,也就是發(fā)出信息的一方。在獲取該對象時(shí),會(huì)通過RPC在ROSMaster中注冊自身信息,其中包含所發(fā)布消息的話題名稱話題發(fā)布者對象為ros命名空間下的Publisher類,通過NodeHandle類中的advertise函數(shù)初始化。①函數(shù)說明根據(jù)話題生成發(fā)布對象,在ROSmaster注冊并返回一個(gè)發(fā)布者對象,該對象可以發(fā)布消息。②函數(shù)原型總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.2話題與服務(wù)相關(guān)對象(1)發(fā)布對象③函數(shù)參數(shù)d.函數(shù)返回值return調(diào)用成功時(shí),會(huì)返回一個(gè)發(fā)布對象。參數(shù)說明paramtopic發(fā)布消息使用的話題paramqueue_size等待發(fā)送給訂閱者的最大消息數(shù)量paramlatch(optional)如果為true,該話題發(fā)布的最后一條消息將被保存,并且后期當(dāng)有訂閱者連接時(shí)會(huì)將該消息發(fā)送給訂閱者總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.2話題與服務(wù)相關(guān)對象(1)發(fā)布對象④Publisher對象發(fā)布消息函數(shù)該函數(shù)將數(shù)據(jù)message發(fā)送到已連接的訂閱者,message類型可以為任意類型。總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.3回旋函數(shù)回旋函數(shù)是ROS中非常常用的功能函數(shù),作用是處理程序中的所有可用的回調(diào)函數(shù),當(dāng)函數(shù)執(zhí)行條件觸發(fā)時(shí),就去執(zhí)行函數(shù)。(1)單次回旋函數(shù)spinOnce()用于處理一輪回調(diào),一般應(yīng)用在循環(huán)體內(nèi),處理所有可用的回調(diào)函數(shù),函數(shù)格式:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.3回旋函數(shù)(2)spin()無限回旋函數(shù)進(jìn)入循環(huán)處理回調(diào),一般格式為:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.3回旋函數(shù)(3)二者比較相同點(diǎn):二者都用于處理回調(diào)函數(shù);不同點(diǎn):ros::spin()是進(jìn)入了循環(huán)執(zhí)行回調(diào)函數(shù),而ros::spinOnce()只會(huì)執(zhí)行一次回調(diào)函數(shù)(沒有循環(huán)),在ros::spin()后的語句不會(huì)執(zhí)行到,而ros::spinOnce()后的語句可以執(zhí)行。總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.4時(shí)間(1)時(shí)刻獲取時(shí)刻,或是設(shè)置指定時(shí)刻:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.4時(shí)間(2)持續(xù)時(shí)間設(shè)置一個(gè)時(shí)間區(qū)間(間隔):總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.4時(shí)間(3)持續(xù)時(shí)間與時(shí)刻運(yùn)算為了方便使用,ROS中提供了時(shí)間與時(shí)刻的運(yùn)算:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.4時(shí)間(4)設(shè)置運(yùn)行頻率總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.4時(shí)間(5)定時(shí)器①函數(shù)說明ROS中內(nèi)置了專門的定時(shí)器,定時(shí)器相當(dāng)于一個(gè)鬧鐘,隔一段時(shí)間響一次(執(zhí)行回調(diào)函數(shù)),成功返回一個(gè)定時(shí)器對象。②函數(shù)原型總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.4時(shí)間(5)定時(shí)器③函數(shù)參數(shù)參數(shù)說明period時(shí)間間隔(Duration類型)callback回調(diào)函數(shù)(函數(shù)指針)oneshot如果設(shè)置為true,只執(zhí)行一次回調(diào)函數(shù),設(shè)置為false,就循環(huán)執(zhí)行autostart如果為true,返回已經(jīng)啟動(dòng)的定時(shí)器,設(shè)置為false,需要手動(dòng)啟動(dòng)總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.5其他函數(shù)(1)節(jié)點(diǎn)關(guān)閉函數(shù)總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.5其他函數(shù)(2)節(jié)點(diǎn)狀態(tài)判斷函數(shù)總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API二、常用API2.5其他函數(shù)(3)日志函數(shù)總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.1自定義頭文件調(diào)用(1)頭文件在功能包下的include/功能包名目錄下新建頭文件:hello.h,示例內(nèi)容如下:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.1自定義頭文件調(diào)用(2)可執(zhí)行文件在src目錄下新建文件:hello.cpp,示例內(nèi)容如下:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.1自定義頭文件調(diào)用(3)配置文件①配置CMakeLists.txt文件,頭文件相關(guān)配置如下:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.1自定義頭文件調(diào)用(3)配置文件②可執(zhí)行配置文件配置方式與之前一致:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.1自定義頭文件調(diào)用(3)配置文件②可執(zhí)行配置文件配置方式與之前一致:最后,編譯并執(zhí)行,控制臺(tái)可以輸出自定義的文本信息??偨Y(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.2自定義源文件調(diào)用(1)頭文件頭文件設(shè)置與前面類似,在功能包下的include/功能包名目錄下新建頭文件:haha.h,示例內(nèi)容如下:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.2自定義源文件調(diào)用(2)源文件在src目錄下新建文件:haha.cpp,示例內(nèi)容如下:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.2自定義源文件調(diào)用(3)可執(zhí)行文件在src目錄下新建文件:use_head.cpp,示例內(nèi)容如下:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.2自定義源文件調(diào)用(4)配置文件①頭文件與源文件相關(guān)配置:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API三、ROS中的頭文件與源文件3.2自定義源文件調(diào)用(4)配置文件②可執(zhí)行文件配置:總結(jié)課程導(dǎo)入ROS中的頭文件與源文件常用API1.ROS常用API有:ROS節(jié)點(diǎn)的初始化相關(guān)API、NodeHandle的基本使用相關(guān)API、話題的發(fā)布方,訂閱方對象相關(guān)API、服務(wù)的服務(wù)端,客戶端對象相關(guān)API、回旋函數(shù)相關(guān)API、時(shí)間相關(guān)API。2.ROS初始化函數(shù):可以解析并使用節(jié)點(diǎn)啟動(dòng)時(shí)傳入的參數(shù)。3.在roscpp中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論