Jump to content

Länge einer Fahrstraße oder die Streckenlänge von GK zu GK bestimmen


Hawkeye

Empfohlene Beiträge

Moin @Neo, 

ich frage mich, ob es in Lua möglich ist, die Länge einer Fahrstraße [m] oder besser den genauen Abstand zwischen zwei Gleiskontakten exakt abzurufen.

I155625811_Screenshot2022-02-10102730.thumb.jpg.c1f85179b3144003cb94d59d4571a64b.jpg 

Mit den bisher gefundenen Lua-Anweisungen bekomme ich nur die Länge der Summe aller Gleise auf denen sich die beiden GK befinden.

953146018_Screenshot2022-02-10102628.thumb.jpg.8d696830bc495952e8f18c243c2c2c93.jpg

751793808_Screenshot2022-02-10102838.thumb.jpg.1e060df0aafdb0ad2fe6322a1d7f3f67.jpg

Dabei wird die Position des GK, wo auch immer er auf dem Gleis steht, aber nicht berücksichtigt. Genauer wird es nur , wenn die GK genau am Schnittpunkt der Gleise liegen. Gibt es eine bessere Möglichkeit, die genaue Länge zwischen den GK zu bestimmen?

Viele Grüße

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

aktuell gibt es keine Möglichkeit, den Abstand zwischen zwei beliebigen Gleiskontakten zu ermitteln. Wofür benötigst du diese Information? Die Länge einer Fahrstraße selbst wird intern bereits gespeichert und könnte per Lua abfragbar gemacht werden.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Neo,

vor 28 Minuten schrieb Neo:

Die Länge einer Fahrstraße selbst wird intern bereits gespeichert und könnte per Lua abfragbar gemacht werden.

Das wäre klasse.👍

vor 29 Minuten schrieb Neo:

aktuell gibt es keine Möglichkeit, den Abstand zwischen zwei beliebigen Gleiskontakten zu ermitteln. Wofür benötigst du diese Information?

Zum experimentieren und berechnen von Werten. 😁

z.B.  um über die aktuelle Geschwindigkeit eines Fahrzeuges die Fahrzeit bis zum Zielpunkt zu ermitteln, oder eine Strecke (ohne zusätzliche GK) in mehrere definierte Haltepunkte zu unterteilen.

Viele Grüße,

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

Hallo @Neo

ich komme nochmal zurück auf meine Anfrage vom Frühjahr letzten Jahres. 

Ich stoße bei meinen Experimenten immer auf das gleiche Problem. Ich benötige den Abstand zwischen zwei Gleiskontakten als Strecke [m]. 

Momentan beschäftige ich mich (mal wieder 9_9) mit dem unsäglichen Problem des "durch den Vordermann hindurchfahren" von Fahrzeugen im Straßenverkehr, wenn sie unterschiedliche Wege an Kreuzungen oder Abzweigen einschlagen.

Screenshot2023-07-04195542.thumb.jpg.71778933e500a8ab6e6c659927843c21.jpg

Screenshot2023-07-04195559.thumb.jpg.b3e82f82e2cd97a4291fc6abaa4ab056.jpg

Eine statische Lösung durch Vermessen der Strecke habe ich gefunden. Um das Ganze aber abzurunden und für beliebige Strecken oder verschobenen Gleiskontakte zu optimieren, benötige ich den Abstand zweier beliebiger Gleiskontakte, bzw. die Länge der fahrbaren Strecke, wie in den Bildern oben dargestellt, z.B. die Fahrstrecke zwischen 2 Wegpunkten.

In meinem aktuellen Experiment  vom GK "türkis oder cyan" zum "roten" Stoppkontakt.  

 Screenshot2023-07-04195719.thumb.jpg.c9f39d38907061bb2d5b845d748b3a4b.jpg 

Lässt sich das nicht doch irgendwie einrichten, das man diese Information per Lua abgreifen kann?

VG,

Hawkeye 

Bearbeitet von Hawkeye
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Hawkeye,

