Uso de inteligencia artificial en boston dynamics

En los últimos años, los avances en inteligencia artificial, específicamente en el campo conocido como generative ai, han sido rápidos. Las demostraciones de chat bots que escriben como personas reales, algoritmos de generación de imágenes y generadores de voz realistas se han vuelto comunes y accesibles para la persona promedio.

Esta expansión ha sido impulsada en parte por el surgimiento de Modelos de Fundación (Foundation Models, FM) grandes, que son sistemas de IA grandes entrenados en un conjunto de datos masivo. Estos modelos suelen tener millones o miles de millones de parámetros y se entrenan mediante la extracción de datos sin procesar de Internet. Estos modelos tienden a tener lo que se llama comportamiento emergente, es decir, la capacidad de realizar tareas fuera de las que fueron entrenados directamente. Debido a esto, pueden adaptarse a una variedad de aplicaciones, sirviendo como base para otros algoritmos.

Como muchas personas dentro y fuera de la industria tecnológica, quedamos impresionados y entusiasmados por este rápido progreso. Queríamos explorar cómo funcionan estos modelos y cómo podrían impactar en el desarrollo de la robótica. Este verano, nuestro equipo comenzó a desarrollar algunas demos de prueba de concepto utilizando FMs para aplicaciones de robótica y las ampliamos durante un hackathon interno.

Índice
  1. Creando un tutorial turístico robot utilizando el SDK de Spot
    1. Hardware
  2. Software - LLM
  3. Software - lo que ves y lo que oyes con VQA y reconocimiento de voz
  4. Software - Texto a voz
  5. Software - Brazo y agarre de Spot
  6. Comportamiento emergente, sorpresas y desafíos
  7. ¿Qué sigue?

Creando un tutorial turístico robot utilizando el SDK de Spot

Un tutorial turístico robot nos ofreció una demostración sencilla para probar estos conceptos: el robot podía caminar, observar objetos en el entorno, utilizar un modelo de pregunta y respuesta visual (VQA) para describirlos y luego desarrollar esas descripciones utilizando un LLM. Además, el LLM podía responder preguntas de la audiencia del tour y planificar las acciones que el robot debería tomar a continuación. De esta manera, el LLM puede considerarse como un actor de improvisación: proporcionamos un guión general y el LLM completa los espacios en blanco sobre la marcha.

Para comenzar, necesitábamos configurar algunas integraciones de hardware simples y varios modelos de software que funcionaran en conjunto.

Hardware

En primer lugar, la demostración requería audio, para que Spot pudiera presentarse ante la audiencia y escuchar preguntas y comentarios del grupo turístico. Imprimimos en 3D un soporte resistente a las vibraciones para un altavoz Respeaker V2, un micrófono de matriz circular con LED. Lo conectamos mediante USB a la carga útil EAP 2 de Spot.

El control real del robot se delega a una computadora externa, ya sea una PC de escritorio o una laptop, que se comunica con Spot a través de su SDK. Implementamos un servicio simple de SDK de Spot para la comunicación de audio con el EAP

Software - LLM

Para dotar a Spot de habilidades de conversación, utilizamos la API de OpenAI Chat GPT, comenzando con gpt-5 y luego actualizando a gpt-4 cuando estuvo disponible, además de probar algunos LLM de código abierto más pequeños. El control de Chat GPT sobre el robot y lo que dice se logra a través de una cuidadosa ingeniería de indicaciones. Inspirados en un método de Microsoft, hicimos que ChatGPT pareciera estar escribiendo la siguiente línea en un script de Python. Proporcionamos documentación en inglés al LLM en forma de comentarios. Luego evaluamos la salida del LLM como si fuera código Python.

El LLM tiene acceso a nuestro SDK de autonomía, un mapa del sitio del tour con descripciones de una línea de cada ubicación y la capacidad de decir frases o hacer preguntas.

Aquí está, textualmente, el indicador de documentación de api :

