¿Qué puede aportar la IA generativa a los robots?

Es un tema recurrente cada vez que se produce un avance en IA «¿Esto como se aplica para mejorar las capacidades de los robots?». El interés en mejorar los robots. Últimamente se habla mucho de modelos de lenguaje, modelos del mundo y robots. Como el modelo del mundo de la IA generativa se puede usara para revolucionar la robótica. ¿Pero que es eso de un modelo del mundo? Es una representación que realiza el agente de su entorno que le permite anticipar como sus acciones van a afectar al entorno y al propio agente.

Pero vayamos paso a paso.

El modelo interno del termostato

Si me permitís estirar el significado de «modelo del mundo» podríamos verlo en cualquier automatismo, por ejemplo un termostato que use un sensor de temperatura basado en la variación del voltaje tendría un modelo del mundo que podría resumirse como:

T = Vs * Ks + Os 

La temperatura T es igual al voltaje obtenido por el sensor Vs, corregido por una constante de proporcionalidad Ks y un valor inicial (offset) Os. 

Posteriormente compara la temperatura «observada» con una de referencia, si es menor pone la calefacción, si es mayor la quita.

Se puede ver que este modelo del mundo tiene algunas limitaciones, por ejemplo tiene un rango por arriba y por abajo a partir del cual no percibe cambios de temperatura. El sensor puede funcionar de 0 a 5v por lo que más allá de esos valores no podría ofrecer resultados.

Resumiendo, tenemos un dato percibido del mundo real a través de los sensores, un modelo que lo transforma y unas reglas internas que hacen que actúe

La navegación de la aspiradora

Veamos un caso un poquito más elaborado, el de un robot aspiradora. en este caso su modelo del mundo es más intuitivo. Tenemos un mapa de su mundo trazado por el LiDAR de la propia aspiradora. Cuando funciona de manera normal lo que haces es comparar ese mapa con lo que «ve» usando el LiDAR y así puede calcular su posición. Pero no basta con eso, hay dos problemas: muchos puntos de la casa que pueden verse idénticos a través del LiDAR. Además pueden «aparecer» cambios, mesas que se mueven, sillas, bolsas, …. Todos esos cambios alteran lo que el LiDAR percibe o lo que es lo mismo, meten ruido.

No basta solo con el LiDAR, por eso el robot no solo cuenta con los datos de sus sensores externos, también cuenta con un modelo interno que trata de replicar la ruta recorrida en el mapa. Por ejemplo puede usar tacómetros en las ruedas para ver cuánto ha girado cada una y con ello calcular la distancias recorrida y los grados de cada giro. Son datos imprecisos pero que junto con las lecturas del LiDAR permiten precisar la posición del robot. Ya que reducen el espacio donde esta puede estar y donde el LiDAR ha de buscar coincidencias.

En esta caso la representación del mundo se compone de la suma de un estado interno más lo que perciben los sensores. Con ello toma decisiones para ejecutar un programa de limpieza.

La IA generativa prepara café

A la aspiradora le puedes indicar que vaya a varias habitaciones, el robot crea un listado de tareas y las ejecuta una por una. A esto se le llama planificación de tareas. Para cosas sencillas la rebotica lo tiene resuelto, pero imagínate que ahora le pedimos a nuestro robot aspirador que nos prepare un café.

La planificación parece sencilla:

  1. Ir a la cocina
  2. Tomar la cafetera
  3. Poner café
  4. Poner agua
  5. Calentar la cafetera
  6. Esperar a que suba el café

Pero en la vida real el tema las cosas se pueden complicar. ¿Qué pasa si la cafetera no esta donde esperas? ¿si esta sucia? ¿Si tiene ya café dentro? ¿Si ese café está frió? ¿Si lleva ahí mucho tiempo?

Es difícil definir reglas para tareas con tanta variables, el mundo real es complicado y crear planes en él requiere conocer mucha cosas (cosas como saber limpiar una cafetera) . Por eso los robots han triunfado en cadenas de montaje donde el entorno es controlado y aun así llevan una enorme seta roja para pulsarla cuando algo va mal.

Sin embargo las IA generativas parecen tener un claro conocimiento de como funciona este mundo. Le puede preguntar como hacer un café y me da un listado de tareas que hay que cumplir:

Si surge algún imprevisto puede planificar como actuar:

Esto es una ventaja tremenda ya que evitar programar reglas para cada caso, le puedo preguntar a una IA generativa y ella me da los pasos a seguir. Es decir delego en ella la planificación de tareas. Permitiéndome mucha más flexibilidad. Esto se debe a que el modelo del mundo de la IA es mucho mayor, sabe como funciona el mundo sin que necesite programarlo.

Con la multimodalidad una imagen vale más que mil palabras

Si queremos usar una IA generativa existe el problema de formular la pregunta de forma correcta. En la tarea que le hemos planteado es sencillo, pero imaginaros que tenemos la imagen de una cafetera ¿Como sabe el robot si esta llena/sucia/incompleta/…? Necesita saberlo para formular el prompt. Es más sencillo si se le pudiera alimentar a la IA generativa con los datos que percibe el propio robot. Imagen, audio, IMU, … Ya tenemos modelos que soportan este tipo de datos, por ejemplo ImageBind de Meta

