Attualmente sto sviluppando un'applicazione per iPhone (su iPhone 5, iOS 7, Xcode 5) che richiede una determinazione molto accurata dell'attitudine attuale. L '"atteggiamento" di CMDeviceMotion non soddisfa questi requisiti perché l'algoritmo di fusione dei sensori di Apple sembra fare troppo affidamento sul giroscopio che si allontana piuttosto velocemente (nella mia esperienza). Ecco perché ho deciso di leggere i dati del sensore nudo e in seguito voglio combinarli in un algoritmo di fusione dei sensori da solo.La calibrazione del magnetometro iPhone di Apple funziona correttamente?
Quando chiedere uno dei dati del magnetometro ha due possibilità:
via CMMagnetometerData in CMMotionManager
via CMCalibratedMagneticField in CMDeviceMotion su cui Apple dice
Il CMCalibratedMagneticField restituito da questa proprietà ti dà la fi magnetica totale campo nelle vicinanze del dispositivo senza distorsione del dispositivo. A differenza della proprietà magneticField della classe CMMagnetometer, questi valori riflettono il campo magnetico terrestre più i campi circostanti, meno il bias del dispositivo.
In linea di principio (2.) è esattamente quello che voglio.
Esiste un test molto semplice se i dati del magnetometro sono calibrati correttamente. Per semplicità ci si può limitare a due dimensioni. Quando il dispositivo si trova su di esso, la combinazione B_x^2 + B_y^2 deve essere costante, indipendentemente dalla direzione verso cui punta il dispositivo. Deve solo eguagliare la componente orizzontale del campo magnetico terrestre (supponendo che non ci siano altri campi nelle vicinanze del dispositivo). Pertanto, quando si esegue un giro di 360 gradi del dispositivo che giace su di esso, i dati misurati B_y su B_x dovrebbero visualizzare un cerchio. Vedi here per i dettagli.
Ora il punto: i dati di CMCalibratedMagneticField NON risultano in un cerchio!
Qualcuno ha una spiegazione per questo? O qualcuno lo sa, come nasce il CMCalibratedMagneticField? Il magnetometro è calibrato nel senso dello link from above quando si esegue il movimento a "otto forme" del dispositivo o a cosa serve il movimento?
Btw. perché il movimento a "otto forme" e non capovolgere il dispositivo attorno al suo tre assi, che consentirebbe una calibrazione come descritto nel link from above?
Sarei molto contento per qualsiasi chiarimento con questo numero ... Grazie!
Grazie mille per la risposta! C'è un riferimento per queste informazioni disponibili? – user2980195
Ho sbagliato l'errore è stato risolto in iOS 7.0.3. Riferimento: http://support.apple.com/kb/DL1691 – Pranav
Ma questo riguarda solo l'accelerometro e non il magnetometro, giusto? – user2980195