ROS launch 啟動檔案

2021-10-11 18:14:00 字數 3019 閱讀 8871

一.資訊的輸出

在控制台中輸出資訊 對於某個單獨的節點,只需在節

點元素中配置

output

屬性就可以達到該目的:

output=」screen」

除了影響單個節點輸出資訊的

output

屬性之外,我們還可以

使用--screen

命令列選項來令

roslaunch

在控制台中顯示所有節點

的輸出:

roslaunch –screen package-name launch-file-name

二.請求復位

在啟動了啟動檔案中所有的請求節點之後,

roslaunch

會監視每乙個節點,記錄哪乙個節點是活躍的。對於每個節點,

我們可以設定

respawn

屬性為真,這樣當節點停止的時候,

roslaunch

會重新啟動該節點。

respawn=」true」

這個功能是有意義的,比如在某個節點因為軟體崩潰或硬體

109

故障以及其他原因導致過早退出系統的時候會起到作用。

三.必要節點(

requiring node

復位之外的另一種策略是將乙個節

點宣告為必要節點。

required=」true」

當乙個必要節點終止的時候,

roslaunch

會終止所有其他活躍

節點並退出。當出現

(1)某個節點非常重要,此節點的故障會導致

整個 ros

會話的癱瘓;

(2)節點即便設定了復位屬性也不能很好地

重啟的時候,該需求屬性的作用就會體現出來。

四.包含其他檔案

如果想在啟動檔案中包含其他啟動檔案的內容(包括所有的

節點和引數),可以使用包含(

include

)元素 

此處 file

屬性的值應該是我們想包含的檔案的完整路徑。由

於直接輸入路徑資訊很繁瑣且容易出錯,大多數包含元素都使用

查詢(find

)命令搜尋功能包的位置來替代直接輸入路徑:

五.啟動引數

引數賦值

啟動檔案中的每乙個引數都要進行賦值。賦值有很多種

方法,例如可以像下面在

roslaunch

命令列中提供該值:

roslaunch package-name launch-file-namearg-name:=arg-value

除此之外,你也可以使用以下兩種語法,將引數值作為

arg

宣告的一部分:

兩者的唯一區別在於命令列引數可以覆蓋預設值default

,但

是不能覆蓋引數值

value。在示例中,

use_sim3

有預設值

0,但是

可以用如下命令列對引數值進行修改:

roslaunch agitr riplesim.launchuse_sim3:=1

如果我們想修改啟動檔案,用

value

替換 default

,那麼該命

令會產生錯誤,因為由

value

設定的引數值是不能更改的。

獲取引數值

一旦引數值被宣告並且被賦值,你就可以利用下面的

arg

替換(arg substitution

)語法來使用該引數值了:

$(arg arg-name)

每個該替換出現的地方,

roslaunch 都將它替換成引數值

向包括的啟動檔案中傳送引數值

目前已介紹的引數設定技巧的

侷限在於,它並未提供任何方法將引數傳遞到通過包含元素匯入

的次級啟動檔案中去。這一點很重要,因為像區域性變數一樣,參

數僅定義在對其進行宣告的啟動檔案中,而不能被包含的啟動文

件「繼承

」。 123

該問題的解決方案就是將

arg

元素作為乙個包含元素的子元

素,如下所示:

請注意,該

arg

元素的用法和之前我們看到的

arg

宣告是不

同的。在

include

標籤之間的引數是屬於被包含檔案的,而不是它

們出現的啟動檔案。因為目的是為被包括的啟動檔案設定響應的

引數值,所以該處需要使用

value

屬性。

一種常見的情況是兩個啟動檔案(包含檔案和被包含檔案)

有一些共同的引數,在這種情況下,我們希望引數在傳遞的時候

不會改變。這樣的元素在兩個地方使用相同的引數名:

在該例子中,第乙個引數名字通常是指被包含檔案中的引數,

第二個引數名是指當前檔案中的引數。這樣做之後,給定引數在

兩個啟動檔案中有相同的值。

ROS launch啟動檔案

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

ROS launch啟動檔案的常用標籤

學習 ros機械人開發實踐 第四章 xml檔案必須包含乙個根元素,launc 件的根元素由標籤定義。launc 件的核心就是啟動多個ros節點,節點採用標籤定義。pkg package name type executable name name node name parameter是ros系統執...

ubuntu開機自啟動roslaunch程式

參考鏈結 建立star.sh bin bash source opt ros kinetic setup.bash source catkin ws devel setup.bash roslaunch x x.launch 增加star.sh許可權 sudo chmod 777 star.sh搜尋...