Diario de DIA4RA: batallando con ROS y los topics de AIDA

La semana pasada nos habíamos quedado a las puertas de desplegar ROS (Robotic Operating System) en AIDA (para aquellos que recién se incorporen al blog, indicar que AIDA es un robot PepperTM). No obstante, debido a diversos fallos de compilación, tuvimos que abortar el proceso y esperar. Esta semana, los compañeros del departamento de Robótica de la URJC nos han proporcionado los paquetes que faltaban para solucionar los problemas de compilación y además nos han asistido mediante conexión remota para controlar que llevábamos a buen puerto la instalación.

Por qué tiene tanta importancia ROS

Vamos a profundizar un poco más para ver donde está la gracia de desplegar ROS en el robot. Es decir, si ya trae de fábrica su propio sistema operativo (NaoQi) ¿por qué meterle otro?

Anteriormente, se había comentado que la razón de esto es el poder aplicar los modelos de Deep Learning que vayamos desarrollando al robot. Vamos a intentar ser más exactos y a la vez comprensibles: en ROS existe el concepto de topic. En pocas palabras, se utiliza para publicar la información que el robot captura a través de sus diferentes sensores (cámaras, micrófonos, bumpers…). Por ejemplo, existirá un topic concreto en el cual se publicarán las imágenes que el robot capture a través de sus cámara. Cuando nos conectamos al robot, podemos ver, mediante el comando rostopic list, la lista de topics que ahora mismo hay disponibles:

diario dia4ra robotica labs

Usando la cámara frontal

Centrémonos en uno de los primeros topics que nos van a ser de utilidad para dotar de inteligencia al robot, el topic de la cámara frontal: /pepper_robot/camera/front/image_raw. Podemos ver que el robot está continuamente publicando en ese topic mensajes que representan a los frames que captura a través de su cámara:

diario dia4ra robotica labs

Quizá el ver una torrente continuo de píxeles no nos diga mucho, afortunadamente ROS nos ofrece herramientas como rviz que permite, entre otras funcionalidades, ver lo que el robot está viendo. Si seleccionamos el topic /pepper_robot/camera/front/image_raw esto es lo que vemos:

diario dia4ra robotica labs

¿Cómo se explota el contenido publicado en un topic?

Bueno, de igual manera que es posible publicar en un topic, también es posible suscribirse al mismo. De esta manera, podemos hacer “algo” con el contenido que se vaya publicando. Por ejemplo, que cuando se publique una imagen en el topic, esta se utilice como entrada para un modelo de Deep Learning que (a efectos de pruebas) estará corriendo en uno de los ordenadores. Ese modelo tendrá que discriminar si en las imágenes que le van llegando hay caras humanas y, si las hay, determinará a quien pertenecen…

Pero, antes de seguir, tenemos que preparar algo interesante para el call for papers del Big Data Spain. El año pasado nuestro datahacker Rubén Martínez se marcó una impresionante charla sobre cómo un atacante puede engañar a un sistema de detección de malware mediante Reinforcement Learning. No obstante, lo que prepararemos para este año seguramente tenga que ver con el robot…¡así que permaneced atentos!

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *