Акселерометр для получения относительного положения

Прежде чем изобретать колесо, я хотел бы увидеть, если кто-нибудь может поделиться кодом или советы для следующего:

Для того, чтобы получить относительное положение iPhone, нужно

  • Установить скорость считывания акселерометра
  • Отфильтровать отклик акселерометра
  • Преобразовать его в вектор
  • Отфильтровать вектор низких частот, чтобы найти гравитацию
  • Вычесть гравитацию из необработанных показаний, чтобы найти ускорение, вызванное пользователем
  • Отфильтровать вызванное пользователем ускорение для получения интересующих вас частот (возможно, полосовой фильтр, в зависимости от приложения)
  • Интегрируйте для нахождения относительной скорости
  • Интегрируйте для нахождения положения

Итак, я надеюсь, что люди уже написали некоторые или все из вышеперечисленного и могут дать советы, или, что еще лучше, код.

Несколько вопросов, на которые я не нашел ответа:

Какова частотная характеристика акселерометра iPhone? Какие аппаратные фильтры существуют между акселерометром и аналого-цифровым преобразователем?

Какова самая высокая скорость чтения, которую можно вызвать делегату акселерометра без дублирования значений чтения?

Различия в вышесказанном для разных телефонов?

Любые хорошие советы по разработке фильтров, например, частота среза для разделения гравитации и движения пользователя?

Любой код или советы по шагам интеграции? Есть ли причины интегрировать в систему координат тележки, а не вектора, или наоборот?

Любой другой опыт, советы или информация, которую нужно знать до реализации этого?

11
задан Adam Davis 30 October 2010 в 02:17
поделиться