8 puntos por GN⁺ 2025-07-16 | 1 comentarios | Compartir por WhatsApp
  • Shoggoth Mini es un robot de tentáculo blando que utiliza GPT-4o y aprendizaje por refuerzo para lograr movimientos naturales y expresivos
  • A diferencia de los robots domésticos tradicionales, fue diseñado para poder expresar su estado interno o intención al interactuar con personas
  • Explica en detalle todo el proceso, desde el diseño de hardware hasta el software y el sistema de reconocimiento por cámara y control
  • Mejora la usabilidad al mapear de forma intuitiva la entrada 2D de un trackpad al control 3D del tentáculo, y asegura precisión y expresividad de movimiento al combinar visión por computadora de última generación con tecnologías de RL
  • En el cierre, plantea reflexiones sobre el equilibrio entre la vivacidad del robot, la imprevisibilidad y la afinidad con los humanos, además de ideas para futuras expansiones

Introducción y contexto

  • En el último año, el campo de la robótica ha avanzado rápidamente al combinarse con la era de los modelos de lenguaje grandes (LLM)
  • Casos representativos como π0.5 y Tesla Optimus entienden instrucciones en lenguaje y ejecutan acciones reales, pero la mayoría siguen quedándose en el nivel de robots funcionales
  • Señala que la "expresividad (expressiveness)" es clave para lograr naturalidad en la interacción humano-robot y transmitir estados internos como intención, atención o confianza
  • Inspirado por la lámpara con estética tipo Pixar (Apple ELEGNT) y por SpiRobs, que con movimientos simples da una extraña sensación de estar “vivo”, se interesa por la diferencia entre el diseño expresivo intencional y la vivacidad accidental
  • Para poner esto a prueba, comenzó a construir Shoggoth Mini y comparte el proceso de diseño, basado en experimentación y azar, junto con los aprendizajes obtenidos

Hardware

  • La primera versión del banco de pruebas comenzó con una estructura simple: 3 motores, una placa para fijar el tentáculo y una cubierta en forma de domo
  • Mientras hacía impresión 3D se quedó sin filamento, lo que dejó una parte del domo de otro color y terminó creando una cara con mejillas y boca; luego exploró propuestas visuales con ChatGPT y definió la forma final
  • Montó una cámara estéreo en el domo para seguir el tentáculo, y el “error de predicción” de los ojos del robot generó el efecto de atraer la mirada
  • El diseño con carrete abierto tenía la desventaja de que el cable se salía y se enredaba fácilmente, así que resolvió el problema agregando una simple cubierta para el carrete, lo que también mejoró la velocidad de las pruebas iterativas
  • Con un script de calibración y longitud extra de cable de reserva, pudo agilizar el mantenimiento y el ajuste de tensión de los motores
  • Para minimizar la caída del tentáculo, ajustó el grosor de la columna vertebral (spine) a un nivel adecuado
  • Tanto el ensamblaje CAD como los archivos STL para impresión 3D están publicados en el repositorio de GitHub

Control manual

  • Al inicio, simplificó el control de longitud de 3 tendones a una manipulación en 2D para que el tentáculo pudiera moverse de forma intuitiva usando un trackpad
    • Cada tendón tiene una dirección principal en el plano 2D, y al proyectar el vector de dirección del cursor sobre cada eje se calcula cuánto debe cambiar la longitud según la tensión necesaria
    • Un valor positivo significa acortar el tendón, y un valor negativo, alargarlo
  • Este método de transformación de 2D→3D también se reutiliza en el control automatizado, como en aprendizaje por refuerzo, como una capa base de proyección
  • Aunque el rango de manipulación es limitado, permite un control intuitivo y mejora mucho la capacidad de respuesta y la experiencia de uso

Diseño del sistema

  • Tiene una estructura de control jerárquica de dos capas:
    • En el nivel inferior, opera con políticas de lazo abierto (por ejemplo, <yes>, <shake>) y políticas de RL en lazo cerrado (por ejemplo, seguimiento de dedo); el seguimiento de la punta del tentáculo y la mano se encarga a una canalización basada en visión estéreo
    • En el nivel superior, GPT-4o procesa voz/texto en tiempo real (la visión aún no se ha publicado), y los eventos de video, como saludar con la mano, se envían a GPT-4o como cues de texto para decidir llamadas a la API
  • En lugar de una integración directa end-to-end de visión-lenguaje-acción (VLA) basada en modelos grandes, se diseñó una arquitectura escalonada con visión especializada y controladores individuales ligeros
  • Ajustar el rango de observación del RL, añadir un movimiento natural de regreso al centro y aplicar un estado idle (modo de respiración) entre llamadas a la API refuerza la sensación de que el robot “está vivo”
  • Debido a las limitaciones prácticas del VLA, como los problemas de sincronización temporal, la ingeniería de prompts se vuelve un elemento importante

