robots útiles

Diseños funcionales en lugar de llamativos, es lo que dice Matt Fisher de la empresa Kumo Tek según comentan en la web de arde. Matt dice que la robótica debería centrarse en la construcción de robots útiles y  se deberían evitar robots complejos y contruir robots simples que resuelvan problemas. Coincidimos en la opinión, es importante construir robots que hagan cosas útiles, pero esa es la parte complicada.

En lo que no estoy totalmente de acuerdo es en la barrera de 300$ en el coste de un robot. La gente se gasta mucho más dinero en un coche, pero un coche cumple con las expectativas generadas. Un robot que promete hacer cosas y luego no cumple, no puede costar mucho. Por eso los 300$ probablemente son el límite al que debemos aspirar a construir un robot con la capacidad actual, que es más o menos lo que hace el roomba.

Por ahora sólo queda echar imaginación para encontrar utilidad y rebajar el coste lo máximo posible, las premisas fundamentales de cualquier proyecto de ingeniería.

robot modelo t

A través de barrapunto, he leído la propuesta de Tomomasa Sato de crear un robot modelo t, que siga el ejemplo del modelo t de Ford que consiguió popularizar el uso del automóvil. El problema de los robots japoneses es que a pesar de estar muy avanzados mecánicamente, no tienen una “mente” lo suficientemente avanzada para realizar tareas cotidianas. Los robots no salen de la empresas que los desarrollan inicialmente y no se consigue crear una comunidad de usuarios. Parte de la  solución sugerida por Tomomasa es promover el desarrollo de software libre, que permitiría la creación de una comunidad de software robótico. Creo que además del software, el hardware debe tener un diseño libre que permita nuevos desarrollos hardware, cómo ha demostrado la comunidad de arduino.

Pero probablemente la solución no es sólo la creación de un modelo t. El modelo t original era un coche muy barato comparado con la competencia, lo que propició que mucha gente pudiera comprarse un coche. Sucedió lo mismo con los primeros ordenadores personales. Los primeros mac eran muy baratos y asequibles a gente que antes no podía permitirselo y por eso lograron popularizarse. Pero hoy en día, ni siquiera las empresas más poderosas tienen la tecnología para crear un modelo t robótico. Mientras no llegue un algoritmo nuevo de otro Einstein o la computación cuántica u otra cosa, probablemente nuestro modelo t será inútil.

Quizá la mejor opción por ahora es crear objetos inteligentes, darle inteligencia a los objetos cotidianos. Por ejemplo un marco de fotos digital que entienda mi estado de ánimo y muestre fotografías apropiadas. Un puerta automática que se abra cuando me acerco y me salude al pasar. Los robots no tienen porqué tener forma de robot.

3D’s (dirty, dull, dangerous) y coste

Cuando se habla de las tareas a las que se va a dedicar un robot, casi siempre me he encontrado con las tareas 3D: dirty, dull, dangerous (sucias, aburridas, peligrosas). Se considera que estas son las tareas más apropiadas para la robótica por los beneficios que conllevarían: evitar muertes, errores ó simplemente realizar tareas para las que un ser humano no está físicamente capacitado.

Sin embargo, creo que esta perspectiva es más bien top-down, parte de la proposición “si tuvieras un robot inteligente, ¿en qué lo emplearías?”. Dado que todavía no existen robots inteligentes capaces de realizar eficientemente muchas de esas tareas 3D es posible que haya que cambiar la mentalidad y me propongo buscar tareas efectivas con lo que tenemos ahora. Cambiar el paradigma de top-down a bottom-up. Un ejemplo que encontre hace unos días en japón: recoger la basura mediante un camión de basura robotizado. Es una típica tarea 3D, pero que resulta muy cara comparado con el coste de contratar a una persona para hacer ese trabajo y donde un error de un robot puede salir muy caro.

