iOS SDK - обнаружение движения пользователя - PullRequest
0 голосов
/ 12 декабря 2011

в iOS SDK, как обнаружить движение пользователя? Вот предположение:

  • Пользователь держит iPhone в горизонтальном положении (параллельно полу)
  • iPhone 3GS / 4 / 4s
  • Служба определения местоположения включена (мне это нужно?)
  • Пользователь ходит вокруг, поэтому я должен определить, как долго он ходит (не нужно быть точным)
  • Поддерживаемые ОС: iOS 4 & 5

Я уже реализовал CMDeviceMotion для определения направления, наклона и тангажа, но я все еще не могу понять, как обнаружить движение пользователя. Пожалуйста посоветуй. Спасибо миллион!

1 Ответ

1 голос
/ 12 декабря 2011

Невозможно точно определить движение устройства, используя только акселерометр и гироскоп.

Поскольку акселерометр обеспечивает ускорения, т. Е. 2-й вывод времени, вам нужно интегрировать дважды. Хотя датчики довольно точны, это приводит к огромным ошибкам через несколько циклов из-за распространения ошибок. Пока не существует фиксированной контрольной точки для повторной калибровки расчетов, даже тяжелая математика, такая как фильтры Калмана, не дает приемлемого результата.

Если пользователь бежит, а не идет, вы получаете немного другую ситуацию из-за более сильных движений вверх и вниз, которые можно использовать как шагомер. Я не знаю, удалось ли кому-нибудь заставить это работать, но мне кажется, что это в принципе возможно, особенно в сочетании с GPS. Даже в этом случае остаются некоторые проблемы, такие как режим ожидания или прерывания по телефону, толкающие ваше приложение в фоновом режиме.

...