ROS/Tutoriales/ComprendiendoLosNodosDeRos

Introducción

Este post es una traducción del original disponible en la web de ROS. Existen una anotación final en la cual hablo sobre la aplicación de la introspección en las librerías roscpp y su uso con otros lenguajes más allá de python y C++. Es una idea sin probar que iré desarrollando a lo largo del desarrollo de mi modelo de R2D2 (1K-3A). La traducción está inacabada.

Introducción a los grafos

Nodos

Un nodo no es más que un ejecutable dentro de un paquete. Los nodos ROS usan a un cliente ROS para comunicarse con otros nodos. Los nodos pueden publicar o suscribirse a un Tema. Los nodos además proporacionar o usar un servicio.

Librerías de Clientes

La liberías de clientes ROS proporcionan nodos escritos en distintos lenguajes para comunicarse:

  • rospy – librería de clientes python
  • roscpp – librería de clientes C++

roscore

roscore es la primera cosa que deberías iniciar cuando uses ROS.

Por favor corre:

$ roscore

Verás algo similar a esto:

... logging to /.ros/log/9cf88ce4-b14d-11df-8a75-00251148e8cf/roslaunch-bvo-13039.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://bvo:33919/

SUMMARY
========

NODES

starting new master (master configured for auto start)
process[master]: started with pid [13054]
ROS_MASTER_URI=http://bvo:11311/

setting /run_id to 9cf88ce4-b14d-11df-8a75-00251148e8cf
process[rosout-1]: started with pid [13067]
started core service [/rosout]

Abre un nuevo terminal, usa rosnode para ver que hace roscore en ejecución…

Usando rosnode

rosnode muestra la información de los nodos que están actualmente en ejecución. El comandos rosnode muestra los nodos activos:

$ rosnode list

Verás:

/rosout

Este debería mostrarte unicamente el nodo rosout. Este siempre está ejecutándose.

El comando rosnode info devuelve la información acerca de un determinado nodo.

$ rosnode info /rosout

Este nos devolverá alguna información sobre rosout, como el hecho de que este publica en /rosout_agg.

--------------------------------------------------------------------------------
Node [/rosout]

Publications:
 * /rosout_agg [roslib/Log]

Subscriptions:
 * /clock [unknown type]
 * /rosout [unknown type]

Services:
 * /rosout/set_logger_level
 * /rosout/get_loggers

contacting node http://foo.local:54614/ ...
Pid: 5092

Ahora, vamos a ver más nodos, utilizando el comando rosrun tener otro nodo.

Usando rosrun

rosrun te permite usar el nombre de un paquete para iniciar un nodo con ese paquete (sin necesidad de especificar la ruta).

Usa:

$ rosrun [package_name] [node_name]

Ahora podemos ejecutar turtlesim_node en el paquete turtlesim, en un nuevo terminal:

$ rosrun turtlesim turtlesim_node

Veremos una ventana como la siguiente:

[…]

Resumen

[…]

Fuente: http://www.ros.org/wiki/ROS/Tutorials/UnderstandingNodes

Anuncios
Deja un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: