Anthias
mail
4 connectés     # # # #

Localisation ultrasonique

dans une pièce

Maj : 22/06/19

Abstract :
A very accurate goniometric system to locate the exact position of a people in a room. Use three ultrasonic microphones linked in network, on the walls, and a small transmitting box in the pocket of the target. A small controller calculates delays and display position.

Résumé :
Un système très précis pour localiser la position exacte d'une personne dans une pièce. Utilise trois micros ultrasoniques reliés en réseau, sur les murs, et une petite boîte émettrice dans la poche de la cible. Un petit contrôleur calcule les délais et affiche la position.

Problématique

Identifier en permanence la position d'une personne (ou d'un animal) dans une pièce pour divers motifs :

Élément de sécurité pour empêcher un opérateur d'approcher d'une machine ou d'une zone dangereuse pendant les opérations.

Ouvrir et refermer automatiquement des portes de sas, par exemple pour ne laisser passer qu'un convoyeur de fonds identifié (ou sa valise) dans un couloir sécurisé, commander l'éclairage automatique par zones de locaux peu fréquentés (faible précision requise).

Piloter avec une très grande précision un spot de poursuite automatique centrant un artiste très mobile sur scène.

Tester les réactions d'un téléspectateur pour voir combien de temps il est allé faire pipi pendant la pub...

Avec un animal, il vaudra mieux commencer par un gros, une vache sera plus facile à équiper (et à repérer dans un couloir) qu'une souris ou qu'un poisson rouge.

 Haut de page

Principe de la triangulation

La solution simple est d'équiper la cible d'un boîtier accroché à sa ceinture. Le principe est d'utiliser un boîtier actif émettant librement des bips ultrasons. Des récepteurs placés sur les murs et reliés à un bus écoutent les bips. Un microcontrôleur central mesure les délais et donne la positon triangulée.

Avec deux récepteurs, deux points possibles à l'intersection des deux cercles, incertitude.

Avec trois récepteurs levée du doute, la zone de présence est un petit triangle (curviligne)

Avec plus de récepteurs, diminution de la surface du polygone de la zone de présence, moins d'ombres.

Les retards sont toujours affectés d'une constante due au fait que le maître ne synchronise pas l'émission, mais cette constante est annulée par le logiciel qui décale son top synchro après analyse de chaque réponse des récepteurs, cette constante est annulée à chaque cycle.

Un petit schéma montre l'application

En prenant 330 mètres/seconde pour la vitesse du son soit 3.3 m par 10 ms

Le récepteur 1, rouge, reçoit le top avec un retard de 21.7 ms,
distance = 7.2 mètres
Le récepteur 2, vert, reçoit le top avec un retard de 19 ms,
distance = 6.3 mètres
Le récepteur 3, bleu, reçoit le top avec un retard de 12,7 ms,
distance = 4.2 mètres

Le microcontrôleur maître sort son petit compas et son papier millimétré et donne les coordonnés XY du centre du triangle noir, position la plus probable. Si l'eau monte dans la pièce, il faudra considérer que la vitesse de propagation passe à 1500 m/s et penser à prendre son tuba…

Il est utile d'augmenter le nombre de récepteurs si la zone à tester est masquée ou s'étale sur plusieurs pièces.

Je détaillerai ultérieurement un des points clefs du système, la résolution d'un système d'équations (les lieux sont des hyperboles), très lourde pour un microcontrôleur en assembleur est facile en C.. L'algorithmique est basée sur une approche dichotomique par tables pré-calculées, méthode rapide et très précise.

Remarque sur les vitesses

Bien évidemment, cela de marche qu’à cause de l’extrême lenteur de la propagation sonore. Le timer d’un microcontrôleur sait compter dans le domaine des microsecondes, donc sait résoudre le millimètre sans problème en comparant un retard de phase d’un signal comparé à un pilote.
Cela ne marcherait évidemment pas aussi simplement avec des ondes radio dont la propagation est un million de fois plus rapide. Un GPS sait faire cela mais au prix d’une incroyable complexité, hors de portée de l’amateur !

 Haut de page

Détermination du retard

Le principe va être de déterminer ce retard inconnu mais constant pour les trois récepteurs, qui au départ ne connaissent évidemment pas l’instant initial d’émission.
Voici une approche basique qui peut être adoptée, mais avec un peu d’astuce, il est possible d’optimiser.

