BrouterProfile für Touren mit Lastenrad-Personentransport gesucht

T

tschikabeh

Guest
Hat hier jemand schon mit BRouter-Profilen für Lastenräder Erfahrungen und/oder eine gute Empfehlung für ein Profil, um eine Familientour mit dem Lastenrad zu planen?

Es gibt zwar ein paar Suchergebnisse zum BRouter hier im Forum und ein paar BRouter-Profile wie Liegerad, Velomobil, Trekkingrad (ohne Treppen), die ich für die Planung bislang nutze. Ich habe aber noch keines speziell für Lastenräder mit entsprechenden Anpassungsmöglichkeiten gefunden. Gerade beim Lastenrad sind ja nicht nur Treppen ein Problem, sondern auch oft Hindernisse, die eigentlich den Autoverkehr abhalten sollen, aber nicht selten auch mit etwas längeren und breiteren Lastenrädern zum Problem werden können.
 
Habe mir gerade mal die apk runter geladen und werden mal damit rumspielen. es soll ja mit OSMAnd~ funktionieren. Btw, OSMAnd~ gibt es kostenlos im FDroid-Store ;)
 
Die Profile am Touchscreen optimieren zu wollen, ist eher müßig.
Lieber gleich den Webclient nehmen.

Meine Konfiguration hat Fokus auf Steigungen (Topologie und dem Nabenmotor geschuldet). Klappt soweit ganz gut. Hindernisse werden nicht gefiltert, da Basis ‚Trekking‘ ist.
Code:
# *** The trekking profile is for slow travel
# *** and avoiding car traffic, but still with
# *** a focus on approaching your destination
# *** efficiently.

---context:global   # following code refers to global config

# Bike profile
assign validForBikes = true

# Use the following switches to change behaviour
assign allow_steps              = true   # %allow_steps% | Set to false to disallow steps | boolean
assign allow_ferries            = true   # %allow_ferries% | set to false to disallow ferries | boolean
assign ignore_cycleroutes       = false  # %ignore_cycleroutes% | Set to true for better elevation results | boolean
assign stick_to_cycleroutes     = false  # %stick_to_cycleroutes% | Set to true to just follow cycleroutes | boolean
assign avoid_unsafe             = true  # %avoid_unsafe% | Set to true to avoid standard highways | boolean
assign considerTurnRestrictions = false  # %considerTurnRestrictions% | Set to true to take turn restrictions into account | boolean
assign processUnusedTags        = false  # %processUnusedTags% | Set to true to output unused tags in data tab | boolean

# Change elevation parameters
assign consider_elevation = true  # %consider_elevation% | Set to false to ignore elevation in routing | boolean
assign downhillcost       = 111    # %downhillcost% | Cost for going downhill | number
assign downhillcutoff     = 4   # %downhillcutoff% | Gradients below this value in percents are not counted. | number
assign uphillcost         = 222     # %uphillcost% | Cost for going uphill | number
assign uphillcutoff       = 4   # %uphillcutoff% | Gradients below this value in percents are not counted.  | number

assign downhillcost       = if consider_elevation then downhillcost else 0
assign uphillcost         = if consider_elevation then uphillcost else 0

# Kinematic model parameters (travel time computation)
assign totalMass  = 189     # %totalMass% | Mass (in kg) of the bike + biker, for travel time computation | number
assign maxSpeed   = 25     # %maxSpeed% | Absolute maximum speed (in km/h), for travel time computation | number
assign S_C_x      = 0.4  # %S_C_x% | Drag coefficient times the reference area (in m^2), for travel time computation | number
assign C_r        = 0.02   # %C_r% | Rolling resistance coefficient (dimensionless), for travel time computation | number
assign bikerPower = 300    # %bikerPower% | Average power (in W) provided by the biker, for travel time computation | number

