2010-09-14 7 views
5

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

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

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

+0

Эти координаты gps? или что? –

+0

вы можете получить высоту, а затем отслеживать разницу. – harshalb

+0

Хотя это не совсем то, что вы ищете, этот вопрос задает что-то в том же духе: [Как измерить расстояние, покрываемое iphone во время свободного падения?] (Http: // переполнение стека.com/questions/1073608/how-to-measure-the-distance-cover-by-iphone-in-free-fall) –

ответ

5

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

+0

Мне понравилась идея фотографировать объект известного размера. Я много пробовал реализовать с помощью акселерометра. Но результат всегда был намного меньше фактического значения. Как я могу продолжить вашу идею? Будет ли это требовать много концепций обработки изображений? – Ashwin

+0

Я lol'd. Это похоже на старую загадку о том, как вы измеряете высоту здания, используя только барометр. Ответы - это все такие вещи, как «измерять высоту барометра, длину тени барометра и длину тени здания» или «отбрасывать барометр с верхней части здания и время, сколько времени потребуется, чтобы ударить» или «Скажите архитектору, что вы дадите ему этот хороший барометр, если они скажут вам, насколько высок здание». Итог: это просто не правильный инструмент для работы. –

3

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

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

0

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

+0

(по крайней мере, для iPhone GPS, дифференциальный GPS - это еще одна история) – Daniel

14

Это можно сделать, поскольку я реализовал более сложную систему на искровом ИЛУ.

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

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

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

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

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

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

+0

@ Демон. У вас есть более подробная информация об особенностях расчетов? Кроме того, у меня есть несколько значений для ускорения, доступных мне (строки 84-116 из https://github.com/jrowberg/i2cdevlib/blob/b6836bb46e248574816356a6a0a589718b6949fa/Arduino/MPU6050/Examples/MPU6050_DMP6/MPU6050_DMP6.ino) У вас есть рекомендация из которых лучше всего использовать? Большое спасибо! –

Смежные вопросы