My presentation in Aquae Campus 2016: why is Artificial Intelligence important in Robotics? (more specifically in assistive robots). The full talk (10 minutes) is here: https://youtu.be/6ord_HWW8Zk
Buenos días,
El tema de por qué es importante dotar a un robot de inteligencia.
Voy a contar mi experiencia
Hace años, comencé a trabajar en proyectos de robótica asistiva,
Objetivo: ayudar a personas con discapacidades a llevar a cabo sus actividades de la vida diaria
No se si somos conscientes de lo que nos pasa a los ingenieros cuando un familiar nos dice de arreglarle el wasap
(PAUSA)
Al final actualizamos la versión de Android, instalamos un optimizador de batería, sustituimos dos o tres apps por otras más eficientes.
Y a veces lo único que hacía falta era volver a poner el icono del wasap en su sitio.
Pues bien, en robótica asistiva pasa un poco igual. Generalmente, el ingeniero diseña un robot que haga todo lo que tendría que hacer el humano por si mismo.
Lo más importante que aprendí en los primeros años no tiene que ver con la ingeniería, si no con la medicina y es que ayudar en exceso a una persona con discapacidad provoca frustración y pérdida de capacidades residuales, es decir, lo que no se usa, se pierde.
Por tanto, el problema es diseñar un robot que haga justo lo que tiene que hacer. Ni más ni menos
Para ello, qué es un robot?
Desde un punto de vista mecánico, es sencillamente una máquina programable. La parte interesante es que en lugar de llevar a cabo una secuencia prefijada de movimientos o que tengamos que conducirla, sea capaz de tomar decisiones de forma autónoma.
Dispone de sensores/actuadores y una unidad de proceso para decidir qué hacer según lo que se percibe. La complicación está, por supuesto, en qué tipo de programa relaciona sensores y actuadores, es decir, el denominado software de control
Al inicio de la robótica, los sistemas de control seguían el paradigma denominado SPA, es decir, observas, creas un modelo del entorno, trazas un plan de acción lo más adecuado posible y sólo entonces, actuas. Alguien imagina cual es el problema con estos sistemas?
La velocidad. Además de la necesidad de modelos del entorno antes de tomar una decisión. El mundo está lleno de imprevistos ante los que hay que reaccionar rápido. Por ejemplo, si cruzando la calle se nos viene encima un autobus, nadie considera si apartarse a la derecha o a la izquierda le viene mejor para pasarse luego a comprar el pan.
Es por eso que aparece el denominado paradigma reactivo: cada combinación de los sensores, tiene asociada una respuesta automática de los actuadores. Para hacer comportamientos más complejos, se combinan varios módulos reactivos. Esto, por supuesto, no es muy eficiente, en tanto que no hay modelos ni planificación
Pero si juntamos ambas ideas aparece el paradigma híbrido de control: a bajo nivel hay comportamientos reactivos que se encargan de las decisiones rápidas, a alto nivel un planificador SPA y en medio una capa que se encarga de poner de acuerdo a ambos.
EL siguiente problema es cómo desarrollar estos módulos para un robot.
Lo normal es comunicarnos con el robot a través de la matemática, la física y la programación, que es el lenguaje que entiende. Por supuesto, esto supone un esfuerzo importante por nuestra parte.
En realidad, lo que a todos nos gustaría es que el esfuerzo lo hiciese el robot, es decir, nosotros le decimos lo que queremos que haga y el debe arreglárselas solo. Esto supone un cierto nivel de inteligencia en el robot.
En el caso de la robótica asistiva, donde cada persona es un mundo, no es viable hacer todos los cálculos y programación para cada acción que cada usuario decida hacer en un momento dado en función de su condición y su estado. Por eso en esta área es imprescindible la inteligencia.
Voy a poner 3 ejemplos muy sencillos de como se implementan técnicas de IA en robots. Un ingeniero, Braitenberg, postuló una vez que si colocabamos un conjunto de robots encima de una mesa con configuraciones hardware y software aleatorias e íbamos eliminando los que se caían de la mesa y reemplazándolos con otros más parecidos a los que aguantaban más tiempo arriba, al final tendríamos robots muy buenos en no caerse de la mesa sin haber analizado gran cosa
Asi funcionan los GA: conjunto de combinaciones, vamos probando ...
Eliminamos malas soluciones y potenciamos y mutamos las buenas hasta que alcanzamos la eficiencia deseada. Esto está muy bien para programas, donde cada vez que una solución falla no nos gastamos un dineral en comprar otro robot. Alternativamente, simuladores, como las Strandebeest de Theo Jessen. Pero el ser humano, mucho más discapacidades, es dificil de simular y, desde luego, no podemos tirarlo de una mesa, así que
Otra opción son las RNN. En este caso, podemos aprender por entrenamiento, es decir, mostramos las solución deseada para una configuración de sensores determinada y las redes se reconfiguran para asociar entrada y salida.
En este sentido, la red funciona como un laberinto en que vamos bloqueando caminos indeseables y reforzando los deseados.
Después de suficientes ejemplos, las redes no solo crean las asociaciones deseadas sino que son capaces de predecir el resultado deseado cuando nos encontramos con situaciones ligeramente distintas a las entrenadas
El problema de las redes -para los que no somos expertos- es que miramos las conexiones generadas y, la verdad, no tenemos ni idea de qué ha ocurrido dentro. Además, hace falta bastante entrenamiento para funcionar correctamente.
Por último y como alternativa, el CBR funciona como una memoria episódica, es decir, recordamos como resolvimos situaciones antiguamente para resolver nuevas.
CBR permite entrenamiento supervisado -es decir, nosotros le enseñamos al sistema cómo resolveríamos- y no supervisado, es decir, el sistema, con una medida de eficiencia- genera nuevo conocimiento.
Explicar ciclo.
¿En mi caso, para qué he usado aprendizaje en asistivo?
Para modelar como un usuario “tipo” - la media de todas las personas con las que hemos trabajado- resolvería una situación y, comparando esa media con como resuelve cada persona, determinar cuanta ayuda necesita. Asi eliminamos pérdida de capacidades residuales
Además, para que la ayuda que damos sea lo más parecida posible a como resolvería un humano y no un robot y así acepte mejor y reduzca estrés.
Como conclusión, me habría gustado decir que he aprendido la importancia de la IA, pero he aprendido es cuando se trabaja con pacientes- escuchar a los médicos.