Localisation d'un émetteur par trilatération
Bonjour,
Je poste ce message dans le but de recevoir de l'aide sur un projet. A l'aide de 3 Raspberry je dois localiser un émetteur de signaux (box wifi, émetteur bluetooth, ...). Je dispose de la fréquence et de la puissance du signal reçue par chaque Raspberry ainsi que des coordonnées GPS (en degré décimal) de celles-ci.
A l'aide de la formule suivante, on détermine la distance Raspberry-Emetteur:
distance = 10 ^ ((27.55 - (20 * log10(fréquence)) + |puissance|)/20)
Avec la distance en mètres, la fréquence en MHz et la puissance en dBm.
Jusque là je n'ai pas de soucis. On obtiens donc 3 cercles (chaque cercle a pour centre une des Raspberry et pour rayon la distance entre cette Raspberry et l'émetteur).
Je précise que les
Mon problème est là. Comment déterminer l'intersection de ces 3 cercles.
J'ai vu qu'il existe des formules mathématiques, mais aucune ne marche.
Merci d'avoir pris le temps de me lire.
1 pièce(s) jointe(s)
Localisation d'un émetteur par trilatération
Bonjour,
Etant donnés les 3 cercles de rayons (d1, d2, d3) centrés aux points (C1, C2, C3) où se trouvent les détecteurs Raspberry, tu pourrais envisager de repérer à l'intérieur du triangle formé le minimum de la somme des carrés:
S(x, y) = (C1M - d1)2 + (C2M - d2)2 + (C3M - d3)2 ;
La position ainsi détectée est la plus proche de chacun des cercles précédemment définis.
Si tu disposes de plus des incertitudes (∆1, ∆2, ∆3) affectant chacune des distances, tu peux travailler sur la somme (cette fois sans dimension):
T(x, y) = (C1M - d1)2/∆12 + (C2M - d2)2/∆22 + (C3M - d3)2/∆32 .
1 pièce(s) jointe(s)
Localisation d'un émetteur par trilatération
Le minimum est encore plus net si l'on s'intéresse à la racine carrée de la somme:
Localisation d'un émetteur par trilatération
Citation:
Envoyé par
hyust
... Dans ton message, à quoi correspondent les points C1, C2 et C3? Sont ils de la forme (x;y)? Et qu'est ce que M?
Les points (C1, C2, C3)) représentent les positions des 3 détecteurs; ils sont définis par leurs coordonnées (Xc1, Yc1), (Xc2, Yc2), (Xc3, Yc3) qui font partie des 9 données du problème, avec les distances (D1, D2, D3).
(M) est un point quelconque du domaine rectangulaire envisagé, et de ses coordonnées (x, y) dépend la somme S(x, y) dont on recherche le minimum:
S(x, y) = (C1M - d1)2 + (C2M - d2)2 + (C3M - d3)2 ;
avec
C1M2 = (x - Xc1)2 + (y - Yc1)2 ,
C2M2 = (x - Xc2)2 + (y - Yc2)2 ,
C3M2 = (x - Xc3)2 + (y - Yc3)2 .
Localisation d'un émetteur par trilatération
Citation:
Envoyé par
hyust
Je ne vois toujours pas ce qu'est M. Il peut être n'importe quel point du plan? Comme (0;5) par exemple? Et les coordonnées x et y sont elles celles de S ou de M? ...
(M) est un point quelconque du domaine bidimensionnel étudié, qu'il faut explorer si l'on veut trouver l'extremum de la fonction S(x, y).
Dans le cas de l'image donnée plus haut (#04), représentant les variations de la fonction 5(x, y), le couple de coordonnées (x, y) est une paire d'entiers (au format Word ou LongInt) appartenant au domaine de l'image, soit:
[0..(Largeur - 1)]×[0..(Hauteur - 1)] ;
dans le cas de la recherche analytique du minimum (que l'image précédente permet de cerner en en donnant une solution approchée), (x, y) sont des nombres décimaux au format Extended dont on cherche la limite avec une précision arbitraire (compatible avec celle du processeur).
Citation:
Envoyé par
hyust
... Dernière chose, dans ton équation S= ... il y a C2M, or en dessous tu as C2M2. Comment revenir à la forme attendue dans l'équation S= ?
Il faut prendre la racine carrée des expressions correspondantes, par exemple:
C2M = [C2M2]1/2 = [(x - Xc2)2 + (y - Yc2)2]1/2 .
Il s'agit des distances euclidiennes, données par la relation de Pythagore.
1 pièce(s) jointe(s)
Localisation d'un émetteur par trilatération
Une donnée essentielle me paraît absente de cette discussion: la portée des récepteurs, dont je suppose (faute de toute cindication technique) qu'elle est de l'ordre de quelques centaines de mètres; cependant quand bien même elle atteindrait une dizaine de kilomètres, on reste très en-dessous du rayon terrestre.
La courbure de la surface est par conséquent négligeable, et l'on doit pouvoir simplifier les calculs d'une manière drastique, et se ramener à un problème de géométrie plane, dans un plan tangent à la sphère au voisinage des récepteurs considérés.
J'ai tenté ci-dessous de présenter le changement de repère en cause, en allant à l'essentiel par le chemin le plus court et le plus simple, donc en zappant toute considération d'analyse vectorielle.
Il serait bon que tu donnes à titre d'exemple les coordonnées (φ, λ) de trois positions rencontrées.
1 pièce(s) jointe(s)
Localisation d'un émetteur par trilatération
Citation:
Envoyé par
tbc92
Il y a un jeu d'exemple, avec 3 points à une dizaine de mètres les uns des autres, latitude 49° ; donc tout va bien ...
Ces données m'avaient échappé, je vais regarder ce à quoi elles conduisent. Je ne m'attendais pas à des distances aussi faibles
Sonde 1 (-0.502321;47.490327)
Sonde 2 (-0.50245;47.490287)
Sonde 3 (-0.502439;47.490378)
distS1: 5.4476845467318m
distS2: 4.8552539629314m
distS3: 1.5353661141422m
Citation:
Envoyé par
tbc92
... Ici, tu proposes de travailler en 3D. Ça peut être utile.
Si les 3 sondes sont au niveau du plancher, si le point M est au niveau du plafond, voire du 2ème étage, on peut avoir des biais.
Je chipote, je chipote. ...
Il y a malentendu: il s'agissait simplement de montrer, avec le maximum de concision, le passage d'un trièdre trirectangle (CXTYTZT) à un autre (u, v, w); la figure géométrique étudiée reste cependant dans un plan, le plan contenant le point (M) et orienté par les deux vecteurs orthoradiaux (u, v).
La méthode des moindres carrés peut être transposée dans l'espace, mais je n'ai pas du tout envisagé cela: la question de l'intersection commune à 3 cercles est déjà suffisamment compliquée ! :D
Je me suis laisser emporter par un désir excessif de simplification, en oubliant les distances renvoyées par les détecteurs:
On se ramène ainsi à un simple calcul de distances dans un repère orthonormé, où l’introduction du rayon terrestre (R T ) est inutile, de même que toute conversion d’unité d’angle ...
C'est faisable, mis amène finalement des complications inutiles, et risque de dérouter des lecteurs qui seraient peu familiers des changements d'unité. Mieux vaut s'en tenir aux relations classiques, impliquant des distances exprimées en mètres, et des angles en radians:
xj = RTCos(λ0).∆φj = RTCos(λ0).(φj - φ0) , yj = RT.∆λj = RT.(λj – λ0) .
Un facteur d'échelle approprié pourra être défini au niveau de l'algorithme.
1 pièce(s) jointe(s)
Localisation d'un émetteur par trilatération
Le programme est nettement plus lourd en raison de la nécessité de calculer un double système de coordonnées, l'un pour la figure géométrique et l'autre pour l'image.
Les données ne sont guère cohérentes, notamment la dernière distance (Dist3) dont la valeur apparaît manifestement trop faible (à moins bien sûr d'une erreur de calcul).
La méthode des moindres carrés conduit toujours à un résultat (croix blanche), mais qui ne présente guère de sens.