Я просто размышляю вслух, и я еще не играл с API-акселерометром Android, так что потерпите меня.
Прежде всего, традиционно, чтобы получить навигацию от акселерометров, вам понадобится 6осевой акселерометр.Вам нужны ускорения в X, Y и Z, а также вращения Xr, Yr и Zr.Без данных о вращении у вас не будет достаточно данных, чтобы установить вектор, если вы не предполагаете, что устройство никогда не изменит свое отношение, что было бы довольно ограничивающим фактором.В любом случае, никто не читает TOS.
О, и вы знаете, что INS дрейфует с вращением Земли, верно?Так что это тоже.Час спустя, и вы загадочным образом поднимаетесь на 15 ° склоне в космос.Это предполагает, что у вас была INS, способная поддерживать местоположение так долго, что телефон пока не может сделать.
Лучший способ использования акселерометров - даже с 3-осевым акселерометром - для навигации был бы связан сGPS для калибровки INS, когда это возможно.Там, где не хватает GPS, INS приятно дополняет.GPS может внезапно выстрелить в 3 квартала, потому что вы оказались слишком близко к дереву.INS не велик, но, по крайней мере, он знает, что вы не пострадали от метеора.
Что вы можете сделать, это записать данные акселерометра телефона, и многое из этого.Как и недели стоит.Сравните это с хорошими (я имею в виду действительно хорошие) данными GPS и используйте анализ данных, чтобы установить корреляцию трендов между данными акселерометра и известными данными GPS.(Совет для профессионалов: вы захотите проверить альманах GPS в течение нескольких дней с хорошей геометрией и большим количеством спутников. В некоторые дни у вас может быть только 4 спутника, и этого недостаточно). Что вы можете сделать, это найти это, когда человекидет с телефоном в кармане, данные акселерометра записывают очень специфическую картину.Основываясь на анализе данных, вы устанавливаете профиль для этого устройства, с этим пользователем, и какую скорость представляет этот шаблон, когда у него есть данные GPS, которые будут сопровождать его.Вы должны быть в состоянии обнаружить повороты, подниматься по лестнице, садиться (калибровка до 0 скорости времени!) И различные другие задачи.То, как телефон удерживается, должно рассматриваться как отдельный ввод данных.Я чувствую запах нейронной сети, используемой для добычи данных.Другими словами, что-то слепое к тому, что означают входные данные.Алгоритм будет искать только тренды в паттернах, не обращая внимания на фактические измерения INS.Все, что он знал бы, это historically, when this pattern occurs, the device is traveling and 2.72 m/s X, 0.17m/s Y, 0.01m/s Z, so the device must be doing that now.
И это соответственно продвинет фигуру вперед.Важно, чтобы он был полностью слепым, потому что просто положив телефон в карман, вы можете ориентироваться в одной из 4-х разных ориентаций, и 8, если вы переключаете карманы.И есть много способов, чтобы держать свой телефон, а также.Мы говорим здесь много данных.
Очевидно, что у вас все еще будет много дрейфа, но я думаю, вам повезет больше, потому что устройство будет знать, когда вы остановились, ипозиционный дрейф не будет постоянным.Он знает, что вы стоите на месте, основываясь на исторических данных.Традиционные системы INS не имеют этой функции.Дрейф увековечивает все будущие измерения и составляет экспоненциально.Невероятная точность или наличие вторичной навигации для проверки через регулярные промежутки времени абсолютно необходимы для традиционных INS.
Каждое устройство и каждый человек должны иметь свой собственный профиль.Это много данных и много расчетов.Все ходят на разных скоростях, с разными шагами, кладут свои телефоны в разные карманы и т. Д. Конечно, для реализации этого в реальном мире потребуется обработать число на стороне сервера.
Если вы использовали GPS для начального базового уровня, часть проблемы, связанная с тем, что GPS, как правило, имеет свои собственные миграции с течением времени, но они не являются постоянными ошибками.Сядьте в приемник в одном месте и зарегистрируйте данные.Если нет исправлений WAAS, вы можете легко получить исправления местоположения, перемещающиеся в произвольных направлениях на 100 футов вокруг вас.С WAAS, может быть, до 6 футов.Возможно, вам действительно повезет с системой RTK на глубине менее метра в рюкзаке, чтобы хотя бы сбить алгоритм ANN.
У вас все равно будет угловой дрейф с INS, используя мой метод.Это проблема.Но если вы зашли так далеко, что создали ANN, чтобы накапливать в течение нескольких недель данные GPS и INS среди n пользователей, и фактически работали до этого момента, вы, очевидно, пока не возражаете против больших данных.Продолжайте идти по этому пути и используйте больше данных, чтобы помочь устранить угловой сдвиг: люди - существа привычки.Мы в основном делаем одни и те же вещи, например, гуляем по тротуарам, через двери, поднимаемся по лестнице и не делаем сумасшедших вещей, таких как прогулки по автострадам, сквозь стены или с балконов.
Итак, допустим, вы беретестраницу от Большого Брата и начните хранить данные о том, куда люди идут.Вы можете начать составлять карту, где люди будут ходить.Можно с уверенностью поспорить, что если пользователь начнет подниматься по лестнице, он будет на той же лестничной площадке, что и человек, до нее поднявшийся.После 1000 итераций и некоторых корректировок наименьших квадратов ваша база данных с большой точностью знает, где находятся эти лестницы.Теперь вы можете исправить угловой сдвиг и местоположение, когда человек начинает ходить.Когда она спускается по этой лестнице, или поворачивает вниз по этому коридору, или спускается по тротуару, любой дрейф можно исправить.Ваша база данных будет содержать секторы, взвешенные по вероятности того, что человек будет там ходить, или что этот пользователь ходил туда в прошлом.Пространственные базы данных оптимизированы для этого с использованием divide and conquer
для выделения только значимых секторов.Это было бы похоже на те проекты MIT, в которых робот, оснащенный лазером, запускается с черным изображением и раскрашивает лабиринт в памяти, делая каждый ход, освещая все стены.
Районы с высоким трафикомбудет иметь больший вес, а районы, где никто еще не был, получат 0 вес.Более высокие зоны трафика имеют более высокое разрешение.По сути, вы получили бы карту, где бы ни был кто-либо, и использовали бы ее в качестве модели прогнозирования.
Я бы не удивился, если бы вы могли определить, какое место человек занимал в театре, используя этот метод.При достаточном количестве пользователей, идущих в театр, и достаточном разрешении вы будете иметь данные, отображающие каждую строку театра, и их ширину.Чем больше людей посещает какое-либо место, тем выше точность его определения.
Кроме того, я настоятельно рекомендую вам получить (бесплатную) подписку на журнал GPS World, если вы заинтересованы втекущие исследования такого рода вещей.Каждый месяц я отвлекаюсь на это.