idm_platoon_simulate — DRIVE traffic op

• Datenarten: any → table

• Aufruf: import fullseye as fs; fs.ledger.idm_platoon_simulate(lead_v_of_t, n_followers: 'int', *, params_per_vehicle, dt: 'float', t_end: 'float', reaction_delay: 'float' = 0.0, seed: 'Optional[int]' = None) -> 'Dict[str, object]' (die Implementierung direkt: import drivetraffic; drivetraffic.idm_platoon_simulate(lead_v_of_t, n_followers: 'int', *, params_per_vehicle, dt: 'float', t_end: 'float', reaction_delay: 'float' = 0.0, seed: 'Optional[int]' = None) -> 'Dict[str, object]'; aus dem Register: opsdrive.get("idm_platoon_simulate"))

Verwendung

Integriert eine IDM-Kolonne von Folgefahrzeugen hinter dem Geschwindigkeitsprofil des Führungsfahrzeugs (Fahrzeug 0 = Führungsfahrzeug, 1..n = Folgefahrzeuge).

Argumente

• lead_v_of_t: Geschwindigkeit des Führungsfahrzeugs [m/s]. callable(t) -> v oder ein Array gleicher Länge wie die Zeitreihe.

• params_per_vehicle: ein dict je Folgefahrzeug (Länge n) oder ein einziges für alle Fahrzeuge gemeinsames dict. Schlüssel v0, T, a, b, s0 (Pflicht), delta (Standard 4), length (als Fahrzeuglänge des vorderen Fahrzeugs verwendet; Standard 4.5 m, angenommen), reaction_delay (falls fehlend, das Argument reaction_delay), speed_noise (relative Streuung 1 + N(0, speed_noise²), mit der Wunschgeschwindigkeit v0 multipliziert; bei > 0 ist seed Pflicht = deterministisch). Die Länge des Führungsfahrzeugs ist params_per_vehicle des ersten Eintrags von length.

• reaction_delay: Reaktionsverzögerung [s]. Auf ein ganzzahliges Vielfaches des Schritts dt gerundet (m = round(delay/dt)). Fahrzeug i bestimmt zum Zeitpunkt k seine Beschleunigung anhand seiner eigenen Geschwindigkeit, seines Abstands und seiner Relativgeschwindigkeit zum Zeitpunkt k − m (für t < 0 gilt der anfängliche stationäre Zustand als fortgesetzt).

Integration (ballistic update): v_{k+1} = max(0, v_k + a_k dt), x_{k+1} = x_k + v_k dt + ½ a_k dt² (in einem Schritt, in dem die Geschwindigkeit negativ würde, hält es an der Halteposition x_k − v_k²/(2 a_k)). Die Position des Führungsfahrzeugs ist das Trapezintegral seiner Geschwindigkeit.

Anfangszustand: Alle Fahrzeuge fahren mit v_lead(0), der Abstand jedes Folgefahrzeugs ist der Gleichgewichtsabstand idm_equilibrium_gap bei dieser Geschwindigkeit. Wird ein Abstand 0 oder kleiner (Auffahrunfall), wird dieses Fahrzeug an der Kontaktposition (Abstand 0) angehalten und danach nicht mehr bewegt (Geschwindigkeit und Beschleunigung 0; die Fahrzeuge davor und dahinter werden weiter integriert, und für das Fahrzeug dahinter wird das angehaltene Fahrzeug zum Vordermann). Fahrzeuge werden nicht überlappt —— überlappend zu integrieren macht die Positionen bedeutungslos.

Rückgabe-dict: t (K,), x, v, a, gap (K, n+1) (gap[:, 0] = inf), params (die tatsächlich verwendeten Parameter je Fahrzeug, inkl. Geschwindigkeitsstreuung), delay_steps (n,), collision (bool), collision_time (erster Zeitpunkt or None), collisions (Liste von (時刻, 車番) der Auffahrunfälle; Fahrzeugnummer i ist das Fahrzeug, das auf das vordere Fahrzeug i−1 aufgefahren ist), crashed (n+1,) bool.

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_traffic — py -3.11 examples/poc_driving_traffic.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 (traffic)

idm_accel · idm_equilibrium_gap · driver_style · lateral_wobble · ou_estimate · social_force_step · pedestrian_crossing · occlusion_reveal_distance


*Provenance: drivetraffic.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.