Webseiten-Werkzeuge


traffic

Dies ist eine alte Version des Dokuments!


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

Die Regeln sind auch in der Routine driving.c umzusetzen:

  • Geschwindigkeitsbegrenzungen und Überholverbote einhalten
  • Sicherheitsabstand halten
  • nicht in Baustellen fahren
  • 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
  • beim Vorbeifahren an Staus, langsam werden und Lücken zum Einscheren lassen
  • Ü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
    • dabei auch Geschwindigkeitsbegrenzungen missachten
  • je nach Fahrertyp auf Polizeifahrzeuge reagieren
  • 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
  • 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.

Fahrer-Typen

zur Implementierung

  • 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
  • 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
  • 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)
traffic.1788613825.txt.gz · Zuletzt geändert: von wikiwriter