[Navsim] 완벽정리 (작성중)

ad_official·2025년 3월 7일

[AD]simulation

목록 보기
1/10
  • TODO: 필요할 때 정리하기



Navsim 질문 정리

  • 아래 설명 잘 이해가 안돼. 훨씬 더 자세히 조사해서, (코드 레벨에서 조사하면 더 정확하겠지?) 아래 설명을 훨씬 더 논리적이고 자세히 구체적으로 설명해줘.
### 2.3. Pseudo Closed-Loop Aggregation
Navsim은 기본적으로 오픈 루프(짧은 4초 등 고정 시뮬레이션) 방식으로 ego 플래너를 평가하지만, v2에서는 이를 **의사 폐루프(Pseudo Closed-Loop)**로 확장해 더 현실적인 평가를 시도합니다.

1. **Stage 1 (초기 장면 평가)**  
   - Navsim v1과 유사하게, 4초 동안 ego 플래너를 시뮬레이션하고 EPDMS를 계산합니다.  
   - 여기서는 주변 차량은 비반응(Log-Replay)일 수도 있고, IDM 등의 에이전트일 수도 있습니다(정책 설정에 따라 다름). 자차는 정해진 4초 계획을 그대로 실행합니다.

2. **Stage 2 (후속 장면 평가)**  
   - Stage 1이 끝났을 때, 자차의 최종 위치·속도 등을 기반으로 **여러 가지 ‘후속’ 장면**을 미리 생성해둡니다.  
   - 예: 자차가 살짝 오른쪽으로 치우친 채 끝났을 수 있고, 왼쪽 차선을 물고 끝났을 수도 있고 등등 다양한 상태가 가능하므로, 그에 맞춰 다른 초기 조건을 가지는 시나리오들을 만들어둡니다.
   - 각각의 “후속 장면”도 다시 4초 시뮬레이션을 하여 EPDMS를 평가합니다. **이때는 반응형 트래픽**(reactive background traffic)을 사용함으로써, 자차 행동이 주변 차들에 영향을 줄 수 있습니다.

3. **가중 평균(Weighting)**  
   - Stage 1에서 실제로 ego가 도달한 상태와 **가장 가까운** 후속 장면일수록 가중치가 높게 책정됩니다. 즉, “자차가 현실적으로 그럴듯한(가능성 높은) 후속 상태”일수록 더 중요한 장면으로 간주해 평균을 낼 때 크게 반영하는 것이죠.
   - 최종적으로 Stage 2의 점수들을 가중 합산하여, 마치 폐루프 시뮬레이션을 여러 번 돌린 것과 비슷한 효과를 낼 수 있도록 설계했습니다.

이 과정을 통해, Navsim v2는 여전히 “자차는 한 번의 계획을 4초간 고정”한다는 오픈 루프 특성을 유지하지만, 후속 장면을 체계적으로 연결해보면서 **장기적 행위의 일관성**이나 **반응형 교통 상황**을 부분적으로 평가합니다.

설명 1

Navsim은 튜빙겐 대학교 및 NVIDIA 연구 등이 참여한 Autonomous Vision 그룹에서 개발한 시뮬레이터로, 데이터 기반 시나리오를 폐루프로 시뮬레이션하여 자율주행 정책을 대규모로 평가하기 위해 만들어졌습니다 (NAVSIM: Data-Driven Non-Reactive Autonomous Vehicle Simulation and Benchmarking | OpenReview). 2024년 공개된 초기 버전(v1)은 주변 교통이 비반응적(non-reactive)인 폐루프 환경을 제공하였고, 2025년 초에 공개된 v2.0에서는 반응형(reactive) 트래픽 에이전트도 지원하도록 확장되었습니다 (GitHub - autonomousvision/navsim: [NeurIPS 2024] NAVSIM: Data-Driven Non-Reactive Autonomous Vehicle Simulation and Benchmarking). Navsim은 뉴럴 네트워크 기반 End-to-End 자율주행 정책까지도 손쉽게 실험할 수 있도록 경량화된 시뮬레이션을 목표로 하며, OpenScene, nuPlan 등 기존 주행 데이터셋의 시나리오를 불러와 사용할 수 있는 것이 큰 특징입니다 (NAVSIM: Data-Driven Non-Reactive Autonomous Vehicle Simulation and Benchmarking | OpenReview).




