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/05 14:50] – [Regeln] wikiwritertraffic [2026/09/19 14:02] (aktuell) – [zur Implementierung] wikiwriter
Zeile 21: Zeile 21:
 Die Regeln sind auch in der Routine ''driving.c'' umzusetzen: Die Regeln sind auch in der Routine ''driving.c'' umzusetzen:
  
-  * Geschwindigkeitsbegrenzungen und Überholverbote einhalten +  - Wenn drumrum nichts los, dann mit Wunschgeschwindigkeit fahren 
-  * Sicherheitsabstand halten +     * Ausnahme: Polizeiwagen zu sehen, dann Polizeiwagengeschwindigkeit 
-  * nicht in Baustellen fahren +     * Sicherheitsabstand zum Vordermann halten; ggf. überholen 
-  * Nicht rechts ü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      * doch rechts überholen, wenn links von mir ein Stau ist und auf meiner Spur frei ist
      * dabei aber mit wenig Geschwindigkeitsüberschuss vorbeifahren      * dabei aber mit wenig Geschwindigkeitsüberschuss vorbeifahren
-  * beim Vorbeifahren an Staus, langsam werden und Lücken zum Einscheren lassen +  - Krankenwagen vorbeilassen (rechts oder links rüber und bremsen)
-  * Überholen, wenn links frei und ich schneller als der Vordermann fahren kann +
-  * Krankenwagen vorbeilassen (rechts oder links rüber und bremsen)+
      * wenn Vorbeilassen  nicht geht, beschleunigen und voraus fahren       * wenn Vorbeilassen  nicht geht, beschleunigen und voraus fahren 
      * dabei auch Geschwindigkeitsbegrenzungen missachten      * dabei auch Geschwindigkeitsbegrenzungen missachten
-  * je nach Fahrertyp auf Polizeifahrzeuge reagieren +  - So weit rechts wie möglich fahren 
-  * wenn das Fahrzeug links vor mir gleich schnell ist wie ich und ich aber schneller fahren will/kann, etwas zurückfallen lassen um nach links zu wechseln und dann zu überholen  +     * Ausnahme: einige PKW auf Mitte (Fahrertyp langsam) 
-  * 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. +         * 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 ===== ===== Fahrer-Typen =====
  
 ===== zur Implementierung ===== ===== zur Implementierung =====
 +==== Beobachten ====
   * für die Beobachtung der Umgebung ''street_state'' und ''street_limits'' verwenden   * für die Beobachtung der Umgebung ''street_state'' und ''street_limits'' verwenden
     * alle weiteren Infos aus den fahrzeugbezogenen ''[car]'' Variablen holen:     * alle weiteren Infos aus den fahrzeugbezogenen ''[car]'' Variablen holen:
Zeile 45: Zeile 68:
       * ''type''       * ''type''
       * ''lane_change''       * ''lane_change''
 +==== Verhalten ====
   * das Verhalten aus den "stetigen" Variablen ableiten und für diese festlegen   * das Verhalten aus den "stetigen" Variablen ableiten und für diese festlegen
     * (Sicherheits-)abstand zum Vordermann --> auch bei Spurwechsel!     * (Sicherheits-)abstand zum Vordermann --> auch bei Spurwechsel!
Zeile 51: Zeile 74:
     * neue Position     * neue Position
     * neue Spur     * 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''   * 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)     * 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)
  
  
traffic.1788612633.txt.gz · Zuletzt geändert: von wikiwriter