idm_platoon_simulate — DRIVE 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.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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