Navsim 2.0

1. Navsim이란?

  • Navsim은 원본 주행 데이터를 기반으로 시나리오를 구성하여, 자율주행 플래너의 성능을 단기 시뮬레이션(open-loop, partial closed-loop 등) 방식으로 평가할 수 있도록 고안된 경량 자율주행 시뮬레이터 및 벤치마크
  • 오픈 루프(Open-Loop)와 폐루프(Closed-Loop) 평가의 장단점을 결합해, 현실성 있는 시나리오를 수천~수만 건 이상 빠르게 실험할 수 있음
  • Ego 차량(자차)의 주행 계획(Planner)을 손쉽게 교체·실험할 수 있도록, 각종 구성 파일과 스크립트 형태로 플래너 교체 API를 제공
  • nuPlan, nuScenes 등 이미 존재하는 주행 로그 데이터셋과 연동 가능하며, 경량 시뮬레이션을 통해 대규모 벤치마크를 수행하기 쉽습니다.
  • 버전 2(Navsim v2)에서는 기존 v1의 단점을 보완하고,
    • 주변 트래픽의 반응형(Reactive) 에이전트 지원,
    • 새로운 평가지표(EPDMS),
    • Pseudo Closed-Loop Aggregation 메커니즘이 추가


2. 주요 변경사항: Navsim v1 vs Navsim v2

2.1. 반응형(reactive) 주변 차량 에이전트

  • NAVSIM v1:
    • 자차(Ego) 외의 주변 차량들은 Log-Replay 방식으로만 움직였습니다.
    • 즉, 주행 로그에 기록된 궤적을 그대로 재생하는 비반응형(non-reactive) 시뮬레이션이었습니다.
    • 자차가 어떤 행동을 취해도 주변 차량이 이에 반응하지 않으므로, 실제 도로에서의 상호작용을 제대로 재현하기 어렵다는 한계가 있었습니다.
  • NAVSIM v2:
    • Reactive Traffic Agent 모델이 추가되었습니다.
    • 예를 들어, IDM(Intelligent Driver Model)을 이용해 앞차와의 거리를 동적으로 조절하거나 속도를 줄이는 등, 자차 움직임에 일정 부분 반응하는 트래픽 시뮬레이션이 가능합니다.
    • 그래도 자차 자체는 비반응성으로 간주되어, 환경 업데이트를 주기적으로 받으면서 계획을 수정하진 않습니다.
      • (즉, 자차는 “한 번 세운 플랜을 그대로 4초 시뮬레이션”하는 구조).
    • 정책 선택:
      • 설정 파일 override를 통해 traffic_agents_policy=... 로 손쉽게 Log-Replay, Constant-Velocity, IDM 등 다양한 주변 차량 모델을 교체할 수 있습니다.

2.2. 확장된 평가지표: EPDMS (Extended Predictive Driver Model Score)

  • 기존 PDMS(Predictive Driver Model Score)

    • Navsim v1에서 사용되던 종합 점수로, 충돌 여부·주행 진척도·안전성·안락성(Comfort) 등을 통합한 지표였습니다.
    • 구체적으로는 Multiplier 형식의 항목(NC, DAC)을 곱하고, TTC, EP, C 같은 점수를 가중합해 최종 스코어를 계산합니다.
  • 신규 EPDMS(Extended PDMS)

    • Navsim v2에서는 PDMS를 확장한 EPDMS가 도입되었습니다.
    • 추가된 항목
      1. Lane Keeping (LK): 차선 중심선에서 심하게 벗어나 있으면 벌점
      2. Extended Comfort (EC): 프레임 간 가속도·jerk 변동 등을 체크해, 불필요한 급제동·급가속이 빈번하면 벌점
      3. Driving Direction Compliance (DDC): 역주행이나 금지 차선 침범 등을 추가로 penalize
      4. Traffic Light Compliance (TLC): 신호 준수 여부를 확인해 위반 시 강한 벌점
    • False-positive penalty filtering
      • 사람이 운전해도 어쩔 수 없이 규칙을 어기는 상황(예: 도로 막힘으로 중앙선을 살짝 넘어가야 통과 가능한 경우)에서는, 에이전트가 잘못이 아니라는 점을 반영할 수 있도록 벌점을 완화합니다.
    • 최종 스코어 공식
      EPDMS=(m{NC,DAC,DDC,TLC}max(m(agent),1m(human)))  ×  116s{TTC,EP,C,LK,EC}wss(agent)\text{EPDMS} = \left(\prod_{m \in \{NC, DAC, DDC, TLC\}} \max(m(\text{agent}), 1-m(\text{human}))\right) \; \times \; \frac{1}{16}\sum_{s \in \{TTC, EP, C, LK, EC\}} w_s \cdot s(\text{agent})
      • 기존 PDMS와 달리 multiplier에 DDC, TLC가 추가되었고, 합산 파트에도 LK와 EC가 포함됩니다.
      • 사람 운전자(Human)의 위반 상황을 고려해, Ego가 반드시 규칙을 살짝 어겨야 하는 장면이라면 패널티가 완화될 수 있게 설계되었습니다.

