Внутренняя система позиционирования на основе гироскопа и акселерометра - PullRequest
69 голосов
/ 21 сентября 2011

Я разрабатываю приложение для Android, чтобы отслеживать положение в помещении.Мой телефон - Google Nexus S, использующий два датчика, первый из которых - акселерометр, а второй - гироскоп.

Моя идея состоит в том, чтобы из начальной контрольной точки (известной позиции GPS) использовать 2 датчика (акселерометр для движения и гироскоп для направления) отслеживать телефон при движении.И отображать на карте, когда пользователь собирается.

Но проблема в том, что я понятия не имею, как объединить оба этих датчика, чтобы дать мне фактическое положение?

Я прочитал некоторыестатья в интернете, в которой говорится о «фильтре Калмана», и после еще нескольких исследований я обнаружил, что этот фильтр очень сложен / слишком сложен для меня), особенно для того, чтобы кодировать его в Java для Android (процессор убийцы)

у кого-то есть опыт, которым он может поделиться со мной о системе позиционирования в помещении с использованием гироскопа и акселерометра?

Ответы [ 5 ]

65 голосов
/ 21 сентября 2011

Гироскопов и акселерометров недостаточно.

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

Вот объяснение (Google Tech Talk) в 23:20.Я очень рекомендую это видео.

Что касается внутреннего позиционирования, я нашел это полезным:

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

Аналогичный вопрос: Расчет расстояния внутри здания .

7 голосов
/ 18 декабря 2012

Я думаю, что это отличный пост , отвечающий на ваш вопрос.Этот фильтр Калмана объединяет данные с акселерометров и гироскопов.Надеюсь, это поможет.

1 голос
/ 04 мая 2017

Для отслеживания положения в помещении, начиная с некоторой контрольной точки, недостаточно только гироскопа и акселерометра.С помощью акселерометра вы можете рассчитать скорость, с помощью гироскопа вы можете получить направление мобильного устройства, но для расчета внутреннего положения вам также необходимо иметь направление движения, поэтому для этого случая вам нужно использовать магнитный датчик.Такой подход называется методом мертвого счета, и довольно сложно объединить все 3 датчика, чтобы получить соответствующее положение в помещении.Фильтры Калмана позволяют сгладить ваши измерения и отфильтровать некоторый шум, но это не метод для расчета положения в помещении.Если вы хотите получить внутреннее положение, вы можете попробовать подход iBeacon и метод трилатерации, есть некоторые библиотеки (например, эта ), которые уже имеют эту функциональность, поэтому вы можете попробовать исследовать этот метод с помощью таких библиотек.

1 голос
/ 01 июля 2015

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

Вы можете сканировать устройства iBeacon на своем смартфоне и получить rssi от iBeacon. Таким образом, вы можете рассчитать свою позицию по этим rssi.

1 голос
/ 22 сентября 2011

Для некоторых других интересных чтений о новых технологиях позиционирования в помещениях, прочитайте это сообщение в блоге от Qubulus .Есть несколько стартапов и исследовательских проектов, пытающихся найти хорошую замену GPS в помещении.Количество попыток варьируется от «мертвого счета» до QR-кодов , до световых импульсов и радиосъемки.Похоже, что любое жизнеспособное решение объединит несколько технологий (подобно тому, как большинство смартфонов используют A-GPS, где спутниковый сигнал поддерживается мультилатерацией вышки сотовой связи ).

Желаем удачи в вашем приложении!

...