Ottenere il nord magnetico da un magnetometro xyz (iPhone 3.0)
-
20-08-2019 - |
Domanda
In realtà sto ripubblicando una domanda dalle schede di sviluppo di iPhone. Non l'ho chiesto, ma l'ho trovato quando ho cercato di trovare la sua risposta. Nessuno aveva ancora risposto lì, quindi ho pensato di provare a pubblicarlo qui.
Grazie in anticipo per qualsiasi aiuto!
Qualcuno sa qualche dettaglio sull'algoritmo di calcolo dell'intestazione magnetica dai valori grezzi xyz di CLHeading? Sono sicuro che ci deve essere un approccio generale a questo che funziona anche per diversi magnetometri.
Soluzione
Se non si desidera utilizzare il valore trueHeading
e supponendo che la bussola sia perfettamente orizzontale, l'intestazione può essere calcolata in questo modo:
- (y > 0) intestazione = 90 - atan2 (x, y) * 180 / pi
- (y < 0) titolo = 270 - atan2 (x, y) * 180 / pi
- (y = 0, x < 0) intestazione = 180,0
- (y = 0, x > 0) intestazione = 0.0
(questi sono da http://www.magneticsensors.com/datasheets/an203.pdf )
... più l'intestazione deve essere corretta per Deviazione magnetica e Declinazione magnetica
nel caso in cui la bussola non sia orizzontale, è necessario utilizzare solo la componente orizzontale (non è possibile ignorare l'asse z) proiettando il vettore (x, y, z) su un piano parallelo alla superficie terrestre e quindi calcola l'intestazione da questo proiettato x e y.
Spero che sia d'aiuto.