RTKlib/постпроцессинг

У нас первый Trimble 4000 появился в 1992. Полный список оборудования, софта и послужной список, извиняюсь, приводить не буду, но отечественных и иностранных заказчиков всё устраивало. За GPS сажали лохов, у которых не было лицензии на геодезическую деятельность. Ширпотреб вроде Motorola и Furuno в нашей отрасли не применялись.

Из теории мне интересно устройство GPS-приёмников. Тонкости обработки не интересуют (ещё в 90-е - нулевые наработался с QPS DGPS, QINSy и пр. так что всякие w-test, f-test и поиск блох вылетов в обсервациях для меня пройденный этап).

с GPS гармином нельзя было проехать в авто по городу :rage:

да нормальный был ширпотреб за штуку баксов :smiley: S/A давил и это было благо, ибо другого с сырыми данными приемника тогда небыло
и кварц был отюстирован и термостатирован, не то что в нынешней фирме

я когда прочел это летом чуть с дивана не упал,
насколько понял, тамошний refot это местный стрелок :smiley:
номер PRN однозначно связан с С/A кодом, вместо 3-х значных номеров WAAS забиваем 125 и 140 и все должно работать с GPS и ничего не будет работать с GLONASS, для GLONASS SBAS не реализован даже в u-blox

По слухам, сам не проверял, не вижу спутников WAAS, WAAS это единственная SBAS, которая в нарушение интерфейса SBAS, синхронизирована с GPS, т.е. псевдорадиус стоит как укопанный, вследствии чего имеет много недокументированных фичей,
так что лучше перебивать не WAAS.

ничего интересного в устройстве GPS-приёмников нет, если интересно то берем rtl-sdr, к нему цепляем активную антенну и любой фришный GNSS-SDR :slight_smile: Когда изучение приемника по исходникам софты надоест, можно приступить к реализации real-time GPS signal simulator, благо опять фришной софты навалом.
Вот с simulator все гораздо интереснее, когда станете смотреть его сигнал u-blox_ом.
Первый вынос мозга будет это когда u-blox от GPS signal simulator в residual для каждого спутника начнет рисовать отменную пилу :laughing:
Тогда прийдет осознание что изучать теорию устройства GPS-приёмников лишено особого смысла, ибо не все сказано в интерфейсе GPS а если и сказано то далеко от истины. Вот когда вместо пилы в residual ваш GPS signal simulator будет выдавать прямую линию близкую к нулю, как у настоящих спутников, тогда будете считать что с теорией вы разобрались :slight_smile:

Номер PRN связан с C/A кодом в таблице ICD-GPS-200, но в кто-то должен проинициализировать DSP/FPGA в чипсете, чтобы задать начальные значения для генератора C/A. Об этом шла речь, так-что мы с refot поняли друг-друга. В прошивке sirf куча проверок типа svid <= 138, я не расчитываю на лёгкое решение. За июль месяц я не смог найти обращение к недокументированным областям памяти (IO), хотя бы близко напоминающим эти значения.

таблицами никто не пользуется, обычно юзается такой код


/* !\brief generate the C/A code sequence for a given Satellite Vehicle PRN
 *  \param[in] prn PRN nuber of the Satellite Vehicle
 *  \param[out] ca Caller-allocated integer array of 1023 bytes
 */
void codegen(int *ca, int prn)
{
	int delay[] = {
		  5,   6,   7,   8,  17,  18, 139, 140, 141, 251,
		252, 254, 255, 256, 257, 258, 469, 470, 471, 472,
		473, 474, 509, 512, 513, 514, 515, 516, 859, 860,
		861, 862};
	
	int g1[CA_SEQ_LEN], g2[CA_SEQ_LEN];
	int r1[N_DWRD_SBF], r2[N_DWRD_SBF];
	int c1, c2;
	int i,j;

	if (prn<1 || prn>138)
		return;

	for (i=0; i<N_DWRD_SBF; i++)
		r1[i] = r2[i] = -1;

	for (i=0; i<CA_SEQ_LEN; i++)
	{
		g1[i] = r1[9];
		g2[i] = r2[9];
		c1 = r1[2]*r1[9];
		c2 = r2[1]*r2[2]*r2[5]*r2[7]*r2[8]*r2[9];

		for (j=9; j>0; j--) 
		{
			r1[j] = r1[j-1];
			r2[j] = r2[j-1];
		}
		r1[0] = c1;
		r2[0] = c2;
	}

	for (i=0,j=CA_SEQ_LEN-delay[prn-1]; i<CA_SEQ_LEN; i++,j++)
		ca[i] = (1-g1[i]*g2[j%CA_SEQ_LEN])/2;
	
	return;
}


да какие проблемы ? :smiley:
забивайте 125 и ловите моменты когда этот PRN SDCM работает
давеча (02.09.20) когда тестировал TRK-MEASX-SEC работали 125 и 140
поскольку шаг SNR был 0.25 то наблюдал **дивное явление в SDCM **
если сигнал 140 стоял как укопанный, хотя он ниже над горизонтом
сигнал от 125 за 40 минут наблюдений плавно возрос по дуге с 38 до 40 а потом опять начал плавно по дуге уменьшаться :roll_eyes:
чем это вызвано непонятно :frowning:

Новател на самом деле тоже не без греха,
но это дела минувших дней.

автор rtklib начинал с функционала precision-gps.org (aka Kinematic) если вы помните,
но по каким-то причинам целенаправленно отрицательно относился к sirf2
и выкинул его вообще из кода.
Также это был “rtklib.com” то есть его целью было создание коммерческого продукта,
где он являлся бы единственным автором, а не community проект,
но потом что-то пошло не так и он забросил это дело.
rtklibexplorer тоже малый предприниматель, единственная цель которого
убедить потенциальных клиентов в своей полезности.
Все это не способствует тем результатам которые вы бы желали видеть.

В F9H (и надо полагать в F9K) его выкинули …

Для разнообразия)))

Потестировать. Пришли M8N а RAW data не взять

меняю на 1 секундный POLV2270.20d :smiley:
ибо в этой сети его нет
там вообще нет Полтавы :roll_eyes:

Добрый день!
Нашёл вот такое исследование
https://europepmc.org/article/PMC/6603672
Если я правильно понял вывод в п. 7,то итог такой:
1)смартфон при наличии спец. Программного обеспечения может добиться субметровой точности и в статике и в кинематике
2)при использовании ПО, встроенного в телефон можно добиться только мнтровой точности
У меня к вам просьба:прочтите вывод их(а может вам будет интересно все исследование, методика и т. Д.) и отпишите мне пожалуйста о ваших выводах!

Массив тоже таблица, но спасибо за нестандартное решение перебором G2, очень помогло. Нашёл в прошивке сёрфа инициализацию G2,там вписана таблица 1023 бита и инициализация выдёргивает нужное битовое окно.
Что я не понимаю до сих пор - почему в Москве спутники Луч висят ниже 11°, но радует, что российский Космос работает на регионы. В центральной России много сетей, а на ДВ не очень.

в Харькове 125 висит на 15° но работает редко, 140 висит на 10° но работает почти всегда,
оба спутника передают одно и тоже.

На бумаге - да. Mi8 - первая и последняя попытка использования потенциально нормального
GPS/GALILEO чипсета в телефоне (L1/L2/L5), но все остальное сделано через Ж:
антенна, LNA, недокументированный чипсет, жутко нестабильный трекинг и тд.

Встроенное ПО чудес из некачественных входных данных сделать не сможет,
никаких дифференциальных поправок (даже WAAS/EGNOS полностью игнорируется)
не использует, поэтому даже метровая точность это преувеличение.
Визуально качество треков с Mi8 лучше чем MAX-M8Q, но это скорее всего эффект
использования данных MEMS, а не GPS.
Вот если бы был телефон с чипом ZED-F9R (функциональный аналог BCM47755)
и разъемом для внешней антенны, то это было бы серьезно, а так Mi8 это баловство.

Потому что они геостационарные и находятся в Ж.
Их же не для людей делали.
В СПб спутники японские QZSS и то лучшую геометрию имеют,
но там и EGNOS нормально работает.

Давно уже бы пора интегрироваться в EGNOS, все украинские станции даже в EUREF имеются.

насколько я понимаю в этом нет резона :slight_smile:
все покрыто сетями типа этой
приведенная сеть имеет две базовые, которые расположены в ~4 км от того места где я обычно тестирую девайсы,
SBAS с его точностью это прошлый век :smiley:

Из за того что нет нигде базовой станции Полтавы в открытом доступе решил установить свою используя U-blox F9P + ESPRTK.

Результат таков:

  • Все заработало и поправки идут в RTCM 3.2.
  • Получилось инжектировать 1008.
  • Тримбл девайс начал работать с этой станцией.
  • Alpha RTK Также ловит фикс

Теперь о плохом:

  • Коррекция работает примерно 15-30 минут. После чего в Тримбл перестает работать коррекция (Alpha RTK не тестил).
    Отсутствие коррекции продолжается также около 20-30 минут, потом все начинает работать, и так по кругу. Либо нужно перезагрузить модуль U-blox F9P (могу удаленно ресетнуть по питанию) и коррекция восстанавливается сразу.

Расчет координат базы делал через OPUS с данными более суток.

Также данные с UART2 пробовал паралельно пропускать через strsvr. Все также работает на Trimble и коррекция пропадает одновременно с линией UART1 на ESPRTK.

Общий список сообщений 1005(1), 1008(5), 1077(1), 1087(1), 1097(1), 1127(1), 1230(5)

Прошу помощи знатоков по настройки базы.

Написал человек занимающийся припарками к глонассу :roll_eyes:

Ваша версия strsvr уравнивает сырые данные на целые секунды ?

Использую версию RTKLIB_bin demo5_b33c

Как это узнать?

Сохранить выдачу str2str в файл, конвертировать с помощью convbin в RINEX,
и посмотреть будут ли во временных отметках ненулевые миллисекунды.
u-blox использует (на мой взгляд сознательно) разные методы для саботирования совместимости с другими
производителями.

Да, кстати что с этим делать на устройстве? Мой китайский клон F9P мне частенько выдаёт XX.995. Хотя в версии от rtkexplorer есть ключ для устранения этой проблемы

-TADJ=0.005