Pero al final nos encontramos con la pregunta del millón, aparte de aspiradora ¿hay alguna aplicación robótica que se pueda hacer actualmente?

robótica y web2.0

¿Como afecta la web2.0 a la robótica?

Primero, conviene aclarar que aunque pienso que web2.0 es un término fundamentalmente comercial, sirve para agrupar a una segunda generación de aplicaciones web que ha surgido después de la burbuja .com. Para mí, la principal característica de estas aplicaciones es que están orientadas al usuario (mejor usabilidad gracias a ajax, aceptán la contribución de los usuarios, facilidad para compartir contenidos por medio de mashups y api’s).

Aparentemente no tienen nada que ver, pero creo que a partir de la web2.0 se está generando una nueva generación de aplicaciones (puede que se las llame web3.0, pero seguramente tenga otro nombre más original que venda más). Estas aplicaciones pueden influir en la robótica por medio de un factor técnico importante: la disponibilidad en todas partes de datos útiles para la inteligencia artificial. Algunos de los datos que se me ocurren son: relaciones personales en forma de grafo social (redes sociales), geolocalización (móviles con gps, google maps), actualización de estado e intercambio de micro información (twitter), etc.La disponibilidad de esta información, mejorará la llamada web semántica, que en cierto sentido es la evolución de la inteligencia artificial. Así que si la inteligencia artificial mejora, también deberá hacerlo la robótica.

La conexión a internet de forma inalámbrica (wifi) o móvil (umts y 3g) no es algo nuevo, pero hasta ahora no se ha aprovechado en los dos sentidos. Creo que no es sólo que el robot sea controlable desde internet, que nos muestre su estado y podamos enviarle órdenes. También tiene que producirse un intercambio de información en ambas direcciones, el robot debe tener acceso a nuevos tipos de información de su entorno y debería aprovechar otros recursos e ideas, como por ejemplo la realidad aumentada.

Algunos ejemplos sencillos. Aunque estamos lejos de que las máquinas comprendan la información en la wikipedia, se puede aprovechar la inforamación para enseñarla al usuario que la solicite. El mini experimento llamado presencebot, en el que se usa la información de la presencia on-line (a través de messenger) de su dueño para mostrar estados de ánimo del robot.

En definitiva, una de las ventajas de la web2.0 que es el acceso a la información a través de api’s publicadas por http es beneficioso para la robótica y habría que plantearse en el futuro los proyectos robóticos con esa posibilidad, para aumentar la utilidad de la robótica.

los robots necesitan sentido del tacto

Según Tandy Trower (responsable del grupo de robótica de Microsoft) en una entrevista a PCWorld, los robots necesitan mejorar el sentido del tacto. Creo que no es sólo del tacto, sino que el problema es mejorar la percepción. La percepción entendida como la tarea que consiste en modelar la realidad a partir de las lecturas de los sensores.

Por ejemplo, es relativamente sencillo escribir un algoritmo que conocidas las dimensiones de un cuarto y los objetos presentes, aspire un cuarto siguiendo una ruta óptima. Pero no es práctico en el mundo real. ¿Porqué? Porque siempre habrá calcetines tirados por el suelo, sillas descolocadas, o simplemente la iluminación y/o temperatura de una habitación hacen que cambien las lecturas de los sensores. Todo eso se puede englobar en la percepción y es por eso que los únicos robots que se venden a gran escala, los Roomba, utilicen un modelo muy sencillo pero muy efectivo, a costa de no ser óptimos. De momento cualquier robot más complejo requiere un mayor nivel de percepción y es lo más duro de la inteligencia artificial.

Tandy prevé que el hardware estará listo un unos 5 añosy que la parte dificil estará en el software. Totalmente de acuerdo, pero tampoco hay que pensar que el software salvará las carencias del hardware.

También es interesante que Trower, trabajando para microsoft, hable al final de la entrevista de “alejarse de sistemas propietarios para intercambiar ideas y software”. Parece un chiste.