플라투닝 협조 시뮬레이터 연구 교육을 위한 모듈형 파이썬 플랫폼

본 논문은 복잡한 도로망과 다양한 차량 동역학을 손쉽게 구성·시뮬레이션할 수 있는 파이썬 기반 모듈형 시뮬레이터를 소개한다. 연구자는 제어·협조 알고리즘 구현에 집중하고, 시뮬레이터가 도로 생성, 차량 관리, 시각화까지 자동으로 수행하도록 설계하였다. 교육용으로도 활용 가능하도록 직관적인 인터페이스와 영상 출력 기능을 제공한다.

저자: Kevin Jamsahar, Adrian Wiltz, Maria Charitidou

플라투닝 협조 시뮬레이터 연구 교육을 위한 모듈형 파이썬 플랫폼
본 논문은 차량 플라투닝 및 다차량 협조 제어 알고리즘을 평가하기 위한 파이썬 기반 모듈형 시뮬레이터를 설계·구현하고, 그 구조와 기능을 상세히 설명한다. 연구 배경으로는 기존 고성능 시뮬레이터(CARLA, SUMO, CommonRoad)들이 각각 3D 시각화, 대규모 트래픽, 다양한 시나리오 제공에 강점이 있지만, 차량 동역학·제어 모델을 자유롭게 삽입하거나 분산 제어를 테스트하는 데 제약이 있다는 점을 지적한다. 이러한 한계를 극복하고자 저자는 “플라투닝 협조 시뮬레이터”라는 이름의 프레임워크를 제안한다. 시스템은 네 개의 주요 모듈로 구성된다. 첫 번째인 SimulationProject는 시뮬레이션 실행의 진입점으로, TrafficEnvironment을 초기화하고, 시뮬레이션 타임스텝을 진행하며, 데이터 로깅 및 영상 저장을 담당한다. 두 번째 모듈인 RoadSegmentManager는 도로 요소를 관리한다. StraightRoad, CurvedRoad, IntersectionRoad 클래스를 통해 직선, 곡선, 교차로를 정의하고, RoadSegmentFactory와 SegmentConnectionManager를 이용해 create_road_segment·connect_road_segments 함수를 제공한다. 도로 연결 시에는 ConnectionPoint 개념을 사용해 호환성(차선 수·차선 폭) 검증을 수행하고, 자동 정렬을 통해 로컬 좌표계를 업데이트한다. 또한, Dubin’s path 기반 자동 연결(create_connection) 기능을 제공해 두 개의 열린 끝을 CSC(곡선‑직선‑곡선) 시퀀스로 연결한다. 세 번째 모듈인 VehicleManager는 차량 전반을 관리한다. Vehicle 클래스는 동역학(VehicleDynamicsInterface), 제어기(CombinedController 혹은 Longitudinal·Lateral), 센서·인식 모듈, 참조 궤적을 포함한다. 동역학은 kinematic bicycle model을 기본 제공하지만, VehicleState·VehicleDynamicsInterface를 구현하면 임의의 모델을 삽입할 수 있다. 센서는 시야·거리 제한을 설정할 수 있으며, 노이즈 옵션을 통해 현실적인 측정 오차를 모사한다. 차량은 RoadSegmentManager가 제공하는 차선 중심을 기반으로 reference trajectory를 생성하고, TrajectoryPreprocessor를 통해 현재 위치 앞부분만 남긴다. 제어기는 PerceptionData와 reference trajectory를 입력으로 받아 차선 유지, ACC, 플라투닝 병합·분할, 교차로 협조 등 다양한 목표를 수행한다. 차량 상태(active, crashed, parked)는 시뮬레이션 중 실시간으로 업데이트되며, 시각화에 색상으로 반영된다. 네 번째 모듈인 Visualization은 Pygame을 이용해 시뮬레이션 결과를 영상으로 저장한다. config.py에서 SAVE_VIDEO=True로 설정하면 자동으로 영상 파일이 생성되며, 도로망 중심을 자동 조정해 시야를 최적화한다. 추가적인 기능으로는 VirtualParkingLot이 있다. 도로망 끝에서 나가는 차량을 수집해 지정된 platoon_size만큼 묶고, 정규분포 기반 출입 시간으로 재진입 포인트(entry point) 중 하나에 다시 삽입한다. 이를 통해 무한히 차량을 순환시키면서 플라투닝·분할·병합 시나리오를 손쉽게 실험할 수 있다. RoadSegmentManager는 NetworkX의 MultiDiGraph를 이용해 도로망을 그래프 형태로 저장한다. 노드는 ConnectionPoint, 엣지는 RoadSegment이며, 이를 시각화(visualize_road_network)함으로써 사용자는 현재 네트워크 구조를 한눈에 파악할 수 있다. 시뮬레이터 사용 방법은 폴더 구조와 main.py, config.py를 수정하는 간단한 절차로 제시된다. 연구자는 새로운 제어 알고리즘을 Vehicle 클래스의 controller에 구현하고, 필요에 따라 새로운 RoadSegment 혹은 VehicleDynamics 클래스를 추가하면 된다. 교육적 관점에서 교수자는 학생들에게 기본 시나리오를 제공하고, 학생들은 자신만의 제어 로직을 구현·시각화하여 즉각적인 피드백을 받을 수 있다. 실험 결과는 유튜브 영상 링크와 함께 제공되며, 시뮬레이션이 정상적으로 동작함을 시연한다. 전체적으로 이 시뮬레이터는 구현 난이도를 크게 낮추면서도 복잡한 플라투닝·협조 시나리오를 지원하고, 모듈화된 설계 덕분에 확장성과 재사용성이 뛰어나다는 점에서 기존 도구들을 보완한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기