Brouter do routingu pieszego i rowerowego

Ponieważ Brouter nie ma dedykowanego wątku a przemas75 zachęcił mnie do podzielenia się profilem do routingu rowerowego więc zakładam.

Najpierw krótki opis programu dla zainteresowanych. Brouter to silnik obliczający trasy ale nie jest to program nawigujący. Wykorzystują go aplikacje nawigujące na Androida (OsmAnd i Locus) oraz moduł webowy, który pozwala generować trasy, wyświetlać je i eksportować do gpx: http://brouter.de/brouter-web/ Zaprojektowany specjalnie dla routingu rowerowego, dobrze sprawdza się również przy routingu pieszym. Korzysta z pre-kompilowanych danych OSM, podzielonych na kwadraty o boku 5 stopni. Czyli do nawigowania w telefonie potrzebne są trzy elementy: Locus lub OsmAnd jako program nawigujący, Brouter jako silnik liczący trasy oraz dane interesującego obszaru pobrane z http://brouter.de/brouter/segments3/
Brouter ma jedną, naprawdę unikalną umiejętność: bierze pod uwagę nachylenie drogi przy obliczaniu trasy. Nie znam żadnego innego narzędzia, które by to potrafiło. Dodatkowo, umożliwia bardzo precyzyjne dostrojenie parametrów (profili) routingu aby efekt obliczeń dostosować do własnych potrzeb. Oczywiście dostarcza własne profile routingu ale według mnie profil trekking nie nadaje się do jazdy po mieście, przynajmniej w Polsce. Może nawet nie był do tego pomyślany, skoro nazywa się trekking. Skorzystałem z możliwości i tak go zmodyfikowałem, że znacznie bezpieczniej prowadzi po mieście. Dla posiadaczy rowerów MTB lepiej też pewnie sprawdzi się za miastem. Profil można pobrać stąd: http://pastebin.com/ivtSGjXK i zapisać pod dowolną nazwą z rozszerzeniem .brf Należy go wgrać do katalogu brouter/profiles2 i uruchomić apkę brouter aby ją skonfigurować. Jeśli będzie potrzebna instrukcja to napiszę.

Stworzyłem również profil do turystyki pieszej. Poniżej wklejam post, który umieściłem byłem na garniaku. Możecie tu się dowiedzieć jak testować profile na http://brouter.de/brouter-web/

Jeśli ktoś korzysta z Locusa i Broutera do wycieczek pieszych lub choćby do ich planowania to może być zainteresowany profilem routingu, który załączam poniżej. Realizuje dwie podstawowe reguły: unikaj głównych dróg oraz preferuj drogi/ścieżki, po których biegnie jakikolwiek szlak pieszy. Te reguły nie są bezwzględne. Obliczona trasa może przebiegać krótkim odcinkiem drogi krajowej lub drogami bez szlaku pieszego jeśli routing po odpowiedniejszej drodze byłby zbyt kosztowny. Czyli preferencje owszem, ale nie kosztem dwa razy dłuższej wycieczki. Bierze również pod uwagę profil terenu (suma podejść) ale z mniejszym priorytetem niż obecność szlaku pieszego. Czyli w górach chcę chodzić po szlaku nawet jeśli istnieje lżejsza ścieżka bez szlaku. Istniejący w Brouterze profil shortest.brf realizuje tylko jedną regułę: jak najkrótsza trasa, dostępna dla pieszego. Nie wiem komu mogłoby się to przydać.
Działanie profilu najwygodniej przetestować online na http://brouter.de/brouter-web/ Treść profilu należy wkleić do okna Profile, nacisnąć Upload i odczekać 2-3 sekundy. Pojawi się komunikat o tym, że profil dostępny jest tylko tymczasowo i ewentualne poprawki należy zapisać lokalnie. Dodatkowo, na liście profili wybrana zostanie pozycja . Teraz już można powiększyć mapę do wybranej okolicy, kliknąć punkt początkowy i końcowy i zachwycić się efektem :sunglasses: Ponieważ trasa prawdopodobnie poprowadzi po szlakach pieszych, warto je wyświetlić w podkładzie aby lepiej ocenić efekt. W prawym górnym rogu należy zaznaczyć Hiking albo przełączyć podkład na Outdoors.
W treści profilu występuje zmienna stick_to_hikeroutes. Jeśli zmienicie jej wartość na 1 to wyliczone trasy jeszcze bardziej będą preferować szlaki piesze choć wciąż nie bezwarunkowo. Po każdej modyfikacji profilu należy przycisnąć Upload aby zmodyfikowana wersja trafiła na serwer, zastępując poprzednią.
Aby użyć profilu w telefonie, należy go wgrać do katalogu brouter/profiles2 i uruchomić apkę brouter aby ją skonfigurować. Jeśli będzie potrzebna instrukcja to napiszę. Nie jestem pewien ale ten profil prawdopodobnie wymaga broutera >= 1.0.0. Aktualna wersja to 1.0.2 i korzysta z nowego formatu danych mapowych z katalogu segments3. Profil dostępny jest tutaj http://pastebin.com/YLpkGVD4 Trzeba go zapisać pod dowolną nazwą z rozszerzeniem brf czyli np. hiking.brf

