El sensor OptiGap hecho con filamento de impresora 3D en una investigación de tesis doctoral
(paulbupejr.com)- OptiGap es un sistema desarrollado para robótica blanda, donde es difícil adherir sensores convencionales por la estructura flexible, con el fin de detectar en qué punto se dobló el sensor
- El espacio de aire creado dentro de una guía óptica flexible cambia la cantidad de luz transmitida según la curvatura, y esa diferencia se utiliza como un patrón de señal según la posición
- La idea surgió de un experimento en el que se doblaba filamento transparente TPU de 1.75 mm para impresora 3D adherido a una cinta métrica, y se observaban cambios en tiempo real con Raspberry Pi, VL53L0X, ZeroMQ y una GUI en Python
- Al principio se usaron 3 hebras de filamento TPU y un acoplador de fibra óptica 3:1, pero después evolucionó a una estructura más pequeña y simple basada en fibra óptica PMMA de 500 micras, fotodiodos, LED IR y STM32
- El sistema final clasifica la ubicación de la curvatura en STM32 con un clasificador Naive Bayes y filtrado en dos etapas, y el trabajo continuó hasta la integración con EneGate, un PCB compacto, validación en robots blandos reales y esfuerzos de comercialización
El papel de OptiGap
- OptiGap es un sistema para detectar qué punto se dobló cuando un sensor con forma de cuerda se flexiona
- Esta función corresponde a la detección de ubicación de curvatura, es decir, bend localization
- Su principal campo de aplicación es la robótica blanda
- Como la robótica blanda trabaja con estructuras flexibles o suaves, muchas veces resulta difícil usar sensores tradicionales
- El nombre OptiGap combina “optical” y “gap”
- Usa espacios de aire dentro de una guía óptica flexible para crear los patrones de código necesarios para detectar la ubicación de la curvatura
Un experimento que comenzó por un hallazgo accidental
- El punto de partida fue un experimento que buscaba aprovechar la forma en que la luz se transmite por una guía óptica, es decir, un cable óptico, como sensor de detección de curvatura
- Mientras se experimentaba con filamento transparente TPU de 1.75 mm para impresora 3D adherido a una cinta métrica, al doblar un punto donde había cinta aislante, la transmisión de luz disminuía notablemente
- Se planteó la hipótesis de que los residuos adhesivos de la cinta aislante estiraban el filamento y, como resultado, reducían la transmisión de luz
- Después se pegó un tramo más largo de TPU a una cinta métrica y se observaron cambios en la transmisión óptica al doblar distintos puntos
- Para validarlo en tiempo real, se armó un sistema simple de medición y visualización
- Esa validación se convirtió en el momento decisivo que llevó al desarrollo de OptiGap
Codificación de información de posición con espacios de aire
- Si se pudiera controlar la posición donde la luz se debilita, sería posible codificar dentro del sensor la información sobre dónde se dobló
- El método con cinta aislante no era práctico, así que se necesitaba una estructura de atenuación más estable y consistente
- La solución fue cortar el filamento, volver a unirlo con una manga de silicón y dejar entre ambas partes un pequeño espacio de aire
- El espacio de aire aprovecha el desplazamiento o la rotación relativa entre las caras finales de dos guías ópticas
- Si una cara de la guía óptica se desalineaba respecto de la otra, cambiaba la proporción de luz transmitida a través del espacio
- A medida que aumentaba el ángulo de curvatura, más luz escapaba en el espacio
- La intensidad óptica modificada se asociaba con patrones conocidos y se usaba como señal del sensor
Múltiples espacios de aire e Inverse Gray Code
- El siguiente paso fue crear varios espacios de aire a lo largo de una sola guía óptica de TPU y medir los patrones de atenuación cuando se doblaba
- En cada espacio de aire disminuía la intensidad óptica, y la caída se hacía más clara conforme aumentaba el ángulo de curvatura
- Este experimento llevó a la hipótesis final de que los patrones de espacios de aire podían codificar la ubicación de la curvatura, y que un clasificador Naive Bayes en un microcontrolador podría decodificar esa ubicación
- El concepto de OptiGap es similar al de un codificador lineal absoluto
- Un codificador lineal lee un código según la posición para medir el desplazamiento lineal
- Un codificador absoluto entrega un código único para cada posición y así identifica el desplazamiento
- OptiGap codifica la posición absoluta mediante patrones de espacios de aire sensibles a la curvatura distribuidos en guías ópticas paralelas, y funciona como un sensor de fibra óptica único
-
Elección de Inverse Gray Code
- Los codificadores absolutos suelen usar Gray code
- Gray code es un código binario en el que dos valores consecutivos difieren en solo un bit
- En OptiGap, convenía que los valores consecutivos difirieran en la mayor cantidad posible de bits para facilitar su distinción
- Para cumplir con ese requisito se utilizó Inverse Gray code
- Inverse Gray code es un código binario en el que dos valores consecutivos difieren en un máximo de
n-1bits - En cada posición donde aparece un
1en la secuencia de código, se corta el filamento para crear un espacio de aire - Este método puede escalarse a una cantidad arbitraria de bits
- El prototipo usó 3 bits para representar 8 posiciones
Fabricación del prototipo y miniaturización
- El primer prototipo de OptiGap se fabricó con 3 hebras de filamento transparente TPU para impresora 3D con distintos patrones de espacios de aire
- Para combinar la luz de las 3 hebras en un solo cable de fibra óptica, se utilizó un acoplador de fibra óptica 3:1 comercial
- Este prototipo fue la etapa final para validar la hipótesis y la teoría de funcionamiento de OptiGap
-
Reducción de tamaño con fibra óptica PMMA
- El prototipo inicial era grande y voluminoso debido al tamaño del filamento de impresora 3D
- La fibra óptica plástica PMMA se evaluó como una alternativa más pequeña y flexible
- Se probaron como hebras del sensor productos de fibra óptica PMMA sin recubrimiento de 500, 750 y 1000 micras de Industrial Fiber Optics, Inc.
- Los tres tipos mostraron suficiente flexibilidad y, en general, la fibra de 500 micras resultó ser la más adecuada
-
Reducción de la complejidad del transceptor óptico
- En lugar del complejo sensor ToF VL53L0X, se usó una configuración con fotodiodos y LED IR
- Este cambio redujo la complejidad del sistema y aumentó su modularidad
- También fue una mejora importante frente al prototipo inicial que los datos del sensor ya pudieran leerse con un microcontrolador
- Después se construyó un sistema de demostración basado en un microcontrolador STM32 y la configuración de fotodiodos con LED IR
Clasificación en tiempo real ejecutada en STM32
- En la etapa final de desarrollo, se integró un clasificador Naive Bayes en el microcontrolador STM32 para decodificar desde los datos del sensor la ubicación de la curvatura
- Se eligió el clasificador Naive Bayes por tres razones
- Es más eficiente que usar sentencias if o tablas de consulta
- Puede manejar datos nuevos o no vistos previamente
- Puede mejorar la precisión al considerar la relación entre múltiples variables de entrada
- El clasificador es un modelo probabilístico que aplica el teorema de Bayes
- En este sistema, las clases representan la ubicación de la curvatura
- Funciona determinando a qué clase pertenece una medición
- Para la implementación se utilizó la biblioteca Arm CMSIS-DSP
-
Ajuste de datos del sensor
- Para integrar el clasificador, se ajustaron a una distribución gaussiana los datos del sensor de cada patrón de espacio de aire
- Se desarrolló una GUI en Python para etiquetado y ajuste rápidos
- Se utilizó GNB de scikit-learn, es decir, Gaussian Naive Bayes
- Después se mejoró la UI para permitir un ajuste de datos más general y complejo
- Las probabilidades de cada clase se calculaban y luego se guardaban en archivos de cabecera para usarse en el microcontrolador
-
Filtrado de datos del sensor
- Para mejorar la precisión del clasificador, se implementó en STM32 un filtrado en dos etapas
- La primera etapa es un filtro básico de promedio móvil
- La segunda etapa es un filtro de Kalman
- El filtrado se usa para reducir el ruido frente a la señal de entrada
Demo, integración y siguientes pasos
- La demo de OptiGap incluye el proceso de ensamblaje y el funcionamiento del sistema final del sensor
- Los elementos de la demo incluyen ensamblaje basado en filamento TPU, atenuación de luz mediante el sensor OptiGap, ajuste de datos del sensor, clasificación de segmentos con fibra óptica PMMA y filamento TPU, y funcionamiento bajo el agua
- OptiGap también se integró en un sistema modular de accionamiento y sensado llamado EneGate
- Esta integración incluyó diseño de PCB personalizado e integración del sistema, y se trata con más detalle en esta tesis disponible en línea
- También se prototipó una versión compacta de PCB óptico para conectarse con el PCB del sistema EneGate
- OptiGap también se validó en sistemas reales de robótica blanda
- Los detalles completos se presentarán en el artículo de RoboSoft “Embedded Optical Waveguide Sensors for Dynamic Behavior Monitoring in Twisted-Beam Structures”
- Esta investigación también ha continuado hacia su comercialización
1 comentarios
Comentarios de Hacker News
Una investigación hermosa y además está documentada con muchísimo cuidado
Al principio iba a escribir que conceptualmente se parece mucho a la reflectometría en el dominio del tiempo, pero como parece que Cindy Harnett es la asesora, supongo que eso ya lo sabe :)
Está buenísimo. Me gusta la idea de hacer que los materiales sean más autoconscientes o inspeccionables, y se siente muy de ciencia ficción
En una investigación anterior a mi trabajo actual hice algo que rozaba esto muy ligeramente, así que me alegró aún más ver esto en portada. Lo que hicimos fue aprender la matriz de transmisión de una fibra óptica con redes neuronales de valores complejos. En óptica antes se hacía propagando las ecuaciones de Maxwell, pero nosotros superamos el estado del arte por varios órdenes de magnitud con una estructura muy simple donde la física real se reduce a una sola multiplicación de matrices complejas. La conexión con esta investigación es que, si la fibra se dobla, hay que volver a aprender una nueva matriz. Tal vez también sería posible aprender una caracterización parametrizada para modelar la forma spline de la fibra a partir de unas cuantas mediciones de entrada/salida. Pero no llegamos hasta ahí
Si a alguien le interesa, los artículos están aquí
Artículo centrado en CS: https://papers.nips.cc/paper_files/paper/2018/hash/148510031...
Artículo centrado en física: https://www.nature.com/articles/s41467-019-10057-8
De verdad es excelente. Con apenas un poco más de pulido, parece que incluso podría fabricarse en masa con una precisión muy alta
También hay muchísimas aplicaciones. Si se usan curvas de llenado de espacio, parece que se podrían hacer sensores 2D/3D para dar tacto a robots de manera rentable. Si se enrolla en algo como un tubo flexible, podría usarse también para propiocepción al tener sensibilidad direccional. También parece muy probable que pueda detectar y localizar otros factores que afecten la separación de aire, como diferencias de temperatura
La parte de “gracias a un gran asesor” es la clave. Ahí está la diferencia entre una experiencia miserable y una buena
Excelente texto. La explicación fue muy clara, y el uso de GIF y recursos visuales para mostrar el concepto fue justo el adecuado
Solo soy un ingeniero de software con comprensión limitada de este campo, pero disfruté mucho leerlo y aprendí bastante en el proceso. Bien hecho, y felicidades por el doctorado
No es exactamente lo mismo, pero esto me recordó al DAS, que usa cables de fibra óptica para varias tareas de detección acústica. Básicamente funciona como una alternativa a geófonos/hidrófonos
También ha habido bastantes artículos sobre usar fibra óptica submarina para varias tareas de monitoreo. Tengo entendido que Luna Innovations lo usa en aplicaciones industriales como detección de deformación, y que Schlumberger también tiene varias patentes de detección por fibra óptica relacionadas con streamers remolcados. Pero nunca lo había visto aplicado a robótica blanda
Pero esta idea es tan fundamentalmente simple que parece que la gente más brillante en general la había pasado por alto
Es una idea realmente increíble y un trabajo excelente
Parece que los datos del sensor tienen una zona muerta bastante grande; ¿no sería fácil corregirlo reduciendo la distancia entre sensores?
¿También sería útil detectar la dirección de la curvatura? Tal vez se podría dividiendo el tubo como el logo de Mercedes y poniendo 3 juegos de sensores dentro de un solo tubo exterior
¿Habrá una forma de detectar curvaturas en varios puntos? En la configuración actual parece que básicamente hace un OR de los valores, así que imagino lecturas erróneas. Me pregunto si habrá una buena solución
Al final se convierte en un problema de ajustar los deltas relativos que cambian de una lectura a la siguiente. Aunque hay una trampa: si todas las articulaciones se doblan mucho, en algún punto la luz deja de llegar hasta el final. Hay maneras de mitigar eso, pero este comentario ya quedó demasiado largo
Había estado buscando un sensor que pudiera detectar con precisión qué tan cerca pasa un palo de golf por encima del sensor, qué tan rápido va y cuál es el arco del swing
La idea es hacer un monitor de lanzamiento de golf que no requiera golpear una pelota, para poder jugar golf de simulación en interiores. Algo así como ver el Masters en la TV de la sala y jugar al mismo tiempo, pero sin hacer pedazos la televisión con una pelota de golf
Me pregunto si este sensor, o varios agrupados, servirían para eso
Como ya dijeron, probablemente sería mucho mejor usar una cámara de alta velocidad junto con tecnología de extracción de esqueleto estilo Kinect. Suena como algo que podrías armar en el garaje con solo una PlayStation Eye y tecnología open source ya existente
¿No es esta la misma tecnología que estaba en el primer Nintendo Power Glove? https://www.youtube.com/watch?v=3g8JiGjRQNE
Metían luz en un tubo y medían esa luz para activar entradas de tecla. Por eso al doblar los dedos o la mano ocurría la acción. En generaciones posteriores cambiaron el mecanismo
No entiendo qué pasa si el sensor se dobla en más de una posición
Al principio mencionan sensores ToF, así que pensé que verían la reflexión producida por la curvatura y además medirían la distancia hasta ella, pero parece que en realidad no es así. Si doblas el sensor en dos lugares, parece que solo obtienes la suma de la atenuación logarítmica producida por ambas curvaturas. Si asumimos que la “intensidad” de la curvatura cambia la atenuación de forma continua, parecería que para distinguir una combinación arbitraria de dos curvaturas haría falta un hilo por cada posición espaciada
No sé si lo leí mal o si está pensado para usarse cuando se sabe que solo hay una curvatura
Según la sección “Realtime Machine Learning on a Microcontroller”, el mecanismo que traduce la forma de onda en una ubicación real parece estar basado en un modelo bayesiano