コンパス精度のジレンマ
-
03-10-2019 - |
質問
アプリケーションのためにコンパスを構築する必要があります。
ドキュメントを読むことから、これを行う合理的な2つの方法があるようです。
- sensor.type_orientationメソッド:これは簡単な方法です。これの問題は、それが正確ではないことです。私の読書をスナプティックコンパスと比較すると、それは私の目的のために受け入れられない約10〜15程度です。
- sensor.type_acceleromer、sensor.type_magnetic_fieldおよびgetRotationMatrix()remapCoordinatesystem()およびgetOrientation()メソッドと組み合わせて、ドキュメントは「通常はより正確だ」と述べています。問題は、リスナーに登録する遅延に関係なく、デバイスが平らな表面で静止している場合でもコンパスが狂っていることです。
この問題を解決するための提案は大歓迎です。
解決
Mob1lejunkieはすでにこれを理解しているように見えますが、将来の参照のためだけに、ここの問題は 磁気偏角 (磁気北と真の北の違い)。試してみることができます NOAAのオンラインモデル 世界のあなたの側の違いが何であるかについての感覚を得るために。
Androidには呼ばれるモデルが含まれています 地磁場 これは、緯度、経度、高度を考慮して、おおよその偏角を計算するために使用できます。だから、あなたが真の北を計算するためにやる必要があると信じていることは読み出すことです 方位角値 sensor.type_orientationから、そのgeomagneticfield.getDeclination()に追加します。
他のヒント
それは、電話用に作られたコンパクト部品の欠点です。私たちが現在使用している5000ドルのIMUは、+/- 2度のエラーがあり、その範囲ではそれも夢中になるようです。
干渉、金属表面から離れて、それが改善されるかどうかを確認してください。そうでない場合、私は悪いニュースを破ることを嫌いますが、それはハードウェアです。
これらを見たことがありますか?
http://developer.android.com/reference/android/hardware/sensormanager.html
所属していません StackOverflow