Obecnie tworzę aplikację na iPhone'a (na iPhone 5, iOS 7, Xcode 5), która wymaga bardzo dokładnego określenia aktualnego nastawienia. "Postawa" CMDeviceMotion nie spełnia tych wymagań, ponieważ algorytm fuzji czujnika Apple wydaje się polegać zbyt mocno na żyroskopie, który dryfuje dość szybko (według mojego doświadczenia). Dlatego postanowiłem odczytywać nagie dane z czujników, a później chcę je samemu połączyć w algorytmie fuzji czujnika.Czy kalibracja magnetometru Apple iPhone działa poprawnie?
Kiedy z prośbą o jeden danych magnetometru ma dwie możliwości:
poprzez CMMagnetometerData w CMMotionManager
poprzez CMCalibratedMagneticField w CMDeviceMotion o którym Apple mówi
CMCalibratedMagneticField powrócił przez tę właściwość daje całkowite magnetyczne fi w pobliżu urządzenia bez uprzedzeń dotyczących urządzenia. W przeciwieństwie do właściwości MagnetField klasy CMMagnetometer, wartości te odzwierciedlają pole magnetyczne Ziemi plus otaczające pola, minus polaryzacja urządzenia.
Zasadniczo (2.) dokładnie to, czego chcę.
Istnieje bardzo prosty test, jeśli dane magnetometru są prawidłowo skalibrowane. Dla uproszczenia można ograniczyć się do dwóch wymiarów. Gdy urządzenie leży na plecach, kombinacja B_x^2 + B_y^2 musi być stała, niezależnie od kierunku wskazywanego przez urządzenie. Musi równać się poziomemu komponentowi ziemskiego pola magnetycznego (zakładając, że nie ma innych pól w pobliżu urządzenia). Tak więc, przy wykonywaniu obrotu 360 stopni urządzenia, które leży na jego plecach, zmierzone dane B_y ponad B_x powinny wyświetlać okrąg. Aby uzyskać szczegółowe informacje, patrz: here.
Teraz punkt: dane CMCMagnesMagneticField NIE prowadzą do koła!
Czy ktoś ma wytłumaczenie tego? A może ktoś wie, w jaki sposób powstaje CMCalibratedMagneticField? Czy magnetometr jest skalibrowany w sensie link from above podczas wykonywania "ośmiokształtnego" ruchu urządzenia lub do czego jest odpowiedni ruch?
Przy okazji. dlaczego ruch "ośmiokształtny", a nie odwracanie urządzenia wokół jego trzech osi, co pozwoliłoby na kalibrację opisaną w link from above?
Byłbym bardzo zadowolony z wyjaśnienia w tej sprawie ... Dzięki!
Dziękuję bardzo za odpowiedź! Czy istnieje odniesienie do tych informacji? – user2980195
Myliłem się, błąd został naprawiony w iOS 7.0.3. Odniesienia: http://support.apple.com/kb/DL1691 – Pranav
Ale dotyczy to wyłącznie przyspieszeniomierza, a nie magnetometru, prawda? – user2980195