Android端末から得た加速度にローパスフィルタをかけて値をなめらかに変化するようにしたいのですが、うまくいきません。ソースを書いてみたのですが私のソースだとおおよそ水平な場所でも
x:-0.4,y:-0.4,z:0.6
と表示されます。本来であれば
x:0,y:0,z:9.8
くらいになるはずだと思うのですが、アドバイスいただけると助かります。
java
1//センサの値に変化があったら 2 public void onSensorChanged(SensorEvent event) { 3 switch(event.sensor.getType()){ 4 //加速度に変化があったら 5 case Sensor.TYPE_ACCELEROMETER : 6 if(first == 0){ 7 acc_x = event.values[0];//x軸の加速度 8 acc_y = event.values[1];//y軸の加速度 9 acc_z = event.values[2];//z軸の加速度 10 11 first = 1; 12 }else if(first == 1){ 13 acc_x = 0.9*acc_x_bef+0.1*(event.values[0]);//LPFに通したx軸の加速度 14 acc_y = 0.9*acc_x_bef+0.1*(event.values[1]);//LPFに通したy軸の加速度 15 acc_z = 0.9*acc_x_bef+0.1*(event.values[2]);//LPFに通したz軸の加速度 16 } 17 18 //今の加速度を1つ前の加速度として保持 19 acc_x_bef = acc_x; 20 acc_y_bef = acc_y; 21 acc_z_bef = acc_z; 22 23 break; 24 } 25 } 26
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/14 06:13
2015/12/14 06:15
2015/12/14 06:18