@EASY kann die Distanz zwischen zwei Objekten mit seinem Plugin jedenfalls messen. Wie er das genau macht, weiß ich nicht, aber wohl nicht mit Lua. Und er misst wohl "nur" auf dem direkten Weg und nicht entlang des Fahrweges. Aber vielleicht hilft Dir das Plugin ja auch schon mal weiter.

Screenshot2023-07-04223651.thumb.jpg.ac4435fac2515b47669ae6410b783935.jpg

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 8 Stunden schrieb Phrontistes:

Aber vielleicht hilft Dir das Plugin ja auch schon mal weiter.

Hallo @Phrontistes

danke für den Tip.  Das Plugin selber hilft natürlich nicht.

vor 8 Stunden schrieb Phrontistes:

EASY kann die Distanz zwischen zwei Objekten mit seinem Plugin jedenfalls messen. Wie er das genau macht, weiß ich nicht, aber wohl nicht mit Lua.

Aber dieser Satz hat mich an meine eigenen (schon vergessenen) Experimente erinnert.  :)

Ich habe eine solch ähnliche Funktion in einem anderen Zusammenhang in Lua schon mal selbst geschrieben. 

Screenshot2023-07-05074135.thumb.jpg.885d8f3689010ba5fbab9cd7fca00d06.jpg 

Dabei ging es u.a. darum, wo genau sich das Zentrum (Koordinatenmittelpunkt) einer Lok in Bezug zum Gleis befindet, auf dem sie steht. 

Screenshot2023-07-05075125.thumb.jpg.08c74a363b4d57d8769d82358254a961.jpg

Werde diese Funktion entsprechend anpassen und mir die benötigte daraus selbst erzeugen. also ganz "Easy". :D 

VG, Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

vor 11 Stunden schrieb Hawkeye:

Abstand zweier beliebiger Gleiskontakte

das Problem mit so einer Funktion ist, dass sie potentiell eine unendliche Laufzeit hat, nämlich wenn es keine Verbindung zwischen beiden Kontakten gibt oder die Strecke dahin durch viele Abzweigungen zu komplex wird. Bei den Fahrstraßen gibt es entsprechende Abbruchbedingungen, wie z.B. die berühmten maximal 7 Abzweigungen, aber es kann bei langen Strecken entsprechend auch mal die eine oder andere Sekunde dauern, bis eine Fahrstraße aufgebaut ist. Für eine dynamische Steuerung in Echtzeit wäre das System nicht gut geeignet.

Wenn dir der geometrische Abstand ausreicht, so wie von Phrontistes vorgeschlagen, wäre das die schnellere Lösung.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb Neo:

Wenn dir der geometrische Abstand ausreicht, so wie von Phrontistes vorgeschlagen, wäre das die schnellere Lösung.

Hallo Neo, 

durch diese Diskussion ist mir etwas klar geworden.

Eine Fahrstraße (orange) wird bildet zwischen zwei Gleiskontakten.

 Screenshot2023-07-05082102.thumb.jpg.a6ee582f195820f64441de6e85a75cbc.jpg  

Ein Fahrweg wird gebildet zwischen einem Fahrzeug (Zentrum) und einem Gleiskontakt (Target) .

Screenshot2023-07-05082144.thumb.jpg.9474cf8f21c4e4892588cbf54398ec4e.jpg 

Genau diese (grüne) Strecke von Fahrzeug zum Target möchte ich ermitteln. Da habe ich mich wohl etwas unverständlich ausgedrückt.

Screenshot2023-07-05082525.thumb.jpg.25d1c884fc8053cea475a6e3f271b78a.jpg

vor 3 Stunden schrieb Neo:

das Problem mit so einer Funktion ist, dass sie potentiell eine unendliche Laufzeit hat, nämlich wenn es keine Verbindung zwischen beiden Kontakten gibt oder die Strecke dahin durch viele Abzweigungen zu komplex wird.

Die grüne Strecke als Distanz vom Fahrzeug zum Ziel existiert doch im Programm! 

