Hlavní navigace

GPS Garmin v Linuxu

14. 1. 2009
Doba čtení: 10 minut

Sdílet

Před pár měsíci jsem propadl hře geocaching, a tak se stalo, že pod stromkem nemohla chybět pořádná navigace. Vánoční večer skončil testováním Linuxu, zda si s navigací poradí. Jedná se o navigaci Garmin 60CSx a musím říci, že Linux na tom v téhle oblasti není nejlépe, ale pracovat s navigací se dá.

Úvod

Když jsem si navigaci vybíral, netušil jsem, jak je na tom v Linuxu. Nechtěl jsem ji používat na cestách, v autě nebo k hledání cesty při turistických výletech. K těm se zas tak často nedostanu, ale funkce, které tento model má, mi pomáhá hledat to, co potřebuji. Mapy dodávané k navigaci obsahují cesty/silnice, vrstevnice, lesy, vodní plochy, železnice, vedení vysokého napětí, body POI, prostě všechno, co je potřeba v terénu ke zorientování, případně k nasměrování k cíli. Funkcemi jsem byl překvapen a už mi mnohokrát pomohly k nalezení ideální cesty k mému cíli. Ten byl většinou vzdálen jen pár km, ale i delší trasy navigace zvládá v pohodě. Pokud si člověk naplánuje trasu poctivěji, tak ho výsledek i překvapí.

O vlastnostech navigace si ale můžete přečíst na jiných serverech. Nás bude zajímat spojení s Linuxem.

Připojení navigace

V Linuxu máme tři možnosti, jak navigaci garmin připojit k systému. V krabici najdeme USB kabel s normální USB mini-A koncovkou. Můžeme použít i kterýkoli jiný kabel se stejnou koncovkou. Funkčně se nějak neliší, i když originál stojí 300 Kč.

První cesta, jak se k navigaci dostat, vede přes emulování sériového portu. K tomu slouží modul garmin_gps, který najdeme v jádře. Ve většině distribucí bude zařazen a pro ostatní uvedu cestu, jak se k němu při konfiguraci jádra dostat.

     -> Device Drivers
       -> USB support (USB_SUPPORT [=y])
         -> USB Serial Converter support (USB_SERIAL [=y]) 

Po zaškrtnutí přestane fungovat druhá možnost, ale na druhou stranu máme naději, že nám dodávaný software bude komunikovat s navigací ve Wine (o tom později).

Druhá možnost se týká přímého přístupu na USB z user space. S tím umí pracovat GPSBabel, nad kterým je postavena již řada projektů i ve Windows. Podle mého názoru je toto nejpoužitelnější cesta, jak komunikovat s navigací, a pokud jde o mé účely, GPSBabel je dostatečným pomocníkem, který se moc dobře hodí ve skriptech.

Třetí možnost je přepnutí navigace do režimu USB disku a přístup k jejím souborům jako u normálního flash disku. Tato cesta se hodí například při zálohování nebo když chceme nahrát do navigace stopy například z jiného zařízení.

Mapy

Nevím jak ostatní výrobci, ale Garmin zavedl hodně tvrdý postup odblokování licencování map. Ty se k vám dostanou na CD, případně na SD kartě. Já instaloval mapy z CD. Po instalaci mapy se vás mapsource zeptá na dvacetipětimístné číslo, které získáte po opsání dvanáctimístného čísla plus desetimístného ID přístroje na webu výrobce. Chvilku mi trvalo, než jsem přišel na to, jak mapy odblokovat, a byl jsem hodně skeptický k webové aplikaci, která mi kód dávala. Nakonec vše dobře dopadlo a kód mám u sebe.

