Matrici di rotazione e atan2

From: fenestren <fenestren_at_gmail.com>
Date: Mon, 17 Jan 2011 15:06:33 -0800 (PST)

Ciao a tutti.

Ho tre matrici di rotazione per il calcolo della posizione di un aereo
nello spazio 3D:

R_phi=[1 0 0; 0 cos(phi) sin(phi); 0 -sin(phi) cos(phi)]; con phi che
rappresenta il rollio

R_teta=[cos(teta) 0 -sin(teta); 0 1 0; sin(teta) 0 cos(teta)]; con
teta che rappresenta l'elevazione

R_psi=[cos(psi) sin(psi) 0; -sin(psi) cos(psi) 0; 0 0 1]; con psi che
rappresenta l'azimuth

e le inverse di R_phi ed R_teta

R_phi_inv=[1 0 0; 0 cos(phi) -sin(phi); 0 sin(phi) cos(phi)];

R_teta_inv=[cos(teta) 0 sin(teta); 0 1 0; -sin(teta) 0 cos(teta)];

Prendo un vettore colonna G=[0; 0; 1] che � il vettore campo di
gravit� normalizzato e faccio:

A=R_phi*(R_teta*R_psi), ossia ruoto prima di psi, poi di teta e poi di
phi ottenendo il vettore della gravit� nella posizione finale.

Esistono in rete delle formule per cui, partendo da A=[ax; ay; az], si
possono riottenere i valori di phi e teta, facendo:

phi= atan2(ay, sqrt(ax^2+az^2));

teta=-atan2(ax, sqrt(ay^2+az^2));

Come mai se scelgo un qualunque angolo -20<teta<+20 deg e -20<phi<+20
deg, le formule mi restituiscono correttamente teta ma non phi?

La cosa strana � che se per ottenere A moltiplico prima per R_phi e
poi per R_teta, alla fine mi ribecca in pieno phi ma non teta?

Provate!

C'� qualche propriet� nell'ordine delle matrici o nella formula della
atan2?

Grazie.

Luca.
Received on Tue Jan 18 2011 - 00:06:33 CET

This archive was generated by hypermail 2.3.0 : Thu Nov 21 2024 - 05:10:32 CET