как работает gps, часть 4
Oct. 23rd, 2009 04:08 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Остаётся рассказать, как читать сигналы gps, если в вашем устройстве есть такой чип.
Пропустим вопросы конфигурации и инициализации, это всё детали. Предположим, что у вас уже всё подключено, прогрето, сконфигурировано, gps нашел свои спутники и готов поделиться информацией. Взять её у него - наша задача.
Gps передаёт свою информацию по последовательному порту, на 4800 baud. Каждый блок представляет собой несколько строк ASCII символов. Каждая строка начинается с идентификатора. Есть стандарт на контент, но есть и реальность, в которой а) стандарт не всегда соблюдается, и б) proprietory форматы содержат много интересного, чего нет в стандартной информации.
Вот некоторые из идентификаторов:
$GPZDA - работает как часы, т.е. сообщает время и дату;
$GPRMC - минимальный источник текущего положения
$GPGGA - типичный источник текущего положения ("gps fix")
$GPGLL - ещё один альтернативный источник текущего положения
$GPGSA - сведения об использованных спутниках и точность по вертикали и по горизонтали
Так как самое интересное - это gps fix, то эти три, GPGGA, GPGLL, GPRMC я и приведу в деталях.
Есть много различных видов данных от GPS; разные GPS возвращают разные пакеты данных. Странное отсутстие высоты в минимальном пакете объясняется тем, что стандарт разрабатывали моряки, а у моряков пространство двумерное, они про высоту ничего не знают. А глубину GPS не меряет.
На этом я заканчиваю свои записки. Пользуйтесь этими данными как считаете нужным.
Ещё несколько замечаний на тему распространённых мифов.
- GPS передаёт данные на спутник. Это нужно верить в чудеса, чтобы полагать, что 30 спутников на высоте 20 тыс км в состоянии принять сигналы от, небось, полумиллиарда мобильников и навигаторов; если ещё учесть мощность сигнала мобильника... ну вы поняли.
- нужна постоянная видимость спутника. Нет; на самом деле, некоторые устройства могут проэкстраполировать ваше движение в тоннеле; кроме того, репитеры, aka DGPS, во множестве размещены по городам и весям; у нас в конторе, например, несколько таких репитеров висит просто на потолке; я так понимаю, что и в Гугле тоже эти приборы понатыканы; вскоре они появятся и в аэропортах, если уже не появились.
- спутники ни при чём, а всё ориентирование идёт через башни мобильников. Нельзя исключить, что такие приборы имеются, только их нельзя назвать GPS; система LORAN, использовавшаяся для морской и воздушной навигации до эпохи GPS, нынче уходит в прошлое, т.к. затраты на поддержку всех этих станций по всей планете несравнимы с затратами на спутник.
Замечания приветствуются. Через недельку я это перегоню в pdf и помещу у себя на сайте.
Пропустим вопросы конфигурации и инициализации, это всё детали. Предположим, что у вас уже всё подключено, прогрето, сконфигурировано, gps нашел свои спутники и готов поделиться информацией. Взять её у него - наша задача.
Gps передаёт свою информацию по последовательному порту, на 4800 baud. Каждый блок представляет собой несколько строк ASCII символов. Каждая строка начинается с идентификатора. Есть стандарт на контент, но есть и реальность, в которой а) стандарт не всегда соблюдается, и б) proprietory форматы содержат много интересного, чего нет в стандартной информации.
Вот некоторые из идентификаторов:
$GPZDA - работает как часы, т.е. сообщает время и дату;
$GPRMC - минимальный источник текущего положения
$GPGGA - типичный источник текущего положения ("gps fix")
$GPGLL - ещё один альтернативный источник текущего положения
$GPGSA - сведения об использованных спутниках и точность по вертикали и по горизонтали
Так как самое интересное - это gps fix, то эти три, GPGGA, GPGLL, GPRMC я и приведу в деталях.
GP*** | Время, Широта, Долгота | Высота | Скорость | Курс | Точность | <Пример | Интерпретация |
---|---|---|---|---|---|---|---|
RMC | + | + | + | + | + | $GPRMC,081836,A,3751.65,N,4507.36,E,010.0,117.0,221009,011.3,E*42 | t=08:18:36, all ok, lat=37°51.65' North, lon=45°7.36' East, speed=10 knots, course=117°, date=Nov.22,2009, magnetic deviation=11.3° East, and 42 is the checksum |
GGA | + | + | - | - | + | $GPGGA,180823.30,3751.65,N,4507.36,E,1,09,3.1,271.8,M,-34.5,M,5.5,1234*42 | t=08:18:36, lat=37°51.65' North, lon=45°7.36' East, source: satellite, 9 satellites, horizontal precision 3.1 m, altitude 271.8 m, geoid height above ellipsoid -34.5, age of DGPS data = 5.5 sec, DGPS id = 1234; and 42 is the checksum |
GLL | + | - | - | - | - | $GPGLL,3751.65,N,4507.36,E,180823.30,A | lat=37°51.65' North, lon=45°7.36' East; t=08:18:36; A means data valid |
Есть много различных видов данных от GPS; разные GPS возвращают разные пакеты данных. Странное отсутстие высоты в минимальном пакете объясняется тем, что стандарт разрабатывали моряки, а у моряков пространство двумерное, они про высоту ничего не знают. А глубину GPS не меряет.
На этом я заканчиваю свои записки. Пользуйтесь этими данными как считаете нужным.
Ещё несколько замечаний на тему распространённых мифов.
- GPS передаёт данные на спутник. Это нужно верить в чудеса, чтобы полагать, что 30 спутников на высоте 20 тыс км в состоянии принять сигналы от, небось, полумиллиарда мобильников и навигаторов; если ещё учесть мощность сигнала мобильника... ну вы поняли.
- нужна постоянная видимость спутника. Нет; на самом деле, некоторые устройства могут проэкстраполировать ваше движение в тоннеле; кроме того, репитеры, aka DGPS, во множестве размещены по городам и весям; у нас в конторе, например, несколько таких репитеров висит просто на потолке; я так понимаю, что и в Гугле тоже эти приборы понатыканы; вскоре они появятся и в аэропортах, если уже не появились.
- спутники ни при чём, а всё ориентирование идёт через башни мобильников. Нельзя исключить, что такие приборы имеются, только их нельзя назвать GPS; система LORAN, использовавшаяся для морской и воздушной навигации до эпохи GPS, нынче уходит в прошлое, т.к. затраты на поддержку всех этих станций по всей планете несравнимы с затратами на спутник.
Замечания приветствуются. Через недельку я это перегоню в pdf и помещу у себя на сайте.
no subject
Date: 2009-10-24 07:08 am (UTC)CellID geofencing. Такие приборы имеются и весьма полезны в ситуациях, когда нет возможности пойметь сигнал спутников вообще (протухла база эфемерид и не скачивается). Технически решается привязкой данных о базовых станциях сотовой сети к координатам; может работать при наличии базы сот. Задача не сильно сложная, но врядли решаемая в рамках самого прибора; мы делаем на сервере.
Интересно по поводу экстраполяции: есть ли (возможно ли сделать) устройства, которые способны с приемлемой точностью анализировать движение при помощи твердотельных акселерометров и вычислять координаты.
no subject
Date: 2009-10-24 07:41 am (UTC)Когда-то SiRF обещал что чипсет Star IV будет это уметь. Но что-то всё заглохло.
А вообще — так летали ещё первые МБР. Думаю и на современных оно вполне применяется, на новом уровне технологии.
no subject
Date: 2009-10-25 11:30 am (UTC)с акселерометрами, но не с твердотельными ;)
no subject
Date: 2009-10-25 11:32 am (UTC)no subject
Date: 2009-10-25 03:33 pm (UTC)no subject
Date: 2009-10-25 04:09 pm (UTC)no subject
Date: 2009-10-24 08:34 am (UTC)no subject
Date: 2009-10-24 08:36 am (UTC)no subject
Date: 2009-10-24 09:10 am (UTC)no subject
Date: 2009-10-24 09:20 am (UTC)no subject
Date: 2009-10-24 09:21 am (UTC)no subject
Date: 2009-10-24 10:13 am (UTC)no subject
Date: 2009-10-24 10:16 am (UTC)no subject
Date: 2009-10-24 10:20 am (UTC)как скажете
no subject
Date: 2009-10-24 10:12 am (UTC)http://wiki.gpl-devices.org/wiki/TomTom_GO_920
no subject
Date: 2009-10-24 11:25 am (UTC)no subject
Date: 2009-10-24 03:34 pm (UTC)no subject
Date: 2009-10-24 07:11 am (UTC)Такое есть, но, конечно, не в чистом виде. Обычно станции GSM используются вместо DGPS для уточнения. Называется AGPS — Assisted GPS
http://en.wikipedia.org/wiki/AGPS
no subject
Date: 2009-10-24 07:22 am (UTC)no subject
Date: 2009-10-24 08:42 am (UTC)5 марта 2007 мною была выложена первая в мире бэта-версия программы, позволяющей на экране мобильных устройств осуществлять трехмерную GPS-навигацию. Международное признание и приоритет проект получил на международной выставке GeoForm2007+.
no subject
Date: 2009-10-24 04:45 pm (UTC)no subject
Date: 2009-10-24 05:38 pm (UTC)Мне просто надо знать он вменяемый человек или фанфарон.
no subject
Date: 2009-10-24 08:50 am (UTC)Можно не исключать: Mobile phone tracking
Gps передаёт свою информацию по последовательному порту, на 4800 baud. Каждый блок представляет собой несколько строк ASCII символов.
Есть разные мнения
no subject
Date: 2009-10-24 04:52 pm (UTC)no subject
Date: 2009-10-24 12:51 pm (UTC)Насколько я понял из текста, минимальный пакет RMC - "$GPRMC - минимальный источник текущего положения", а в таблице нет высоты у GLL.
Наверху уже сказали про A-GPS. Стоит во множестве мобильников. Я думаю за последние год-два уже во всех новых. Позволяет начать позиционирование сразу за пару секунд не дожидаясь разогрева и поиска спутников.
no subject
Date: 2009-10-24 02:32 pm (UTC)* т.е. если мой GPS выдаёт высоту над уровнем моря (а он таки выдаёт), то это данные зашиты в топографических деталях карты, а не определяемые чипом?
* Нонче появились всякие утилиты типа GPS fix/gps update. Как показала практика, регулярное скачивание которых обеспечивает более быстрый cold start. Что скачивают эти утилиты?
* Похоже, что чип (или, покрайней мере некоторые из них) умеет какое-то время кэшировать свои текущие координаты. Поскольку, если оставить машину на парковке на час-два, то девайс стартует секунд за 10, против обычой минуты...
no subject
Date: 2009-10-24 03:30 pm (UTC)* альманах и (предсказанные) эфемериды
* обычно холодный старт -- с нуля (возможно с альманахом); тёплый старт -- по последней позиции, времени и альманаху; горячий старт -- по последней позиции, времени, альманаху и по крайней мере 3 эфемеридам
no subject
Date: 2009-10-24 04:05 pm (UTC)