Percepción

  • Combina MediaPipe para el seguimiento de manos con un dataset personalizado y un modelo YOLO para seguir la punta del tentáculo
    • Utiliza clustering k-means, etiquetado automático/active learning de Roboflow y Segment Anything para ampliar el dataset y hacer un etiquetado preciso
    • Entrena con Ultralytics YOLO e implementa la estimación de parámetros intrínsecos/extrínsecos de cámara y la triangulación 3D con un notebook de DeepLabCut
  • El seguimiento en tiempo real de la posición 3D de la mano y el tentáculo permite un control en lazo cerrado robusto

API de control de bajo nivel

  • Como en los robots blandos la cinemática inversa no funciona tan bien como en cuerpos rígidos, aplica de forma consistente el método de proyección de control 2D
  • Al hacer más gruesa la columna vertebral, también logró reproducibilidad del movimiento entre sesiones
  • Mediante experimentos como el agarre de objetos, descubrió la robustez mecánica propia de los robots blandos, capaz de absorber variaciones en forma y peso de los objetos sujetados
  • Aunque la manipulación fina de alta frecuencia es difícil, las operaciones básicas resultan sorprendentemente estables solo con el diseño mecánico

Aprendizaje por refuerzo (RL)

  • Aplicó RL primero a políticas simples como el seguimiento del dedo del usuario, y mejoró la transferencia de simulación a realidad en el simulador MuJoCo mediante aleatorización dinámica (PPO, MLP, frame stacking, aleatorización de masa/fricción/amortiguación)
  • Al principio usó la longitud de los tendones como espacio de acciones, pero eso provocó reward hacking y falló al llevarlo al sistema real
  • Al restringir las acciones con el método de proyección 2D, suprimió movimientos irreales como confusión o vibración, y plantea la posibilidad de expandir gradualmente hacia mayor dimensionalidad mediante curriculum learning
  • Para compensar el jitter causado por cambios bruscos de acción, añadió un término de penalización en la recompensa y aplicó suavizado de acciones con EMA

Conclusión y direcciones futuras

  • La imprevisibilidad y el margen para la interpretación que al principio transmitían una sensación de “estar vivo” fueron perdiendo frescura conforme avanzaban el análisis y la internalización
  • Subraya que el equilibrio entre expresividad (transmisión de intención) y vivacidad (imprevisibilidad) es decisivo en la interacción entre robots y humanos
  • Ideas para expansiones futuras:
    • Darle una voz no humana
    • Eliminar la restricción 2D
    • Diversificar los movimientos expresivos con RLHF y similares
    • Añadir más tentáculos e implementar locomoción propia
    • Reducir el ruido adoptando motores de accionamiento directo
  • El código fuente y los archivos están disponibles en el repositorio de GitHub, y se agradecen colaboraciones y discusión

