crossing_stop_check — DRIVE crossing op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.crossing_stop_check(trajectory, *, stop_line: 'float', crossing_start: 'float', crossing_end: 'float', car_length: 'float', look_events: 'Sequence[Tuple[float, str]]' = (), forbidden_intervals: 'Sequence[Tuple[float, float]]' = (), queue_rear: 'Optional[float]' = None, signal_controlled: 'bool' = False, near: 'float' = 2.0, v_stop: 'float' = 0.05, gap: 'float' = 1.0, beyond: 'float' = 0.5, brake_max: 'Optional[float]' = None) -> 'Dict[str, object]' (to call the implementation directly, import drivecrossing; drivecrossing.crossing_stop_check(trajectory, *, stop_line: 'float', crossing_start: 'float', crossing_end: 'float', car_length: 'float', look_events: 'Sequence[Tuple[float, str]]' = (), forbidden_intervals: 'Sequence[Tuple[float, float]]' = (), queue_rear: 'Optional[float]' = None, signal_controlled: 'bool' = False, near: 'float' = 2.0, v_stop: 'float' = 0.05, gap: 'float' = 1.0, beyond: 'float' = 0.5, brake_max: 'Optional[float]' = None) -> 'Dict[str, object]'; from the registry, opsdrive.get("crossing_stop_check"))

Usage

Scores how a railroad crossing is traversed (Art. 33(1)-(2), Art. 50(2), Rules of the Road (Kyosoku) 6-1-1(1)(3)(4)(5)).

trajectory = {"t", "x"[, "v"]} (x = front end of the vehicle). Judgements (violation names):

• no_stop (Article 33 paragraph 1): did not stop just before the stop line ([stop_line − near, stop_line]) before the front end entered the crossing (exempt if signal_controlled).

• no_look (Article 33 paragraph 1, driving manual 6-1-1(1)(2)): did not look both left and right during the last stop (from stopping until moving off).

• entered_while_forbidden (Article 33 paragraph 2): the time the front end passed the near edge of the crossing is within forbidden_intervals. If brake_max [m/s²] is passed, entries that at the start of that interval could not have stopped before the crossing with brake_max deceleration (v² / (2 brake_max) > distance to the crossing) are not counted as violations but recorded in unavoidable (the same idea as the distance in which one cannot stop on a yellow light. The law has no explicit exception = interpretation / assumption). None means no exception.

• no_exit_room (Article 50 paragraph 2): no room on the far side at the time of entry (exit_room_check).

• stopped_inside (driving manual 6-1-1(5)): stopped while the body was on the crossing.

A trajectory that did not enter the crossing has entered = False (no violations counted other than stopping/checking).

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_crossing — py -3.11 examples/poc_driving_crossing.py

• poc_driving_town — py -3.11 examples/poc_driving_town.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 (crossing)

crossing_timing_check · crossing_gate_state · crossing_lamp_signal · lamp_pair_phase · crossing_clear_time · exit_room_check · track_sight_distance · sight_triangle_distance


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