2.3. Pseudo Closed-Loop Aggregation

Navsim은 기본적으로 오픈 루프(짧은 4초 등 고정 시뮬레이션) 방식으로 ego 플래너를 평가하지만, v2에서는 이를 의사 폐루프(Pseudo Closed-Loop)로 확장해 더 현실적인 평가를 시도합니다.

  1. Stage 1 (초기 장면 평가)

    • Navsim v1과 유사하게, 4초 동안 ego 플래너를 시뮬레이션하고 EPDMS를 계산합니다.
    • 여기서는 주변 차량은 비반응(Log-Replay)일 수도 있고, IDM 등의 에이전트일 수도 있습니다(정책 설정에 따라 다름). 자차는 정해진 4초 계획을 그대로 실행합니다.
  2. Stage 2 (후속 장면 평가)

    • Stage 1이 끝났을 때, 자차의 최종 위치·속도 등을 기반으로 여러 가지 ‘후속’ 장면을 미리 생성해둡니다.
    • 예: 자차가 살짝 오른쪽으로 치우친 채 끝났을 수 있고, 왼쪽 차선을 물고 끝났을 수도 있고 등등 다양한 상태가 가능하므로, 그에 맞춰 다른 초기 조건을 가지는 시나리오들을 만들어둡니다.
    • 각각의 “후속 장면”도 다시 4초 시뮬레이션을 하여 EPDMS를 평가합니다. 이때는 반응형 트래픽(reactive background traffic)을 사용함으로써, 자차 행동이 주변 차들에 영향을 줄 수 있습니다.
  3. 가중 평균(Weighting)

    • Stage 1에서 실제로 ego가 도달한 상태와 가장 가까운 후속 장면일수록 가중치가 높게 책정됩니다. 즉, “자차가 현실적으로 그럴듯한(가능성 높은) 후속 상태”일수록 더 중요한 장면으로 간주해 평균을 낼 때 크게 반영하는 것이죠.
    • 최종적으로 Stage 2의 점수들을 가중 합산하여, 마치 폐루프 시뮬레이션을 여러 번 돌린 것과 비슷한 효과를 낼 수 있도록 설계했습니다.

이 과정을 통해, Navsim v2는 여전히 “자차는 한 번의 계획을 4초간 고정”한다는 오픈 루프 특성을 유지하지만, 후속 장면을 체계적으로 연결해보면서 장기적 행위의 일관성이나 반응형 교통 상황을 부분적으로 평가합니다.



3. Traffic Agents Policy

Navsim v2에서 주변 차량(트래픽 에이전트)은 크게 세 종류가 제공됩니다.

  1. Log-Replay (비반응형)

    • v1과 동일하게, 기록된 궤적(trajectory)을 그대로 재생하는 모델입니다.
    • Ego 차량이 어떻게 움직이든 주변 차량에 반영되지 않으므로, 상호작용 상황을 테스트하기에는 제한적입니다.
    • 하지만 주행 로그 그대로 쓰기 때문에 현실성(현실에서 관측된 궤적)이 높은 편이고, 디버깅이나 단순 재현 목적으로는 유용합니다.
  2. Constant-Velocity (디버깅용)

    • 주변 차량이 일정 속도·방향을 유지하며 직선으로만 달리는 매우 단순한 정책입니다.
    • Ego 차량 검증 시 기본적인 충돌 감지나 점검을 빠르게 수행할 때 가볍게 쓸 수 있습니다.
    • 하지만 실제 도로 상호작용과는 괴리가 큽니다.
  3. IDM (Intelligent Driver Model)

    • nuPlan 등에서도 사용되는 속도 제어 기반 모델로, 앞차와의 간격·속도 차이를 고려해 가·감속을 결정합니다.
    • Log-Replay와 달리, Ego 차량이 가까이 오면 뒤차가 속도를 낮추거나 앞차가 유연하게 대응할 수 있으므로 반응형 트래픽 시나리오를 재현할 수 있습니다.
    • 물론 보행자, 자전거 등은 여전히 Log-Replay(기록 궤적)로만 움직이는 식으로 혼합 운용될 수 있습니다.

추가로, 향후에는 학습 기반(learning-based) Traffic Simulation 모델도 지원을 확대할 예정이며, Navsim devkit을 통해 정책을 커스텀할 수 있도록 확장 중이라고 합니다.



4. 평가 파이프라인 요약

  1. 플래너(Agent) 구성

    • $NAVSIM_DEVKIT_ROOT/navsim/navsim/planning/script/config/common/agent/my_new_agent.yaml 처럼 별도 YAML 파일을 만들어서, 자율주행 플래너(모델) 설정을 작성합니다.
    • 예: New Agent가 출력해야 할 계획 궤적 형식, hyperparameter, 불러올 체크포인트 경로 등을 명시.
  2. 시뮬레이션 실행

    • 예를 들어, ./run_cv_pdm_score_evaluation.sh 스크립트를 실행하면, 지정된 시나리오 세트에 대해 해당 Agent를 4초 오픈 루프 시뮬레이션하고 EPDMS(혹은 PDMS)를 계산해 CSV나 로그로 저장합니다.
    • 이때 traffic_agents_policy를 override하여 주변 교통을 IDM, Log-Replay 등으로 쉽게 바꿔가며 평가할 수 있습니다.
  3. Pseudo Closed-Loop 확장

    • NAVSIM v2에서는 1차 시뮬레이션 결과(4초 끝 상태)를 토대로 후속 장면을 병렬적으로 생성해두고, 각 후속 장면마다 다시 4초를 달리는 식으로 EPDMS를 재계산합니다(2차 시뮬레이션).
    • 2차 시뮬레이션은 반응형 트래픽(IDM 등)을 사용하고, ego가 실제 1차에서 끝난 위치와 가장 유사한 장면의 스코어를 높게 반영해 최종 점수를 산출합니다.
  4. 결과 해석

    • 최종 점수로 EPDMS가 생성되며, 이 점수는 충돌·역주행·신호위반 등 다양한 요인을 반영합니다.
    • 각 시나리오별로 CSV나 로그가 생성되므로, Planner가 취약한 케이스를 디버깅 가능하며, 성능 향상에 필요한 인사이트(불필요한 급조향 발생 등)를 얻을 수 있습니다.


5. Navsim v2의 장·단점 및 활용 시나리오

5.1. 장점

  1. 경량 시뮬레이션

    • 3D 물리나 센서 시뮬레이션을 생략하고, 2D 혹은 벡터화된 환경에서 Ego 차량 상태와 궤적만 추적하기 때문에 속도가 매우 빠릅니다.
    • 수많은 시나리오를 병렬로 평가할 수 있어, 대규모 벤치마크에 적합합니다.
  2. 데이터셋 기반 현실성

    • Log에서 추출한 실제 도로 상황이므로, 신호 체계·차량 배치·교통 흐름 등은 현실감이 상당히 높습니다.
    • 반응형 정책(IDM)과 결합하면 어느 정도 상호작용도 시뮬레이션 가능합니다.
  3. 쉽고 유연한 플래너 교체

    • Python 기반 설정 및 스크립트를 제공하여, 다양한 딥러닝 모델(End-to-end, 예측+계획 분리 등)을 Ego 차량에 간단히 붙일 수 있습니다.
  4. Pseudo Closed-Loop를 통한 확장

    • 완전 폐루프 시뮬레이션을 하지 않으면서도, 후속 장면을 고려해 장기적 의사결정 효과를 부분적으로 반영합니다.
    • 완전히 오픈 루프일 때보다 현실성 높은 점수를 얻을 수 있습니다.
  5. EPDMS (평가지표 개선)

    • Lane keeping, Extended Comfort, Driving Direction Compliance, Traffic Light Compliance 등 신규 항목이 추가되어, 이전보다 더 다양한 안전/안락성 측면을 반영합니다.
    • False-positive penalty filtering으로 불가피한 규칙 위반 상황을 공정하게 처리해줍니다.

