版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
運(yùn)行ROS程序課程內(nèi)容用rosrun運(yùn)行ROSnode用roslaunch運(yùn)行ROSnoderoslaunch命令launch啟動(dòng)腳本文件編寫2?NXROBO2022運(yùn)行node的兩種方法通過rosrun命令單個(gè)node通過roslaunch命令批處理:運(yùn)行多個(gè)node,及參數(shù)配置3?NXROBO2022用rosrun運(yùn)行ROSnode命令rosrun可以運(yùn)行單一的node,用法如下:如:向node指定參:rosrun還增加了–prefix選項(xiàng),可實(shí)現(xiàn)在gdb中運(yùn)行node(詳細(xì)參數(shù)請(qǐng)查閱官網(wǎng)/roslaunch/Tutorials/RoslaunchNodesinValgrindorGDB):4$rosrun<package><executable>$rosrunbeginner_tutorialshello$rosrunbeginner_tutorialshello_my_param:=value$rosrun–prefix‘gdb-exrun–args’my_packagemy_node?NXROBO2022用roslaunch運(yùn)行ROSnode工具roslaunch是管理node的啟動(dòng)與停止的,一般需要一個(gè)或多個(gè)后綴為.launch的xml類文件作為參數(shù)roslaunch工具是正常工作是依賴.launch文件的配置值的,以實(shí)現(xiàn)node的啟動(dòng)及相關(guān)參數(shù)的配置。同rosrun一樣,roslaunch也可以以arg:=value的形式傳遞node映射參數(shù),用法如下:如果節(jié)點(diǎn)管理器通信端口并非默認(rèn)埠號(hào),可通過-p參數(shù)更改:5$roslaunch<package-name><launch-filename>[args]$roslaunch-p1234packagefilename.launch?NXROBO2022launch文件的示例6?NXROBO2022launch文件啟動(dòng)時(shí)取值順序工具roslaunch對(duì)XML檔的分析取值是單線處理的;對(duì)于包含的其它lanuch文件以深度優(yōu)先的順序遍歷處理;對(duì)于標(biāo)簽則是順序進(jìn)行分析取值,所以如果某個(gè)參數(shù)有多個(gè)賦值,最后一次的賦值才會(huì)真正使用。7?NXROBO2022launch文件的常用標(biāo)簽<launch>所有l(wèi)aunch文件的根元素標(biāo)簽,其它元素的容器<node>ROS節(jié)點(diǎn)的標(biāo)簽,用來啟動(dòng)一個(gè)節(jié)點(diǎn)<param>設(shè)置參數(shù)服務(wù)器上的參數(shù)<rosparam>使用rosparam文件設(shè)置參數(shù)服務(wù)器上的參數(shù)<remap>聲明一個(gè)名稱的映射<group>把一些東西歸為一組,共享一個(gè)命名空間<arg>設(shè)置launch文件中用的參數(shù)<include>包含另一個(gè)launch文件8?NXROBO2022Launch文件標(biāo)簽-<node><launch>標(biāo)簽是roslaunch文件的根元素,其它元素都必須在此標(biāo)簽內(nèi)。<node>標(biāo)簽定義要運(yùn)行的node及其相關(guān)參數(shù)。此類標(biāo)簽的定義順序幷不能保證node的運(yùn)行完成的順序。其相關(guān)屬性如下:pkg="mypackage"Node所在的功能包。type="nodetype"Node的類型,其值與執(zhí)行程序名相同。name="nodename"Node的名字,不能含有命名空間。args="arg1arg2arg3"(可選)向node傳遞參數(shù)。machine="machine-name"(可選)在指定的機(jī)器上運(yùn)行node。respawn="true"(可選)如果值為真,則node退出后自動(dòng)重新啟動(dòng)。9?NXROBO2022Launch文件標(biāo)簽-<node>respawn_delay="30"(可選,默認(rèn)為0)如果設(shè)置respawn為真,則偵測到node退出后延時(shí)多少秒node重新啟動(dòng)。required="true"(可選)如果node死掉,則殺死整個(gè)roslaunch進(jìn)程。ns="foo"(可選)在"foo"命名空間中啟動(dòng)node。clear_params="true|false"(可選)在運(yùn)行node前刪除所有node自身命名空間中的參數(shù)。output="log|screen"(可選)如果設(shè)置成'screen',則node產(chǎn)生的stdout/stderr信息打印到屏幕;如果設(shè)置成'log',則node產(chǎn)生的stdout/stderr的信息保存到日志文件。默認(rèn)為'log'。cwd="ROS_HOME|node"(可選)設(shè)置工作目錄是ROS_HOME變量表示的目錄還是Node執(zhí)行文件所在的目錄,默認(rèn)為ROS_HOME。launch-prefix="prefixarguments"(可選)Node的附加運(yùn)行參數(shù),與rosrun的--prefix參數(shù)功能一樣。10?NXROBO2022Launch文件標(biāo)簽-<param><param>用來在參數(shù)服務(wù)器(ParameterServer)上定義參數(shù),除了可賦常值,還可指定文本文件、二進(jìn)制文件或命令。如果用于<node>標(biāo)簽下,設(shè)置的參數(shù)將作為此node的私有參數(shù)。其屬性有:name="namespace/name"參數(shù)名,可加上命名空間,value="value"(可選)為參數(shù)賦值,如果此屬性不使用,則binfile、textfile和command必須要定義一個(gè)。type="str|int|double|bool"(可選)指定參數(shù)類型,如果不指定,roslaunch會(huì)自動(dòng)判斷參數(shù)類型。textfile="$(findpkg-name)/path/file.txt"(可選)讀取文本文件內(nèi)容作為string存儲(chǔ)。11?NXROBO2022Launch文件標(biāo)簽-<param>binfile="$(findpkg-name)/path/file"(可選)讀取將文件內(nèi)容作為以base64編碼的XML-RPC二進(jìn)制對(duì)象存儲(chǔ)。command="(findpkg-name)/arg.txt'"(可選)讀取命令的執(zhí)行輸出保存為string。使用示例如下:12<paramname="publish_frequency"type="double"value="10.0"/>?NXROBO2022Launch文件標(biāo)簽-<rosparam>此標(biāo)簽用于通過rosparam的YAML文件從參數(shù)服務(wù)器加載或轉(zhuǎn)存參數(shù),也可用于銷毀參數(shù)。如果用于<node>標(biāo)簽中,則當(dāng)作私有屬性處理。銷毀和轉(zhuǎn)存操作先于加載操作執(zhí)行,且先于其它其它參數(shù)傳送至參數(shù)服務(wù)器。加載操作會(huì)覆蓋之前定義的參數(shù)。
此標(biāo)簽除了通過YAML檔進(jìn)行參數(shù)操作外,還能直接通過YAML類型的字符內(nèi)容進(jìn)行操作。其屬性有:command="load|dump|delete"(可選,默認(rèn)為load)此標(biāo)簽的操作命令,分別為加載、轉(zhuǎn)存和銷毀。file="$(findpkg-name)/path/foo.yaml"(用于load和dump命令)指定rosparam檔。param="param-name"參數(shù)名。ns="namespace"(可選)指定參數(shù)的命名空間。subst_value=true|false(可選)選擇是否可在YAML內(nèi)容中含有替代參數(shù)。13?NXROBO2022Launch文件標(biāo)簽-<rosparam>使用示例如下:14<rosparamcommand="load"file="$(findrosparam)/example.yaml"/><rosparamcommand="delete"param="my/param"/><rosparamparam="a_list">[1,2,3,4]</rosparam><rosparam>a:1b:2</rosparam>?NXROBO2022Launch文件標(biāo)簽-<remap><remap>標(biāo)簽可以將名字通過參數(shù)重映射到node中,用于<launch>、<node>和<group>標(biāo)簽范圍內(nèi)。其屬性有:from="original-name"需映射的名字。to="new-name"映像成的目標(biāo)名字使用示例如下:15<remapfrom="chatter"to="hello"/>?NXROBO2022Launch文件標(biāo)簽-<group>此標(biāo)簽用于對(duì)多個(gè)node進(jìn)行設(shè)置參數(shù),其ns屬性可將一組node置于一個(gè)獨(dú)立的命名空間。其屬性如下:ns="namespace"(可選)指定一組node的命名空間,可用全局命名空間,也可用相對(duì)命名空間。clear_params="true|false"(可選)是否在運(yùn)行node前銷毀此給命名空間下的所有參數(shù),使用此屬性必須先指定ns屬性。16?NXROBO2022Launch文件標(biāo)簽-<arg>此標(biāo)簽用于聲明arg變量、引用命令行或上層文件的傳入?yún)?shù)、將arg變量傳入到包含檔中。其屬性有:name="arg_name"變量名。default="defaultvalue"(可選)變量的默認(rèn)值。value="value"(可選)為變量賦值,不能與default屬性同用。doc="descriptionforthisarg"(可選)變數(shù)描述。17?NXROBO2022Launch文件標(biāo)簽-<arg>示例如下:18<includefile="included.launch"><argname="hoge"value="fuga"/></include><launch><!--聲明傳入的arg變數(shù)--><argname="hoge"/><!--取值--><paramname="param"value="$(arghoge)"/></launch>included.launchmy_file.launch?NXROBO2022Launch文件標(biāo)簽-<machine><machine>標(biāo)簽聲明可以運(yùn)行node的機(jī)器。一般用于遠(yuǎn)程機(jī)器上運(yùn)行node,如果所有node全部在本地運(yùn)行則無需定義此標(biāo)簽。其屬性如下:name="machine-name"指定機(jī)器的名字,與卷標(biāo)的machine屬性值一致。address=""機(jī)器的網(wǎng)絡(luò)地址或主機(jī)名。env-loader="/opt/ros/kinetic/env.sh"指定遠(yuǎn)程機(jī)器的環(huán)境變量設(shè)置文件。default="true|false|never"(可選)設(shè)置此機(jī)器為node的默認(rèn)運(yùn)行平臺(tái)。user="username"(可選)登錄到遠(yuǎn)程機(jī)器的SSH用戶名。password="passwhat"登錄到遠(yuǎn)程機(jī)器的SSH密碼。timeout="10.0"(可選)遠(yuǎn)程運(yùn)行的超時(shí)時(shí)間,單位是秒。19?NXROBO2022條件屬性Launch檔中的所有標(biāo)簽均支持if和unless屬性。形式如下:if=value如果if值為真,則其所在的標(biāo)簽及其屬性值有效。unless=value如果unless值為假,則其所在的標(biāo)簽及其屬性值有效。
20?NXROBO2022Launch文件標(biāo)簽-<env><env>用來設(shè)置Node運(yùn)行所需要的環(huán)境變量,用于<launch>、<include>、<node>和<machine>標(biāo)簽內(nèi)。如果作為<launch>根元素的子元素,則只對(duì)于此標(biāo)簽后聲明的node起作用。特別注意下,此標(biāo)簽設(shè)置的參數(shù)不能在roslaunch內(nèi)作為變量調(diào)用。其屬性有:name="environment-variable-name"設(shè)置環(huán)境變量名。value="environment-variable-value"為環(huán)境變量名賦值。21?NXROBO2022Launch文件標(biāo)簽-<include><include>標(biāo)簽用于將其它roslaunch文件導(dǎo)入當(dāng)前位置,其屬性有:file="$(findpkg-name)/path/filename.xml"要導(dǎo)入的文件ns="foo"(可選)在'foo'命名空間下導(dǎo)入檔。clear_params="true|false"(可選,默認(rèn)為:false)運(yùn)行前刪除所有導(dǎo)入檔命名空間下的參數(shù)。22?NXROBO2022<test>
此標(biāo)簽用于定義運(yùn)行的測試node,功能與用法<node>標(biāo)簽類似。替代參數(shù)roslaunch文件的標(biāo)簽屬性可以使用替代參數(shù)賦值,替代參數(shù)會(huì)在node運(yùn)行之前解析完成。目前支持的替代參數(shù)有:$(envENVIRONMENT_VARIABLE)
用當(dāng)前環(huán)境變量來替代某個(gè)參數(shù)值。如果使用此替代參數(shù),必須保證指定的環(huán)境變量存在,否則roslaunch會(huì)出錯(cuò)。此環(huán)境變量不能使用<env>標(biāo)簽重寫。23?NXROBO2022替代參數(shù)$(optenvENVIRONMENT_VARIABLE)$(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人生活照顧人員職業(yè)道德制度
- 養(yǎng)老院老人健康數(shù)據(jù)統(tǒng)計(jì)分析制度
- 民航安全管理體系培訓(xùn)心得
- 新媒體合伙人合同(2篇)
- 承包采摘黃秋葵協(xié)議書范本(2篇)
- 2024年智能化物流設(shè)備采購合同
- 《食管癌的治療》課件
- 2025年棗莊貨運(yùn)資格證安檢考試題
- 2025年廣州貨運(yùn)從業(yè)資格考試技巧
- 2025年青海貨運(yùn)從業(yè)資格證考試模擬考試題庫
- 北師大版數(shù)學(xué)初二上冊(cè)知識(shí)點(diǎn)總結(jié)
- 鐵路建設(shè)項(xiàng)目施工企業(yè)信用評(píng)價(jià)辦法(鐵總建設(shè)〔2018〕124號(hào))
- 模具報(bào)價(jià)表精簡模板
- 抽樣檢驗(yàn)培訓(xùn)教材(共47頁).ppt
- 時(shí)光科技主軸S系列伺服控制器說明書
- 通用帶式輸送機(jī)TD75或DT型出廠檢驗(yàn)要求及記錄
- 高考英語單項(xiàng)選擇題題庫題
- lonely-planet-PDF-大全
- 成人大專畢業(yè)生自我鑒定
- 汽車轉(zhuǎn)向系統(tǒng)設(shè)計(jì)規(guī)范
- 管鮑之交-歷史劇劇本(共4頁)
評(píng)論
0/150
提交評(píng)論