Система внутреннего позиционирования на основе гироскопа и акселерометра

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

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

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

Я прочитал статью в интернете, в которой говорится о "фильтре Калмана", и после еще нескольких исследований я обнаружил, что этот фильтр очень сложный /слишком много для меня), особенно для его кода на java для Android (cpu killer)

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

5 ответов


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

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

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

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

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

аналогичный вопрос вычисление расстояния в пределах здания.


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


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

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


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

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


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