stop_line_plan — DRIVE long op

• Datenarten: scalar × scalar → table

• Aufruf: import fullseye as fs; fs.ledger.stop_line_plan(v: 'float', dist_to_line: 'float', theta: 'float' = 0.0, params: 'Optional[dict]' = None, t0: 'float' = 0.0, margin: 'float' = 0.5, A1: 'float' = 1.5, A2: 'float' = 2.5, split: 'float' = 0.5) -> 'Dict[str, object]' (die Implementierung direkt: import drivelong; drivelong.stop_line_plan(v: 'float', dist_to_line: 'float', theta: 'float' = 0.0, params: 'Optional[dict]' = None, t0: 'float' = 0.0, margin: 'float' = 0.5, A1: 'float' = 1.5, A2: 'float' = 2.5, split: 'float' = 0.5) -> 'Dict[str, object]'; aus dem Register: opsdrive.get("stop_line_plan"))

Verwendung

Plant ab dem Moment der Wahrnehmung (Zeitpunkt t0, dist_to_line von der Fahrzeugfront bis zur Haltelinie, Geschwindigkeit v) ein 2-stufiges Bremsen, das margin vor der Haltelinie anhält.

Phasen: Reaktion (ρ, Geschwindigkeit gehalten) → [falls nötig, bei gehaltener Geschwindigkeit warten (cruise)] → Stufe 1 (konstanter Anteil der Verzögerung A1, bis die Geschwindigkeit split·v erreicht) → Stufe 2 (A2, bis zum Stillstand) → Halten. Die Bremsung wird in 2 Stufen geteilt, um dem Fall "Bremse nicht in mehreren Stufen betätigt" (fehlerhafte Bremsbedienung) der behördlichen Mitteilung zu entsprechen. Reicht es nicht, wird die Verzögerung der Stufe 2 in geschlossener Form neu gelöst (ln-Formel, auch für k > 0 exakt); genügt Stufe 1 allein für die Strecke, wird in einer Stufe angehalten (stages = 1). Wird am oberen Grenzwert (min(a_brake_max, μ g cos θ)) gekappt, ist saturated = True, und die Vorhersage nutzt den gekappten Wert. Die Steigung wird im Intervall als konstantes θ angenommen (das Halteintervall überquert keinen Neigungsknick).

Returns

dict : phases (Liste von (t_start, kind, drive, brake), kind = react / cruise / brake1 / brake2), t_breaks,

stages, predicted_gap (vom angehaltenen Vorderende bis zur Haltelinie; negativ = überfahren), t_stop, saturated, theta, d_react, d_cruise, d_brake.

Raises ValueError: v ≤ 0, nicht endlich, split ∉ (0, 1), A1 oder A2 ≤ 0.

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_longitudinal — py -3.11 examples/poc_driving_longitudinal.py

• poc_driving_weather — py -3.11 examples/poc_driving_weather.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 (long)

long_params · road_profile · road_eval · long_simulate · long_energy_residual · stopping_distance_grade · plan_command · hill_hold_brake_min


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