1 Punkte von GN⁺ 2024-04-12 | 1 Kommentare | Auf WhatsApp teilen
  • OptiGap ist ein System, das für Soft Robotics entwickelt wurde, wo sich herkömmliche Sensoren wegen flexibler Strukturen nur schwer anbringen lassen, um zu erkennen, an welcher Stelle ein Sensor gebogen wurde
  • Ein Luftspalt in einem flexiblen Lichtleiter verändert je nach Biegung die Menge des übertragenen Lichts; diese Unterschiede werden als ortsabhängige Signalmuster genutzt
  • Die Idee entstand bei Experimenten, bei denen transparentes 1,75-mm-TPU-3D-Drucker-Filament an ein Maßband geklebt und gebogen wurde; Echtzeitänderungen wurden mit Raspberry Pi, VL53L0X, ZeroMQ und einer Python-GUI beobachtet
  • Anfangs kamen drei TPU-Filamentstränge und ein 3:1-Glasfaser-Koppler zum Einsatz; später entwickelte sich daraus eine kleinere und einfachere Konstruktion auf Basis von 500-Mikrometer-PMMA-Lichtwellenleitern, Fotodiode, IR-LED und STM32
  • Das finale System klassifiziert Biegepositionen auf dem STM32 mit einem Naive-Bayes-Klassifikator und zweistufigem Filtering; die Arbeiten führten weiter zu EneGate-Integration, kompakter PCB, Validierung an echten Soft-Robotern und Kommerzialisierung

Die Rolle von OptiGap

  • OptiGap ist ein System, das erkennt, an welcher Stelle ein seilförmiger Sensor gebogen wurde
  • Diese Funktion entspricht der Erkennung der Biegeposition, also bend localization
  • Das wichtigste Anwendungsfeld ist Soft Robotics
    • Da Soft Robotics mit flexiblen oder weichen Strukturen arbeitet, sind traditionelle Sensoren oft schwer einsetzbar
  • Der Name OptiGap setzt sich aus „optical“ und „gap“ zusammen
    • Luftspalte in einem flexiblen Lichtleiter erzeugen die Codemuster, die für die Erkennung der Biegeposition benötigt werden

Experimente ausgehend von einer zufälligen Entdeckung

  • Ausgangspunkt war ein Experiment, das die Lichtübertragung durch einen Lichtleiter, also ein optisches Kabel, als Biegesensor nutzen sollte
  • Beim Experimentieren mit transparentem 1,75-mm-TPU-3D-Drucker-Filament, das an ein Maßband geklebt war, sank die übertragene Lichtmenge stark, als eine Stelle mit Isolierband gebogen wurde
  • Die Hypothese war, dass klebrige Rückstände des Isolierbands das Filament dehnten und dadurch die Lichtübertragung verringerten
  • Anschließend wurde ein längeres TPU-Stück an ein Maßband geklebt, an mehreren Stellen gebogen und die Veränderung der Lichtübertragung beobachtet
  • Für die Echtzeitprüfung wurde ein einfaches Mess- und Visualisierungssystem aufgebaut
    • Ein Linux-I2C-Treiber für den VL53L0X-ToF-Sensor wurde geschrieben
    • Er lief auf einem Raspberry Pi und sendete Daten über einen ZeroMQ-Socket
    • Eine Python-GUI empfing die Daten vom Socket und visualisierte Echtzeitdaten zur Lichtübertragung
  • Diese Validierung wurde zum entscheidenden Moment, der zur Entwicklung von OptiGap führte

Positionsinformationen über Luftspalte codieren

  • Wenn sich steuern lässt, an welcher Stelle das Licht schwächer wird, können Informationen über die gebogene Position im Sensor codiert werden
  • Die Isolierband-Methode war nicht praktikabel; nötig war eine stabilere und konsistentere Dämpfungsstruktur
  • Die Lösung bestand darin, das Filament zu zerschneiden, es mit einer Silikonhülse wieder zu verbinden und dazwischen einen kleinen Luftspalt zu lassen
  • Der Luftspalt nutzt die relative Verschiebung oder Rotation der beiden Lichtleiter-Endflächen
    • Wenn die Fläche eines Lichtleiters gegenüber der anderen versetzt ist, ändert sich der Anteil des Lichts, der über den Spalt hinweg übertragen wird
    • Je größer der Biegewinkel, desto mehr Licht tritt am Spalt aus
    • Die so veränderte Stärke des optischen Signals wird mit bekannten Mustern verknüpft und als Sensorsignal genutzt

