traffic op• データ種: any → table
• 呼び出し: 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]' (実装を直接呼ぶなら 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]'、台帳から引くなら opsdrive.get("idm_platoon_simulate"))
先頭車の速度プロファイルに IDM の追従車列を積分する(車 0 = 先頭、1..n = 追従車)。
• 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。
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• poc_driving_traffic — py -3.11 examples/poc_driving_traffic.py
table を入力に取れる)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
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 ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.