Jump to content

Empfohlene Beiträge

Geschrieben

Hallo @Neo ,

ich habe einen Wunsch. 9_9

Ist es möglich, die Methode vehicle:isHeadingToward(object) um die Option und Rückgabe der Strecke in [m] zu erweitern, um die tatsächlich noch zu fahrende Strecke eines Fahrzeuges zurückzugeben.

Screenshot 2025-07-26 172250.jpg

Im Moment (missbrauche ;)) bzw. verwende ich dazu die Fahrstraßen. D

Screenshot 2025-07-26 172316.jpg

Aber die Strecke gilt ja nur für den Abstand zwischen 2 Gleisen oder Gleiskontakten. Befindet sich das Fahrzeug schon zwischen den Kontakten auf dem Weg zum Zielkontakt, dann muss der Restweg noch aufwändig berechnet werden.

Hier mal ein Beispiel, wie das aussehen könnte.

Screenshot 2025-07-26 173753.jpg

Interessant ist, obwohl es beide Varianten nicht gibt, im Ereignisprotokoll für Variante 1 mit (object, 1) kein Fehler erzeugt wird und ein Boolean-Wert zurückgegeben wird.

Und bei Variante 2 die Fehlermeldung sowieso einen numerischen Wert erwartet. Diese würde ich somit auch bevorzugen.

Screenshot 2025-07-26 175505.jpg

Da es auch nur um eine kurze Strecke von < 150m geht, wie bei :getVehiclesOnRoute(contact1,contact2) ,

Screenshot 2025-07-26 173927.jpg

dürfte doch bei der Ermittlung der Strecke bei der internen Berechnung kaum ein Performance-Verlust entstehen.

VG,

Hawkeye

Bearbeitet von Hawkeye
Korrektur

Geschrieben

Hallo,

vor 2 Stunden schrieb Hawkeye:

Ist es möglich, die Methode vehicle:isHeadingToward(object) um die Option und Rückgabe der Strecke in [m] zu erweitern, um die tatsächlich noch zu fahrende Strecke eines Fahrzeuges zurückzugeben.

... da ich neugierig bin, was möchtest Du mit der Information über den Abstand machen?

vor 2 Stunden schrieb Hawkeye:

Interessant ist, obwohl es beide Varianten nicht gibt, im Ereignisprotokoll für Variante 1 mit (object, 1) kein Fehler erzeugt wird und ein Boolean-Wert zurückgegeben wird.

... es wird nur ein Übergabeparameter erwartet und ausgewertet, weitere Parameter werden einfach ignoriert.

Gruß
EASY

Geschrieben
  • Autor
vor 10 Minuten schrieb EASY:

da ich neugierig bin, was möchtest Du mit der Information über den Abstand machen?

Hallo @EASY ,

das habe ich eigentlich versucht mit den Bildern der Testanlage oben darzustellen.

Treffen Fahrzeuge an zwei zusammenlaufende Spuren aufeinander, dann wirkt die Fahrphysik des MBS noch nicht, solange sich die Fahrzeuge noch auf den getrennten Spuren befinden.

Das führt zu unschönen Kollision. Auf der Testanlage oben ändern Fahrzeuge bei solchen Kollisionen sogar ihre Fahrtrichtung, so das man manuell eingreifen und einzelne Fahrzeuge wieder neu positionieren muss.

Durch die Geschwindigkeiten und die Reststrecke der Fahrzeuge zum selben Zeitpunkt kann ich ermitteln, welches der Fahrzeuge A oder B zuerst am „Treffpunkt“ also dem Zielkontakt ankommt und daraus berechnen, wie weit das andere Fahrzeug z.B. Fahrzeug B abgebremst werden muß, damit es sich hinter Fahrzeug A „einreiht“, ohne das beide kollidieren.

Oben im Bild z.B.: Der rote Bus auf der Geraden und der blaue Bus in der Kurve fahren jeweils 50km/h. Beide sind auf Kollisionskurs. Die Zeit zum Schnittpunkt wird für beide berechnet und das Fahrzeug mit der höheren Fahrzeit zum Ziel (z.B.: B) wird auf eine Geschwindigkeit abgebremst, die es ermöglicht, das es mit einen Abstand von ca. 3-5m hinter dem ersten Fahrzeug (A) den Zielkontakt erreicht.

Sollte sich hinter dem roten Bus noch ein Fahrzeug C befinden, soll C dann auch, falls notwendig, entsprechend abgebremst werden. Fahrzeug B soll sich dann also zwischen A und C einreihen.

Im Prinzip muß ich nur noch die Streckenermittlung optimieren, die ist mit noch zu ungenau.

VG,

Hawkeye

Bearbeitet von Hawkeye

Geschrieben

Die Funktion isHeadingToward berechnet intern bereits den Abstand bis zum Ziel (innerhalb des maximalen Suchradius von 150 Metern), ich kann diesen Wert gern zusätzlich mit zurückgeben. Es bedarf dafür keinen zusätzlichen Parameter, Lua erlaubt mehrere Rückgabeparameter.

Geschrieben
  • Autor
vor 9 Minuten schrieb Neo:

Die Funktion isHeadingToward berechnet intern bereits den Abstand bis zum Ziel (innerhalb des maximalen Suchradius von 150 Metern), ich kann diesen Wert gern zusätzlich mit zurückgeben. Es bedarf dafür keinen zusätzlichen Parameter, Lua erlaubt mehrere Rückgabeparameter

Das wäre klasse, danke @Neo 👍

Geschrieben

Hallo @Hawkeye ,

danke für die Erklärung. Eine interessante AufgabenstellungB|.

vor 7 Minuten schrieb Neo:

Die Funktion isHeadingToward berechnet intern bereits den Abstand bis zum Ziel (innerhalb des maximalen Suchradius von 150 Metern), ich kann diesen Wert gern zusätzlich mit zurückgeben.

... wäre schön, denn es würde sich auch gut dazu eignen Anfangssituationen (Startparameter, wenn eine Anlage anläuft) genauer zu erfassen...

Gruß
EASY

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren