pure_pursuit_circle_offset — DRIVE lateral op

• Datenarten: keine → table (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)

• Aufruf: import fullseye as fs; fs.ledger.pure_pursuit_circle_offset(radius: 'float', lookahead: 'float', wheelbase: 'float', *, understeer: 'float' = 0.0, speed: 'float' = 0.0, params: 'Optional[dict]' = None) -> 'Dict[str, float]' (die Implementierung direkt: import drivelateral; drivelateral.pure_pursuit_circle_offset(radius: 'float', lookahead: 'float', wheelbase: 'float', *, understeer: 'float' = 0.0, speed: 'float' = 0.0, params: 'Optional[dict]' = None) -> 'Dict[str, float]'; aus dem Register: opsdrive.get("pure_pursuit_circle_offset"))

Verwendung

Radius ρ des stationären Kreises und Querabweichung ρ − R (nach außen positiv), wenn ein stationärer Kreis (Radius R) mit Pure Pursuit (bezogen auf den Hinterachsmittelpunkt) verfolgt wird.

Kinematik + Untersteuern (params = None): Wird für einen kommandierten Lenkwinkel δ = L κ_cmd die tatsächliche Krümmung zu κ_cmd / (1 + K v²/L), so gilt im stationären Zustand konzentrischer Kreise ρ = √(R² + (K v²/L) L_d²) (in dieser Version hergeleitete geschlossene Form). Bei K = 0 ist ρ = R (Querversatz 0).

Lineares Einspurmodell (params angegeben; δ = atan(L κ_cmd)): Im stationären Zustand zeigt die Fahrzeugausrichtung gegenüber der Geschwindigkeit der Hinterachse (Kreistangente) um den Schräglaufwinkel hinten α_r = m l_f a_y / (C_r L) nach innen, sodass der sichtbare Winkel des Zielpunkts um α_r abnimmt. Die stationären Beziehungen (δ = L/R_c + K u²/R_c, β, Drehzentrum) werden zu einer Gleichung in einer Variablen, dem Kurvenradius R_c des Schwerpunkts, und per Bisektion gelöst (halbgeschlossen). Die kinematische Formel lässt diesen Effekt weg und unterschätzt daher den Querversatz (im PoC etwa um die Hälfte).

Raises ValueError: R, L_d, L ≤ 0, Zielpunkt erreicht den Kreis nicht, 1 + K v²/L ≤ 0, v ≤ 0.5 mit params.

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_lateral — py -3.11 examples/poc_driving_lateral.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 (lateral)

friction_circle_usage · curve_speed_limit · design_min_radius · understeer_gradient · steady_cornering · bicycle_model_step · ackermann_steer_angles · offtracking_circle


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