*_link highway types im routing

Nein, Leitlinien (Zeichen 340) oder Fahrstreifenbegrenzungen (Zeichen 295). Und die sind vorhanden.

Das stimmt, aber dazu würde ich sagen: Bug-Report beim Router aufmachen, dass ein Penalty je nach Abbiegewinkel kommt, und gut. Das ist ja nichts, was wir hier durch Tagging oder Winkeloptimierung fixen könnten. Andererseits muss man auf dem Zubringer als Rechtsabbieger immer Vorfahrt achten, von daher ist das gar nicht so abwegig.

1 Like

Puh - okay - wir machen es mal noch generischer damit es klar wird:

https://www.openstreetmap.org/directions?engine=graphhopper_car&route=52.04427%2C8.33974%3B52.04591%2C8.34341#map=18/52.04509/8.34156&layers=N

https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=52.04427%2C8.33974%3B52.04591%2C8.34341#map=18/52.04509/8.34157&layers=N

Screenshot from 2022-09-29 16-38-32

Es gibt eine tertiary_link um den Kreisverkehr die als beschleunigung genommen werden sollte. DIe ist auch kürzer. Aber - weil *_link eben langsamer. Alle Winkel sind hier schön sanft.

Flo

2 Likes

Korrekt lautet die Formulierung:
Wer ein Fahrzeug führt, muss der Fahrtrichtung auf der folgenden Kreuzung oder Einmündung folgen, wenn zwischen den Pfeilen Leitlinien (Zeichen 340) oder Fahrstreifenbegrenzungen (Zeichen 295) markiert sind.
Der Gesetzgeber hat sich mit dieser Formulierung etwas gedacht!
Anders ausgedrückt: auch wenn an der nachfolgenden Kreuzung (denklogischerweise) keine Fahrbahnbegrenzung mehr ist, gilt das, was vor der Kreuzung zwischen Fahrstreifen- und Fahrbahnbegrenzungen mit Pfeilen vorgeschrieben wird, auch auf der Kreuzung fort.

Das habe ich verstanden, aber das ist eine Sache des Routers, das zu fixen. Deswegen meine ich ja: mach dort einen Bug-Report auf, wir können das durch Tagging ja nicht beheben, es sei denn es gibt rechtliche Dinge, wie eben fehlende Abbiegeverbote.

Womit bewiesen wäre, dass es nicht am tagging liegt, sondern an den Annahmen (penalties) des Routers liegt. Denn auch hier routet BRouter korrekt.

Was genau sollen die anders machen? Es gäbe zwei Lösungen die einfach nur unterschiedliche fehler produzieren:

a) Behandeln *_link wie die jeweiligen non *_link d.h. gleich traversionskosten.
Fehler: In Wirklichkeit sind die *_link oft langsamer - also Fehlkalkulation der Zeit.
b) *_link behandeln wie aktuell - Annahme höherer traversionskosten
Fehler: Kaputtes routing

Das sind die optionen die stand heute mit den Daten die wir haben möglich sind. Was schwebt dir so vor was “die router” so machen sollen?

Flo

Frag mal bei BRouter nach, was die anders machen, dass es bei denen funktioniert.

Wenn ich das profile richtig lesen müsste da die Zeitkalkulation kaputt sein:

assign  thirdc        highway=tertiary|tertiary_link
assign  secondc       highway=secondary|secondary_link
assign  firstc        highway=primary|primary_link    
assign  trunkc        highway=trunk|trunk_link  
assign  motorwayc     highway=motorway|motorway_link

Es wird gleich behandelt.

Flo

Warum sollte auch ein Link langsamer sein, als ein Nicht-Link? Das ergibt sich meiner Meinung nach nur daraus, dass man bei den meisten

  • … Vorfahrt achten muss
  • … eine enge kurven hat
  • … bergauf fahren muss

Aber eben nicht immer. Pauschal zu sagen, dass ein Link langsamer ist, halte ich für nicht überall zutreffend. Je einfacher ein Router geschrieben ist, desto mehr muss eben vereinfacht werden. Und ein solcher “Hack” über die Geschwindigkeit wird eben in den 5% wo die Annahme nicht zutrifft, zu fehlerhaftem Routing führen.

@flohoff Dein Bemühen Routingfehler zu finden in allen Ehren, aber Du verrennst Dich hier gerade in die fixe Idee, dass das Tagging kaputt sein muss, anstatt das Problem beim Router zu suchen.

