roslaunch的.launch文件的标签总结

1. launch 标签

链接:launch标签

<launch>标签是任何roslaunch文件的根元素,它唯一的目的是作为其他元素的容器。

1.2 可包含的元素

Elements说明
<node>运行一个节点
<param>设置一个参数在参数服务器上
<remap>声明重映射ros计算图资源的命名
<machine>声明用于启动时的机器
<rosparam>加载文件中的多个参数
<include>包含了其他的ros launch文件
<env>为启动节点指定一个环境变量。
<test>运行一个测试节点,详见rostest
<arg>声明一个参数
<group>将共享名称空间或重新映射的封闭元素分组

2. node标签

链接:node标签

<node>可以指定一个您想要运行的ROS节点,这是最常见的roslaunch标签,因为它支持最重要的特性:启动和关闭节点。
roslaunch不提供任何关于节点开始顺序的保证。这是有意的:无法从外部知道节点何时完全初始化,因此所有启动的代码都必须能够以任何顺序启动。
roslaunch教程页面包含了一些如何充分利用标记的示例。

2.1 属性

2.1.1 必选

Attributes说明
pkg=“mypackage”节点所在的功能包
type=“nodetype”节点的类型,这里必须有一个同名的节点对应可执行文件。
name=“nodename”节点运行时的名称。注意:名称不能包含命名空间,若包含请改用ns属性。

2.1.2 可选项

以上三个属性是必须的,下面的属性皆为可选项

Attributes说明备注
args=“arg1 arg2 arg3”将参数传递给节点
machine=“machine-name”在指定的机器上启动节点machine标签
respawn=“true”如果设置为true,则当该节点退出时,重启节点默认为FALSE
respawn_delay=“30”如果需要重启节点,则在节点故障后等到30s再重启默认为0
required=“true”设置为true时,如果该节点关闭,则关闭所有节点。
ns=“foo”启动’foo’命名空间中的节点。
clear_params=“true / false”启动前删除节点私有命名空间中的所有参数
output=“log / screen”如果选择了“screen”,则该节点的输出和错误都将发送到屏幕终端上现实。如果选择了“log”,则将输出和错误发送到$ROS_HOME/log下的log文件中,但错误也会继续发送到屏幕上。默认为log
cwd=“ROS_HOME/node”如果为“节点”,则节点的工作目录将设置为与节点的可执行文件相同的目录。在C语言中,默认值为“ROS_HOME”。在Box Turtle(ROS 1.0.x)中,默认值为“ROS根”。C语言中不推荐使用“ros root”。
launch-prefix=“prefix arguments”将命令/参数添加到节点的启动参数前。这是一个强大的特性,使您能够启用gdb、valgrind、xterm、nice或其他方便的工具。

2.2 例子

<node name="listener1" pkg="rospy_tutorials" type="listener.py" args="--test" respawn="true" />

2.3 元素

Elements说明
<param>在节点的~/本地名称空间中设置参数。
<remap>声明重映射ros计算资源的命名
<rosparam>将参数文件加载到此节点的~/local命名空间中。
<env>设置节点的环境变量

3. machine标签

链接:machine标签

标记声明可以在其上运行ROS节点的机器。如果所有节点均在本地启动,则不需要此标记。它主要用于声明远程计算机的SSH和ROS环境变量设置,不过您也可以使用它声明有关本地计算机的信息。

3.1 属性

3.1.1 必选

Attributes说明
name=“machine-name”要分配给机器的名称。这对应于标记的机器属性所使用的名称。
address=“blah.willowgarage.com”计算机的网络地址/主机名。
env-loader="/opt/ros/fuerte/env.sh"指定远程计算机上的环境文件。环境文件必须是一个shell脚本,用于设置所有必需的环境变量,然后对提供的参数运行exec。详情见链接machine标签,有相关示例文件。

3.1.2 可选

Attributes说明备注
default=“true/false/never”将此计算机设置为要向其分配节点的默认计算机。默认设置仅适用于稍后在同一范围内定义的节点。注意:如果没有默认机器,则使用本地机器。您可以通过设置default=“never”来防止选择机器,在这种情况下,只能显式分配机器。
user=“username”用于登录计算机的SSH用户名。如果不需要,可以省略。
rpassword=“passwhat”SSH密码。强烈建议您改为配置SSH密钥和SSH代理,以便可以使用证书登录
timeout=“10.0”节点在该台机器上启动的时间,如果超过了这个时间则认为无法启动。虽然您可以使用此设置来允许较慢的连接,但是需要更改此参数通常是您的总体 ROS 存在通信问题的一个症状。默认为10s

4.include标签

链接:include标签

<include>标记允许您将另一个roslaunch XML文件导入到当前文件中。它将在您的文档的当前范围内导入,包括<group><remap>标记。包含文件中的所有内容都将被导入,除了<master>标记:<master>标记只在顶级文件中执行。关于``标签,详见链接

4.1 属性

4.1.1 必选

Attributes说明
file="$(find pkg-name)/path/filename.xml"要包含的文件名,以及对应的相对路径和功能包

4.2 可选

Attributes说明备注
ns=“foo”导入foo’命名空间相关联的文件。
clear_params=“true/false”在启动之前删除的命名空间中的所有参数。这个特性非常危险,应该谨慎使用。必须指定Ns默认:FALSE
pass_all_args="truefalse"如果为true,则当前上下文中设置的所有参数都将添加到为处理包含的文件而创建的子上下文中。可以这样做,而不是显式列出要传递的每个参数。

