3

加速度計を使用して、デバイスがスライドする距離を測定しようとしています。これが私がやっている方法です:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    CGFloat interval = [NSDate timeIntervalSinceReferenceDate] - lastTime;

    CGFloat velocity = ((acceleration.y + lastAcceleration) / 2) * interval * 9.8 + lastVelocity;

    totalDistance += velocity * interval;

    lastAcceleration = acceleration.y;
    lastVelocity = velocity;

    lastTime = [NSDate timeIntervalSinceReferenceDate];
}

結果は非常に不安定で、実際の値の +/- 30% の範囲です。私の計算は正しいですか? もしそうなら、どうすればこのコードをより正確にできますか?

4

1 に答える 1

0

結果にフィルターを適用することで、ハードウェアの不正確さの一部を取り除くことができます。

これは、値に対して高速フーリエ変換を行うライブラリです。

http://sourceforge.net/projects/kissfft/

于 2012-09-25T10:12:37.997 に答える