Un problema che si ha con il posizionamento decawave e' quello di ottenere la posizione (coordinate) data la distanza da due punti conosciuti
Alla fine il problema si riduce ad ottenere gli angoli di un triangolo di cui sono conosciute le lunghezze di tutti i lati
diciamo che il lato A sia la distanza tra i due anchor mentre C e B sono le distanze del tag rispetto ai due anchor
Tutti i lati possono essere riscritti come
A = Ccos(alfa)+Bcos(beta)
B = Acos(beta)+Ccos(gamma)
C=Acos(alfa)+Bcos(gamma)
si tratta si un sistema di tre equazioni con 3 incognite e quindi risolvibile. Per semplice sostituzione si arriva alla fine che
cos(beta) = (A*A)+(B*B)-(C*C)/2AB
cos(alfa) = (A*A)+(C*C)-(B*B)/2AC
cos(gamma) = (B*B)+(C*C)-(A*A)/2BC
a questo punto abbiamo tutti gli angoli. Si puo' spostare un anchor sulle origine degli assi e ruotare gli assi in modo che il secondo anchor sia in coordinata (x2,0)
A questo punto le coordinate incognite del punto tra B e C sono
X = Bcos(alfa)
Y = SQRT(1 - cos(alfa)*cos(alfa))
Nessun commento:
Posta un commento