Pokud si koupíte další mapy a chcete je mít třeba v turistické navigaci a v autonavigaci, tak máte jednoduše smůlu. Garmin neumožňuje přenos licencí z jednoho přístroje na druhý, to znamená, že když přístroj zničíte, tak s ním i mapy, které jste si za nemalé peníze koupili. Výhoda na první pohled nezničitelného softwaru je pryč. Druhým faktorem je, že se s mapami nedá pracovat prakticky v jiném nástroji, než je mapsource. Mapy jsou šifrovány klíčem, který dostaneme na zmíněném webu, takže na Linuxu jsme odkázáni na Google Earth, kterému ale chybí často potřebný import trasy do navigace, případně na open mapy.

Ale abych jenom nekritizoval. Když už se dostanete k mapám, tak jsou v dobré kvalitě, jsou podrobné a obsahují i cesty, které jsou v lese sotva viditelné. Nakonec i funkce grafu změny výškové hladiny na kterékoli naplánované nebo prochozené/projeté trase se může hodit.

Práce s navigací

Virtualizace

Nebudu tuto kapitolu moc natahovat. Upload a odemykání map musí linuxový uživatel udělat buď ve virtuální mašině s podporou USB s uvnitř nainstalovanými Windows nebo použít Windows nativně. Binární VirtualBox od Sunu je v tomto případě nejjednodušší cesta. Já pro tento účel použil tátův počítač s dodávanými Windows.

Mapsource

Ať už ve Windows nebo na Linuxu, první pokus o zprovoznění navigace povede přes program mapsource, který je dodávaný k navigaci a lze ho také stáhnout na stránkách výrobce. Funkčnost pod Wine je všelijaká. Řada uživatelů s ním problém nemá, v některých distribucích je to zase opačné. Mě se podařilo mapsource do Wine nainstalovat. Podařilo se mi také nainstalovat mapy a odemknout je. Problém jsem měl v komunikaci s navigací. Pokud jsem se o to pokusil, spadl mi program tak, že ani nešel zabít, a já poprvé viděl na Linuxu zombie proces. Vinu nedávám Wine ani mapsource, ale spíše modulu garmin_gps. Když přes něj komunikuje GPSBabel, tak dělá to samé.

Instalace do Windows ve virtuální mašině proběhla bez problémů a komunikace s navigací byla taktéž v pořádku.

Mapsource bych i přes některé nedostatky ohodnotil jako dobrý program. Bohužel neexistuje v něm nic jako synchronizace mezi PC a navigací. Máte k dispozici jenom tlačítka nahrát a stáhnout. To znamená, že když něco smažete v mapsource, tak se to při příštím stažení dat z navigace zase objeví a obráceně. Víceméně se dá pracovat pouze tak, že si po spuštění načteme data z navigace a s těmi pracujeme. Později je nahrajeme. Když už nefunguje mazání záznamů, tak máme k dispozici aspoň přepisování, tedy úpravy hodnot v záznamech s tím, že se při komunikaci přepíšou. Pokud si označíte bod jinou ikonkou, jako třeba že jste ho našli, tak se po nahrání do PC ikonka změní. Obráceně to funguje také.

GPS-view

Zajímavou funkcí je graf převýšení, které vás čeká na naplánované cestě. Dokáže také ukázat převýšení (podle údajů z mapy) na již prošlé trase, pokud jste si zaznamenávali svoji stopu v navigaci. Zobrazení stop, tedy prošlých tras, v kombinaci s foťákem a Google Earth, se mi již několikrát hodilo při hledání cíle, pokud jsem ho na první pokus nenašel. Druhý pak již byl většinou úspěšný. Trochu zklame plánování tras, které se i přes zaměření na turistiku nehodí moc na cyklistiku. I při nastavení, aby se algoritmus držel čehokoli, co jen připomíná cestu, se vás snaží táhnout po normální silnici. Možná se na tom podepisuje i fakt, že některé cesty nejsou routovatelné, tzn. že se přes ně nedá navigovat, resp. počítat trasa.

GPS-profil

Plánování tras funguje automaticky. V nejjednodušším případě zadáme start a cíl a mapsource, případně navigace sama vypočítá ideální trasu. Občas je nutné jí trochu pomoci několika body navíc. Navigace neví, že až pojede ke svému cíli, jsou v tuhle roční dobu na tomto místě zácpy, nebo že i když je tato cesta nejkratší, není nejpohodlnější atd. Pro navigování v autě je to dostatečný nástroj.

