Hawkeye Geschrieben 12. Juli 2023 Geschrieben 12. Juli 2023 Hallo, hier endlich ein Lösungsvorschlag für das Problem des "durch Fahrzeuge hindurchfahren" bei verschiedenen Fahrzielen von Fahrzeugen an Kreuzungen oder Abzweigen. Wenn zwei hintereinander fahrende Fahrzeuge unterschiedliche Ziele ansteuern, dann passt sich das nachfolgende Fahrzeug der Geschwindigkeit des vorausfahrenden Fahrzeugs an. Die automatische Beschleunigung ist beim Verfolger ausgeschaltet, da er sonst an der Kreuzung durch vorbeifahrende Fahrzeuge in die Kreuzung hinein und durch das stoppende Fahrzeug hindurchgezogen würde. Zur Verdeutlichung der Zielrichtungen der Fahrzeuge an den Bremskontakten, sind die Spuren (Radien) der Abzweige gegenüber der "Katalog"-Version verändert und die Animationen "Blinker" eingerichtet. Die Kurven direkt hinter den Abzweigen sind bewusst sehr eng gewählt, da die Geschwindigkeit eines Verfolgers in Abhängigkeit des Abstandes zwischen den Fahrzeugen nur linear als Strecke und nicht im Bogenmaß ermittelt wird. (Falls jemand hierfür eine Idee hat, wie man das bei Straßen mit mehreren Spuren auch noch realisieren könnte, . . . nur zu. ) Fahrzeuganimationen "Blinker" und "Bremslicht" werden ausgeführt, soweit im Modell vorhanden. (Golf - ohne "Bremslicht", Polizei - komplett ohne Animationen) Da die Animationen bei "Tageslicht"-Einstellung nur schwer zu erkennen sind, macht es eigentlich nur Sinn, den Schalter "Bremslicht" einzuschalten, wenn man in der Fahrzeugkamera mitfahren möchte, oder direkt mit der Kamera an die Kreuzung heranfährt. (Die Timer-Einstellung ist 0,5s) Die Sicherheitsanzeigen können wie gehabt unter Ebenen eingeblendet werden. Viel Spaß, beim Testen. Die ein oder andere Einstellung kann bestimmt noch optimiert werden. Abzweig-Vorfahrt achten 01.mbp Anregungen und Kritik willkommen. VG, Hawkeye
Hawkeye Geschrieben 17. Juli 2023 Autor Geschrieben 17. Juli 2023 (bearbeitet) Hallo @Neo, wenn ich einem Fahrzeug ein Ziel manuell zuweise, werden mir alle Fahrwege angezeigt, die möglich sind. In diesem Beispiel sind es zwei. Über die grafische EV habe ich nicht die Wahl zwischen den zwei Strecken. Leider wird hier automatisch der "falsche" Fahrweg (2 statt 1) genommen. Gibt es eine Möglichkeit in Lua die verschiedenen Wege auseinander zu halten, um dann auch den gewünschten Fahrweg auszuwählen? VG, Hawkeye Bearbeitet 17. Juli 2023 von Hawkeye
Bertram-Will Geschrieben 17. Juli 2023 Geschrieben 17. Juli 2023 Hallo Hawkeye, ich habe meinen Fahrzeugen für bestimmte Richtungen Schlagwörter zugeteilt. So können in Bedingungen an GK die Richtungen fetgelegt werden. Funktioniert; meistens jedenfalls. VG Pitt
Hawkeye Geschrieben 17. Juli 2023 Autor Geschrieben 17. Juli 2023 (bearbeitet) vor 23 Minuten schrieb Bertram-Will: ich habe meinen Fahrzeugen für bestimmte Richtungen Schlagwörter zugeteilt. So können in Bedingungen an GK die Richtungen fetgelegt werden. Hallo Pitt, nette Idee, danke. Hier geht es aber darum, das es für den Gleiskontakt aus dieser Anfangsposition zwei Fahrwege gibt und das Programm leider den nicht gewünschten davon auswählt. Ein Schlagwort ändert daran nichts. So wie es aussieht, muß ich die Spuren wohl abändern, das es bei Betreten des auslösenden GK nur einen Fahrweg und somit auch eindeutiges Ziel gibt. VG, Hawkeye Bearbeitet 17. Juli 2023 von Hawkeye
Hawkeye Geschrieben 20. Juli 2023 Autor Geschrieben 20. Juli 2023 Hallo, hier zum Thema passend und um den Straßenverkehr etwas aufzupeppen, eine Studie zum "Überholen auf Landstraßen". Nur PKW überholen. Natürlich passen die PKW auch auf möglichen Gegenverkehr (Bus) auf. (Das sollen sie zumindest. ) Überholen auf Landstraße.mbp Viel Spaß. VG, Hawkeye
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 Hallo @Neo, ich habe mal wieder ein Verständnisproblem und bin auf Fehlersuche. In der obigen Anlage wird dem Bus bei Betreten des Gleiskontakte "Anfang" das Ziel zugewiesen und im Zielkontakt eine Variable "Gegenverkehr auf "true" gesetzt. Diese Variable wird ständig beim Betreten eines Gleiskontaktes durch ein beliebiges Fahrzeug durch eine Schleife geprüft, ob ein Fahrzeug (hier der Bus) auf diesen Zielkontakt zufährt. Dies wird für den Bus aber nicht sofort erkannt und die Variable "Gegenverkehr" wieder auf "false" zurückgesetzt. Erst bei der zweiten Abfrage wird das Ziel des Busses erkannt und die Variable "Gegenverkehr" wieder auf "true" gesetzt. --[[------------------------------------------------------------------- Prüft, ob sich ein Fahrzeug auf der Gegenfahrbahn befindet. ---------------------------------------------------------------------]] $("GK Ziel gerade Strecke 02").variables["Gegenverkehr"] = false local t = layout:getEntitiesByKeyword("Straßenverkehr") for i, Wdh in ipairs(t) do if Wdh:isHeadingToward($("GK Ziel gerade Strecke 02")) then $("GK Ziel gerade Strecke 02").variables["Gegenverkehr"] = true break end end Das verstehe ich nicht. Gibt es da eine Zeitverzögerung beim Erkennen des Zieles? VG, Hawkeye
Goetz Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 Hallo @Hawkeye isHeadingToward() ist unabhängig vom eingestellten Ziel. Das Ziel voraus, welches mit dieser Funktion erkannt wird, ist dasjenige welches auch für das automatische Bremsen genutzt wird. Bremskontakte werden ab einer fixen Entfernung erkannt. Viele Grüße Götz
Phrontistes Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 (bearbeitet) Hallo @Hawkeye, vor 43 Minuten schrieb Hawkeye: isHeadingToward($("GK Ziel gerade Strecke 02") Die Vorstellung, damit danach zu fragen, zu welchem Zielkontakt das Auto unterwegs ist hatte ich auch mal. Das ist aber leider eine Fehlvorstellung, wie ich von @Neo erfahren habe. Das Ziel (welches dem Programm ja bekannt ist) kann man leider nicht abfragen. Ich weiß nicht mehr, ob er das als Feature-Wunsch aufgenommen hat oder nicht. Beste Grüße Phrontistes PS: Das hatte ich Dir gegenüber übrigens schon mal erwähnt: https://community.3d-modellbahn.de/forums/topic/8414-alternative-ampelsteuerung/page/2/#comment-107746 Bearbeitet 21. Juli 2023 von Phrontistes PS eingefügt
Neo Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 vor 6 Minuten schrieb Phrontistes: Das Ziel (welches dem Programm ja bekannt ist) kann man leider nicht abfragen. Das Ziel ist in der Eigenschaft "target" eines Fahrzeugs enthalten. Viele Grüße, Neo
Phrontistes Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 Ja, sorry, es muss heißen, "Das Ziel (welches dem Programm ja bekannt ist) kann man leider mit der graphischen EV nicht abfragen."
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 vor 16 Minuten schrieb Goetz: isHeadingToward() ist unabhängig vom eingestellten Ziel. Danke Götz, das mag sein. Aber trotzdem fährt der Bus auf diesen Gleiskontakt zu, unabhängig davon, ob es sein definiertes Ziel ist. vor 19 Minuten schrieb Goetz: Bremskontakte werden ab einer fixen Entfernung erkannt. Das steht nicht in der Beschreibung! Wie soll man darauf kommen? VG, Hawkeye
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 (bearbeitet) vor 32 Minuten schrieb Phrontistes: Das Ziel (welches dem Programm ja bekannt ist) kann man leider nicht abfragen. Hallo @Phrontistes, wie Neo gerade schon erwähnt hat, geht das nur mit einer Lua-Anweisung. Deshalb kann ein Ziel eines Fahrzeuges bisher auch nur mit einer Lua-Anweisung gelöscht werden, oder es wird durch ein neues Ziel überschrieben. VG, Hawkeye Bearbeitet 21. Juli 2023 von Hawkeye
BahnLand Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 Hallo @Hawkeye, toll gemacht! Gefällt mir sehr gut! Viele Grüße BahnLand
Phrontistes Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 vor 15 Minuten schrieb Hawkeye: geht das nur mit einer Lua-Anweisung Ja, so ist es. Deshalb formuliere ich meinen Feature-Wunsch an @Neo nochmals: Es wäre schön, wenn man das Ziel hier finden würde (hier bei einer Bedingung, die man ja nicht durch einen Lua-Einzeiler ersetzen kann):
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 Danke @BahnLand, ein paar kleine Probleme sind trotzdem noch zu lösen.
Neo Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 vor 5 Minuten schrieb Phrontistes: die man ja nicht durch einen Lua-Einzeiler ersetzen kann Es gäbe auch eine Skript-Bedingung. Aber generell ist der Zugriff auf die Zielliste etwas problematischer in der grafischen EV, weil sich hinter dem Ziel entweder ein einzelner Gleiskontakt, oder eine Liste von Gleiskontakten befinden können. Das kann die grafische EV aktuell nicht abbilden. Ich kann auch nur noch einmal betonen, dass ich selber den Anspruch habe, Straßenverkehr im Studio soweit zu automatisieren, dass solche komplexen EVs für das Steuern von Autos in Zukunft nicht mehr notwendig sind. Viele Grüße, Neo
Phrontistes Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 Hallo @Hawkeye, ich habe Dein Lua-Skript "Prüfe auf Gegenverkehr" mal in die graphische EV übersetzt, das geht nämlich . Überholen auf Landstraße - graphische EV.mbp Beste Grüße Phrontistes
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 (bearbeitet) vor einer Stunde schrieb Neo: Ich kann auch nur noch einmal betonen, dass ich selber den Anspruch habe, Straßenverkehr im Studio soweit zu automatisieren, dass solche komplexen EVs für das Steuern von Autos in Zukunft nicht mehr notwendig sind. Hallo Neo, durch dieses Experimentieren lernt man aber die EV besser zu verstehen. Geht mir zumindest so. Ich sammle mit jeder neuen Herausforderung ein kleines bisschen mehr wertvolle Erfahrung, was umsetzbar ist und was nicht. Manchmal genügt schon ein anderer Ansatz zur Lösung. VG, Hawkeye Bearbeitet 21. Juli 2023 von Hawkeye
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 vor 39 Minuten schrieb Phrontistes: mal in die graphische EV übersetzt, das geht nämlich . Danke, aber das weiß ich auch. Ich habe es ja von der graphischen EV absichtlich in Lua übersetzt, um beim Testen so auch ohne viel Kopieren das Skript an andere Stellen in der EV hin und her schieben können. VG, Hawkeye
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 (bearbeitet) vor einer Stunde schrieb Phrontistes: in die graphische EV übersetzt, Dann solltest zu konsequenterweise auch dieses Skript übersetzten. VG, Hawkeye Bearbeitet 21. Juli 2023 von Hawkeye
Neo Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 vor 45 Minuten schrieb Hawkeye: durch dieses Experimentieren lernt man aber die EV besser zu verstehen. Das begrüße ich auf jeden Fall, ich wollte mit meiner Aussage nur eventuelle Enttäuschungen vermeiden, falls ich die EV nicht wie gewünscht erweitern/anpassen kann.
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 vor 2 Stunden schrieb Goetz: Bremskontakte werden ab einer fixen Entfernung erkannt. Hallo @Neo, gibt es für die function :is HeadingToward () einen Anhaltswert für die Entfernung zum Gleiskontakt in [m] nach dem man sich richten kann? Oder ist die Entfernung auch von der Fahrzeuggeschwindigkeit und der Verzögerung des Fahrzeugs abhängig? Dann bräuchte ich wohl nur einen zweiten Kontakt für die Prüfung, um die ganze Strecke mit „true“ erfassen zu können. VG, Hawkeye
Neo Geschrieben 21. Juli 2023 Geschrieben 21. Juli 2023 Die Entfernung ist konstant und liegt bei ca. 150 m (bei Maßstab 1:1). Ich würde mich aber nicht zu sehr auf diese Zahl konzentrieren, der Wert ist mehr oder weniger zufällig gewählt und könnte sich auch ändern.
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 Gerade eben schrieb Neo: Die Entfernung ist konstant und liegt bei ca. 150 m (bei Maßstab 1:1). Danke, soll auch nur ein Richtwert sein, weniger sollte dann wohl immer gehen. VG, Hawkeye
Hawkeye Geschrieben 21. Juli 2023 Autor Geschrieben 21. Juli 2023 Hallo, nachdem die Tests mit der Anweisung :is HeadingToward () und einem zusätzlichen Gleiskontakt auch nicht zu einem zufriedenstellenden Ergebnis geführt haben, ist die Lösung dann doch einfacher, als ursprünglich gedacht. Direkt die Ziele aller Fahrzeuge überprüfen. Damit klappt es dann auch, das die Variable "Gegenverkehr" genau zwischen den beiden GK auf "true" gesetzt wird. Wie sagt Götz immer so schön. Manchmal denkt man "von hinten durch die Brust ins Auge". (oder war das Brummi? ) VG, Hawkeye
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden