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

Я работаю над приложением, где я бы хотел отслеживать позицию мобильного пользователя внутри здания, где GPS недоступен. Пользователь запускается в хорошо известном фиксированном месте (с точностью до 5 сантиметров), после чего акселерометр в телефоне должен быть активирован для отслеживания дальнейших перемещений относительно этого фиксированного местоположения. Мой вопрос заключается в том, что в современных поколениях смартфонов (iphones, android phones и т.д.), Насколько точно можно ожидать отслеживания положения некоторых тел на основе акселерометра, на котором эти телефоны обычно оснащены?

Конкретные примеры были бы хорошими, например "Если я переведу 50 метров X от начальной точки, 35 метров Y от начальной точки и 5 метров Z от начальной точки, я могу ожидать, что мое местоположение будет приближено к +/- 80 сантиметров на большинстве современных смартфонов" или что-то еще.

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

Ответ 2

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

Как сказал Али.... это ужасно! наименьшая погрешность измерения в акселерометрах оказывается неоднозначной после двойной интеграции. И из-за постоянного увеличения и уменьшения ускорения при ходьбе (с каждой ступенькой) фактически эта ошибка быстро накапливается с течением времени.

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

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

Вы в основном следуете теории для оптических мышей. Оптический поток, или как называется видом, Ego-Motion. Алгоритмы обработки изображений, реализованные в Androids NDK. Даже реализованный OpenCV через NDK упрощает алгоритмы. Вы конвертируете изображения в оттенки серого (компенсируете разные значения освещенности), затем устанавливаете пороговое значение, улучшение изображения на изображениях (чтобы компенсировать размытость изображений во время ходьбы), затем обнаружение угла (увеличение точности для оценки общего результата), затем сопоставление с шаблоном, делает фактическое сравнение между кадрами изображения и фактическим смещением оценок в количестве пикселей.

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

Так надейтесь, что это поможет... иначе google для Egomotion для приложений реального времени. В конце концов вы получите правильные вещи и выясните, что я только что объяснил. наслаждайтесь:)

Ответ 3

Оптический подход хорош, но OpenCV предоставляет несколько функций. Затем вы получаете соответствие (OpenCV предоставляет это).

Не имея второй точки отсчета (2 камеры), вы не можете восстановить, где вы находитесь напрямую из-за глубины. В лучшем случае вы можете оценить глубину за точку, принять движение, зачислить предположение, основанное на нескольких кадрах, и переосмыслить каждую глубину и движение, пока это не имеет смысла. Который не так сложно кодировать, но он нестабилен, небольшие движения вещей на сцене прикручивают его. Я пробовал:)

Со второй камерой, хотя, это не так сложно. Но у сотовых телефонов их нет.

Ответ 4

Типичные микросхемы акселерометра телефона разрешают + / - 2g при 12 битах, обеспечивая 1024 бита во всем диапазоне или 0,0643 фут/с ^ 2 lsb. Частота дискретизации зависит от тактовой частоты и общей конфигурации. Типичные скорости включают от одной до 400 выборок в секунду, а более высокие скорости обеспечивают более низкую точность. Если вы не установите телефон на улитке, измерение смещения, вероятно, не будет работать для вас. Вы можете рассмотреть возможность использования оптического измерения расстояния вместо акселерометра телефона. Проверьте устройство Panasonic EKMB1191111.