V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Asociace NMEA na své stránce http://www.nmea.org/pub/0183/index.html uvádí, že komunikační standard je dokument podléhající copyrightu a lze jej pouze zakoupit od asociace NMEA. Cena představuje řádově stovky dolarů. Ostatní zdroje na internetu prý nejsou autorizované a mohou představovat porušení copyrightu. NMEA dále uvádí, že obsah rozličných stránek s touto tématikou mnohdy obsahuje zastaralé informace.
Pod klíčovým slovem NMEA 0183 lze na internetu skutečně nalézt řadu odkazů a jejich obsah se jeví býti konzistentním. Na základě popisů od různých autorů lze získat smysluplné informace z GPS přístroje, ale bohužel nemohu posoudit, zda se jedná o korektní popis standardu NMEA 0183. Dokument popisující standard jsem nezakoupil a i kdybych tak učinil, nesměl bych rozšiřovat informace v něm obsažené. Pokusím se však shrnout poznatky, které jsou dostupné na internetu. Aby nedošlo k nedorozuměním, nebudu již nadále komunikační protokol označovat NMEA 0183.
Protokol, kterým komunikuje přijímač Navilock 202U, má přenosovou rychlost (baud rate) 4800, počet datových bitů je 8, přičemž sedmý bit (MSB) je vždy nulový. Počet stop bitů je jeden nebo více, parita není žádná. Navzájem spolu komunikuje vždy jeden mluvčí (talker) a jeden nebo více posluchačů (listeners). Veškerá data jsou posílána ve formě vět (sentences). Jsou dovoleny pouze tisknutelné ASCII znaky plus znaky konce řádku, tedy <CR> a <LF> (0x0d, 0x0a hexadecimálně). Každá věta začíná znakem $ (dolar) a končí sekvencí <CR><LF>. Existují tři základní druhy vět:
Obecný formát vět ze strany mluvčího je
$ttsss,d1,d2,....<CR><LF>
První dvě písmena, která následují po znaku dolar, jsou označená
tt
a představují identifikátor mluvčího (talker identifier).
Další tři písmena (sss
) jsou identifikátor věty (sentence identifier). Následují datové položky oddělené čárkami (znak
","). Po nich následuje nepovinný kontrolní součet. Věta je
ukončena znaky <CR><LF>. Význam jednotlivých datových položek
je jednoznačně definován pro konkrétní typ věty (ten je určen identifikátorem sss
). Jestliže určitá datová položka není
k dispozici, zůstane datové pole prázdné, ale čárky oddělující datová
pole zůstávají (bez mezery). Kontrolní součet začíná znakem hvězdička ("*") a za ní jsou dvě hexadecimální číslice představující logickou operaci XOR (exclusive OR) ze všech znaků mezi "$" a
"*". Samotný dolar a hvězdička se do kontrolního součtu
nezapočítávají. Každá věta může obsahovat nejvýše 80 znaků plus "$" a <CR><LF>, celkem tedy 83 bajtů.
Věty proprietární umožňují výrobcům nadefinovat vlastní větu. Tyto věty začínají sekvencí "$P", pak následuje třípísmenný identifikátor výrobce, a dále následují jednotlivé datové položky v souladu s přáním výrobce. Obecný formát věty musí být zachován.
Dotazovací věty představují způsob, kterým může posluchač zažádat mluvčího o zaslání konkrétní věty. Obecný formát je
$ttllQ,sss<CR><LF>
První dva znaky (tt
) za znakem dolar jsou identifikátorem toho, kdo podává žádost. Následující dva znaky (ll
) označují
dotazovaného - tedy toho, komu je žádost posílána. Pátým znakem je vždy písmeno "Q", které označuje, že se jedná o dotazovací typ věty.
Následuje třípísmenná datová položka (sss
) určující, o jaký
typ věty se žádá. Příkladem dotazovací věty může být následující sekvence:
$CCGPQ,GGA<CR><LF>
V této větě písmena CC
označují počítač, který žádá přístroj
GP
(tedy GPS přijímač), aby zasílal věty typu GGA
. Po této dotazovací větě by měl GPS přijímač zasílat
každou sekundu větu typu GGA
, dokud nedostane povel
k zasílání jiného typu věty.
Dvoupísmenných identifikátorů existuje mnoho, pro nás je však v této
chvíli nejdůležitější, že pro GPS přijímače se používá identifikátor
GP
.
Existuje nepřeberné množství různých vět, avšak přístroj NAVILOCK 202U (a řada jiných) používá pouze čtyři, které jsou uvedeny v následujících tabulkách.
Příklad:
$GPGSA,A,3,29,26,22,09,07,05,04,,,,,,1.7,1.0,1.4*30
# | formát | příklad | komentář |
---|---|---|---|
1 | c |
A | Přepínání mezi N-rozměrnými módy (A=automatické, M=manuální) |
2 | d |
3 | Počet dimenzí N (1=?, 2=2D, 3=3D) |
3 | dd |
29 | ID prvního satelitu použitelného pro výpočet |
4 | dd |
26 | ID druhého satelitu použitelného pro výpočet |
5 | dd |
22 | ID třetího satelitu použitelného pro výpočet |
6 | dd |
09 | ID čtvrtého satelitu použitelného pro výpočet |
7 | dd |
07 | ID pátého satelitu použitelného pro výpočet |
8 | dd |
05 | ID šestého satelitu použitelného pro výpočet |
9 | dd |
04 | ID sedmého satelitu použitelného pro výpočet |
10 | dd |
N.A. | ID osmého satelitu použitelného pro výpočet |
11 | dd |
N.A. | ID devátého satelitu použitelného pro výpočet |
12 | dd |
N.A. | ID desátého satelitu použitelného pro výpočet |
13 | dd |
N.A. | ID jedenáctého satelitu použitelného pro výpočet |
14 | dd |
N.A. | ID dvanáctého satelitu použitelného pro výpočet |
15 | d.d |
1.7 | PDOP (Position Dilution Of Precision) v metrech |
16 | d.d |
1.0 | HDOP (Horizontal Dilution Of Precision) v metrech |
17 | d.d |
1.4 | VDOP (Vertical Dilution Of Precision) v metrech |
18 | *xx |
30 | Kontrolní součet |
Příklad:
$GPRMC,170138.615,A,4912.2525,N,01635.0378,E,0.04,16.43,280705,,*32
# | formát | příklad | komentář |
---|---|---|---|
1 | hhmmss.sss |
170138.615 | Čas (UTC) |
2 | c |
A | Status (A=OK, V=varování) |
3 | ddmm.mmmm |
4912.2525 | Zeměpisná šířka |
4 | c |
N | Indikátor sever/jih (N=sever, S=jih) |
5 | ddmm.mmmm |
01635.0378 | Zeměpisná délka |
6 | c |
E | Indikátor východ/západ (E=východ, W=západ) |
7 | d.d |
0.04 | Vodorovná rychlost (Speed Over Ground, v uzlech) |
8 | d.d |
16.43 | Kurz pohybu ve stupních |
9 | ddmmyy |
280705 | Datum ddmmyy |
10 | d.d |
N.A. | Magnetická deklinace ve stupních |
11 | c |
N.A. | Indikátor východ/západ (E=východ, W=západ) |
12 | *xx |
32 | Kontrolní součet |
Množství údajů závisí na počtu viditelných družic. Jedna věta může obsahovat nejvýše 80 znaků, což vystačí pouze k uložení dat týkajících se nejvýše čtyř družic. Informace proto bývá rozdělena do několika dílčích vět.
Příklad (trojice vět):
$GPGSV,3,1,11,09,84,297,41,05,48,256,45,07,38,059,41,26,22,178,41*74 $GPGSV,3,2,11,24,13,063,00,14,12,324,00,30,12,251,00,22,12,286,38*78 $GPGSV,3,3,11,29,10,173,35,04,09,105,30,18,06,254,00*46
Poznámka: Příklad v tabulce se vztahuje pouze k první větě.
# | formát | příklad | komentář |
---|---|---|---|
1 | d |
3 | Celkový počet vět (číslují se od 1) |
2 | d |
1 | Číslo aktuální věty (taktéž se čísluje od 1) |
3 | dd |
11 | Počet viditelných družic |
4 | dd |
09 | Identifikační číslo družice |
5 | dd |
84 | Úhlová výška, kde se daná družice nachází |
6 | ddd |
297 | Azimut, kde se daná družice nachází |
7 | dd |
41 | Odstup signálu od šumu (SNR - Signal to Noise Ratio). Je-li tento údaj roven nule, nelze daný satelit využít k výpočtu polohy. Nejčastěji proto, že je zastíněn. |
… | … | … | Podle počtu viditelných družic mohou následovat další čtveřice údajů (4-7) |
n | *xx |
74 | Kontrolní součet |
Příklad:
$GPGGA,170139.615,4912.2526,N,01635.0378,E,1,07,1.0,357.5,M,43.5,M,0.0,0000*7D
# | formát | příklad | komentář |
---|---|---|---|
1 | hhmmss.sss |
170139.615 | Čas (UTC), pro který platí údaje o vypočtené pozici |
2 | ddmm.mmmm |
4912.2526 | Zeměpisná šířka |
3 | c |
N | Indikátor severní/jižní šířka (N=sever, S=jih) |
4 | dddmm.mmmm |
01635.0378 | Zeměpisná délka |
5 | c |
E | Indikátor východní/západní délky (E=východ, W=západ) |
6 | d |
1 | Indikátor kvality: 0 — nebylo možno určit pozici 1 — pozice úspěšně určena 2 — pozice úspěšně určena (diferenční GPS) |
7 | dd |
07 | Počet viditelných satelitů 00 — 12 |
8 | d.d |
1.0 | Vliv rozestavění družic na určení polohy HDOP (Horizontal Dilution of precision) |
9 | d.d |
357.5 | Výška antény nad geoidem |
10 | c |
M | Jednotka pro předchozí údaj (č.9) (M=metr) |
11 | d.d |
43.5 | Geoidal separation, rozdíl mezi WGS-84 zemským elipsoidem a střední úrovní moře (geoid). Znaménko mínus znamená, že střední úroveň země je pod elipsoidem. |
12 | c |
M | Jednotka vzdálenosti pro předchozí položku (č.11) (M=metr) |
13 | d.d |
0.0 | Stáří poslední aktualizace DGPS. Údaj je uváděn v sekundách. Jestliže údaj chybí, nepoužívá se DGPS. |
14 | dddd |
0000 | Identifikační číslo referenční stanice pro DGPS (0000 — 1023) |
15 | *xx |
7D | Kontrolní součet |
GPS přijímač potřebuje znát přesnou pozici všech družic, jejichž signál používá k výpočtu vlastní polohy. Každá družice proto vysílá informace o své pozici ve formě souřadnic. Tyto souřadnice jsou vztaženy k souřadnému systému nazývanému ECEF WGS-84 (Earth Centered Earth Fixed, World Geodetic System 1984). Jedná se o pravoúhlý souřadný systém, který je definován na základě elipsoidu, který byl v roce 1984 stanoven referenčním. Jeho tvar je zvolen tak, aby co nejlépe vystihoval tvar Země. Do geometrického středu tohoto elipsoidu je umístěn počátek souřadné soustavy — bod [0,0,0]. Osa z je totožná s osou rotace, osa x prochází průsečíkem rovníku a Greenwichského poledníku (nultého). Osa y je zvolena tak, aby systém x, y, z byl pravotočivý.
Veškeré výpočty probíhají právě v této souřadné soustavě a výsledná pozice přijímače je taktéž určena v systému ECEF. Výsledek se následně přepočítá do běžnějších zeměpisných souřadnic (zeměpisná délka a šířka) vzhledem k referenčnímu elipsoidu WGS-84. Třetí souřadnicí je výška, ale nikoli nadmořská, nýbrž vzdálenost od povrchu referenčního elipsoidu. Některé GPS přijímače však znají rozdíl mezi povrchem referenčního elipsoidu a místní střední výškou mořské hladiny. Je potřeba si to ale ověřit. Plyne z toho zásadní poznatek — výška, kterou udává GPS přijímač, nemusí souhlasit s výškovými kótami na mapě. V našich podmínkách bývá rozdíl několik desítek metrů a pro danou oblast se příliš nemění, takže stačí pouze přičíst nebo odečíst konstantu. Udávat výšku vzhledem k hladině moře je značně nepraktické a doufejme, že tento způsob co nejdříve skončí v propadlišti dějin. Až do této chvíle je vše relativně přehledné. Uživatel dostane obvyklé zeměpisné souřadnice a výšku.
Problém však nastává s takzvanými lokálními souřadnými systémy, které vznikly v historii a bohužel se drží do dnešní doby. Například v České republice se vyskytují mapová díla nejen v systému WGS-84. Používá se také S-JTSK (souřadnicový systém jednotné trigonometrické sítě katastrální) a S42 (vojenský souřadnicový systém 1942). Systém S42 se používá v zemích bývalé Varšavské smlouvy. Kartografii nerozumím, ale zdá se, že vzájemné převody mezi těmito soustavami jsou obestřeny tajemstvím. Informací je na internetu velmi poskrovnu, jsou nejasné a mnoho odkazů je neplatných. Běžní uživatelé jsou spokojení, protože existuje řada konverzních programů — s koncovkou .exe a bez zdrojového kódu. Pevně doufám, že se najde sdílný člověk, který rozumí pojmům jako Křovákovo zobrazení, Gauss-Krügerovo zobrazení, Besselův elipsoid, Krassovského elipsoid a poskytne algoritmus, který si pak každý může naprogramovat ve svém oblíbeném programovacím jazyce.
Turistické mapy KČT (Klub českých turistů), které se běžně prodávají v České republice, mívají vyznačenu čtvercovou síť o straně 1 kilometr. Vysvětlivka praví, že souřadnice jsou zavedeny v systému S-1942 a že prodejce GPS přijímače jistě rád poradí, jak údaje do tohoto systému přepočítat. Pokusím se shrnout, co je potřeba provést, jestliže chceme vědět, kde na mapě se momentálně nacházíme. GPS přijímač, který popisuji v tomto článku, interně provedl výpočty v kartézské soustavě ECEF WGS84. Následně je převedl do úhlových souřadnic (šířka, délka) a výšky.
To je od něj hezké, ale bohužel potřebujeme souřadnice v původní soustavě. Bude nutné je přepočítat. Není to složité, stačí ponásobit nějaké siny a kosiny, přičemž do hry vstoupí parametry elipsy WGS84 (délka hlavní poloosy a excentricita). Protože systém S42 používá elipsoid Krassovského, bude potřeba kartézské souřadnice přepočítat do jiných kartézských souřadnic vztahujících se k tomuto elipsoidu. Souřadnice se navzájem liší a převod se provádí maticovým vztahem, který obsahuje sedm parametrů, které definují převod. Vzniklé souřadnice musíme dále převést na zeměpisné (a výšku), což analyticky nelze provést. Existuje však numerický postup, který poměrně rychle konverguje a po dvou či třech iteracích máme výsledek. Výšku si můžeme někam zapsat — s tou jsme již hotovi. Jenže zbývající dvě souřadnice představují bod na povrchu elipsoidu a musíme zjistit, jak se zobrazí na mapě.
V systému S42 se používá zobrazení Gauss—Krügerovo. Jde o válcové zobrazení a k jeho výpočtu je nutné (mimo jiné) vypočítat délku oblouku na elipse, což představuje vyčíslení eliptického integrálu. Toto se obvykle provádí rozvojem do nekonečné řady. Když je všechna práce hotova, můžeme konečně píchnout prstem do mapy a říct "Tady jsem.". Zmíněné výpočty jistě budou hračkou i pro toho, kdo bloudí na pokraji smrti hladem a mrazem. Raději se nebudu zmiňovat o obráceném postupu, kdy chceme zjistit, jaké "GPS souřadnice" má nějaké místo na mapě.
GPS je globální systém, který funguje všude na světě, je velmi dobře zdokumentovaný a je zdarma přístupný každému. S tím ovšem velmi kontrastuje chaos panující při reálném použití, protože vývoj probíhá zcela živelně. Mnoho firem vydělává na lidské neschopnosti se domluvit, ujednotit standard a přestat používat zastaralé konvence. Tatáž práce se provádí neustále znovu a znovu. Chybí volně dostupné mapy, zdrojové kódy k programům, dokumentace k protokolům a datovým formátům a vše se hemží utajováním, licencemi a copyrighty. Naštěstí jsou však i tací, kteří si výsledky své práce nenechávají pro sebe a kterým tímto děkuji.
Poděkování
Tento článek vznikl za podpory grantu GAČR 103/06/1711.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
The Interface Standard is a COPYRIGHTED document and available only from NMEA. Other internet offerings are not authorized and may constitute a copyright infringement. NOTE: ALL SALES FINAL.Pak se jedna o obycejnou licenci, ktera nezavadi zadna dalsi omezeni o proti ceskemu autorskemu pravu. Tudiz z knihy opisovat nemuzete (nad ramec citace), ale myslenky v knize obsazene muzete zcela svobodne reprodukovat.
Tyto souřadnice jsou vztaženy k souřadnému systému nazývanému ECEF WGS-84 … který je definován na základě elipsoidu, který byl v roce 1984 stanoven referenčním. … Problém však nastává s takzvanými lokálními souřadnými systémy, které vznikly v historii a bohužel se drží do dnešní doby. … Pevně doufám, že se najde sdílný člověk, který rozumí pojmům jako Křovákovo zobrazení, Gauss-Krügerovo zobrazení, Besselův elipsoid, Krassovského elipsoid a poskytne algoritmus, který si pak každý může naprogramovat ve svém oblíbeném programovacím jazyce.Kdyby se v tom Aristoteles, Koperník a další nevrtali, mohli jsme mít dodnes Zemi krásně placatou a s různými souřadnými systémy by nebyl problém. Pokud by se do toho teda nevložil Einstein s těmi jeho zakřivenými časoprostory
GGA - essential fix data which provide 3D location and accuracy data.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Where:
GGA Global Positioning System Fix Data
123519 Fix taken at 12:35:19 UTC
4807.038,N Latitude 48 deg 07.038' N
01131.000,E Longitude 11 deg 31.000' E
1 Fix quality: 0 = invalid
1 = GPS fix (SPS)
2 = DGPS fix
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning) (2.3 feature)
7 = Manual input mode
8 = Simulation mode
08 Number of satellites being tracked
0.9 Horizontal dilution of position
545.4,M Altitude, Meters, above mean sea level
46.9,M Height of geoid (mean sea level) above WGS84
ellipsoid
(empty field) time in seconds since last DGPS update
(empty field) DGPS station ID number
*47 the checksum data, always begins with *