@
- 1.launch檔案有哪些標籤
- 2.node標籤
- 2.1 必選屬性
- 2.2 可選屬性
- 2.3 可選子級標籤
- 3.include標籤
- 3.1 必選屬性
- 3.2 可選屬性
- 3.3 可選子級標籤
- 4.remap標籤
- 5.param標籤
- 6.rosparam標籤
- 7.group標籤
- 8.arg標籤
- 9.env標籤
- 10.全域性示例
1.launch檔案有哪些標籤
標籤 |
含義 |
node |
指定 ROS 節點,是最常見的標籤 |
include |
用於將另一個 xml 格式的 launch 檔案匯入到當前檔案 |
remap |
話題重新命名 |
param |
在引數伺服器上設定引數 |
rosparam |
從 YAML 檔案匯入引數,或將引數匯出到 YAML 檔案,也可以用來刪除引數 |
group |
可以對節點分組,具有 ns 屬性,可以讓節點歸屬某個名稱空間 |
arg |
用於動態設定引數,可以增強launch檔案的靈活性 |
env |
用於設定環境變數 |
2.node標籤
2.1 必選屬性
屬性 |
含義 |
name="node-name" |
節點名稱(在 ROS 網路拓撲中節點的名稱) |
pkg="package-name" |
節點所屬的包 |
type="node-type" |
節點型別(與之相同名稱的可執行檔案) |
2.2 可選屬性
屬性 |
含義 |
args="arg1 arg2 arg3" |
將引數傳遞給節點 |
machine="machine-name" |
在指定機器上啟動節點 |
respawn="true| false" |
如果節點退出,是否自動重啟 |
respawn_delay="n" |
如果 respawn 為 true, 那麼延遲 N 秒後啟動節點 |
required="true| false" |
該節點是否必須,如果為 true,那麼如果該節點退出,將殺死整個 roslaunch |
ns="namespace" |
在指定名稱空間中啟動節點 |
clear_params="true| false" |
在啟動前,刪除節點的私有空間的所有引數 |
output="log| screen" |
日誌傳送目標,可以設定為 log 日誌檔案,或 screen 螢幕,預設是 log |
2.3 可選子級標籤
- <env>
- <remap>
- <rosparam>
- <param>
3.include標籤
3.1 必選屬性
屬性 |
含義 |
file="$(find pkg-name)/path/filename.launch" |
要包含的檔案路徑 |
3.2 可選屬性
屬性 |
含義 |
ns="namespace" |
在指定名稱空間匯入檔案 |
3.3 可選子級標籤
- <env>
- <arg>
4.remap標籤
4.1 必選屬性
屬性 |
含義 |
from="original-name" |
原始話題名稱 |
to="new-name" |
目標名稱 |
5.param標籤
- 作為
\<node>
子級標籤時,相當於私有名稱空間。
5.1 必選屬性
屬性 |
含義 |
name="namespace/name" |
引數名稱,可以包含名稱空間 |
5.2 可選屬性
屬性 |
含義 |
value="value" |
定義引數值,如果此處省略,必須指定外部檔案作為引數源 |
type="str|int|double|bool|yaml" |
指定引數型別,如果未指定,roslaunch 會嘗試確定引數型別 |
roslaunch 確定引數型別的規則如下:
- 如果包含 '.' 的數字解析未浮點型,否則為整型
- "true" 和 "false" 是 bool 值(不區分大小寫)
- 其他是字串
6.rosparam標籤
6.1 必選屬性
屬性 |
含義 |
file="$(find pkg-name)/path/foo.yaml" |
載入或匯出到的 yaml 檔案 |
param="param-name" |
引數名稱 |
6.2 可選屬性
屬性 |
含義 |
command="load| dump | delete" |
載入、匯出或刪除引數,預設為載入 |
ns="namespace" |
將引數指定到名稱空間 |
7.group標籤
7.1 可選屬性
屬性 |
含義 |
ns="namespace" |
將該組節點分配到指定的名稱空間。名稱空間可以是全域性的,也可以是相對的,但不鼓勵使用全域性名稱空間。 |
clear_params="true|false" |
在啟動前刪除組的名稱空間中的所有引數。這個功能非常危險,應該謹慎使用。 |
7.2 可選子級標籤
8.arg標籤
8.1 必選屬性
屬性 |
含義 |
name="arg-name" |
欲設定的引數名稱 |
8.2 可選屬性
屬性 |
含義 |
default="default value" |
設定引數的預設值。不能與value屬性結合。 |
value="value" |
設定引數的值。不能與default屬性結合。 |
doc="description for this arg" |
載入、匯出或刪除引數,預設為載入 |
8.3 示例
<launch>
<!-- declare arg to be passed in -->
<arg name="hoge" />
<!-- read value of arg -->
<param name="param" value="$(arg hoge)"/>
</launch>
9.env標籤
9.1 必選屬性
屬性 |
含義 |
name="environment-variable-name" |
所設定的環境變數的名字 |
value="environment-variable-value" |
引數說明 |
10.全域性示例
<launch>
<!-- local machine already has a definition by default.
This tag overrides the default definition with
specific ROS_ROOT and ROS_PACKAGE_PATH values -->
<machine name="local_alt" address="localhost" default="true" ros-root="/u/user/ros/ros/" ros-package-path="/u/user/ros/ros-pkg" />
<!-- a basic listener node -->
<node name="listener-1" pkg="rospy_tutorials" type="listener" />
<!-- pass args to the listener node -->
<node name="listener-2" pkg="rospy_tutorials" type="listener" args="-foo arg2" />
<!-- a respawn-able listener node -->
<node name="listener-3" pkg="rospy_tutorials" type="listener" respawn="true" />
<!-- start listener node in the 'wg1' namespace -->
<node ns="wg1" name="listener-wg1" pkg="rospy_tutorials" type="listener" respawn="true" />
<!-- start a group of nodes in the 'wg2' namespace -->
<group ns="wg2">
<!-- remap applies to all future statements in this scope. -->
<remap from="chatter" to="hello"/>
<node pkg="rospy_tutorials" type="listener" name="listener" args="--test" respawn="true" />
<node pkg="rospy_tutorials" type="talker" name="talker">
<!-- set a private parameter for the node -->
<param name="talker_1_param" value="a value" />
<!-- nodes can have their own remap args -->
<remap from="chatter" to="hello-1"/>
<!-- you can set environment variables for a node -->
<env name="ENV_EXAMPLE" value="some value" />
</node>
</group>
</launch>
本文由部落格一文多發平臺 OpenWrite 釋出!