Eine Funktion könnte doch so aussehen.  

Screenshot2023-07-05084534.jpg.cf5d1d6678ed32d8d1184fd4494ce2cc.jpg

VG,

Hawkeye 

Bearbeitet von Hawkeye
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 34 Minuten schrieb Hawkeye:

Die grüne Strecke als Distanz vom Fahrzeug zum Ziel existiert doch im Programm! 

Ja, diese Strecke existiert, sie ist aber statisch, d.h. sie wird nur einmal bei der Zuweisung eines neues Ziels generiert. Der Startpunkt der Strecke verändert sich nicht mehr, wenn das Auto weiterfährt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb Neo:

Ja, diese Strecke existiert, sie ist aber statisch, d.h. sie wird nur einmal bei der Zuweisung eines neues Ziels generiert. Der Startpunkt der Strecke verändert sich nicht mehr, wenn das Auto weiterfährt.

Hallo Neo,

es reicht doch auch, wenn die Strecke zum Zeitpunkt der Zielzuweisung gelesen werden kann. Auslöser in der EV ist doch immer ein Gleiskontakt, der von einem Fahrzeug betreten wird. 
Verschiebe ich jetzt den Gleiskontakt beim Testen um ein Delta (+/-), dann wird mir auch beim Betreten des Gleiskontaktes durch ein Fahrzeug an dieser neuen Stelle die aktualisierte Strecke angegeben, ohne das ich die Strecke von Hand neu ausmessen muß. Das habe ich mit „dynamisch“ gemeint. 

VG, Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Hawkeye ,

Bin gespannt, was aus Deiner Forschung wird. Ich hatte mich ja auch mal länger mit den Abzweigungen befasst :$.

Hier vielleicht ein anderer Ansatz:
Für Dein aktuelles Problem hatte ich ein Lösung gefunden. Das Problem kann bei Abzweigungen nur für Linksabbieger auf
derjenigen Spur der Hauptstraße auftreten, die der Nebenstraße gegenüberliegt.

Vorstopper.thumb.jpg.f0dc27984e2e4a6e72594c06a2ea3b26.jpg

In dieser Situation (obere Spur von rechts nach links) muss ein Fahrzeug nur halten, wenn es als Linksabbieger Gegenverkehr abwarten muss. Dies wird hier beim Gleiskontakt Linksabbieger geregelt. Da das Fahrzeug hier schon nicht mehr auf der Geradeausspur steht, wird der Gleiskontakt Vorstopper gesperrt, sobald ein Linksabbieger ihn verlässt.
Verlässt er anschliessend den Linksabbiegerkontakt, wird der Vorstopper wieder freigegeben.

Vorteil: Funktioniert
Nachteil: Der Abstand zwischen Linksabbieger- und Vorstopperkontakt muss so groß sein, wie der längste Fahrzeugverbund. Dies sieht dann unter Umständen nicht so gut aus.
Vielleicht kann der Linksabbieger den Vorstopperkontakt entsprechend seiner Länge "verschieben".

Viele Grüße,
    Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 32 Minuten schrieb prinz:

Vorteil: Funktioniert
Nachteil: Der Abstand zwischen Linksabbieger- und Vorstopperkontakt muss so groß sein, wie der längste Fahrzeugverbund. Dies sieht dann unter Umständen nicht so gut aus.

Hallo Wolfgang, 

das hatte ich ja auch mal ausprobiert. Aber mit ebenso unbefriedigenden Ergebnissen. 

Genau, deshalb verfolge ich jetzt ja auch einen neuen Ansatz. Der "dunkelgraue" PKW fährt geradeaus.  

Screenshot2023-07-05121116.thumb.jpg.441fffec1e2e0e063833c5aed958d88c.jpg

Der gelbe PKW biegt ab und hält am Stoppkontakt.

Screenshot2023-07-05121254.thumb.jpg.ec14b514901ebde3a2e9c7a329f137c8.jpg