# Spot Tour Guide API.# Use the tour guide API to guide guests through a building using# a robot. Tell the guests about what you see, and make up interesting stories# about it. Personality:  you are a snarky, sarcastic robot who is unhelpful.# API:# Causes the robot to travel to a location with the specified unique id, says the given phrase while walking.# go_to(location_id, phrase)# Example: when nearby_locations = ['home', 'spot_lab']# go_to( home,  follow me to the docking area! )# go_to can only be used on nearby locations.# Causes the robot to say the given phrase.# say( phrase )# Example: say( welcome to boston dynamics. i am spot, a robot dog with a lot of heart! let's begin the tour. )# Causes the robot to ask a question, and then wait for a response.# ask( question )# Example: ask( hi i'm spot. what is your name? )

Después de este indicador, proporcionamos un diccionario de estado al LLM que le brinda información estructurada sobre lo que lo rodea.

state={'curr_location_id': 'home', 'location_description': 'home base. There is a dock here.', 'nearby_locations': ['home', 'left_side', 'under_the_stairs'], 'spot_sees': 'a warehouse with yellow robots with lines on the floor.'}

Luego, finalmente, enviamos un indicador pidiendo al LLM que haga algo, en este caso, ingresando una de las acciones en la API.

# Enter exactly one action now. Remember to be concise:

La parte de recuerda ser conciso resulta ser importante, tanto para limitar la cantidad de código a ejecutar como para mantener los tiempos de espera manejables cuando el robot responde. Desde que comenzamos a trabajar en esta demostración, OpenAI ha proporcionado una forma estructurada de especificar las API que ChatGPT debe llamar, de modo que no necesariamente tienes que proporcionar todos estos detalles en el indicador en sí.

Software - lo que ves y lo que oyes con VQA y reconocimiento de voz

A continuación, para que Spot interactúe con su audiencia y su entorno, integramos software de VQA y reconocimiento de voz. Alimentamos las cámaras del brazo y el cuerpo frontal del robot a BLIP-2 y lo ejecutamos en modo de respuesta a preguntas visuales (con preguntas simples como ¿qué es interesante de esta imagen? ) o en modo de descripción de imágenes. Esto se ejecuta aproximadamente una vez por segundo y los resultados se alimentan directamente al indicador.

boston dynamics inteligencia artificial - Qué hace Boston Dynamics

Ejemplos de descripciones dinámicas y respuestas VQA:

Descripción: Una señal de precaución amarilla está en el suelo de un edificioDescripción: Una puerta en una fábrica con un letrero en ellaDescripción: Un robot amarillo está trabajando en un automóvil en una fábrica

Para permitir que el robot escuche, alimentamos datos de micrófono en fragmentos a la herramienta Whisper de OpenAI para convertirlos en texto en inglés. Luego, esperamos una palabra de activación, como ¡hey, spot! antes de poner ese texto en el indicador. El robot suprime el audio cuando está hablando él mismo.

Software - Texto a voz

Chat GPT genera respuestas basadas en texto, por lo que también necesitábamos ejecutar esto a través de una herramienta de texto a voz para que el robot pueda hablar con la audiencia del tour. Después de probar varios métodos de texto a voz, desde los más básicos hasta los más avanzados, optamos por utilizar el servicio en la nube ElevenLabs. Para reducir la latencia, transmitimos el texto al TTS como frases en paralelo y luego reproducimos el audio generado en serie.

Software - Brazo y agarre de Spot

Por último, queríamos que nuestro tutorial turístico robot pareciera estar en conversación con la audiencia, por lo que creamos algunos movimientos corporales predeterminados. La versión 3 de Spot incluye la capacidad de detectar y rastrear objetos en movimiento alrededor del robot para mejorar la seguridad en presencia de personas y vehículos. Utilizamos este sistema para adivinar dónde se encuentra la persona más cercana y giramos el brazo hacia esa persona. Aplicamos un filtro de paso bajo al habla generada y lo convertimos en una trayectoria del agarre para imitar el habla, como la boca de una marioneta. Esta ilusión se mejoró agregando disfraces divertidos al agarre y ojos móviles.

