2013-12-16 6 views
11

私は現在、現在の姿勢を非常に正確に判断する必要のあるiPhone App(iPhone 5、iOS 7、Xcode 5)を開発中です。 CMDeviceMotionの「姿勢」は、Appleのセンサー融合アルゴリズムがジャイロスコープにあまりにも頼りすぎているように見えるため、これらの要件を満たしていません。だから私は裸のセンサーのデータを読んだ後に、それをセンサー融合アルゴリズム内で自分で組み合わせたいと思っています。 AppleはCMCalibratedMagneticFieldが返さAppleのiPhone磁力計の較正は適切に機能していますか?

言うかについてCMDeviceMotionにCMCalibratedMagneticField経由CMMotionManager

  • にCMMagnetometerData経由

    1. 磁力計データ1を求める二つの可能性がありますこのプロパティによって、あなたは、デバイスバイアスなしでデバイスの近傍に設置してください。 CMMagnetometerクラスのmagneticFieldプロパティとは異なり、これらの値は、地球の磁場+周囲のフィールドにデバイスバイアスを引いたものを反映します。

  • 原則(2.)は私が欲しいものです。

    磁力計データが適切に較正されているかどうかは非常に簡単なテストです。簡単にするために、自分自身を2次元に制限することができます。デバイスがその上にあるとき、B_x^2 + B_y^2の組み合わせは、デバイスが指している方向とは無関係に一定でなければなりません。それは、地球の磁場の水平成分にちょうど等しい必要があります(デバイスの近くに他のフィールドがないと仮定します)。従って、その上にあるデバイスの360度回転を行う場合、B_x上の測定データB_yは円を表示するはずである。詳細については、hereを参照してください。

    ここでポイント:CMCalibratedMagneticFieldのデータは円になりません!

    Plot

    誰もがそのための説明がありますか?それともCMCalibratedMagneticFieldの仕組みですか?装置の「8字型」の動きをするとき、またはその動きが何のために良いのかを知るために、磁力計はlink from aboveの意味で較正されていますか?

    Btw。なぜ "8字型"の動きをして、その周りにデバイスを反転させないで、link from aboveに記載されているような校正を可能にする3軸ですか?

    私はこの問題を解決するために非常にうれしいです...ありがとう!

    答えて

    2

    iOS 7の磁力計に問題があります。誤差は+-7ºです。 7.1ベータ版をお試しください。

    EDIT

    磁力計は時間をかけてゼロドリフトを持っていますが、位置の急激な変化のためにかなり不正確です。一方、加速度計とジャイロスコープは急激な変化に対して迅速に調整しますが、慣性センサーであるため一定期間にわたって精度が失われます。

    したがって、CMCalibratedMagneticFieldが回転動作を補正しようとすると、ジャイロスコープと加速度計のデータが使用されます。これは、加速度計とジャイロスコープの+/-7ºの誤差が入り込み、あなたのサークルをオフトラックするときです。詳細はanswerwikipedia articleをご確認ください。

    図8に関して: どちらも同じことをしていますが、両方とも磁気干渉を取り除くために、デバイスの "北"方向を各方向に向いています。 3つの軸すべてに沿ってデバイスを反転させると機能は向上しますが、実行するのは難しく、ユーザーが容易に理解できません。

    これが役に立ちます。

    +0

    ありがとうございます。この情報の参考資料はありますか? – user2980195

    +0

    iOS 7.0.3でエラーが修正されたのは間違っていました。リファレンス:http://support.apple.com/kb/DL1691 – Pranav

    +0

    しかし、これは磁力計ではなく、加速度計にのみ関係します。 – user2980195

    関連する問題