親愛なるプログラマー/スクリプター/エンジニア/その他の人々へ
問題: 私は現在、Android 3.2 タブレット用の拡張現実アプリケーションを開発していますが、正確なコンパスの読み取りに問題があります。北から測定して、タブレットが向いている (z) 方向を正確に知る必要があります。度でもラジアンでも構いません。
私が現在試したこと:
磁力計と加速度計を使って角度を計算しました。1つ大きなデメリットがあります。90 度回転すると、センサーは大きい角度または小さい角度を測定します。金属や磁性体から遠く離れたオープンフィールドにいるときでも。赤緯でも解決しません。
ジャイロスコープの使用はオプションです。回転速度を測定し、測定した単位を変数に格納して、正確な視線方向を把握しようとしました。歪む要因はあるようですが。回転が速いと、正確な方向測定が歪むことがわかりました。ジャイロのドリフトはそこまで気になりませんでした。アプリケーションは、他のセンサーの動きをチェックします。何も検出されない場合、ジャイロの回転の変化は考慮されません。
回転ベクトルは正常に機能します。ジャイロスコープのようないくつかの問題があります。ゆっくり動いていきなり止まると、数秒間漂流してしまいます。もう 1 つの問題は、速度と回転数によっては、速い回転で不正確になることです。(私がタブレットを四方八方に振っているときに、同僚が私をどのように見ているのか知りたくないでしょう...)
Sensor.Orientation についてはあまり説明しません。何らかの理由で非推奨になっているため、使用しません。インターネット上の多くの例がこのセンサーを使用しており、おそらく磁気/加速度計の組み合わせと同じものです。
だから私は現在アイデアがありません。ブレインストーミング/解決策の解決を手伝ってもらえますか? よろしくお願いします、ローランド
- EDIT 1:私が試したコードを喜んで提供します。