Android Studio (センサーでのデータ取得3_加速度や重力、ジャイロなど)
■加速度、線形加速度、重力とジャイロ、回転ベクトルについて。
先にセンサーを見たときに、いくつか似たようなものがあったので、その辺りをもう少し見てみたい。
今回、加速度、線形加速度、重力、ジャイロ、回転ベクトルについてグラフにして見てみた。
Chat GPTで得た概要は下の通り。これでおおまかなイメージを作った後、実際の動きと照らし合わせる。
Sensor.TYPE_ACCELEROMETER, 加速度:実際に受けている加速度。重力を含む。
Sensor.TYPE_GYROSCOPE, ジャイロ:回転する速さ 角速度。単位は rad/s。
Sensor.TYPE_ROTATION_VECTOR, 回転ベクトル:スマホの向き。加速度+ジャイロ等から姿勢を推定。
Sensor.TYPE_GRAVITY, 重力:重力の方向・大きさ。加速度から重力成分を推定。
Sensor.TYPE_LINEAR_ACCELERATION, 線形加速度:動いたことによる加速度。重力を除いた加速度。
まず、加速度と重力。
加速度は重力を含むものとのことで、静置した状態では同じような軌跡をたどる。スマホを軽く振って加速度を発生させると、加速度だけ上下に値が振れ、重力の方は大きな変化は無い(下の値はx軸、y軸、z軸の3つ)。

次に、加速度と線形加速度。線形加速度は重力を除くとのこと。スマホをゆっくり傾けて重力の受ける方向を変えると加速度の方は値が変化するが、線形加速度は変化しない。軽く振って加速度を発生させると、どちらも上下に値が振れる。

上の結果から、加速度=重力+線形加速度というようなイメージ。
次に、ジャイロ。
ジャイロは回転させたときに値が大きく変わる。青色(ジャイロ)の値が大きく変わっている前半部分はスマホを回転させたとき。後半の線形加速度が大きく変わっているのは、スマホを並行移動させたとき。

最後は、回転ベクトル。
上の説明では、スマホの向きとあった。スマホをいろいろ動かすと値が変わるが、早く動かしても遅く動かしても同じ位置なら同じ値になるよう。先の加速度、線形加速度、ジャイロは早く動かした分だけ大きな値が出るが、回転ベクトル(と重力)はスマホの傾き・姿勢と相関するよう。下のグラフでは、どんなに速く振ってもこれ以上大きな値は出てこなかった。

これらのセンサーについて、何となくイメージできた。

