Привет всем на стеке потока.
КОРОТКАЯ ВЕРСИЯ:)
Мне нужно использовать (x, y, z) значения ускорения, относящиеся только к движению iPhone. Просто чтобы быть ясно, подумайте об окружающей среде, как автомобиль. Акселерометр iPhone очень чувствительный. Если я записываю значения ускорения с частотой 100 Гц, существует так много значений, связанных с шумом, вибрациями автомобиля и другими векторами ускорения, которые не направлены подобно движению iPhone (например, колебания демпферов вызывают векторы ускорения, направленные вдоль оси z).
Другими словами, мне нужно отфильтровать обнаружение ускорений таким образом, чтобы изолировать ускорения, направление которых совпадает (с определенным смещением) от направления движения.
ГЛУБИННЫЕ СООБРАЖЕНИЯ: '(
Очевидно, что я мог бы зафиксировать положение iphone так, чтобы его ось y перекрывала направление движения (в предыдущей автомобильной среде это означает фиксацию оси iphone y параллельно переднему направлению). Проблема в том, что мне нужно разрешить относительные моменты iphone. Я не могу исправить положение iphone.
Прежде всего, я проанализировал значения, вызванные шумом и колебаниями, и выяснил, что их величина часто очень выше, чем обычные ускорения автомобиля. Фильтрация величины является хорошей идеей для облегчения проблемы, но она не является решением: с одной стороны, многие нежелательные шумовые ускорения не фильтруются, поскольку их величина попадает в диапазон, с другой стороны, многие требуемые ускорения движения фильтруются, потому что они выходят за пределы диапазон.
На iPhone 3GS я могу использовать магнитометр для измерения направления в градусах относительно магнитного севера. Я мог бы использовать это, чтобы найти направление движения, но проблема все еще существует: значение Magnhehading всегда измеряется относительно верхней части устройства. Таким образом, iPhone должен быть зафиксирован вдоль переднего направления.
Я не могу думать ни о каком другом решении.
Идеи?
Танк ты!