我目前正在開發iPhone應用程序(在iPhone 5,iOS 7,Xcode 5上),這需要非常準確地確定當前的態度。 CMDeviceMotion的「態度」並不能滿足這些要求,因爲蘋果的傳感器融合算法似乎過分依賴於相當快速(以我的經驗)漂移的陀螺儀。這就是爲什麼我決定讀出裸露的傳感器數據,後來我想在自己的傳感器融合算法中結合它。Apple的iPhone磁力計校準是否正常工作?
當詢問磁力數據的一個有兩種可能性:
通過CMMagnetometerData在CMMotionManager
通過CMCalibratedMagneticField在CMDeviceMotion關於蘋果公司說
的CMCalibratedMagneticField返回通過這個屬性給你的總磁性fi在設備附近沒有設備偏差。不像CMMagnetometer類的磁感應強度特性,這些值反映了地球的磁場加上週圍的田地,再減去器件偏置。
原則上(2)正是我想要的。
如果磁力計數據正確校準,有一個非常簡單的測試。爲了簡單起見,可以將自己限制在兩個維度上。當設備位於背面時,組合B_x^2 + B_y^2必須保持不變,與設備指向的方向無關。它必須等於地球磁場的水平分量(假設設備附近沒有其他場)。因此,當執行位於其背面的設備的360度旋轉時,B_x上的測量數據B_y應顯示一個圓圈。詳情請參閱here。
現在重點:CMCalibratedMagneticField的數據不會導致一個圓圈!
有沒有人有這一個解釋?還是有人知道,CMCalibratedMagneticField是如何產生的?當執行設備的「八字形」運動時,磁力計是否按照link from above的標準進行了校準,或者該運動的好處是什麼?
Btw。爲什麼「八字形」運動並沒有圍繞它的三軸翻轉設備,這將允許按照link from above中所述進行校準?
我會很高興澄清這個問題......謝謝!
非常感謝您的回答!有沒有這種信息的參考? – user2980195
我錯了,錯誤在iOS 7.0.3中修復。參考:http://support.apple.com/kb/DL1691 – Pranav
但這隻涉及加速度計而不是磁力計,對不對? – user2980195