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)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

各刻みで、まだ止まっていない次の 目標の停止線 を「止まっている先行車」と見なし、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.