Etiqueta <param>
La etiqueta <param> define un parámetro que se configurará en el Servidor de parámetros. En lugar de value, puede especificar un atributo textfile, binfile o command para establecer el valor de un parámetro. La etiqueta <param> se puede colocar dentro de una etiqueta <node>, en cuyo caso el parámetro se trata como un parámetro privado.
También puede establecer parámetros privados en un grupo de nodos usando la sintaxis ~ param (ver ROS names (Nombres ROS)) en una etiqueta <param>. El parámetro declarado se establecerá como un parámetro local en las etiquetas <node> que siguen y que están en el mismo ámbito (es decir, grupo o la etiqueta ns).
Atributos
Atributo |
Estado |
Caracteristicas |
name="namespace/name" |
|
Parámetro name. Los espacios de nombres se pueden incluir en el nombre del parámetro, pero se deben evitar los nombres especificados globalmente. |
value="value" |
(opcional) |
Define el valor del parámetro. Si se omite este atributo, se debe especificar binfile, textfile o command. |
type="str|int|double|bool|yaml" |
(opcional) |
Especifica el tipo de parámetro. Si no especifica el tipo, roslaunch intentará determinarlo automáticamente. Estas reglas son muy básicas:
|
textfile="$(find pkg-name)/path/file.txt" |
(opcional) |
El contenido del archivo se leerá y almacenará como una cadena. El archivo debe ser accesible localmente, aunque se recomienda encarecidamente que utilice la sintaxis relativa al paquete $(find)/file.txt para especificar la ubicación. |
binfile="$(find pkg-name)/path/file" |
(opcional) |
El contenido del archivo se leerá y almacenará como un objeto binario XML-RPC codificado en base64. El archivo debe ser accesible localmente, aunque se recomienda encarecidamente que utilice la sintaxis relativa al paquete para especificar la ubicación. |
command="$(find pkg-name)/exe '$(find pkg-name)/arg.txt'" |
(opcional) |
La salida del comando se leerá y almacenará como una cadena. Se recomienda encarecidamente que utilice la sintaxis $(find)/file.txt relativa al paquete para especificar los argumentos del archivo. También debe citar los argumentos del archivo con comillas simples debido a los requisitos de escape de XML. |
Ejemplos
<param name="publish_frequency" type="double" value="10.0" />
Parámetros de salida correspondientes a YAML
Para cargar un archivo YAML, puede usar:
<rosparam command="load" file="FILENAME" />
New in Lunar
Pero esto no funciona cuando se usa un comando que genera los parámetros en stdout. En ese caso, se puede usar el nuevo tipo de parámetro yaml:
<param name="params_a" type="yaml" command="cat '$(find roslaunch)/test/params.yaml'" />
En el ejemplo anterior, los parámetros del archivo descrito se cargarían en el espacio de nombres (namespace) local params_a.