Witam.
Na razie testuję sobie to online i wygląda na super sprawę.
Czy orientujesz się jakie są różnice między profilem trekking a treking-ignore-cr ( co oznacza to cr?).
Pozdrawiam

Jakbym takich rzeczy nie wiedział to nie udałoby mi się zmodyfikować profilu :wink:
cr to cycleroute czyli szlak rowerowy (w sensie szlaku turystycznego a nie ścieżki rowerowej w mieście). Wybierasz profil treking-ignore-cr jeśli Ci nie zależy na jeżdżeniu po szlakach rowerowych a w nagrodę dostajesz mniejsze przewyższenia na trasie bo podjazdy zaczynają wtedy odgrywać większą rolę i pewnie trochę krótsze trasy bo nie trzeba już ich dociągać do szlaków.

Drobna uwaga do profilu rowerowego. Routing prowadzi drogami w budowie: highway=construction

Można dodatkowo highway=steps z ramp:= dodać, sprawdzałem na szybko i mnie prowadziło dziwną drogą z brukiem, zamiast highway=path,bicycle=dedicated zakończonej schodami :slight_smile:
Ale nie badałem tematu aż tak mocno, może to nie schody problemem były ale “zakręty na ddr” - dlaczego jest wprowadzona “kara” (nie pamiętam jak to w brouterze się nazywa)? Można pominąć, jeśli wolimy jechać ddrami (zazwyczaj pozawijanymi u nas w pl) zamiast secondary z asfaltem :smiley:

@wajak: To niedoróbka oryginalnych profili Broutera. Jeśli użyjesz trekking to obstawiam, że też Cię pociągnie po drodze w budowie. Uzupełniłem mój profil i uaktualniłem link do profilu w pierwszym poście. Nie testowałem bo nie znam żadnej lokalnej drogi w budowie. Przetestuj proszę a jeśli problem dalej by istniał to poproszę o lokalizację do testów. Poprawiłem również profil do turystyki pieszej.

@przemas75: Jeśli uważasz że to błąd profilu to potrzebuję konkretną trasę do analizy. Chyba najlepiej byłoby użyć http://map.project-osrm.org/ i podesłać wygenerowany link. Nawet jeśli trasa będzie biegnąć nie tak jak byś chciał to dostanę punkt początkowy i końcowy.

Poprawka na drogi w budowie pomogła. Dzięki!

A jak pobrać dane offline - kwadraty dla np. południa Polski i skleić je dla osmanda w jedną mapę?

Pobierasz pliki z http://brouter.de/brouter/segments3/ oraz wgrywasz je do katalogu brouter/segments3 w telefonie. Nic nie sklejasz. Nie dotykasz OsmAnda bo te dane to wewnętrzna sprawa Broutera. Dla południa Polski potrzebujesz pobrać E15_N45 i E20_N45 a jeśli jeździsz powyżej 50 równoleżnika (+/- wysokość Krakowa) to również E10_N50, E15_N50 i E20_N50.

Dzięki za wyjaśnienia.
Jesli można to jeszcze podrążę temat.
Jest gdzieś mapka z zestawieniem tych kwadratów, żeby szybko dopasować sobie co potrzeba?
Oraz proszę o wyjaśnienie, czy w nazwach np. ten E15_N45 to zawiera mapę E10-E15 i N40-N45, czy w górę tzn. E15-E20 i N45-N50?
pozdrawiam

Chyba przy pierwszym uruchomieniu Broutera (brak kafli w brouter/segments3?) pojawia się opcja pobierz dane i wyświetla się mapa z siatką kafli. Korzystałem kiedyś z tego ale nie pamiętam szczegółów. Odpowiedź (b), E15_N45 to E15-E20 i N45-N50.

Jasne, już dostarczam info :slight_smile:
Droga to:
http://brouter.de/brouter-web/#zoom=16&lat=53.46648&lon=18.73384&layer=OpenStreetMap&lonlats=18.731309,53.462023|18.737947,53.471584&nogos=&profile=trekking-steep&alternativeidx=0&format=geojson
I właśnie wybierając trekking-steep jest on zbliżony do trasy jaką ja bym wybrał - w tej powyższej część od Śniadeckich do Ronda Herberta to niezła górka/zjazd zakończona schodami i router wybiera ulicę Korczaka zamiast ddr (te schody na końcu).
To myślę, że byłby mój wybór tej trasy:

Tak to wygląda: http://goo.gl/DhO12m i końcówka ze schodami: http://goo.gl/7utD1v
Inne profile (w tym Twój właśnie) w ogóle dziwnie prowadziły według mnie:

Jackowskiego, to również niezła góra, a w części gdzie brouter wskazał jazdę jest bruk i to taki stary, baaaaardzo słaby pomysł na zjazd rowerem. Kiepsko się tam chodzi nawet. Choć oczywiście da się przejechać rowerem jak najbardziej. Tag surface=cobblestone jest tam od bardzo dawna.
http://goo.gl/pC8MFj

Korzystna jest za to Norwida, z której zjeżdzamy z Jackowskiego, nikły ruch - praktycznie zero - no ale tego routing nie wie :slight_smile:
Za to dziwne zakrętasy robi w okolicach ronda…

Myślę, że zbyt dużą wagę przywiązuje się do stromizny tego zjazdu (steep) kosztem tych dziwnych wykrętasów przy rondzie - w końcu robimy zjazd nie podjazd :slight_smile:

jak rozumiem profil trekking do którego nawiązujesz dotyczy turystyki pieszej - a mimo wszystko schodzenie po stromiźnie nie jest za dużą frajdą, więc chyba dobrze że unika takich odcinków :).

Góry są dwie.
Jedna na Jackowskiego z brukiem, krótsza.
Druga na Korczaka z asfaltowym ddr i krótkimi schodami na końcu, w dodatku z rampą, dłuższa.

Profil góry myślę, że można pominąć i powiedzieć że jest ten sam. Chodzi tutaj o rower, dla pieszego największe kryterium to raczej odległość.
To nie są też jakieś stromizny górskie, tam są w końcu chodniki.

Najpierw dwa wyjaśnienia. Profil trekking jest zaprojektowany dla rowerów trekkingowych. trekking-steep to domyślny profil rowerowy ale ignoruje podjazdy i zjazdy więc operuje na płaskiej, dwuwymiarowej mapie.
Dzięki przemas75 za ten przykład. Pomógł mi ułożyć sobie w głowie obsługę zjazdów i podjazdów. Otóż autor oryginalnego (źródłowego) profilu wprowadził karę za zjazdy a brak kary za podjazdy! Gdzieś czytałem, że to celowe bo lubi długie, lekko nachylone zjazdy. Żeby zjechać gdziekolwiek i tak trzeba najpierw podjechać więc nie ma sensu oddzielna kara za podjazdy. Natomiast kara za zjazdy uaktywnia się powyżej pewnego nachylenia, czyli łagodne zjazdy są “darmowe” a strome zjazdy są mniej lub bardziej kosztowne. Ponieważ karane są zjazdy w Twoja trasa biegnie w dół, nic dziwnego, że dostałeś dziwaczny efekt.
To oczywiście nie ma sensu w mieście bo każdy zjazd za 100 czy 200m zostanie przerwany skrzyżowaniem czy światłami. Jak już zrozumiałem sposób kodowania tego w profilu, przeniosłem karę na podjazdy bo właśnie ich większość z nas chciałaby uniknąć. Od razu uzyskałem efekt taki, jaki uważasz za optymalny bo profil wybrał ddr i schody zamiast jazdy ulicą Korczaka. Poprawiony profil wgrałem pod link w pierwszym poście.
Jeszcze nie wiem jak postąpić z profilem do turystyki pieszej. Szlaki w górach często biegną grzbietem i podejścia są nieunknione jeśli chcę chodzić szlakami.

