web-dev-qa-db-ja.com

Androidの「重力」センサーと「加速度」センサーの違いは何ですか?

Androidの重力センサーと加速度センサーの違いは何ですか?私の観点からは、物理的価値はどちらの場合も同じです。

デバイス内の単位質量に作用する力を測定するのはどれですか?

[〜#〜] addition [〜#〜]

問題は、これらのセンサーによってどの物理量が測定されるのかということです。 等価原理 によれば、加速度と重力は区別できず、両方を測定する唯一の方法は通常の(ただし3 d)スプリングバランスによるものです。

22
Suzan Cioc

加速度センサーは、デバイスに加えられたすべての力の合計を返しますが、重力センサーは重力の影響のみを返します。加速度から重力を除外する場合は、ハイパスフィルターを使用するか、加速度センサー値から重力センサー値を差し引くだけです。どの方法で精度が向上するかはわかりません。

別の方法として、正確に(加速度-重力)を与えるSensor.TYPE_LINEAR_ACCELERATIONを使用することもできますが、デバイスで使用可能かどうかを確認する必要があります。 ACCELERATIONセンサーが動作しているが、GRAVITYまたはLINEAR_ACCELERATIONセンサーからの応答がないデバイスがいくつか見つかりました。

11
lenik

このリンクは役に立つかもしれません: http://www.sensorplatforms.com/which-sensors-in-Android-gets-direct-input-what-are-virtual-sensors

次の抜粋は、あなたの質問に対する答えをまとめたものです:

「リストには、物理​​センサーと物理センサーから派生した値を持つセンサータイプの両方が含まれます。これらは仮想センサーと呼ばれることもあります...仮想センサータイプ(重力、線形加速度、回転ベクトル)は、結果を組み合わせて派生した値を提供します物理センサーからインテリジェントに...回転ベクトルは、加速度計、磁力計、および場合によってはジャイロスコープの組み合わせであり、Androidデバイスが地球のフレーム座標に対して置く3次元の角度を決定します。 。デバイスの回転ベクトルを知ることで、加速度計データを重力と線形加速度に分離できます。」

このリンク https://stackoverflow.com/a/8238389/604964 は、バターワースフィルターを使用して重力値が計算されることも示しています。

3
cesarsalgado