機器人操作系統(tǒng)ROS原理及應(yīng)用 課件 27 編寫與運行啟動文件_第1頁
機器人操作系統(tǒng)ROS原理及應(yīng)用 課件 27 編寫與運行啟動文件_第2頁
機器人操作系統(tǒng)ROS原理及應(yīng)用 課件 27 編寫與運行啟動文件_第3頁
機器人操作系統(tǒng)ROS原理及應(yīng)用 課件 27 編寫與運行啟動文件_第4頁
機器人操作系統(tǒng)ROS原理及應(yīng)用 課件 27 編寫與運行啟動文件_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

編寫與運行啟動文件啟動文件的作用

啟動ROS功能包時,可能需要啟動幾個、十幾個,甚至數(shù)十個節(jié)點,如果每個節(jié)點都是在終端輸入命令啟動的話,程序的運行和調(diào)試將會非常繁瑣。啟動文件把需要啟動的節(jié)點羅列在文件中,使用roslaunch運行啟動文件一次性運行多個節(jié)點。在啟動任意節(jié)點之前,roslaunch

首先會判斷roscore是否正在運行;如果沒有,則自動啟動roscore

什么是啟動文件

1.文本文件2.使用XML(可擴展標(biāo)記語言)格式3.可以一次配置和運行多個節(jié)點4.ROS中稱為launchfile(啟動文件)

可擴展標(biāo)記語言,簡稱XML。是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言??梢杂脕順?biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進(jìn)行定義的源語言。它非常適合網(wǎng)絡(luò)傳輸和數(shù)據(jù)交換。是互聯(lián)網(wǎng)環(huán)境中跨平臺數(shù)據(jù)交換技術(shù),也是當(dāng)今處理分布式結(jié)構(gòu)信息的有效工具。被廣泛使用編寫與使用啟動文件步驟

1.建立文本文件2.用XML格式將需要同時啟動的一組節(jié)點羅列出來3.用.launch作為文件擴展名保存文件4.使用roslaunch命令運行啟動文件啟動第一個節(jié)點啟動第二個節(jié)點啟動第三個節(jié)點啟動文件的標(biāo)簽、元素與屬性

example.launch元素,這里表示節(jié)點,有開始和結(jié)尾,XML格式要求根標(biāo)簽,成對使用,所有元素都必須包含在一對根標(biāo)簽中屬性,各有不用含義啟動文件的標(biāo)簽、元素與屬性

常用元素節(jié)點

啟動一個節(jié)點。機器

聲明一臺用于啟動的機器包括

包括其他roslaunch文件。重映射

聲明名稱重新映射。環(huán)境

為啟動的節(jié)點指定環(huán)境變量。參數(shù)

在參數(shù)服務(wù)器上設(shè)置參數(shù)ros參數(shù)

使用rosparam文件為啟動設(shè)置ROS參數(shù)。組

對共享命名空間或重新映射的封閉元素進(jìn)行分組。測試

啟動一個測試節(jié)點。參數(shù)

啟動參數(shù)。啟動文件的標(biāo)簽、元素與屬性

