Как измерить расстояние, пройденное iPhone с помощью акселерометра? - PullRequest
7 голосов
/ 14 сентября 2010

В то время как GPS работает для изменений на большом расстоянии, я хотел бы измерить более короткое расстояние с помощью акселерометра iPhone.

Скажем, я хочу измерить высоту коробки с помощью приложения iPhone.Вы запустите приложение, нажмите кнопку, чтобы начать измерение в нижней части окна, переместите iPhone с верхней части окна, а затем нажмите кнопку, чтобы остановить измерение.Затем приложение вычислит и отобразит высоту блока.

Как бы я использовал акселерометр для выполнения такого измерения?

Ответы [ 5 ]

14 голосов
/ 12 декабря 2010

Это можно сделать, так как я внедрил более сложную систему в IMF-режиме sparkfun.

Есть несколько компонентов, которые точно делают то, что вам нужно.

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

2) Объедините 3 отдельных значения ускорения дважды, чтобы перейти от ускорения к скорости, а затем от скорости к расстоянию.

3) Вышеупомянутый метод должен быть выполнен, держа телефон в одной плоскости, когда вы перемещаете его от основания коробки к вершине. Любой шаг / крен / рыскание нарушит измерение (подсказка)

4) Сверху, чтобы компенсировать наклон / крен / рыскание, вы можете включить встроенный гироскоп =]. Используйте это, чтобы отобразить вектор, полученный из акселерометра, в начальную точку. Используя эту методологию, вы можете измерить расстояние, проходящее через объект. (помните, что этот гироскоп тоже нуждается в фильтрации).

Окончательный результат зависит от многих факторов, таких как эффективность вашего фильтра, точность и частота дискретизации вашего акселерометра и гироскопа, а также обилие ваших математических и линейных навыков алгебры.

5 голосов
/ 14 сентября 2010

Попробуйте сфотографировать объект известного размера на интересующем расстоянии.

3 голосов
/ 14 сентября 2010

В зависимости от приложения и требуемой точности вы можете использовать новые 6-осевые гиро-акселерометры в iPhone 4 и iPod Touch 4-го поколения. Вы можете получить общее смещение, интегрировав вектор ускорения.

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

0 голосов
/ 14 сентября 2010

GPS в настоящее время недостаточно точен, чтобы измерить окно.Примите во внимание, что может быть ошибка около 10 метров на милю.Вы можете вернуть точность измерения с помощью CLLocation.

0 голосов
/ 14 сентября 2010

Теорема Пифагора: c ^ 2 = a ^ 2 + b ^ 2 (http://en.wikipedia.org/wiki/Pythagorean_theorem)

В вашем случае, если точка A = (Ax, Ay) и B = (Bx, By), тоВы можете вычислить расстояние C:

C = sqrt( (Bx-Ax)^2 + (By-Ay)^2 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...