town_run — DRIVE 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)।

Returns

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, साहित्य)

• 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 में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_driving_japan_town — py -3.11 examples/poc_driving_japan_town.py

• poc_driving_town — py -3.11 examples/poc_driving_town.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

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

इसी category के (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.