Mehrere Luftspalte und Inverse Gray Code

  • Der nächste Schritt bestand darin, entlang eines einzelnen TPU-Lichtleiters mehrere Luftspalte anzulegen und das Dämpfungsmuster beim Biegen zu messen
  • An jedem Luftspalt nahm die Lichtintensität ab, und mit zunehmendem Biegewinkel wurde die Abnahme deutlicher
  • Dieses Experiment führte zur finalen Hypothese: Biegepositionen lassen sich über Luftspaltmuster codieren und mit einem Naive-Bayes-Klassifikator auf dem Mikrocontroller decodieren
  • Das OptiGap-Konzept ähnelt einem absoluten linearen Encoder
    • Ein linearer Encoder misst lineare Bewegung, indem er positionsspezifische Codes liest
    • Ein absoluter Encoder gibt für jede Position einen eindeutigen Code aus und identifiziert so die Verschiebung
  • OptiGap codiert absolute Positionen über Muster biegungsempfindlicher Luftspalte in parallelen Lichtleitern und verhält sich wie ein einzelner Glasfasersensor
  • Wahl des Inverse Gray Code

    • Absolute Encoder verwenden häufig Gray code
    • Gray code ist ein Binärcode, bei dem sich zwei aufeinanderfolgende Werte nur in einem Bit unterscheiden
    • Bei OptiGap sollten sich aufeinanderfolgende Werte in möglichst vielen Bits unterscheiden, damit sie leichter unterscheidbar sind
    • Für diese Anforderung wurde Inverse Gray code verwendet
    • Inverse Gray code ist ein Binärcode, bei dem sich zwei aufeinanderfolgende Werte in bis zu n-1 Bits unterscheiden
    • An jeder Position mit einer 1 in der Code-Sequenz wird das Filament geschnitten, um einen Luftspalt zu erzeugen
    • Dieses Verfahren lässt sich auf eine beliebige Anzahl von Bits erweitern
    • Der Prototyp stellte mit 3 Bit 8 Positionen dar

Prototypenbau und Miniaturisierung

  • Der erste OptiGap-Prototyp wurde aus drei Strängen transparenten TPU-3D-Drucker-Filaments mit unterschiedlichen Luftspaltmustern gefertigt
  • Um das Licht der drei Stränge in einem einzigen Glasfaserkabel zusammenzuführen, wurde ein kommerzieller 3:1-Glasfaser-Koppler verwendet
  • Dieser Prototyp war der letzte Schritt zur Validierung der OptiGap-Hypothese und der zugrunde liegenden Funktionsweise
  • Verkleinerung mit PMMA-Lichtwellenleitern

    • Der erste Prototyp war wegen der Größe des 3D-Drucker-Filaments groß und voluminös
    • PMMA-Kunststoff-Lichtwellenleiter wurden als kleinere und flexiblere Alternative bewertet
    • Ummantelungsfreie PMMA-Lichtwellenleiter von Industrial Fiber Optics, Inc. mit 500, 750 und 1000 Mikrometern wurden als Sensorstränge getestet
    • Alle drei Varianten zeigten ausreichende Flexibilität; insgesamt erwies sich der 500-Mikrometer-Lichtwellenleiter als am besten geeignet
  • Verringerung der Komplexität des optischen Transceivers

    • Statt des komplexen VL53L0X-ToF-Sensors wurde eine Kombination aus Fotodiode und IR-LED verwendet
    • Diese Änderung reduzierte die Systemkomplexität und erhöhte die Modularität
    • Dass Sensordaten nun von einem Mikrocontroller gelesen werden konnten, war ebenfalls eine wichtige Verbesserung gegenüber dem frühen Prototyp
    • Danach wurde ein Demosystem auf Basis eines STM32-Mikrocontrollers sowie einer Fotodiode- und IR-LED-Konfiguration aufgebaut

Echtzeitklassifikation auf dem STM32

  • In der finalen Entwicklungsphase wurde ein Naive-Bayes-Klassifikator in den STM32-Mikrocontroller integriert, um aus den Sensordaten die Biegeposition zu decodieren
  • Die Wahl des Naive-Bayes-Klassifikators hatte drei Gründe
    • Er ist effizienter als if-Anweisungen oder Lookup-Tabellen
    • Er kann neue Daten oder zuvor nicht gesehene Daten verarbeiten
    • Er kann Beziehungen zwischen mehreren Eingangsvariablen berücksichtigen und dadurch potenziell die Genauigkeit erhöhen
  • Der Klassifikator ist ein Wahrscheinlichkeitsmodell, das den Satz von Bayes anwendet
    • In diesem System bedeutet eine Klasse die Biegeposition
    • Er arbeitet, indem er bestimmt, zu welcher Klasse ein Messwert gehört
  • Für die Implementierung wurde die Arm CMSIS-DSP library verwendet
  • Fitting der Sensordaten

    • Für die Integration des Klassifikators wurden die Sensordaten jedes Luftspaltmusters an eine gaußsche Verteilung angepasst
    • Für schnelles Labeling und Fitting wurde eine Python-GUI entwickelt
    • Verwendet wurde GNB aus scikit-learn, also Gaussian Naive Bayes
    • Später wurde die UI verbessert, um allgemeineres und komplexeres Daten-Fitting zu ermöglichen
    • Die Wahrscheinlichkeiten der einzelnen Klassen wurden berechnet und anschließend als Header-Datei für die Nutzung auf dem Mikrocontroller gespeichert
  • Filtering der Sensordaten

    • Zur Verbesserung der Klassifikatorgenauigkeit wurde auf dem STM32 ein zweistufiges Filtering implementiert
    • Die erste Stufe ist ein einfacher gleitender Mittelwertfilter
    • Die zweite Stufe ist ein Kalman-Filter
    • Das Filtering wird eingesetzt, um das Rauschen im Verhältnis zum Eingangssignal zu reduzieren

Demo, Integration und nächste Schritte

  • Die OptiGap-Demo umfasst den Montageprozess und den Betrieb des finalen Sensorsystems
  • Die Demopunkte bestehen aus Montage auf Basis von TPU-Filament, Lichtdämpfung durch den OptiGap-Sensor, Fitting von Sensordaten, Segmentklassifikation mit PMMA-Lichtwellenleitern und TPU-Filament sowie Betrieb unter Wasser
  • OptiGap wurde auch in ein modulares Aktorik- und Sensorsystem namens EneGate integriert
  • Diese Integration umfasst kundenspezifisches PCB-Design und Systemintegration; Details werden in der online veröffentlichten Dissertation behandelt
  • Auch eine kompakte optische PCB-Version für die Verbindung mit der PCB des EneGate-Systems wurde als Prototyp gefertigt
  • OptiGap wurde zudem an realen Soft-Robotik-Systemen validiert
    • Die vollständigen Details sollen im RoboSoft-Paper „Embedded Optical Waveguide Sensors for Dynamic Behavior Monitoring in Twisted-Beam Structures“ behandelt werden
  • Diese Forschung führt auch zu Arbeiten an einer Kommerzialisierung

1 Kommentare

 
GN⁺ 2024-04-12
Meinungen auf Hacker News
  • Wunderschöne Forschung und äußerst sorgfältig dokumentiert
    Zuerst wollte ich schreiben, dass es konzeptionell stark an Zeitbereichsreflektometrie erinnert, aber da Cindy Harnett offenbar die Betreuerin ist, ist das vermutlich längst bekannt :)

    • Ich habe bei Analysen zur Erkennung unberechtigter CATV-Nutzung ein wenig TDR-Analyse gemacht; in der Praxis wusste man im Großen und Ganzen, wo sich jedes CPE in der Glasfaseranlage befindet, und die Kosten, DOCSIS-Timingdaten von diesen Geräten zu sammeln, lagen praktisch bei null
  • Wirklich cool. Ich mag die Idee, Materialien selbstwahrnehmender bzw. prüfbarer zu machen; das wirkt sehr nach Science-Fiction
    In meiner Forschung vor meiner jetzigen Stelle habe ich an etwas gearbeitet, das ganz leicht damit verwandt ist, daher freut es mich umso mehr, das hier auf der Startseite zu sehen. Unsere Arbeit bestand darin, mit komplexwertigen neuronalen Netzen die Übertragungsmatrix einer Glasfaser zu lernen. In der Optik wurde das zuvor gemacht, indem man die Maxwell-Gleichungen propagierte; wir haben dagegen mit einer sehr einfachen Struktur, bei der die tatsächliche Physik auf eine einzelne komplexe Matrixmultiplikation hinausläuft, den Stand der Technik um mehrere Größenordnungen übertroffen. Die Verbindung zu dieser Arbeit hier besteht darin, dass man bei einer gebogenen Glasfaser eine neue Matrix lernen muss. Es könnte möglich sein, eine parametrisierte Charakterisierung zu lernen, sodass man mit einigen Eingabe-/Ausgabemessungen die Spline-Form der Glasfaser modellieren kann. So weit sind wir allerdings nicht gekommen
    Falls es interessiert, hier sind die Papers
    CS-orientiertes Paper: https://papers.nips.cc/paper_files/paper/2018/hash/148510031...
    Physik-orientiertes Paper: https://www.nature.com/articles/s41467-019-10057-8

    • Könnte man statt Biegung auch Torsion erkennen?
  • Wirklich hervorragend. Mit etwas Feinschliff scheint auch Massenproduktion mit sehr hoher Genauigkeit möglich
    Es gibt reichlich Anwendungen. Mit raumfüllenden Kurven ließen sich wohl 2D-/3D-Sensoren bauen, die Robotern kostengünstig Tastsinn verleihen. Wenn man sie um etwas wie einen flexiblen Schlauch wickelt, hätten sie Richtungsempfindlichkeit und könnten auch für Propriozeption genutzt werden. Vermutlich lassen sich auch andere Faktoren, die den Luftspalt beeinflussen, etwa Temperaturunterschiede, erkennen und lokalisieren

    • Es gibt wirklich viele spannende Anwendungen. Man hätte es für den Gang weicher Roboterbeine einsetzen können, aber bevor das Paper später in diesem Jahr erscheint, kann ich schwer ins Detail gehen
  • Der Teil „dank eines hervorragenden Betreuers“ ist der Kernpunkt. Genau das macht den Unterschied zwischen einer miserablen und einer guten Erfahrung aus

  • Ein großartiger Beitrag. Die Erklärung war sehr klar, und der Einsatz von GIFs und Visualisierungen zur Veranschaulichung des Konzepts war genau richtig
    Ich bin nur ein Software Engineer mit begrenztem Verständnis dieses Fachgebiets, aber das Lesen hat mir durchweg Spaß gemacht und ich habe viel gelernt. Gut gemacht, und Glückwunsch zum Doktortitel

  • Nicht exakt dasselbe, aber es erinnert mich an DAS, bei dem Glasfaserkabel für verschiedene akustische Detektionsaufgaben genutzt werden. Im Grunde ist das eine Alternative zu Geophonen/Hydrophonen
    Es gab auch etliche Arbeiten dazu, Untersee-Glasfasern für verschiedene Überwachungsaufgaben zu nutzen. Luna Innovations setzt so etwas auch für industrielle Anwendungen wie Dehnungsmessung ein, und soweit ich weiß hat Schlumberger mehrere Patente zur Glasfaser-Sensorik bei geschleppten Streamern. In Soft Robotics habe ich das allerdings noch nicht gesehen

    • Als ich mit der Literaturrecherche begann, war die Menge an bestehender Forschung ziemlich einschüchternd. Besonders bei FBG-basierten Sensoren
      Aber diese Idee ist so grundlegend einfach, dass klügere Leute offenbar meistens darüber hinweggesehen haben
  • Eine wirklich erstaunliche Idee und hervorragende Arbeit
    In den Sensordaten scheint es ziemlich große Totzonen zu geben; ließe sich das nicht leicht beheben, indem man die Abstände zwischen den Sensoren verringert?
    Wäre es auch nützlich, die Richtung der Biegung zu erkennen? Wenn man das Rohr wie ein Mercedes-Logo aufteilt und drei Sensorsätze in einem äußeren Rohr unterbringt, scheint das möglich
    Gibt es auch eine Möglichkeit, Biegungen an mehreren Stellen zu erkennen? In der aktuellen Konfiguration werden die Werte im Grunde per OR verknüpft, was vermutlich zu falschen Messwerten führt. Ich frage mich, ob es dafür eine gute Lösung gibt

    • Gute Ideen. Noch nicht vollständig umgesetzt, aber jede Biegung hat zwischen den Strängen immer dieselbe relative Dämpfung, daher ist es auch möglich, mehrere Biegungen zu erkennen
      Am Ende wird es zu einem Problem, die relative Delta-Änderung von einem Messwert zum nächsten abzugleichen. Der Haken ist allerdings: Wenn alle Gelenke stark gebogen sind, kommt irgendwann am Ende kein Licht mehr an. Es gibt Möglichkeiten, das abzumildern, aber dieser Kommentar ist ohnehin schon zu lang geworden
  • Ich war auf der Suche nach einem Sensor, der genau erkennen kann, wie nah ein Golfschläger am Sensor vorbeikommt, wie schnell er ist und wie der Schwungbogen aussieht
    Die Idee ist, einen Golf-Launch-Monitor zu bauen, bei dem man keinen Ball schlagen muss, damit man drinnen simuliertes Golf spielen kann. Also im Wohnzimmer die Masters im Fernsehen schauen und mitspielen, ohne den Fernseher mit einem Golfball zu zerstören
    Ich frage mich, ob sich ein solcher Sensor oder mehrere davon im Verbund dafür eignen würden

    • Mein Vater hatte in den 90ern etwas Ähnliches, das man an den Computer anschloss
    • Das Risiko scheint viel zu groß, dass man den Sensor trifft und er quer durch den Raum in den Fernseher fliegt
      Wie schon gesagt, wäre eine Kombination aus Hochgeschwindigkeitskameras und Kinect-artiger Skelett-Extraktion wohl deutlich besser. Mit einer PlayStation Eye und vorhandener Open-Source-Technik ließe sich das vermutlich in der Garage bauen
    • Das gibt es bereits und heißt Optishot. Im Vergleich zu modernen radar- oder kamerabasierten Sensoren funktioniert es nicht besonders gut
    • Es klingt, als bräuchte man ein oder zwei Hall-Sensoren und einen Schlägerkopf mit Magneten
  • Ist das nicht dieselbe Technik wie im ersten Nintendo Power Glove? https://www.youtube.com/watch?v=3g8JiGjRQNE
    Man leitete Licht in einen Schlauch und maß dieses Licht, um Tasteneingaben auszulösen. Wenn man also Finger oder Hand beugte, passierte eine Aktion. In späteren Generationen wurde der Mechanismus geändert

    • Einer der Punkte, die hier neu wirken, ist, dass man mehrere Biegestellen erkennen kann, ohne für jede einzelne Biegestelle eine eigene Glasfaser zu benötigen
  • Ich verstehe nicht, was passiert, wenn der Sensor an mehr als einer Stelle gebogen wird
    Anfangs wurde ein ToF-Sensor erwähnt, daher dachte ich, man würde die Reflexion von der Biegung sehen und sogar deren Entfernung messen, aber tatsächlich scheint das nicht der Fall zu sein. Wenn man den Sensor an zwei Stellen biegt, scheint man nur die Summe der logarithmischen Dämpfung der beiden Biegungen zu erhalten. Wenn man annimmt, dass die „Stärke“ der Biegung die Dämpfung kontinuierlich verändert, bräuchte man offenbar so viele Stränge wie Abstandspositionen, um beliebige Kombinationen aus zwei Biegungen zu unterscheiden
    Ich frage mich, ob ich das falsch gelesen habe oder ob es für Fälle gedacht ist, in denen man weiß, dass es nur eine Biegung gibt

    • Im Abschnitt „Visualization of the OptiGap Sensor System“ scheint das Muster der Abstände mehrerer Sensoren eine eindeutige Signatur zu liefern, die in eine exakte Position entlang der Sensorlänge übersetzt werden kann
      Laut dem Abschnitt „Realtime Machine Learning on a Microcontroller“ scheint der Mechanismus zur Umwandlung der Wellenform in eine reale Position auf einem Bayes’schen Modell zu basieren