Archivo de la etiqueta: robotica

los robots de google (y amazon y apple)

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.

flattr this!

robots en las nubes

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.

flattr this!

todos los robots deberían tener pulso

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.

flattr this!

locos por kinect

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:

flattr this!

google car

Inesperadamente, Google ha anunciado que está probando coches sin conductor en carreteras y condiciones de tráfico reales. La noticia se me coló en vacaciones y la he descubierto a través de un artículo de Robin Hanson en overcoming bias, que identifica la conducción automática como una de las innovaciones más importantes para construir ciudades más grandes.

Tecnología patrocinada por el DARPA

¿De dónde ha sacado Google esta tecnología? Pues de Sebastian Thrun, jefe del equipo ganador del DARPA Grand Challenge del 2005 y del segundo premio en el 2007 del que ya he hablado por aquí. Uniendo la tecnología desarrollada por Thrun y su equipo, los coches de Google Maps y los centros de datos de Google, tenemos la combinación perfecta para desarrollar coches que conducen solos.

El NY Times ha cubierto la noticia en detalle y publicado un video sobre los coches de google:

Robert Scoble grabó un video de los coches antes de que google publicara la noticia, sin saber que el coche estaba conduciendo solo:

Sensores y algoritmos probabilisticos

La clave de estos coches son los sensores y los algoritmos de procesamiento de los datos obtenidos. En el artículo del Times se pueden ver los sensores que lleva un coche: un Lidar, 4 radares convencionales, una cámara de video y un estimador de posición. El propio Sebastian Thrun ha publicado un libro sobre robótica probabilística (Probabilistic Robotics).

Furgoneta italiana

Por otra parte, una universidad italiana que también participó en el Grand Challenge han construido una furgoneta autónoma que está conduciendo desde Italia hasta China, 13.000 km sin conductor. En la furgoneta viaja un conductor que de vez en cuando toma el control del vehículo porque hay zonas de las que no se tienen mapas y le acompañan varios vehiculos de apoyo.

Cambios legales

Es inesperado que Google haya desarrollado esta tecnología, pero no es sorprendente ya que es un proyecto que encaja enla filosofía de Google, es difícil, basado en investigaciones universitarias y muy, muy ambicioso. Como producto es difícil que lo desarrolle Google directamente, seguramente le dará licencias a los fabricantes para utilizar su software. Pero bueno, es complicado que antes de 10 años veamos coches conducidos automáticamente, aunque sólo sea por el cambio de legislación necesario (los coches de Google son legales ya que siempre hay un conductor que puede tomar el control del vehículo).

flattr this!

detección de estasis

He rescatado un artículo de cuando estaba más interesado en la robótica móvil: una descripción de la lógica para la detección de estasis encontrado en robots.net. La detección de estasis consiste en añadir sensores a un robot móvil para que pueda detectar cuando se ha queda bloqueado o varado y es incapaz de desplazarse, aunque pueda mover las ruedas (o patas).

Por muchos sensores que tenga un robot para detectar obstáculos, al final siempre puede quedar atrapado de alguna forma inseperada: bancos de arena, obstáculos inesperados, esquinas de muebles, etc. Con un sensor de estasis, el robot puede tomar alguna medida paliativa (parar las ruedas para no gastar batería) o de emergencia (empujar de golpe para salir de la trampa).

Éste artículo me ha recordado el caso más famoso de robot en estasis, Spirit uno de los robots de la Nasa en Marte, que tras varios años de funcionamiento, se ha quedado varado sin poder moverse. Mark Tilden en el prólogo de Junkbots, describe el problema tal y cómo suele aparecer en la práctica: después de días desarrollando algoritmos de inteligencia artificial, calculando trayectorias óptimas y realizando mapas para conseguir un robot que limpie una habitación, llegas a casa y descubres que se ha quedado bloqueado con un calcetín.

flattr this!

¿seres reemplazables?

Una frase que ha aparecido en Microsiervos:

En la sociedad del conocimiento, todo aquel que pueda ser sustituido por una máquina merece serlo.

Paradójicamente, es posible que muchos trabajos considerados de la sociedad del conocimiento sean sustituidos por ordenadores antes que muchos trabajos físicos o mecánicos. Tal y como evoluciona la robótica y la inteligencia artificial, algunas tareas cómo la toma de decisiones sean más automatizables que ciertos trabajos físicos.

Un ejemplo sencillo sencillo de mi cosecha: aunque existen robots capaces de tocar el violin, también existen programas capaces de componer obras musicales automáticamente. Y creo que probablemente se desarrollen más rápidamente los programas de composición que los robots con capacidades fisicas, pero no es más una intuición.

flattr this!