{ "_doc": "closed-loop 평가 (HUGSIM 식, arXiv 2412.01718) — nusim sim run|score|make-scenarios, nusim.sim.closed_loop.VkgsEnv. 시나리오(configs/scenarios/*.json)가 같은 키를 덮어쓸 수 있다 (render·rates·termination·server).", "render": { "_doc": "관측 해상도 (6캠 모두 같은 크기, 내부 파라미터는 비율대로). nuScenes 원본은 1600x900 — 학습 GPU 와 나눠 쓸 때는 낮춘다", "width": 800, "height": 450, "sensors": false, "weather": "" }, "rates": { "_doc": "decision_hz = 정책(AD 알고리즘)이 관측을 받고 계획을 내는 빈도 (nuScenes 키프레임 2 Hz). control_dt = 제어기(LQR)가 계획을 따라가며 명령을 바꾸는 간격 — 서버는 그 안을 0.01 s 물리 스텝으로 적분한다 (창 운전과 같다)", "decision_hz": 2.0, "control_dt": 0.05 }, "server": { "_doc": "max_speed_kmh: 자차 최고 속도 (창 운전 기본 30 km/h 는 주차장·골목용 — 기록 주행을 따라가려면 더 높게). curb: 연석(주행가능영역 경계) 충돌. start_timeout_s: 모델 읽기 기다림", "max_speed_kmh": 60.0, "curb": true, "start_timeout_s": 180 }, "planner": { "_doc": "정책 출력 (자차 좌표 웨이포인트: x 앞, y 왼쪽 m) 의 기본 시간 간격과 개수 — UniAD/VAD 와 같은 0.5 s × 6 (3 s)", "waypoint_dt": 0.5, "n_waypoints": 6 }, "controller": { "_doc": "웨이포인트 → 가속·조향 (nusim/sim/controller.py). 횡방향 = 이산 LQR (상태: 횡오차·방위오차, 입력: 곡률 피드백 위에 조향), 종방향 = PI 속도 추종 + 목표 가속 앞먹임. q_lat·q_head·r_steer = LQR 가중치, preview_s = 기준점을 이만큼 앞에서 (조향 지연 보상), max_jerk = 명령 가속 변화율 제한 m/s³ (0 = 끔)", "q_lat": 1.0, "q_head": 2.0, "r_steer": 6.0, "preview_s": 0.25, "kp_speed": 1.2, "ki_speed": 0.2, "accel_limits": [-4.0, 2.0], "stop_speed": 0.3, "max_jerk": 3.0 }, "termination": { "_doc": "에피소드 끝: 충돌(collision_kinds 의 접촉으로 막힘), 도로 이탈이 offroad_s 넘게 지속, 경로에서 max_route_dev_m 넘게 벗어남 (재구성 범위 밖), 경로 끝 complete_m 안, 시간 초과(시나리오 max_duration_s)", "collision_kinds": ["obstacle", "vehicle"], "offroad_s": 2.0, "max_route_dev_m": 8.0, "complete_m": 2.0 }, "hdscore": { "_doc": "HD-Score_t = NC × DAC × (w_ttc·TTC + w_com·COM)/(w_ttc + w_com), 최종 = Rc × 평균_t (HUGSIM 식 (8)). 부분 점수는 NAVSIM PDM-score 정의. nc = 접촉 종류별 NC 값 (NAVSIM: 차량·보행자 0, 정적 물체 0.5 — 여기서는 장애물 지도도 0 으로 엄하게, 연석은 DAC 가 본다). dac_tol_m = 차체 네 귀퉁이를 이만큼 안으로 줄여 주행가능영역 안인지 (sim.json collision.curb_tol_m 과 같게 — 서버 on_road 와 일치). ttc_horizon_s·ttc_dt_s = 등속·등방위 투영 (NAVSIM 1 s / 0.1 s). comfort = nuPlan/NAVSIM 승차감 한계, com_window_s = 판정 창 (그 시점까지), smooth_s = 미분 전 평활 창", "w_ttc": 5.0, "w_com": 2.0, "nc": {"vehicle": 0.0, "obstacle": 0.0, "curb": 1.0}, "dac_tol_m": 0.15, "ttc_horizon_s": 1.0, "ttc_dt_s": 0.1, "ttc_min_speed": 0.2, "com_window_s": 2.0, "smooth_s": 0.3, "comfort": { "min_lon_accel": -4.05, "max_lon_accel": 2.40, "max_abs_lat_accel": 4.89, "max_abs_yaw_rate": 0.95, "max_abs_yaw_accel": 1.93, "max_abs_lon_jerk": 4.13, "max_abs_jerk": 8.37 } }, "scenarios": { "_doc": "nusim sim make-scenarios: 일괄 재구성(outputs/gs_day)에서 구간이 다 끝난 씬마다 Easy 시나리오 (정적 장면, 다른 차량 없음). route_m = 경로 길이 상한 (0 = 기록 끝까지), min_route_m = 이보다 짧게 움직인 씬(정차)은 뺀다, duration_factor = 기록 주행 시간 × 이 배수 + duration_pad_s 가 제한 시간, start_speed = log (기록 속도로 출발) | 수 (m/s)", "route_m": 0, "min_route_m": 20.0, "duration_factor": 1.5, "duration_pad_s": 5.0, "start_speed": "log" } }