ROS launch檔案的語法規範

2021-09-22 02:19:56 字數 2864 閱讀 7244

在ros應用中,一般涉及多個節點,而每個節點又有很多引數需要設定。為了方便、高效地操作多個節點,可以編寫 .launch 檔案,然後用roslaunch命令執行。

注意:儲存啟動檔案的目錄不一定必須命名為launch。實際上,您甚至不需要將它們儲存在目錄中。roslaunch命令自動檢視傳遞的包並檢測可用的啟動檔案。但是,這被認為是一種很好的做法。

launc**件的格式是:

...

launc**件一般包括以下幾部分:

1)

是要啟動的ros節點,它包括以下幾個引數:

pkg=「mypackage」 :節點的功能包

type="nodetype" : 節點的型別

name="nodename" :節點的名字,它將覆蓋任何通過呼叫ros::init來賦予節點的名稱

args="arg1 arg2 arg3" (可選):傳遞給節點的引數

respawn="true" (可選) :如果節點停止,自動重啟節點

ns="foo" (可選):在"foo"命名空間啟動節點

output="log | screen" (可選) :如果選擇screen,節點的stdout(標準輸出)和

stderr(標準錯誤)資訊將顯示在終端視窗上;

如果選擇log,stdout和stderr將傳送乙個log檔案,

stderr也會顯示在終端視窗上

下面是乙個啟動節點的例子:

該命令的作用是:啟動gazebo功能包中的gazebo節點,該節點的引數是 r2_grap.world 檔案中的內容,節點的stdout和stderr將顯示在終端視窗上。如果gazebo節點停止,則不能自動重新啟動。

2)

可以使用 .yaml檔案load/dump/delete引數。delete和dump命令執行在load命令之前,load命令可以覆蓋以前設定的引數。也可以新增到<node>中使用。包括以下幾個引數:

command="load|dump|delete"(預設時load)

file="$(find pkg-name)/path/foo.yaml"(load或者dump命令):yaml檔案的名字

param="param-name":引數的名字

下面是乙個例子:

該命令的作用是:將r2_impedance_

controller.yaml檔案載入到parameter server(引數伺服器)中,設定控制引數。

3)

用來定義乙個設定在parameter server(引數伺服器)的引數,它可以新增到中。包括以下幾個引數:

name="namespace/name":引數的名字

value="value"(可選):定義引數的值,如果省略這個引數,則應該指定乙個檔案(binfile/texfile)或命令

type="str|int|double|boot"(可選):指定引數的型別

texfile="$(find pkg-name)/path/file" (可選)

binfile="$(find pkg-name)/path/file" (可選)

commadn="(find pkg-name)/exe '$(find pkg-name)/arg.txt'" (可選):exe是可執行檔案( .py或 .cpp),arg.txt是引數檔案

下面是使用的例子:

4)

可以在當前launc**件中呼叫另乙個launc**件,這樣有利於**的復用,減少開發工作量。下面是使用的例子:

5)

可以用來設定節點的環境變數,可以在、、等。的引數如下:

name="enviroment-variable-name" :設定的環境變數的名字

value="environment-variable-value" :環境變數的值

6)

可以將乙個引數名對映為另乙個名字,它的引數如下:

from="original-name"

to="new-name"

下面是應用的例子:

如果有乙個節點需要接收主題"chatter",但是此時僅有乙個發布"hello"主題的節點。"chatter"和"hello"主題的資料型別是一樣的,因此可以採用將主題重新對映,命令如下:

7)

用來定義乙個區域性引數,該引數只能在乙個launc**件中使用。有三種使用方法:

:宣告乙個引數foo,後面需要給它賦值

:宣告乙個引數foo,它有乙個預設值,該值可以被修改。

:宣告乙個常量foo,它的值不能被修改。

下面是乙個使用的例子:

ROS launch啟動檔案

最初地,我們每執行乙個ros節點,都需要開啟乙個新的終端執行一段命令,當系統中的節點不斷增加時,將帶來不便,所以ros中支援啟動檔案,可同時啟動多個節點,並且實現各個節點的配置。launc 件往往放在包的launc 件夾路徑下。launc 件中採用作為根元素,其他元素必須被標籤包裹。節點使用標籤表示...

ROS launch 啟動檔案

一.資訊的輸出 在控制台中輸出資訊 對於某個單獨的節點,只需在節 點元素中配置 output 屬性就可以達到該目的 output screen 除了影響單個節點輸出資訊的 output 屬性之外,我們還可以 使用 screen 命令列選項來令 roslaunch 在控制台中顯示所有節點 的輸出 ro...

mysql的語法規範

1.不區分大小寫,但建議關鍵字大寫,表名,列名小寫 2.每條命令最好用分號結尾 3.每條命令根據需要,可以進行縮排,或換行.4.注釋 單行注釋 注釋文字 多行注釋 注釋文字 5.起別名 方式一 使用as select last name as 姓 first name as 名 from emplo...