node常用屬性pkg=“mypackage“包名type=“nodetype“節(jié)點類型,必須有一個對應(yīng)的同名可執(zhí)行文件name="nodename“節(jié)點名稱output=“screen“節(jié)點的輸出將被發(fā)送到屏幕launch-prefix=“xterm-e”啟動前綴,在單獨的xterm窗口中運行節(jié)點使用時根據(jù)節(jié)點編譯生成的可執(zhí)行文件名設(shè)置該名稱會替換ros源程序中設(shè)置的節(jié)點默認(rèn)名啟動文件的存儲位置1.每一個啟動文件都屬于和一個特定的功能包2.通常的命名是以.launch作為啟動文件的后綴3.一般情況下把啟動文件直接存儲在功能包的根目錄中當(dāng)查找啟動文件的時候,roslaunch工具會同時搜索每個功能包目錄的子目錄。4.如果包中的launch文件比較多,在包中建一個子目錄,所有啟動文件統(tǒng)一存放在其中,該子目錄通常取名為launch示例1:運行啟動文件1.導(dǎo)入agitr包解壓,編譯2.運行啟動文件roslaunchagitrexample.launch該指令將啟動三個節(jié)點,此時可以看到turtlesim仿真器窗口和另外打開一個可以接收鍵盤方向指令來遠(yuǎn)程控制海龜運動的窗口。運行roslaunch指令的終端會顯示出由subpose程序記錄的姿態(tài)信息。示例2:命名空間內(nèi)啟動節(jié)點-獨立海龜節(jié)點、話題、服務(wù)和參數(shù)統(tǒng)稱為計算圖源,而每個計算圖源由一個叫計算圖源名稱(graphresourcename)的短字符串標(biāo)識,在ROS中,計算圖源名稱有全局名稱、相對名稱、私有名稱、匿名名稱。1.全局名稱名稱最前面有斜杠“/”表明這個名稱為全局名稱,如/turtle1/cmd_vel2.命名空間(namespace)由斜杠分開的一系列命名空間,每個斜杠代表一級命名空間3.相對名稱名稱最前面不帶斜杠“/”示例2:命名空間內(nèi)啟動節(jié)點-獨立海龜對一個節(jié)點設(shè)置默認(rèn)命名空間的通常方法是在啟動文件中對其節(jié)點元素配置命名空間(ns)屬性:ns=”namespace”doublesim.launch功能使用命名空間啟動兩個獨立的turtlesim仿真模擬器一個仿真中海龜由隨機生成的速度指令控制,另一個仿真中海龜是鍵盤控制命名空間sim1命名空間sim2示例2:命名空間內(nèi)啟動節(jié)點-獨立海龜doublesim.launch節(jié)點與話題命名空間sim1命名空間sim2示例2:命名空間內(nèi)啟動節(jié)點-獨立海龜節(jié)點重命名與命名空間兩個按鍵節(jié)點發(fā)布相同話題,兩個仿真節(jié)點不能獨立控制使用命名空間兩個仿真節(jié)點獨立控制示例2:命名空間內(nèi)啟動節(jié)點-獨立海龜兩個烏龜節(jié)點,一個隨機運動,一個被按鍵控制移動示例2:命名空間內(nèi)啟動節(jié)點-獨立海龜兩個烏龜節(jié)點訂閱的話題不相同示例3:名稱重映射-反向海龜重映射是基于替換的思想每個重映射包含一個原始名稱和一個新名稱。每當(dāng)節(jié)點使用重映射中的原始名稱時,ROS客戶端庫就會將它替換成其對應(yīng)的新名稱當(dāng)啟動一個節(jié)點的時候,有兩種方法來創(chuàng)建重映射。1.命令方式例如,運行一個turtlesim的實例,如果想要把海龜?shù)淖藨B(tài)數(shù)據(jù)發(fā)布到話題/tim而不是/turtle1/pose,使用如下命令:

rosrunturtlesimturtlesim_nodeturtle1/pose:=tim原名稱新名稱2.通過啟動文件的方式在啟動文件內(nèi)使用重映射(remap)元素:

<remapfrom=”原名稱”to”新名稱”/><nodepkg=”turtlesim”type=”turtlesim_node”name=”turtlesim_node”>

<remapfrom=”turtle1/pose”to”tim”/>

</node>將會把話題/turtle1/pose重映射為/tim前面沒有/

,是相對名稱注意有/

,是全局名稱示例3:名稱重映射-反向海龜使用turtle_teleop_key來控制turltesim中海龜?shù)倪\動,但是讓每一個方向鍵的含義都翻轉(zhuǎn)過來。即讓左鍵控制順時針旋轉(zhuǎn),右鍵控制逆時針旋轉(zhuǎn)上鍵控制它倒退,下鍵控制它前進(jìn)實現(xiàn)方法:1.編寫程序,訂閱按鍵程序發(fā)布的turtle1/cmd_vel,然后反轉(zhuǎn)所有接收到消息中的線速度和角速度指令,并將反轉(zhuǎn)后的指令通過話題turtle1/cmd_vel_reversed

發(fā)布2.對turltesim節(jié)點使用重映射,把turtle1/cmd_vel映射到turtle1/cmd_vel_reversed,這樣烏龜將接收到反轉(zhuǎn)后的話題消息示例3:名稱重映射-反向海龜reverse.launch功能話題重映射示例3:名稱重映射-反向海龜turtlemimic.launch程序功能:同時啟動兩個turtlesim模擬器分別重命名為turtlesim1和turtlesim2,讓turtlesim2模仿turtlesim1此處我們創(chuàng)建了兩個分組,并以命名空間(namespace)標(biāo)簽來區(qū)分,其中一個名為turtulesim1,另一個名為turtlesim2,兩個分組中都有相同的節(jié)點名為sim的turtlesim節(jié)點。這樣可以讓我們同時啟動兩個turtlesim模

溫馨提示

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

評論

0/150

提交評論