idm_platoon_simulate — DRIVE traffic op

• Data kinds: any → table

• Call: import fullseye as fs; fs.ledger.idm_platoon_simulate(lead_v_of_t, n_followers: 'int', *, params_per_vehicle, dt: 'float', t_end: 'float', reaction_delay: 'float' = 0.0, seed: 'Optional[int]' = None) -> 'Dict[str, object]' (implementation को सीधे call करना हो तो import drivetraffic; drivetraffic.idm_platoon_simulate(lead_v_of_t, n_followers: 'int', *, params_per_vehicle, dt: 'float', t_end: 'float', reaction_delay: 'float' = 0.0, seed: 'Optional[int]' = None) -> 'Dict[str, object]', registry से लेना हो तो opsdrive.get("idm_platoon_simulate"))

उपयोग

आगे वाली car के speed profile के पीछे IDM के अनुसरण करने वाले वाहनों की कतार integrate करता है (car 0 = आगे वाली, 1..n = पीछे चलने वाली)।

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

引数

• lead_v_of_t: 先頭車の速度 [m/s]。callable(t) -> v か、時刻列と同じ長さの配列。

• params_per_vehicle: 追従車ごとの dict(長さ n)か、全車共通の 1 つの dict。キー v0, T, a, b, s0 (必須)、delta(既定 4)、length(前の車の車長として使う。既定 4.5 m、仮定)、reaction_delay (無ければ引数 reaction_delay)、speed_noise(希望速度 v0 に掛ける 1 + N(0, speed_noise²) の相対むら。

> 0 なら seed が必須 = 決定的)。先頭車の車長は params_per_vehicle の 1 台目の length を使う。

• reaction_delay: 反応遅れ [s]。刻み dt の整数倍に丸める(m = round(delay/dt))。車 i は時刻 k に 時刻 k − m の自分の速度・車間・相対速度 を見て加速度を決める(t < 0 は初期の定常状態が続いていたとする)。

積分(ballistic update): v_{k+1} = max(0, v_k + a_k dt)、x_{k+1} = x_k + v_k dt + ½ a_k dt² (速度が負になる刻みでは止まる位置 x_k − v_k²/(2 a_k) で止める)。先頭車の位置は速度の台形積分。

初期状態: 全車が v_lead(0) で走り、各追従車の車間はその速度の平衡車間 idm_equilibrium_gap。車間が 0 以下になったら(追突)、その車を 接触の位置(車間 0)で止め、以後は動かさない(速度・加速度 0。前の車や後ろの車は積分を続け、後ろの車には止まった車が先行車になる)。車を重ねない —— 重ねたまま積分すると位置に意味が無い。

戻り値 dict: t (K,)、x, v, a, gap (K, n+1)(gap[:, 0] = inf)、params(実際に使った車ごとの母数。速度むら込み)、delay_steps (n,)、collision(bool)、collision_time(最初の時刻 or None)、collisions(追突の (時刻, 車番) の列。車番 i は前の車 i−1 に追突した車)、crashed (n+1,) bool。

संदर्भ (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_traffic — py -3.11 examples/poc_driving_traffic.py

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

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

इसी category के (traffic)

idm_accel · idm_equilibrium_gap · driver_style · lateral_wobble · ou_estimate · social_force_step · pedestrian_crossing · occlusion_reveal_distance


*Provenance: drivetraffic.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.