Aprendizaje ROS (3): proceso de comunicación de mensajes

     El nodo principal gestiona la información del nodo y cada nodo se conecta y se comunica con otros nodos según sea necesario. Aquí, echemos un vistazo al proceso de los nodos maestros, nodos, temas, servicios e información de acción más importantes.

1. Ejecute el nodo principal

     Entre la comunicación de mensajes entre nodos, el nodo maestro que gestiona la información de conexión es un elemento necesario que debe ejecutarse primero para poder utilizar ROS. El nodo maestro ROS usa el comando roscore para ejecutarse y usa XMLRPC para ejecutar el servidor. Para la conexión entre el nodo y el nodo, el nodo maestro registrará el nombre, tema, servicio, nombre de acción, tipo de mensaje, dirección URI y puerto del nodo, y notificará a otros nodos de esta información cuando se le solicite.

2. Ejecute el nodo de suscriptor

     Los nodos de suscriptor usan los comandos rosrun o roslaunch para ejecutarse. El nodo de suscriptor registra su nombre de nodo de suscriptor, nombre de tema, tipo de mensaje, dirección URI y puerto con el nodo maestro en tiempo de ejecución. El nodo maestro y el nodo se comunican mediante XMLRPC.

 

Tres. Ejecute el nodo del editor

     El nodo del editor (similar al nodo del suscriptor) se ejecuta mediante el comando rosrun o roslaunch. El nodo del editor registra el nombre del nodo del editor, el nombre del tema, el tipo de mensaje, la dirección URI y el puerto con el nodo principal. El nodo principal y el nodo se comunican mediante XMLRPC.

Cuatro. Notificar al editor de la información.

     El nodo maestro envía al nodo del suscriptor información como el nombre, el nombre del tema, el tipo de mensaje, la dirección URI y el puerto del editor al que el suscriptor desea acceder. El nodo maestro y el nodo se comunican mediante XMLRPC.

Cinco. Solicitud de conexión del nodo de suscriptor

     El nodo suscriptor solicita una conexión directa al nodo editor de acuerdo con la información del editor recibida desde el nodo maestro. En este caso, la información que se enviará incluye el nombre del nodo del suscriptor, el nombre del tema y el tipo de mensaje. El nodo editor y el nodo suscriptor se comunican mediante XMLRPC.

 

6. La respuesta de conexión del nodo editor.

     El nodo editor envía la dirección URI y el puerto del servidor TCP como respuesta de conexión al nodo suscriptor. El nodo editor y el nodo suscriptor se comunican mediante XMLRPC.

Seven. Conexión TCPROS

     El nodo suscriptor utiliza TCPROS para crear un cliente correspondiente al nodo editor y se conecta directamente al nodo editor. La comunicación entre nodos utiliza un método TCP / IP llamado TCPROS.

 

8. Envía un mensaje

     El nodo editor envía un mensaje al nodo suscriptor. La comunicación entre nodos utiliza un método TCP / IP llamado TCPROS.

 9. Solicitud de servicio y respuesta

     El contenido anterior es equivalente a un tema en la comunicación de mensajes. La comunicación del mensaje de tema es que mientras el editor o suscriptor no se detenga, continuará publicando y suscribiéndose. Los servicios se dividen en los dos tipos siguientes.

     1. Cliente de servicio: espere una respuesta después de solicitar el servicio

     2. Servidor de servicio: después de recibir la solicitud de servicio, ejecute la tarea especificada y envíe la respuesta.

     La conexión entre el servidor de servicios y el cliente es la misma que la conexión TCPROS entre el editor y el suscriptor mencionado anteriormente, pero a diferencia del tema, el servicio solo se conecta una vez y se desconecta entre sí después de ejecutar la solicitud y la respuesta. Si es necesario, debe volver a conectarse.

 

10. El objetivo, el resultado y la retroalimentación de la acción (acción)

     En la forma de ejecución, parece que solo hay un vínculo de retroalimentación a mitad de camino entre la solicitud de servicio (objetivo) y la respuesta (resultado), pero la operación real es la misma que el tema. De hecho, si usa el comando rostopic para ver temas, puede ver cinco temas, incluido el objetivo, el estado, la cancelación, el resultado y los comentarios de la acción. La conexión entre el servidor de acciones y el cliente es la misma que la conexión TCPROS en el editor y la suscripción descritas anteriormente, pero algunos usos son ligeramente diferentes. Por ejemplo, si el cliente de acción envía un comando de cancelación o el servidor envía un valor de resultado, la conexión se interrumpirá y así sucesivamente.

En el contenido anterior, probamos el funcionamiento de ROS con turtlesim. En esta prueba, se utilizan el nodo principal y dos nodos, y entre los dos nodos, los mensajes de traducción y rotación se transmiten utilizando el tema / turtle1 / cmd_vel

Regala tortugas virtuales. Si lo piensa de acuerdo con el concepto ROS descrito anteriormente, se puede expresar en la siguiente figura. Repasemos la prueba de funcionamiento de ROS anterior y pensemos en ella nuevamente con el concepto de ROS.

Supongo que te gusta

Origin blog.csdn.net/kh815/article/details/88130015
Recomendado
Clasificación