Расстояние скольжения iOS с акселерометром

Я пытаюсь измерить расстояние, которое устройство скользит, используя акселерометр. Вот как я это делаю:

- (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% от фактического значения. Верны ли мои расчеты, и если да, как я могу сделать этот код более точным?

1 ответ

Вы можете избавиться от некоторых неточностей в оборудовании, применив фильтр к результатам.

Вот библиотека для быстрого преобразования значений Фурье.

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

Другие вопросы по тегам