1 points par GN⁺ 2024-04-12 | 1 commentaires | Partager sur WhatsApp
  • OptiGap est un système développé pour déterminer à quel endroit un capteur s’est courbé dans la robotique souple, où les structures flexibles rendent difficile l’ajout de capteurs classiques
  • Des intervalles d’air créés dans un guide optique flexible modifient la quantité de lumière transmise selon la flexion, et cette différence sert de motif de signal propre à chaque position
  • L’idée est née d’une expérience où du filament TPU transparent de 1,75 mm pour imprimante 3D était fixé à un mètre ruban puis courbé ; les variations en temps réel ont été observées avec un Raspberry Pi, un VL53L0X, ZeroMQ et une interface graphique Python
  • Les premiers essais utilisaient 3 brins de filament TPU et un coupleur fibre optique 3:1, puis le système a évolué vers une structure plus petite et plus simple, basée sur de la fibre optique PMMA de 500 microns, des photodiodes, des LED IR et un STM32
  • Le système final classe la position de flexion sur STM32 avec un classificateur naïf bayésien et un filtrage en deux étapes, et le travail s’est poursuivi jusqu’à l’intégration dans EneGate, la conception d’un petit PCB, la validation sur de vrais robots souples et la commercialisation

Le rôle d’OptiGap

  • OptiGap est un système qui permet de déterminer quel point se courbe lorsqu’un capteur en forme de corde est plié
  • Cette fonction correspond à la détection de la position de flexion, ou bend localization
  • Son principal domaine d’application est la robotique souple
    • Comme la robotique souple manipule des structures flexibles ou molles, il est souvent difficile d’utiliser des capteurs traditionnels
  • Le nom OptiGap combine “optical” et “gap”
    • Il crée, grâce à des intervalles d’air dans un guide optique flexible, les motifs codés nécessaires à la détection de la position de flexion

Une expérience née d’une découverte fortuite

  • Le point de départ était une expérience visant à exploiter la manière dont la lumière se propage dans un guide optique, c’est-à-dire un câble optique, pour en faire un capteur de flexion
  • Lors d’un essai avec du filament TPU transparent de 1,75 mm pour imprimante 3D fixé à un mètre ruban, la flexion à l’endroit où du ruban isolant était collé a provoqué une forte baisse de la quantité de lumière transmise
  • L’hypothèse formulée était que les résidus collants du ruban isolant étiraient le filament, réduisant ainsi la transmission lumineuse
  • Un morceau de TPU plus long a ensuite été fixé à un mètre ruban, puis courbé à différents endroits afin d’observer les variations de transmission optique
  • Un système simple de mesure et de visualisation a été mis en place pour valider le phénomène en temps réel
    • Un pilote Linux I2C a été écrit pour le capteur ToF VL53L0X
    • Il était exécuté sur un Raspberry Pi et envoyait les données via un socket ZeroMQ
    • Une interface graphique Python recevait les données depuis le socket et visualisait les données de transmission optique en temps réel
  • Cette validation a été le moment décisif qui a mené au développement d’OptiGap

Encoder l’information de position avec des intervalles d’air

  • Si l’on peut contrôler l’endroit où la lumière s’affaiblit, il devient possible d’encoder dans le capteur l’information sur la position de flexion
  • La méthode au ruban isolant n’étant pas pratique, il fallait une structure d’atténuation plus stable et plus cohérente
  • La solution a consisté à couper le filament, à le reconnecter avec une gaine en silicone et à laisser entre les deux un petit intervalle d’air
  • L’intervalle d’air exploite le déplacement ou la rotation relatifs des deux extrémités du guide optique
    • Si la face d’un guide optique se décale par rapport à l’autre, la proportion de lumière transmise à travers l’intervalle change
    • Plus l’angle de flexion augmente, plus la lumière qui s’échappe au niveau de l’intervalle est importante
    • L’intensité du signal optique ainsi modifiée est associée à des motifs connus et utilisée comme signal de capteur

