Configurando parâmetros em arquivos de launch
Outro método muito comum para configurar parâmetros é fazer isso dentro de um arquivo de launch.
Sumário
Configurando parâmetros
Para solicitar ao roslaunch
a configuração do valor de um parâmetro, use um elemento param
:
<param name="param-name" value="param-value" />
Este elemento, como esperado, atribui o valor designado ao parâmetro com o nome fornecido. O parâmetro deve, como sempre, ser um nome relativo. Por exemplo, esse fragmento de um arquivo launch é equivalente ao conjunto de comandos de configuração rosparam
:
<group ns="duck_colors">
<param name="huey" value="red" />
<param name="dewey" value="blue" />
<param name="louie" value="green" />
<param name="webby" value="pink" />
</group>
Configurando parâmetros privados
Uma outra opção é incluir elementos param
como filhos de um elemento node
.
<node ...>
<param name="param-name" value="param-value" />
...
</node>
Com essa construção, os nomes dos parâmetros são tratados como nomes privados para aquele nó.
⏩ Essa é uma exceção às regras usuais para resolução de nomes. Nomes de parâmetros dados em elementos
param
que são filhos dos elementosnode
são sempre resolvidos como nomes privados, independentemente se começam com~
ou até mesmo/
.
Por exemplo, nos poderíamos utilizar um código como esse para realizar o launch do node pubvel_with_max
com seu parâmetro private max_vel
definido corretamente:
<node
pkg="agitr"
type="pubvel_with_max"
name="publish_velocity"
/>
<param name="max_vel" value="3" />
</node>
A Lista 7.3 mostra um arquivo de launch completo que inicia um turtlesim
e nossos dois programas exemplo. O seu resultado deveria ser mostrar uma tartaruga turtlesim
movendo-se rapidamente em um fundo amarelo.
Lista 7.3
Um arquivo de launch chamado fast_yellow.launch
. Ele inicia os programas exemplo da Lista 7.1 e 7.2 e define o parâmetro max_vel
.
1 <launch>
2 <node
3 pkg="turtlesim"
4 type="turtlesim_node"
5 name="turtlesim"
6 />
7 <node
8 pkg=" a g i t r "
9 type="pubvel_with_max "
10 name="publish_velocity"
11 >
12 <param name="max_vel" value="3" />
13 </node>
14 <node
15 pkg=" a g i t r "
16 type="set_bg_color "
17 name="set_bg_color "
18 />
19 </launch>
Lendo parâmetros de um arquivo
Por fim, arquivos de launch também suportam um equivalente ao rosparam load
, para configurar múltiplos parâmetros de uma única vez.
<rosparam command="load" file="path-to-param-file" />
O arquivo de parâmetros listado aqui é normalmento aquele criado pelo rosparam dump
. Assim como outras referências a arquivos específicos (tais como o elemento include
da Seção 6.5.1, normalmente se usa uma substituição utilizando find
para especificar o nome de um arquivo relacionado a um diretório de pacotes:
<rosparam
command="load"
file="$(find package-name)/param-file"
/>
Juntamente com o rosparam load
, essa opção pode ser útil na testagem, pois nos permite recriar os parâmetros que estavam em uso em algum momento do passado.