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

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

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

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

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

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

Ответ 1

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

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

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

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

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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