Přejdeme k CD, které jsme dostali k navigaci. To obsahuje v mém případě mapy i mapsource. Vybereme na CD tu správnou mapu a spustíme instalátor přes Wine. Map samozřejmě můžeme nainstalovat víc. Licenční podmínky jsou, jak už to u takového softwaru, bývá velmi svazující. Kromě mapy se nainstaluje i mapsource.

GPS-mapy2
GPS-mapy4

Pokud máme hotovo a mapsource se spustí, je načase ho vypnout a postarat se o sériový port. Vytvoříme v adresáři ~/.wine/.dosdevices symlink na /dev/ttyUSB0. Nezapomeneme předtím načíst modul garmin_gps, pokud načten není. Jak jsem psal výše, s tímto modulem mi každá aplikace, která /dev/ttyUSB0 používá, zamrzne tak, že nejde zabít. Pokud hodláte používat mapsource ve Wine, zkuste si nejdříve funkčnost modulu garmin_gps.

Máme-li vytvořen symlink, spustíme opět mapsource a pokusíme se stáhnout data z navigace.

Když se vše povede, tak se neradujte, v příští verzi Wine to může být jinak. vyplatí se si verzi Wine poznamenat a vytvořit si na ní balíček, případně udělat několik pokusů. Já používám Wine 1.1.9 a věřím, že kdyby fungoval spolehlivě modul garmin_gps, tak bych s mapsource neměl jediný problém.

GPSBabel

Trochu z jiného soudku je program GPSBabel. Ovládá se přes příkazovou řádku a dokáže převést pomalu každý formát obsahující souřadnice na jiný a jako bonus umí pracovat i s navigacemi. Aby toho nebylo málo, zvládne i jednoduché filtrování, pracovat s několika soubory najednou, odstraňovat duplicity atd.

Jeho použití je jednoduché a v kombinaci s linuxovou skriptovací silou může být upload souřadnic a tras rychlejší než kdejakým klikátkem.

gpsbabel -i gpx -f 2511698.gpx -o kml -F google.kml
ls
google.kml  2511698.gpx 

Upload cesty z Google Earth přímo do navigace uděláme pomocí:

gpsbabel -i kml -f Cesta.kml -o garmin -F /dev/ttyUSB0 

Jednoduché filtrování duplikovaných bodů:

gpsbabel -i gpx -f 1.gpx -f 2.gpx -x duplicate,location,shortname -o gpx -F result.gpx 

Google Earth

Ač se to nezdá, tak Google Earth zastane práci i v této oblasti. Pro Geocachera je to velmi dobrý pomocník, protože pomáhá vybírat cíle s možností prohlédnout si okolí a dokonce zobrazuje i informace o jednotlivých cachích. Nemusí se samozřejmě jednat pouze o ně, ale také o cokoli jiného.

Google Earth (GE) umožňuje sice plánovat trasy, ale neumí je exportovat zpět do navigace. Hlavním souborovým formátem Google Earthu je kml, který umí GPSBabel převádět do GPX nebo ho rovnou nahrát do navigace. Další možností je použít rovnou formát GPX, který je Garmin navigacím nejblíže, ale nezískáme tím nic. Při načtení dat do GE nezůstanou ani nadefinované ikonky. Tak jako tak, Google Earth bude dobrým pomocníkem plánování tras, ať už se jako nástroj pro vytvoření bodů rozhodneme použít cokoli. GE nám ulehčí plánování tím, že zobrazí aktuální počasí na vybraných místech, ukáže nám, jak cesta skutečně vypadá a pokud si zakoupíme předplatné Google Earth Plus za 20 USD, tak si umí sám dostat data z navigace a získat i naši aktuální polohu.

