SMARTS

ad_official·2025년 3월 7일

[AD]simulation

목록 보기
6/10

질문 (이거 물어봐야함)

  • 버블 내에 있는 주변 차량 agents NPC들은 구체적으로 어떤 운전자 모델로 제어돼? (IDM? MOBIL? 아니면 학습 기반 알고리즘?)

  • 버블 내에 있는 주변 차량 agents NPC들의 운전자 모델을 내가 직접 만든 딥러닝 기반 planner을 주변 차량 agents NPC의 행동 모델로 바꿔서 사용할 수 있어? 구체적으로 어떻게 해야해? 디테일하게 설명해줘.

  • " 나아가 고급 사용자라면 TrafficProvider를 새로 구현하여 완전히 커스텀한 운전자 정책을 통합할 수도 있습니다 ([Help Request] Wanna to know about traffic model · Issue #2119 · huawei-noah/SMARTS · GitHub). " 라고 했는데, 내가 직접 만든 딥러닝 기반 planner을 주변 차량 agents NPC의 버블 밖에 있는 경우의 행동 모델로 사용하고 싶으면, 구체적으로 어떻게 해야해? 디테일하게 설명해줘.

GPT 설명

  1. 클로즈드 루프 반응형 트래픽의 주변 운전자 모델 및 커스터마이징:
  1. 보행자나 자전거 이용자에 대한 반응형 모델:
  • SMARTS는 시나리오 DSL에서 TrafficActor를 정의할 때 차량 외에도 Pedestrian이나 Cyclist 유형을 포함할 수 있도록 설계되어 있습니다.
    • 즉, 보행자나 자전거 운전자도 시나리오에 등장시키는 것은 가능하나, 이들의 거동 역시 SUMO 엔진을 통해 시뮬레이션됩니다.
    • SUMO에서는 보행자와 자전거에 대해 비교적 단순한 규칙 기반 모델을 사용합니다.
    • 예를 들어 보행자는 보도나 횡단보도를 따라 일정 속도로 이동하고 신호등에 반응하며,
    • 자전거 역시 도로에서 차량과 유사하게 일정한 속도로 주행하거나 정지하는 형태로 모델링됩니다.
    • 다만 SMARTS 공식 문서에서는 보행자/자전거의 구체적 알고리즘을 강조하고 있지 않으며, 기본 제공 구현은 자동차에 초점을 맞추고 있습니다.
  • 필요하다면 사용자가 이러한 에이전트에 대한 커스텀 정책을 추가할 수는 있으나, 별도의 학습 기반 보행자/자전거 모델이 내장되어 있는 것은 아닙니다.
  • 요약하면, SMARTS는 보행자나 자전거의 시뮬레이션을 SUMO의 로직으로 처리할 수는 있지만,
    • 특별한 행동 AI를 기본 제공하는 수준은 아니며, 이들의 행동은 폐루프 상호작용이라기보다는 정해진 경로를 따르는 수준으로 다뤄집니다.
  1. NGSIM의 개념과 SMARTS와의 연관:
  • NGSIM(Next Generation Simulation)은 미국 교통부(DOT)가 공개한 대형 교통 주행 데이터셋으로,
    • 실제 도로 환경에서 차량들의 고정밀 궤적 데이터를 수집한 것.
  • NGSIM은 운전자 모델 연구나 시뮬레이터 검증에 널리 사용되는 현실 주행 기록 데이터이며, SMARTS는 이를 시뮬레이션에 활용할 수 있도록 지원합니다.
  • SMARTS의 Ecosystem 모듈 중 NGSIM 지원을 통해, 사용자는 NGSIM 원시 데이터를 다운로드 받아 SMARTS 시나리오에 통합할 수 있습니다.
  • 구체적으로, 각 NGSIM 시나리오 폴더의 scenario.py에 데이터 파일 경로를 지정한 뒤 scl scenario build-all 명령을 실행하면, NGSIM의 차량 궤적들이 SMARTS 전용 형식(.shf)으로 변환되어 불러와집니다.
  • 요약하면, NGSIM은 현실 교통상황 데이터셋이고 SMARTS는 이를 불러와 오픈 루프 형태로 차량들을 움직이게 함으로써 현실적인 시나리오를 구현합니다.
  1. “버블(bubbles)” 메커니즘의 의미:
  • 버블은 SMARTS에서 도입한 공간-시간 구역 개념으로, 특정 차량들 간의 상호작용을 강조하거나 정밀하게 다루고 싶을 때 사용하는 기능
  • 일반적으로 시뮬레이션 월드 전체의 모든 차량을 고복잡도로 제어하면 계산 자원이 크게 소모되므로,
    • SMARTS는 버블로 지정된 구역 안으로 들어오는 차량들에 대해서만 특별한 제어를 가합니다.
  • 버블 영역에 진입한 사회 차량은 먼저 에어록(airlock) 구간을 지나며,
    • 이 동안 백그라운드에서 해당 차량을 통제할 에이전트(미리 정의된 정책)가 관찰을 시작.
  • 차량이 버블 핵심 구역에 들어서면 SMARTS는 그 차량의 제어권을 원래의 트래픽 정책에서 버블 에이전트에게 넘겨주어,
    • 해당 차량이 자율주행차(Ego)와 능동적으로 상호작용하게 합니다.
  • 예를 들어, Ego 차량 주변에 버블을 설정하고 그 안에 있는 주변 차들을 agresive하게 끼어들거나 양보하도록 제어함으로써,
    • Ego와 특정 상호작용(끼어들기 시나리오 등)을 집중적으로 시뮬레이션할 수 있습니다.
  • 차량이 버블을 벗어나면, 버블 에이전트는 제어를 해제하고, 다시 기본 트래픽 프로바이더 (예: SUMO 또는 기록 재생)에 차량을 반환
  • 이때 버블 내부에서 원래 궤적에서 벗어났던 차량은 기록된 경로로 복귀할 수 없으므로,
    • SMARTS의 간단한 주행 알고리즘이 차량을 남은 경로를 따라 주행시키며 상황을 이어갑니다 .
  • 요컨대, 버블 메커니즘은 특정 영역의 상호작용을 강조하기 위해 주변 차량들을 일시적으로 특별 제어하는 기능이며,
    • 이를 통해 중요한 상호작용에 시뮬레이션 자원을 집중시켜 효율성과 현실감을 모두 확보합니다.
  1. Imitation Learning/Behavior Cloning 지원 여부 (학습 파이프라인):
  • SMARTS는 이름에서도 드러나듯 다중 에이전트 강화학습(MARL) 환경으로 설계된 플랫폼으로, 공식 문서와 논문도 강화학습 연구에 초점을 맞추고 있습니다.
  • 제공되는 예제들과 통합 기능(예: RLlib 연동, MARL 시나리오)은 모두 에이전트의 강화학습 훈련 및 평가를 용이하게 하는 데 집중되어 있습니다.
  • 반면에 모방 학습(Imitation Learning)이나 Behavior Cloning을 위한 전용 모듈이나 자동화된 파이프라인은 별도로 제공되지 않습니다.
  • 즉, SMARTS를 이용해 모방 학습을 하려면 사용자가 환경 상에서 데이터를 수집하고 별도의 학습 코드를 구현해야 합니다.
  • 이러한 경향은 SMARTS 개발 목적이 자율주행 연구 중 복잡한 상호작용 시나리오에서의 RL 실험에 맞춰져 있기 때문입니다.
  • 요약하면, SMARTS는 강화학습 위주의 학습 환경을 지향하며, 모방 학습 전용 파이프라인은 내장하고 있지 않습니다.
  • (물론 사용자가 원한다면 SMARTS 환경에서 에이전트의 경험을 로그로 저장하여 자체적으로 behavior cloning을 수행할 수는 있지만, 이는 플랫폼이 직접 제공하는 기능 범위를 넘어서는 것입니다.)
profile
ad_official

0개의 댓글