2014-05-22 (木)
昨日,家に帰ってすぐ寝てしまったので,朝起きてコード書く.ちゃんと補正した上でNexus5のセンサで,移動のトラッキングがどれくらい出来るか確認したり.
*Nexus7の加速度センサ周りとか
手元のNexus5の加速度センサだと,方向によるけど0.2~0.3m/s^2くらい中心がずれてたっぽい.倍率も0.4%くらいSensorManager.GRAVITY_EARTHと差があった(けど,今いる場所の重力が実際その値だったという可能性もある)
GRAVITY_MOONとかは使う可能性が,もしかしたらあるかもしれないけど,GRAVITY_DEATH_STAR_Iとか,いつ使うんだろ系の定数多い.
Oculusもどきを作った時,ジャイロでのヘッドトラッキングの補正にSensorManager.getOrientation()使ってたりしたけど,今回は一から書いた.
getOrientation()は簡単に加速度と地磁気からおおよその方向が得られるのでちょっとした用途に使うのは便利だけど,真下に近い方向を向いてる時とかに一部の軸の回転量が不正確になる.(以前使った時は軸を入れ替えて計算したりしてごまかしていた)
あと,前から不便だと思ってるの,android.opengl.Matrixがrotateとかの操作が右からしか掛けられないのだけど,なんでandroid.graphics.Matrixの4x4版にしてくれなかったんだろうか.こっちはpreとpostの両方のメソッド用意されてる.
このへんで時計見たら昼だったので会社へ.