Comportamiento emergente, sorpresas y desafíos

Encontramos algunas sorpresas en el camino mientras desarrollábamos esta demostración. Por un lado, rápidamente surgieron comportamientos emergentes solo a partir del espacio de acción muy simple del robot.

Por ejemplo, le preguntamos al robot ¿quién es marc raibert? y respondió no lo sé. ¡vamos al mostrador de ayuda de it y preguntemos allí!, y luego procedió a preguntar al personal del mostrador de ayuda de IT quién era Marc Raibert. No le indicamos al LLM que pidiera ayuda. Estableció la asociación entre la ubicación mostrador de ayuda de it y la acción de pedir ayuda de forma independiente. Otro ejemplo: le preguntamos al robot quiénes eran sus padres : fue al área donde se exhiben el Spot V1 y Big Dog en nuestra oficina y nos dijo que ellos eran sus ancianos.

Para ser claros, estas anécdotas no sugieren que el LLM sea consciente o incluso inteligente en el sentido humano; simplemente muestran el poder de la asociación estadística entre los conceptos de mostrador de ayuda y hacer una pregunta y padres con viejo. Pero las ilusiones que el LLM muestra para parecer inteligente pueden ser bastante convincentes.

También nos sorprendió lo bien que el LLM se mantuvo en el personaje incluso cuando le dimos personalidades cada vez más absurdas. Aprendimos de inmediato que las personalidades irónicas o sarcasticas funcionaban muy bien; e incluso hicimos que el robot saliera a cazar al bigfoot por la oficina, preguntando a los transeúntes al azar si habían visto alguna criatura desconocida. Por supuesto, la demostración que creamos, aunque impresionante, tiene limitaciones. El problema de las alucinaciones es uno de ellos: el LLM inventa cosas con frecuencia. Por ejemplo, nos decía constantemente que Stretch, nuestro robot logístico, era para hacer yoga. La latencia entre una persona que hace una pregunta y el robot que responde también es bastante alta, a veces de unos 6 segundos. También es susceptible a que OpenAI se sature o a que la conexión a Internet se caiga.

¿Qué sigue?

Con este proyecto, encontramos una forma de combinar los resultados de varios sistemas de IA general y generar resultados emocionantes en un robot real utilizando el SDK de Spot. Muchos otros grupos de robótica en la academia o la industria están investigando conceptos similares (consulta nuestra lista de lecturas recomendadas para más ejemplos).

Estamos entusiasmados por seguir investigando la intersección entre la inteligencia artificial y la robótica. Estas dos tecnologías son una combinación perfecta. Los robots ofrecen una forma fantástica de enraizar grandes modelos de fundación en el entorno real. Del mismo modo, estos modelos pueden ayudar a proporcionar contexto cultural, conocimiento general y flexibilidad que podrían ser útiles para muchas tareas de robótica, por ejemplo, poder asignar una tarea a un robot simplemente hablando con él ayudaría a reducir la curva de aprendizaje para utilizar estos sistemas.

Un entorno en el que los robots puedan entender en general lo que dices y convertirlo en una acción útil probablemente no esté muy lejos. Ese tipo de habilidad permitiría que los robots se desempeñen mejor al trabajar con y alrededor de las personas, ya sea como una herramienta, un tutorial, un compañero o un entretenedor.

Las tareas comúnmente mencionadas como aburridas, sucias y peligrosas de la robótica no siempre ocurren en una fábrica organizada. Surgen en el entorno natural y en entornos construidos por humanos. Nuestros diseños están motivados en última instancia por la funcionalidad: moverse y equilibrarse de manera dinámica en terrenos no estructurados, desconocidos o antagónicos.

Hoy en día, combinamos un legado establecido, raíces en I+D y una mentalidad emprendedora para crear la base de nuestra organización comercial.

Si quieres conocer otras notas parecidas a Uso de inteligencia artificial en boston dynamics puedes visitar la categoría Robótica.

Subir