Como ya sabréis, ando metido en un sarao de iniciativa de acercamiento del mundo de la robótica y el DIY en las instalaciones que tiene LaCatedralInnova en MadridOnRails.
Entre los proyectos que tenemos en mente (básicamente relacionados con Arduino, cloud computing e impresoras 3D), os hablaba el otro día del robot QBO, un robot open source (tanto hardware como software), desarrollado en españa, y que presentaba aún algunas limitaciones, como era el hecho de no tener bien calibrado un sistema que le permitiera autocargarse cuando su nivel de batería estuviese bajo (volviendo al adaptador de carga que estaría situado en algún punto conocido de la casa), y la posibilidad de crear una red neuronal que interconectara vía WIFI los robots para que éstos pudieran aprender en colectivo, y no por separado.
Pues bien, la casualidad quiso que antes que nos pusiéramos manos a la obra, ya haya un proyecto en desarrollo sobre ello, llamado RoboEarth Cloud Engine o Rapyuta, open source, que engloba el trabajo de investigadores de cinco universidades europeas, y que aparentemente se han encontrado con los mismos obstáculos que nosotros.
Existen básicamente dos grandes quebraderos de cabeza en la actualidad en referencia a la creación de robots. Por un lado, está el hecho de que el hardware, aunque se ha democratizado, sigue valiendo lo suyo, lo que a la larga acaba limitando las posibilidades del proyecto. Y por otro, que las necesidades de un robot para llevar a cabo procesos cada vez más elevados, tienden a exponenciarse, lo que hace que tarde o temprano el dinero sea una trabaja (más capacidad de proceso > mayor potencia > más hardware > más dinero).
En esto debieron pensar los chicos de Rapyuta cuando se sentaron alrededor de varias mesas apiladas (creo que este tipo de mobiliario son comunes a todos los centros de innovación tecnológica), y vieron oportuno empezar con el desarrollo de una nube, esta vez no para humanos o servicios, sino para máquinas (M2M).
Se podría definir Rapyuta como un gran cerebro distribuido, que se nutrirá de la información suministrada por cada robot conectado en la nube, de tal forma que parte de los procesos básicos de cualquier autómata (localización, movimiento, estabilización,…) serán calculados en la nube y devueltos. Gracias a ello, la capacidad de procesamiento de un robot no tiene que ser tan elevada (hemos visto arquitecturas semejas en servicios en la nube como Gaikai, una plataforma de videojuegos que fue comprada por Sony y veremos próximamente en la PS4, o en el mismo Firefox OS o Chrome OS, que divide el trabajo entre la nube y el dispositivo al estar enfocado a navegadores, y no a un sistema operativo nativo).
Y el segundo punto a tener en cuenta, y el que quizás abre un discurso aún más interesante, es que toda esa información podría ser usada por otros robots, de tal forma que en esencia complementarían sus experiencias y aprenderían del ensayo error en colectivo, y no de forma individual. De esta manera, tendríamos robots que nada más ser creados (o desenvalados), podrían conectarse a la nube para «aprender» de los errores y aciertos de otros robots, y evitar caer en lo mismo.
El modelo de cloud sería PaaS (platform as a service), escalable, lo que nos permitiría desarrollar acciones sencillas y poco a poco aumentar la complejidad de las mismas con el aprendizaje colectivo. Además hablamos de una plataforma open source, abierta a cualquier tipo de robot, lo que en futuro podría llevar a la integración de varias máquinas para complementar funciones avanzadas de intercomunicación (robots de cocina que aprenden hábitos de sus dueños para tener la comida servida, mapeado de un robot de limpieza usado por cualquier otro dispositivo,…).
Como bien dice en el vídeo que acompaña estas palabras, abarataría los costes de producción de robots, y a la vez ofrecería un producto final más «inteligente».