A partir de las 128 cosas que van a desaparecer cuando los coches no necesiten conductores,  que parte de  este artículo en inglés, se me ha ocurrido una idea muy friki: las leyes de tráfico podrían estar implementadas en código. ...continue reading "código de circulación"

El sábado se anunció que google ha comprado la empresa de robótica boston dynamics, los creadores de bigdog, el perro/mula robótico más famoso de los últimos tiempos (tiene hasta una parodia en youtube).

El puzzle robótico de google

Con la compra de boston dynamics, ya son 8 las empresas de robótica que ha comprado google y todo indica que se están tomando muy en serio este campo. Andy Rubin, creador del sistema operativo Android, se ha puesto al frente de este proyecto y ha desvelado en una entrevista en el NY Times que hay oportunidades para la robótica en logística y fabricación.

Según el país, con las primeras 7 empresas que habían adquirido hasta la compra de boston dynamics, tenían tecnología para crear un robot con capacidad de trabajo manual y manipulación de objetos. Con su última compra, completan el puzzle con equilibrio y movilidad con piernas (los videos de bigdog, cheetah, wildcat etc. son espectaculares).

Además Google ya tiene tecnología para crear coches sin conductor y cuentan con Sebastian Thrun investigador de primera línea en este campo y con Peter Norvig, no tan relacionado con la robótica, pero desde luego muy destacado en inteligencia artificial.

Por otra parte, también están trabajando en el reparto de compra a domicilio (logística pura sin robots) en la zona de Sillicon Valley. Esto es importante porque le va a proporcionar a google datos obtenidos en el campo de trabajo y no dependerán de hacer desarrollos teóricos.

Parece que google está juntando todos los ingredientes para que salga algo interesante, pero seguimos hablando de un proyecto de investigación a largo plazo, según indica el propio Rubin.

La competencia

Lo importante es que la competencia de google también está invirtiendo en robótica y automatización. Amazon anunció que trabajaría en robotizar la distribución, pero con drones en vez de robots con piernas. Y hace un año que compraron kiva, una empresa dedicada a la automatización de almacenes.

Apple también anunció que invertirá dinero en una fábrica con un alto grado de automatización en los Estados Unidos  (no encuentro el link donde lo leí, pero aquí hay información). La idea es llevarse parte de la producción en China a los Estados Unidos gracias a la reducción de costes por la automatización.

Así que parece que estamos en una pequeña carrera para automatizar fábricas, líneas de montaje, almacenes y distribución de productos. Podría haber una burbujita de compra de empresas dedicadas a la robótica: la nueva empresa de Rodney Brooks, rethink robotics, que también se dedica a la fabricación, Willow garage que también tienen robots con capacidad de manipulación avanzada, o irobot (la empresa que fabrica el roomba, aunque no se dediquen a la manipulación, almacenaje, etc) son algunas candidatas.

Es complicado saber si se podrán hacer robots útiles en la práctica, pero la ventaja es que estas empresas tienen recursos para sacar adelante estos proyectos.

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.

Desde que se anunció kinect cómo proyecto natal, muchos "hackers" han estado deseando echarle mano para usarlo en proyectos no relacionados con la xbox. El nuevo dispositivo no sólo tiene potencial cómo mando para juegos sino cómo dispositivo de interacción general, en entornos interactivos e incluso en robótica. Dado que la industria de los videojuegos es de las más rentables actualmente, es lógico que microsoft haya usado kinect para contrarrestar el empuje de la wii y su wiimote.

Mehmet Akten explica en su blog las ventajas de kinect: resuelve el problema de detectar la profundidad de una escena de una manera muy económica. Existen equipos de 2000$ con sensores láser que calculan la profundidad y ofrecen un modelo 3D. También podría usarse un par de webcams en modo estereoscópico con algoritmos complejos para calcular la profundidad. Pero con kinect el problema se resuelve con un hardware sencillo y relativamente barato. Probablemente la precisión de kinect no sea la misma que los sensores lidar, pero puede ser lo suficientemente buena. ¿Cuánto bajaría el precio de un coche autónomo cómo el de google con un dispositivo cómo kinect? Habría que ver si funciona en movimiento, pero puede ser un dispositivo revolucionario.

Mientras tanto, en ROS (Robot Operating System) ya están trabajando en un driver. El primer driver open source para linux lo ha desarrollado un español y no hay más que ver la cantidad de artículos que han aparecido en adafruit, para saber que kinect va a convertirse en el heredero del wiimote. Así que en readwriteweb también piensan que es probable que aparezcan otras aplicaciones para kinect, aunque soy un poco escéptico en este sentido: no siempre resulta cómodo utilizar un interfaz gestual.

Mientras tanto le echaremos un ojo a los videos de kinect que ya están apareciendo en youtube: