#
-
roslaunch在一次传递中计算XML文件。包含按深度第一遍历顺序处理。标记按顺序计算,最后一个设置获胜。因此,如果一个参数有多个设置,则将使用为该参数指定的最后一个值。
-
依赖覆盖行为可能很脆弱。不能保证正确指定了重写(例如,如果在包含的文件中更改了参数名)。相反,建议使用$(arg)/设置完成覆盖行为。
替代参数
Roslaunch标记属性可以使用替换参数,Roslaunch 将在启动节点之前解析这些参数。当前支持的替换参数包括:
(1)
$ (env ENVIRONMENT_VARIABLE)
换当前环境中变量的值。如果未设置环境变量,则启动将失败。此值不能被<env>标记覆盖。
(2)
$ (optenv ENVIRONMENT_VARIABLE)
$(optenv ENVIRONMENT_VARIABLE default_value) |
如果环境变量已设置,请将其替换。如果提供了默认值,则在未设置环境变量时将使用该值。如果未提供默认值,则将使用空字符串。默认值可以是由空格分隔的多个单词。 |
example:
<param name="foo" value="$(optenv NUM_CPUS 1)" />
<param name="foo" value="$(optenv CONFIG_PATH /home/marvin/ros_workspace)" />
<param name="foo" value="$(optenv VARIABLE ros rocks)" />
(3)
$ (find pkg)
指定包的**相对路径。**到包目录的文件系统路径将被内联替换。由于硬编码路径抑制了启动配置的可移植性,因此强烈鼓励使用包相关路径。前斜杠和后斜杠将被解析为本地文件系统约定。
exmaple:
$(find rospy)/manifest.xml
这里用的是相对路径
(4)
$(anon name)
在名称的基础上产生匿名id
(5)
$(arg foo)
计算为<arg>标记指定的值。在声明arg的同一启动文件中必须有相应的<arg>标记
example:
<param name="foo" value="$arg my_foo" />
value等于my_foo这个参数的值
(6)
$(eval <expression>)
允许计算任意复杂的python表达式。
(7)
$(dirname)
返回启动文件所在目录的绝对路径。这可以与eval和if/unless结合使用来修改基于安装路径的行为,或者只是为了方便相对于当前文件而不是相对于包根(如$(find PKG))引用启动或yaml文件。
常用标签解析
<param>
定义要在参数服务器上设置的参数。可以指定textfile、binfile或command属性来设置参数值,除了值<param>标记可以放在<node>标记中,在这种情况下,该参数被视为私有参数。
还可以使用<param>标记中的~param语法(请参阅ROS names)跨组或节点设置私有参数。声明的参数将被设置为<node>标记中的本地参数,这些标记位于相同的范围内(即group或ns标记)。
属性 | 描述 |
---|---|
name | 参数名称 |
value | 参数值 |
type | 指定参数类型。str int double bool yaml (optional) 其中bool用“true”"false"标识 |
textfile=“$(find pkg_name)”/path/file.txt (optional) | 文件的内容将被读取并作为字符串存储。尽管强烈建议您使用包相对$(find)/file.txt语法指定位置,但该文件必须在本地可访问。 |
binfile="$(find pkg-name)/path/file" (optional) | 文件的内容将被读取并存储为base64编码的XML-RPC二进制对象。 |
command | output将被读取并以字符串方式储存 |
<rosparam>
标签允许使用rosparam YAML文件从ROS参数服务器加载和转储参数。它还可以用于删除参数。标记可以放在标记中,在这种情况下,该参数被视为私有名称。
<rosparam command="load" file="$(find pkg-name)/path/foo.yaml">
<arg>
<arg>允许您通过指定通过命令行传递、通过<include>传递或为更高级别文件声明的值来创建更多可重用和可配置的启动文件。Args不是全局的。arg声明特定于单个启动文件,非常像方法中的本地参数。您必须显式地将arg值传递给包含的文件,这与在方法调用中一样。
属性 | 描述 |
---|---|
name | 参数名 |
default (optional) | 默认参数的值,不可以与value属性一起用 |
value | 参数值 |
doc (optional) | 描述参数值 |
附件
其他不常用的可以在wiki查看