Какова реальная точность телефонных акселерометров при позиционировании? - PullRequest
10 голосов
/ 17 мая 2011

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

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

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

Ответы [ 3 ]

14 голосов
/ 17 мая 2011

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

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

7 голосов
/ 09 октября 2012

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

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

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

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

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

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

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

1 голос
/ 19 декабря 2016

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

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

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

...