O instalaci Google Earthu se nebudu moc rozepisovat. Pravděpodobně bude v repozitářích vaší distribuce, nebo můžeme použít stránky GE, stáhnout si linuxovou verzi a nainstalovat si ji do svého uživatelského účtu.

K čemu nám bude GE dobrý:

* Zobrazí počasí na trase
* Ukáže reálnou podobu plánované trasy
* Dá nám lepší přehled o místě kam jedeme
* Umožňuje zobrazit informace o bodech, které stáhneme třeba z geocaching.com 

Začneme získáním bodů z navigace:

GPS-load

Pokud nic nebránilo komunikaci se zařízením, měl by se nám objevit soubor, který jsme požadovali. Ten načteme v GE.

@%&@

gpsbabel -i garmin -f usb: -o kml -F garmin.kml

@%&@

Jak jsem již zmínil, GE zobrazí prakticky jen polohu a název. Pokud ale získáme body z nějakého propracovanějšího zdroje jako je na geocaching.com, tak se v GE objeví kompletní popis.

GPS-gpx1

QLandKarte GT

Poslední linuxovou navigační záchranou může být tento program. Má ambice stát se náhradou mapsource, ale neumožňuje odemknout mapy. To znamená, že jsme odkázání na open mapy, které ale nemají takovou kvalitu jako ty, co jsme dostali k navigaci. Autem od města k městu se s nimi sice jet dá, ale na navigování podle ulic můžeme zapomenout. Silnice vedoucí odnikud nikam jsou běžně k nalezení. Abych jen nekritizoval.

Open mapy se dají získat různě na internetu. Pomoci může kdokoli. Nejlepším zdrojem k nalezení mapy je geowiki). Obsahuje mapy pro různé země Evropy včetně České republiky. To může být dobrá alternativa pro uživatele, kteří nechtějí dát peníze za mapu Evropy od výrobce. Zdroj pro mapy našeho území je projekt OpenStreeMap a snapshoty souborů pro navigace jsou vytvářeny každý týden. Openstreetmap funguje tak, že dokáže číst projeté trasy z navigací, které umožňují projetou trasu uložit. Trasa se pak sloučí k již nahraným a vznikne další silnice do mapy. Uživatel pak jen přidá názvy ulic, případně měst. Vygenerované mapy obsahují dokonce i vrstevnice a tzv. body zájmu (restaurace, čerpací stanice, radary, …).

Program najdeme v repozitářích snad všech hlavních distribucí nebo si ho můžeme stáhnout na stránkách projektu. Stabilita programu není na nejlepší úrovni. Ovládání má také své mouchy a pokud se podíváme na poslední vydanou verzi, byla uvolněna v roce 2007. Projekt se může zdát mrtvý, ale podle jeho svn repozitáře sem tam někdo nějakou změnu udělá, i když se nejedná o nic velkého. GUI je oproti GE nebo mapsource línější a paměťové nároky jsou velmi velké (0,5 GB po načtení mapy).

Pár zajímavých nápadů zde najdeme. Například ovládání pomocí funkčních kláves nebo dobře řešené bublinky s vysvětlivkami.

GPS-import

Vytváření cest nám dá víc práce než v programech zmíněných výše. Program bude s navigací spolupracovat pouze pokud do ní nahrajeme mapy, které jsme nahráli do navigace.

CS24_early

Závěr

Linux na tom není s navigačním softwarem nejlépe. Plánování tras je závislé na mapách v navigaci a tudíž nemůžeme nahrávat trasy z Google Earth. Práce se zašifrovanými mapami od výrobce je asi nejpohodlnější v mapsource, takže tak jako tak se bez mapsource neobjedeme, pokud chceme navigaci využívat naplno. Plusem je, že jsou verze Wine, ve kterých mapsource jede.

Obrovskou výhodou je program GPSBabel, se kterým se dá na příkazové řádce dělat hodně, ať už chceme stahovat data z navigace nebo jen upravit pár souborů s body, co máme na disku.

Odkazy

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.