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

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

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

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

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

Вот объяснение, почему (Google Tech Talk) в 23:20.

Я ответил на аналогичный вопрос.

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

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

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

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

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

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

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

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

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

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