Creo que a casi todos los camaradas del metal nos gustan los robots. Y aunque todavía no tenemos robots sirviéndonos la comida, cada vez hay una sensación más generalizada de que la invasión metálica está a punto de llegar. Supongo que será por las noticias sobre los proyectos robóticos de google y amazon (empresones dedicados a ganar dinero) y el uso de drones por parte del ejército americano (la policía del mundo).

Y aquí es donde encaja Robot futures un libro de Illah Reza Nourbakhsh en el que describe unas cuántas predicciones sobre la robótica a corto y medio plazo y el posible impacto en la sociedad. Recomendable para todos los interesados en el campo, ya que todos los puntos de debate que plantea son reales aunque no creo que estemos de acuerdo sobre las predicciones que hace Illah. Hace una extrapolación de las investigaciones actuales al futuro: desde la extensión de la analítica web al mundo físico (cámaras y sensores que nos monitorizan por todas partes) hasta el futuro de la telepresencia (en modalidad sobrecargada, cuando una persona pueda controlar varios cuerpos al mismo tiempo).

Una idea que me ha gustado y que presenta al inicio del libro es en que los robots no tendrán necesariamente forma física humanoide. La idea que se ha comentado por aquí alguna vez, es que los robots surgirán de la conexión entre internet, la inteligencia artificial y el mundo físico, por lo que para muchas aplicaciones y tareas no necesitaremos robots de forma humanoide. Y un corolario interesante es que los robots tendrán ojos en todas partes y se adelantarán a nuestras acciones. Hace unos días microsoft presentaba un ascensor inteligente que intenta predecir la planta a la que queremos ir. Si la cámara del ascensor se comunica con el sistema de control de puertas, tendremos un sistema mágico que nos abre la puerta antes de que entremos en casa.  Todo esto se puede construir ya aunque el grado de fiabilidad todavía no es el adecuado (es posible que le abra la puerta a cualquiera que pase por delante).

Las escenas que nos plantea Nourbakhsh plantean un debate que empieza existir, por lo que me ha parecido un libro interesante. Y además inspirador, creo que aprovecharé algunas ideas para ir escribiendo artículos en los próximos meses.

Hace unos días ha sido el WWDC de Apple. Me han llegado varias referencias a  una empresa que se dedica a la robótica y la inteligencia artificial llamada anki. El artículo más completo es del spectrum del ieee. También han recibido inversión de Marc Andressen uno de los inversores emblemáticos del mundillo de Silicon Valley.

Después de ver el video de presentación, me parece que tienen un buen software pero creo que no han encontrado la aplicación apropiada. A fin de cuentas, lo que han enseñado no es más que una especie de "escalextric" futurista.

No quiero quitarles méritos. Ese escalextric está cargado de tecnología, pero me da la sensación de que su objetivo es conseguir dinero para hacer algo más serio.

La idea en sí no es mala del todo. Hay una tendencia creciente a integrar el juego virtual con interfaces físicas gracias a tablets y móviles. Es una tendencia que me parece que puede dar ideas muy buenas para juegos y aplicaciones reales. En este artículo de El mundo hay algunos ejemplos más.

Pero en el caso de anki, lo van a tener complicado. Cómo juego al utilizar un interfaz físico, está un poco limitado en comparación con los juegos software. Es cómo comparar un escalextric con un juego de fórmula 1 de ordenador. No creo que la gente se gaste el dinero en unos coches más inteligentes y manejables si al final en casa sólo te cabe una pista con un 8. Aunque sí es verdad que el hecho de añadir disparos y explosiones, puede hacer que la diversión se multiplique respecto a un escalextric normal.

A pesar de que no sé si triunfará éste producto, sí creo que tienen unos algoritmos potentes y probablemente podrán hacer cosas más interesantes relacionadas con la robótica. El problema de la robótica actual es que o bien necesita aparatos muy caros que todavía son prototipos en laboratorios (tipo Google Car) o no son lo suficientemente potentes para hacer tareas complejas (Roomba). A ver si anki consigue las dos cosas: dispositivos baratos y aplicaciones potentes.

2

Nada que ver con UAV's, la última tendencia en robótica consiste en utilizar computación en nube para hacer parte de los cálculos y operaciones de un robot. Siguiendo un artículo de microsiervos, he llegado a una explicación muy buena en el ieee automaton. La idea es utilizar computación en nube para realizar los cálculos más pesados y complejos, utilizando tanto la potencia como los datos masivos almacenados en servidores remotos. Cuando un robot se encuentre con un objeto desconocido, podría enviar una imagen del mismo a un servidor que identificará el objeto comparándolo con miles de modelos en su base de datos y recibir una descripción, un modelo 3d, etc. De una manera similar a google goggles y google translate que ya funcionan de esta manera.

¿Dónde encaja este tipo de computación en la arquitectura de un robot? En la parte de planificación, que puede recurrir a la nube para procesar información pesada o desconocida. Pero la parte reactiva también podría beneficiarse de la conexión a internet. ¿Qué tal una biblioteca de comportamientos reactivos? Es lo que en microsiervos comparan con la escena de Matrix de aprender "kung fu". Descargando los comportamientos necesarios, un robot siempre podrá activar los más adecuados a su entorno y a la tarea que esté realizando. Un ejemplo sencillo: un siguelineas puede convertirse en luchador de sumo, descargando de internet  los comportamientos apropiados para cada tarea y activándolos cuando los necesite.

Hay algunos peligros en este planteamiento ¿Qué pasa cuando el robot se queda sin conexión a internet? El sistema debería funcionar correctamente y siempre debería tener comportamientos adecuados para seguir funcionando sin peligro de que el robot termine descontrolado. Por el lado de la seguridad informática, habrá que evitar que se puedan cargar comportamientos peligrosos como "matar a todos los humanos".

Es un paradigma prometedor, hablan incluso de una "app store" para robots, en la que se podrán comprar aplicaciones para nuestro robot. Pero es más prometedora la idea de aplicar esta nube a electrodomésticos y aparatos inteligentes conectados a internet, enlazando con el concepto de el internet de las cosas.

2

Me encontré con ésta enigmática frase en un tweet de guibot:

All robots should have a heartbeat

Cómo guibot es un experimentador portugués que trabaja en proyectos más bien artísticos, pensé que se trataba de algo más poético. Pero no, el tweet lleva a concurrency.cc que hablan de una idea práctica:

[...] tenemos el proceso hearbeat(). Éste proceso hace que el LED del arduino luzca intermitentemente, haciéndonos saber que no se ha estropeado nada (todos los robots deberían tener pulso [heartbeat]).

No sé si el hearbeat es un concepto formal, pero es muy útil: saber de un vistazo que un robot (u otro dispositivo) sigue funcionando. Cómo un robot es también un ordenador, no está libre de colgarse, bloquearse o quedarse en un bucle infinito. Por medio del heartbeat el robot nos informa de que sigue funcionando, sobretodo en algunos momentos en que parece bloqueado aunque no lo está.

Muchos aparatos tienen indicaciones visuales de este tipo: los leds de encendido y disco duro de un ordenador o en los teléfonos móviles. Por otra parte, aunque no sé que tal funcionarán, creo que podrían usarse indicaciones no visuales, de tipo sonoro, cómo sonidos periódicos o zumbidos, o mecánico, cómo el movimiento de alguna parte del robot.

En mi caso siempre he metido un heartbeat (aunque no sabía que lo estaba haciendo). En la lámpara termómetro de phybo para saber que la lámpara sigue en marcha, la luz está pulsando y no es constante. Con arduino, siempre intento que el led de la tarjeta pulse un par de veces al arrancar (en el método setup) y luego periódicamente al inicio del bucle loop meto una función de parpadeo. Así estoy seguro de que por lo menos el procesador no está bloqueado.

En el Georgia Institute of Technology han desarrollado un robot que es capaz de engañar. Utiliza un algoritmo pensado para engañar tanto a personas como a otros robots y se ejecuta en dos fases. En primer lugar el robot detecta si en la situación actual el robot debe o no engañar y en caso positivo, activa un comportamiento adecuado para engañar al adversario. Para tomar la decisión de engañar se utiliza la teoría de juegos, se evalúa si el oponente (humano ó robot) está en conflicto con el robot y si el engaño va a ser beneficioso para el robot.

Además los autores creen que es interesante evaluar algunas situaciones en las que puede ser aceptable utilizar algoritmos para engañar a humanos:

  • Robots militares: el uso de estrategias para engañar al enemigo tiene ventajas evidentes.
  • Situaciones de rescate: puede ser útil engañar a las víctimas para evitar el pánico de las personas rescatadas.
  • Robots sociales: aunque no es probable que este tipo de robots utilice el engaño, detectar las situaciones dónde es beneficioso engañar puede mejorar la interacción social de un robot.

Construir robots capaces de engañar tiene implicaciones éticas importantes. Con esta investigación se pretende iniciar el debate antes de que se construyan robots militares reales capaces de engañar. Sólo añadir que uno de los investigadores es Ronald C. Arkin, autor de un libro clásico de robótica, Behavior-Based Robotics.

Y gracias a Sphinx de linuxdroids por enviarme el enlace!