town_run — DRIVE town op

• Datenarten: table → table

• Aufruf: import fullseye as fs; fs.ledger.town_run(layout, *, dt: 'float' = 0.05, v_max: 'float' = 8.0, a_max: 'float' = 1.5, b_max: 'float' = 3.0, stop_at: 'Optional[Sequence[str]]' = None, stop_hold: 'Optional[float]' = None, look_hold: 'Optional[float]' = None, stop_margin: 'float' = 0.5, idm_T: 'float' = 1.0, v_stop: 'Optional[float]' = None, t_max: 'Optional[float]' = None, rules: 'Optional[dict]' = None, train=None) -> 'Dict[str, object]' (die Implementierung direkt: import drivetown; drivetown.town_run(layout, *, dt: 'float' = 0.05, v_max: 'float' = 8.0, a_max: 'float' = 1.5, b_max: 'float' = 3.0, stop_at: 'Optional[Sequence[str]]' = None, stop_hold: 'Optional[float]' = None, look_hold: 'Optional[float]' = None, stop_margin: 'float' = 0.5, idm_T: 'float' = 1.0, v_stop: 'Optional[float]' = None, t_max: 'Optional[float]' = None, rules: 'Optional[dict]' = None, train=None) -> 'Dict[str, object]'; aus dem Register: opsdrive.get("town_run"))

Verwendung

Durchgehende, rein längsdynamische Fahrt entlang der Mittellinie (regelbasiert).

In jedem Schritt wird die nächste Ziel-Haltelinie, an der noch nicht angehalten wurde, als "stehendes vorausfahrendes Fahrzeug" betrachtet, drivetraffic.idm_accel(v, gap = 停止線 − 前端, dv = v, v0 = v_max, T = idm_T, a = a_max, b = b_max, s0 = stop_margin) liefert die Beschleunigung, begrenzt auf [−b_max, a_max] (ohne Ziel gap = ∞ = freie Fahrt). v wird zuerst aktualisiert (0 ≤ v ≤ v_max), s per Trapezregel. Bei v ≤ v_stop und Vorderkante innerhalb von 1,0 m vor der Haltelinie gilt das Fahrzeug als angehalten.

Bestimmung der Ziele (rules = town_rules, None = JP): Kreuzungen sind immer Ziele (Ampeln folgen der Regel "grün nach stop_hold Sekunden"). Bahnübergänge sind immer Ziele, wenn rules["crossing_stop"] "always" ist, und nur während der Warnung von train (entry_forbidden), wenn es "when_active" ist. Kann das Fahrzeug bei "when_active" zu Beginn der Warnung mit b_max nicht anhalten (gap < v²/(2 b_max)), fährt es weiter (event "commit"). Wird stop_at übergeben, hat es Vorrang vor den Regeln (Folge von kinds. Für Regressionstests). Nach dem Halt: an Kreuzungen stop_hold (Standard rules["hold_s"]) Sekunden halten (mode "hold"); an Bahnübergängen bei rules["look_required"] je look_hold (Standard rules["look_hold_s"]) Sekunden nach links, rechts, links, rechts schauen (mode "look"). Ist train gegeben, wird auch nach Ende des Haltens gewartet, solange die Warnung aktiv ist (Schranke senkt sich bis hebt sich) (mode "wait"). train = t_warning oder (t_warning[, v_train[, length]]) oder ein dict (Zeiten sind Standardwerte der Auslegungsgrundlage, TRAIN_DEFAULTS).

Returns

dict : t, s, x, y, z, v, yaw, a (jeweils (n,)), mode (n,) Zeichenketten ("cruise" / "brake" / "hold" / "look" / "wait"),

stops = [(s_stop, kind, t_arrive, t_leave), ...], events = [("stop"|"go"|"look"|"wait_gate"|"commit"|"pass"|"end", t, ...)], stop_lines (Haltelinien, die Ziel werden konnten), targets ("static" / "dynamic" je Haltelinie), train (dict der Zeiten oder None), rules, params, total_length.

Raises ValueError: layout stammt weder von town_chain noch ist es die "route" von drivejapan.osm_route, dt/v_max/a_max/b_max/Haltezeiten ungültig, unbekannter kind in stop_at, rules/train ungültig, Haltelinie überfahren (außerhalb der Annahmen von IDM), Endpunkt bis t_max nicht erreicht.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_driving_japan_town — py -3.11 examples/poc_driving_japan_town.py

• poc_driving_town — py -3.11 examples/poc_driving_town.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Gleiche Kategorie (town)

town_chain · town_layout · town_world · town_centerline · town_stop_lines · town_rules · town_crossing_state · town_checks


*Provenance: drivetown.py — DRIVE Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.