Расстояние скольжения 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 ответ
Вы можете избавиться от некоторых неточностей в оборудовании, применив фильтр к результатам.
Вот библиотека для быстрого преобразования значений Фурье.