Diario de DIA4RA: nuestras herramientas (Tensorflow, Google Cloud Platform y ROS)

DIA4RA herramientas Tensorflow Google Cloud Platform ROS

Cuando tienes que abordar un proyecto tan grande como DIA4RA, cuyo objetivo es el de dotar de inteligencia a un robot humanoide para que sea capaz de asistir y ayudar a pacientes con Alzheimer,  un punto clave consiste en elegir qué herramientas se van a emplear para conseguirlo.

Creemos que, para que comprendáis por completo las dimensiones del proyecto, debéis conocerlas (o, por lo menos, que os suenen). Así pues, vamos a aprovechar el diario para compartir con vosotros una serie de artículos en los que se pretende tanto discutir las elecciones realizadas como mostrar una introducción al funcionamiento de dichas herramientas.

ROS

Por un lado se necesita un framework que permita distribuir la información procedente de los múltiples sensores del robot y enviar órdenes a sus actuadores. Para conseguir esto, se decidió utilizar ROS (como dijimos en artículos anteriores, significa Robot Operating System). Puede considerarse como la solución más robusta y potente, en cuanto a las posibilidades que ofrece, cuando hay que trabajar a nivel profesional con componentes robóticos.

Además en datahack contamos con la colaboración del grupo de Robótica de la URJC de Fuenlabrada. Ellos disponen de amplia experiencia en este ámbito avalada por sus publicaciones, su contribución a proyectos Open-Source por sus continuas participaciones en congresos y torneos internacionales como Robocup, iROS, etc.

Tensorflow

Por otro lado es necesario disponer de otro framework con el que desarrollar los algoritmos que implementarán la inteligencia de AIDA (como dijimos en el primer post del diario, es nuestro robot y sus siglas significan Artificial Intelligence Datahack Ambassador). Para este propósito nos decantamos por Tensorflow debido al fuerte impulso que está recibiendo por parte de Google y de la comunidad de investigadores en Inteligencia Artificial.

Google Cloud

Además, tuvimos que decidir entre:

  1. si adquirir la infraestructura de máquinas equipadas con GPU’s potentes para entrenar todos los modelos que necesita el robot y ponerlos en producción
  2. si era preferible emplear el Cloud de alguno de los grandes proveedores, que nos permitiese desplegar el entorno necesario para entrenar algoritmos y realizar las predicciones con los modelos generados.

Hay que tener en cuenta que, cuando el robot sea plenamente funcional, deberá contar con al menos 8 modelos predictivos ejecutándose en paralelo. A eso habrá que sumar el planificador global de tareas que controlará el comportamiento de AIDA, así como los recursos necesarios para la gestión de su Sistema Operativo y de los demonios de ROS.

Nuestro compañero Alejandro se encargó de implementar una arquitectura hardware que soportase todos los requisitos tanto para el entrenamiento como para la inferencia.

En paralelo, iniciamos contactos con Nvidia y Google con el objetivo de presentarles nuestro proyecto y buscar distintas formas de colaboración. Como resultado, pasamos a formar parte tanto del programa “Inception” de Nvidia, con el que proporcionan recursos, soporte y promoción, como del programa “Google Cloud for Startups” en el que entre otros beneficios se dispone de créditos para entrenar y servir modelos empleando la infraestructura de Google Cloud Platform.

Teniendo todo esto en cuenta, la aproximación que hemos tomado ha sido la de “prototipar” el código de los algoritmos en nuestras máquinas de trabajo, que disponen de tarjetas GPU de Nvidia. Luego hemos adaptado dicho código a los requisitos de Tensorflow para que pueda ser entrenado empleando el Cloud. Esto nos da la flexibilidad de poder utilizar el mismo código tanto en una arquitectura on-premise como en la nube.

¡Seguro que ahora quieres saber más sobre cómo aplicamos estas herramientas en el proyecto!

Pues no temas, porque vamos a desarrollar todo esto un poquito más (en la sección DIA4RA para programadores, porque la cosa se pone un poco más técnica). Y es que, como puedes comprobar, el proyecto DIA4RA ya lleva un tiempo corriendo. No ha empezado, ni mucho menos, con la llegada de AIDA.

Por eso decidimos hacer esta serie de artículos “flashback” dedicados a las herramientas de programación que se emplearán en DIA4RA. Comenzaremos mostrando la estructura que deberá tener el código de Tensorflow para que pueda ser entrenado de forma distribuida y servido en el Cloud. El siguiente paso consistirá en presentar los principales componentes de ROS, para finalizar enseñando cómo integrarlos con los modelos de Tensorflow. De esta forma, os mostraremos el recorrido cuya meta es la de combinar modelos predictivos de Deep Learning con Robótica.

Y es que, una vez realizada esta introducción, empieza lo realmente divertido para nosotros, ponernos manos a la obra con la parte técnica.

Quiero leer más sobre DIA4RA


Rubén Martínez, Data engineer en datahack

Deja un comentario

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