Comandos comunes de ROS

En un sistema robótico, pueden ejecutarse simultáneamente desde unos pocos hasta decenas de nodos. Cada nodo tiene un nombre único, y se comunican mediante temas, servicios, mensajes, parámetros, etc. Surge un desafío común: cuando necesita personalizar un nodo para que se comunique con otro nodo existente, ¿cómo recupera el tema y el formato de mensaje que utiliza el otro nodo?

ROS proporciona un conjunto de herramientas de línea de comandos útiles para obtener diversa información sobre los distintos nodos. Los comandos más utilizados son los siguientes:

  • rosnode: Gestionar nodos
  • rostopic: Gestionar temas
  • rosservice: Gestionar servicios
  • rosmsg: Gestionar tipos de mensaje (msg)
  • rossrv: Gestionar tipos de mensaje de servicio (srv)
  • rosparam: Gestionar parámetros

Estos comandos son dinámicos, a diferencia de los comandos estáticos del sistema de archivos. Una vez iniciado el programa ROS, estos comandos le permiten obtener dinámicamente información sobre nodos o parámetros en ejecución.

rosnode

rosnode se utiliza para recuperar información sobre los nodos ROS.

  • rosnode ping: Probar el estado de conectividad con un nodo
  • rosnode list: Listar todos los nodos activos
  • rosnode info: Imprimir información sobre un nodo
  • rosnode machine: Listar los nodos que se ejecutan en una máquina específica
  • rosnode kill: Terminar un nodo
  • rosnode cleanup: Limpiar nodos inalcanzables

rostopic

rostopic incluye herramientas de línea de comandos para mostrar información de depuración sobre los temas ROS, como publicadores, suscriptores, frecuencia de publicación y mensajes ROS. También incluye una biblioteca experimental en Python para recuperar dinámicamente información sobre temas e interactuar con ellos.

  • rostopic bw: Mostrar el uso de ancho de banda de un tema
  • rostopic delay: Mostrar el retardo de un tema con cabecera
  • rostopic echo: Imprimir mensajes por pantalla
  • rostopic find: Buscar temas por tipo
  • rostopic hz: Mostrar la frecuencia de publicación de un tema
  • rostopic info: Mostrar información sobre un tema
  • rostopic list: Listar todos los temas activos
  • rostopic pub: Publicar datos en un tema
  • rostopic type: Imprimir el tipo de un tema

Ejemplos:

  • rostopic list(-v): Imprime los nombres de los temas en ejecución (con -v se obtiene información detallada como el número de publicadores y suscriptores).
  • rostopic pub /topic_name msg_type "msg_content": Publicar un mensaje en un tema.
  • rostopic echo /topic_name: Recuperar e imprimir el mensaje actual que se está publicando en un tema.
  • rostopic info /topic_name: Obtener información detallada sobre un tema, incluyendo el tipo de mensaje y la información de publicadores y suscriptores.
  • rostopic hz /topic_name: Mostrar la frecuencia de publicación de un tema.
  • rostopic bw /topic_name: Mostrar el uso de ancho de banda de un tema.

2.4.3 rosmsg

rosmsg es una herramienta de línea de comandos para mostrar información sobre los tipos de mensaje de ROS.

  • rosmsg show: Mostrar la descripción de un mensaje
  • rosmsg info: Mostrar información detallada sobre un mensaje
  • rosmsg list: Listar todos los tipos de mensaje
  • rosmsg md5: Mostrar la suma de comprobación MD5 de un mensaje
  • rosmsg package: Listar todos los mensajes de un paquete
  • rosmsg packages: Listar todos los paquetes que contienen mensajes

Ejemplos:

  • rosmsg list: Listar todos los tipos de mensaje del entorno ROS actual.
  • rosmsg packages: Listar todos los paquetes que contienen tipos de mensaje.
  • rosmsg package <package_name>: Listar todos los mensajes de un paquete específico.
  • rosmsg show <msg_name>: Mostrar la descripción de un mensaje específico.
  • rosmsg info <msg_name>: Similar a rosmsg show, proporciona información sobre un tipo de mensaje.
  • rosmsg md5 <msg_name>: Generar la suma MD5 de un mensaje para comprobaciones de integridad.

2.4.4 rosservice

rosservice incluye herramientas de línea de comandos para listar y consultar los servicios de ROS.

  • rosservice args: Imprimir los argumentos requeridos por un servicio
  • rosservice call: Llamar a un servicio con los argumentos proporcionados
  • rosservice find: Buscar servicios por tipo
  • rosservice info: Imprimir información sobre un servicio
  • rosservice list: Listar todos los servicios activos
  • rosservice type: Imprimir el tipo de un servicio
  • rosservice uri: Imprimir el URI de ROSRPC de un servicio

Ejemplos:

  • rosservice list: Listar todos los servicios activos.
  • rosservice args /service_name: Imprimir los argumentos requeridos por un servicio específico.
  • rosservice call /service_name "args": Llamar a un servicio con los argumentos proporcionados.
  • rosservice find <service_type>: Buscar servicios por su tipo de mensaje.
  • rosservice info /service_name: Obtener información detallada sobre un servicio.
  • rosservice type /service_name: Obtener el tipo de un servicio.
  • rosservice uri /service_name: Obtener el URI de un servicio.

2.4.5 rossrv

rossrv es una herramienta de línea de comandos para mostrar información sobre los tipos de servicio ROS. Su sintaxis es muy similar a la de rosmsg.

  • rossrv show: Mostrar la descripción de un mensaje de servicio
  • rossrv info: Mostrar información detallada sobre un mensaje de servicio
  • rossrv list: Listar todos los tipos de mensaje de servicio
  • rossrv md5: Mostrar la suma MD5 de un mensaje de servicio
  • rossrv package: Listar todos los mensajes de servicio de un paquete
  • rossrv packages: Listar todos los paquetes que contienen mensajes de servicio

Ejemplos:

  • rossrv list: Listar todos los tipos de mensaje de servicio del entorno ROS actual.
  • rossrv packages: Listar todos los paquetes que contienen mensajes de servicio.
  • rossrv package <package_name>: Listar todos los mensajes de servicio de un paquete específico.
  • rossrv show <srv_name>: Mostrar la descripción de un mensaje de servicio específico.
  • rossrv info <srv_name>: Similar a rossrv show, proporciona información sobre un tipo de mensaje de servicio.
  • rossrv md5 <srv_name>: Generar la suma MD5 de un mensaje de servicio para comprobaciones de integridad.

2.4.6 rosparam

rosparam incluye herramientas de línea de comandos para obtener y establecer parámetros ROS en el servidor de parámetros, utilizando archivos codificados en YAML.

  • rosparam set: Establecer un parámetro
  • rosparam get: Obtener un parámetro
  • rosparam load: Cargar parámetros desde un archivo externo
  • rosparam dump: Volcar parámetros a un archivo externo
  • rosparam delete: Eliminar un parámetro
  • rosparam list: Listar todos los parámetros

Ejemplos:

  • rosparam list: Listar todos los parámetros del servidor de parámetros.
  • rosparam set <param_name> <value>: Establecer un parámetro con un valor específico.
  • rosparam get <param_name>: Obtener el valor de un parámetro específico.
  • rosparam delete <param_name>: Eliminar un parámetro específico.
  • rosparam load <file_name.yaml>: Cargar parámetros desde un archivo YAML.
  • rosparam dump <file_name.yaml>: Volcar los parámetros actuales a un archivo YAML.

Estos comandos le permiten interactuar dinámicamente con los distintos componentes del ecosistema ROS, ofreciendo una forma poderosa de gestionar y monitorizar su sistema robótico basado en ROS.