5.2. 단점

  1. 자차(Ego) 자체는 여전히 Non-reactive

    • 반응형 에이전트는 주변 차량에만 적용되며, Ego Planner는 “시작 시점의 상황만 보고 4초 계획을 세우면 그대로 실행”하는 구조입니다.
    • 도중에 주행 경로를 즉각적으로 수정하는 완전 폐루프와는 다르므로, 실제 차량 제어 시나리오와는 여전히 갭이 있습니다.
  2. 짧은 시나리오 호라이즌

    • 보통 4초 이내의 짧은 구간을 평가하기 때문에, 장시간 운행(예: 고속도로 주행 중 차선 변경 반복) 시나리오를 다루기 어렵습니다.
    • Pseudo Closed-Loop가 있긴 하지만, 그것도 사후 후속 장면을 미리 만들어두는 기법이므로, 완전한 장기 시뮬레이션은 아닙니다.
  3. 센서 기반 인지 시뮬레이션 미지원

    • Navsim은 주로 “Ego 및 주변 객체의 궤적/상태”만 사용하므로, 실제 카메라·LiDAR 출력 등은 제공되지 않습니다.
    • 학습 기반 센서 인지(Detection, Segmentation)를 연구하거나, 물리엔진 기반 충돌 시나리오 등을 자세히 다루려면 CARLA 등 다른 3D 시뮬레이터를 병행해야 합니다.
  4. 상호작용 모델의 한계

    • IDM 등은 기본적인 간격 유지, 감속 등만 지원하므로, 복잡한 도심 교차로 상호작용(예: 미묘한 양보, 과감한 진입)은 구현하기 어렵습니다.
    • 추후 학습 기반 트래픽 모델이 추가될 예정이나, 현재는 어느 정도 추상화된 상호작용만 가능합니다.


6. 요약 및 활용 가이드

Navsim v2는 자율주행 연구에서 다양한 시나리오를 빠르고 간단하게 평가하고, 부분적으로 폐루프 효과도 반영해볼 수 있는 경량 시뮬레이터입니다.

  • 단기 시나리오(4초) 평가를 반복하는 구조로, 수많은 로그 기반 장면에서 계획 알고리즘을 비교·벤치마크하기에 적합합니다.
  • Ego Planner 교체가 손쉬우며, IDM 등 반응형 트래픽 에이전트도 적용 가능해, 간단한 상호작용을 실험해볼 수 있습니다.
  • EPDMS는 기존보다 포괄적이고 공정한 점수로, 충돌·진행·안락성·규칙준수 등 여러 요소를 균형 있게 평가합니다.
  • 완전한 폐루프 시뮬레이션이나 물리 기반·센서 기반 연구가 필요하다면, CARLA/SUMO 등 다른 시뮬레이터와 병행하여 보완하게 됩니다.

만약 주행 정책(플래너)을 개발하고, 다양한 도심/고속도로 시나리오에서 빠르게 성능을 검증하고자 한다면, Navsim v2가 경량·대규모 실험에 매우 유용할 것입니다. 특히 기존에 nuScenes, nuPlan을 사용 중이라면 Navsim과 데이터 연동이 수월해 시너지 효과를 낼 수 있습니다.
따라서 짧은 시뮬레이션에 집중된 오픈 루프 방식에도 불구하고, 추가된 Pseudo Closed-Loop Aggregation을 통해 더 현실감 있는 평가를 시도할 수 있게 된 점이 Navsim v2의 가장 큰 진전이라 할 수 있습니다.

以上.
이상으로 Navsim 2.0의 핵심 개념을 개괄적으로 살펴보았습니다. 필요에 따라 공식 GitHub와 Devkit 문서를 직접 참고하여, 구체적인 설치·설정 방법이나 시나리오 구성 파이프라인을 확인하길 권장드립니다.

profile
ad_official

0개의 댓글