4.2 元素

Elements说明
<arg>向include的文件传递一个参数。
<env>在整个include的文件中设置一个环境变量。

5. remap标签

详情见链接:remap标签
重映射。使用时

  • from:原命名
  • to : 映射之后的命名
<remap from="/different_topic" to="/needed_topic"/>

6. env标签

<env>标签允许您在启动的节点上设置环境变量。此标签只能在<launch><include><node><machine>标签的范围内使用。当它在<launch>标签内使用时,<env>标签仅适用于之后声明的节点。可以在EnvironmentVariables中找到一些环境变量。

注意:使用标签设置的值不会被$(env…)看到,因此标记不能用于参数化启动文件。

6.1 属性

Attributes说明
name=“environment-variable-name”您正在设置的环境变量。
value=“environment-variable-value”环境变量的值。

7.param标签

链接:param标签
<param>标签可以在参数服务器中定义一些参数。在值的设定上,您可以指定一些textfile(文本文件)、binfile(二进制文件)或命令属性来设置。<param>标签可以放在`````标签的内部,在这种情况下,参数被视为私有参数。
您还可以通过在 < param > 标签中使用 ~ param 语法(参见 ROS 名称)在一组节点上设置私有参数。

7.1 属性

7.1.1 必选

Attributes说明
name=“namespace/name”参数名称。命名空间可以包含在参数名称中,但应避免全局指定的名称。

7.1.2可选

Attributes说明备注
value=“value”参数的值。定义参数的值。如果省略此属性,则必须指定binfile、textfile或command。
type=“str/int/double/bool/yaml”指定参数的类型。如果您没有指定类型,roslaunch将尝试自动确定类型。
textfile="$(find pkg-name)/path/file.txt"文本文件的内容将被读取并以字符串的形式存储。该文件必须在本地可访问,强烈建议使用相对路径的$(find)/file.txt语法来指定位置。pgk-name是功能包的名称
binfile="$(find pkg-name)/path/file"文件的内容将被读取并存储为base64编码的XML-RPC二进制对象。该文件必须在本地可访问。强烈建议使用相对路径的$(find)/file.txt语法来指定位置。
command=" ( f i n d p k g − n a m e ) / e x e ′ (find pkg-name)/exe ' (findpkgname)/exe(find pkg-name)/arg.txt’"命令的输出将被读取并存储为字符串。强烈建议您使用相对路径的$(find)/file.txt语法来指定文件参数。由于XML转义要求,您还应该使用单引号引用文件参数。

7.3 示例

<param name="params_a" type="yaml" command="cat '$(find roslaunch)/test/params.yaml'" />

在上面的示例中,所描述的文件中的参数将被加载到本地名称空间params_a下。


8. rosparam标签

链接:rosparam标签

<rosparam>标签允许使用rosparam YAML文件从ROS参数服务器加载和转储参数。它还可以用来删除参数。<rosparam>标签可以放在<node>标签中,在这种情况下,参数被视为私有的。
delete和dump命令在load命令之前运行,以及在将任何其他参数上传到参数服务器之前运行。delete和dump命令按照顺序执行。
load命令被认为是可添加的:如果您声明了参数的字典或命名空间,那么这些参数将添加到为该命名空间声明的任何其他参数中。类似地,load命令可以覆盖以前声明的参数。
标签可以引用YAML文件,也可以包含原始YAML文本。如果YAML文本定义了字典,则可以省略param属性。

8.1 属性

8.1.1 必选

Attributes说明
param=“param-name”参数名称。

8.1.2 可选

Attributes说明备注
command=“load/dump/delete”rosparam的命令。详见rosparam。load导入,dump存储,delete删除,默认为load。
file="$(find pkg-name)/path/foo.yaml"rosparam文件名称。load或dump命令的对象。
ns=“namespace”将参数限定到指定的命名空间。
subst_value=true/false允许在YAML文本中使用替换参数

9. arg标签

链接:arg标签
<arg>标记允许您通过指定通过命令行传递的值、通过<include>传递的值或为更高级别的文件声明的值来创建更多可重用和可配置的启动文件。参数不是全局的。arg声明是特定于单个启动文件的,很像方法中的局部参数。必须显式地将参数值传递给包含的文件,就像在方法调用中一样。

9.1 使用案例

<arg>可以有以下三种使用方式

  • 声明foo的存在。Foo必须作为命令行参数传入(如果是顶级的),或者通过传入(如果包含)。
<arg name="foo" />
  • 使用默认值声明foo。foo可以通过命令行参数(如果是顶级的)或通过传递(如果包含)来覆盖。
<arg name="foo" default="1" />
  • 声明foo为常量值。foo的值不能被重写。这种用法支持启动文件的内部参数化,而无需在更高级别公开该参数化。
<arg name="foo" value="bar" />

10. group标签

链接:group标签
标记使设置更容易应用于一组节点。它有一个ns属性,允许您将节点组推送到一个单独的命名空间中。您还可以使用标记在整个组中应用remap设置。

10.1 可选属性(无必选)

Attributes说明
ns=“namespace”将节点组分配给指定的命名空间。命名空间可以是全局的,也可以是相对的,但不鼓励使用全局命名空间。
clear_params=“true/false”在启动之前删除组命名空间中的所有参数。这个特性非常危险,应该谨慎使用。必须指定Ns。

11. test标签

链接:test标签
。。。。。

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值