1 comentarios

 
GN⁺ 2025-07-16
Opiniones de Hacker News
  • Se siente como una intersección muy interesante entre tecnología y psicología humana; al principio el robot se percibía muy vivo, pero con el uso, cuando sus movimientos se volvían fáciles de predecir, empezó a sentirse cada vez menos vivo. La “expresividad” tiene que ver con transmitir un estado interno, pero la “vitalidad” surge de la imprevisibilidad y de cierto grado de opacidad, porque los sistemas realmente vivos rastrean variables complejas y diversas. Shoggoth Mini no llega a ese nivel. Me pregunto si de verdad queremos robots que se sientan vivos, o si existe un límite a partir del cual se vuelven tan impredecibles que resulta incómodo tenerlos cerca de humanos.

    • Me recordó a Furby, por la forma y el tamaño similares, los dos ojos y las orejas móviles. Al principio sorprende, pero tras interactuar un poco se nota que muestra movimientos limitados según combinaciones sencillas de estímulos y estados internos. Mucha gente bromea con “¿acaso las personas no son iguales?”, pero en la práctica uno detecta los patrones repetitivos muy rápido.

    • Es parecido a cuando entiendes las reglas de un sistema de juego y deja de parecerte divertido. Aunque parezca complejo por la mera aplicación de reglas, se siente como si el resultado ya estuviera determinado. Esa diversión mágica desaparece.

    • Los humanos han atribuido antropomorfismo y autonomía al fuego, al agua corriente, a los autómatas del siglo XVIII, a chatbots primitivos, a ChatGPT e incluso a muchas otras máquinas. A veces una máquina hasta parece tener “humor”.

    • Comparto una experiencia con asistentes de voz y lenguajes artificiales. Configuro el asistente de voz con acento británico, porque se siente lo bastante ajeno como para parecer mucho más confiable; quizá para un británico no sea así, pero así lo percibo yo. Cuando participé en desarrollo de juegos intentamos generar diálogos de NPC de forma dinámica, pero hacer que sonaran realistas en inglés era muy difícil. Al final hicimos que los NPC hablaran un idioma ficticio, y al añadir un elemento de rompecabezas para que el usuario aprendiera ese idioma, se sentían como personajes mucho más reales. En la práctica, como uno gastaba energía en traducir, por un momento olvidaba que era un lenguaje artificial, evitando así el uncanny valley. Aun así, me pregunto si al acostumbrarse al juego y dominar más el idioma, uno terminaría dándose cuenta de que sigue siendo un sistema artificial manipulado.

  • Más que pensar “ah, dudó”, siento una vacilación parecida ante cualquier pregunta. El retraso mientras GPT genera una respuesta me molesta bastante; se siente más incómodo incluso que el desfase en una transmisión de noticias en vivo. Me pregunto si mejoraría poniendo algo como LEDs en los ojos para indicar que está funcionando. Si delegas la consulta a GPT, inevitablemente aparece latencia, sobre todo si la solicitud se envía a la nube. También me parece problemático que GPT-4o esté escuchando continuamente todo el flujo de audio.

    • Para una tarea tan simple, creo que bastaría con un LLM pequeño como Qwen 0.6B. Se podría usar el rendimiento zero-shot de un modelo grande para crear un dataset propio y luego entrenar un modelo aparte mucho más rápido.

    • Sobre la parte de que GPT-4o esté escuchando todo el tiempo, creo que se puede resolver usando una librería de wake word (por ejemplo, openWakeWord, porcupine). Si haces que el usuario lo active con una palabra clave antes de enviar el prompt, también reduces problemas de seguridad y privacidad. Normalmente podría mostrar una animación de “durmiendo” y, al llamarlo, despertarse y reaccionar. Comparto enlaces open source relacionados openWakeWord porcupine

    • No comparto la opinión de que el retraso cuando GPT responde sea incómodo. Cuando el tentáculo se detiene y luego se endereza de inmediato, da la impresión de que está escuchando y pensando con atención, así que más bien me parece tierno.

    • Creo que necesita cejas, como Johnny 5 video de ejemplo de Johnny 5

    • Después de la etapa de prototipo, creo que incluso se podría subir directamente un pequeño modelo optimizado al dispositivo local. Así sería mucho más rápido, seguro y adecuado para el producto final (aunque en el prototipo habría menos flexibilidad).

  • Comparto un gran video de SpiRobs que inspiró esta idea video de YouTube de SpiRobs

  • El diseño es demasiado lindo. Cuando investigué robots con tentáculos el año pasado, descubrí que el término formal es “continuum robots”, y hay mucha investigación especialmente en el campo de la robótica médica. Si quieren saber más, hay una buena charla introductoria que vale la pena revisar video de la charla relacionada

  • Me parece un proyecto realmente genial. Ahora que la IA tiene tantas capacidades y la robótica también ha avanzado, da pena que siempre terminemos haciendo formas humanas. Ojalá aparezcan en casa robots con formas raras, como un híbrido entre araña y calamar.

    • Hay mucho debate sobre seguridad en IA, pero yo quiero un robot híbrido de araña y calamar paseándose por la casa.

    • La tendencia es hacer la robótica lo más compatible posible con un mundo diseñado para humanos. Aun así, también sería bastante interesante probar distintas opciones cambiando la forma de las patas.

  • De ninguna manera, ya vi películas así. Definitivamente no quiero un facehugger sentado sobre mi escritorio.

    • Los fans del hentai tal vez más bien lo recibirían con gusto.

    • Si los tentáculos fueran más largos y tuviera un programa para hacerles bromas a los compañeros, hasta podría ser divertido.

  • Me gusta la referencia a Lovecraft; me pregunto si no bastaría también con un modelo pequeño.

    • Comparto enlaces de referencia sobre el meme de Shoggoth Shoggoth With Smiley Face Meme artículo de NYT sobre el meme de Shoggoth

    • Pienso parecido; de hecho, creo que podría simplificarse aún más. Cito lo que dijo el desarrollador: “Consideré entrenar un modelo VLA end-to-end, pero en robots blandos accionados por cable hay muchas combinaciones de longitudes de cable para la misma posición de la punta, así que la impredecibilidad aumenta y el aprendizaje basado en demostraciones no escala bien”. Al final optaron por un diseño en cascada donde una visión especializada alimenta a un controlador ligero. Aun así, sería genial volver a intentarlo con un modelo pequeño y, en broma, digo que si le montaran un modelo local, me sentiría más tranquilo si lo pusieran dentro de un pentagrama.

  • He visto suficiente contenido de medios japoneses como para poder predecir hacia dónde va esto.

    • Por suerte tiene una base ensanchada por seguridad.
  • La idea en sí me parece buenísima; me atraen estos intentos de dar expresividad a entidades no verbales y no humanoides.

    • Creo que la lámpara robot de Pixar podría ser una gran inspiración. Comparto ideas como que el robot se incline o mueva el cuerpo, asienta o niegue (sí/no), exprese curiosidad o molestia, y hasta pueda cambiar de “expresión” con LEDs.
  • Me parece un trabajo realmente hermoso. Me impresiona especialmente que este robot haya sido diseñado para no parecerse a ninguna criatura del mundo natural. No quiero un futuro en el que la frontera entre robótica y realidad se vuelva borrosa; hasta ahora incluso los robots humanoides siguen viéndose artificiales, y espero que esa tendencia continúe.