Première trame, le contrôleur vient de lire les délais des trois récepteurs et les a mis en mémoire, variables A1, B1, C1, en prenant un top de départ quelconque.
Le programme commence par supposer que le délai le plus court des 3 est nul, et soustrait cette valeur aux deux autres, par exemple A1 est le plus petit. Nous obtenons maintenant trois nouveaux délais : A1-A1=0 , B1-A1 et C1-A1.
Cette hypothèse de départ signifie donc que l’émetteur serait au contact du premier récepteur A (retard nul). Par intersection des courbes des deux autres, vérifions cette affirmation. Si les 2 cercles se coupent bien en A, l’émetteur est localisé, il est au contact de A, c’est terminé, mais ce cas particulier est très peu probable.

Nous allons maintenant essayer une suite de retards tels que un ou plusieurs donnent une intersection dans la zone probable. Tous les retards ne donnant pas de solution ou un triangle de grande surface sont rejetés.
Si la géométrie a été bien calculée, il n’y aura q’une solution. Il faut déterminer le retard le plus long possible correspondant au point le plus éloigné de A. Ces trois valeurs (éloignement maximum de l’émetteur aux trois sources) ont été mises en mémoire une fois pour toutes.

En procédant systématiquement par découpage de ce retard maximum en une centaine de tranches et en affichant le graphe de l’inverse de la surface du triangle curviligne d’interception, une jolie gaussienne va apparaître. En pratique ce pic sera unique et déterminera le retard qui sera pris comme base. évidemment, les moins « bourrins » qui après les phases d’essais ont vu que la courbe existait bien, ne vont pas s’amuser à recalculer une centaine ou plus d’états successifs (nuls à plus de 95% des cas), mais arriveront au résultat très précis en mois d’une dizaine d’étapes par dichotomie.

Ce retard sera évidemment recalculé pour chaque trame, l’instant d’émission suivant n’étant pas avec précision, toutefois, l’émetteur étant piloté à quartz et dérivant très faiblement, la stratégie sera plus subtile.

En début d’acquisition, le système ne cherchera pas à donner la position, mais simplement à calculer l’instant d’émission et se synchronisera en affinant le calcul du top. Quand la précision maximale aura été atteinte, les trois délais absolus seront calculés à chaque trame pour donner la position, mais en plus, un calcul sera fait avec un délai très faiblement plus long, un autre plus court pour déterminer si une surface plus faible du triangle peut être trouvée.
Cela signifierait que le top prévu a légèrement glissé, le programme va alors le recaler pour que la valeur centrale soit toujours optimale.

Le système a maintenant terminé son apprentissage et passe en mode opérationnel en plotant la position sur la carte de la pièce, sous forme de courbes de niveaux, le point haut de la montagne étant la position le plus probable.

 Haut de page

Réalisation pratique

Le boîtier est actif, alimenté par 4 accus R6 NiMh, ou batterie Li-Ion de téléphone, autonomie de plus de 24 h.

Il émet un bip sur un cristal piézo, impulsion modulée à 10 kHz, 10 périodes soit une milliseconde toutes les 100 ms, commande par un timer libre en hard basé sur un dérivé du NE555 en CMS, il n'y pas de microcontrôleur.

Le boîtier actif comprend :

alimentation par accumulateurs
circuit timer
oscillateur à onde de surface (ou auto oscillateur via une spire du transfo)
driver et le push-pull de puissance
ferrite de transformation
cristal d'émission

Le boîtier se charge sur son support qui coupe l'émission, un ILS (interrupteur à lames souples) est placé dans le boîtier, un aimant sur le support.

Trois récepteurs (c'est le même type de cristal) sont disposés sur les murs de la pièce (sommets d'un triangle presque équilatéral). Le signal est mis en forme par un passe fréquence amorti et déclenche le timer interne d'un microcontrôleur pic.

Il y a un ATTiny par récepteur (modèle de base à 1.5 Euros), c'est le plus économique et fiable et règle définitivement le problème des collisions. Ces trois (ou plus) contrôleurs sont reliés à un bus 2 paires torsadées, en fil téléphonique. La première paire transporte l'alimentation 5 V, l'autre les signaux en bidirectionnel non simultané. Sur cette même ligne est le microcontrôleur maître.

Il envoie un top synchro pour "reseter " les timers des récepteurs esclaves, puis N trames contenant les adresses successives des N contrôleurs.

Le contrôleur qui identifie son adresse renvoie la valeur de son timer. Le maître traite les N retards et donne le point triangulé directement sur un afficheur en coordonnées XY. Il suffit la première fois d'étalonner les 4 coins de la pièce en y plaçant le boîtier et d'affiner pour les recoins cachés si les zones d'ombre sont importantes.

Il y a deux manières de travailler :

Soit le maître corrige les positions par l'intermédiaire de look-up tables téléchargées et affiche les coordonnées corrigées.
Soit le maître envoie les coordonnées brutes au PC de traitement qui effectuera corrections et affichages.

La liaison au PC se fait par infra-rouge ou RS-232 si le maître est dans la même pièce. Dans le cas contraire, il faut implanter un contrôleur Ethernet sur le maître, l'information est alors disponible sur tous les PC de réseau. Cette solution est plus souple, l'implantation d'une interface Ethernet sur micro contrôleur est bien documentée dans les notes d'applications constructeurs.

Il est alors très simple de renvoyer la position sur un plan de la pièce affiché sur un moniteur par le port série, et de déterminer les zones à risques (par exemple en utilisant des couches sous Autocad, par les propriétés des gifs…)

 Haut de page

Précision espérée

Considérons d'abord la résolution possible pour un timer implanté dans un microcontrôleur. Prenons le cas la famille 8051, comme les petits otp ou le 80c552, un vieux classique lent mais très répandu, ou un ATTiny plus rapide.

A 11.0592 MHz de fréquence horloge, un pas pour 10 clocks, donne une résolution d'environ 1 microseconde, un circuit moderne fait beaucoup mieux…

En prenant une vitesse du son arrondie à 330 m/s, 0.3 m/ms soit 0.3 mm/µS. Le timer d'un petit microcontrôleur donne la µS de résolution au minimum, cela laisse espérer une résolution de l'ordre de 0.3 mm. En pratique, à cause des réflexions parasites, et du filtrage on obtient de l'ordre du centimètre.

Dans un atelier avec un spectre très pollué et encombré de grosses machines masquant des zones et générant des échos, la précision est meilleure que 10 cm avec 4 récepteurs.

Astuces de réalisation
Les capsules piezo montent beaucoup plus haut en fréquence que les tweeters, cela permet une résolution fine.
Pour une réalisation soignée, il n’est pas souhaitable d’utiliser un simple oscillateur indépendant à l’émission car le contrôleur doit piloter l'onde émise, les mesures se font sur la phase du signal de retour, la fréquence et le niveau de l’émission varient constamment pour discriminer les signaux utiles par rapport au bruit.

 Haut de page

Sonde d'échographie

Autres applications de ce système, pour une sonde d'imagerie par échographie.
Lorsque l'on utilise une sonde d'échographie dans le but de créer une reconstitution de l'environnement en 3D, par exemple pour une image médicale, il faut déplacer une sonde autour du patient. Il est indispensable de connaître avec une grande précision la position et l'orientation de la sonde dans l'espace. Les systèmes classiques utilisent un bras à triple rotule, avec recopie des angles de chaque articulation. Ces multiples mesures augmentent l'incertitude.
Ce système adapté avec 4 ou 6 capteurs proches et comportant un clinomètre 3 axes permet de repérer la position et l'orientation avec des précisions très supérieures à celles des bras mécaniques. L'incertitude sur la position influe directement sur la précision de la reconstitution 3D. A cause de l'accumulation des erreurs, un écart de 1 mm sur la position du capteur induit une imprécision plus grande sur le point reconstitué par accumulation de bruit.
Dans ce cas, le problème est plus simple que pour l'émetteur libre, en effet la sonde doit être reliée au bloc électronique, il faut véhiculer impérativement la puissance de la sonde, donc le top émission est connu. Il suffit de rajouter un câble signal véhiculant les trois angles. Cela évite de mettre en oeuvre l'algorithme complexe de reconstitution de la synchronisation. C'est la même sonde qui sert d'émission réception pour l'imagerie et la triangulation.

Cette page ne contient aucun lien externe à maintenir

© Christian Couderc 1999-2024     Toute reproduction interdite sans mon autorisation


* Page vue   18427   fois       IP : 3.136.25.249

 Haut de page         Dernière retouche le 27 Juin 2019 à 13 h         Retour page précédente

   Collector