Wahrscheinlich die einfachste und zugleich wirkungsvollste Methode.
OSRM will es eigentlich genauer machen, indem er einen _link mit einem penalty belegt. Dabei vergisst OSRM, dass scharfes Rechtsabbiegen von einer Straße mit hoher Durchschnittsgeschwindigkeit ebenfalls mit einem penalty belegt werden müsste. Und nach meiner Auffassung müsste dieses sogar höher sein als beim _link, selbst wenn ich am Ende des _link Vorfahrt beachten muss. OSRM berücksichtigt zwar vielleicht den geringfügig längeren Weg, vergisst aber, dass man aus durchschnittlich 65 km/h in Abhängigkeit von Größe und Gewicht des Fahrzeuges viel stärker Abbremsen muss und beim Abbiegen viel langsamer am 90° Abzweig fahren muss und länger braucht bis man wieder auf die Durchschnittsgeschwindigkeit kommt. Das zu berechnen, damit es ein gleichberechtigtes penalty zum _link gibt, ist sicher nicht ganz trivial. Das allein am Winkel direkt im Abzweig festzumachen führt wieder zu anderen Fehlern, weil in unserem Datenmodell auch _links erst dann abzweigen sollen, wenn die Spur tatsächlich abbiegt (was zwangsläufig zu schärferen Winkeln führt, als man tatsächlich fahren würde).
Also BRouter gleicht das Problem, dass das penalty bei 90° Abbiegevorgängen nicht trivial zu ermitteln ist einfach dadurch aus, dass _link nicht mit zusätzlichem penalty belegt wird. Das wirkt sich aber allenfalls am Ende einer langen Route mit vielen _link aus und da reden wir in der Summe vielleicht von wenige Minuten, wenn überhaupt.

3 Likes

Das ist der Denkfehler. Die Geschwindigkeit gibt eine durchschnittliche Geschwindigkeit auf dem Straßentyp an. Bei Abbiegevorgängen ist die tatsächliche Geschwindigkeit niedriger. Hier wird nun versucht besonders korrekt zu sein und man setzt auf den kurzen Abbiegespuren andere Geschwindigkeiten an. Der daraus errechnete Zeitverlust von ein paar Sekunden auf den kurzen Strecken ist jedoch vollkommen irrelevant für die Gesamtzeit der Route. Um die Relation zu wahren müssten die Geschwindigkeiten gleich groß sein.
Alle anderen Annahmen, die ich für ein Routing treffen muss (die Geschwindigkeit, die Wartezeiten etc) verursachen weitaus größere Fehler als das Gleichsetzten von links mit normaler Straßen.

Und falls man es doch mit Strafzeiten in den Knoten belegen will: Auch im Kreisverkehr muss ich Vorfahrt beachten und der Winkel dort wäre deutlich spitzer als der bei der Einfädelspur. Und zudem müsste auch die Geschwindigkeit im Kreisverkehr reduziert werden.

Kurzum, die Geschwindigkeit auf den Links deutlich geringer anzusetzen ist keine gute Idee und bringt keine wirkliche Genauigkeitssteigerung bezgl. der Fahrzeitschätzung, weil dann die falsche Route mit falschen Geschwindigkeitsannahmen berechnet wird. (Manchmal ist das einfache Modell am Ende das bessere!)

1 Like

Ich erinnere mich an einen Fall, der u.U. zu der Idee mit der Zeitstrafe für den Link geführt hat:
Eine Kleeblattkreuzung, bei der Ein- und Ausfahrspuren ein Stück parallel laufen, und bei der die Hauptfahrbahn eine leichte Kurve macht. Da ist dann die “innere” Spur über die Links ein paar Meter kürzer und bei gleicher Geschwindigkeitsbegrenzung theoretisch ein bisschen schneller und das führte ohne penalty dazu, dass der Router über die Links rein und raus statt über die Hauptfahrbahn führte.

Eine saftige penalty für das rechtwinklige Abbiegen, falls das überhaupt möglich oder erlaubt ist, würde der Realität entsprechen. Das gleiche gilt mMn für das Einfahren in den Kreisverkehr. Der Bypass darf nicht nach Rechnung langsamer sein.

Es reicht aber eine seichte Strafe und nicht 50% Geschwindigkeit. Und es geht auch nicht um motorway und trunk-links. da gibt es nur eine Stelle zum ausfahren.

(wurde oben schon ähnlich gesagt habe ich erst später gesehen)

Für das rein-raus-Problem reichte schon eine 90%-Strafe, die 90-Grad-Strafe und die für Kreisverkehreinfahrt wäre nicht streckenbezogen.

Die Kleeblätter gibt es bis herunter zu primary. Da kann man immer über die Ausfahrt auch wieder einfahren, wenn die Spuren nicht in drei Ebenen geführt werden.

Ich wollet damit sagen, hier kannst (und musst) du die Links bestrafen. Das Navi kann sich hier keinen Weg ohne Link suchen und es nimmt dann voraussichtlich den Weg mit dem kürzesten Link. Hier ist das bemängelte Verhalten bei Abbiegespuren quasi gewünscht.

Die Abbiegebeschränkung gem. VZ 297 habe ich im Ausgangsbeispiel mal ergänzt. Dann ist zumindest dieses Problem gefixt.

Ändert erst mal aber nichts am Problem, dass der eine oder andere Router gern auch mal die Ab- und Auffahrten von Schnellstraßen und Autobahnen als “Abkürzungen” nimmt weil man da rechnerisch 0,3 s Zeit spart