@
1.launch文件有哪些標(biāo)簽
| 標(biāo)簽 |
含義 |
| node |
指定 ROS 節(jié)點,是最常見的標(biāo)簽 |
| include |
用于將另一個 xml 格式的 launch 文件導(dǎo)入到當(dāng)前文件 |
| remap |
話題重命名 |
| param |
在參數(shù)服務(wù)器上設(shè)置參數(shù) |
| rosparam |
從 YAML 文件導(dǎo)入?yún)?shù),或?qū)?shù)導(dǎo)出到 YAML 文件,也可以用來刪除參數(shù) |
| group |
可以對節(jié)點分組,具有 ns 屬性,可以讓節(jié)點歸屬某個命名空間 |
| arg |
用于動態(tài)設(shè)置參數(shù),可以增強launch文件的靈活性 |
| env |
用于設(shè)置環(huán)境變量 |
2.node標(biāo)簽
2.1 必選屬性
| 屬性 |
含義 |
| name="node-name" |
節(jié)點名稱(在 ROS 網(wǎng)絡(luò)拓撲中節(jié)點的名稱) |
| pkg="package-name" |
節(jié)點所屬的包 |
| type="node-type" |
節(jié)點類型(與之相同名稱的可執(zhí)行文件) |
2.2 可選屬性
| 屬性 |
含義 |
| args="arg1 arg2 arg3" |
將參數(shù)傳遞給節(jié)點 |
| machine="machine-name" |
在指定機器上啟動節(jié)點 |
| respawn="true| false" |
如果節(jié)點退出,是否自動重啟 |
| respawn_delay="n" |
如果 respawn 為 true, 那么延遲 N 秒后啟動節(jié)點 |
| required="true| false" |
該節(jié)點是否必須,如果為 true,那么如果該節(jié)點退出,將殺死整個 roslaunch |
| ns="namespace" |
在指定命名空間中啟動節(jié)點 |
| clear_params="true| false" |
在啟動前,刪除節(jié)點的私有空間的所有參數(shù) |
| output="log| screen" |
日志發(fā)送目標(biāo),可以設(shè)置為 log 日志文件,或 screen 屏幕,默認是 log |
2.3 可選子級標(biāo)簽
- <env>
- <remap>
- <rosparam>
- <param>
3.include標(biāo)簽
3.1 必選屬性
| 屬性 |
含義 |
| file="$(find pkg-name)/path/filename.launch" |
要包含的文件路徑 |
3.2 可選屬性
| 屬性 |
含義 |
| ns="namespace" |
在指定命名空間導(dǎo)入文件 |
3.3 可選子級標(biāo)簽
- <env>
- <arg>
4.remap標(biāo)簽
4.1 必選屬性
| 屬性 |
含義 |
| from="original-name" |
原始話題名稱 |
| to="new-name" |
目標(biāo)名稱 |
5.param標(biāo)簽
- 作為
\<node>子級標(biāo)簽時,相當(dāng)于私有命名空間。
5.1 必選屬性
| 屬性 |
含義 |
| name="namespace/name" |
參數(shù)名稱,可以包含命名空間 |
5.2 可選屬性
| 屬性 |
含義 |
| value="value" |
定義參數(shù)值,如果此處省略,必須指定外部文件作為參數(shù)源 |
| type="str|int|double|bool|yaml" |
指定參數(shù)類型,如果未指定,roslaunch 會嘗試確定參數(shù)類型 |
roslaunch 確定參數(shù)類型的規(guī)則如下:
- 如果包含 '.' 的數(shù)字解析未浮點型,否則為整型
- "true" 和 "false" 是 bool 值(不區(qū)分大小寫)
- 其他是字符串
6.rosparam標(biāo)簽
6.1 必選屬性
| 屬性 |
含義 |
| file="$(find pkg-name)/path/foo.yaml" |
加載或?qū)С龅降?yaml 文件 |
| param="param-name" |
參數(shù)名稱 |
6.2 可選屬性
| 屬性 |
含義 |
| command="load| dump | delete" |
加載、導(dǎo)出或刪除參數(shù),默認為加載 |
| ns="namespace" |
將參數(shù)指定到命名空間 |
7.group標(biāo)簽
7.1 可選屬性
| 屬性 |
含義 |
| ns="namespace" |
將該組節(jié)點分配到指定的命名空間。命名空間可以是全局的,也可以是相對的,但不鼓勵使用全局命名空間。 |
| clear_params="true|false" |
在啟動前刪除組的命名空間中的所有參數(shù)。這個功能非常危險,應(yīng)該謹慎使用。 |
7.2 可選子級標(biāo)簽
- 其他所有標(biāo)簽都是其子級標(biāo)簽
8.arg標(biāo)簽
8.1 必選屬性
| 屬性 |
含義 |
| name="arg-name" |
欲設(shè)置的參數(shù)名稱 |
8.2 可選屬性
| 屬性 |
含義 |
| default="default value" |
設(shè)置參數(shù)的默認值。不能與value屬性結(jié)合。 |
| value="value" |
設(shè)置參數(shù)的值。不能與default屬性結(jié)合。 |
| doc="description for this arg" |
加載、導(dǎo)出或刪除參數(shù),默認為加載 |
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標(biāo)簽
9.1 必選屬性
| 屬性 |
含義 |
| name="environment-variable-name" |
所設(shè)置的環(huán)境變量的名字 |
| value="environment-variable-value" |
參數(shù)說明 |
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>
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!