[Android] Gyroscope ジャイロセンサー

スマホのスピンやターンを検知するセンサーとしてGyroscopeがあります。
gyro driftを補正した TYPE_GYROSCOPE
gyro drift補正の無いTYPE_GYROSCOPE_UNCALIBRATED があります。
 
1x1.trans - [Android] Gyroscope ジャイロセンサー

Android Studio
2021.2.1




Gyroscope

 
Gyroscopeの座標系は加速度センサーと同じです。端末x, y, z軸の反時計方向での回転速度、角速度を計測します。単位は[rad/s]
Gyroscopeには2タイプあります

TYPE_GYROSCOPE_UNCALIBRATED はジャイロドリフトの補正がないセンサー出力です。ジャイロドリフトの補正がないと放置しておくとバイアスがかかったように徐々にずれていきます。
 
ただキャリブレーションによる値のジャンプがより滑らかで、この他のセンサー値との合算を考えるケースではこのセンサー値を使う方が一般的には役に立ちます。但し、工場出荷補正と温度補正は適用されます。
 
加速度センサーはAndroid Studioのemulatorを使ってemulateできましたが、Gyroscopeは使えないようです。
 

 

TYPE_GYROSCOPE

 
実装を簡単に説明すると

  • SensorEventListener の設定
  • SensorManager のインスタンス生成
  • registerListener の登録
  • onSensorChanged でセンサー値の受け取り

となります。実際ににやって見ましょう。
 
MainActivity.java


 

activity_main.xml


 
また、スクリーンが回転すると面倒なので固定しておきます。
AndroidManifest.xml


 
実機で動かしてみましょう

1x1.trans - [Android] Gyroscope ジャイロセンサー


 

 

 

TYPE_GYROSCOPE_UNCALIBRATED

 
実装はTYPE_GYROSCOPEと同様です。
センサー出力にestimated driftがそれぞれx, y, z軸についてリポートされますが、その関係性はこのようになります。
 
calibrated_x ~= uncalibrated_x – bias_estimate_x
 
MainActivity.java


 
レイアウトはTYPE_GYROSCOPEと同じです。
 
1x1.trans - [Android] Gyroscope ジャイロセンサー


 
 
関連ページ:
Sensor 一覧を取得する
加速度センサー:Accelerometer
加速度センサーで球ころがし
Gyroscope ジャイロセンサー
 
Reference:
Sensor
SensorEvent
SensorManager
Motion Sensors

シェアする

  • このエントリーをはてなブックマークに追加

フォローする