Plusieurs intervalles d’air et Inverse Gray Code

  • L’étape suivante a consisté à créer plusieurs intervalles d’air le long d’un même guide optique en TPU, puis à mesurer le motif d’atténuation obtenu lors de la flexion
  • L’intensité lumineuse diminuait à chaque intervalle d’air, et cette diminution devenait plus marquée à mesure que l’angle de flexion augmentait
  • Cette expérience a conduit à l’hypothèse finale : encoder la position de flexion avec des motifs d’intervalles d’air, puis décoder cette position avec un classificateur naïf bayésien sur microcontrôleur
  • Le concept d’OptiGap ressemble à celui d’un encodeur linéaire absolu
    • Un encodeur linéaire mesure un déplacement linéaire en lisant un code propre à chaque position
    • Un encodeur absolu émet un code unique pour chaque position afin d’identifier le déplacement
  • OptiGap encode une position absolue au moyen de motifs d’intervalles d’air sensibles à la flexion, disposés dans des guides optiques parallèles, tout en fonctionnant comme un capteur à fibre optique unique
  • Choix de l’Inverse Gray Code

    • Les encodeurs absolus utilisent souvent le Gray code
    • Le Gray code est un code binaire dans lequel deux valeurs consécutives ne diffèrent que d’un seul bit
    • Dans OptiGap, il est plus facile de distinguer les valeurs consécutives si elles diffèrent sur autant de bits que possible
    • Pour répondre à cette contrainte, le système utilise l’Inverse Gray code
    • L’Inverse Gray code est un code binaire dans lequel deux valeurs consécutives diffèrent au maximum sur n-1 bits
    • À chaque position contenant un 1 dans la séquence de code, le filament est coupé pour créer un intervalle d’air
    • Cette méthode peut être étendue à un nombre arbitraire de bits
    • Le prototype représente 8 positions avec 3 bits

Fabrication du prototype et miniaturisation

  • Le premier prototype OptiGap a été réalisé avec 3 brins de filament TPU transparent pour imprimante 3D, chacun présentant un motif d’intervalles d’air différent
  • Un coupleur fibre optique 3:1 du commerce a été utilisé pour combiner la lumière des 3 brins dans un seul câble à fibre optique
  • Ce prototype constituait la dernière étape de validation de l’hypothèse et de la théorie de fonctionnement d’OptiGap
  • Réduction de taille avec de la fibre optique PMMA

    • Le prototype initial était grand et volumineux en raison de la taille du filament d’imprimante 3D
    • La fibre optique plastique PMMA a été évaluée comme une alternative plus petite et plus flexible
    • Des fibres optiques PMMA sans gaine de 500, 750 et 1000 microns d’Industrial Fiber Optics, Inc. ont été testées comme brins de capteur
    • Les trois formats se sont montrés suffisamment flexibles et, dans l’ensemble, la fibre de 500 microns s’est révélée la plus adaptée
  • Réduction de la complexité du transceiver optique

    • La configuration a remplacé le complexe capteur ToF VL53L0X par un ensemble photodiode et LED IR
    • Ce changement a réduit la complexité du système et amélioré sa modularité
    • La possibilité de lire les données du capteur avec un microcontrôleur a aussi constitué une amélioration importante par rapport au prototype initial
    • Un système de démonstration a ensuite été réalisé sur la base d’un microcontrôleur STM32 et de l’ensemble photodiode/LED IR

Classification en temps réel sur STM32

  • Dans la phase finale de développement, un classificateur naïf bayésien a été intégré au microcontrôleur STM32 afin de décoder la position de flexion à partir des données du capteur
  • Le classificateur naïf bayésien a été choisi pour trois raisons
    • Il est plus efficace que des instructions if ou des tables de correspondance
    • Il peut traiter de nouvelles données ou des données jamais vues auparavant
    • Il peut améliorer la précision en tenant compte des relations entre plusieurs variables d’entrée
  • Le classificateur est un modèle probabiliste qui applique le théorème de Bayes
    • Dans ce système, une classe correspond à une position de flexion
    • Il fonctionne en déterminant à quelle classe appartient une mesure
  • L’implémentation utilise la bibliothèque Arm CMSIS-DSP
  • Ajustement des données du capteur

    • Pour intégrer le classificateur, les données de capteur de chaque motif d’intervalles d’air ont été ajustées à une distribution gaussienne
    • Une interface graphique Python a été développée pour accélérer l’étiquetage et l’ajustement
    • Elle utilise le GNB de scikit-learn, c’est-à-dire Gaussian Naive Bayes
    • L’interface a ensuite été améliorée pour permettre un ajustement de données plus général et plus complexe
    • Les probabilités de chaque classe sont calculées puis enregistrées dans un fichier d’en-tête utilisable par le microcontrôleur
  • Filtrage des données du capteur

    • Pour améliorer la précision du classificateur, un filtrage en deux étapes a été implémenté sur STM32
    • La première étape est un filtre de moyenne mobile de base
    • La deuxième étape est un filtre de Kalman
    • Le filtrage sert à réduire le bruit par rapport au signal d’entrée

