Получение наиболее точного местоположения / позиции? (GPS / Kalman / Android)

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

Я уже изучал фильтры Kalman и расширенные фильтры Kalman, но до сих пор я не нашел решение, которое я смог использовать или адаптировать. Я думаю, что фильтр калмана, вероятно, является тем направлением, в котором мне нужно идти.

Сейчас я использую необработанные данные gps, чтобы установить свое местоположение, но это слишком неточно и может перемещаться или даже прыгать примерно на 5-10 метров, когда устройство стоит на месте.

Поэтому я задаю вопрос: пока я использую необработанные необработанные данные gps, чтобы получить позицию, как мне нужно ее фильтровать (kalman? Extended kalman?) И какие датчики мне нужно использовать (gps position? Gps speed? A акселерометр ?), Чтобы получить максимально возможное местоположение на пешеходном месте.

ОБНОВЛЕНИЕ: мне нужно обновить свой вопрос, так как невозможно сделать то, что мой первоначальный вопрос, получая точность в 1 метр на gps на планшете / телефоне. Теперь мой вопрос: как я могу применить фильтрацию, чтобы последующие измерения позиции gps оставались на управляемом расстоянии. Например, так, что, когда я нахожусь на 10 м на север с помощью своего устройства, мой GPS также измеряет, что я отправился на 10 м на север +/- 1 м (10%) с моего начального положения, а не на прыжки / перемещение вокруг того, что измеряет gps.

Действительно, это очень трудная задача, люди пишут кандидатскую диссертацию по этому вопросу. Я нашел их полезными:

  • Пешеходное слежение с помощью инерционных датчиков

  • Повышение эффективности шагомеров с использованием одного акселерометра

  • Внутренняя локализация и отслеживание на основе RSSI с использованием Sigma-Point Kalman Smoothers

См. Также точность акселерометра Android (инерциальная навигация) .

В реальных приложениях система GPS не может обеспечить точность и точность намного лучше, чем 5-10 метров, в частности, если вы используете смартфон или планшет в качестве приемника. Посмотрите на страницы Википедии относительно GPS для подробного объяснения:

https://en.wikipedia.org/wiki/Gps

https://en.wikipedia.org/wiki/Error_analysis_for_the_Global_Positioning_System

https://en.wikipedia.org/wiki/GPS_augmentation

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

Наиболее широко используемая вспомогательная система позиционирования является «сетевой». Он использует как сотовые телефонные антенны, так и Wi-Fi антенны в качестве вспомогательных опорных точек. Этот подход уже используется Картами Google и другими сервисами, а также смартфонами и планшетами Android, Apple и Windows 8. Вам просто нужно выбрать его среди доступных поставщиков местоположения в вашем коде.

Системы Wi-Fi / Cell на редкость могут дать вам точность лучше, чем на несколько метров («точность на уровне помещения»), даже если вы применяете огромное количество обработки / фильтрации данных.

Если вы хотите использовать другую систему, вы можете оценить инерциальные навигационные системы или геомагнитные навигационные системы (например, Indoor Atlas: http://www.indooratlas.com/ ).

Написание инерциальной навигационной системы (INS) непросто. Вы можете найти какое-то описание в Интернете, но, скорее всего, вам придется написать весь код самостоятельно. INS обычно не может дать вам точность лучше, чем GPS.

Кроме того, вы можете купить коммерческую, готовую к использованию геомагнитную систему, такую ​​как Indoor Atlas. Геомагнитные системы могут быть очень точными. Крытый атлас требует точности в несколько сантиметров.

Если вы ищете систему на основе Wi-Fi / сотовой антенны, альтернативу Google Maps, вы можете взглянуть на Combain:

http://combain.com/

http://location-api.com/

У меня был очень хороший опыт работы с WiFiSLAM:

http://wifislam.com/