Discontinuità angoli di Eulero

robw
Salve,
ho dei dubbi sugli angoli di Eulero, in particolare sulle discontinuità trattate nella Fig.1 (http://tinypic.com/view.php?pic=i26g6e&s=9#.V6uxZaJBrkU). Per quanto è scritto le discontinuità causa la presenza di due angoli di Eulero per ciascuna orientazione.
Ciò è dimostrato tramite il seguente esempio:
The presence of two solutions is easily demonstrated with the starting position of the device laid flat on
the table and then applying these two rotation sequences:
-rotation of 180° in pitch
-rotation of 180° in yaw followed by a rotation of 180° in pitch
Both rotation sequences result in the same physical orientation and the same orientation matrix and quaternion.

Ma non c’è un errore??? Le 2 sequenze danno l’orientazione in due direzioni opposte.
Un'altra cosa non chiara è la matrice equivalente sempre di Fig.1.

Non mi sono chiari nemmeno i grafici di pag. 10-11della Fig.1 seconda parte.
Nell’altro documento, l’AN4248 (http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf), nel paragrafo 7.2 si parla dell’implementazione di un filtro passa basso per ridurre il range degli angoli. E’ questo il filtro che permette di evitare le discontinuità?
Evita anche il gimbal lock?
Cosa è il paramentro N?

Grazie in anticipo per ogni genere di aiuto.

Risposte
apatriarca
Credo che volesse dire 180° di rullaggio (mi sembra sia questa la traduzione di roll) nell'esempio. Nel testo successivo sembra in effetti suggerire che sia così.

Che cosa non ti è chiaro della matrice nell'immagine? Non mi sono messo a fare calcoli ma dovrebbe semplicemente essere la matrice che si ottiene sviluppando i calcoli nel prodotto delle tre matrici in cui ha sostituito gli angoli. Ti viene diverso?

I grafici rappresentano come cambiano gli angoli con una rotazione completa intorno ad ogni asse dopo che sono stati modificati per rimanere all'interno dei valori accettati dalla convenzione scelta. Che dubbi hai al riguardo?

Ho dato una occhiata molto veloce al codice ma, essendo semplicemente un filtro passa basso non ha nulla a che vedere con la riduzione degli angoli (al massimo con la riduzione del rumore e delle alte frequenze). La necessità di lavorare all'interno dell'intervallo \([-360, 360]\) complica un po' il calcolo ma non cambia nulla nel significato dell'operazione. Non vedo come potrebbe risolvere quindi problemi come il gimbal lock.

robw
Grazie per la risposta.
Ma se non ha nulla a che vedere con gli angoli perchè dice di usarlo per cascun angolo??
Se non sbaglio nel documento (http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf)c'è scritto:
fine pag.16
"The code is written for filtering the yaw (compass) angle ψ but can also be used for the roll angle φ with changes to use iPhi instead of iPsi."
inizio pag.17
"For the pitch angle θ, which is restricted to the range -90° to 90°, the final bounds check should be changed to:"

apatriarca
Quando ho detto che non aveva nulla a che fare con gli angoli intendevo dire che non sta applicando una riduzione agli angoli. Gli angoli e l'orientamento rimangono gli stessi ma li sta riportando nell'intervallo di interesse. Supponi di star facendo una operazione più semplice su un singolo angolo (calcolare la media tra due valori consecutivi). Sai che i valori sono nell'intervallo \([0, 360).\) Supponi di avere i due valori \(358\) e \(1.\) Se utilizzi questi due valori per calcolare la media ottieni un angolo molto lontano da entrambi. È quindi opportuno trasformarli (per esempio scrivendo \(1\) come \(361\)), calcolare la media (ottenendo \(359.5\)) e quindi riportando il valore nell'intervallo voluto nel caso non fosse all'interno di esso. L'operazione fatta in quel paragrafo è simile, ma più complicata.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.