Démo, intégration et prochaines étapes

  • La démonstration d’OptiGap comprend le processus d’assemblage et le fonctionnement du système de capteur final
  • Les éléments de démonstration incluent l’assemblage à base de filament TPU, l’atténuation lumineuse via le capteur OptiGap, l’ajustement des données du capteur, la classification de segments avec fibre optique PMMA et filament TPU, ainsi que le fonctionnement sous l’eau
  • OptiGap a aussi été intégré à EneGate, un système modulaire d’actionnement et de détection
  • Cette intégration comprend la conception d’un PCB personnalisé et l’intégration système ; les détails sont traités dans la thèse publiée en ligne
  • Une petite version de PCB optique destinée à se connecter au PCB du système EneGate a également été prototypée
  • OptiGap a aussi été validé dans de vrais systèmes de robots souples
    • Tous les détails seront traités dans l’article RoboSoft “Embedded Optical Waveguide Sensors for Dynamic Behavior Monitoring in Twisted-Beam Structures”
  • Ces travaux se poursuivent également vers la commercialisation

1 commentaires

 
GN⁺ 2024-04-12
Commentaires sur Hacker News
  • Une belle recherche, avec une documentation extrêmement soignée.
    Au début, j’allais écrire que, conceptuellement, cela ressemble beaucoup à de la réflectométrie dans le domaine temporel, mais comme Cindy Harnett semble être la directrice de thèse, elle doit déjà le savoir :)

    • J’ai fait un peu d’analyse TDR en travaillant sur la détection d’usages frauduleux de la CATV ; en pratique, on savait globalement où se trouvait chaque CPE dans l’infrastructure fibre, et le coût de collecte des données de synchronisation DOCSIS depuis ces équipements était quasiment nul.
  • Vraiment superbe. J’aime l’idée de rendre les matériaux plus auto-conscients ou inspectables ; c’est très science-fiction.
    Dans mon poste précédent, j’ai aussi travaillé sur un sujet qui touche très légèrement à cela, donc je suis d’autant plus content de le voir en page d’accueil. Notre travail consistait à apprendre la matrice de transmission d’une fibre optique avec des réseaux neuronaux à valeurs complexes. En optique, cela se faisait auparavant en propageant les équations de Maxwell, mais nous avons dépassé l’état de l’art de plusieurs ordres de grandeur avec une architecture très simple où la physique réelle se ramène à une unique multiplication matricielle complexe. Le lien avec cette recherche, c’est que lorsque la fibre optique se courbe, il faut réapprendre une nouvelle matrice. Il serait peut-être possible d’apprendre une caractérisation paramétrée, afin de modéliser la forme en spline de la fibre à partir de quelques mesures d’entrée/sortie. Mais nous ne sommes pas allés jusque-là.
    Si cela vous intéresse, les articles sont ici :
    Article orienté CS : https://papers.nips.cc/paper_files/paper/2018/hash/148510031...
    Article orienté physique : https://www.nature.com/articles/s41467-019-10057-8

    • Pourrait-on aussi détecter la torsion, plutôt que la courbure ?
  • C’est vraiment excellent. Avec un peu de mise au point, cela semble même pouvoir être produit en masse avec une très grande précision.
    Les applications sont nombreuses. En utilisant des courbes de remplissage de l’espace, on pourrait créer des capteurs 2D/3D capables de donner un sens du toucher à des robots de manière économique. En l’enroulant autour de quelque chose comme un tube flexible, on pourrait aussi obtenir une sensibilité directionnelle et l’utiliser pour la proprioception. Il semble aussi très probable qu’on puisse détecter et localiser d’autres facteurs qui influencent l’entrefer, comme les différences de température.

    • Il y a vraiment beaucoup d’applications intéressantes. On aurait pu l’utiliser pour la marche de jambes de robots souples, mais il est difficile d’en dire plus avant la publication de l’article plus tard cette année.
  • Le passage « grâce à un excellent directeur de thèse » est essentiel. C’est exactement ce qui fait la différence entre une expérience misérable et une bonne expérience.

  • Excellent billet. Les explications sont très claires, et l’utilisation des GIF et des visuels pour illustrer les concepts était parfaitement dosée.
    Je ne suis qu’un ingénieur logiciel avec une compréhension limitée de ce domaine, mais j’ai pris beaucoup de plaisir à le lire et j’ai beaucoup appris. Bravo, et félicitations pour le doctorat.

  • Ce n’est pas exactement la même chose, mais cela me fait penser au DAS, qui utilise des câbles à fibre optique pour diverses tâches de détection acoustique. En gros, c’est une sorte d’alternative aux géophones/hydrophones.
    Il y a aussi eu pas mal d’articles utilisant des fibres optiques sous-marines pour différentes tâches de surveillance. Luna Innovations les utilise pour des applications industrielles comme la détection de contraintes, et je crois que Schlumberger détient aussi plusieurs brevets de détection par fibre optique liés aux flûtes sismiques remorquées. En revanche, je n’ai jamais vu cela appliqué à la robotique souple.

    • Quand j’ai commencé l’étude bibliographique, j’ai été assez intimidé par la quantité de travaux existants. C’était particulièrement vrai pour les capteurs de type FBG.
      Mais cette idée est tellement fondamentalement simple que des personnes plus intelligentes semblent, en général, être passées à côté.
  • Idée vraiment étonnante et excellent travail.
    Les données du capteur semblent comporter des zones mortes assez importantes ; est-ce que réduire l’espacement entre les capteurs ne permettrait pas de corriger cela facilement ?
    Détecter la direction de la courbure serait-il aussi utile ? On dirait que ce serait possible en divisant le tube comme le logo Mercedes et en plaçant trois ensembles de capteurs dans un même tube externe.
    Y aurait-il aussi un moyen de détecter des courbures à plusieurs endroits ? Dans la configuration actuelle, les valeurs semblent en pratique être combinées comme un OR, ce qui risquerait de produire de mauvaises lectures. Je me demande s’il existe une bonne solution.

    • Ce sont de bonnes idées. Je ne l’ai pas encore entièrement implémenté, mais comme chaque flexion présente toujours la même atténuation relative entre les brins, il est aussi possible de détecter plusieurs flexions.
      Au final, cela devient un problème consistant à faire correspondre le delta relatif d’une lecture à la suivante. Le piège, toutefois, c’est que si toutes les articulations sont fortement courbées, à un moment donné la lumière n’atteint plus l’extrémité. Il existe aussi des moyens d’atténuer cela, mais ce commentaire est déjà trop long.
  • Je cherchais un capteur capable de détecter précisément à quelle distance et à quelle vitesse un club de golf passe au-dessus du capteur, ainsi que la forme de l’arc du swing.
    L’idée serait de créer un launch monitor de golf qui n’oblige pas à frapper une balle, afin de pouvoir jouer au golf simulé en intérieur. Par exemple, jouer en même temps que le Masters à la télévision dans son salon, sans fracasser la télé avec une balle de golf.
    Je me demande si un de ces capteurs, ou plusieurs regroupés, conviendraient.

    • Mon père avait quelque chose de similaire connecté à un ordinateur dans les années 90.
    • Le risque de frapper le capteur et de l’envoyer traverser la pièce jusqu’à la télé me semble trop grand.
      Comme indiqué plus haut, je pense qu’il serait bien préférable d’utiliser des caméras haute vitesse avec une technologie d’extraction de squelette à la Kinect. On pourrait probablement fabriquer cela dans un garage avec une PlayStation Eye et des technologies open source existantes.
    • C’est un produit qui existe déjà, et il s’appelle Optishot. Il ne fonctionne pas particulièrement bien comparé aux capteurs modernes basés sur radar ou caméra.
    • On dirait qu’il faudrait un ou deux capteurs à effet Hall et une tête de club munie d’un aimant.
  • N’est-ce pas la même technologie que dans le premier Nintendo Power Glove ? https://www.youtube.com/watch?v=3g8JiGjRQNE
    Il envoyait de la lumière dans un tube, puis mesurait cette lumière pour déclencher des entrées clavier. Ainsi, quand on pliait un doigt ou la main, une action se produisait. Les générations suivantes ont changé de mécanisme.

    • L’un des éléments qui semblent nouveaux ici, c’est qu’il n’est pas nécessaire d’avoir une fibre optique pour chaque point de flexion afin de détecter plusieurs points de flexion.
  • Je ne comprends pas ce qui se passe si le capteur se courbe à deux endroits ou plus.
    Au début, il était question d’un capteur ToF, donc je pensais qu’il observait la réflexion due à la courbure et mesurait aussi la distance jusqu’à celle-ci, mais cela ne semble pas être le cas. Si l’on plie le capteur à deux endroits, on dirait qu’on n’obtient que la somme des atténuations logarithmiques produites par les deux courbures. En supposant que l’« intensité » de la courbure fasse varier l’atténuation de manière continue, il me semble qu’il faudrait autant de brins que de positions d’espacement pour distinguer n’importe quelle combinaison de deux courbures.
    Je me demande si j’ai mal lu, ou si c’est destiné à être utilisé dans les cas où l’on sait qu’il n’y a qu’une seule courbure.

    • Dans la section “Visualization of the OptiGap Sensor System”, il semble que le motif d’espacement de plusieurs capteurs fournisse une signature unique pouvant être convertie en position exacte le long du capteur.
      D’après la section “Realtime Machine Learning on a Microcontroller”, le mécanisme qui convertit la forme d’onde en position réelle semble reposer sur un modèle bayésien.