Proyecto: Definición de intenciones
by Javier Díaz, Patricio Merino
Proyecto: Definición de intenciones
En el contexto de realizar aportes que mejoren la usabilidad del software ROS para manejo de robots proponemos un proyecto que consiste en realizar una serie de mejoras a los comandos en terminal.
A continuación se listan por orden de dificultad ascendente.
Implementar rosmsg info
El comando esperado para mostrar información acerca de los tipos de mensajes es rosmsg info
, como en el resto de comandos similares (rostopic, rosnode, etc). Sin embargo, rosmsg info
no existe, y el comando que debe usarse en su lugar es rosmsg show
, lo que rompe la consistencia con los demás comandos.
Para solucionar esto queremos permitir el uso de rosmsg info
como alias de rosmsg show
.
Valor por defecto para las repeticiones de rostopic pub
El comportamiento entregado por rostopic pub
al no indicar un valor de repeticiones o una frecuencia, actúa por defecto publicando una vez el mensaje. Sin embargo el comportamiento difiere respecto a indicar explícitamente el valor 1 para el número de repeticiones dado que este cierra la ejecución tras mandar el mensaje, pero el primero espera a ser cerrado por el usuario.
Nosotros creemos que este comportamiento no es consistente, por lo tanto queremos solucionar este problema definiendo un proceso igual para ambas opciones e implementarlo.
Mostrar lista con tópicos zombie
Cuando un tópico no tiene Publishers, o bien, no tiene Subscribers, no realiza trabajo útil más allá de reservar su tipo (los llamaremos tópicos zombie). Si queremos identificar estos tópicos debemos revisar en la lista entregada por rostopic list -v
comparando la lista de Publishers y Subscribers o con usando rostopic info
sobre cada tópico, lo que evidentemente no es práctico.
Queremos implementar una opción -z
para rostopic list
que permita encontrar los tópicos zombie.
Unificar listas de rostopic list -v
Cuando se utiliza rostopic list -v
aparecen dos listas, una que contiene los tópicos publicados y otra con los tópicos suscritos, lo que lleva a tener mucha información duplicada.
Queremos añadir una nueva opción para rostopic list
que permita visualizar ambas listas de manera unificada, mostrando el nombre del tópico, el tipo de mensaje, la cantidad de subscribers y la cantidad de publishers.
Autocompletar de rostopic pub
Cuando se utiliza el comando rostopic pub
con opciones, la función de autocompletar con tab se encuentra deshabilitada.
Nuestro objetivo es habilitar esta opción, de la misma manera en la que funciona cuando se utiliza el comando sin opciones.
Comando rostopic find
opcionalmente recursivo
Cuando el usuario busca todos los tópicos que manejan cierto tipo de mensaje, utiliza el comando rostopic find
. El problema surge cuando uno de estos tipos está contenido dentro de otro, ya que rostopic find
solo busca en el top-level de tipos de mensaje.
Para mejorar esto queremos implementar una nueva opción que permita al usuario realizar una búsqueda en los tipos de mensaje de manera que acceda al top-level y a todos los sub-tipos recursivamente.
Tipo redundante en rostopic pub
Al utilizar rostopic pub
es necesario definir el tipo de mensaje que queremos publicar, sin embargo en ROS estos tipos son estáticos respecto del nodo al que nos referimos, por lo que estamos declarando información redundante si el tópico ya había sido definido previamente.
Para solucionar esto queremos permitir que rostopic pub
sea ejecutado sin declarar el tipo de mensaje, si es que el tópico ya existe, ya que los tópicos son tipados estáticamente.
Manejar zombies al cerrar roscore
Cuando un usuario cierra roscore
, rostopic pub
y rostopic echo
siguen funcionando. Luego, si se vuelve a ejecutar roscore
los tópicos relacionados a estos comandos son inaccesibles.
Si hay tópicos zombies que están asociados a una instancia de roscore
que ha sido cerrada, estos tópicos deberían comunicarle a sus subscribers o publishers que ya no es posibles intercambiar información a través de estos tópicos .
Help para tópicos y nodos
Al utilizar los comandos rostopic info
y rosnode info
solo se recibe información técnica de las estructuras, pero el creador de estas no tiene manera de comunicar comentarios respecto a su funcionamiento.
Queremos permitir que opcionalmente se agregue un comentario con una breve explicación al definir nodos y crear tópicos, que luego apareza al usar rostopic info
y rosnode info
.
Subscribe via RSS