# Turn instructions settings
assign turnInstructionMode          = 1     # %turnInstructionMode% | Mode for the generated turn instructions | [0=none, 1=auto-choose, 2=locus-style, 3=osmand-style, 4=comment-style, 5=gpsies-style, 6=orux-style]
assign turnInstructionCatchingRange = 40    # %turnInstructionCatchingRange% | Within this distance (in m) several turning instructions are combined into one and the turning angles are better approximated to the general direction | number
assign turnInstructionRoundabouts   = true  # %turnInstructionRoundabouts% | Set to "false" to avoid generating special turning instructions for roundabouts | boolean


---context:way   # following code refers to way-tags

# classifier constants
assign classifier_none  = 1
assign classifier_ferry = 2

#
# pre-calculate some logical expressions
#

assign any_cycleroute =
     if      route_bicycle_icn=yes then true
     else if route_bicycle_ncn=yes then true
     else if route_bicycle_rcn=yes then true
     else if route_bicycle_lcn=yes then true
     else false

assign nodeaccessgranted =
     if any_cycleroute then true
     else lcn=yes

assign is_ldcr =
     if ignore_cycleroutes then false
     else any_cycleroute

assign isbike = or bicycle_road=yes or bicycle=yes or or bicycle=permissive bicycle=designated lcn=yes
assign ispaved = surface=paved|asphalt|concrete|paving_stones
assign isunpaved = not or surface= or ispaved surface=fine_gravel|cobblestone
assign probablyGood = or ispaved and ( or isbike highway=footway ) not isunpaved


#
# this is the cost (in Meter) for a 90-degree turn
# The actual cost is calculated as turncost*cos(angle)
# (Suppressing turncost while following longdistance-cycleways
# makes them a little bit more magnetic)
#
assign turncost = if is_ldcr then 0
                  else if junction=roundabout then 0
                  else 90


#
# for any change in initialclassifier, initialcost is added once
#
assign initialclassifier =
     if route=ferry then classifier_ferry
     else classifier_none


#
# calculate the initial cost
# this is added to the total cost each time the costfactor
# changed
#
assign initialcost =
     if ( equal initialclassifier classifier_ferry ) then 10000
     else 0

#
# implicit access here just from the motorroad tag
# (implicit access rules from highway tag handled elsewhere)
#
assign defaultaccess =
       if access= then not motorroad=yes
       else if access=private|no then false
       else true

#
# calculate logical bike access
#
assign bikeaccess =
       if any_cycleroute then true
       else if bicycle= then
       (
         if bicycle_road=yes then true
         else if vehicle= then ( if highway=footway then false else defaultaccess )
         else not vehicle=private|no
       )
       else not bicycle=private|no|dismount

#
# calculate logical foot access
#
assign footaccess =
       if bikeaccess then true
       else if bicycle=dismount then true
       else if foot= then defaultaccess
       else not foot=private|no

#
# if not bike-, but foot-acess, just a moderate penalty,
# otherwise access is forbidden
#
assign accesspenalty =
       if bikeaccess then 0
       else if footaccess then 4
       else 10000

#
# handle one-ways. On primary roads, wrong-oneways should
# be close to forbidden, while on other ways we just add
# 4 to the costfactor (making it at least 5 - you are allowed
# to push your bike)
#
assign badoneway =
       if reversedirection=yes then
         if oneway:bicycle=yes then true
         else if oneway= then junction=roundabout
         else oneway=yes|true|1
       else oneway=-1

assign onewaypenalty =
       if ( badoneway ) then
       (
         if ( cycleway=opposite|opposite_lane|opposite_track ) then 0
         else if ( oneway:bicycle=no                         ) then 0
         else if ( highway=primary|primary_link              ) then 50
         else if ( highway=secondary|secondary_link          ) then 30
         else if ( highway=tertiary|tertiary_link            ) then 20
         else 4.0
       )
       else 0.0

