ベストアンサー
この質問のコメントを確認しました。具体的には、Androidで何が起こっているかを示しています。しばらくの間Androidセンサーチームを率いていたので、たまたまこれに対する答えを知っています。
物理的な向きセンサーのようなものは(現在)ありません。方向センサーは仮想センサーです。加速度計、ジャイロスコープ、場合によっては磁力計からの情報をアルゴリズムで組み合わせることで、スマートフォンのロール、ピッチ、ヨーの推定値が得られます。
ロール(電話を左右に傾ける方法)とピッチ(電話を前後に傾ける方法)はそれほど難しくなく、加速度計だけを使用して比較的簡単な方法で決定できます。
ヨー(電話が水平面で向いている方法)はトリッキーなものです。北との相対位置を確実に判断する簡単な方法はありません。磁力計はかなりドリフトし、屋内ではほとんど役に立たない。したがって、加速度、ジャイロ、マグを使用する高度なフィルタリングアルゴリズムを使用することで、適切な推定値を得ることができますが、それでも常に正しいとは限りません。
ジャイロスコープは、ヨー、ロール、ピッチを測定しません。これらの値の変化率を測定します。ロール、ピッチ、ヨーは度で測定され、ジャイロの出力は1秒あたりの度で測定されます。そのため、向きを決定するのに役立ちます。回転の速さを示します。しかし、どこから始めたのかわからないため、ヨーを推定するだけでは不十分です。
南向きに毎秒50度回転し、北向きに毎秒50度回転すると、ジャイロは正確に同じ測定値です。
ここで、カルマンフィルターなどを使用した高度なフィルタリングの魔法が登場します。
回答
方向センサーは一部のデジタルカメラに搭載されています。キャプチャ時の向きを記録することで、カメラのソフトウェアは、画像を横向きにするか縦向きにするかを決定できます。
ジャイロスコープは、地球の重力を使用して向きを決定するデバイスです。その設計は、ローターと呼ばれる自由に回転するディスクで構成され、より大きく安定したホイールの中央の回転軸に取り付けられています。軸が回転しても、ローターは静止したままで、中央の引力を示します。 「ダウン」