[NavSim] navsim/planning/script/run_pdm_score.py
0. GPT 요약
- 환경 설정 및 객체 생성:
- 설정 파일을 바탕으로 시뮬레이터(
PDMSimulator
), 점수 계산기(PDMScorer
), 평가할 에이전트(AbstractAgent
)를 생성하고 초기화
- 데이터 로딩:
- 메트릭 캐시(
MetricCache
)와 장면 데이터(SceneLoader
)를 이용해
- 시나리오별 평가:
- 각 시나리오에 대해, 에이전트가 센서 입력(필요한 경우 장면 정보 포함)을 바탕으로 미래 궤적을 예측
예측된 궤적
과 해당 시나리오의 메트릭 캐시 데이터를 사용하여 PDMS 점수를 계산
- 오류가 발생하면 해당 시나리오는 실패로 기록
- 결과 집계 및 저장:
- 모든 평가 결과를 DataFrame으로 모아 성공/실패 시나리오 수와 평균 점수를 계산
- 최종 결과를 타임스탬프가 포함된 CSV 파일로 저장하고, 로그에 요약 정보를 출력합니다.
1. ego Agent는 한 번만 궤적을 생성
- 코드를 보면, 각 시나리오(토큰)마다 에이전트는 한 번만 궤적을 생성
- 구체적으로 설명하면:
- 한 번의 궤적 생성:
- 각 시나리오에 대해, 에이전트의
compute_trajectory()
메서드가 한 번 호출되어, 주어진 입력(예: 센서 데이터와 필요한 경우 장면 정보)을 바탕으로 미래 궤적을 예측
- 비반응 시뮬레이션:
- 생성된 단일 궤적은 PDMSimulator와 PDMScorer에 전달되어, 4초간 비반응 시뮬레이션(배경 액터들은 기록된 미래 궤적을 따르고,
ego 차량은 LQR 컨트롤러에 따라 움직임
)을 통해 평가
- 즉, 에이전트는 매 시나리오에서 매 타임스텝마다 반복적으로 궤적을 갱신하지 않고, 한 번 예측한 궤적을 그대로 사용하여 평가를 진행