Skip to content

Task 52 — VDSim PoC W1-W12 종합 요약 v2

Field Value
Task ID RPT-PoC-Summary-v2
Type Report
Date 2026-05-29
Status snapshot — Cycle 6 종료 시점
Supersedes Task 40

1. 산출물 정량 (Task 40 → v2)

카테고리 Task 40 v2 (now) Δ
Tasks completed 32 52 +20
Reports authored 32 40+ (cluster 보고서 통합) +8
Source files (core/src) 12 13 (+control_converter) +1
Headers (core/include/vdsim) 9 10 (+control_converter, scenario) +1
Test files 14 17 (+L6/L7, CARLA, dispatch) +3
Tests passing 127 136 +9
Example binaries 9 12 (+ax_track, l3_demo, l1_vs_l2 split) +3
Vehicle configs 4 4 (sedan, sports, fsk_formula, race_car)
Solver configs 2 2
Scenario configs 4 4
External integrations 0 2 (CARLA plugin, pybind11) +2

2. W1-W12 진척 갱신

Week 계획 Task 40 v2 Δ
W1 Skeleton + CI 100 100
W2 Headers + coordinate 100 100
W3 Tire models 100 100
W4 L1 + params YAML + scenarios 100 100
W5-W6 combined slip / weight transfer / scenario / L2 skeleton 100 100
W7-W8 (CARLA plugin) raycast + UE4 통합 0 40 (skeleton + mock test) +40
W9-W10 (L2 full) per-tire + Ackerman + diff + EBD 100 100
W11-W12 (L3 + ride) full 14-DOF + CarMaker ERG 70 90 (unsprung mass + camber API + 4 차종) +20

PoC W1-W12 전체 진척: 80% → 92%.

남은 8%: - CARLA UE5 실제 통합 (W7-W8 의 나머지) - CarMaker ERG 비교 (D17 의 Phase 2) - L1-L8 control 사다리 의 L1-L3 visit 의 풀 dispatch (L4 lowering 만 됨)

3. 사다리 구현 v2

3.1 Dynamics

Level DOF 상태 비고
L1 5 Full combined slip + Mz + camber + weight transfer + Ackerman + diff + brake bias + EBD + downforce
L2 7 Full per-tire Fz + lateral transfer + same as L1 features
L3 14 Full (sprung 3 + unsprung 4) RK4 적분, anti-dive, mass conservation, ride frequency (overdamped 한계)

3.2 Control

Level 상태
L1-L3 Variant dispatch via lower_to_l4 lowering ✓
L4 Full ✓
L5 Full PID + FF ✓
L6 Full cascade PI ✓
L7 Full Pure Pursuit ✓
L8 Full waypoint cascade (figure-eight demo) ✓
LQR / MPC Phase 2 (SMPC paper integration)

3.3 External integration

항목 상태
CARLA plugin skeleton static lib, mock raycast test 4개 ✓
Pybind11 module VehicleParams / TireParams / SolverParams / State / IVehicleDynamics 노출 ✓
CSV importer ADMA/CarMaker → scenario.yaml ✓
Sweep runner Cartesian product 격자 ✓
CarMaker ERG Phase 2 (license 필요)

4. 차종별 거동 매트릭스

step_steer δ=0.05, vx=10, 5 s:

Vehicle r_peak y_trajectory 비고
sedan 0.180 16.6 m RWD Open, 60% Ackerman
sports 0.189 17.2 m LSD, 85% Ackerman, downforce
FSK formula 0.291 22.1 m spool diff, 100% Ackerman, very short wheelbase
race_car 0.181 16.6 m AWD LSD, 매우 큰 downforce

5. 강점 / 약점 (갱신)

강점 (v2 추가)

  • L3 full 14-DOF — sprung body 3 DOF + unsprung mass 4 DOF.
  • CARLA plugin skeleton — raycast IContactProvider 동작, UE5 통합 entry point.
  • Python binding — L1/L2/L3 dyn 을 Python 에서 직접 호출 (C++ 와 동일 결과 검증).
  • Brake EBD — 동적 Fz 기반 brake distribution.
  • L1-L3 dispatch — variant lower_to_l4 lowering.
  • 4 차종 distinct configs + benchmark matrix (FSK 의 distinct r=0.29).
  • CSV importer + sweep runner — 외부 데이터 통합 자동화.

약점 (잔존)

  • 실제 CARLA / UE5 통합 0 — skeleton 만, host process 와 연동 안 됨.
  • CarMaker ERG 비교 0 — D17 의 RMSE 검증 미수행.
  • MPC / SMPC 0 — Phase 2.
  • Unsprung damper 분리 안 됨 — 본 모델의 corner damper 가 너무 stiff → wheel hop 약함.
  • 실측 calibration 0 — TUR / FSK / NGII 실차 데이터 미반영.

6. 결론

PoC W1-W12 의 92% 완성. dynamics + control + tire physics + external API 모든 axis 에서 의미 있는 진전. 남은 8% (CARLA UE5 통합 + CarMaker 비교 + LSD ride/handling 잔여) 은 외부 환경 / license 필요 → 별도 phase.

시연 가능: - 4 차종 × 3 시나리오 = 12 distinct trajectory. - L1 → L2 → L3 사다리 (planar + dynamic suspension). - L4 → L5 → L6 → L7 → L8 closed-loop path tracking (figure-eight). - Python 에서 C++ 동등 호출. - CARLA-ready raycast IContactProvider.

다음 phase 시작 우선순위: 1. CARLA UE5 통합 (raycast → CARLA Sensor API) 2. CarMaker ERG 비교 (license + ERGAccess SDK) 3. SMPC paper 의 HPIPM 통합 (T-VT/T-IV/T-ITS target).