Коррекция DGPS на Android
Я разрабатываю проект, который предназначен для использования возможностей GPS на телефоне Android и ближайшей станции для вычисления позиционирования в гораздо более точной степени (см) с использованием технологии RTK DGPS.
До сих пор я не видел, чтобы кто-то говорил, что им действительно удалось выполнить аналогичную задачу (кроме @GPSmaster, который не объясняет, как), и APK, похоже, не предлагает никакой информации с чипа GPS, кроме местоположения и обновлений сообщений NMEA. Мне нужны, по возможности, псевдодиапазоны и фазы несущей.
Мне было интересно, если:
- Можно было бы искать крючки нижнего уровня на моем телефоне с использованием собственного кода или другого отслеживания нижнего уровня;
- Можно было бы отправить исправления RTCM на чип GPS, присутствующий на одном из этих устройств;
Любые идеи?
Ответы
Ответ 1
Нет, нецелесообразно получить доступ к GPS-устройству на более низком уровне с помощью приложения Android. Это имеет несколько причин:
-
Приложение не имеет других средств доступа к устройству GPS, как через API на основе Java. Родительский код запрещен для использования большинства устройств и обычно требуется оболочка Java для туннелирования через песочницу для сенсорных устройств Android. Это составляет основную концепцию безопасности.
-
Если собственный код будет иметь доступ к устройству GPS на более низком уровне, ему придется справляться с несколькими различными протоколами производителей, которые теперь не абстрагируются API. Наилучшие шансы - получить доступ к пользовательским кодам NMEA, которые могут все еще иметь оговорки, зависящие от устройства.
-
Даже если доступ на более низком уровне будет возможен, вы потеряете интегрированное слияние других источников местоположения, таких как WLAN и несущая сотовой связи, которые предположительно объединены в собственный код ниже Java API, но выше протокола NMEA.
Ответ 2
Вообще говоря, DGPS - это метод, который улучшает точность реальной позиции, уменьшая большую часть атмосферных воздействий на сигнал GPS. В типичном прямом измерении GPS происходит случайная ошибка в диапазонах, вычисленных для спутников из-за атмосферных эффектов. Вот почему приемник GPS, который теперь собирает данные в фиксированном местоположении, по-видимому, блуждает с эллипсом ошибки. Для двух приемных станций в одной и той же области атмосферные эффекты почти одинаковы, и они будут перемещаться параллельно в пределах своих одинаковых размеров и ориентированных эллипсов ошибок. Если один из двух приемников находится в известном месте, то различия в их кажущихся местоположениях GPS могут быть взяты и построены из истинного местоположения известной станции, чтобы найти истинное местоположение неизвестной станции.
В тот же день (около 1992 года), когда нам приходилось выполнять DGPS "постобработкой", мы использовали, чтобы сырые данные NEMA, собранные на двух станциях, соответствовали времени, вычисляли вектор базовой линии и применяли его к известному чтобы найти неизвестную точку. Я думаю, что данные NEMA, которые мы использовали, записывались только в ближайшие 10 секунд. Математика не так уж тяжела.
Я подозреваю, что сообщения NEMA GPS [http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.html] из планшета в известном месте (с ясным видом неба), вероятно, могут быть отправляется через интернет-сокет на смартфон (также с ясным видом на небо), который затем может вычислить разницу и достичь относительного местоположения подметров на расстоянии нескольких километров, даже если предполагаемое время интернет-транзита было проигнорировано. Этот метод, вероятно, по-прежнему будет работать даже в том случае, если планшет и смартфон применяют широковещательные настройки DGPS.
Ответ 3
С помощью andvent от Android 7.1 исходные данные от GPS-чипов будут доступны разработчикам. (http://gpsworld.com/google-to-provide-raw-gnss-measurements/)
Другие, похоже, сделали что-то похожее на то, что вы хотите выполнить (http://gpsworld.com/innovation-precise-positioning-using-raw-gps-measurements-from-android-smartphones/)
Ответ 4
Умм. У вашего андроида, вероятно, есть такая трещатая GPS-антенна, что достижение точности см. Невозможно. Возможно, если вы усредняете позицию в течение нескольких дней... обычно поддержка DGPS не публикуется, и не многие ее поддерживают. В прошлый раз, когда я увидел, что DGPS реализовала это, необходимо взломать прошивку встроенного микропроцессора GPS, чтобы добавить поддержку. Даже получение A-GPS для работы на случайном наборе микросхем является неудобным, поскольку они могут не поддерживать документированный способ подачи данных помощи.
Ответ 5
Вы можете использовать поправки DGPS в Европе через специальное приложение для SISnet, получающих сигналы коррекции от спутников дополнения EGNOS (http://egnos-portal.gsa.europa.eu/news/egnos-gets-invite-your-smartphone-11). Тем не менее, ему нужна подписка (которая еще не открыта для публики) для SISnet для получения имени пользователя и пароля для подключения к их серверам. Там опубликованы некоторые из SDK, которые вы можете найти полезными. Просто помните, что вы ограничены только сигналами C/A (псевдодальности), и вы НЕ МОЖЕТЕ получить фазовые данные (L1/L2) от этих дешевых чипов внутри смартфонов. Вам нужен точный приемник GNSS, такой как Trimble BD910 (http://www.trimble.com/gnss-inertial/bd910.aspx?dtID=overview), чтобы иметь возможность получать сигнал фазы несущей L1 для GPS и ГЛОНАСС. Однако есть более дешевые чипы, поддерживающие SBAS, но ни один из них пока не установлен в телефонах.
Ответ 6
Он должен быть связан с аппаратной реализацией, а не с программной реализацией.
В реальности GPS обычно сопровождается Wi-Fi или 3G, чтобы помочь в поиске текущей позиции.
Ответ 7
Коррекция RTCM
может быть отправлена на ваш Android-телефон с помощью NTRIP 'provider'
. Затем вам нужно применить его к необработанному GPS в вашем андроиде.