Android / iOS, как определить небольшие изменения в расстоянии с помощью датчиков?

1

Я занимался некоторыми исследованиями, но я не могу найти способ определить небольшие расстояния (сантиметры и метры) с помощью датчиков на устройствах Android или iOS. Bluetooth кажется слишком неточным и требует более одного устройства, GPS работает только при больших изменениях расстояния, и небольшие изменения в повороте, по-видимому, делают использование акселерометра практически невозможным.

Есть ли способ, который я не знаю об этом, позволит мне это сделать? Я знаком с Calculus, поэтому использование Integrals для определения расстояния, основанного на изменениях во времени и скорости/ускорении, для меня не проблема, я просто не знаю, как это определить.

Спасибо.

Теги:
iphone
accelerometer
gps

3 ответа

3
Лучший ответ

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

Если ваш случай использования позволяет немного внешней настройки, вот несколько идей:

Вы можете использовать камеру и компьютерное зрение для расчета движения устройства. Например, вы можете использовать ARToolkit для измерения расстояния до визуального тега, прикрепленного к стене. На близких расстояниях вы можете получить довольно высокую точность (мм), используя эту технику.

Еще одна идея - измерить расстояние до твердого объекта, например стены, с помощью короткого звукового сигнала с помощью динамика и измерить время до тех пор, пока эхо не поступит на микрофон. Однако это будет скорее исследовательский проект.

1

Вы можете использовать акселерометр для измерения пройденного расстояния
(если задействовано ТОЛЬКО абсолютное смещение).

Удерживайте устройство в плоском состоянии и переходите от точки А к точке В.

Пользователь нажимает кнопку "Старт" в приложении ur, когда он начинает с A и
нажимает кнопку "Конец" в приложении ur, когда он достигает B.

Вычислите двойной интерграф AccelX и AccelY отдельно со временем
между двумя нажатиями кнопок. Это будут distX и distY соответственно.

Общее смещение будет sqrt ((distXsquared) + (квадрат в квадрате)).

GOODLUCK!!

С уважением
CVS @2600Hertz

  • 2
    Это действительно сработает? У меня сложилось впечатление, что акселерометр просто слишком неточный и получает слишком много шума.
  • 0
    Возможно, вы захотите сначала отфильтровать
Показать ещё 2 комментария
0

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

Однако, достаточно ли точности этих датчиков для того, что вы хотите сделать... ну, я думаю, вам просто нужно попробовать.

  • 0
    Да, у меня была такая же мысль. Я уделю этому больше времени на следующей неделе. Я надеялся, что кто-то имел опыт работы с этим и мог бы предупредить / направить меня на лучший способ сделать это.
  • 1
    Будучи автором программы дополненной реальности, я должен сказать, что не думаю, что компас будет достаточно точным. Помимо проблем точности, серьезной проблемой является вмешательство окружающей среды от более или менее чего-либо электронного. Вот почему вы видите новые приложения для таких вещей, как обнаружение металла, которые используют компас. Трехосевой акселерометр + гироскоп на iPhone 4 работает лучше, но, похоже, все еще страдает от смещения постоянного тока и множества других проблем, которые вам нужно отфильтровать и ожидать неточного ответа в результате.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню