navigation hints "straight"

Started by tommi, August 10, 2019, 14:29:58

0 Members and 1 Guest are viewing this topic.

tommi

After a long time I did a bicycle tour in a foreign area and used Locus navigation with brouter as routing engine. The profile I used was "Trekking-LCR-dry".
I was a bit surprised by lots of "straight" navigation hints. After a while these hints really annoyed me and I wondered why I didn't get them e.g. 2 years earlier.
I then routed a short path with lots of those hints again with the original brouter profile "Shortest" with the result of only few "straight" orders.

@Poutnik: I seem to remember you rose a question about the pros and cons of straight hints years ago but you got no answers. Would you be so kind to check my example and tell us what you are thinking?

Edit:

Location of starting point: N49.17128, E010.98880
Location of end point:        N49.18300, E011.01505
  •  

freischneider

I do not know if I understood you correctly. But maybe it's this topic:
https://forum.locusmap.eu/index.php?topic=6614.0
Poco F5, Xiaomi Redmi Note 10 Pro, Android 13
Locus Map 4 Gold (always latest version)
LM4 User-ID: 11cec7cb5  (Devices-ID poco F5)
  •  

tommi

The hints in my case were not wrong (straight instead of right or left) but redundant (I would anyway continue straight, no hint necessary)
  •  

poutnikl

#3
Note that even if the Shortest profile shares the same hint settings as the Trekking profile,
it is the default profile for pedestrians. For bicycles, the default profile is the Trekking one.

BRouter uses the profile parameter PriorityClassifier to determine, if a turning or straight ahead hint should be provided, or if it should remain silent.

The more significant ( logically, supposedly visually as well ) ways have higher value.

The straight ahead hint is provided, if some   of the other ways has the PriorityClassifier value HIGHER than the straight ahead way to be taken.

The turning hint is provided, if some   of the other ways have the SAME OR HIGHER PriorityClassifier value, compared to the turning way to be taken.

Below are listed differences in  PriorityClassifier between BRouter default profiles ( Shortest, Trekking) and my bicycle profiles.

My profiles use finer value granularity for some of lower than unclassified ways.

It brings both pros and cons for straight ahead hints.

Pros are you get the straight ahead hint to continue along a "lower way" if you are going along a "higher" but turning way, where you get no hint from BRouter default profiles.

E.g. you are going along turning residential, but you should continue on the straight ahead paved grade1 track.

Cons are you get the straight ahead hints when going along a lower way, repeatedly crossing higher ways.

E.g. you are going along a cycleway in parallel to a major road, crossing residential roads.

I offer several options:

1/Use for now built-in bicycle profiles like Trekking

2/Modify your copy of Trekking-LCR-Dry profile, replacing my PriorityClassifier by the original one.

3/ I am going to modify my profiles to avoid typical excessive scenarios, possibly even reverting to original
and/or create a switch flag between original and mine Priority Classifier.

Technical note: For suggestion, questions or complaints related to my bicycle profiles, it is preferred to ( additionally?) create a GitHub issue in my repositories

https://github.com/poutnikl/Brouter-profiles

for general profile topics

https://github.com/poutnikl/Trekking-poutnik

for my bicycle profikes behaviour or the code of my bicycle profile template.

-----------

#Shortest

assign priorityclassifier =

  ....
  else if ( highway=residential|living_street ) then  6
  else if ( highway=service                   ) then  6
  else if ( highway=cycleway                  ) then  6
  else if ( bicycle=designated                ) then  6
  else if ( highway=track                     ) then if tracktype=grade1 then 6 else 4
  else if ( highway=bridleway|road|path|footway ) then  4
  else if ( highway=steps                     ) then  2
  else if ( highway=pedestrian                ) then  2
  else 0

#Trekking FCR Dry

assign priorityclassifier = (

  ...
  else if ( highway=residential|living_street ) then  16
  else if ( highway=service                   ) then  14
  else if ( tracktype=grade1                  ) then  6
  else if ( highway=cycleway                  ) then  6
  else if ( bicycle=designated                ) then  6
  else if ( highway=bridleway                 ) then  4
  else if ( highway=track|road|footway        ) then  4
  else if ( highway=steps|path|pedestrian     ) then  2
  else 0
 
                                                                                             

Odesláno z mého Mi A2 pomocí Tapatalk

poutnikl

Note that I think BRouter internal logic should evaluate the 2 below straight ahead scenarios differently, but it is how it is now:

1/ leaving a "higher" way that is turning away
( giving a hint, as it does now )

2/ crossing  a "higher" way via "lower" way
( not giving a hint, what may be desired )

Sent from my Xiaomi MI A2 via Tapatalk


tommi

Wow, what an exhaustive answer! Thanks a lot!
You're work is very much appreciated!
I think for now I'll go for option 1/ and wait for your option 3/ to switch back to your profiles.
Once again thanks, Poutnik!
  •  

poutnikl

#6
For riding a bike across (not only ) cities, consider also the  Jacob's profile for streetbikes:

################################################################
#          A BRouter profile suited for a streetbike           #
#                                                              #
#          It was built to do light bike touring with          #
#          a non-suspension citybike with narrow tires         #
#          It prioritizes good ways, but allows some           #
#          more offroad ways to avoid traffic and to           #
#          follow nicer routes                                 #
################################################################


https://github.com/utack/utack_brouter_profile/blob/master/streetbike_touring.brf

that is more focused toward city specifics, while my profiles are more focused on out of city scenarios.

I was supporting Jacob's learning curve and he has put very thorough thoughts into his profile.

Sent from my Xiaomi MI A2 via Tapatalk

poutnikl

#7
for now, you can use this set of profiles, (stored in the attached zip ),
generated from the current Github Development branch of my profile template,
where PriorityClassifier is reverted to the original.

Additionally, I have already written a Linux script, that can generate my profiles from github template
directly on the target Android device, using termux,  ,a great Android emulator of the Linux terminal.

It already works, tested on desktop Linux. there is remaining final termux testing of the final profile placement in BRouter profiles2 folder.

termux wiki
Termux on Google Play


tommi

Thank you,  Poutnik!
It works as described.

Sent from my SM-G973F using Tapatalk

  •