Android センサーに関するプログラミングを書いていますが、磁力計センサーの読み取り値に混乱しています。
磁力計は、電話の 3 つの軸の磁気強度を報告します。そして、同じ場所で、電話の向きが変わると、磁気の読みが劇的に変化することを観察しました。ただし、私の理解では、特定の場所での地球の磁場は、電話の配置ジェスチャーに関係なく、比較的安定している必要があります。
それで、私の質問は、生の読み取り値を 3 軸磁力計センサーから世界の座標系に変換する方法はありますか? 加速度計と方位データは、携帯電話でも利用できます。もしそうなら、電話の向きが変わっても、変換された磁気は同じであるべきだと思います.
Android のソース コード、特に getOrientation() 関数と getRotationMatrix() 関数を参照しました。彼らのコード実装から助けを得たいと思っていました。でもよくわからなかった。誰かがこれらの関数のアルゴリズム原理について説明できますか?
関数のコードへのリンク: http://www.netmite.com/android/mydroid/cupcake/frameworks/base/core/java/android/hardware/SensorManager.java
ありがとう!私はこの質問の解決策を本当に心配しています。