一.資訊的輸出
在控制台中輸出資訊 對於某個單獨的節點,只需在節
點元素中配置
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搜尋...