Am auslösenden Startkontakt (Start 03) = Anfang des grünen Fahrweges wird dem gelben PKW der Verfolger (dunkelgraue PKW) zugwiesen, wenn dieser den Kontakt betritt. Der Kontakt merkt sich also das letzte Fahrzeug, das ihn betreten hat. Stoppt der vorausfahrende (gelbe) PKW, dann wird synchron auch der Verfolger (dunkelgraue) gestoppt. 

Screenshot2023-07-05123322.jpg.46172cf8ed203a2eb44de08b940449df.jpg

Vorteil: solange der Abstand zwischen den Fahrzeugen moderat ist, sieht es gut aus. 

Nachteil: Hat der gelbe PKW schon gestoppt, wenn der Verfolger den Startkontakt betritt, dann bremst der Verfolger viel zu früh ab. 

Screenshot2023-07-05121352.thumb.jpg.ced2349f6f92af1daef6d5043147bb54.jpg 

Dies Lücke lässt sich schließen, wenn man den Abstand zum gelben Fahrzeug ermitteln kann. 

Lücke = Distanz zum Stoppkontakt - Länge des vorausfahrenden (hier: gelben) Fahrzeugs incl. Anhänger (= Fahrzeugverband) - Halteabstand von ca. 2-3m  

Je nach Abstand kann man dann entweder eine geringer Bremsverzögerung einstellen, oder eine zeitliche Verzögerung, bis das Verfolgerfahrzeug hinter dem (gelben) Fahrzeug hält.

VG,

Hawkeye 

Bearbeitet von Hawkeye
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Hawkeye,

Sicher ist Dein Lösungsansatz der "RollsRoyce". Trotzdem bis zu Deiner Lösung noch eine Ergänzung:

Hinter dem LKW mit Hänger halten die Fahrzeuge mit normalem Abstand:

Vorstopper1.thumb.jpg.2f8de864a6944f74964925c1d7f7c694.jpg

Hinter einem PKW rücken die Verfolger weiter auf:

Vorstopper2.thumb.jpg.75c94b4c434bcdcdb124aaec84338d65.jpg

Realisiert ist dies mit mehreren Stop-Elementen für Verfolger (hier mit kurzen Straßenelementen, wahrscheinlich besser mit Gleiskontakten):

Vorstopper3.jpg.b9d254b99ff2cf1e1b4f387f4b57d3a7.jpg

Bei Betreten des Linksabbiegerkontaktes werden die Vorstopperelemente von links nach rechts durchgegangen. Auf dem ersten, auf dem NICHT ein Fahrzeug aus dem Linksabbieger-Fahrzeugverbund steht, wird eine Stop-Eigenschaft gesetzt.

Etwas durchs Knie ins Auge geschossen, aber aktuell so realisierbar. Mir sind so kurze Elemente mal begegnet, als ich eine alte Anlage aus V3 (Bergwandern in Budenheim) nach V8 hochgezogen habe. Das wurde da für langsame Beschleunigung / langsames Anhalten genutzt.

Übrigens ist mir hier nochmal ein altes Problem aufgefallen: Auf der Abzweigung springt der Anhänger schon mal kurz auf eine andere Spur.

Viele Grüße und gespannt auf Dein weiteres Vorankommen
    Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Minuten schrieb prinz:

Übrigens ist mir hier nochmal ein altes Problem aufgefallen: Auf der Abzweigung springt der Anhänger schon mal kurz auf eine andere Spur.

Hallo Wolfgang, 

das kenne ich auch noch. Es liegt daran, das ein Ziel im Fahrzeug zu früh gelöscht wird, bevor das Fahrzeug die Fahrspuren der Kreuzung komplett verlassen hat, oder erst gar kein Ziel im Fahrzeug vorhanden ist. Das sehe ich in deinem letzten Bild an der Position der „schwarzen“ Gleiskontakte.
Das „Ausschlagen“ hängt mit der Reihenfolge der Spuren in einer Kreuzung oder einem Abzweig zusammen. Treffen sich an einer Stelle zwei Spuren und laufen in nur einer Spur weiter, dann wird das Fahrzeug inkl. Anhänger immer auf die niedriger definierte Spur katapultiert. 
Habe da schon mit vielen Spureinstellungen experimentiert, aber es gibt bei allen zu konstruierenden Spuren dabei leider immer eine niedriger Spur, so das es aus diesem Grund wenig Sinn macht, die Reihenfolge der Spuren zu verändern. 

