lateral op• Data kinds: any → table
• Call: import fullseye as fs; fs.ledger.curvature_speed_plan(s, kappa, *, v_max, a_lat_max: 'float', a_accel: 'float', a_decel: 'float', a_total: 'Optional[float]' = None, v_start: 'Optional[float]' = None, v_end: 'Optional[float]' = None) -> 'Dict[str, np.ndarray]' (to call the implementation directly, import drivelateral; drivelateral.curvature_speed_plan(s, kappa, *, v_max, a_lat_max: 'float', a_accel: 'float', a_decel: 'float', a_total: 'Optional[float]' = None, v_start: 'Optional[float]' = None, v_end: 'Optional[float]' = None) -> 'Dict[str, np.ndarray]'; from the registry, opsdrive.get("curvature_speed_plan"))
Speed planning that builds a speed limit from a curvature sequence and enforces acceleration/deceleration limits with 2 passes, forward and backward (a classical method).
s: arc length (increasing, (N,)). kappa: curvature at each point (sign does not matter). v_max: speed upper limit (scalar or (N,); legal speed, crawling sections, etc.). Limit v_lim = min(v_max, √(a_lat_max/|κ|)). Between steps v² is linear in s (constant acceleration/deceleration). If a_total (radius of the friction circle, e.g. μg) is given, the longitudinal acceleration/deceleration is also bounded by √(a_total² − (v²κ_m)²) (κ_m = the larger |κ| at the two ends of the step; solved as a quadratic, so √(a_x² + a_y²) ≤ a_total anywhere within the step). Requires a_lat_max ≤ a_total. Return value: v, v_limit, ax (per-step longitudinal acceleration, (N−1,)), ay_max (maximum lateral acceleration within each step), time (arrival time, exact time for v² linear).
Raises ValueError: wrong shape, s not increasing, limit not positive, a_lat_max > a_total, v_start/v_end above the limit.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_driving_lateral — py -3.11 examples/poc_driving_lateral.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
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. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.