iOS/Androidデバイスの向き(ピッチ、ヨー、ロール)。加速度計またはジャイロスコープの方が良いですか?
-
25-10-2019 - |
質問
私は今少し研究してきましたが、今はどの道を歩むべきかを決めなければなりません。
鉱山の要件: 真の見出し(磁性極ではなく地理的な北極)に対するデバイスの方向を知る必要があります。そのためには、コンパスを使用する必要があります。今、どの他のもの、加速度計またはジャイロスコープを決定する必要があります。
これは私にとって新しいことなので、私は過去数時間スタックとウィキペディアの記事を読んで費やしましたが、それでも混乱しています。
私は両方のプラットフォーム(iOSとAndroid)をターゲットにしており、Appcelerator Titaniumでそれらを開発しています。チタンを使用すると、加速度計の値(x、y、z)とTrueheadingを簡単に取得できます。
iPhone 3GSにはジャイロスコープがないため、明らかにそのデバイスでは使用できません。新しいiPhoneとAndroidデバイスにはそれがあります。
質問は次のとおりです。
アクセルメーターのXYZとCOMPASのTrueHeadingデータは、デバイスのピッチ、ロール、ヨーを計算するのに十分ですか?しかし、それは正確でなければなりません。
コンパスからTrueHeadingを使用し、加速度計の代わりにジャイロスコープの値を使用する方が正確ですか?
加速度計とジャイロスコープの両方をTrueHeadingと組み合わせるのは賢いですか?
最初の道路を取った場合、ジャイロスコープデータを取得するためにチタンモジュールを作成する必要はありません。加速度計のみデータを提供し、3GS iPhoneでも使用できるからです。
2番目の道路を取る場合、ジャイロスコープデータを取得するために2つのモジュール(iOSとAndroid)を作成する必要があり、3GSサポートを失います。
3番目の道路を取ると、再びチタンモジュールを書く必要があり、3GSサポートを失います。
解決
まず第一に、3GSユーザーの巨大なインストールベースがないが、新しいアプリを書く場合は、古いハードウェアを気にしないでください。 IMOそれは経済的な観点からは意味がありませんが、システムアーキテクチャの代替案の数を縮小します。
探しているのはセンサーフュージョンと呼ばれます。したがって、これを行うには、Kalmanフィルターなどのような重い数学が必要です。良いニュースは、iPhoneに存在することです(コアモーション)そしてアンドリオドのafaikも(それがあるように聞こえます Androidに実装されたセンサー融合?).
名前以外のAppceleratorについてはあまり知りません。したがって、簡単に使用する方法については何も言えません。とにかく、抽象的なレイヤーに惑わされていない場合、AppceleratorがネイティブAPI呼び出しを行う可能性を提供すると思います。したがって、ネイティブAPIを埋め込むことができるはずです(しばらくうろたした後;-)。
一般に、それはあなたの要件に依存します。正確な結果を得る必要があるほど、3つのセンサーすべてを含む実際のセンサー融合をお勧めします。応答時間が遅い場合は元気な場合は、コンパスと加速度計の組み合わせが行われます。