Dafür gibt es aber mehrere Lösungen. Den Zielkontakt verschieben, so das das Fahrzeug in seiner Gesamtlänge die Kreuzung auch komplett verlassen hat. 
Oder das Ziel nicht beim „Betreten“, sondern beim „Verlassen“ löschen.  Oder bei „Betreten (in Fahrzeugmitte)“ und eine kurze Verzögerung einbauen, so dass das Ziel erst nach 1-2 s gelöscht wird. Hauptsache das Fahrzeug hat die Kreuzung komplett verlassen, bevor das Ziel gelöscht wird.

VG,

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

Werde ich bei Gelegenheit nochmal prüfen. Hier war es jedenfalls so, dass der Anhänger auch beim Rechtsabbiegen aus der Nebenstraße auf eine andere Spur sprang, obwohl dort der Zielkontakt weit genug entfernt ist.

Viele Grüße,
   Wolfgang

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 5.7.2023 um 14:45 schrieb prinz:

. . . gespannt auf Dein weiteres Vorankommen

Hallo Wolfgang, 

ist doch alles etwas komplizierter als gedacht.  :/  . . . Aber hier wird nicht aufgegeben! :D

Zur Ablenkung und um den Kopf freizubekommen, habe ich noch ein paar nette kleine Zusatzfeatures eingebaut.

Screenshot2023-07-09063452.thumb.jpg.cdc56cde9d1809cc819eafb2ba7bd066.jpg  

Die Fahrzeuge blinken jetzt bei Abbiegen und die Bremsleuchten werden ebenfalls aktiviert. :) 

Apropos Bremsleuchten: Der Anhänger der "Spedition Eder" müsste mal in die Werkstadt zur Kontrolle der Kfz-Beleuchtung. Beim der nächsten TÜV Inspektion fällt er sonst durch. :D

 Screenshot2023-07-09081033.thumb.jpg.d3fad2e31db63f81c8d78e30678dc50b.jpg

VG, 

Hawkeye

Bearbeitet von Hawkeye
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 5.7.2023 um 09:25 schrieb Neo:

Ja, diese Strecke existiert, sie ist aber statisch, d.h. sie wird nur einmal bei der Zuweisung eines neues Ziels generiert. Der Startpunkt der Strecke verändert sich nicht mehr, wenn das Auto weiterfährt.

Hallo @Neo

nach unzähligen Versuchen habe ich das Problem des "durch Fahrzeuge hindurchfahren", bei unterschiedlichen Spuren wohl endlich gelöst. Du hattest recht, die von mir gewünschte Information ist dabei doch nicht hilfreich. Es muss an diesen Abzweigstellen, bei denen die Fahrzeuge auf unterschiedlichen Fahrspuren stehen und weiterfahren, der Abstand des Verfolgers zum vorausfahrenden Fahrzeug ständig überprüft werden und die Geschwindigkeit des Verfolgers dem vorausfahrenden Fahrzeug angepasst werden. Dafür muss die "automatische Beschleunigung" des Verfolgers aber auch temporär ausgeschaltet sein, damit er von vorbeifahrenden Fahrzeugen nicht doch wieder beschleunigt wird. 

Screenshot2023-07-12134348.thumb.jpg.6691c5e6e9e363652150a8205c35d0b0.jpg 

Screenshot2023-07-12134454.thumb.jpg.bcdd9237c181633c44bfa7af1aae199b.jpg

Screenshot2023-07-12134555.thumb.jpg.2d122aa63e6ec28e72bf1add40a69ede.jpg

Meine Anfrage hat sich damit erledigt. 

VG,

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...