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 nodorosnode list: Listar todos los nodos activosrosnode info: Imprimir información sobre un nodorosnode machine: Listar los nodos que se ejecutan en una máquina específicarosnode kill: Terminar un nodorosnode 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 temarostopic delay: Mostrar el retardo de un tema con cabecerarostopic echo: Imprimir mensajes por pantallarostopic find: Buscar temas por tiporostopic hz: Mostrar la frecuencia de publicación de un temarostopic info: Mostrar información sobre un temarostopic list: Listar todos los temas activosrostopic pub: Publicar datos en un temarostopic type: Imprimir el tipo de un tema
Ejemplos:
rostopic list(-v): Imprime los nombres de los temas en ejecución (con-vse 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 mensajerosmsg info: Mostrar información detallada sobre un mensajerosmsg list: Listar todos los tipos de mensajerosmsg md5: Mostrar la suma de comprobación MD5 de un mensajerosmsg package: Listar todos los mensajes de un paqueterosmsg 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 arosmsg 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 serviciorosservice call: Llamar a un servicio con los argumentos proporcionadosrosservice find: Buscar servicios por tiporosservice info: Imprimir información sobre un serviciorosservice list: Listar todos los servicios activosrosservice type: Imprimir el tipo de un serviciorosservice 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 serviciorossrv info: Mostrar información detallada sobre un mensaje de serviciorossrv list: Listar todos los tipos de mensaje de serviciorossrv md5: Mostrar la suma MD5 de un mensaje de serviciorossrv package: Listar todos los mensajes de servicio de un paqueterossrv 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 arossrv 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ámetrorosparam get: Obtener un parámetrorosparam load: Cargar parámetros desde un archivo externorosparam dump: Volcar parámetros a un archivo externorosparam delete: Eliminar un parámetrorosparam 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.