#
# calculate the cost-factor, which is the factor
# by which the distance of a way-segment is multiplied
# to calculate the cost of that segment. The costfactor
# must be >=1 and it's supposed to be close to 1 for
# the type of way the routing profile is searching for
#
assign isresidentialorliving = or highway=residential|living_street living_street=yes
assign costfactor

  #
  # exclude rivers, rails etc.
  #
  if ( and highway= not route=ferry ) then 10000

  #
  # exclude motorways and proposed roads
  #
  else if ( highway=motorway|motorway_link ) then   10000
  else if ( highway=proposed|abandoned     ) then   10000

  #
  # all other exclusions below (access, steps, ferries,..)
  # should not be deleted by the decoder, to be available
  # in voice-hint-processing
  #
  else min 9999

  #
  # apply oneway-and access-penalties
  #
  add max onewaypenalty accesspenalty

  #
  # steps and ferries are special. Note this is handled
  # before the cycleroute-switch, to be able
  # to really exlude them be setting cost to infinity
  #
  if ( highway=steps ) then ( if allow_steps then 40 else 10000 )
  else if ( route=ferry   ) then ( if allow_ferries then 5.67 else 10000 )

  #
  # handle long-distance cycle-routes.
  #
  else if ( is_ldcr ) then 1                   # always treated as perfect (=1)
  else
  add ( if stick_to_cycleroutes then 0.5 else 0.05 )  # everything else somewhat up

  #
  # some other highway types
  #
  if      ( highway=pedestrian                ) then 3
  else if ( highway=bridleway                 ) then 5
  else if ( highway=cycleway                  ) then 1
  else if ( isresidentialorliving             ) then ( if isunpaved then 1.5 else 1.1 )
  else if ( highway=service                   ) then ( if isunpaved then 1.6 else 1.3 )

  #
  # tracks and track-like ways are rated mainly be tracktype/grade
  # But note that if no tracktype is given (mainly for road/path/footway)
  # it can be o.k. if there's any other hint for quality
  #
  else if ( highway=track|road|path|footway ) then
  (
    if      ( tracktype=grade1 ) then ( if probablyGood then 1.0 else 1.3 )
    else if ( tracktype=grade2 ) then ( if probablyGood then 1.1 else 2.0 )
    else if ( tracktype=grade3 ) then ( if probablyGood then 1.5 else 3.0 )
    else if ( tracktype=grade4 ) then ( if probablyGood then 2.0 else 5.0 )
    else if ( tracktype=grade5 ) then ( if probablyGood then 3.0 else 5.0 )
    else                              ( if probablyGood then 1.0 else 5.0 )
  )

  #
  # When avoiding unsafe ways, avoid highways without a bike hint
  #
  else add ( if ( and avoid_unsafe not isbike ) then 2 else 0 )

  #
  # actuals roads are o.k. if we have a bike hint
  #
       if ( highway=trunk|trunk_link         ) then ( if isbike then 1.5 else 10  )
  else if ( highway=primary|primary_link     ) then ( if isbike then 1.2 else  3  )
  else if ( highway=secondary|secondary_link ) then ( if isbike then 1.1 else 1.6 )
  else if ( highway=tertiary|tertiary_link   ) then ( if isbike then 1.0 else 1.4 )
  else if ( highway=unclassified             ) then ( if isbike then 1.0 else 1.3 )

  #
  # default for any other highway type not handled above
  #
  else 2.0


# way priorities used for voice hint generation

assign priorityclassifier =

  if      ( highway=motorway                          ) then  30
  else if ( highway=motorway_link                     ) then  29
  else if ( highway=trunk                             ) then  28
  else if ( highway=trunk_link                        ) then  27
  else if ( highway=primary                           ) then  26
  else if ( highway=primary_link                      ) then  25
  else if ( highway=secondary                         ) then  24
  else if ( highway=secondary_link                    ) then  23
  else if ( highway=tertiary                          ) then  22
  else if ( highway=tertiary_link                     ) then  21
  else if ( highway=unclassified                      ) then  20
  else if ( isresidentialorliving                     ) then  6
  else if ( highway=service                           ) then  6
  else if ( highway=cycleway                          ) then  6
  else if ( or bicycle=designated bicycle_road=yes    ) 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

# some more classifying bits used for voice hint generation...

assign isbadoneway = not equal onewaypenalty 0
assign isgoodoneway = if reversedirection=yes then oneway=-1
                      else if oneway= then junction=roundabout else oneway=yes|true|1
assign isroundabout = junction=roundabout
assign islinktype = highway=motorway_link|trunk_link|primary_link|secondary_link|tertiary_link
assign isgoodforcars = if greater priorityclassifier 6 then true
                  else if ( or isresidentialorliving highway=service ) then true
                  else if ( and highway=track tracktype=grade1 ) then true
                  else false

# ... encoded into a bitmask

assign classifiermask add          isbadoneway
                      add multiply isgoodoneway   2
                      add multiply isroundabout   4
                      add multiply islinktype     8
                          multiply isgoodforcars 16

# include `smoothness=` tags in the response's WayTags for track analysis
assign dummyUsage = smoothness=

---context:node  # following code refers to node tags

assign defaultaccess =
       if ( access= ) then true # add default barrier restrictions here!
       else if ( access=private|no ) then false
       else true

assign bikeaccess =
       if nodeaccessgranted=yes then true
       else if bicycle= then
       (
         if vehicle= then defaultaccess
         else not vehicle=private|no
       )
       else not bicycle=private|no|dismount

assign footaccess =
       if bicycle=dismount then true
       else if foot= then defaultaccess
       else not foot=private|no

assign initialcost =
       if bikeaccess then 0
       else ( if footaccess then 100 else 1000000 )
 
Zuletzt bearbeitet:
Danke für die Antworten. @holzwurm: Ich kann auch den WebClient empfehlen und diesen zum Beispiel parallel mit einem anderen Routenplaner vergleichen (z.B. Komoot). Unterwegs nehme ich dann die BRouter-App in Verbindung mit LocusMapPro. Das klappt bislang ganz ok und man kann es komplett Offline nutzen. Allerdings ist die Navigationsführung ohne Ansage der Straßennamen nicht immer so geschmeidig.

@Pillepalle: Gerade Hindernisse wie Treppen oder manchmal noch schlimmer "Umlaufsperren" sind mit voll beladenem Bullit eine echte Herausforderung oder zwingen zu Umwegen. Daher wundere ich mich, dass du "Treppen" erlaubst. Ich plane jetzt eine große mehrtägige Sommertour mit Kind im Bullit und versuche mal mit den Profilen rumzuspielen, um auf ein möglichst gutes persönliches Profil hinzuarbeiten. Da es ja bereits schon einige für spezielle Wünsche angepasste Profile (Velomobil, Gravel etc.) gibt, war ich dann doch erstaunt, dass es noch kein einziges zu Cargobikes/Lastenrädern gibt.

Beste Grüße
 
Pillepale hat ja eine Rikscha - Da gibt´s an Treppen immer 2 die tragen helfen. ;-)
 
@Krischan : Sieht gut aus, scheint aber ein Problem zu haben - weißt Du, wie ich es lösen kann? Anhang anzeigen 29800
Ich ziehe Deine Frage hierhin, weil ich die Stelle nicht finde, nach der Du fragst.
Liegt der Fehler auf dem Weg von München zum Mt. Ventoux oder woanders?
Wenn Du statt des Sreenshots den Link kopierst und hier einstellst, kann ich die Umgebung auf Osm betrachten.
Auf dem Bild sieht es so aus, dass es keinen Weg/ Brücke zum Ziel gibt.
Gruß Krischan
 

Irgendwas ist seltsam...
wenn ich das Bild anklicke, während ich ein zweites Fenster mit brouter auf habe, zeigt es mir Dein Bild in brouter an...
:oops:
Gruß Krischan
 
Um die Uhrzeit habe ich auch manchmal solche Erscheinungen- wenn ich ganz wach bin sind sie zur Hälfte weg! :rolleyes:
Ich habe die Webversion jetzt benutzen können, es kam aber später nochmal ein Fehler. Das Phänomen, das Du beschreibst, konnte ich nicht nachvollziehen - bekommst Du das nochmal hin? Aus der URL könnte man vielleicht einen Ort, aber nicht mehrere auf einer Route erkennen, oder?

