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"))

• GPU: nein (nur CPU-Referenzimplementierung)

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): Für den befohlenen Lenkwinkel δ = L κ_cmd beträgt die tatsächliche Krümmung κ_cmd / (1 + K v²/L) Dann gilt in einem konzentrischen stationären Zustand ρ = √(R² + (K v²/L) L_d²) (die in dieser Version abgeleitete geschlossene Form). Wenn K = 0, dann ist ρ = R(seitlicher Schlupf 0).

Lineares Zweirad-Äquivalentmodell („params“ ist gegeben. δ = atan(L κ_cmd)): Im stationären Zustand ist die Richtung der Fahrzeugkarosserie geringer als die Geschwindigkeit der Hinterachse (tangential zum Kreis). Da die Hinterachse um den Gleitwinkel α_r = m l_f a_y / (C_r L) nach innen zeigt, verringert sich der sichtbare Winkel des Blickpunkts um α_r. stationäre Beziehung (δ = L/R_c + K u²/R_c, β, Rotationszentrum) wird in eine Gleichung mit einer Variablen mit dem Trägheitsradius R_c des Schwerpunkts umgewandelt und mithilfe der Halbierungsmethode (halbgeschlossene Form) gelöst. Die kinematische Gleichung reduziert diesen Effekt, sodass der seitliche Schlupf als gering eingeschätzt wird (etwa die Hälfte im PoC).

Erhöht „ValueError“: R, L_d, L ≤ 0, Fixierungspunkt erreicht Kreis nicht, 1 + K v²/L ≤ 0, v < 0,5 in Parametern.

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.