La imaginación es un simulador

Desde que apareció SORA, la IA capaz de generar vídeos, se ha comentado la capacidad de la IA para simular el mundo real simulando la física del mismo (aunque también es capaz de crear vídeos de delfines en bicicleta y no parece distinguir que eso no es realista…pero ese es otro tema). Esto nos daría la posibilidad de que el robot imaginara su actuación antes de realizarla viendo errores o posibles peligros antes de ejecutar el plan. Puede ser que no sea una simulación muy fiel de la realidad, pero los humanos hacemos lo mismo con la imaginación que tampoco es una replica exacta de la realidad y nos permite anticipar que va suceder.

El copiloto del dron

Ahora veamos como se integran estos dos sistemas. Volvamos a los robots, en este caso a un dron teledirigido por un humano.

En este caso el dron hace lo que mejor sabe, volar. Y no creáis que es un tarea sencilla sencilla que un dron vuele. Necesita estar manteniendo los cuatro motores a la velocidad adecuada. Ademas dos de ellos giran en una dirección y otros dos en otra para compensar el momento. Si el empuje de los motores no se compensan el dron girara sobre si mismo. Para saber todo esto el dron cuenta con un conjunto de sensores que le indican la aceleración y velocidad en cada eje o los cambios de altura. Todos ellos pasan información al controlador de vuelo que usa para configurar la velocidad de giro de los motores. A diferencia de un helicóptero las alabes de las hélices son fijas lo cual hace que la velocidad sea el único parámetro con el que puede jugar. Si como humanos intentáramos hacer la función del controlador de vuelo no seriamos capaces.

Ahora como humanos podemos dar ordenes sencillas al dron usando el mando y el ya se las apañará para realizarlas. Podemos «pilotar» el dron….aunque si nos ponemos quisquillosos no somos el piloto, somos el copiloto dándole ordenes al dron. Si el dron tiene suficiente «inteligencia» evitara hacer maniobras que lo tiren abajo o incluso lo hagan chocar. Nosotros damos las ordenes de alto nivel, pero el que controla directamente el aparato y sus motores es el controlador de vuelo. De hecho muchos drones puede tomar decisiones, como aterrizar, en caso de que pierda comunicación con el mando.

La idea es que la IA generativa funcione al mismo nivel, crear ordenes de alto nivel mientras que el robot hace lo que se le da bien, moverse si chocar con nada. Es posible que algunas funciones estén duplicadas, por ejemplo un robot puede tener un algoritmo de visión por computador muy sencillo para distinguir ciertos objetos mientras que un modelo de lenguaje multimodal podría realizar las mismas funciones.

Esta arquitectura piloto/copiloto no es tan extraña, si lo piensas la relación de tu consciencia con tu cuerpo es similar. Tu consciencia recibe los estímulos de los sensores externos (sentidos exteroceptores) y del estado interno (sentidos interoceptores) y toma decisiones que el cuerpo ejecuta. por lo general no necesita pensar cada movimiento para realizarlo, basta con ordenar a tu cuerpo «levanta el brazo», «camina», «salta»,…. Y si te crees que tienes el control sobre tu cuerpo trata de apagar una sensación de dolor, regular tu ritmo cardíaco de forma directa o controlar tu sudor. O en un caso más extremo si tu cuerpo decide perder el conocimiento poco puedes hacer para evitarlo.

Este sistema tiene la ventaja de que la parte de control del robot puede actuar en tiempo real, mientras que la IA generativa es mucho más lenta tomando decisiones. Si bien exista la idea de que la IA generativa se ocupe de todo y controle el robot a bajo nivel su tiempo de respuesta actual me hace dudar que sea practico, sobre todo si tenemos en cuenta que los algoritmos de navegación y control de los robots llevan muchos años de uso real y están muy pulidos.

Entender las órdenes humanas

Con la capacidad de entender el mundo que tiene los modelos de lenguaje podrían actuar como intermediarios entre la robótica actual y las ordenes humanas. Dar ordenes a los robots siempre ha estado más cerca de la programación que de el lenguaje natural. Sin embargo los modelos del lenguaje se la apañan muy bien siguiendo instrucciones humanas.

No todo es tan bonito

El principal problema que tiene integrar estos sistemas esta que la IA generativa aún esta lejos de tener consistencia suficiente en sus respuestas. Y una cosa es inventarse un libro cuando le preguntas por un autor y otra que decida llenar la cafetera de lejía porque confunde el contexto al tener que limpiarla. Obviamente un error en el mundo real es peligroso y caro. Si bien los robots pueden tener medidas que les impidan realizar tareas que directamente les dañe (como tirarte escaleras abajo) no es tan sencillo con instrucciones complejas que pueden terminar en dañandolos (súbete al monopatín, empuja el monopatín hacia las escaleras, no te muevas)

Hasta que no aumente la confianza en estos sistemas su uso en el mundo real queda muy limitado.

Puedes ver la versión en vídeo de este post en mi canal de Youtube:

Haz click para ver el vídeo en mi canal de Youtube