Note: This tutorial assumes that you have completed the previous tutorials: Comprendiendo Servicios y Parámetros en ROS.
(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Using rqt_console and roslaunch

Description: Este tutorial presenta ROS usando rqt_console y rqt_logger_level para depurar y roslaunch para iniciar muchos nodos a la vez. Si usa ROS fuerte o distribuciones anteriores donde rqt no está completamente disponible, consulte esta página con esta página que usa herramientas antiguas basadas en rx.

Tutorial Level: BEGINNER

Next Tutorial: Using rosed

Requisitos previos paquete rqt y turtlesim

El tutorial usa los paquetes rqt y turtlesim. Para realizar este tutorial, instale ambos paquetes, si aún no lo ha hecho.

$ sudo apt-get install ros- <distro> -rqt ros- <distro> -rqt-common-plugins ros- <distro> -turtlesim

Reemplaza <distro> con el nombre de tu Distribución ROS (por ejemplo, indigo, jade, kinetic, lunar. ...).

'NOTA:' es posible que ya haya creado rqt y turtlesim para uno de los tutoriales anteriores. Si no está seguro, instalarlos de nuevo no dañará nada.

Usando rqt_console y rqt_logger_level

rqt_console se adjunta al marco de registro de ROS para mostrar la salida de los nodos. rqt_logger_level nos permite cambiar el nivel de verbosidad (DEBUG, WARN, INFO y ERROR) de los nodos mientras se ejecutan.

Ahora veamos la salida de turtlesim en rqt_console y cambiemos los niveles del registrador en rqt_logger_level como usamos turtlesim. Antes de comenzar con turtlesim, 'en dos nuevas terminales' inicie rqt_console y rqt_logger_level:

$ rosrun rqt_console rqt_console

$ rosrun rqt_logger_level rqt_logger_level

Verá dos ventanas emergentes:

rqt_console(start).png

rqt_logger_level.png

Ahora comencemos turtlesim en una 'nueva terminal' :

$ rosrun turtlesim turtlesim_node

Dado que el nivel de registrador predeterminado es INFO, verá cualquier información que turtlesim publique cuando se inicie, que debería verse así:

rqt_console(turtlesimstart).png

Ahora cambiemos el nivel del registrador a Advertir actualizando los nodos en la ventana rqt_logger_level y seleccionando Advertir como se muestra a continuación:

rqt_logger_level(error).png

Ahora ejecutemos nuestra tortuga en la pared y veamos qué se muestra en nuestra rqt_console:

Para ROS Hydro y posteriores

  • rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

Para ROS Groovy y anteriores

  • rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0  0.0

rqt_console(turtlesimerror).png

Nota rápida sobre los niveles del registrador

Los niveles de registro se priorizan en el siguiente orden:

Fatal
Error
Warn
Info
Debug

Fatal tiene la prioridad más alta y Debug tiene la más baja. Al configurar el nivel del registrador, obtendrá todos los mensajes de ese nivel de prioridad o superior. Por ejemplo, si configura el nivel en "Advertencia", obtendrá todos los mensajes de registro "Advertencia", "Error" y "Fatal".

Hagamos "Ctrl-C" en nuestro turtlesim y usemos "roslaunch" para que aparezcan múltiples nodos de turtlesim y un nodo de imitación para hacer que un turtlesim imite a otro:

Usando roslaunch

roslaunch inicia los nodos como se define en un archivo de inicio.

Uso:

$ roslaunch [package] [filename.launch]

Primero vaya al paquete beginner_tutorials que creado y construido anteriormente:

$ roscd beginner_tutorials

Si roscd dice algo similar a 'roscd: No such package/stack 'beginner_tutorials' , necesitará obtener el archivo de configuración del entorno como lo hizo al final de tutorial create_a_workspace:

$ cd ~/catkin_ws
$ source devel/setup.bash
$ roscd beginner_tutorials

Entonces hagamos un directorio de lanzamiento:

$ mkdir launch
$ cd launch
  • NOTA: El directorio para almacenar los archivos de inicio no tiene que llamarse necesariamente "launch". De hecho, ni siquiera necesita almacenarlos en un directorio. El comando roslaunch busca automáticamente el paquete pasado y detecta los archivos de inicio disponibles. Sin embargo, esto se considera una buena práctica.

El Archivo Launch

Ahora creemos un archivo de lanzamiento llamado turtlemimic.launch y peguemos lo siguiente:

   1 <launch>
   2 
   3   <group ns="turtlesim1">
   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   5   </group>
   6 
   7   <group ns="turtlesim2">
   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   9   </group>
  10 
  11   <node pkg="turtlesim" name="mimic" type="mimic">
  12     <remap from="input" to="turtlesim1/turtle1"/>
  13     <remap from="output" to="turtlesim2/turtle1"/>
  14   </node>
  15 
  16 </launch>

Explicación del archivo de lanzamiento

Ahora, analicemos el xml de lanzamiento.

   1 <launch>

Aquí iniciamos el archivo de lanzamiento con la etiqueta de lanzamiento, de modo que el archivo se identifica como un archivo de lanzamiento.

   3   <group ns="turtlesim1">
   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   5   </group>
   6 
   7   <group ns="turtlesim2">
   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   9   </group>

Aquí comenzamos dos grupos con una etiqueta de espacio de nombres de turtlesim1 y turtlesim2 con un nodo turtlesim con un nombre de sim. Esto nos permite iniciar dos simuladores sin tener conflictos de nombres.

  11   <node pkg="turtlesim" name="mimic" type="mimic">
  12     <remap from="input" to="turtlesim1/turtle1"/>
  13     <remap from="output" to="turtlesim2/turtle1"/>
  14   </node>

Aquí comenzamos el nodo mímico con los temas de entrada y salida renombrados a turtlesim1 y turtlesim2. Este cambio de nombre hará que turtlesim2 imite a turtlesim1.

  16 </launch>

Esto cierra la etiqueta xml para el archivo de lanzamiento.

roslaunching

Ahora vamos a "lanzar" el archivo de lanzamiento:

$ roslaunch beginner_tutorials turtlemimic.launch

Dos turtlesims comenzarán y en una 'nueva terminal' enviarán el comando rostopic:

Para ROS Hydro y posteriores

  • $ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

Para ROS Groovy y anteriores

  • $ rostopic pub /turtlesim1/turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0  -1.8

Verá que los dos turtlesims comienzan a moverse a pesar de que el comando de publicación solo se envía a turtlesim1.

mimic.png

También podemos usar rqt_graph para comprender mejor lo que hizo nuestro archivo de inicio. Ejecute la ventana principal de rqt y seleccione Complementos> Introspección> Gráfico de nodo :

$ rqt

O simplemente:

$ rqt_graph

mimiclaunch.jpg

Ahora que ha utilizado con éxito rqt_console y roslaunch, aprendamos sobre opciones de editor para ROS. Puede presionar Ctrl-C para todos sus simios de tortuga, ya que no los necesitará para los próximos tutoriales.

Wiki: es/ROS/Tutoriales/UsandoRqtconsoleYRoslaunch (last edited 2021-10-28 18:28:27 by JuanEduardoRiva)