Webseiten-Werkzeuge


traffic

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
traffic [2026/09/04 15:21] – [zu beobachtende "Werte"] wikiadmintraffic [2026/09/19 14:02] (aktuell) – [zur Implementierung] wikiwriter
Zeile 1: Zeile 1:
 ====== ToDo und Notizen ====== ====== ToDo und Notizen ======
 +
 +===== Beobachtung der Umgebung =====
 +In ''driving.c'' werden Informationen über das Umfeld des einzelnen Fahrzeugs ermittelt,
 +die zusammen mit den Regeln das Verhalten (Geschwindigkeitsänderung, Spurwechsel) bestimmen 
 +  * gibt Geschwindigkeitsbegrenzungen ?
 +  * gibt es Überholverbote ?
 +  * gibt es Baustellen voraus ?
 +  * welche Fahrzeuge fahren vor mir auf meiner Spur, auf der Spur links von mir, rechts von mir? 
 +    * mit welchem Abstand?
 +    * mit welcher Geschwindigkeit?
 +    * mit Spurwechselabsicht?
 +    * welcher Typ?
 +    * das Gleiche für "neben mir" und "hinter mir" auf den Spuren rechts und links von mir
 +  * ist ein Rettungswagen in der Nähe? 
 +    * rechts, links oder auf meiner Spur hinter mir
 +  * ist ein Polizeifahrzeug in der Nähe
 +  * gibt es einen Stau (mehrere langsame Fahrzeuge dicht hintereinander) rechts oder links von mir?
  
 ===== Regeln ===== ===== Regeln =====
-Die Regeln sind in der Routine ''driving.c'' umzusetzen+Die Regeln sind auch in der Routine ''driving.c'' umzusetzen: 
 + 
 +  - Wenn drumrum nichts los, dann mit Wunschgeschwindigkeit fahren 
 +     * Ausnahme: Polizeiwagen zu sehen, dann Polizeiwagengeschwindigkeit 
 +     * Sicherheitsabstand zum Vordermann halten; ggf. überholen 
 +  - In Geschwindigkeitsbegrenzung maximal ca. zulässige Geschwindigkeit fahren 
 +     * Ausnahme Rettungswagen von hinten 
 +  - Überholverbote beachten 
 +     * außer im Stau, dann darf langsam vorbeigefahren werden (StVO prüfen) 
 +  - nicht rechts überholen 
 +     * doch rechts überholen, wenn links von mir ein Stau ist und auf meiner Spur frei ist 
 +     * dabei aber mit wenig Geschwindigkeitsüberschuss vorbeifahren 
 +  - Krankenwagen vorbeilassen (rechts oder links rüber und bremsen) 
 +     * wenn Vorbeilassen  nicht geht, beschleunigen und voraus fahren  
 +     * dabei auch Geschwindigkeitsbegrenzungen missachten 
 +  - So weit rechts wie möglich fahren 
 +     * Ausnahme: einige PKW auf Mitte (Fahrertyp langsam) 
 +         * fährt nur nach rechts, wenn von hinten Auto mit sehr hoher Geschwindigkeit 
 +     * wenn ganz links, zügig auf Mitte wechseln 
 +          * Ausnahme sehr schnelle PKW  (>180 km/h) auf linker Spur (Fahrertyp schnell ) 
 +     * wenn rechts vor mir Autos,  
 +             * nach rechts nur wenn 1km frei (LKW) 
 +             * nach rechts, nur wenn 500 m frei (PKW) 
 +  - Wenn vor mir auf meiner Spur langsames Fahrzeug oder Baustelle, 
 +     * Spurwechsel nach links,  
 +        * ggf. sogar etwas zurückfallen lassen 
 +        * abhängig vom Delta zum Überholten, beschleunigen 
 +        * mit gleicher Geschwindigkeit weiter (Fahrertyp langsam) 
 +        * wenn von hinten wer kommt, dann tendenziell früher nach links 
 +        * bei Spurwechsel ist abhängig von der eigenen Fahrspur zu prüfen, ob bei Wechsel nach links ein Fahrzeug von weiter links (wenn vorhanden) nach rechts will. Entsprechend bei Wechsel nach rechts.  
 +  - Wenn vor mir auf meiner Spur Autos, nicht nach rechts auch wenn rechts frei 
 +  - Regeln für zähfließend/Stau 
 +      * frühzeitig gesperrte Spur verlassen (fast alle) 
 +      * bei rechts stehendem Fahrzeug Lücke lassen/langsam werden, bis eingeschert wurde 
 +      * bis zur Sperrung vorfahren (Fahrertyp schnell)      
 +      * direkt vor der Sperrung "rechts vor links" 
 +  - Baustellen 
 +    * dürfen nicht befahren werden! 
 + 
 +===== Fahrer-Typen ===== 
 + 
 +===== zur Implementierung ===== 
 +==== Beobachten ==== 
 +  * für die Beobachtung der Umgebung ''street_state'' und ''street_limits'' verwenden 
 +    * alle weiteren Infos aus den fahrzeugbezogenen ''[car]'' Variablen holen: 
 +      * ''speed'' 
 +      * ''position'' 
 +      * ''type'' 
 +      * ''lane_change'' 
 +==== Verhalten ==== 
 +  * das Verhalten aus den "stetigen" Variablen ableiten und für diese festlegen 
 +    * (Sicherheits-)abstand zum Vordermann --> auch bei Spurwechsel! 
 +    * neue Geschwindigkeit 
 +    * neue Position 
 +    * neue Spur 
 +=== Idee zur Steuerung des Verhaltens === 
 +"Pläne" definieren, die abgearbeitet werden, z.B. 
 +    * Plan 0: normales Fahren ohne Überholen 
 +    * Plan 1: Überholen und schnellstens nach rechts 
 +    * Plan 2: Einfädeln vor Baustellen, in Staus 
 +    * usw.  
 + 
 +==== Speichern für die Darstellung ==== 
 +  * in ''calc_pos'' erfolgt nur noch das Mapping auf Gitterzellen ''street_state'' 
 +    * dabei Doppelbelegungen/Überschreiben verhindern/überwachen (sollte bei Sicherheitsabstand von mind. 5m nicht nötig sein) 
 +    * neue Speed in calc_pos setzen. Dazu ist neue Schleife über alle Autos erforderlich. Neue Position über neuen Speed ist so was wie implizites integrieren, über alten Speed ist Euler. Aber: Beschleunigung findet ja auch noch statt (2nd order)
  
-===== Beobachtung der Umgebung ===== 
-ebenfalls in ''driving.c'' werden Informationen über das Umfeld des einzelnen Fahrzeugs ermittelt, 
-die zusammen mit den Regeln das Verhalten (Geschwindigkeitsänderung, Spurwechsel) festlegen  
  
traffic.1788528097.txt.gz · Zuletzt geändert: von wikiadmin