town op• Data kinds: table → table
• Call: import fullseye as fs; fs.ledger.town_run(layout, *, dt: 'float' = 0.05, v_max: 'float' = 8.0, a_max: 'float' = 1.5, b_max: 'float' = 3.0, stop_at: 'Optional[Sequence[str]]' = None, stop_hold: 'Optional[float]' = None, look_hold: 'Optional[float]' = None, stop_margin: 'float' = 0.5, idm_T: 'float' = 1.0, v_stop: 'Optional[float]' = None, t_max: 'Optional[float]' = None, rules: 'Optional[dict]' = None, train=None) -> 'Dict[str, object]' (implementation को सीधे call करना हो तो import drivetown; drivetown.town_run(layout, *, dt: 'float' = 0.05, v_max: 'float' = 8.0, a_max: 'float' = 1.5, b_max: 'float' = 3.0, stop_at: 'Optional[Sequence[str]]' = None, stop_hold: 'Optional[float]' = None, look_hold: 'Optional[float]' = None, stop_margin: 'float' = 0.5, idm_T: 'float' = 1.0, v_stop: 'Optional[float]' = None, t_max: 'Optional[float]' = None, rules: 'Optional[dict]' = None, train=None) -> 'Dict[str, object]', registry से लेना हो तो opsdrive.get("town_run"))
centerline के साथ केवल longitudinal शुरू-से-अंत तक run (rule-based)।
हर चरण में, अभी तक जिस पर रुका नहीं गया ऐसी अगली लक्ष्य रुकने की रेखा को "रुका हुआ आगे वाला वाहन" माना जाता है, drivetraffic.idm_accel(v, gap = 停止線 − 前端, dv = v, v0 = v_max, T = idm_T, a = a_max, b = b_max, s0 = stop_margin) से त्वरण निकाला जाता है और [−b_max, a_max] पर काटा जाता है (लक्ष्य न हो तो gap = ∞ = मुक्त चालन)। v पहले अद्यतन होता है (0 ≤ v ≤ v_max), s समलंब नियम से। v ≤ v_stop हो और अग्रसिरा रुकने की रेखा से 1.0 m के भीतर हो तो रुका हुआ।
लक्ष्य तय होने का तरीका (rules = town_rules, None = JP): चौराहे सदा लक्ष्य हैं (सिग्नल stop_hold सेकंड बाद हरा होने के नियम से)। रेलवे क्रॉसिंग rules["crossing_stop"] "always" हो तो सदा, "when_active" हो तो केवल train की चेतावनी के दौरान (entry_forbidden) लक्ष्य है। "when_active" में चेतावनी शुरू होने पर b_max से रुक न सके (gap < v²/(2 b_max)) तो आगे बढ़ता है (event "commit")। stop_at देने पर वह नियमों पर प्राथमिकता लेता है (kind का क्रम। रिग्रेशन के लिए)। रुकने के बाद: चौराहे पर stop_hold (डिफ़ॉल्ट rules["hold_s"]) सेकंड ठहराव (mode "hold"), रेलवे क्रॉसिंग पर rules["look_required"] हो तो बाएँ, दाएँ, बाएँ, दाएँ प्रत्येक look_hold (डिफ़ॉल्ट rules["look_hold_s"]) सेकंड देखना (mode "look")। train हो तो ठहराव समाप्त होने पर भी चेतावनी के दौरान (बैरियर नीचे आने से ऊपर उठने तक) प्रतीक्षा (mode "wait")। train = t_warning या (t_warning[, v_train[, length]]) या dict (समय व्याख्या-आधार के मानक मान हैं, TRAIN_DEFAULTS)।
dict : t, s, x, y, z, v, yaw, a (प्रत्येक (n,)), mode (n,) स्ट्रिंग ("cruise" / "brake" / "hold" / "look" / "wait"),
stops = [(s_stop, kind, t_arrive, t_leave), ...], events = [("stop"|"go"|"look"|"wait_gate"|"commit"|"pass"|"end", t, ...)], stop_lines (लक्ष्य बन सकने वाली रुकने की रेखाएँ), targets (प्रत्येक रुकने की रेखा के लिए "static" / "dynamic"), train (समय का dict या None), rules, params, total_length।
Raises ValueError: layout न town_chain का है न drivejapan.osm_route का "route", dt/v_max/a_max/b_max/ठहराव समय अमान्य, stop_at में अज्ञात kind, rules/train अमान्य, रुकने की रेखा पार हो गई (IDM की कल्पना से बाहर), t_max तक अंतिम बिंदु तक नहीं पहुँचा।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• poc_driving_japan_town — py -3.11 examples/poc_driving_japan_town.py
• poc_driving_town — py -3.11 examples/poc_driving_town.py
table को input के रूप में लेते हैं)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
town)town_chain · town_layout · town_world · town_centerline · town_stop_lines · town_rules · town_crossing_state · town_checks
*Provenance: drivetown.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.