pass op• Data kinds: none → table (an op determined by its arguments alone — it takes no image or data input)
• Call: import fullseye as fs; fs.ledger.overtake_requirement(v_ego: 'float', v_lead: 'float', *, lead_length: 'float', ego_length: 'float', gap_back: 'float', gap_front: 'float', accel: 'float' = 0.0, v_max: 'Optional[float]' = None, lane_change_time: 'float' = 0.0, v_oncoming: 'float' = 0.0, pet_min: 'float' = 0.0) -> 'Dict[str, float]' (to call the implementation directly, import drivepass; drivepass.overtake_requirement(v_ego: 'float', v_lead: 'float', *, lead_length: 'float', ego_length: 'float', gap_back: 'float', gap_front: 'float', accel: 'float' = 0.0, v_max: 'Optional[float]' = None, lane_change_time: 'float' = 0.0, v_oncoming: 'float' = 0.0, pet_min: 'float' = 0.0) -> 'Dict[str, float]'; from the registry, opsdrive.get("overtake_requirement"))
Time and distance needed to overtake the lead vehicle, and the threshold distance within which no oncoming vehicle may be approaching (closed form). Scenarios S079, S086, S145 (Art. 28(4)).
From when the ego vehicle's front end moves into the oncoming lane (or the lane to the right) gap_back short of the rear end of the vehicle ahead, until the ego vehicle's rear end is gap_front past the front end of the vehicle ahead (relative distance D = gap_back + lead_length + ego_length + gap_front). The ego vehicle accelerates from initial speed v_ego at accel up to v_max (Driving Rules Manual (Kyosoku) 5-6-3(4) "while accelerating within the maximum speed limit"); the vehicle ahead stays constant at v_lead. Afterwards it takes lane_change_time to return fully to the original lane. Passing the value of gap_front as overtake_return_gap gives the procedure of advancing until the overtaken vehicle is "at a distance where it is visible in the rear-view mirror" before returning (Kyosoku 5-6-3(6)).
Returns: relative_distance = D, t_pass, t_occupy = t_pass + lane_change_time, ego_distance (distance the ego vehicle travels during the occupation), v_pass (speed when the overtake is finished), d_required = ego_distance + v_oncoming (t_occupy + pet_min) (if, at the moment of decision, the oncoming vehicle is farther away than this, it reaches that point at least pet_min seconds after the ego vehicle has fully returned). Being unable to get ahead (relative speed never becomes positive) raises ValueError.
• 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_pass — py -3.11 examples/poc_driving_pass.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
pass)overtake_return_gap · no_overtaking_zones · overtake_permitted · overtaken_conduct_check · lane_change_follower_decel · lane_change_permitted · roundabout_entry_check · roundabout_signal_point
*Provenance: drivepass.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.