Wo siehst Du die Abgrenzung zu Komoot OSMAnd und Google Maps, was kann es anders? BRouter macht auf jeden Fall einen leistungsfähigen Eindruck!
 
die Abgrenzung zu Komoot OSMAnd und Google Maps
mein Komoot- Erstversuch sollte Geld kosten, wollte ich nicht, Google will ich nicht. G. musste ich mal, fand den garantiert schlechtesten Weg :LOL:
Die Route wird nach Radar-Höhendaten ermittelt, (fast) immer der flachste Weg.
Im Liegeradforum gibt es einen gigantisch überfrachteten Thread, ab und an mit persönlichem Support vom BR- Betreiber.
Besonders auf der Langstrecke unschlagbar, personalisierbar, ich fahr seit 5 Jahren Brouter-Tracks und bin zu 85% zufrieden, also gut :)
Gruß Krischan
 
ich nutze auch Brouter und packe die dann die GPX-Datei auf mein Garmin Etrex30. Ist für mich ein perfekte Kombi. Route bequem auf dem Thinkpad erstellt und dann am Lenker den Track nachfahren. Das etrex30 hält ohne Hintergrundbeleuchtung ca. 20Stunden durch.
 
Muss ich mir jetzt auch mal anschauen den Brouter.
Ich plane derzeit alles noch in Komoot
 
Muss ich mir jetzt auch mal anschauen den Brouter.
Ich plane derzeit alles noch in Komoot
Ja, unbedingt. Ich nutze außer manchmal brouter zum Planen und importiere dann den Track als gpx in Komoot, weil da Verwirrung und Transfer aus Garmin besser sind. Aber brouter ist einfach so viel besser!

t.
 
Ja, unbedingt. Ich nutze außer manchmal brouter zum Planen und importiere dann den Track als gpx in Komoot, weil da Verwirrung und Transfer aus Garmin besser sind. Aber brouter ist einfach so viel besser!

t.
Das heißt ich plane mit Brouter, importiere in Komoot, expotiere dann wieder für Garmin?
 
Brouter bietet den Export in verschiedenen Dateiformaten an. Du lädst Dir runter, was Du brauchst und nutzt es auf der Karte, die Du verwendest, in dem Gerät, das Du benutzt.
Wenn Dein Gerät mit Osm bestückt ist, kannst Du BR direkt verwenden.
Offline.
Gruß Krischan
 
Das klingt nach einem Versuch. OSM ist auf dem Garmin drauf
 
Ich exportiere aus Brouter die GPX und packe sie direkt in mein Etrex30. Das funktioniert beim Etrex30, ob es auch bei anderen Garmins funzt, kann ich nicht sagen.
 
Ich exportiere aus Brouter die GPX und packe sie direkt in mein Etrex30. Das funktioniert beim Etrex30, ob es auch bei anderen Garmins funzt, kann ich nicht sagen.
Ungefähr so mache ich es auch. Aber der Import ins Garmin läuft bei mir häufig über Komoot, weil das via IQ-App auf dem Garmin halbwegs einfach ist.

Ich speichere also den Track von brouter als gpx ab, importiere den in Komoot. Dann mache ich den PC aus, rufe am Garmin Komoot auf und starte den Track.

t.
 
Wenn alle Datentechnik besprochen ist, frag ich nach den lastenradtypischen Parametern zur Routenplanung...
Unterscheiden die sich vom Renn- oder Liegerad? Oder passt Treckingrad wie von selbst?
Gruß Krischan
 
Ungefähr so mache ich es auch. Aber der Import ins Garmin läuft bei mir häufig über Komoot, weil das via IQ-App auf dem Garmin halbwegs einfach ist.
Vielleicht hätte ich dazuschreiben sollen, dass ich das mit einem klassichen USB-A auf Mini-USB Kabel zwischen Thinkpad und Etrex mache. Also ganz Oldschool.
 
Zurück
Oben Unten