智能網聯汽車計算機基礎 課件 項目四任務3:ROS通信機制進階_第1頁
智能網聯汽車計算機基礎 課件 項目四任務3:ROS通信機制進階_第2頁
智能網聯汽車計算機基礎 課件 項目四任務3:ROS通信機制進階_第3頁
智能網聯汽車計算機基礎 課件 項目四任務3:ROS通信機制進階_第4頁
智能網聯汽車計算機基礎 課件 項目四任務3:ROS通信機制進階_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論