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.
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.
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.
Además, tuvimos que decidir entre:
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.
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.
Rubén Martínez, Data engineer en datahack
El proyecto empresarial de DATAHACK CONSULTING SL., denominado “DESARROLLO DE INTELIGENCIA ARTIFICIAL EN ROBOTS APLICADOS AL TRATAMIENTO DEL ALZHEIMER Y LA DEMENCIA” y número de expediente 00104725 / SNEO-20171211 ha sido subvencionado por el CENTRO PARA EL DESARROLLO TECNOLÓGICO INDUSTRIAL (CDTI)
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.
Antonio Rodríguez Jurado (Data Scientist en Sum Mind y antiguo alumno del máster de Big Data Analytics de datahack) nos presentó en este evento de datahack Madrid su sistema de predicción de estacionamiento en "VADO PERMANENTE". Para llevarlo a cabo, aplicó los conocimientos que aprendió en nuestro máster.
En la charla, nos mostró los componentes principales del sistema. Además, explicó cómo entrenó una Red Neuronal con imágenes de ocupación del VADO para ejecutarlo en una Raspberry Pi que predice el estacionamiento irregular. Tras esto, informa de esa situación mediante un bot.
Luego nos mostró una demo en la que ejecutó el modelo con imágenes guardadas. Así, pudimos ver la interfaz y cómo se comporta. Finalmente, Antonio habló de las posibilidades de su sistema y respondió a todas nuestras preguntas.
Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.