Комментарии 15
Интересно, сколько штрафов прилетит с соц-мониторинга, если оно еще существует. А существует ли еще оно?
Некоторые устройства с GPS перестали показывать точное местоположениепродолжили показывать точное положение, но со сдвигом.
Вообще, кликбейт новости в том, что недавно была история, что старые GPS устройства вообще перестали показывать местоположение после обнуления счётчика недель.
Опять программисты создали проблему что бы героически ее решать! ;)
Oneplus 7pro 3 января работал с Яндекс.Картами (как минимум) настолько криво, что пришлось ехать «по памяти»
Проблема 2021 года
Как «представитель отрасли» вставлю свои 7 копеек одной монетой.
Это очень похоже на известную проблему, которая возникает во многих прошивках каждую ночь с субботы на воскресенье в полночь по Гринвичу. В этот момент меняется номер недели и надо грамотно рассчитать время между текущей секундой и опорным временем эфемерид.
Когда мы принимаем эфемериды GPS до полуночи, мы получаем — Toe=604800 (опорное время эфемерид) и номер предыдущей недели. В полночь нам надо заменить время эфемерид (Toe) на Toe=0. Если это не сделать — уход будет на 200-300 метров.
Чипсет тут не так важен, важна прошивка. Собственно в день, когда я исправил этот баг в нашем коде, мы поехали домой в 4 MSK (0 UTC) и словили тот же баг на навигаторе.
Эфемериды GPS передаются раз в 30 секунд и принимаются в течение 18 секунд. Ещё 12 секунд передаются альманахи и остальная информация. Указанное в статье время 5 минут — это время отработки разных сглаживающих фильтров.
Файлы EPO или CPE вряд ли содержат эфемериды, скорее альманахи (упрощенные эфемериды). ЦУП старается заложить в спутник эфемериды на каждом витке (раз в 11 часов 55 минут). Потребители же GPS получают эфемериды раз в 2 часа со сроком годности в 4 часа. Так что обновление раз в несколько дней — это приличная потеря точности.
С другой стороны, альманахи дают точность координат спутника в километры (а не в метры), зато пригодны минимум месяц. И вот как раз заранее накачанные альманахи — прилично ускоряют старт. Полное время передачи альманахов GPS (на все спутники) — 12.5 минут. Так что скорее всего в этих файлах альманахи.
Возможна ещё одна похожая ошибка. Раз в 12.5 минут передаётся ещё и Leap Seconds (убегание часов GPS по сравнению с UTC) и вот их как раз есть смысл кэшировать в файле. Тогда среднее время восстановления будет 6 минут 15 секунд. Такая ошибка действительно может возникать после 31 декабря (время действия предыдущего leap seconds), но, похоже, лишь в паре GPS+Beidou. Чистый GPS при сбое leap seconds даст верные координаты с неверным временем UTC, а в паре GPS+ГЛОНАСС слишком просто вычислить его мгновенно, по разнице времён (ГЛОНАСС работает в MSK, который UTC+3).
Это очень похоже на известную проблему, которая возникает во многих прошивках каждую ночь с субботы на воскресенье в полночь по Гринвичу. В этот момент меняется номер недели и надо грамотно рассчитать время между текущей секундой и опорным временем эфемерид.
Когда мы принимаем эфемериды GPS до полуночи, мы получаем — Toe=604800 (опорное время эфемерид) и номер предыдущей недели. В полночь нам надо заменить время эфемерид (Toe) на Toe=0. Если это не сделать — уход будет на 200-300 метров.
Чипсет тут не так важен, важна прошивка. Собственно в день, когда я исправил этот баг в нашем коде, мы поехали домой в 4 MSK (0 UTC) и словили тот же баг на навигаторе.
Эфемериды GPS передаются раз в 30 секунд и принимаются в течение 18 секунд. Ещё 12 секунд передаются альманахи и остальная информация. Указанное в статье время 5 минут — это время отработки разных сглаживающих фильтров.
Файлы EPO или CPE вряд ли содержат эфемериды, скорее альманахи (упрощенные эфемериды). ЦУП старается заложить в спутник эфемериды на каждом витке (раз в 11 часов 55 минут). Потребители же GPS получают эфемериды раз в 2 часа со сроком годности в 4 часа. Так что обновление раз в несколько дней — это приличная потеря точности.
С другой стороны, альманахи дают точность координат спутника в километры (а не в метры), зато пригодны минимум месяц. И вот как раз заранее накачанные альманахи — прилично ускоряют старт. Полное время передачи альманахов GPS (на все спутники) — 12.5 минут. Так что скорее всего в этих файлах альманахи.
Возможна ещё одна похожая ошибка. Раз в 12.5 минут передаётся ещё и Leap Seconds (убегание часов GPS по сравнению с UTC) и вот их как раз есть смысл кэшировать в файле. Тогда среднее время восстановления будет 6 минут 15 секунд. Такая ошибка действительно может возникать после 31 декабря (время действия предыдущего leap seconds), но, похоже, лишь в паре GPS+Beidou. Чистый GPS при сбое leap seconds даст верные координаты с неверным временем UTC, а в паре GPS+ГЛОНАСС слишком просто вычислить его мгновенно, по разнице времён (ГЛОНАСС работает в MSK, который UTC+3).
Эфемериды GPS передаются раз в 30 секунд и принимаются в течение 18 секунд....
Потребители же GPS получают эфемериды раз в 2 часаВы меня запутали. Так эфемериды передаются раз в 2 часа или раз в 30 секунд? А как работает холодный старт при отсутствии эфемерид? В худшем случае 2 часа ждать надо или 48 секунд?
Эфемериды GPS по частоте L1 (LNAV) передаётся раз в 30 секунд (кадр) и занимают 3 строки (subframe) из 5, по 6 секунд на строку. Таким образом, обычно приём эфемерид занимает от 18 до 30 секунд с момента начала когерентного приёма.
Для проверки, что во всех трёх строках данные от одних и тех же эфемерид, используется IODE/IODC. Некоторые старые спутники могут менять эфемериды не по границе кадра, а между строками. Тогда в худшем случае время приёма увеличивается до 60 секунд.
А раз в 2 часа идёт обновление эфемерид. То есть старые эфемериды заменяются на новые, с новым временем привязки (TOC/TOE) и новым IODE/IODC.
А самый долгий старт — это не холодный, а еле-еле тепленький. Это когда есть запомненные координаты и/или альманахи, но они протухли. Для протухания альманахов нужно больше месяца-двух держать приёмник выключенным. Для протухания координат — в выключенном состоянии перевезти более чем на 297 км.
Ну вот когда у нас протухло всё (перевозка Москва-Питер, долго не включали), то приёмник СН-4701 стартовал порядка 20-25 минут.
Для проверки, что во всех трёх строках данные от одних и тех же эфемерид, используется IODE/IODC. Некоторые старые спутники могут менять эфемериды не по границе кадра, а между строками. Тогда в худшем случае время приёма увеличивается до 60 секунд.
А раз в 2 часа идёт обновление эфемерид. То есть старые эфемериды заменяются на новые, с новым временем привязки (TOC/TOE) и новым IODE/IODC.
А самый долгий старт — это не холодный, а еле-еле тепленький. Это когда есть запомненные координаты и/или альманахи, но они протухли. Для протухания альманахов нужно больше месяца-двух держать приёмник выключенным. Для протухания координат — в выключенном состоянии перевезти более чем на 297 км.
Ну вот когда у нас протухло всё (перевозка Москва-Питер, долго не включали), то приёмник СН-4701 стартовал порядка 20-25 минут.
Спасибо. А альманах является необходимым для работы или достаточно эфемерид, а альманах только для ускорения? Даже если является, то 12,5 минут на получение всех альманахов + 1 минута на получение эфемерид + обсчет данных получается ну от силы 14 минут. Почему приемники 20-25 минут стартуют?
И еще подскажите, альманах и эфемериды хранит сам чип в энергонезависимой памяти? У него флэш на борту или как это организовано?
И еще подскажите, альманах и эфемериды хранит сам чип в энергонезависимой памяти? У него флэш на борту или как это организовано?
Альманахи хранятся или во флэш или в статической памяти, подпитываемой батарейкой. Поскольку нужны ещё и часы (альманах без времени бесполезен), второй вариант разумней. Есть и третий, так называемый A-GPS — загрузка альманахов, эфемерид и времени из интернета.
Эфемерид приёмнику хватает, но… Каждый спутник передаёт лишь свои эфемериды, зато альманахи (упрощенные эфемериды) — на все спутники. Чтобы поймать спутник, надо или анализировать всю полосу частот и сопоставлять со всеми кодами или знать доплеровское смещение частоты и его изменение в текущий момент времени. Вот для вычисления доплеровского смещения и используются альманахи (вместе с запомненными координатами и текущим временам).
То есть обычная картина при холодном старте — поймали спутники с самым сильным сигналом, по мере закачки альманахов — поймали остальные спутники.
Увеличенное время старта в еле тепленьком режиме — это побочный эффект от ускорения старта в теплом режиме. С одной стороны — мы ловим спутники «не там», то есть с иным доплеровским смещением. И из-за того, что сильно изменились координаты и из-за того, что протухли альманахи.
А приёмник в это время думает, что просто сигнал у него плохой. Бывает же такое, верно? Попытки приёма в подвале, под мостами, в дворе-колодце… Как видите — бывает и часто. То есть сбрасывать альманахи в условиях отсутствия приёма — дурная идея.
Так что пока случайно один из спутников не поймается — приём не начнется. Как поймается — через 18-30 секунд будет информация о верном времени и протухщих альманахах. Но… запомненная позиция все равно будет неверной. То есть даже по верным альманахам доплеровские смещения будут считаться криво.
И тут вступает в силу вторая особенность GPS — его делали моряки. ГЛОНАСС, кстати, тоже моряки. И даже Цикаду — тоже моряки делали. А моряки как координаты считают? Берут старые (примерные) координаты, считают от них невязку и добавляют её к старым координатам. Поэтому старые GPS-приёмники и требовали предварительного ввода примерных координат.
Потом одному умному человеку пришла в голову здравая мысль — «а нафига?». Ну да, если не знать примерных координат — получим сетку решений, с узлами в 297 км друг от друга. Но пересечений этой сетки с поверхностью Земли будет немного. Даже в 20-километровом слое, где летают самолёты — немного.
Так что при неверной запомненной позиции — приёмник все-таки стартует. Но… не так быстро. Сначала он грешит на сбои приёма, неверный захват сигнала, многолучевость… и лишь потом — переходит к определению позиции с нуля.
Понятно, что приёмник с высокой чувствительностью и избытком вычислительной мощности может вообще всегда параллельно с теплым стартом делать холодный. Кстати, в одном приёмнике мы просили этот режим отключить. Потому что такой старт лишь называется «холодный» :-). На самом деле в этом режиме приёмник без подключенной антенны — горячий-горячий. Ибо процессор молотит на максимуме.
Так что для старого приёмника без избытка вычислительной мощности и с не очень высокой чувствительностью цеплятся за теплый старт до упора — довольно правильная тактика. Отсюда — и 20-25 минут на старт при еле-еле тепленьком (протухшем) режиме.
Эфемерид приёмнику хватает, но… Каждый спутник передаёт лишь свои эфемериды, зато альманахи (упрощенные эфемериды) — на все спутники. Чтобы поймать спутник, надо или анализировать всю полосу частот и сопоставлять со всеми кодами или знать доплеровское смещение частоты и его изменение в текущий момент времени. Вот для вычисления доплеровского смещения и используются альманахи (вместе с запомненными координатами и текущим временам).
То есть обычная картина при холодном старте — поймали спутники с самым сильным сигналом, по мере закачки альманахов — поймали остальные спутники.
Увеличенное время старта в еле тепленьком режиме — это побочный эффект от ускорения старта в теплом режиме. С одной стороны — мы ловим спутники «не там», то есть с иным доплеровским смещением. И из-за того, что сильно изменились координаты и из-за того, что протухли альманахи.
А приёмник в это время думает, что просто сигнал у него плохой. Бывает же такое, верно? Попытки приёма в подвале, под мостами, в дворе-колодце… Как видите — бывает и часто. То есть сбрасывать альманахи в условиях отсутствия приёма — дурная идея.
Так что пока случайно один из спутников не поймается — приём не начнется. Как поймается — через 18-30 секунд будет информация о верном времени и протухщих альманахах. Но… запомненная позиция все равно будет неверной. То есть даже по верным альманахам доплеровские смещения будут считаться криво.
И тут вступает в силу вторая особенность GPS — его делали моряки. ГЛОНАСС, кстати, тоже моряки. И даже Цикаду — тоже моряки делали. А моряки как координаты считают? Берут старые (примерные) координаты, считают от них невязку и добавляют её к старым координатам. Поэтому старые GPS-приёмники и требовали предварительного ввода примерных координат.
Потом одному умному человеку пришла в голову здравая мысль — «а нафига?». Ну да, если не знать примерных координат — получим сетку решений, с узлами в 297 км друг от друга. Но пересечений этой сетки с поверхностью Земли будет немного. Даже в 20-километровом слое, где летают самолёты — немного.
Так что при неверной запомненной позиции — приёмник все-таки стартует. Но… не так быстро. Сначала он грешит на сбои приёма, неверный захват сигнала, многолучевость… и лишь потом — переходит к определению позиции с нуля.
Понятно, что приёмник с высокой чувствительностью и избытком вычислительной мощности может вообще всегда параллельно с теплым стартом делать холодный. Кстати, в одном приёмнике мы просили этот режим отключить. Потому что такой старт лишь называется «холодный» :-). На самом деле в этом режиме приёмник без подключенной антенны — горячий-горячий. Ибо процессор молотит на максимуме.
Так что для старого приёмника без избытка вычислительной мощности и с не очень высокой чувствительностью цеплятся за теплый старт до упора — довольно правильная тактика. Отсюда — и 20-25 минут на старт при еле-еле тепленьком (протухшем) режиме.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Некоторые устройства с GPS перестали показывать точное местоположение