A ja uważam, że może wymienić wszystkie zmodyfikowane przez Ciebie profile z opisem jak routują - na co kładą nacisk a z czego rezygnują :slight_smile:
Osobiście np. wolę nawet stromy podjazd ulicą , niż długi objazd po terenie czy tym bardziej noszenie po schodach.
Nawet drobne modyfikacje profilu wprowadzają gruntowne zmiany w trasie i na przykładzie mojej trasy , która prawie codziennie pokonuję na teraz najlepszy teoretycznie jest treking-ignore-cr i first alternatywa.

Jak masz wiedzę to napisz jeszcze jak są liczone te alternatywy .

Dzięki za obszerne wyjaśnienie. Tylko teraz wykluczyłeś avoid_unsafe, co chyba nie jest dobre dla bezpiecznego transportu w mieście.
Jeśli włączę, to prowadzi mnie między domkami - co jest akceptowalne.

Zapomniałem wspomnieć jeszcze, że highway=path,bicycle=designated ma zbyt wysoki koszt podróży w stosunku do innych highway. To jest na poziomie footway, wydaje mi się że jest to błędne. Profil (wszystkie z broutera), biorą pod uwagę tylko cycleway i temu podobne (nawet nie pamiętam czy są cycleway:= czy cycleway)

@Fik1: Napisałem profil do routingu pieszego z silną preferencją dla pieszych szlaków turystycznych oraz zmodyfikowałem profil trekking aby uzyskać bezpieczniejsze trasy rowerowe. Ponieważ w Polsce jeździe się po mieście dwa razy szybciej niż w Niemczech a ofiar śmiertelnych mamy chyba cztery razy tyle, mocno ograniczyłem routing po drogach wojewódzkich i wyższych. Trochę ograniczyłem po zbiorczych (tertiary). Natomiast ułatwiłem trochę ruch po ścieżkach, drogach gruntowych, schodach i, niestety, chodnikach. W efekcie, większość trasy zwykle biegnie drogami osiedlowymi (residential), o ile to tylko możliwe.
Jeśli najlepiej działa Ci trekking-ignore-cr to w ogóle nie masz do czynienia z moimi zmianami bo to profil domyślny tylko ignorujący turytyczne szlaki rowerowe. Jeśli natomiast moje zmiany Ci się podobają to proponuję użyć mojego profilu z pierwszego postu i zmienić consider_elevation na 0 to nie będziesz objeżdżał podjazdów oraz ignore_cycleroutes na 1 aby uzyskać ten sam efekt co w trekking-ignore-cr.
Liczenie alternatyw to bebechy algorytmu routującego. Czytałem jak to działa i nic nie zrozumiałem :slight_smile:

@przemas75: Nie wykluczyłem avoid_unsafe bo go nie dotykam bo jest niemal nieprzydatne. Ma zachęcającą nazwę ale słaby efekt :slight_smile: Ta flaga każe unikać dróg, na których nie ma tagu wskazującego na przydatność dla roweru. W Polsce infrastruktura rowerowa jest wciąż słaba więc po włączeniu avoid_unsafe, wyliczona trasa jest zwykle zupełnie nieoptymalna bo mocno ciągnie do jakiejkolwiek infrastruktury w pobliżu. Być może to by się sprawdziło w Gdańsku bo słyszałem, że mają tam już dużo ścieżek ale w Krakowie to porażka. Nie potrafię tak z głowy odpowiedzieć dlaczego na Twoim przykładzie trasa z avoid_unsafe lawiruje między domkami ale sam byś chyba tak nie pojechał mając do dyspozycji ścieżki wzdłuż Korczaka i Kalinkowej? To intrygujące dlaczego trasa w tym przypadku ewidentnie unika ścieżek ale nie wiem kiedy będę mógł to sprawdzić bo wiozę dziś komputer domowy do serwisu. Tak czy inaczej, avoid_unsafe jest mało przydatne. Właśnie dlatego zmodyfikowałem profil trekking aby uzyskać efekt avoid_unsafe w sytuacji braku infrastruktury rowerowej.
W kwestii highway=path,bicycle=designated oczywiście masz rację. Poprawiłem już wczoraj ale nie zdążyłem odpisać. Dodałem również preferencję dla highway=footway,bicycle=yes. Niestety, nie zdążyłem tego potestować. Zrobię to niedługo ale niekoniecznie dzisiaj.