GPS: "Почему оно не ловит", или как все это работает. (1 запись)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 9 г., 8 мес. назад

    Спутниковая навигация настолько стремительно ворвалась в нашу жизнь, что для большинства кажется совершенно обыденной. Подумаешь, коробочка знает где ты сейчас на шарике  :) Безусловно, многолетние усилия по разработке систем навигации сделали ее использование простым и удобным, но, к сожалению, "любая нетривиальная абстракция дырява" (С), и  чтобы понять причины проблем работы GPS навигатора, нужно вернуться к самым истокам, и разобраться, как это все работает.

    В основе работы любых систем глобальной навигации лежит известный с античных времен принцип триангуляции: зная в пространстве расстояние до 3-х известных точек, можно рассчитать точное положение четвертой. В спутниковой навигации в качестве этих точек используются спутники на околоземной  орбите, а расстояние измеряется по времени прохождения радиосигнала от спутника до приемника. И чтобы узнать, где сейчас мы, надо всего лишь узнать где же сейчас те спутники, от которых мы поймали сигнал.

    И вот с этим-то и начинаются проблемы! Потому что орбиты спутников не геостационарные - они не висят неподвижно над одной точкой поверхности, а весьма бодро перемешаются - примерно 3 километра в секунду. А значит, чтобы узнать текущее местоположение спутника, нужно с высокой точностью знать параметры его орбиты и иметь точное время, синхронизированное со спутниками. 

    Более того, орбиты спутников не остаются постоянными! Притяжение других планет, Луны и другие возмущающие факторы постоянно изменяют орбиты спутников, и накапливаясь, через некоторое время делают информацию об орбите совершенно недостоверной.

    Для компенсации этого спутникам помогают наземные станции: они вычисляют свои координаты в точности так же как и обычные навигаторы, и... сравнивают с эталонными. По расхождению вычисляется поправка и передается на спутники для коррекции параметров орбиты.

    Сами параметры орбиты представлены общим журналом, называемым альманахом, общим для всех спутников, и индивидуальными поправками - эфемеридами. Альманах содержит 6 параметров орбиты каждого спутника, а срок актуальности альманаха составляет целый месяц. Эфемерида спутника корректирует параметры альманаха с учетом коррекции с наземных станций,  и обновляется примерно каждые полчаса-час, но актуальность сохраняет до 6 часов. Также со спутника передается информация о времени, расхождении часов конкретного спутника и даже о состоянии ионосферы в районе спутника - потому что изменение плотности ионосферы меняет задержку прохождения сигнала.

    Осталось дело за малым - получить эту информацию со спутников. А до них аж 21 000 километров! А нам надо и сигнал принять, и расстояние замерять с точностью до метров - то есть с погрешностью не выше 0,0005%! С учетом того, что все спутники передают сигнал на одной и той же частоте, задача кажется неразрешимой - однако ж современная техника с ней успешно справляется, выделяя из общего потока индивидуальные сигналы спутников. Но чтобы это сделать, нужно или с достаточной точностью знать где их искать, или просто тупо сканировать весь частотно-временной диапазон в надежде найти хоть что-либо.

    И вот тут-то мы наконец добрались до объяснения загадочных понятий - холодный старт, теплый старт, горячий старт. Оказывается, все просто: 

    Горячий старт - у нас есть альманах, эфемериды и мы знаем собственные координаты с высокой точностью. Обладая этой информацией, приемник точно знает где искать спутники, и для определения координат достаточно лишь принять сигнал с нескольких из них.

    Теплый старт - это у нас устарели эфемериды, или приемник был перемещен в выключенном состоянии на достаточно большое расстояние, так что предсказанные углы спутников стали неверными. При этом сканируются узкие области возможных положений спутников согласно альманаха, и принимаются эфемериды этих спутников (в лучшем случае около 30 секунд). В программе YGPS это отображается так: красным отмечается спутник, для которого мы знаем положение но не имеем эфемериды, синим - имеем эфемериду но не можем использовать для расчета координат, зеленым - спутники, пригодные для вычисления координат. СтОит отметить, что даже приняв эфемериду спутника, мы не всегда можем его использовать - эфемерида содержит специальный флаг, отключающий использование данных этого спутника, например во время коррекции орбиты.

    Холодный старт - это когда нет даже достоверного альманаха. Программа YGPS при переходе в режим холодного старта убирает изображения всех спутников. И именно при холодном старте и появляется та раздражающая задержка в поиске спутников. Она происходит по нескольким причинам:

    • во-первых, приемник навигатора должен просканировать весь частотно-временной диапазон вслепую, чтобы найти и выделить из общего "хора" сигнал хотя бы одного спутника.
    • а во-вторых, принять альманах. Расстояние до спутников просто космическое, поэтому скорость передачи очень мала: всего лишь 50бит в секунду. В век мегабитного интернета в это невозможно поверить! Даже не килобит - БИТ в секунду!  На такой скорости альманах передается за 12.5 минуты - то есть холодный старт быстрее быть просто не может! И это в лучшем случае - до спутников далеко, а до наземных источников помех очень близко, и если во время получения альманаха пришла помеха, то поврежденный пакет данных надо будет получать заново - то есть ждать еще 12.5 минут. Также приему мешает отражение сигнала от посторонних предметов, так называемый многолучевой прием, что особенно характерно для городской застройки или горных ущелий - тогда приемник может ошибочно "зацепиться" за отраженный луч, который подвержен значительно большим колебаниям фазы. Ситуацию немного облегчает многоканальность современных приемников, они могут одновременно и независимо обнаруживать несколько спутников, а начиная с SirfStar3 - вдвое больше всех видимых спутников, как раз для случаев многолучевого приема. Но главное все же то, что в городе радиоэфир заполнен множеством мощных передатчиков на близких частотах, в первую очередь антеннами сотовой связи, наводки которых на антенну GPS-приемника приводят к помехам.

    И вот именно для сокращения времени холодного старта в городе, где принять альманах со спутника практически нереально, и придуманы две обходные технологии - AGPS и EPO. 

    AGPS - это просто получение альманаха не со спутников, а через Интернет. Вжик - и он уже тут :)

    А вот EPO, которое расшифровывается как Расширенное Предсказание Орбиты, это попытка от компании Медиатек уточнить данные альманаха  так, чтобы его можно было использовать дольше - и естественно это работает только на процессорах MTK. Эти данные тоже надо скачивать через интернет, вот только в начале 2014 года Медиатек предательски изменила адрес сервера, откуда телефон (а больше эта технология нигде не применяется) должен скачивать данные EPO, отчего все выпущенные ранее телефоны потеряли возможность использовать их: этот адрес невозможно изменить через настройки, он зашит прямо в файл mediatek-framework.apk

    При наличии интернета обе технологии значительно уменьшают время старта, а что делать при отсутствии интернета? Совет тут один и очень простой: выехав за город, остановитесь и включите GPS. Без городских помех навигатор сможет получить альманах по старинке - с самих спутников, и благополучно определит координаты через те самые 13 минут.

← Форум группы   Все форумы К последней записи
Постов на странице:

Вы автоматически вступите в эту группу, когда ответите в теме.

Добавить ответ:

-
Рейтинг@Mail.ru