long_simulate — DRIVE long op

• Data kinds: scalar × scalar × any → table

• Call: import fullseye as fs; fs.ledger.long_simulate(s0: 'float', v0: 'float', command: 'Callable', road=None, t_end: 'float' = 30.0, dt: 'float' = 0.01, params: 'Optional[dict]' = None, t_breaks: 'Sequence[float]' = (), t0: 'float' = 0.0) -> 'Dict[str, object]' (to call the implementation directly, import drivelong; drivelong.long_simulate(s0: 'float', v0: 'float', command: 'Callable', road=None, t_end: 'float' = 30.0, dt: 'float' = 0.01, params: 'Optional[dict]' = None, t_breaks: 'Sequence[float]' = (), t0: 'float' = 0.0) -> 'Dict[str, object]'; from the registry, opsdrive.get("long_simulate"))

Usage

Integrates the longitudinal equation of motion with RK4 (steps are split at event times; see the module docstring).

Parameters

s0, v0 : initial position [m] (arc length along the road) and speed [m/s] (negative = backwards)

command : command(t, s, v) -> (drive, brake) (both ≥ 0 [m/s²]. Capped at μ g cos θ and a_max).

It is called with v = 0.0 only while stopped (even if the speed crosses 0 at the midpoint of a moving step, the command receives

±1e-300 in the direction of motion), so the command may write "hold once stopped" with v == 0 / v <= 0.

If the command changes discontinuously in time, put that time in t_breaks so the step is split there (for exactness).

road : road profile (same as road_eval)

t_end : end time [s], dt : step [s]

params : dict from long_params (None = default)

t0 : initial time [s]

Returns

dict : t, s, v, a, drive, brake, z, W_drive, W_brake, W_rr, W_drag (each an (n,) array, a = acceleration at that time),

stopped (bool array), events (list of ("stop"|"move", t, s, 向き)), saturated (whether any step was capped at a limit), params.

Raises ValueError: invalid arguments, command returned a negative or non-finite value.

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• poc_driving_longitudinal — py -3.11 examples/poc_driving_longitudinal.py

• poc_driving_town — py -3.11 examples/poc_driving_town.py

• poc_driving_traffic — py -3.11 examples/poc_driving_traffic.py

• poc_driving_weather — py -3.11 examples/poc_driving_weather.py

Ops the type connects to (they accept table as input)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (long)

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


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