== tag ==
The `` tag defines a parameter to be set on the [[Parameter Server]]. Instead of {{{value}}}, you can specify a {{{textfile}}}, {{{binfile}}} or {{{command}}} attribute to set the value of a parameter. The `` tag can be put inside of a [[roslaunch/XML/node|]] tag, in which case the parameter is treated like a [[Names|private parameter]].
You can also set private parameter across a group of nodes by using the `~param` syntax (see [[Names|ROS names]]) in a `` tag. The declared parameter will be set as a local parameter in the [[roslaunch/XML/node|]] tags that follow that are in the same scope (i.e. group or ns tag).
=== Attributes ===
. `name="namespace/name"`
. Parameter name. Namespaces can be included in the parameter name, but globally specified names should be avoided.
`value="value"`''(optional)''
. Defines the value of the parameter. If this attribute is omitted, `binfile`, `textfile` or `command` must be specified.
`type="str|int|double|bool|yaml"`''(optional)''
. Specifies the type of the parameter. If you don't specify the type, roslaunch will attempt to automatically determine the type. These rules are very basic:
* numbers with '.'s are floating point, integers otherwise;
* "true" and "false" are boolean (not case-sensitive).
* all other values are strings
`textfile="$(find pkg-name)/path/file.txt"`''(optional)''
. The contents of the file will be read and stored as a string. The file must be locally accessible, though it is strongly recommended that you use the package-relative {{{$(find)/file.txt}}} syntax to specify the location.
`binfile="$(find pkg-name)/path/file"`''(optional)''
. The contents of the file will be read and stored as a base64-encoded XML-RPC binary object. The file must be locally accessible, though it is strongly recommended that you use the package-relative {{{$(find)/file.txt}}} syntax to specify the location.
`command="$(find pkg-name)/exe '$(find pkg-name)/arg.txt'"`''(optional)''
. The output of the command will be read and stored as a string. It is strongly recommended that you use the package-relative {{{$(find)/file.txt}}} syntax to specify file arguments. You should also quote file arguments using single quotes due to XML escaping requirements.
=== Examples ===
{{{
}}}
=== Parameters from YAML output ===
In order to load a YAML file, you can use:
{{{
}}}
<>
But this doesn't work when using a command which outputs the parameters on `stdout`.
In that case the new param type `yaml` can be used:
{{{
}}}
In the above example, the parameters from the described file would be loaded under the local namespace `params_a`.