ros tutorial

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 conecptos 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

hydro
ruleta6
Diagrama de aprendizaje

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:

rosparam_list

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.
roslaunch
Ejemplo conceptual de archivo 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

Subscríbete a nuestro blog

ROS_custom_message

10 ROS Custom Message

ROS Custom Message Fundamentos de ROS Accede a otros posts En tutoriales anteriores a la hora de la comunicación pub/sub, siempre hemos usado mensajes predefinidos

Read More »
kinetic

9 CmakeLists & Package.xml

Cmake y package.xml Fundamentos de ROS Accede a otros posts En esta breve entrada del blog, hablaremos sobre Cmake y package.xml Cmake es una herramienta

Read More »
indigo

7 Servicios

Servicios Otras entrads del blog Qué son los servicios en ROS?? Ejemplo práctico para aclarar conceptos. Si queréis info que complemente este artículo, lo podréis

Read More »

This website uses cookies to ensure you get the best experience on our website. By continuing to browse on this website, you accept the use of cookies for the above purposes.