Roomba, Scooba, Dirt dog & Verro

lunes, 3 de septiembre de 2007


Roomba, Scooba, Dirt dog, Verro son cuatro de los robots de la empresa iRobot encargados de la limpieza de superficies. En concreto Roomba se encarga de aspirar el suelo y Scooba de fregarlo, mientras que Dirt dog esta más orientado a limpiar suelos de industrias y Verro de la limpieza del fondo de la piscina. Hacen todo el trabajo ellos solitos y según leo en Xataka parece ser que lo hacen bastante bien. ¿Quien no querría tener uno de estos?

Dejando el tema de que voy a terminar por comprarme uno de estos cuando me toca limpiar el suelo, lo que me ha llamado la atención de estos robots es que usan inteligencia artificial, lo cual es una excusa perfecta para hacer marketing. Pero no hay que olvidar que son robots y que su éxito también se debe de la parte robótica, de la que no voy a hablar porque mis conocimientos no son tan amplios.

¿y donde esta la parte inteligente de estos robots?: ¿en qué saben volver a la base a recargarse? , ¿que saben que zonas están más sucias?, ¿que sabe no caerse por las escaleras y no chocar con las paredes? ¿en que esquivan muebles? pues nada de eso, todas esas cosas se hacen con sensores y algoritmos "sencillos", la inteligencia está en ser capaz de abarcar toda una superficie para limpiarla (un pequeño matiz, Verro limpia también las paredes de la piscina, pero en el fondo esto no es más que una superficie, es decir, un plano, igual que el suelo). Si bien es cierto que se esta investigando mucho en el tema de recorrer edificios y crear mapas, en este caso el robot se basa en un algoritmo que intenta abarcar una superficie. Y cómo se hace un algoritmo capaz de recorrer una superficie, pues si esta es cuadrada es bastante fácil, pero la cosa se complica si la superficie no es cuadrada y encima hay muebles de por medio, paredes, escaleras, etc...

Para resolver este problema se utiliza la programación genética, que no es más que un programa haciendo otros "programas" para resolver un problema. En primer lugar se definen una serie de funciones que la programación genética puede utilizar pare resolver el problema, en el caso de estos robots se podrían usar las siguientes funciones:

  • de movimiento:
    • avanzar X
    • retroceder X
    • girar X grados

  • de los sensores:
    • hay un obstáculo delante, a la derecha, izquierda, etc
    • hay un hueco delante, a la derecha, izquierda, etc
    • cuanta suciedad hay delante, detras, etc

  • condicionales:
    • si función A es [operador condicional > < >= <= =] funcion B entonces funcion C, sino función D

  • bucles:
    • repetir función A X veces
Y otras muchas que se les pudieron ocurrir a los ingenieros. Una vez definidas las funciones se preparan los escenarios, es decir , se crean habitaciones con diferentes elementos de la vida cotidiana donde el robot va a tener que limpiar. Por supuesto todos estos escenarios son simulados y en ello se se ha colocado basura que el robot debe limpiar.

Con esto ya tenemos nuestro robot listo para aprender a limpiar, o más bien a recorrer una habitación sin dejar un solo rincón. La programación genética se encargará de crear programas de forma aleatoria y de evaluarlos en los escenarios que hemos preparado, con ello se hará una idea cuales son los programas que mejor limpian y a partir de estos programas se crearan programas nuevos que seguramente sean más complejos que los primeros y más eficientes en su tarea.

Evidentemente esto no es coser y cantar y seguramente haya hecho falta probar con diferentes funciones y con un gran número de escenarios muy variados para conseguir un producto que pueda llegar al consumidor. Además el programa final, el mejor que haya conseguido la programación genética después de un buen rato funcionando, habrá sido evaluado y retocado por un humano para simplificarlo y corregir los defectos observados.

Tenéis más información de los cuatro robots en la sección de cleaning robots de iRobot, junto con algunos vídeos.

...y hasta se pueden programar para que limpien la casa cuando no estamos, son una maravilla.

0 comentarios: