Ну ежели SDR... Тогда сделайте сто шагов назад и начните с малого - сделайте себе в телефон разъём для внешней антенны. Для точностных характеристик это полезнее, чем изучать Android (читай, гомеопатия).
Это гораздо сложнее сделать, чем сказать... у ж тогда проще подключить внешний модуль, а андроиду пофигу что обрабатывать изнутри или с наружи. Так что его роль остается той же. А вот этого мало? Raw -ElapsedRealtimeMillis,TimeNanos,LeapSecond,TimeUncertaintyNanos,FullBiasNanos,BiasNanos,BiasUncertaintyNanos,DriftNanosPerSecond,DriftUncertaintyNanosPerSecond,HardwareClockDiscontinuityCount,Svid,TimeOffsetNanos,State,ReceivedSvTimeNanos,ReceivedSvTimeUncertaintyNanos,Cn0DbHz,PseudorangeRateMetersPerSecond,PseudorangeRateUncertaintyMetersPerSecond,AccumulatedDeltaRangeState,AccumulatedDeltaRangeMeters,AccumulatedDeltaRangeUncertaintyMeters,CarrierFrequencyHz,CarrierCycles,CarrierPhase,CarrierPhaseUncertainty,MultipathIndicator,SnrInDb,ConstellationType,AgcDb,CarrierFrequencyHz Raw,619344795,1255085804219000064,18,3.3353073878863223E7,328355,0.0,845.5605503633117,401.39410099654,6.256406438965021,0,3,0.0,2,6898,33353134,40.0,-1879.2808837890625,0.1499999,0,0.0,0.0,1.57542003E9,,,,0,23.010299956639813,1,,1.57542003E9 Чисто с точки зрения эксперта по GPS модулям? А это насколько я понимаю альманах и эфимериды со спутника NMEA,$PMTKGEPH,26,1,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1*30,1571050587000 NMEA,$PMTKGALM,32,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1*28,1571050587000 Fix,gps,59.119382,37.906507,153.600000,0.000000,10.800000,1571050588000 Fix,gps,59.119382,37.906507,153.600000,0.000000,10.800000,1571050588000 Raw,619346786,1255085806174000128,18,3.3353073878863223E7,329218,0.0,543.2152571303283,407.60061851467606,4.89603954492126,0,3,0.0,2,9262,33353139,35.0,-1857.354736328125,0.1499999,0,0.0,0.0,1.57542003E9,,,,0,18.010299956639813,1,,1.57542003E9 Raw,619346787,1255085806174000128,18,3.3353073878863223E7,329218,0.0,543.2152571303283,407.60061851467606,4.89603954492126,0,17,0.0,2,12763,33353147,27.0,-120.72901916503906,0.1499999,0,0.0,0.0,1.57542003E9,,,,0,10.010299956639813,1,,1.57542003E9 Raw,619346788,1255085806174000128,18,3.3353073878863223E7,329218,0.0,543.2152571303283,407.60061851467606,4.89603954492126,0,19,0.0,2,2815,33353147,27.0,-1355.99169921875,0.1499999,0,0.0,0.0,1.57542003E9,,,,0,10.010299956639813,1,,1.57542003E9 Raw,619346789,1255085806174000128,18,3.3353073878863223E7,329218,0.0,543.2152571303283,407.60061851467606,4.89603954492126,0,22,0.0,2,13029,33353145,29.0,-487.05133056640625,0.1499999,0,0.0,0.0,1.57542003E9,,,,0,12.010299956639813,1,,1.57542003E9 NMEA,$GNGGA,105628.173,5907.1629,N,03754.3904,E,1,6,3.25,153.6,M,14.4,M,,*41,1571050588000 NMEA,$GPGSA,A,2,03,22,17,19,01,,,,,,,,3.39,3.25,0.98*03,1571050588000 NMEA,$GLGSA,A,2,86,,,,,,,,,,,,3.39,3.25,0.98*1D,1571050588000 NMEA,$PMTKGEPH,26,1,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1*30,1571050588000 NMEA,$PMTKGALM,32,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1*28,1571050588000 NMEA,$GPGSV,3,1,12,22,68,258,26.3,01,65,216,25.9,14,62,088,,03,46,271,32.8*64,1571050588000 NMEA,$GPGSV,3,2,12,11,40,216,,32,38,065,,31,32,122,,17,28,311,24.9*6F,1571050588000 NMEA,$GPGSV,3,3,12,19,19,329,24.9,12,11,024,,23,09,224,,25,04,063,*6C,1571050588000 NMEA,$GLGSV,3,1,9,70,82,035,18.4,86,55,285,18.9,71,41,256,,85,32,202,*57,1571050588000 NMEA,$GLGSV,3,2,9,79,31,061,,69,22,068,,78,18,007,,87,14,340,*5B,1571050588000 NMEA,$GLGSV,3,3,9,80,13,115,*63,1571050588000 NMEA,$GNRMC,105628.173,A,5907.1629,N,03754.3904,E,0.000,0.00,141019,,,A*4D,1571050588000 NMEA,$GNVTG,0.00,T,,M,0.000,N,0.000,K,A*23,1571050588000 NMEA,$GNACCURACY,10.8*2F,1571050588000 NMEA,$PMTKAGC,105628.173,4307,4176,7226,7322*79,1571050588000 NMEA,$GNGGA,105629.177,5907.1649,N,03754.3910,E,1,7,1.58,159.4,M,14.4,M,,*46,1571050589000 NMEA,$GPGSA,A,3,03,22,17,19,01,12,,,,,,,1.86,1.58,0.98*0F,1571050589000 NMEA,$GLGSA,A,3,86,,,,,,,,,,,,1.86,1.58,0.98*12,1571050589000 NMEA,$PMTKGEPH,26,1,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1*30,1571050589000 NMEA,$PMTKGALM,32,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1*28,1571050589000 Fix,gps,59.119415,37.906517,159.400000,1.310997,8.200000,1571050589000 Fix,gps,59.119415,37.906517,159.400000,1.310997,8.200000,1571050589000 Как бы то ни было, но заниматься стоит не только тем что дает данные, но и тем что их может обрабатывать и в данном случае смартфон типа моего с огромным ресурсом автономногопитания... не самый худший вариант. Будут новые с лучшими возможностями - только хорошо. ИМХО
Попробуйте старый добрый вариант - собирайте RINEX и делайте постобработку. RTK на данный момент вряд-ли возможен т.к. весь софт с открытыми исходными кодами (на базе RTKLib) не готов к реальной работе.
C RtkLib я уже обжегся... Сбор Ринекс даже делать не надо есть приложение Geo++Rinex. Но что то, мне там не понравилось.
А интересно б узнать как работает сия двухчастотная техника в Европах и прочих сифилизованных территориях ? Добавляют ли эффекта системы дифференциальной коррекции к точности координат, определяемых непосредственно системой самого смарта ?
Надо новое устройство иметь ... в софт закладывается алгоритм определения рабочих частот типа как тут: case NAVSTAR: if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1575.42f, TOLERANCE_MHZ)) { return "L1"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1227.6f, TOLERANCE_MHZ)) { return "L2"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1381.05f, TOLERANCE_MHZ)) { return "L3"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1379.913f, TOLERANCE_MHZ)) { return "L4"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1176.45f, TOLERANCE_MHZ)) { return "L5"; } break; case GLONASS: if (carrierFrequencyMhz >= 1598.0000f && carrierFrequencyMhz <= 1610.000f) { // Actual range is 1598.0625 MHz to 1609.3125, but allow padding for float comparisons - #103 return "L1"; } else if (carrierFrequencyMhz >= 1242.0000f && carrierFrequencyMhz <= 1252.000f) { // Actual range is 1242.9375 - 1251.6875, but allow padding for float comparisons - #103 return "L2"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1207.14f, TOLERANCE_MHZ)) { // Exact range is unclear - appears to be 1202.025 - 1207.14 - #103 return "L3"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1176.45f, TOLERANCE_MHZ)) { return "L5"; } else if (MathUtils.fuzzyEquals(carrierFrequencyMhz, 1575.42f, TOLERANCE_MHZ)) { return "L1-C"; } break; Для всех существующих систем, уж не буду загромождать форум, все расписано в источниках по данным темам. На Гитхабе лежит проект GPSTest https://github.com/barbeau/gpstest, который весьма основательно тестирует сотик на предмет его возможностей и по результату теста максимально его задействует. Код сопровождается множеством комментариев, что позволяет разбираться что и зачем делается. Если кто -то реально хочет влезть в данную тему то может попробовать. Я вот пробую. Но мне то тяжко все же уже 58 лет и голова не та что в 20. Тут помню, тут забыл и так далее...потому у меня все медленно :) Сегодня разобрался, завтра стройка или геодезия какая нибудь перебила и опять по новой. Короче по моему это самый продвинутый проект позволяющий реально поковыряться в GPS андроид системах. Так то я много уже перерыть успел, В основном поверхностные касания, этот проект серьезные исследования.
Я понял, что этот проект сконцентрировался на изучении новых фич Android API и анализе возможностей GPS-чипа, что никак не связано с точностью. Что с ними делать дальше ? 1. Запись в RINEX уже реализована другими проектами. Но на основе вышеуказанного проекта можно попробовать сделать свой сбор сырых данных для следующего шага. 2. RTKLib портирован на Android шесть лет назад RtkGps (ссылка на GitHub), его можно взять в качестве основного ядра RTK, для настроек и т.д. Тут есть проблема - во-первых он использует старый API, во-вторых он заточен на приёмники uBlox, имеющие сырые данные, т.е. на 99.9% это внешние приёмники (про 0.1% напишу ниже). Надо писать драйвер, берущий СЫРЫЕ данные от нового API. Вот с драйверами проблема, т.к. в основном они пришли с проекта RTKLib и никем более не добавлялись. Хотя, думаю, Алексею пришлось многое поправить, чтобы запустилось на Android... 3. Работа в поле. Фронт-энд. Написать своё приложение для полевой геодезии в одиночку практически нереально, мне такие случаи неизвестны. Обычно работа непосредственно с приёмником (настройки RTK, канал поправок и т.д.) реализуются программами-утилитами от производителя, а полевая ГИС и геодезия реализуются в отдельной программе. Из недавнего, как раз интересный для нас случай с Андроид, наладонник Spectra Precision SP20. В нем установлены два GNSS-приёмника. Первый системный на чипе uBlox. Второй - аналогичный по функционалу SP60/SP80 (может даже отдельная плата). Чтобы задействовать геодезическую плату, используется программа SPace, которая эмулирует драйвер Mock Location. При запуске она подменяет собой основной uBlox и во все приложения выдаёт данные от платы GNSS. В качестве программы ГИС-съёмки используется Survey Mobile. Полагаю схожий софт от Trimble, Magnet и др. под Android работают аналогично. В качестве Mock Location в вашем случае может быть как-раз RtkGps, тем более в нём уже задействован Mock Location для общения с блутус-приёмниками uBlox (а может и по проводу OTG, точнее не знаю). Можно минимизировать его интерфейс - убрать разные гугл-карты и пр., всё-равно он должен работать фоном. Что это такое можно посмотреть по его клону RtkGps+, но без uBlox он работать не будет. (added) Оказывается RtkGps+ тоже имеет исходники на GitHub и часть нужного функционала уже реализована: .
Не совсем верно, проект имеет код анализа устройства на предмет применения всех существующих и реализованных в проекте на данный момент возможностей. Но устройство вполне адекватно решает задачи по измерению ваших текущих координат. Конечно по возможностям данного устройства которые и обнаружила программа. В проекте есть возможность внести базовые координаты точки нахождения и сравнить их с вычисляемыми со спутников. Данный скриншот я вам и показал выше. Как обычный логер устройство тоже работает и пишет всю информацию что удалось вытащить из GPS модуля в лог файл. Просто максимальная гибкость на сегодня реализованная на апи 28, мое устройство поддерживает только 24 потому есть ограничения по возможностям. Но создать например база на данном проекте куда легче чем на всех других что я смотрел. Все проекты RTK у меня тоже есть но они как то мне лично не приглянусь как основа для работы с GPS данными. Ну это все субъективно. Кому то проше все купить в готовом виде или идти по чьей то другой тропе... тут каждый выбирает сам. Мне это просто интересно, не думаю что пригодиться серьезно в жизни. Но получить какой то легкий в употреблении инструмент на сотике я не откажусь. --- Сообщения объединены, 15 окт 2019, Оригинальное время сообщения: 15 окт 2019 --- Про разные гугл карты согласен.. не очень и надо... --- Сообщения объединены, 15 окт 2019 --- Если смотрели проект, сравнение делает BenchmarkController
Представлен довольно навороченный Realme X2 Pro на базе Snapdragon 855 Plus, с двухчастотным GPS - "GPS/Beidou/Galileo (Dual-frequency GPS)" В Европе в продажу обещают в ноябре, официальная цена от €399 до €499 в зависимости от памяти.
Есть очень бюджетный вариант Lenovo z6 lite(k10 note в европейском союзе),стоит около 140 долларов.в нем стоит китайский новый gps двух- или трехчастотник - HD8040..при желании характеристики в инете можно нагуглить..этот чип там и правда есть : ребята с 4pda в работе сняли лог и прислали ,так что чип там есть точно..но вот насколько он реализован..вопрос!!! --- Сообщения объединены, 16 окт 2019, Оригинальное время сообщения: 16 окт 2019 --- XAND, я когда-то загорелся с помощью разных программ УЛУЧШИТЬ точность gps в телефоне...но в движении 3 метра -это самое лучшее что получилось...у меня и тогда ,да и сейчас в принципе,знаний по этой теме вообще не было,я не геодезист...была тема:проложить трек по болоту,вехи нельзя....а идти будут другие ..пока не получилось!я очень-очень надеялся на двухчастотник...пока надежды эта технология не оправдывает (в телефоне,для рядового юзера),точность 0,3м в движении не получается..пока... как-то так! главное - не терять надежду!
Ну потому и хотелось бы сделать из пары сотиков систему с локальной поправкой. стати насчет большей точности экспериментировал с подкладкой под сотик отражателя. если подобрать размер то вроде получается лучше соотношение сигнал шум и на точность выходит быстрее. Надо посмотреть в сети если есть фото GPS модулей сотиков какая там антенна? Если на керамике типа патч антенны то можно подобрать размер отражателя и поставить на определенном расстоянии по центру сотик. Я работал на подобных частотах декодировал сигналы с морской подвижной службой Инмарсат и авиационной ИКАО. Делал патч антенну и все прекрасно принималось, но ее размер, самого квадрата патча - в разы больше того что в GPS Хотя частоты рядом.
Патч-антенны ставились в сотики лет 8-10 назад, ещё на Windows Mobile. Сейчас это кусок "проволоки" сложной формы сразу на несколько устройств и диапазонов. Естественно патч-антенна была лучше.
Спасибо, но это херня не может являться антенной. Это обычная основа жесткости корпуса. И ничего там сложного в формах нет. Я надеялся на большее
Это крик души и разочарование в смартфонах, или это упрёк мне, что недостаточнаяч информация ? Поверьте рассчёты там наисложнейшие с учётом стоячих волн и пр. Не просто так каждая пипка на "проволочке" придумана. И не я придумал такой дизайн. Все вопросы - к производителям вашего смартфона. Вот так выглядели антенны во времена WinMobile, квадратный патч 10-12 мм, сегодня их просто некуда впихнуть. vs iPhone (и все современные смарты), тоньше, хотим ещё тоньше корпус...
0,3 метра смартфоном? Да Вы оптимист батенька! Тут профессиональной аппаратурой не всегда удается такую точность получить.
Просто максимальная гибкость на сегодня реализованная на апи 28, мое устройство поддерживает только 24 потому есть ограничения по возможностям. Кто Вам мешает использовать библиотеки совместимости, которые позволяют использовать код для новых API на старых устройствах.[/QUOTE]
двухчастотный это замечательно, но как насчет фазовых измерений в ринексе ? пока никто еще не продемонстрировал такой ринекс кроме телефонов с чипсетом от Broadcom (например Mi 8).
[/QUOTE] Это не подходит в случае GPS. Я использую апи выше левелом, но ведь само железо не отдаст мне того, что оно в моем случае не дол.но отдавать. Новые возможности появляются и из-за того, что они просто появляются в новом железе. Например мой аппарат несмотря на то что в коде есть вариант на получение Messages типа NAV их мне не выдаст. И много чего еще не выдаст, несмотря на наличие возможности это получить в установленном приложении. --- Сообщения объединены, 17 окт 2019, Оригинальное время сообщения: 17 окт 2019 --- Ни в коей мере не упрек... считал я антенны ставил профи софт(ANSYS HFSS) и пытался исследовать различные комбинации и форм и просто проводников. Долго это и муторно на домашнем ноуте. Но в данном случае я производителю не поверю это хрень а не антенны на данные диапазоны. В зоне шаговой доступности может что то и работает. А вообще по опыту работы с SDR приемником антенна это 90% успеха. С SDR хорошо то, что визуально видишь эфир. сигналы и помехи. Другие ощущения. --- Сообщения объединены, 17 окт 2019 --- Да кстати антенна на которую принималось... патч антенна еще и в фокусе тарелки. Ну у меня небо на инмарсат и аэро сильно закрыто домами потому очень слабый сигнал со спутников еле пролезает, потому тарелку пришлось задействовать