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

下載本文檔

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

文檔簡(jiǎn)介

編寫(xiě)與運(yùn)行啟動(dòng)文件啟動(dòng)文件的作用

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

首先會(huì)判斷roscore是否正在運(yùn)行;如果沒(méi)有,則自動(dòng)啟動(dòng)roscore

什么是啟動(dòng)文件

1.文本文件2.使用XML(可擴(kuò)展標(biāo)記語(yǔ)言)格式3.可以一次配置和運(yùn)行多個(gè)節(jié)點(diǎn)4.ROS中稱為launchfile(啟動(dòng)文件)

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

1.建立文本文件2.用XML格式將需要同時(shí)啟動(dòng)的一組節(jié)點(diǎn)羅列出來(lái)3.用.launch作為文件擴(kuò)展名保存文件4.使用roslaunch命令運(yùn)行啟動(dòng)文件啟動(dòng)第一個(gè)節(jié)點(diǎn)啟動(dòng)第二個(gè)節(jié)點(diǎn)啟動(dòng)第三個(gè)節(jié)點(diǎn)啟動(dòng)文件的標(biāo)簽、元素與屬性

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

常用元素節(jié)點(diǎn)

啟動(dòng)一個(gè)節(jié)點(diǎn)。機(jī)器

聲明一臺(tái)用于啟動(dòng)的機(jī)器包括

包括其他roslaunch文件。重映射

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

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

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

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

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

啟動(dòng)一個(gè)測(cè)試節(jié)點(diǎn)。參數(shù)

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

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

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

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

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

</node>將會(huì)把話題/turtle1/pose重映射為/tim前面沒(méi)有/

,是相對(duì)名稱注意有/

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論