Ros Parameter Server y Roslaunch
Qué es Ros Parameter Server ?? Qué es Roslaunch??
En esta breve entrada veremos estos dos conceptos básicos de manera muy sucinta, explicaremos estos conceptos pero sin profundizar en ellos, dejando simplemente el camino allanado para cuando nos toque usarlos, momento en que los explicaremos al detalle. Más info en el siguiente enlace


ROS Parameter Server
ROS Parameter Server es un servidor que se ejecuta en nuestras aplicaciones de ROS (se ejecuta automáticamente con roscore), que nos permite almacenar variables a las que podremos acceder desde cualquier parte de nuestra aplicación de ROS. Se almacenan variables que van a ser accesibles desde cada nodo.
Existen una serie de comandos para ver o acceder a estos parámetros desde la consola
$ rosparam list
$ rosparam set
$ rosparam get
Vamos a ejecutar el primero de ellos, (roscore debe estar activo):
$ rosparam list
Este parámetro nos devuelve:

Estos parámetros son parámetros que ROS va a cargar en el servidor de parámetros, a destacar el parámetro /rosdistro que nos indica que distribución de ROS tenemos.
Conforme vayamos pasando parámetros al servidor, con el comando rosparam list podemos confirmar si están en el servidor
Si ahora queremos ver el valor de un parámetro podemos escribir:
$ rosparam get [nombre del parámetro]
por ejemplo si escribimos
$ rosparam get /rosdistro
obtendremos:

Hay que tener en cuenta que existen comandos para obtener, visualizar y establecer parámetros a través de nuestro código, cuando realizamos la programación de algún nodo.
Veremos más concretamente este caso así como la aplicación real del servidor de parámetros en entradas futuras, conforme vayamos haciendo ejemplos reales.
Roslaunch
Pensemos en una aplicación real, igual tiene 20 o 30 nodos, deberíamos ir ejecutando uno a uno de manera manual e individual según vaya moviéndose el robot? Afortunadamente no.Para ello existe Roslaunch.
Roslaunch es una herramienta que nos va a permitir ejecutar múltiples nodos de manera automática y establecer parámetros en el servidor de Parámetros,
Roslaunch se basa en la creación de archivos programados en xml cuya extensión es .launch y que nos van a permitir, como ya hemos comentado, ejecutar nodos y establecer valores a diferentes parámetros. Si no sabes programar xml que no cunda el pánico, casi todos los archivos de roslaunch que necesitemos son prácticamente iguales, y hecho uno, hechos todos.
- Destacar que roslaunch va a ejecutar automáticamente “roscore”, por lo que no será necesario ejecutar este comando para que nuestra aplicación ROS funcione correctamente.
- Podemos ejecutar otros archivos .launch.

Para ejecutar un archivo .launch usaremos el comando roslaunch
$ roslaunch [nombre_de_paquete][nombre del archivo.launch a ejecutar]
ejemplo de un archivo .launch:
<launch>
<rosparam param=“/robot/ip_addr“>192.168.1.50</rosparam>
<node name=“camera_1" pkg=“camera_aravis” type=“camnode" />
<node name=“camera_2" pkg=“camera_aravis“ type=“camnode“ />
<include file=“$(find robot_pkg)/launch/start_robot.launch” />
</launch>
explicacioń:
En la primera linea establecemos el valor de un parámetro del servidor (ROS Parameter Server)
En la segunda linea iniciamos el nodo camera_ 1 que se encuentra dentro del paquete «camera_aravis»
En la tercera linea iniciamos el nodo camera_ 2 que se encuentra dentro del paquete «camera_aravis»
En la última fila incluimos a su vez el archivo robot_start.launch, es decir nuestro archivo launch ejecuta otro archivo launch
Al igual que Rosparam esto lo veremos con más detalle cuando os toque entender una aplicación real.
Aquí acaba esta breve entrada dedicada a Rosparam y Roslaunch. Si quieres aprender ROS en español, te recomiendo que te subscribas a nuestro blog y no te pierdas nuestra siguiente entrada donde hablaremos sobre los servicios en ROS